tree.c: add [cd]tors to free_lang_data_d
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2
3         * tree.c (struct free_lang_data_d): Add constructor and change
4         types of members to ones that automatically manage resources.
5         (fld_worklist_push): Adjust.
6         (find_decls_types): Likewise.
7         (find_decls_types_in_eh_region): Likewise.
8         (free_lang_data_in_cgraph): Stop manually creating and
9         destroying members of free_lang_data_d.
10
11 2016-07-13  Uros Bizjak  <ubizjak@gmail.com>
12
13         PR rtl-optimization/68961
14         * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
15         peephole variant.  Use sse_reg_operand predicates.
16
17 2016-07-12  Uros Bizjak  <ubizjak@gmail.com>
18
19         * config/i386/predicates.md (x86_64_immediate_operand)
20         <case CONST_INT>: Remove unneeded truncation to DImode.
21         <case CONST>: Ditto.
22         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
23
24 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
25
26         PR target/71805
27         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
28         The xxperm and xxpermr instructions require that the 2nd input
29         operand overlap with the output operand, and not the 1st.
30         (altivec_vperm_v8hiv16qi): Likewise.
31         (altivec_vperm_<mode>_uns_internal): Likewise.
32         (altivec_vpermr_<mode>_internal): Likewise.
33         (vperm_v8hiv4si): Likewise.
34         (vperm_v16qiv8hi): Likewise.
35
36 2016-07-12  Martin Liska  <mliska@suse.cz>
37
38         * params.def: Add avg-loop niter.
39         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
40         * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
41         * doc/invoke.texi: Document the new parameter.
42
43 2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44
45         PR middle-end/71700
46         * expr.c (store_constructor): Mask sign-extended bits when widening
47         sub-word constructor element at the start of a word.
48
49 2016-07-12  Martin Liska  <mliska@suse.cz>
50
51         * Makefile.in: Append rule for params-options.h.
52         * params-options.h: New file.
53
54 2016-07-12  Martin Liska  <mliska@suse.cz>
55
56         * ira-build.c (mark_loops_for_removal): Properly iterate
57         loops.
58
59 2016-07-12  Steven Bosscher  <steven@gcc.gnu.org>
60             Richard Biener  <rguenther@suse.de>
61
62         PR tree-optimization/23286
63         PR tree-optimization/70159
64         * doc/invoke.texi: Document -fcode-hoisting.
65         * common.opt (fcode-hoisting): New flag.
66         * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
67         * tree-ssa-pre.c (pre_stats): Add hoist_insert.
68         (do_regular_insertion): Rename to ...
69         (do_pre_regular_insertion): ... this and amend general comments
70         on insertion strathegy.
71         (do_partial_partial_insertion): Rename to ...
72         (do_pre_partial_partial_insertion): ... this.
73         (do_hoist_insertion): New function.
74         (insert_aux): Take flags on whether to do PRE and/or hoist insertion
75         and call do_hoist_insertion properly.
76         (insert): Adjust.
77         (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
78         (pass_pre::execute): Register hoist_insert stats.
79
80 2016-07-12  Jakub Jelinek  <jakub@redhat.com>
81
82         PR middle-end/71716
83         * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
84         for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
85         is different from mode's bitsize.  Small cleanup.
86
87 2016-07-12  Richard Biener  <rguenther@suse.de>
88
89         PR rtl-optimization/68961
90         * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
91         to simplify to a non-constant.
92
93 2016-07-11  Jakub Jelinek  <jakub@redhat.com>
94
95         PR middle-end/71758
96         * omp-low.c (expand_omp_target): Gimplify device.
97
98         PR tree-optimization/71823
99         * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
100         to get vec_oprnds2 from op2.
101
102 2016-07-11  Uros Bizjak  <ubizjak@gmail.com>
103
104         * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
105         Hoist common subexpressions.
106         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
107
108 2016-07-11  Pat Haugen  <pthaugen@us.ibm.com>
109
110         PR target/71800
111         * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
112         prevent generation of 'stxsiwx' on pre Power8 hardware.
113
114 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
115
116         * input.c: Include cpplib.h.
117         (selftest::temp_source_file): New class.
118         (selftest::temp_source_file::temp_source_file): New ctor.
119         (selftest::temp_source_file::~temp_source_file): New dtor.
120         (selftest::should_have_column_data_p): New function.
121         (selftest::test_should_have_column_data_p): New function.
122         (selftest::temp_line_table): New class.
123         (selftest::temp_line_table::temp_line_table): New ctor.
124         (selftest::temp_line_table::~temp_line_table): New dtor.
125         (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
126         it to create a temp_line_table.
127         (selftest::assert_loceq): Only verify LOCATION_COLUMN for
128         locations that are known to have column data.
129         (selftest::line_table_case): New struct.
130         (selftest::test_reading_source_line): Move tempfile handling
131         to class temp_source_file.
132         (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
133         (selftest::assert_token_loc_eq): New function.
134         (ASSERT_TOKEN_LOC_EQ): New macro.
135         (selftest::test_lexer): New function.
136         (selftest::boundary_locations): New array.
137         (selftest::input_c_tests): Call test_should_have_column_data_p.
138         Loop over a test matrix of interesting values of location and
139         default_range_bits, calling test_lexer on each case in the matrix.
140         Move call to test_accessing_ordinary_linemaps into the matrix.
141         * selftest.h (ASSERT_EQ): Reimplement in terms of...
142         (ASSERT_EQ_AT): New macro.
143
144 2016-07-11  H.J. Lu  <hongjiu.lu@intel.com>
145
146         PR target/71801
147         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
148         Don't convert TImode in debug insn.
149
150 2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
151
152         Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
153         * tree-core.h (tree_base::nothrow_flag): Adjust comment.
154         (tree_type_common::lang_flag_7): New.
155         (tree_type_common::spare): Reduce size.
156         * tree.h (TYPE_ALIGN_OK): Remove.
157         (TYPE_LANG_FLAG_7): New.
158         (get_inner_reference): Adjust header.
159         * print-tree.c (print_node): Adjust.
160         * expr.c (get_inner_reference): Remove parameter keep_aligning.
161         (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
162         calls to get_inner_reference.
163         (expand_expr_real_1): Adjust call to get_inner_reference.  Remove
164         handling of TYPE_ALIGN_OK.
165         * builtins.c (get_object_alignment_2): Adjust call to
166         get_inner_reference.  Remove handling of VIEW_CONVERT_EXPR.
167         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
168         TYPE_ALIGN_OK.
169         * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
170         * cfgexpand.c (expand_debug_expr): Likewise.
171         * dbxout.c (dbxout_expand_expr): Likewise.
172         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
173         loc_list_from_tree, fortran_common): Likewise.
174         * fold-const.c (optimize_bit_field_compare,
175         decode_field_reference, fold_unary_loc, fold_comparison,
176         split_address_to_core_and_offset): Likewise.
177         * gimple-laddress.c (execute): Likewise.
178         * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
179         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
180         * hsa-gen.c (gen_hsa_addr): Likewise.
181         * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
182         * tsan.c (instrument_expr): Likewise.
183         * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
184         * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
185         * tree-affine.c (tree_to_aff_combination,
186         get_inner_reference_aff): Adjust calls to get_inner_reference.
187         * tree-data-ref.c (split_constant_offset_1,
188         dr_analyze_innermost): Likewise.
189         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
190         * tree-sra.c (ipa_sra_check_caller): Likewise.
191         * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
192         * tree-ssa-math-opts.c (find_bswap_or_nop_load,
193         bswap_replace): Likewise.
194         * tree-vect-data-refs.c (vect_check_gather,
195         vect_analyze_data_refs): Likewise.
196         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
197         * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
198         TYPE_ALIGN_OK.
199
200 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
201
202         * Makefile.in (selftest-valgrind): New phony target.
203         * function-tests.c (selftest::build_cfg): Delete pass instances
204         created by the test.
205         (selftest::convert_to_ssa): Likewise.
206         (selftest::test_expansion_to_rtl): Likewise.
207         * tree-cfg.c (selftest::test_linear_chain): Release dominator
208         vectors.
209         (selftest::test_diamond): Likewise.
210
211 2016-07-11  Richard Biener  <rguenther@suse.de>
212
213         PR tree-optimization/71816
214         * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
215         than replacing all of its operands.
216
217 2016-07-11  Alan Modra  <amodra@gmail.com>
218
219         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
220         (ctr<mode>): Add unspec.
221         (ctr<mode>_internal*): Likewise.
222
223 2016-07-08  James Bowman  <james.bowman@ftdichip.com>
224
225         * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
226         * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
227
228 2016-07-08  Vladimir Makarov  <vmakarov@redhat.com>
229
230         PR rtl-optimization/71621
231         * lra-constraints.c (process_alt_operands): Check combination of
232         reg class and mode.
233
234 2016-07-08  Jason Merrill  <jason@redhat.com>
235             Richard Biener  <rguenther@suse.de>
236
237         P0145: Refining Expression Order for C++.
238         * gimplify.c (initial_rhs_predicate_for): New.
239         (gimplfy_modify_expr): Gimplify RHS before LHS.
240
241 2016-07-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
242
243         PR target/71297
244         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
245         Allow standard error handling to take over when a wrong number
246         of arguments is presented to __builtin_vec_ld () or
247         __builtin_vec_st ().
248
249 2016-07-08  Jiong Wang  <jiong.wang@arm.com>
250
251         * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
252         variants.
253         (smin): Likewise.
254         (fmax): New entry.
255         (fmin): Likewise.
256         * config/aarch64/arm_neon.h (vmaxnm_f32): Use
257         __builtin_aarch64_fmaxv2sf.
258         (vmaxnmq_f32): Likewise.
259         (vmaxnmq_f64): Likewise.
260         (vminnm_f32): Likewise.
261         (vminnmq_f32): Likewise.
262         (vminnmq_f64): Likewise.
263
264 2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
265
266         PR target/71806
267         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
268         enable -mfloat128-hardware by default.
269         (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
270         that IEEE 128-bit hardware support needs.
271         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
272         -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
273         Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
274         floating point requires.
275         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
276         -mfloat128 and -mfloat128-hardware changes.
277
278 2016-07-08  Alan Hayward  <alan.hayward@arm.com>
279
280         PR tree-optimization/71667
281         * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
282
283 2016-07-08  Martin Liska  <mliska@suse.cz>
284
285         PR middle-end/71606
286         * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
287         folding produces SAVE_EXPRs, thus return false for the type.
288
289 2016-07-07  Martin Liska  <mliska@suse.cz>
290
291         * file-find.c (remove_prefix): New function.
292         * file-find.h (remove_prefix): Declare the function.
293         * gcc-ar.c (main): Skip a folder of the wrapper if
294         a wrapped binary would point to the same file.
295
296 2016-07-07  Jan Hubicka  <jh@suse.cz>
297
298         * tree-scalar-evolution.c (iv_can_overflow_p): export.
299         * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
300         * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
301
302 2016-07-07  Ilya Enkovich  <ilya.enkovich@intel.com>
303
304         PR ipa/71624
305         * ipa-inline-analysis.c (compute_inline_parameters): Set
306         local.can_change_signature to false for intrumentation
307         thunk callees.
308
309 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
310
311         * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
312         with TARGET_HAVE_MOVT.
313         (TARGET_HAVE_MOVT): Define.
314         * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
315         availability with TARGET_HAVE_MOVT.
316         * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
317         availability.
318         (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
319         TARGET_THUMB2.
320         (symbol_refs movsi splitter): Remove TARGET_32BIT check.
321         (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
322         * config/arm/constraints.md (define_constraint "j"): Use
323         TARGET_HAVE_MOVT to check MOVT availability.
324
325 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
326
327         * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
328
329 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
330
331         * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
332         (armv8-m.main): Likewise.
333         (armv8-m.main+dsp): Likewise.
334         * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
335         (FL_FOR_ARCH8M_MAIN): Likewise.
336         * config/arm/arm-tables.opt: Regenerate.
337         * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
338         armv8-m.main+dsp to BE8_LINK_SPEC.
339         * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
340         (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
341         * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
342         Baseline and Mainline.
343         (arm_option_override_internal): Also disable arm_restrict_it when
344         !arm_arch_notm.  Update comment for -munaligned-access to also cover
345         ARMv8-M Baseline.
346         (arm_file_start): Increase buffer size for printing architecture name.
347         * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
348         and armv8-m.main+dsp.
349         (mno-unaligned-access): Clarify that this is disabled by default for
350         ARMv8-M Baseline architectures as well.
351
352 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
353
354         * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
355         decide whether to prevent some libgcc routines being included for some
356         multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
357         link between this condition and the one in
358         libgcc/config/arm/lib1func.S.
359
360 2016-07-07  Richard Biener  <rguenther@suse.de>
361
362         * tree-ssa-pre.c: Include alias.h.
363         (compute_avail): If we have multiple VN_REFERENCEs with the
364         same hashtable entry adjust that to make it a valid replacement
365         for all of them with respect to alignment and aliasing
366         when doing insertion.
367         * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
368         * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
369
370 2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>
371
372         PR target/70098
373         PR target/71763
374         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
375         *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
376         constraint.
377
378 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
379
380         * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
381         (adjust_mems): Adjust.
382         (adjust_insn): Likewise.
383         (prepare_call_arguments): Likewise.
384
385 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
386
387         * gcse.c (struct ls_expr): Make stores field a vector.
388         (ldst_entry): Adjust.
389         (free_ldst_entry): Likewise.
390         (print_ldst_list): Likewise.
391         (compute_ld_motion_mems): Likewise.
392         (update_ld_motion_stores): Likewise.
393
394 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
395
396         * gcse.c (struct ls_expr): Remove loads field.
397         (ldst_entry): Adjust.
398         (free_ldst_entry): Likewise.
399         (print_ldst_list): Likewise.
400         (compute_ld_motion_mems): Likewise.
401
402 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
403
404         * store-motion.c (struct st_expr): Make antic_stores a vector.
405         (st_expr_entry): Adjust.
406         (free_st_expr_entry): Likewise.
407         (print_store_motion_mems): Likewise.
408         (find_moveable_store): Likewise.
409         (compute_store_table): Likewise.
410         (remove_reachable_equiv_notes): Likewise.
411         (replace_store_insn): Likewise.
412         (build_store_vectors): Likewise.
413
414 2016-07-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
415
416         * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
417         cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
418
419 2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
420
421         PR tree-optimization/71518
422         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
423         misalign also for outer loops with negative step.
424
425 2016-07-06  Wilco Dijkstra  <wdijkstr@arm.com>
426
427         * config/arm/cortex-a53.md: Use final_presence_set for in-order.
428         (cortex_a53_shift): Add mov_shift.
429         (cortex_a53_shift_reg): Add new reservation for register shifts.
430         (cortex_a53_alu): Remove bfm.
431         (cortex_a53_alu_shift): Add bfm, remove mov_shift.
432         (cortex_a53_alu_extr): Add new reservation for EXTR.
433         (bypasses): Improve bypass modelling.
434
435 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
436
437         PR target/50739
438         * config/avr/avr.c (avr_asm_select_section): Strip off
439         SECTION_DECLARED from flags when calling get_section.
440
441 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
442
443         * tree-vectorizer.h (vect_memory_access_type): Add
444         VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
445         * tree-vect-stmts.c (compare_step_with_zero): New function.
446         (perm_mask_for_reverse): Move further up file.
447         (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
448         step is negative.
449         (get_negative_load_store_type): New function.
450         (get_load_store_type): Call it.  Add an ncopies argument.
451         (vectorizable_mask_load_store): Update call accordingly and
452         remove tests for negative steps.
453         (vectorizable_store, vectorizable_load): Likewise.  Handle new
454         memory_access_types.
455
456 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
457
458         * tree-vectorizer.h (vect_memory_access_type): New enum.
459         (_stmt_vec_info): Add a memory_access_type field.
460         (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
461         (vect_model_store_cost): Take an access type instead of a boolean.
462         (vect_model_load_cost): Likewise.
463         * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
464         vect_model_store_cost and vect_model_load_cost.
465         * tree-vect-stmts.c (vec_load_store_type): New enum.
466         (vect_model_store_cost): Take an access type instead of a
467         store_lanes_p boolean.  Simplify tests.
468         (vect_model_load_cost): Likewise, but for load_lanes_p.
469         (get_group_load_store_type, get_load_store_type): New functions.
470         (vectorizable_store): Use get_load_store_type.  Record the access
471         type in STMT_VINFO_MEMORY_ACCESS_TYPE.
472         (vectorizable_load): Likewise.
473         (vectorizable_mask_load_store): Likewise.  Replace is_store
474         variable with vls_type.
475
476 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
477
478         * tree-vectorizer.h (vect_grouped_load_supported): Add a
479         single_element_p parameter.
480         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
481         Check the PR65518 case here rather than in vectorizable_load.
482         * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
483         * tree-vect-stmts.c (vectorizable_load): Likewise.
484
485 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
486
487         * tree-vectorizer.h (gather_scatter_info): New structure.
488         (vect_check_gather_scatter): Return a bool rather than a decl.
489         Replace return-by-pointer arguments with a single
490         gather_scatter_info *.
491         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
492         (vect_analyze_data_refs): Update call accordingly.
493         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
494         (vectorizable_mask_load_store): Likewise.  Also record the
495         offset dt and vectype in the gather_scatter_info.
496         (vectorizable_store): Likewise.
497         (vectorizable_load): Likewise.
498
499 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
500
501         * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
502         strided groups, use the cost of N scalar accesses instead
503         of ncopies vector accesses.
504         (vect_model_load_cost): Likewise.
505
506 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
507
508         * tree-vect-stmts.c (vect_cost_group_size): Delete.
509         (vect_model_store_cost): Avoid calling it.  Use first_stmt_p
510         variable to indicate when once-per-group costs are being used.
511         (vect_model_load_cost): Likewise.  Fix comment and misindented code.
512
513 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
514
515         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
516         peeling-for-gaps condition.
517
518 2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
519
520         * config/s390/s390.c (s390_expand_vec_init): Force initializer
521         element to register if it doesn't match general_operand.
522
523 2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
524             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
525
526         * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
527         prototype.
528         * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
529         * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
530         (SIGNBIT): New mode iterator.
531         (Fsignbit): New mode attribute.
532         (signbit<mode>2): Change operand1 to match FLOAT128 instead of
533         IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
534         when direct moves are available.
535         (signbit<mode>2_dm): New define_insn_and_split).
536         (signbit<mode>2_dm2): New define_insn.
537
538 2016-07-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
539
540         PR rtl-optimization/71594
541         * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
542         into subregs of appropriate mode before trying to emit a conditional
543         move.
544
545 2016-07-05  Jan Hubicka  <jh@suse.cz>
546
547         * tree-scalar-evolution.c (iv_can_overflow_p): New function.
548         (simple_iv): Use it.
549
550 2016-07-05  Jan Hubicka  <jh@suse.cz>
551
552         * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
553
554 2016-07-05  Jiong Wang  <jiong.wang@arm.com>
555
556         * lra-constraints.c (process_alt_operands): Don't add spilling cost for
557         "offmemok".
558
559 2016-07-05  Jan Hubicka  <jh@suse.cz>
560
561         * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
562         IV can overflow.
563
564 2016-07-05  Richard Biener  <rguenther@suse.de>
565
566         * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
567         Handle empty else block.
568         (is_feasible_trace): Likewise.
569         (split_paths): Likewise.
570
571 2016-07-05  Richard Biener  <rguenther@suse.de>
572
573         * tree-loop-distribution.c (distribute_loop): Fix issue with
574         the cost model loop.
575
576 2016-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
577
578         * config/arm/neon-testgen.ml: Delete.
579         * config/arm/neon.ml: Delete.
580
581 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
582
583         PR c++/71739
584         * tree.c (attribute_value_equal): Use get_attribute_name instead of
585         directly using TREE_PURPOSE.
586
587 2016-07-04  Jiong Wang  <jiong.wang@arm.com>
588
589         * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
590         * config/aarch64/aarch64_neon.h: Likewise.
591         * config/aarch64/arm_neon.h: Likewise.
592         * config/aarch64/atomics.md: Likewise.
593         * config/aarch64/aarch64-simd-builtins.def: Likewise.
594         * doc/invoke.texi: Likewise.
595
596 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
597
598         * config/s390/s390.md: Add "z13" cpu_facility.
599         ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
600         * config/s390/predicates.md ("loc_operand"): New predicate for "load on
601         condition" type instructions.
602
603 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
604             Jeff Law  <law@redhat.com>
605
606         * explow.c (allocate_dynamic_stack_space): Simplify knowing that
607         MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
608
609 2016-07-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
610
611         * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
612         permutation for TARGET_AVX512F.
613         (ix86_expand_vec_one_operand_perm_avx512): New function.
614         (expand_vec_perm_1): Invoke introduced function.
615         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
616         it may be not valid after vectorization.
617
618 2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
619
620         PR target/63874
621         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
622         typo in comment.  Only force to memory if it is a weak
623         external reference.
624
625 2016-07-04  Matthew Wahab  <matthew.wahab@arm.com>
626             Jiong Wang  <jiong.wang@arm.com>
627
628         * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
629         * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
630         (AARCH64_FL_F16): New.
631         (AARCH64_FL_FOR_ARCH8_2): New.
632         (AARCH64_ISA_8_2): New.
633         (AARCH64_ISA_F16): New.
634         (TARGET_FP_F16INST): New.
635         (TARGET_SIMD_F16INST): New.
636         * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
637         ("fp"): Disabling "fp" also disables "fp16".
638         * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
639         Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
640         and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
641         * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
642
643 2016-07-04  Jan Beulich  <jbeulich@suse.com>
644
645         * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
646
647 2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
648
649         PR target/71720
650         * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
651         the insns, use an insn form that does not adjust the offset on
652         little endian systems.
653
654 2016-07-01  Jan Beulich  <jbeulich@suse.com>
655
656         * varasm.c (get_variable_section): Validate initializer in
657         named .bss-like sections.
658
659 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
660
661         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
662         Exchange the order of the second and third operands in the vpermr
663         instruction tmeplate.
664
665 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
666
667         PR target/71698
668         * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
669         Disallow TDmode values.
670
671 2016-07-01  Alan Modra  <amodra@gmail.com>
672
673         PR rtl-optimization/71709
674         * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
675         being set, not referenced.
676
677 2016-07-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
678
679         PR tree-optimization/70729
680         * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
681         of loop since it can be not valid after transformation.
682
683 2016-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
684
685         * config/arm/arm.c (thumb_reload_in_hi): Delete.
686         * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
687
688 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
689
690         * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
691         for NULL decl.
692
693 2016-06-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
694
695         PR target/71677
696         * config/rs6000/constraints.md (wY constraint): New constraint to
697         match the requirements for the LXSD and STXSD instructions.
698         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
699         predicate to match the requirements for the LXSD and STXSD
700         instructions.
701         * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
702         Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
703         to make sure that the bottom 2 bits of offset are 0, the address
704         form is offsettable, and no updating is done in the address mode.
705         (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
706         (movdi_internal32): Likewise
707         (movdi_internal64): Likewise.
708
709 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
710
711         PR tree-optimization/71707
712         * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
713         strinfo even for ADDR_EXPR ptr.
714
715 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
716
717         * config/rs6000/altivec.md (darn_32): Change the condition to
718         TARGET_P9_MISC instead of TARGET_MODULO.
719         (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
720         condition expression.
721         (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
722         condition expression.
723         * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
724         (DFP_TEST): New code iterator.
725         (dfptstsfi_<code>_mode>): New define_expand.
726         (*dfp_sgnfcnc_<mode>): New define_insn.
727         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
728         definition next to BU_P9_MISC_1 definition and change the MASK
729         value to RS6000_BTM_P9_MISC.
730         (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
731         (BU_P9_64BIT_MISC_0): Likewise.
732         (BU_P9_DFP_MISC_0): New macro definition.
733         (BU_P9_DFP_MISC_1): New macro definition.
734         (BU_P9_DFP_MISC_2): New macro definition.
735         (BU_P9_DFP_OVERLOAD_1): New macro definition.
736         (BU_P9_DFP_OVERLOAD_2): New macro definition.
737         (BU_P9_DFP_OVERLOAD_3): New macro definition.
738         (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
739         (TSTSFI_LT_TD): Likewise.
740         (TSTSFI_EQ_DD): Likewise.
741         (TSTSFI_EQ_TD): Likewise.
742         (TSTSFI_GT_DD): Likewise.
743         (TSTSFI_GT_TD): Likewise.
744         (TSTSFI_OV_DD): Likewise.
745         (TSTSFI_OV_TD): Likewise.
746         (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
747         (TSTSFI_LT_DD): Likewise.
748         (TSTSFI_LT_TD): Likewise.
749         (TSTSFI_EQ): Likewise.
750         (TSTSFI_EQ_DD): Likewise.
751         (TSTSFI_EQ_TD): Likewise.
752         (TSTSFI_GT): Likewise.
753         (TSTSFI_GT_DD): Likewise.
754         (TSTSFI_GT_TD): Likewise.
755         (TSTSFI_OV): Likewise.
756         (TSTSFI_OV_DD): Likewise.
757         (TSTSFI_OV_TD): Likewise.
758         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
759         overloaded test significance functions.
760         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
761         OPTION_MASK_P9_MISC into the representation of this mask.
762         (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
763         of this mask.
764         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
765         RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
766         non-zero.
767         (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
768         argument is a 6-bit unsigned literal value if the icode argument
769         represents a DFP test significance built-in call.
770         (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
771         flag used independently and in combination with the
772         RS6000_BTM_64BIT flag.
773         (rs6000_opt_masks): Add entry for power9-misc command-line option.
774         (rs6000_builtin_mask_names): Add entry for power9-misc
775         command-line option.
776         * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
777         HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
778         RS6000_BTM_P9_MISC macros.
779         * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
780         option and change the description of the -mpower9-vector option to
781         enable only vector instructions, removing its erroneously claimed
782         support for scalar instructions.
783         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
784         the ISA 3.0 digital floating point test significance built-in
785         functions.
786
787 2016-06-30  Wilco Dijkstra  <wdijkstr@arm.com>
788
789         * config/aarch64/aarch64.c (cortexa35_tunings):
790         Enable AES fusion.  Use cortexa57_branch_cost.
791         (cortexa53_tunings): Use cortexa57_branch_cost.
792         (cortexa72_tunings): Use cortexa57_branch_cost.
793         Use AUTOPREFETCHER_WEAK.
794         (cortexa73_tunings): Use cortexa57_branch_cost.
795
796 2016-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
797             James Greenhalgh  <james.greenhalgh@arm.com>
798
799         * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
800         vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
801         vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
802         vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
803         (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
804         vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
805         vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
806         vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
807         vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
808         vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
809         vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
810         vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
811         vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
812         New intrinsics.
813
814 2016-06-30  James Greenhalgh  <james.greenhalgh@arm.com>
815             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
816
817         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
818         New define_insn.
819         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
820
821 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
822
823         PR driver/71651
824         * gcc.c (driver::build_option_suggestions): Pass "option" to
825         add_misspelling_candidates.
826         * opts-common.c (add_misspelling_candidates): Add "option" param;
827         use it to avoid adding negated forms for options marked with
828         RejectNegative.
829         * opts.h (add_misspelling_candidates): Add "option" param.
830
831 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
832
833         PR middle-end/71693
834         * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
835         TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
836         first when permuting bitwise operation with rotate.  Cast
837         TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
838
839 2016-06-29  David Malcolm  <dmalcolm@redhat.com>
840
841         * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
842         for misspelled param names.
843         * params.c: Include spellcheck.h.
844         (find_param_fuzzy): New function.
845         * params.h (find_param_fuzzy): New prototype.
846         * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
847         * spellcheck.h (struct edit_distance_traits<const char *>):
848         ...here.
849
850 2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
851
852         * config/rs6000/predicates.md (const_0_to_7_operand): New
853         predicate, recognize 0..7.
854         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
855         support for doing extracts from V16QImode, V8HImode, V4SImode
856         under ISA 3.0.
857         * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
858         vector extract support.
859         (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
860         for ISA 3.0 vector extract.
861         (VSX_EX): Constraints to use for ISA 3.0 vector extract.
862         (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
863         extracts of a constant element number from small integer vectors
864         on 64-bit ISA 3.0 systems.
865         (vsx_extract_<mode>_di): Likewise.
866         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
867         say when we can do ISA 3.0 vector extracts.
868         * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
869         registers, using the stxsiwx instruction.
870
871 2016-06-29  Jim Wilson  <jim.wilson@linaro.org>
872
873         * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
874         * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
875         qdf24xx_regmove_cost, qdf24xx_tunings): New.
876         * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
877         * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
878         * config/arm/arm.c (arm_qdf24xx_tune): New.
879
880 2016-06-29  Wilco Dijkstra  <wdijkstr@arm.com>
881
882         * config/aarch64/aarch64.c (cortexa53_tunings):
883         Increase loop alignment to 8.  Set function alignment to 16.
884         (cortexa35_tunings): Likewise.
885         (cortexa57_tunings): Increase loop alignment to 8.
886         (cortexa72_tunings): Likewise.
887         (cortexa73_tunings): Likewise.
888
889 2016-06-29  Matthew Wahab  <matthew.wahab@arm.com>
890
891         * doc/sourcebuild.texi (Effective-Target keywords): Add entries
892         for arm_fp16_ok and arm_fp16_hw.
893         (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
894         arm_fp16_alternative.
895
896 2016-06-29  Ilya Enkovich  <ilya.enkovich@intel.com>
897
898         PR tree-optimization/71655
899         * tree-vect-stmts.c (vectorizable_comparison): Swap definition
900         types when swapping operands.
901
902 2016-06-29  Martin Liska  <mliska@suse.cz>
903
904         PR middle-end/71585
905         * common.opt (flag_stack_protect): Mark the flag as optimization flag.
906         * ipa-inline-transform.c (inline_call): Remove unnecessary call
907         of build_optimization_node.
908
909 2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
910
911         PR tree-optimization/70729
912         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
913         independent in loops having positive safelen value.
914         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
915         it may be not valid after vectorization.
916
917 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
918
919         PR tree-optimization/71625
920         * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
921         is sorted by ascending list->offset.  If PTR is non-NULL and there is
922         previous strinfo, call get_stridx_plus_constant.
923         (get_stridx): Pass exp as second argument to get_addr_stridx.
924         (addr_stridxptr): Add missing list = list->next, so that there can be
925         more than one entries in the list.  Bump limit from 16 to 32.  Ensure
926         the list is sorted by ascending list->offset.
927         (get_stridx_plus_constant): Adjust so that it can be also called with
928         ADDR_EXPR instead of SSA_NAME as PTR.
929         (handle_char_store): Pass NULL_TREE as second argument to
930         get_addr_stridx.
931
932 2016-06-29  Richard Biener  <rguenther@suse.de>
933
934         PR rtl-optimization/68961
935         * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
936
937 2016-06-29  Richard Biener  <rguenther@suse.de>
938
939         PR middle-end/71002
940         * alias.c (component_uses_parent_alias_set_from): Handle
941         type punning through union accesses by using the union alias set.
942         * gimple.c (gimple_get_alias_set): Remove union type punning case.
943
944 2016-07-29  Richard Biener  <rguenther@suse.de>
945
946         * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
947         precision not matching mode precision.
948
949 2016-06-28  John David Anglin  <danglin@gcc.gnu.org>
950
951         * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
952         pa_output_arg_descriptor.
953         (call_val_symref_64bit_post_reload): Likewise.
954         (call_val_powf_64bit_post_reload): Likewise.
955         (sibcall_internal_symref_64bit): Likewise.
956         (sibcall_value_internal_symref_64bit): Likewise.
957
958 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
959
960         PR middle-end/71626
961         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
962         a constant, force its SUBREG_REG into memory or register instead
963         of whole op1.
964
965 2016-06-28  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
966
967         PR target/58655
968         * config/avr/avr.opt (-mfract-convert-truncate): Update description.
969         * doc/invoke.texi (AVR Options): Document it.
970
971 2016-06-28  Walter Lee  <walt@tilera.com>
972
973         * config/tilegx/linux.h: Do not include arch/icache.h
974         (CLEAR_INSN_CACHE): Provide inlined definition directly.
975         * config/tilepro/linux.h: Do not include arch/icache.h
976         (CLEAR_INSN_CACHE): Provide inlined definition directly.
977
978 2016-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
979
980         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
981         for big-endian BIT_FIELD_REF.
982
983 2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
984
985         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
986         ('size' attribute): Add '128'.
987         Include power9.md.
988         (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
989         *movdi_internal64, *movdf_update1): Set size attribute to '64'.
990         (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
991         copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
992         *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
993         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
994         *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
995         *trunc<mode>df2_odd): Set size attribute to '128'.
996         (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
997         * config/rs6000/power6.md (power6-fp): Include dfp type.
998         * config/rs6000/power7.md (power7-fp): Likewise.
999         * config/rs6000/power8.md (power8-fp): Likewise.
1000         * config/rs6000/power9.md: New file.
1001         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
1002         * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
1003         *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
1004         htmsimple.
1005         * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
1006         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1007         divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
1008         ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
1009         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
1010         dfp_dscri_<mode>): Change type attribute to dfp.
1011         * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
1012         attribute to vecsimple.
1013         * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
1014         and prefetch streams.
1015         (rs6000_option_override_internal): Remove temporary code setting
1016         tuning to power8.  Don't set rs6000_sched_groups for power9.
1017         (last_scheduled_insn): Change to rtx_insn *.
1018         (divide_cnt, vec_load_pendulum): New variables.
1019         (rs6000_adjust_cost): Add Power9 to test for store->load separation.
1020         (rs6000_issue_rate): Set issue rate for Power9.
1021         (is_power9_pairable_vec_type): New.
1022         (power9_sched_reorder2): New.
1023         (rs6000_sched_reorder2): Call new function for Power9 specific
1024         reordering.
1025         (insn_must_be_first_in_group): Remove Power9.
1026         (insn_must_be_last_in_group): Likewise.
1027         (force_new_group): Likewise.
1028         (rs6000_sched_init): Fix initialization of last_scheduled_insn.
1029         Initialize divide_cnt/vec_load_pendulum.
1030         (_rs6000_sched_context, rs6000_init_sched_context,
1031         rs6000_set_sched_context): Handle context save/restore of new
1032         variables.
1033
1034 2016-06-28  Richard Biener  <rguenther@suse.de>
1035
1036         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1037         Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
1038         COMPONENT_REF operand.
1039         (nonoverlapping_component_refs_p): Likewise.
1040         * stor-layout.c (start_bitfield_representative): Mark
1041         DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
1042
1043 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
1044
1045         * Makefile.in: Don't cat ../stage_current if it does not exist.
1046
1047         * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
1048         last argument is a bit-field.
1049
1050         PR rtl-optimization/71673
1051         * internal-fn.c (expand_arith_overflow_result_store): Use
1052         OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
1053         expand_simple_binop.
1054
1055         PR middle-end/66867
1056         * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
1057         expand_ifn_atomic_compare_exchange): New functions.
1058         * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
1059         * tree.h (build_call_expr_internal_loc): Rename to ...
1060         (build_call_expr_internal_loc_array): ... this.  Fix up type of
1061         last argument.
1062         * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
1063         * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
1064         ATOMIC_COMPARE_EXCHANGE result.
1065         * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
1066         * gimple-fold.h (optimize_atomic_compare_exchange_p,
1067         fold_builtin_atomic_compare_exchange): New prototypes.
1068         * gimple-fold.c (optimize_atomic_compare_exchange_p,
1069         fold_builtin_atomic_compare_exchange): New functions..
1070         * tree-ssa.c (execute_update_addresses_taken): If
1071         optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
1072         of call when finding addressable vars, and if such var becomes
1073         non-addressable, call fold_builtin_atomic_compare_exchange.
1074
1075 2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
1076
1077         PR target/71670
1078         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
1079         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
1080
1081 2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
1082
1083         * config/rs6000/rs6000.md ('type' attribute): Add
1084         veclogical,veccmpfx,vecexts,vecmove insn types.
1085         (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
1086         copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
1087         p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
1088         (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
1089         *nabs<mode>2_hw): Change type to vecmove.
1090         (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
1091         *boolcc<mode>3_internal, *eqv<mode>3_internal,
1092         *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
1093         *ieee_128bit_vsx_abs<mode>2_internal,
1094         *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
1095         *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
1096         *ieee128_mtvsrd_32bit): Change type to veclogical.
1097         (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
1098         *movdi_internal32, *movdi_internal64): Update insn types.
1099         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
1100         vsx_extract_<mode>): Change type to veclogical.
1101         (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
1102         (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
1103         *vsx_sign_extend_si_v2di): Change type to vecexts.
1104         * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
1105         type to veclogical.
1106         (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
1107         *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
1108         *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
1109         (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
1110         * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1111         negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
1112         * config/rs6000/40x.md (ppc405-float): Add fpsimple.
1113         * config/rs6000/440.md (ppc440-fp): Add fpsimple.
1114         * config/rs6000/476.md (ppc476-fp): Add fpsimple.
1115         * config/rs6000/601.md (ppc601-fp): Add fpsimple.
1116         * config/rs6000/603.md (ppc603-fp): Add fpsimple.
1117         * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
1118         * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
1119         (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
1120         * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
1121         (ppc7450-vecsimple): Add veclogical, vecmove.
1122         (ppc7450-veccmp): Add veccmpfx.
1123         * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
1124         vecmove.
1125         (ppc8540_vector_compare): Add veccmpfx.
1126         * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
1127         * config/rs6000/cell.md (cell-fp): Add fpsimple.
1128         (cell-vecsimple): Add veclogical, vecmove.
1129         (cell-veccmp): Add veccmpfx.
1130         * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
1131         * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
1132         veccmpfx.
1133         * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
1134         * config/rs6000/power4.md (power4-fp): Add fpsimple.
1135         (power4-vecsimple): Add veclogical, vecmove.
1136         (power4-veccmp): Add veccmpfx.
1137         * config/rs6000/power5.md (power5-fp): Add fpsimple.
1138         * config/rs6000/power6.md (power6-fp): Add fpsimple.
1139         (power6-vecsimple): Add veclogical, vecmove.
1140         (power6-veccmp): Add veccmpfx.
1141         * config/rs6000/power7.md (power7-fp): Add fpsimple.
1142         (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
1143         * config/rs6000/power8.md (power8-fp): Add fpsimple.
1144         (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
1145         * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
1146         * config/rs6000/titan.md (titan_fp): Add fpsimple.
1147         * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
1148         fpsimple.
1149         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
1150
1151 2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
1152
1153         PR target/71656
1154         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
1155         OPTION_MASK_P9_DFORM_VECTOR.
1156         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
1157         disable -mpower9-dform-vector when using reload.
1158         (quad_address_p): Remove 'gpr_p' argument and all associated code.
1159         New 'strict' argument.  Update all callers.  Add strict addressing
1160         support.
1161         (rs6000_legitimate_offset_address_p): Remove call to
1162         virtual_stack_registers_memory_p.
1163         (rs6000_legitimize_reload_address): Add quad address support.
1164         (rs6000_legitimate_address_p): Move call to quad_address_p above
1165         call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
1166         to account for new strict usage.
1167         (rs6000_output_move_128bit): Adjust quad_address_p args to account
1168         for new strict usage.
1169         * config/rs6000/predicates.md (quad_memory_operand): Likewise.
1170
1171 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
1172
1173         PR target/70902
1174         PR target/71453
1175         PR target/71555
1176         PR target/71596
1177         PR target/71657
1178         * config/i386/i386.c (ix86_spill_class): Disable condition to
1179         always return NO_REGS.
1180
1181 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
1182
1183         * predict.c: Include gimple-pretty-print.h
1184         (predicted_by_loop_heuristics_p): Check also
1185         PRED_LOOP_EXIT_WITH_RECURSION
1186         (predict_loops): Find self recursive calls and use special purpose
1187         predictors for them; dump log about decisions.
1188         (pass_profile::execute): Dump info about #of iterations.
1189         * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
1190         (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
1191
1192 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
1193
1194         * config/pa/pa.c (pa_output_indirect_call): Rework to combine
1195         output_asm_insn calls and shorten long lines.  Output .CALL
1196         argument descriptor using pa_output_arg_descriptor.  Add various
1197         inline $$dyncall and other optimizations.
1198         (pa_attr_length_indirect_call): Adjust ordering and lengths.
1199
1200 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
1201
1202         PR tree-optimization/71643
1203         * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
1204         EH preds.
1205
1206         * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
1207         leak a bitmap if dep_bb is NULL.
1208
1209         PR tree-optimization/71631
1210         * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
1211         to rewrite_expr_tree even if negate_result, move new_lhs var
1212         declaration and initialization earlier, for powi_result set afterwards
1213         new_lhs to lhs.  For negate_result, use new_lhs instead of tmp
1214         if new_lhs != lhs, and don't shadow gsi var.
1215
1216 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
1217
1218         * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
1219         Add in_loop parameter.
1220         (predict_loops): Add loop guard heuristics.
1221         * predict.def (PRED_LOOP_GUARD): New heuristics.
1222
1223 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
1224
1225         * predict.c: Include ipa-utils.h
1226         (tree_bb_level_prediction): Predict recursive calls.
1227         (tree_estimate_probability_bb): Skip inexpensive calls for call
1228         predictor.
1229         * predict.def (PRED_RECURSIVE_CALL): New.
1230
1231 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1232
1233         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
1234         (BU_FLOAT128_1): Likewise.
1235         (FABSQ): Likewise.
1236         (COPYSIGNQ): Likewise.
1237         (RS6000_BUILTIN_NANQ): Likewise.
1238         (RS6000_BUILTIN_NANSQ): Likewise.
1239         (RS6000_BUILTIN_INFQ): Likewise.
1240         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
1241         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
1242         (TARGET_FOLD_BUILTIN): New #define.
1243         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
1244         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
1245         (rs6000_fold_builtin): New target hook implementation, handling
1246         folding of 128-bit NaNs and infinities.
1247         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
1248         entries are filled in to avoid problems during bootstrap
1249         self-test; define builtins for 128-bit NaNs and infinities.
1250         (rs6000_opt_mask): Add entry for float128.
1251         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
1252         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
1253         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
1254         (const_str_type_node): New #define.
1255         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
1256         to a define_expand that dispatches to either copysign<mode>3_soft
1257         or copysign<mode>3_hard.
1258         (copysign<mode>3_hard): Rename from copysign<mode>3.
1259         (copysign<mode>3_soft): New define_insn.
1260         * doc/extend.texi: Document new builtins.
1261
1262 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1263
1264         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
1265         PRIu64 instead of lu.
1266
1267 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
1268
1269         PR debug/71642
1270         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
1271         copy the type name.
1272
1273 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1274
1275         PR tree-optimization/71647
1276         * omp-low.c (lower_rec_input_clauses): Convert
1277         omp_clause_aligned_alignment (c) to size_type_node for the
1278         last argument of __builtin_assume_aligned.
1279
1280 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1281
1282         * configure.ac (calling ___tls_get_addr via GOT): New
1283         assembler/linker check.
1284         (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
1285         assembler and linker supports calling ___tls_get_addr via GOT.
1286         Otherise, defined to 0.
1287         * config.in: Regenerated.
1288         * configure: Likewise.
1289         * config/i386/constraints.md (Yb): New constraint.
1290         * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
1291         (REG_CLASS_NAMES): Likewise.
1292         (REG_CLASS_CONTENTS): Likewise.
1293         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
1294         the b constraint with the Yb constraint.  Call ___tls_get_addr
1295         via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
1296         is 1.
1297         (*tls_local_dynamic_base_32_gnu): Likewise.
1298         (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
1299         GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
1300         (*tls_local_dynamic_base_64_<mode>): Likewise.
1301
1302 2016-06-24  Martin Liska  <mliska@suse.cz>
1303
1304         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
1305         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
1306         few functions.
1307         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
1308         argument to true if the expected number of iterations is
1309         loop-based.
1310
1311 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
1312
1313         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
1314         assemble for 32bit target.
1315         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
1316         and $ld_ix86_gld_32_opt to link for 32bit target.
1317         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
1318         * configure: Regenerate.
1319
1320 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1321
1322         * config/arm/arm.c (int_log2): Delete definition and prototype.
1323         (shift_op): Use exact_log2 instead of int_log2.
1324         (vfp3_const_double_for_fract_bits): Likewise.
1325
1326 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1327
1328         * internal-fn.c (expand_arith_set_overflow): New function.
1329         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
1330         Use it.
1331         (expand_arith_overflow_result_store): Likewise.  Handle precision
1332         smaller than mode precision.
1333         * tree-vrp.c (extract_range_basic): For imag part, handle
1334         properly signed 1-bit precision result.
1335         * doc/extend.texi (__builtin_add_overflow): Document that last
1336         argument can't be pointer to enumerated or boolean type.
1337         (__builtin_add_overflow_p): Document that last argument can't
1338         have enumerated or boolean type.
1339
1340 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1341             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1342
1343         * config/rs6000/predicates.md (splat_input_operand): Rework.
1344         Don't allow constants, since the insns that use this predicate
1345         don't support constants.  Constants are handled by other insns
1346         that are created via combine.  During and after register
1347         allocation, only allow indexed or indirect addresses, and not
1348         general addresses.  Only allow modes supported by the hardware.
1349         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
1350         comment.  Move check for using VSPLTIS<x> to a common location,
1351         instead of doing it in two different places.
1352
1353 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
1354
1355         * config/i386/driver-i386.c (host_detect_local_cpu): Set
1356         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
1357         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
1358         signature_CENTAUR_ebx.
1359
1360 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
1361
1362         PR target/66232
1363         PR target/67400
1364         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
1365         (as_ix86_gas_32_opt): This.
1366         (ld_ix86_tls_ldm_opt): Renamed to ...
1367         (ld_ix86_gld_32_opt): This.
1368         (R_386_TLS_LDM reloc): Updated.
1369         (R_386_GOT32X reloc): New assembler/linker check.
1370         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
1371         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
1372         defined to 0.
1373         * config.in: Regenerated.
1374         * configure: Likewise.
1375         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
1376         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
1377         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
1378         if ix86_force_load_from_GOT_p returns true.
1379         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
1380         ix86_force_load_from_GOT_p returns true.
1381         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
1382         the external function address via the GOT slot.
1383         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
1384         HAVE_AS_IX86_GOT32X before returning false.
1385         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
1386         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
1387
1388 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
1389
1390         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
1391
1392 2016-06-23  Andi Kleen  <ak@linux.intel.com>
1393
1394         * Makefile.in: Regenerate.
1395         * doc/install.texi: Document autoprofiledbootstrap.
1396
1397 2016-06-23  Andi Kleen  <ak@linux.intel.com>
1398
1399         * config/i386/gcc-auto-profile: New file.
1400
1401 2016-06-23  Martin Liska  <mliska@suse.cz>
1402
1403         PR middle-end/71619
1404         * predict.c (predict_loops): Revert the hunk that was removed
1405         in r237103.
1406
1407 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
1408
1409         * config.gcc: Add support for arm*-*-phoenix* targets.
1410         * config/arm/t-phoenix: New.
1411         * config/phoenix.h: New.
1412
1413 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
1414             H.J. Lu  <hongjiu.lu@intel.com>
1415
1416         PR target/67400
1417         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
1418         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
1419         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
1420         ix86_force_load_from_GOT_p returns true.
1421         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
1422         ix86_force_load_from_GOT_p returns true.
1423         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
1424         ix86_force_load_from_GOT_p returns true.
1425         (ix86_expand_move): Load the external function address via the
1426         GOT slot if ix86_force_load_from_GOT_p returns true.
1427         * config/i386/predicates.md (x86_64_immediate_operand): Return
1428         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
1429         (x86_64_zext_immediate_operand): Ditto.
1430
1431 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
1432
1433         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
1434
1435 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1436
1437         PR c/70339
1438         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
1439         * diagnostic.c (pedwarn_at_rich_loc): New function.
1440         * spellcheck.h (best_match::best_match): Add a
1441         "best_distance_so_far" optional parameter.
1442         (best_match::set_best_so_far): New method.
1443         (best_match::get_best_distance): New accessor.
1444         (best_match::get_best_candidate_length): New accessor.
1445
1446 2016-06-22  Nick Clifton  <nickc@redhat.com>
1447
1448         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
1449         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
1450         modes are accepted as well.
1451         (ucompare_loc_descriptor): Likewise.
1452         (minmax_loc_descriptor): Likewise.
1453         (clz_loc_descriptor): Likewise.
1454         (popcount_loc_descriptor): Likewise.
1455         (bswap_loc_descriptor): Likewise.
1456         (rotate_loc_descriptor): Likewise.
1457         (mem_loc_descriptor): Likewise.
1458         (loc_descriptor): Likewise.
1459
1460 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1461
1462         * common.opt (fdiagnostics-parseable-fixits): New option.
1463         * diagnostic.c: Include "selftest.h".
1464         (print_escaped_string): New function.
1465         (print_parseable_fixits): New function.
1466         (diagnostic_report_diagnostic): Call print_parseable_fixits.
1467         (selftest::assert_print_escaped_string): New function.
1468         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
1469         (selftest::test_print_escaped_string): New function.
1470         (selftest::test_print_parseable_fixits_none): New function.
1471         (selftest::test_print_parseable_fixits_insert): New function.
1472         (selftest::test_print_parseable_fixits_remove): New function.
1473         (selftest::test_print_parseable_fixits_replace): New function.
1474         (selftest::diagnostic_c_tests): New function.
1475         * diagnostic.h (struct diagnostic_context): Add field
1476         "parseable_fixits_p".
1477         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
1478         -fdiagnostics-parseable-fixits.
1479         (-fdiagnostics-parseable-fixits): New option.
1480         * opts.c (common_handle_option): Handle
1481         -fdiagnostics-parseable-fixits.
1482         * selftest-run-tests.c (selftest::run_tests): Call
1483         selftest::diagnostic_c_tests.
1484         * selftest.h (selftest::diagnostic_c_tests): New prototype.
1485
1486 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
1487
1488         PR tree-optimization/71488
1489         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
1490         comparison of boolean vectors.
1491         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
1492         of boolean vectors using bitwise operations.
1493
1494 2016-06-22  Andreas Schwab  <schwab@suse.de>
1495
1496         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
1497         Remove declaration.
1498
1499 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
1500
1501         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
1502
1503 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1504
1505         * config/i386/i386.c (print_reg): Emit an error message on attempt to
1506         print FLAGS_REG.
1507
1508 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1509
1510         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
1511         * config/arm/arm-cores.def (cortex-a73): New entry.
1512         (cortex-a73.cortex-a35): Likewise.
1513         (cortex-a73.cortex-a53): Likewise.
1514         * config/arm/arm-tables.opt: Regenerate.
1515         * config/arm/arm-tune.md: Likewise.
1516         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
1517         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
1518         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
1519         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
1520         * doc/invoke.texi (ARM Options): Document cortex-a73,
1521         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
1522
1523 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1524
1525         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
1526         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
1527         (cortex-a73.cortex-a35): Likewise.
1528         (cortex-a73.cortex-a53): Likewise.
1529         * config/aarch64/aarch64-tune.md: Regenerate.
1530         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
1531         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
1532         -mcpu and -mtune.
1533
1534 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1535
1536         * configure.ac (gcc_cv_as_compress_debug): Remove
1537         --compress-debug-sections as extra as switch.
1538         Handle gas --compress-debug-sections=type.
1539         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
1540         Handle gld --compress-debug-sections=type.
1541         * configure: Regenerate.
1542
1543 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
1544
1545         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
1546
1547 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
1548
1549         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
1550         (do_rewrite): likewise.
1551
1552 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1553
1554         * common/config/mep/mep-common.c: Remove.
1555         * config.gcc: Remove mep-* support.
1556         * config/mep/constraints.md: Remove.
1557         * config/mep/default.h: Remove.
1558         * config/mep/intrinsics.h: Remove.
1559         * config/mep/intrinsics.md: Remove.
1560         * config/mep/ivc2-template.h: Remove.
1561         * config/mep/mep-c5.cpu: Remove.
1562         * config/mep/mep-core.cpu: Remove.
1563         * config/mep/mep-default.cpu: Remove.
1564         * config/mep/mep-ext-cop.cpu: Remove.
1565         * config/mep/mep-intrin.h: Remove.
1566         * config/mep/mep-ivc2.cpu: Remove.
1567         * config/mep/mep-pragma.c: Remove.
1568         * config/mep/mep-protos.h: Remove.
1569         * config/mep/mep.c: Remove.
1570         * config/mep/mep.cpu: Remove.
1571         * config/mep/mep.h: Remove.
1572         * config/mep/mep.md: Remove.
1573         * config/mep/mep.opt: Remove.
1574         * config/mep/predicates.md: Remove.
1575         * config/mep/t-mep: Remove.
1576         * doc/install.texi: Remove mep-* documentation.
1577         * doc/md.texi: Likewise.
1578
1579 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1580
1581         * config.gcc: Remove support for avr-rtems.
1582         * config/avr/gen-avr-mmcu-specs.c: Likewise.
1583         * config/avr/rtems.h: Remove.
1584         * config/avr/t-rtems: Remove.
1585
1586 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1587
1588         * config.gcc: Remove m32r-rtems support.
1589         * config/m32r/rtems.h: Remove.
1590
1591 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1592
1593         * config.gcc: Remove h8300-rtems support.
1594         * config/h8300/rtems.h: Remove.
1595         * config/h8300/t-rtems: Remove.
1596
1597 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1598
1599         * config.gcc: Remove support for knetbsd.
1600         * configure.ac: Likewise.
1601         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
1602         * config/knetbsd-gnu.h: Remove.
1603         * configure: Regenerate.
1604
1605 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1606
1607         * config.gcc: Remove support for openbsd 2 and 3.
1608         * config/openbsd-oldgas.h: Remove.
1609
1610 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1611
1612         * config.gcc: Remove interix support.
1613         * config/i386/i386-interix.h: Remove.
1614         * config/i386/interix.opt: Remove.
1615         * config/i386/t-interix: Remove.
1616         * configure: Regenerate.
1617         * configure.ac: Remove interix support.
1618         * doc/install.texi: Remove interix documentation.
1619
1620 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1621
1622         * config/rs6000/rs6000.h: Add conditional preprocessing directives
1623         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
1624         not defined.
1625
1626 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1627
1628         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
1629         they are both PLACEHOLDER_EXPRs.
1630
1631 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1632
1633         * stor-layout.c (layout_type): Move setting complex MODE to
1634         layout_type, instead of setting it ahead of time by the caller.
1635         * tree.c (build_complex_type): Likewise.
1636
1637 2016-06-21  Martin Liska  <mliska@suse.cz>
1638
1639         * predict.c (force_edge_cold): Replace imposisble with
1640         impossible.
1641
1642 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
1643
1644         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
1645         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
1646
1647 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
1648
1649         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
1650
1651 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1652             Ilya Enkovich  <ilya.enkovich@intel.com>
1653
1654         PR target/71549
1655         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
1656         New member function to convert V1TImode register to SUBREG
1657         TImode in debug insn.
1658         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
1659         after changing register mode to V1TImode.
1660
1661 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
1662
1663         * config/aarch64/aarch64-cores.def (vulcan): New core.
1664         * config/aarch64/aarch64-tune.md: Regenerate.
1665         * doc/invoke.texi: Document vulcan as an available option.
1666
1667 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1668
1669         * cse.c (canon_asm_operands): New function extracted from...
1670         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
1671         either standalone or member of a PARALLEL.
1672
1673 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
1674
1675         PR target/30417
1676         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
1677         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
1678         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
1679
1680 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
1681
1682         PR target/71103
1683         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
1684         constant addresses if can_create_pseudo_p.
1685
1686 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
1687
1688         PR tree-optimization/71588
1689         * tree-ssa-strlen.c (valid_builtin_call): New function.
1690         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
1691         it.
1692
1693 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
1694
1695         PR middle-end/71581
1696         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
1697         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
1698         for conversion of scalar user var to complex type and use the
1699         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
1700         punt.
1701
1702         PR rtl-optimization/71591
1703         * toplev.c (toplev::run_self_tests): If no_backend, complain and
1704         don't run any tests.
1705
1706 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
1707
1708         PR target/71571
1709         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
1710         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
1711         space for PIC with non-v32 and the common non-PIC "jump".
1712
1713 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
1714
1715         PR target/71559
1716         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
1717         returned values and add UN*/LTGT/*ORDERED cases with values matching
1718         D operand modifier on vcmp for AVX.
1719
1720 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1721
1722         * config/aarch64/aarch64.opt
1723         (mpc-relative-literal-loads): Rename internal option name.
1724         * config/aarch64/aarch64.c
1725         (aarch64_nopcrelative_literal_loads): Rename to
1726         aarch64_pcrelative_literal_loads.
1727         (aarch64_expand_mov_immediate): Likewise.
1728         (aarch64_secondary_reload): Likewise.
1729         (aarch64_can_use_per_function_literal_pools_p): Likewise.
1730         (aarch64_override_options_after_change_1): Rename and simplify logic.
1731         (aarch64_classify_symbol): Merge large model checks into switch,
1732         remove pc-relative load check.
1733
1734 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1735
1736         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
1737         costs relative to the cost of a register move.
1738
1739 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1740
1741         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
1742         (vcvt_n_f64_u64): Likewise.
1743         (vcvt_n_s64_f64): Likewise.
1744         (vcvt_n_u64_f64): Likewise.
1745         (vcvt_f64_s64): Likewise.
1746         (vrecpe_f64): Likewise.
1747         (vcvt_f64_u64): Likewise.
1748         (vrecps_f64): Likewise.
1749
1750 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1751
1752         * config/aarch64/aarch64.md
1753         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
1754         iterators.
1755         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
1756         attributes.
1757         * config/aarch64/aarch64-builtins.c
1758         (aarch64_types_binop_uss_qualifiers): Delete.
1759         (TYPES_BINOP_USS): Likewise.
1760         (aarch64_types_binop_sus_qualifiers): Likewise.
1761         (TYPES_BINOP_SUS): Likewise.
1762         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
1763         (TYPES_FCVTIMM_SUS): Likewise.
1764         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
1765         rather than BINOP.
1766         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
1767         (fcvtzs): Use SHIFTIMM rather than BINOP.
1768         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
1769
1770 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1771
1772         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
1773         costs relative to the cost of a register move.
1774
1775 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1776
1777         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
1778         Allow scalar/single vector modes to be tieable.
1779
1780 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1781
1782         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
1783
1784 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1785
1786         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
1787         "alignement".
1788         * tree.h (TYPE_ALIGN): Likewise.
1789
1790 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
1791
1792         PR target/71103
1793         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
1794
1795 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
1796
1797         * config/avr/avr.c (avr_print_operand): Fix "format not a string
1798         literal" build warnings.
1799         (avr_print_operand_address): Dito.
1800
1801 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
1802
1803         PR target/71375
1804         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
1805         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
1806
1807 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
1808
1809         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
1810
1811 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
1812
1813         PR bootstrap/71435
1814         * reload1.c (reload): Pass 0 to finish_spills when called because
1815         update_eliminables_and_spill returns true and remove did_spill.
1816         (finish_spills): Adjust comment and document GLOBAL parameter.
1817
1818 2016-06-17  DJ Delorie  <dj@redhat.com>
1819
1820         PR target/71338
1821         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
1822         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
1823         (umulqihi3_virt): Likewise.
1824         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
1825         (umulqihi3_real): Likewise.
1826
1827 2016-06-17  Martin Liska  <mliska@suse.cz>
1828
1829         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
1830
1831 2016-06-17  Martin Liska  <mliska@suse.cz>
1832
1833         * predict.def: PRED_LOOP_EXIT from 92 to 85.
1834
1835 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
1836
1837         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
1838         __FAST_MATH__.
1839         (vaddq_f32): Likewise.
1840         (vmul_f32): Likewise.
1841         (vmulq_f32): Likewise.
1842         (vsub_f32): Likewise.
1843         (vsubq_f32): Likewise.
1844
1845 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
1846
1847         PR tree-optimization/71347
1848         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
1849         cost for all uses in group.
1850
1851 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
1852
1853         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
1854         insert gimple seq if it's not empty.
1855
1856 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
1857
1858         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
1859         member OFFSET.
1860         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
1861         rather than OFFSET.
1862         (comp_dr_with_seg_len_pair): Ditto.
1863         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
1864         struct dr_with_seg_len_pair against DR_OFFSET.
1865         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
1866         DR_OFFSET directly.
1867
1868 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1869
1870         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
1871
1872 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
1873
1874         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
1875         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
1876         (pa_output_millicode_call): Likewise.
1877         (pa_output_call): Likewise.
1878         (pa_output_indirect_call): Likewise.
1879         (pa_asm_output_mi_thunk): Likewise.
1880
1881 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1882
1883         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
1884
1885 2016-06-16  Martin Liska  <mliska@suse.cz>
1886
1887         * predict.c (combine_predictions_for_insn): When we find a first
1888         match predictor, we should consider just predictors with
1889         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
1890         DS theory predictor.
1891         (combine_predictions_for_bb): Likewise.
1892
1893 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
1894
1895         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
1896         with base of reference to struct.
1897
1898 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
1899
1900         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
1901
1902 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1903
1904         PR target/71151
1905         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
1906         progmem_swtable_section.
1907         (progmem_swtable_section): Remove.
1908         (avr_asm_function_rodata_section): Remove.
1909         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
1910         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
1911
1912 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
1913
1914         * config/i386/driver-i386.c (host_detect_local_cpu): Set
1915         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
1916         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
1917         signature_CENTAUR_ebx.
1918         * config/i386/i386.c (ix86_option_override_internal): Add
1919         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
1920         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
1921         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
1922
1923 2016-06-16  Martin Liska  <mliska@suse.cz>
1924
1925         * predict.def: Add fortran loop preheader predictor.
1926         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
1927         fold IFN_BUILTIN_EXPECT with a known constant argument.
1928
1929 2016-06-16  Martin Liska  <mliska@suse.cz>
1930
1931         * predict.def: Add 'Fortran' to display text of all
1932         PRED_FORTRAN_* predictors.
1933
1934 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
1935
1936         PR target/71242
1937         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
1938         [IA64_BUILTIN_NANSQ]: Ditto.
1939         (ia64_fold_builtin): New function.
1940         (TARGET_FOLD_BUILTIN): New define.
1941         (ia64_init_builtins) Declare const_string_type node.
1942         Add __builtin_nanq and __builtin_nansq builtin functions.
1943         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
1944
1945 2016-06-16  Nick Clifton  <nickc@redhat.com>
1946
1947         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
1948         MSP430_HWMULT_ prefix to enum values.
1949         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
1950         * config/msp430/msp430.c: Update use of enum values.
1951         * config/msp430/msp430.md: Likewise.
1952         * config/msp430/msp430.opt: Likewise.
1953
1954 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
1955
1956         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
1957         of comparsions in the last iteration.
1958
1959 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
1960             Joern Rennecke  <joern.rennecke@embecosm.com>
1961
1962         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
1963         addresses.
1964         (arc_needs_pcl_p): Add GOTOFFPC.
1965         (arc_legitimate_pic_addr_p): Likewise.
1966         (arc_output_pic_addr_const): Likewise.
1967         (arc_legitimize_pic_address): Generate a pc-relative address using
1968         GOTOFFPC.
1969         (arc_output_libcall): Use @pcl syntax.
1970         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
1971         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
1972         (*movsi_insn): Use @pcl syntax.
1973         (doloop_begin_i): Likewise.
1974
1975 2016-06-16  Martin Liska  <mliska@suse.cz>
1976
1977         * predict.def: Define a new predictor.
1978
1979 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
1980
1981         * config/arc/arc.opt (mtp-regno): Update text.
1982
1983 2016-06-16  Renlin Li  <renlin.li@arm.com>
1984
1985         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
1986
1987 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
1988
1989         PR target/71554
1990         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
1991         (setcc + and peephole2): Likewise.
1992
1993         PR rtl-optimization/71532
1994         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
1995         memory slots.
1996
1997 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
1998
1999         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
2000         DImode constants with XXSPLTIB in vector registers.
2001         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
2002         vsx_extract_<mode>_internal{1,2} into a single insn that handles
2003         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
2004         extraction of the element at the top of the register as a scalar
2005         value.
2006         (vsx_extract_<mode>_internal1): Likewise.
2007         (vsx_extract_<mode>_internal2): Likewise.
2008         * config/rs6000/constraints.md (wi constraint): Remove a comment
2009         about DImode not being allowed in Altivec registers.
2010         (wB constraint): New constraint for constants that can be
2011         generated in Altivec registers with VSPLTISW/VUPKHSW.
2012         * config/rs6000/predicates.md (xxspltib_constant_split): Update
2013         comments.
2014         (xxspltib_constant_nosplit): Likewise.
2015         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
2016         support for -mupper-regs-di to enable DImode to go into Altivec
2017         registers.
2018         (POWERPC_MASKS): Likewise.
2019         (power7 cpu): Likewise.
2020         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
2021         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
2022         for DImode being allowed in Altivec registers.  Update wi/wj
2023         constraints.  Set scalar_in_vmx_p flag.
2024         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
2025         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
2026         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
2027         (rs6000_opt_masks): Add -mupper-regs-di.
2028         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
2029         direct move to use wi and not wj.
2030         (lfiwzx): Likewise.
2031         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
2032         alternative.
2033         (floatunssi<mode>2_lfiwzx_mem): Likewise.
2034         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
2035         any VSX register, instead of just Altivec registers, to allow
2036         either operand to be an Altivec register or both.
2037         (fixuns_trunc<mode>di2_fctiduz): Likewise.
2038         (movdi_internal32): Add support for -mupper-regs-di.  Add support
2039         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
2040         the alternatives and attributes to be lined up to be easier to
2041         read.
2042         (movdi_internal64): Likewise.
2043         (64-bit DImode splitters): Change predicates to only split loading
2044         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
2045         load constants in ISA 3.0 or ISA 2.07 respectively.
2046         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2047         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
2048         mention -mcpu=power9 sets these options.
2049         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
2050         wB constraint.
2051
2052 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
2053
2054         PR target/67353
2055         * config/avr/avr.c (avr_set_current_function): Warn misspelled
2056         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
2057         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
2058         by default to warn misspelled interrupt/ signal handler.
2059         * doc/invoke.texi (AVR Options): Document it. Update description
2060         for -nodevicelib option.
2061
2062 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2063
2064         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
2065         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
2066         (aarch64_<sur>shll2_n<mode>): Likewise.
2067
2068 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
2069
2070         PR middle-end/71529
2071         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
2072         DECL_CONTEXT for copied arguments.
2073
2074 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
2075
2076         PR tree-optimization/71483
2077         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
2078         for slp
2079
2080 2016-06-15  Martin Liska  <mliska@suse.cz>
2081
2082         * predict.c (tree_predict_by_opcode): Call predict_edge_def
2083         instead of predict_edge w/o a probability.
2084
2085 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
2086
2087         PR tree-optimization/71439
2088         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
2089         live PHIs.
2090
2091 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2092
2093         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
2094         register subregs in SET_SRC.
2095
2096 2016-06-15  Richard Biener  <rguenther@suse.de>
2097
2098         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
2099         store restrictions.
2100
2101 2016-06-15  Richard Biener  <rguenther@suse.de>
2102
2103         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
2104         not consider dependences between accesses that belong to the
2105         same group.
2106         (vect_analyze_data_ref_dependences): Do not analyze read-read
2107         or self-dependences.
2108
2109 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2110
2111         * spellcheck-tree.c: Include spellcheck-tree.h rather than
2112         spellcheck.h.
2113         (find_closest_identifier): Reimplement in terms of
2114         best_match<tree,tree>.
2115         * spellcheck-tree.h: New file.
2116         * spellcheck.c (struct edit_distance_traits<const char *>): New
2117         struct.
2118         (find_closest_string): Reimplement in terms of
2119         best_match<const char *, const char *>.
2120         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
2121         overload to spellcheck-tree.h.
2122         (find_closest_identifier): Likewise.
2123         (struct edit_distance_traits<T>): New template.
2124         (class best_match): New class.
2125
2126 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2127
2128         * selftest-run-tests.c (selftest::run_tests): Call
2129         selftest::spellcheck_tree_c_tests.
2130         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
2131         * spellcheck-tree.c: Include selftest.h and stringpool.h.
2132         (selftest::test_find_closest_identifier): New function.
2133         (selftest::spellcheck_tree_c_tests): New function.
2134         * spellcheck.c (selftest::test_find_closest_string): Verify that
2135         the order of the vec does not affect the results for this case.
2136         (selftest::test_data): New array.
2137         (selftest::test_metric_conditions): New function.
2138         (selftest::spellcheck_c_tests): Add a test of case-comparison.
2139         Call selftest::test_metric_conditions.
2140
2141 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2142
2143         * config/rs6000/rs6000-builtin.def (commentary): Typo.
2144         (BU_P9_MISC_1): Likewise.
2145         (BU_P9_64BIT_MISC_0): Likewise.
2146         (BU_P9_MISC_0): Likewise.
2147
2148 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2149
2150         * gcc-rich-location.c
2151         (gcc_rich_location::add_fixit_misspelled_id): New method.
2152         * gcc-rich-location.h
2153         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
2154
2155 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
2156
2157         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
2158         FreeBSD 11 and above.
2159
2160 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
2161
2162         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
2163
2164 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2165
2166         * expmed.h: Close parenthesis in "at your option" in copyright
2167         boilerplate.
2168         * lower-subreg.h: Likewise.
2169
2170 2016-06-14  Richard Biener  <rguenther@suse.de>
2171
2172         PR middle-end/71526
2173         * genmatch.c (expr::gen_transform): Use in_type for comparisons
2174         if available.
2175
2176 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2177
2178         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
2179         New function.
2180         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
2181         mask+shift version.
2182         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
2183         New prototype.
2184         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
2185         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
2186
2187 2016-06-14  Richard Biener  <rguenther@suse.de>
2188
2189         PR tree-optimization/71522
2190         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
2191         copying into float copying.
2192
2193 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
2194
2195         PR tree-optimization/71520
2196         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
2197         (replace_block_by): Move user labels from bb1 to bb2.
2198
2199 2016-06-14  Richard Biener  <rguenther@suse.de>
2200
2201         PR middle-end/71310
2202         PR bootstrap/71510
2203         * expr.h (get_bit_range): Declare.
2204         * expr.c (get_bit_range): Export.
2205         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
2206         word_mode again to constrain the bitfield access.
2207
2208 2016-06-14  Richard Biener  <rguenther@suse.de>
2209
2210         PR tree-optimization/71521
2211         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
2212         division int_const_binop against zero divisor.
2213
2214 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2215
2216         * config/i386/i386.md (signbittf2): New expander.
2217         * config/i386/sse.md (ptesttf2): New insn pattern.
2218
2219 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2220
2221         PR bootstrap/71481
2222         * input.c (selftest::test_reading_source_line): Avoid reading from
2223         __FILE__ by creating a tempfile with known content and reading
2224         from that instead.
2225
2226 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2227
2228         * pretty-print.c (assert_pp_format_colored): Skip the test if
2229         GCC_COLORS is set.
2230         (test_pp_format): Remove comment about GCC_COLORS.
2231
2232 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2233
2234         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
2235         * pretty-print.c (assert_pp_format_va): Add location param and use
2236         it with ASSERT_STREQ_AT.
2237         (assert_pp_format): Add location param and pass it to
2238         assert_pp_format_va.
2239         (assert_pp_format_colored): Likewise.
2240         (ASSERT_PP_FORMAT_1): New.
2241         (ASSERT_PP_FORMAT_2): New.
2242         (ASSERT_PP_FORMAT_3): New.
2243         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
2244         explicitly, or implicitly via the above macros.
2245         * selftest.c (selftest::pass): Use a selftest::location rather
2246         than file and line.
2247         (selftest::fail): Likewise.  Print the function name.
2248         (selftest::fail_formatted): Likewise.
2249         (selftest::assert_streq): Use a selftest::location rather than
2250         file and line.
2251         * selftest.h (selftest::location): New struct.
2252         (SELFTEST_LOCATION): New macro.
2253         (selftest::pass): Accept a const location & rather than file
2254         and line.
2255         (selftest::fail): Likewise.
2256         (selftest::fail_formatted): Likewise.
2257         (selftest::assert_streq): Likewise.
2258         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
2259         (ASSERT_FALSE): Likewise.
2260         (ASSERT_EQ): Likewise.
2261         (ASSERT_NE): Likewise.
2262         (ASSERT_STREQ): Likewise.
2263         (ASSERT_PRED1): Likewise.
2264         (ASSERT_STREQ_AT): New macro.
2265
2266 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2267
2268         * selftest.c (selftest::fail_formatted): New function.
2269         (selftest::assert_streq): New function.
2270         * selftest.h (selftests::fail_formatted): New decl.
2271         (selftest::assert_streq): New decl.
2272         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
2273
2274 2016-06-13  Jeff Law  <law@redhat.com>
2275
2276         PR tree-optimization/71403
2277         * tree-ssa-threadbackward.c
2278         (convert_and_register_jump_thread_path): No longer accept reference
2279         to path.  Do not pop items off the path anymore.
2280         (fsm_find_control_statement_thread_paths): Do not allow threading
2281         to a deeper loop nest.  Pop the last item off the path here rather
2282         than in convert_and_register_jump_thread_path.
2283
2284 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2285             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
2286
2287         [AArch64] Emit division using the Newton series
2288
2289         * config/aarch64/aarch64-protos.h
2290         (cpu_approx_modes): Add new member "division".
2291         (aarch64_emit_approx_div): Declare new function.
2292         * config/aarch64/aarch64.c
2293         (generic_approx_modes): New member "division".
2294         (exynosm1_approx_modes): Likewise.
2295         (xgene1_approx_modes): Likewise.
2296         (aarch64_emit_approx_div): Define new function.
2297         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
2298         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
2299         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
2300         * doc/invoke.texi (-mlow-precision-div): Describe new option.
2301
2302 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2303             Wilco Dijkstra  <wilco.dijkstra@arm.com>
2304
2305         [AArch64] Emit square root using the Newton series
2306
2307         * config/aarch64/aarch64-protos.h
2308         (aarch64_emit_approx_rsqrt): Replace with new function
2309         "aarch64_emit_approx_sqrt".
2310         (cpu_approx_modes): New member "sqrt".
2311         * config/aarch64/aarch64.c
2312         (generic_approx_modes): New member "sqrt".
2313         (exynosm1_approx_modes): Likewise.
2314         (xgene1_approx_modes): Likewise.
2315         (aarch64_emit_approx_rsqrt): Replace with new function
2316         "aarch64_emit_approx_sqrt".
2317         (aarch64_override_options_after_change_1): Handle new option.
2318         * config/aarch64/aarch64-simd.md
2319         (rsqrt<mode>2): Use new function instead.
2320         (sqrt<mode>2): New expansion and insn definitions.
2321         * config/aarch64/aarch64.md: Likewise.
2322         * config/aarch64/aarch64.opt
2323         (mlow-precision-sqrt): Add new option description.
2324         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
2325
2326 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2327
2328         [AArch64] Add more choices for the reciprocal square root approximation
2329
2330         Allow a target to prefer such operation depending on the operation mode.
2331
2332         * config/aarch64/aarch64-protos.h
2333         (AARCH64_APPROX_MODE): New macro.
2334         (AARCH64_APPROX_{NONE,ALL}): Likewise.
2335         (cpu_approx_modes): New structure.
2336         (tune_params): New member "approx_modes".
2337         * config/aarch64/aarch64-tuning-flags.def
2338         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
2339         * config/aarch64/aarch64.c
2340         (generic_approx_modes): New core "cpu_approx_modes" structure.
2341         (exynosm1_approx_modes): Likewise.
2342         (xgene1_approx_modes): Likewise.
2343         (generic_tunings): New member "approx_modes".
2344         (cortexa35_tunings): Likewise.
2345         (cortexa53_tunings): Likewise.
2346         (cortexa57_tunings): Likewise.
2347         (cortexa72_tunings): Likewise.
2348         (exynosm1_tunings): Likewise.
2349         (thunderx_tunings): Likewise.
2350         (xgene1_tunings): Likewise.
2351         (use_rsqrt_p): New argument for the mode and use new member from
2352         "tune_params".
2353         (aarch64_builtin_reciprocal): Devise mode from builtin.
2354         (aarch64_optab_supported_p): New argument for the mode.
2355         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
2356
2357 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2358
2359         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
2360         RS6000_BTM_MODULO flag into the set of flags that are considered
2361         to be part of the common configuration.
2362
2363 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2364
2365         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
2366         difference unsigned.
2367         (vec_absdb): New macro for vector absolute difference unsigned
2368         byte.
2369         (vec_absdh): New macro for vector absolute difference unsigned
2370         half-word.
2371         (vec_absdw): New macro for vector absolute difference unsigned word.
2372         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
2373         (vadu<mode>3): New insn.
2374         (*p9_vadu<mode>3): New insn.
2375         * config/rs6000/rs6000-builtin.def (vadub): New built-in
2376         definition.
2377         (vaduh): New built-in definition.
2378         (vaduw): New built-in definition.
2379         (vadu): New overloaded built-in definition.
2380         (vadub): New overloaded built-in definition.
2381         (vaduh): New overloaded built-in definition.
2382         (vaduw): New overloaded built-in definition.
2383         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2384         overloaded vector absolute difference unsigned functions.
2385         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2386         the ISA 3.0 vector absolute difference unsigned built-in functions.
2387
2388 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
2389
2390         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
2391         update shared_lookup_references only once after changing operands.
2392
2393 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
2394
2395         PR middle-end/71373
2396         * tree-nested.c (convert_nonlocal_omp_clauses)
2397         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
2398
2399         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
2400         * tree.def (CASE_LABEL_EXPR): Likewise.
2401
2402 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2403
2404         PR bootstrap/71481
2405         * input.c (test_builtins): Fix an assertion.
2406
2407 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2408
2409         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
2410         (paritysi2): Ditto.
2411         (isinfxf2): Ditto.
2412         (isinf<mode>2): Ditto.
2413
2414 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2415
2416         * ggc-tests.c (test_finalization): Only test need_finalization_p
2417         for GCC_VERSION >= 4003.
2418
2419 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2420
2421         * config/s390/vecintrin.h: Fix file description in comment.
2422
2423 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2424
2425         * config/s390/s390-builtin-types.def: Change builtin type naming
2426         scheme to match builtin-types.def.
2427
2428 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
2429
2430         * fold-const.c (optimize_minmax_comparison): Remove.
2431         (fold_comparison): Remove call to the above.
2432         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
2433         New transformations.
2434
2435 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
2436
2437         PR tree-optimization/71416
2438         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
2439         multiple entries
2440
2441 2016-06-13  Martin Liska  <mliska@suse.cz>
2442
2443         * predict.c (enum predictor_reason): Prefix enum with REASON_.
2444         (combine_predictions_for_insn): Likewise.
2445         (prune_predictions_for_bb): Likewise.
2446         (combine_predictions_for_bb): Likewise.
2447
2448 2016-06-13  Richard Biener  <rguenther@suse.de>
2449
2450         PR tree-optimization/71505
2451         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
2452         assert match comment.
2453
2454 2016-06-13  Marek Polacek  <polacek@redhat.com>
2455
2456         PR middle-end/71476
2457         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
2458         gimplify_switch_expr.
2459         (warn_switch_unreachable_r): New function.
2460
2461 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2462
2463         PR target/71379
2464         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
2465         one.
2466
2467 2016-06-13  Richard Biener  <rguenther@suse.de>
2468
2469         PR middle-end/64516
2470         * fold-const.c (fold_unary_loc): Preserve alignment when
2471         folding a VIEW_CONVERT_EXPR into a MEM_REF.
2472
2473 2016-06-13  Martin Liska  <mliska@suse.cz>
2474
2475         PR sanitizer/71458
2476         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
2477         w/ -fsanitize=bounds.
2478
2479 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
2480
2481         * config/i386/i386.c (ix86_init_builtins): Calculate
2482         FLOAT128_FTYPE_CONST_STRING function type only once.
2483         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
2484         built-in functions are available for x86-32 and x86-64 targets.
2485
2486 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
2487
2488         PR target/71241
2489         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
2490         New primitive type.
2491         (FLOAT128_FTYPE_CONST_STRING): New function type.
2492         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
2493         [IX86_BUILTIN_NANSQ]: Ditto.
2494         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
2495         (ix86_init_builtin_types): Declare const_string_type_node.
2496         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
2497         builtin functions.
2498         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
2499         * doc/extend.texi (x86 Built-in Functions): Document
2500         __builtin_nanq and __builtin_nansq.
2501
2502 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
2503
2504         PR target/71061
2505         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
2506         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
2507         length for pop patterns.
2508         (arm_attr_length_push_multi): Update comments.
2509         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
2510         attribute.
2511         (*pop_multiple_with_writeback_and_return): Likewise.
2512         (*pop_multiple_with_return): Likewise.
2513
2514 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
2515
2516         PR middle-end/71310
2517         * fold-const.c (optimize_bit_field_compare): Don't try to use
2518         word_mode unconditionally for reading the bit field, look at
2519         DECL_BIT_FIELD_REPRESENTATIVE instead.
2520
2521 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
2522
2523         PR middle-end/71478
2524         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
2525         vector integer type.
2526
2527 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
2528
2529         PR middle-end/71494
2530         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
2531         without LABEL_DECL, set *handled_ops_p to false instead of true.
2532
2533 2016-06-10  Martin Sebor  <msebor@redhat.com>
2534
2535         PR c/71392
2536         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
2537         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
2538         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
2539         them.
2540         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
2541         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
2542         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
2543         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
2544         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
2545         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
2546         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
2547         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
2548
2549 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2550
2551         * config/arm/arm.h (pool_vector_label,
2552         return_used_this_function): Remove.
2553
2554 2016-06-10  Jeff Law  <law@redhat.com>
2555
2556         PR tree-optimization/71335
2557         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
2558         zero length paths here.
2559         (convert_and_register_jump_thread_path): Remove hacks related to
2560         duplicated blocks in the jump thread path.
2561         (fsm_find_control_statement_thread_paths): Avoid putting the same
2562         block on the thread path twice, but ensure the thread path is
2563         unchanged from the caller's point of view.
2564
2565 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
2566
2567         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
2568         * predict.def (PRED_LOOP_BRANCH): Remove.
2569
2570 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
2571
2572         * Makefile.in (OBJS): Add ggc-tests.o.
2573         (GTFILES): Add ggc-tests.c.
2574         * ggc-tests.c: New file.
2575         * selftest-run-tests.c (selftest::run_tests): Call
2576         selftest::ggc_tests_c_tests.
2577         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
2578
2579 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
2580
2581         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
2582
2583 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
2584
2585         PR sanitizer/71480
2586         * varasm.c (place_block_symbol): Adjust alignment for asan protected
2587         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
2588
2589 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
2590
2591         * profile.c: Include cfgloop.h.
2592         (branch_prob): Compute estimated number of iterations.
2593         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
2594         recompute estimate number of iterations from profile.
2595
2596 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2597
2598         PR inline-asm/68843
2599         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
2600         must be grouped on top of stack.  Don't force early clobber
2601         on ordinary reg outputs.
2602
2603 2016-06-10  Richard Biener  <rguenther@suse.de>
2604
2605         * targhooks.c (default_builtin_vectorization_cost): Adjust
2606         vec_construct cost.
2607
2608 2016-06-10  Richard Biener  <rguenther@suse.de>
2609
2610         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
2611         to fold the RHS to a constant if possible.
2612
2613 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
2614
2615         PR middle-end/71373
2616         * tree-nested.c (convert_nonlocal_omp_clauses)
2617         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
2618         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
2619         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
2620
2621         * gimplify.c (gimplify_adjust_omp_clauses): Discard
2622         OMP_CLAUSE_TILE.
2623         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
2624
2625         * omp-low.c (scan_sharing_clauses): Don't expect
2626         OMP_CLAUSE__CACHE_.
2627
2628 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
2629
2630         PR tree-optimization/71407
2631         PR tree-optimization/71416
2632         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
2633         BIT_FIELD_REF type.
2634
2635 2016-06-10  Richard Biener  <rguenther@suse.de>
2636
2637         PR middle-end/71477
2638         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
2639
2640 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2641
2642         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
2643
2644 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
2645             Jiong Wang  <jiong.wang@arm.com>
2646
2647         PR rtl-optimization/70751
2648         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
2649         spilled into memory.
2650
2651 2016-06-09  Jonathan Yong  <10walls@gmail.com>
2652
2653         Revert:
2654         2015-09-21  Jonathan Yong  <10walls@gmail.com>
2655
2656         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
2657         sysroot/usr/lib/32api for additional win32 libraries,
2658         fixes failing Cygwin bootstrapping.
2659
2660 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
2661
2662         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
2663         Delete.
2664
2665 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
2666
2667         PR bootstrap/71471
2668         * pretty-print.c (pp_indent): Specify that %p is printed in a
2669         host-dependent manner.
2670         (test_pp_format): Remove the test for %p.
2671
2672 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
2673
2674         * config/mips/mips.c (mips_output_jump): Fix formatting.
2675
2676 2016-06-09  Richard Biener  <rguenther@suse.de>
2677
2678         PR tree-optimization/71462
2679         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
2680         removed blocks.
2681
2682 2016-06-09  Martin Liska  <mliska@suse.cz>
2683
2684         * predict.c (dump_prediction): Add new argument.
2685         (enum predictor_reason): New enum.
2686         (struct predictor_hash): New struct.
2687         (predictor_hash::hash): New function.
2688         (predictor_hash::equal): Likewise.
2689         (not_removed_prediction_p): New function.
2690         (prune_predictions_for_bb): Likewise.
2691         (combine_predictions_for_bb): Prune predictions.
2692
2693 2016-06-09  Martin Liska  <mliska@suse.cz>
2694
2695         * predict.c (filter_predictions): New function.
2696         (remove_predictions_associated_with_edge): Use the filter
2697         function.
2698         (equal_edge_p): New function.
2699
2700 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
2701
2702         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
2703         Correct usage of @samp vs @option, add @samp where appropriate.
2704         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
2705         Add armv6s-m and document it, as it is no official ARM name.
2706
2707 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2708
2709         * ifcvt.c (struct noce_if_info): Add transform_name field.
2710         (noce_try_move): Set if_info->transform_name to the function name.
2711         (noce_try_ifelse_collapse): Likewise.
2712         (noce_try_store_flag): Likewise.
2713         (noce_try_inverse_constants): Likewise.
2714         (noce_try_store_flag_constants): Likewise.
2715         (noce_try_addcc): Likewise.
2716         (noce_try_store_flag_mask): Likewise.
2717         (noce_try_cmove): Likewise.
2718         (noce_try_cmove_arith): Likewise.
2719         (noce_try_minmax): Likewise.
2720         (noce_try_abs): Likewise.
2721         (noce_try_sign_mask): Likewise.
2722         (noce_try_bitop): Likewise.
2723         (noce_convert_multiple_sets): Likewise.
2724         (noce_process_if_block): Print if_info->transform_name to
2725         dump_file if transformation succeeded.
2726
2727 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2728
2729         * config/arm/cortex-a57.md (cortex_a57_alu):
2730         Handle csel type.
2731
2732 2016-06-08  Martin Sebor  <msebor@redhat.com>
2733             Jakub Jelinek  <jakub@redhat.com>
2734
2735         PR c++/70507
2736         PR c/68120
2737         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
2738         BUILT_IN_MUL_OVERFLOW_P): New builtins.
2739         * builtins.c: Include gimple-fold.h.
2740         (fold_builtin_arith_overflow): Handle
2741         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
2742         (fold_builtin_3): Likewise.
2743         * doc/extend.texi (Integer Overflow Builtins): Document
2744         __builtin_{add,sub,mul}_overflow_p.
2745
2746 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
2747
2748         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
2749         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
2750
2751 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
2752
2753         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
2754         Rewrite, looking one level down for records and arrays.
2755
2756 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
2757
2758         * pretty-print.c: Include "selftest.h".
2759         (pp_format): Fix comment.
2760         (identifier_to_locale): Likewise.
2761         (selftest::test_basic_printing): New function.
2762         (selftest::assert_pp_format): New function.
2763         (selftest::test_pp_format): New function.
2764         (selftest::pretty_print_c_tests): New function.
2765         * selftest-run-tests.c (selftest::run_tests): Call
2766         selftest::pretty_print_c_tests.
2767         * selftest.h (pretty_print_c_tests): New declaration.
2768
2769 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2770
2771         * invoke.texi (max-loop-headers-insns): Document.
2772         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
2773         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
2774         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
2775
2776 2016-06-08  Richard Biener  <rguenther@suse.de>
2777
2778         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
2779         on strided SLP loads and fall back to scalar loads in case
2780         we can't chunk them.
2781
2782 2016-06-08  Richard Biener  <rguenther@suse.de>
2783
2784         PR tree-optimization/71452
2785         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
2786         type used for the SSA rewrite has enough precision to cover
2787         the dynamic type of the location.
2788
2789 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
2790             Richard Biener  <rguenther@suse.de>
2791
2792         PR c++/71448
2793         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
2794         the same as DECL_P (base0) for indirect_base0.  Use equality_code
2795         in one further place.
2796
2797 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
2798
2799         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
2800         to one word if the field is known to overlap other words.
2801         (extract_bit_field_1): Likewise.
2802         (store_split_bit_field): Remove compensating code.
2803         (extract_split_bit_field): Likewise.
2804
2805 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
2806
2807         PR debug/71432
2808         PR ada/71413
2809         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
2810
2811 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2812
2813         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
2814         VDQF.
2815         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
2816         (arch64_addpv4sf): Delete.
2817         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
2818         "gen_aarch64_addpv4sf".
2819         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
2820         builtin.
2821         (vpadds_f32): Likewise.
2822         (vpaddq_f32): Likewise.
2823         (vpaddq_f64): Likewise.
2824
2825 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2826
2827         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
2828         VALLF.
2829         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
2830         to VALLF.  Rename to "fabd<mode>3".
2831         "*fabd_scalar<mode>3): Delete.
2832         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
2833         Use builtin.
2834         (vabdd_f64): Likewise.
2835         (vabd_f32): Likewise.
2836         (vabd_f64): Likewise.
2837         (vabdq_f32): Likewise.
2838         (vabdq_f64): Likewise.
2839
2840 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2841
2842         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
2843         VALLF.
2844         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
2845         "aarch64_rsqrts<mode>".
2846         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
2847         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
2848         builtin.
2849         (vrsqrtsd_f64): Likewise.
2850         (vrsqrts_f32): Likewise.
2851         (vrsqrts_f64): Likewise.
2852         (vrsqrtsq_f32): Likewise.
2853         (vrsqrtsq_f64): Likewise.
2854
2855 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2856
2857         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
2858         VALLF.
2859         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
2860         "aarch64_rsqrte<mode>".
2861         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
2862         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
2863         builtin.
2864         (vrsqrted_f64): Likewise.
2865         (vrsqrte_f32): Likewise.
2866         (vrsqrte_f64): Likewise.
2867         (vrsqrteq_f32): Likewise.
2868         (vrsqrteq_f64): Likewise.
2869
2870 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2871
2872         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
2873         (ucvtf): Likewise.
2874         (fcvtzs): Likewise.
2875         (fcvtzu): Likewise.
2876         * config/aarch64/aarch64-simd.md
2877         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
2878         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
2879         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
2880         Use builtin.
2881         (vcvt_n_f32_u32): Likewise.
2882         (vcvt_n_s32_f32): Likewise.
2883         (vcvt_n_u32_f32): Likewise.
2884         (vcvtq_n_f32_s32): Likewise.
2885         (vcvtq_n_f32_u32): Likewise.
2886         (vcvtq_n_f64_s64): Likewise.
2887         (vcvtq_n_f64_u64): Likewise.
2888         (vcvtq_n_s32_f32): Likewise.
2889         (vcvtq_n_s64_f64): Likewise.
2890         (vcvtq_n_u32_f32): Likewise.
2891         (vcvtq_n_u64_f64): Likewise.
2892         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
2893         (VSDQ_SDI): Likewise.
2894         (fcvt_target): Support V4DI, V4SI and V2SI.
2895         (FCVT_TARGET): Likewise.
2896
2897 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2898
2899         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
2900         (TYPES_BINOP_SUS): Likewise.
2901         (aarch64_simd_builtin_data): Update include file name.
2902         (aarch64_builtins): Likewise.
2903         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
2904         for conversion between scalar float-point and fixed-point.
2905         (ucvtf): Likewise.
2906         (fcvtzs): Likewise.
2907         (fcvtzu): Likewise.
2908         * config/aarch64/aarch64.md
2909         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
2910         pattern for conversion between scalar float to fixed-pointer.
2911         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
2912         (UNSPEC_FCVTZS): New UNSPEC enumeration.
2913         (UNSPEC_FCVTZU): Likewise.
2914         (UNSPEC_SCVTF): Likewise.
2915         (UNSPEC_UCVTF): Likewise.
2916         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
2917         Use builtin.
2918         (vcvtd_n_f64_u64): Likewise.
2919         (vcvtd_n_s64_f64): Likewise.
2920         (vcvtd_n_u64_f64): Likewise.
2921         (vcvtd_n_f32_s32): Likewise.
2922         (vcvts_n_f32_u32): Likewise.
2923         (vcvtd_n_s32_f32): Likewise.
2924         (vcvts_n_u32_f32): Likewise.
2925         * config/aarch64/iterators.md (fcvt_target): Support integer to float
2926         mapping.
2927         (FCVT_TARGET): Likewise.
2928         (FCVT_FIXED2F): New iterator.
2929         (FCVT_F2FIXED): Likewise.
2930         (fcvt_fixed_insn): New define_int_attr.
2931
2932 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2933
2934         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
2935         some statements was removed.
2936
2937 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
2938
2939         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
2940         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
2941         (vect_can_advance_ivs_p): likewise.
2942         (vect_update_ivs_after_vectorizer): likewise.
2943         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
2944         (vect_analyze_scalar_cycles_1): likewise.
2945         (vect_analyze_loop_operations): likewise.
2946         (report_vect_op): likewise.
2947         (vect_is_slp_reduction): likewise.
2948         (vect_is_simple_reduction): likewise.
2949         (get_initial_def_for_induction): likewise.
2950         (vect_transform_loop): likewise.
2951         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
2952         (vect_recog_sad_pattern): likewise.
2953         (vect_recog_widen_sum_pattern): likewise.
2954         (vect_recog_widening_pattern): likewise.
2955         (vect_recog_divmod_pattern): likewise.
2956         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
2957         (vect_analyze_slp_instance): likewise.
2958         (vect_transform_slp_perm_load): likewise.
2959         (vect_schedule_slp_instance): likewise.
2960
2961 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2962
2963         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
2964         (return_prediction): PRED_CONST_RETURN predict return as not taken.
2965         * predict.def (PRED_CONTINUE): Change hitrate 50->67
2966         (PRED_LOOP_BRANCH): Document predictor as broken.
2967         (PRED_LOOP_EXIT): Change hitrate 91->92.
2968         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
2969         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
2970         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
2971         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
2972         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
2973         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
2974         (PRED_CALL): Chane hitrate 71->67.
2975         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
2976         (PRED_GOTO): Document as unused right now.
2977         (PRED_CONST_RETURN): Change hitrate 67->69
2978         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
2979         (PRED_NULL_RETURN): Change hitrate 91->90.
2980         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
2981         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
2982         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
2983
2984 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
2985
2986         * config/rs6000/altivec.h: Add __builtin_vec_mul.
2987         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
2988         special case Altivec builtin.
2989         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
2990         VSX_BUILTIN_VEC_MUL (replaced with special case code).
2991         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
2992         code for ALTIVEC_BUILTIN_VEC_MUL.
2993         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
2994         for __builtin_vec_mul.
2995
2996 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
2997
2998         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
2999         -mno-htm.
3000
3001 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
3002
3003         * spellcheck.c (selftest::test_find_closest_string): New function.
3004         (spellcheck_c_tests): Call the above.
3005
3006 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3007
3008         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
3009
3010 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
3011
3012         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
3013         Yv=Yv,C alternatives.
3014
3015 2016-06-07  Richard Biener  <rguenther@suse.de>
3016
3017         PR c/61564
3018         * common.opt (ffast-math): Make Optimization.
3019
3020 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
3021             Prachi Godbole  <prachi.godbole@imgtec.com>
3022
3023         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
3024         `fabs' and `fneg' type attributes.
3025         (p5600_fpu_fabs): Add `fmove' to the comment.
3026
3027 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3028
3029         * gimple.c: Include builtins.h
3030         (gimple_inexpensive_call_p): New function.
3031         * gimple.h (gimple_inexpensive_call_p): Declare.
3032         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
3033         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
3034         fix formatting.
3035
3036 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
3037
3038         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
3039         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
3040         warning_at_rich_loc, warning_n, pedwarn, permerror,
3041         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
3042         sorry, fatal_error, internal_error, internal_error_no_backtrace):
3043         Use the above.
3044
3045 2016-06-07  Richard Biener  <rguenther@suse.de>
3046
3047         PR tree-optimization/71428
3048         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
3049         BIT_FIELD_REF op vs. load.
3050
3051 2016-06-07  Richard Biener  <rguenther@suse.de>
3052
3053         PR middle-end/71423
3054         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
3055         for signed ops.
3056
3057 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
3058
3059         * config/pa/pa.md (call): Generate indirect long calls to non-local
3060         functions on TARGET_64BIT.
3061         (call_value): Likewise.
3062
3063 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
3064
3065         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
3066         pattern and subsequent splitters.
3067         (call_val_reg_64bit_post_reload): Likewise.
3068
3069 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
3070
3071         PR middle-end/71408
3072         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
3073         propagate_op_to_single_use.
3074
3075 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
3076
3077         PR middle-end/71281
3078         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
3079
3080 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
3081
3082         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
3083         (enum x86_dirflag_state): New enum.
3084         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
3085         (machine_function): Remove needs_cld.
3086         (ix86_current_function_needs_cld): Remove.
3087         * config/i386/i386.c (ix86_set_func_type): Set
3088         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
3089         (ix86_expand_prologue): Do not emit CLD here.
3090         (ix86_dirflag_mode_needed): New function.
3091         (ix86_dirflag_mode_entry): Ditto.
3092         (ix86_mode_needed): Handle X86_DIRFLAG entity.
3093         (ix86_mode_after): Ditto.
3094         (ix86_mode_entry): Ditto.
3095         (ix86_mode_exit): Ditto.
3096         (ix86_emit_mode_set): Ditto.
3097         * config/i386/i386.md (strmov_singleop): Set
3098         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
3099         Do not set ix86_current_function_needs_cld.
3100         (rep_mov): Ditto.
3101         (strset_singleop): Ditto.
3102         (rep_stos): Ditto.
3103         (cmpstrnqi_nz_1): Ditto.
3104         (cmpstrnqi_1): Ditto.
3105         (strlenqi_1): Ditto.
3106
3107 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
3108
3109         PR tree-optimization/71259
3110         * tree-vect-slp.c (vect_get_constant_vectors): For
3111         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
3112         one for constant op, and use COND_EXPR for non-constant.
3113
3114 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
3115
3116         * Makefile.in (OBJS): Add function-tests.o,
3117         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
3118         selftest-run-tests.o.
3119         (OBJS-libcommon): Add selftest.o.
3120         (OBJS-libcommon-target): Add selftest.o.
3121         (all.internal): Add "selftest".
3122         (all.cross): Likewise.
3123         (selftest): New phony target.
3124         (s-selftest): New target.
3125         (selftest-gdb): New phony target.
3126         (COLLECT2_OBJS): Add selftest.o.
3127         * bitmap.c: Include "selftest.h".
3128         (selftest::test_gc_alloc): New function.
3129         (selftest::test_set_range): New function.
3130         (selftest::test_clear_bit_in_middle): New function.
3131         (selftest::test_copying): New function.
3132         (selftest::test_bitmap_single_bit_set_p): New function.
3133         (selftest::bitmap_c_tests): New function.
3134         * common.opt (fself-test): New.
3135         * diagnostic-show-locus.c: Include "selftest.h".
3136         (make_range): New function.
3137         (test_range_contains_point_for_single_point): New function.
3138         (test_range_contains_point_for_single_line): New function.
3139         (test_range_contains_point_for_multiple_lines): New function.
3140         (assert_eq): New function.
3141         (test_get_line_width_without_trailing_whitespace): New function.
3142         (selftest::diagnostic_show_locus_c_tests): New function.
3143         * et-forest.c: Include "selftest.h".
3144         (selftest::test_single_node): New function.
3145         (selftest::test_simple_tree): New function.
3146         (selftest::test_disconnected_nodes): New function.
3147         (selftest::et_forest_c_tests): New function.
3148         * fold-const.c: Include "selftest.h".
3149         (selftest::assert_binop_folds_to_const): New function.
3150         (selftest::assert_binop_folds_to_nonlvalue): New function.
3151         (selftest::test_arithmetic_folding): New function.
3152         (selftest::fold_const_c_tests): New function.
3153         * function-tests.c: New file.
3154         * gimple.c: Include "selftest.h".
3155         Include "gimple-pretty-print.h".
3156         (selftest::verify_gimple_pp): New function.
3157         (selftest::test_assign_single): New function.
3158         (selftest::test_assign_binop): New function.
3159         (selftest::test_nop_stmt): New function.
3160         (selftest::test_return_stmt): New function.
3161         (selftest::test_return_without_value): New function.
3162         (selftest::gimple_c_tests): New function.
3163         * hash-map-tests.c: New file.
3164         * hash-set-tests.c: New file.
3165         * input.c: Include "selftest.h".
3166         (selftest::assert_loceq): New function.
3167         (selftest::test_accessing_ordinary_linemaps): New function.
3168         (selftest::test_unknown_location): New function.
3169         (selftest::test_builtins): New function.
3170         (selftest::test_reading_source_line): New function.
3171         (selftest::input_c_tests): New function.
3172         * rtl-tests.c: New file.
3173         * selftest-run-tests.c: New file.
3174         * selftest.c: New file.
3175         * selftest.h: New file.
3176         * spellcheck.c: Include "selftest.h".
3177         (selftest::levenshtein_distance_unit_test_oneway): New function,
3178         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
3179         (selftest::levenshtein_distance_unit_test): Likewise.
3180         (selftest::spellcheck_c_tests): Likewise.
3181         * toplev.c: Include selftest.h.
3182         (toplev::run_self_tests): New.
3183         (toplev::main): Handle -fself-test.
3184         * toplev.h (toplev::run_self_tests): New.
3185         * tree.c: Include "selftest.h".
3186         (selftest::test_integer_constants): New function.
3187         (selftest::test_identifiers): New function.
3188         (selftest::test_labels): New function.
3189         (selftest::tree_c_tests): New function.
3190         * tree-cfg.c: Include "selftest.h".
3191         (selftest::push_fndecl): New function.
3192         (selftest::test_linear_chain): New function.
3193         (selftest::test_diamond): New function.
3194         (selftest::test_fully_connected): New function.
3195         (selftest::tree_cfg_c_tests): New function.
3196         * vec.c: Include "selftest.h".
3197         (selftest::safe_push_range): New function.
3198         (selftest::test_quick_push): New function.
3199         (selftest::test_safe_push): New function.
3200         (selftest::test_truncate): New function.
3201         (selftest::test_safe_grow_cleared): New function.
3202         (selftest::test_pop): New function.
3203         (selftest::test_safe_insert): New function.
3204         (selftest::test_ordered_remove): New function.
3205         (selftest::test_unordered_remove): New function.
3206         (selftest::test_block_remove): New function.
3207         (selftest::reverse_cmp): New function.
3208         (selftest::test_qsort): New function.
3209         (selftest::vec_c_tests): New function.c.
3210         * wide-int.cc: Include selftest.h and wide-int-print.h.
3211         (selftest::from_int <wide_int>): New function.
3212         (selftest::from_int <offset_int>): New function.
3213         (selftest::from_int <widest_int>): New function.
3214         (selftest::assert_deceq): New function.
3215         (selftest::assert_hexeq): New function.
3216         (selftest::test_printing <VALUE_TYPE>): New function template.
3217         (selftest::test_ops <VALUE_TYPE>): New function template.
3218         (selftest::test_comparisons <VALUE_TYPE>): New function template.
3219         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
3220         template.
3221         (selftest::wide_int_cc_tests): New function.
3222
3223 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3224
3225         PR middle-end/37780
3226         * ifcvt.c (noce_try_ifelse_collapse): New function.
3227         Declare prototype.
3228         (noce_process_if_block): Call noce_try_ifelse_collapse.
3229         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
3230         (simplify_ternary_operation): Use the above to simplify
3231         conditional CLZ/CTZ expressions.
3232
3233 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3234
3235         PR middle-end/37780
3236         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
3237         define_insn_and_split.
3238
3239 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3240
3241         PR middle-end/37780
3242         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
3243
3244 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3245
3246         PR c/24414
3247         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
3248         Implicitly clobber memory for basic asm with non-empty assembler
3249         string.  Use targetm.md_asm_adjust also here.
3250         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
3251         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
3252         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
3253         non-empty assembler string.
3254         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
3255         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
3256         (decode_asm_operands): Handle basic asm in PARALLEL block.
3257         (extract_insn): Handle basic asm in PARALLEL block.
3258         * doc/extend.texi: Mention new behavior of basic asm.
3259         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
3260         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
3261         branch_needs_nop_p): Use asm_noperands.
3262
3263 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
3264
3265         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
3266         Include the M7 SPARC DFA scheduler.
3267         New attribute v3pipe.
3268         Annotate insns with v3pipe where appropriate.
3269         Define cpu_feature vis4.
3270         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
3271         Add (V8QI "8") to vbits.
3272         Add insns {add,sub}v8qi3
3273         Add insns ss{add,sub}v8qi3
3274         Add insns us{add,sub}{v8qi,v4hi}3
3275         Add insns {min,max}{v8qi,v4hi,v2si}3
3276         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
3277         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
3278         * config/sparc/niagara4.md: Add a comment explaining the
3279         discrepancy between the documented latenty numbers and the
3280         implemented ones.
3281         * config/sparc/niagara7.md: New file.
3282         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
3283         supports SPARC5 and VIS 4.0 instructions.
3284         * configure: Regenerate.
3285         * config.in: Likewise.
3286         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
3287         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
3288         TARGET_CPU_niagara7.
3289         (ASM_CPU64_DEFAULT_SPEC): Likewise.
3290         (CPP_CPU_SPEC): Handle niagara7.
3291         (ASM_CPU_SPEC): Likewise.
3292         * config/sparc/sparc-opts.h (processor_type): Add
3293         PROCESSOR_NIAGARA7.
3294         (mvis4): New option.
3295         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
3296         (AS_NIAGARA7_FLAG): Define.
3297         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
3298         (CPP_CPU64_DEFAULT_SPEC): Likewise.
3299         (CPP_CPU_SPEC): Handle niagara7.
3300         (ASM_CPU_SPEC): Likewise.
3301         * config/sparc/sparc.c (niagara7_costs): Define.
3302         (sparc_option_override): Handle niagara7 and adjust cache-related
3303         parameters with better values for niagara cpus.  Also support VIS4.
3304         (sparc32_initialize_trampoline): Likewise.
3305         (sparc_use_sched_lookahead): Likewise.
3306         (sparc_issue_rate): Likewise.
3307         (sparc_register_move_cost): Likewise.
3308         (dump_target_flag_bits): Support VIS4.
3309         (sparc_vis_init_builtins): Likewise.
3310         (sparc_builtins): Likewise.
3311         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
3312         VIS4 4.0.
3313         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
3314         UltraSparc M7.
3315         * config/sparc/sparc.opt (sparc_processor_type): New value
3316         niagara7.
3317         * config/sparc/visintrin.h (__attribute__): Prototypes for the
3318         VIS4 builtins.
3319         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
3320         -mvis4.
3321         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
3322         VIS4 builtins.
3323
3324 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
3325
3326         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
3327
3328 2016-06-06  Richard Biener  <rguenther@suse.de>
3329
3330         PR tree-optimization/71398
3331         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
3332         remove edges.
3333
3334 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
3335
3336         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
3337         ft32_expand_prolog, ft32_expand_epilogue):
3338         Handle pretend_args.
3339         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
3340         * config/ft32/ft32.md: Add pretend_returner.
3341
3342 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
3343
3344         PR target/71389
3345         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3346         Copy op1 RTX to avoid invalid sharing.
3347         (ix86_expand_vector_move_misalign): Ditto.
3348
3349 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
3350
3351         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
3352         ATTRIBUTE_UNUSED.
3353
3354 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
3355
3356         * predict.c (predicted_by_loop_heuristics_p): New function.
3357         (predict_iv_comparison): Use it.
3358         (predict_loops): Walk from innermost loops; do not predict edges
3359         leaving multiple loops multiple times; implement
3360         PRED_LOOP_ITERATIONS_MAX heuristics.
3361         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
3362
3363 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
3364
3365         * cfg.c (check_bb_profile): Do not report mismatched profiles when
3366         only edges out of BB are EH edges.
3367
3368 2016-06-04  Martin Sebor  <msebor@redhat.com>
3369             Marcin Baczyński  <marbacz@gmail.com>
3370
3371         PR c/48116
3372         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
3373         a void expression in a void function.
3374
3375 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
3376
3377         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
3378         aux; dump reasons of decisions.
3379         (should_duplicate_loop_header_p): Likewise.
3380         (do_while_loop_p): Likewise.
3381         (ch_base::copy_headers): Dump asi num insns duplicated.
3382
3383 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
3384
3385         PR tree-optimization/71405
3386         * tree-ssa.c (execute_update_addresses_taken): For clobber with
3387         incompatible type, build a new clobber with the right type instead
3388         of building a VIEW_CONVERT_EXPR around it.
3389
3390 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
3391
3392         PR tree-optimization/52171
3393         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
3394         by_pieces_ninsns instead of move_by_pieces_ninsns.
3395
3396 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
3397
3398         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
3399         for reg+reg addressing mode.
3400
3401 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3402
3403         * rs6000-c.c (c/c-tree.h): Add #include.
3404         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
3405         in C++ when found in the base position of vec_ld or vec_st.
3406
3407 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
3408
3409         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
3410         use of profile unless profile status is PROFILE_READ.
3411         * profile.c (compute_branch_probabilities): Set profile status
3412         only after reporting predictor hitrates.
3413
3414 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
3415
3416         PR target/71276
3417         PR target/71277
3418         * common.opt (ffp-int-builtin-inexact): New option.
3419         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
3420         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
3421         (ceil@var{m}2): Document dependence on this option.
3422         * ipa-inline-transform.c (inline_call): Handle
3423         flag_fp_int_builtin_inexact.
3424         * ipa-inline.c (can_inline_edge_p): Likewise.
3425         * config/i386/i386.md (rintxf2): Do not test
3426         flag_unsafe_math_optimizations.
3427         (rint<mode>2_frndint): New define_insn.
3428         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
3429         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
3430         for 387 instead of extending and truncating.
3431         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
3432         !flag_trapping_math instead of flag_unsafe_math_optimizations.
3433         Change to frndint<mode>2_<rounding>.
3434         (frndintxf2_<rounding>_i387): Likewise.  Change to
3435         frndint<mode>2_<rounding>_i387.
3436         (<rounding_insn>xf2): Likewise.
3437         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
3438         !flag_trapping_math instead of flag_unsafe_math_optimizations for
3439         x87.  Test TARGET_ROUND || !flag_trapping_math ||
3440         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
3441         SSE.  Use ROUND_NO_EXC in constant operand of
3442         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
3443         for 387 instead of extending and truncating.
3444
3445 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
3446             Julia Koval  <julia.koval@intel.com>
3447
3448         PR target/66960
3449         PR target/67630
3450         PR target/67634
3451         PR target/67841
3452         PR target/68037
3453         PR target/68618
3454         PR target/68661
3455         PR target/69575
3456         PR target/69596
3457         PR target/69734
3458         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
3459         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
3460         all registers, except for function return registers if there are
3461         no caller-saved registers.
3462         (ix86_set_func_type): New function.
3463         (ix86_set_current_function): Call ix86_set_func_type to set
3464         no_caller_saved_registers and func_type.  Call reinit_regs if
3465         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
3466         nor x87 instructions in interrupt handler nor function with
3467         no_caller_saved_registers attribute.
3468         (ix86_function_ok_for_sibcall): Return false if there are no
3469         caller-saved registers.
3470         (type_natural_mode): Don't warn ABI change for MMX in interrupt
3471         handler.
3472         (ix86_function_arg_advance): Skip for callee in interrupt handler.
3473         (ix86_function_arg): Return special arguments in interrupt handler.
3474         (ix86_promote_function_mode): Promote pointer to word_mode only
3475         for normal functions.
3476         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
3477         interrupt handler.
3478         (ix86_epilogue_uses): New function.
3479         (ix86_hard_regno_scratch_ok): Likewise.
3480         (ix86_save_reg): Preserve all registers in interrupt handler
3481         after reload.  Preserve all registers, except for function return
3482         registers, if there are no caller-saved registers after reload.
3483         (find_drap_reg): Always use callee-saved register if there are
3484         no caller-saved registers.
3485         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
3486         for interrupt handler.
3487         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
3488         Emit cld instruction if stringops are used in interrupt handler
3489         or interrupt handler isn't a leaf function.
3490         (ix86_expand_epilogue): Generate interrupt return for interrupt
3491         handler and pop the 'ERROR_CODE' off the stack before interrupt
3492         return in exception handler.
3493         (ix86_expand_call): Disallow calling interrupt handler directly.
3494         If there are no caller-saved registers, mark all registers that
3495         are clobbered by the call which returns as clobbered.
3496         (ix86_handle_no_caller_saved_registers_attribute): New function.
3497         (ix86_handle_interrupt_attribute): Likewise.
3498         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
3499         attributes.
3500         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
3501         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
3502         accumulation in interrupt function if stack may be realigned to
3503         avoid DRAP.
3504         (EPILOGUE_USES): New.
3505         (function_type): New enum.
3506         (machine_function): Add func_type and no_caller_saved_registers.
3507         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
3508         (interrupt_return): New pattern.
3509         * doc/extend.texi: Document x86 interrupt and
3510         no_caller_saved_registers attributes.
3511
3512 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
3513
3514         PR tree-optimization/52171
3515         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
3516         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
3517         Look for constant strings.  Move some code to emit_block_cmp_hints
3518         and use it.
3519         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
3520         * defaults.h (COMPARE_MAX_PIECES): New macro.
3521         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
3522         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
3523         (clear_by_pieces_1): Don't declare.  Move definition before use.
3524         (can_do_by_pieces): New static function.
3525         (can_move_by_pieces): Use it.  Return bool.
3526         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
3527         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
3528         (class pieces_addr); New.
3529         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
3530         pieces_addr::adjust, pieces_addr::increment_address,
3531         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
3532         functions for it.
3533         (class op_by_pieces_d): New.
3534         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
3535         functions for it.
3536         (class move_by_pieces_d, class compare_by_pieces_d,
3537         class store_by_pieces_d): New subclasses of op_by_pieces_d.
3538         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
3539         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
3540         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
3541         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
3542         compare_by_pieces_d::finish_mode): New member functions.
3543         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
3544         functions.
3545         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
3546         (emit_block_cmp_hints): New function.
3547         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
3548         use the newly defined classes.
3549         * expr.h (by_pieces_constfn): New typedef.
3550         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
3551         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
3552         (move_by_pieces_ninsns): Don't declare.
3553         (can_move_by_pieces): Change return value to bool.
3554         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
3555         (compare_by_pieces_branch_ratio): New hook.
3556         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
3557         (by_pieces_ninsns): Declare.
3558         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
3559         COMPARE_BY_PIECES.
3560         (default_compare_by_pieces_branch_ratio): New function.
3561         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
3562         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
3563         * doc/tm.texi: Regenerate.
3564         * tree-ssa-strlen.c: Include "builtins.h".
3565         (handle_builtin_memcmp): New static function.
3566         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
3567         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
3568
3569 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3570
3571         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
3572         relevant stmts which are simple and invariant.
3573         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
3574         instead of simple and invariant
3575
3576 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3577
3578         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
3579         (vectorizable_reduction): Check for new relevant state.
3580         (vectorizable_live_operation): vectorize live stmts using
3581         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
3582         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
3583         (vect_stmt_relevant_p): Check for stmts which are only used live.
3584         (process_use): Use of a stmt does not inherit it's live value.
3585         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
3586         (vect_analyze_stmt): Check for new relevant state.
3587         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
3588         outside the loop, but not inside it.
3589
3590 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3591
3592         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
3593         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
3594         (vect_get_vec_def_for_operand): Split out code.
3595
3596 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
3597
3598         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
3599
3600 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3601
3602         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
3603
3604 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3605
3606         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
3607
3608 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
3609
3610         PR middle-end/71387
3611         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
3612         to noreturn e->callee->decl that has void return type and void
3613         arguments, adjust gimple_call_fntype and remove lhs even if it had
3614         previously addressable type.
3615
3616 2016-06-02  Jeff Law  <law@redhat.com>
3617
3618         PR tree-optimization/71328
3619         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
3620         error when checking for a jump back onto the copied path.
3621
3622 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
3623
3624         * config/microblaze/microblaze.c (get_branch_target): Add return
3625         NULL_RTX for the non-CALL_P case.
3626         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
3627         (insert_wic): Remove unused local "j".
3628
3629 2016-06-02  Martin Liska  <mliska@suse.cz>
3630
3631         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
3632
3633 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
3634             Julia Koval  <julia.koval@intel.com>
3635
3636         * function.c (assign_parm_setup_stack): Force source into a
3637         register if needed.
3638         * target.def (function_incoming_arg): Update documentation to
3639         allow arbitrary address computation based on hard register.
3640         * doc/tm.texi: Regenerated.
3641
3642 2016-06-02  Martin Liska  <mliska@suse.cz>
3643
3644         * predict.c (combine_predictions_for_bb): Fix first match in
3645         cases where a first predictor contains more than one occurence
3646         in list of predictors.  Take the best value in such case.
3647
3648 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3649
3650         PR rtl-optimization/71295
3651         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
3652         offset would go over the size of the inner mode reject it.
3653
3654 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
3655
3656         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
3657         x=x,x and v=v,m instead of x=x,m.
3658
3659         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
3660         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
3661         alternative to v=rm,C.
3662
3663         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
3664         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
3665         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
3666         instead of vex for the last two above mentioned alternatives.
3667
3668 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3669
3670         PR target/70830
3671         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
3672
3673 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
3674
3675         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
3676
3677 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
3678
3679         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
3680         from int to unsigned.
3681
3682 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3683
3684         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
3685         alternatives, eliminating preferred register class.  Add support
3686         for the MTVSRDD instruction in ISA 3.0.
3687         (vsx_splat_v4si_internal): Use splat_input_operand instead of
3688         reg_or_indexed_operand.
3689         (vsx_splat_v4sf_internal): Likewise.
3690
3691 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3692
3693         PR target/71186
3694         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
3695         for loading up all 0's or all 1's.
3696
3697 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3698
3699         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
3700
3701 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
3702
3703         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
3704         extension.
3705         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
3706         * gcc.c (set_source_date_epoch_envvar): New function, sets
3707         the SOURCE_DATE_EPOCH environment variable to the current time.
3708
3709 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3710
3711         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
3712         the factor for live Phi nodes.
3713
3714 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
3715
3716         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
3717         * tree-parloops.c (parallelize_loops): likewise.
3718         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
3719         tree_unswitch_outer_loop): likewise.
3720
3721 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
3722
3723         PR middle-end/71371
3724         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
3725         around creation of the temporary.
3726
3727 2016-06-01  Richard Biener  <rguenther@suse.de>
3728
3729         PR tree-optimization/71366
3730         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
3731         (unloop_loops): Move removing edges here ...
3732         (try_unroll_loop_completely): ... from here.
3733         (try_peel_loop): ... and here.
3734         (tree_unroll_loops_completely_1): Track parent loops via
3735         bitmap of header BBs.
3736         (tree_unroll_loops_completely): Adjust for that.
3737
3738 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3739
3740         * config/rs6000/altivec.h (vec_slv): New macro.
3741         (vec_srv): New macro.
3742         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
3743         (UNSPEC_VSRV): New value.
3744         (vslv): New insn.
3745         (vsrv): New insn.
3746         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
3747         (vsrv): New builtin definition.
3748         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
3749         define argument types for new builtin.
3750         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
3751         new builtin.
3752         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
3753         functions.
3754
3755 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
3756             Jocelyn Mayer  <l_indien@magic.fr>
3757
3758         PR target/67310
3759         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
3760         detect processor family for signature_CENTAUR_ebx.
3761         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
3762         signature_CENTAUR_ebx.
3763         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
3764         <default>: Pass x86-64 for has_longmode.
3765
3766 2016-06-01  Nathan Sidwell  <nathan@acm.org>
3767
3768         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
3769         undefined weak.
3770
3771 2016-06-01  Richard Biener  <rguenther@suse.de>
3772
3773         PR tree-optimization/71261
3774         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
3775         of stmts successfully put in the bool pattern.  Remove
3776         single-use restriction.
3777         (adjust_bool_pattern_cast): Add cast at the use site via the
3778         pattern def sequence.
3779         (adjust_bool_pattern): Remove recursion, maintain a hash-map
3780         of patterned defs.  Use the pattern def seqence instead of
3781         multiple independent patterns.
3782         (sort_after_uid): New qsort compare function.
3783         (adjust_bool_stmts): New function to process stmts in the bool
3784         pattern in IL order.
3785         (vect_recog_bool_pattern): Adjust.
3786         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
3787         (ifcvt_walk_pattern_tree): Likewise.
3788         (stmt_is_root_of_bool_pattern): Likewise.
3789         (ifcvt_repair_bool_pattern): Likewise.
3790         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
3791
3792 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
3793
3794         * loop-unroll.c (decide_unroll_constant_iterations,
3795         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
3796         likely upper bounds.
3797         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
3798
3799 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
3800
3801         * tree-core.h (enum omp_clause_code): Remove
3802         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
3803
3804 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3805
3806         * config/arm/sync.md (arm_store_exclusive<mode>):
3807         Use 'H' output modifier on operands[2] rather than creating a new
3808         entry in out-of-bounds memory of the operands array.
3809         (arm_store_release_exclusivedi): Likewise.
3810
3811 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3812
3813         * config/arm/arm.c (arm_fusion_enabled_p): New function.
3814         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
3815         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
3816         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
3817
3818 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3819
3820         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
3821         into account live statements for mask producers.
3822
3823 2016-06-01  Richard Biener  <rguenther@suse.de>
3824
3825         PR tree-optimization/71311
3826         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
3827         restrict to non-INTEGER_CST @0.
3828
3829 2016-06-01  Richard Biener  <rguenther@suse.de>
3830
3831         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
3832         (relational patterns): Use :c to avoid pattern duplications.
3833
3834 2016-06-01  Richard Biener  <rguenther@suse.de>
3835
3836         * genmatch.c (comparison_code_p): New predicate.
3837         (swap_tree_comparison): New function.
3838         (commutate): Add for_vec parameter to append new for entries.
3839         Support commutating relational operators by swapping it alongside
3840         operands.
3841         (lower_commutative): Adjust.
3842         (dt_simplify::gen): Do not pass artificial operators to gen
3843         functions.
3844         (decision_tree::gen): Do not add artificial operators as parameters.
3845         (parser::parse_expr): Verify operator commutativity when :c is
3846         applied.  Allow :C to override this.
3847         * match.pd: Adjust patterns to use :C instead of :c where required.
3848
3849 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
3850
3851         PR tree-optimization/71077
3852         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
3853         the combining step, use boolean_false_node and boolean_true_node
3854         as the designated false/true return values.
3855
3856 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3857
3858         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
3859         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
3860         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
3861         PRED_LOOP_EXIT.
3862
3863 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3864
3865         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
3866         of flags impliying the register renaming.
3867         * toplev.c (process_options): Do not imply flag_rename_registers with
3868         loop peeling.
3869
3870 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3871
3872         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
3873         default implementation.
3874
3875 2016-05-31  Nathan Sidwell  <nathan@acm.org>
3876
3877         * dwarf2out.c (cur_line_info_table): Add GTY marker.
3878
3879 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3880
3881         * config/sh/constraints.md (b): Remove constraint.
3882         * config/sh/predicates.md (arith_reg_operand): Remove
3883         TARGET_REGISTER_P.
3884         * config/sh/sh-modes.def (PDI): Remove.
3885         * config/sh/sh.c (sh_target_reg_class,
3886         sh_optimize_target_register_callee_saved): Remove functions.
3887         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
3888         (sh_expand_epilogue): Update comment.
3889         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
3890         sh_secondary_reload): Remove TARGET_REGS related code.
3891         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
3892         TARGET_REGISTER_P): Remove macros.
3893         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
3894         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
3895         TR1_REG, TR2_REG): Remove constants.
3896         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
3897
3898 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3899
3900         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
3901         define_expand patterns.
3902         (adddi3_compact): Rename to adddi3.
3903         (subdi3_compact): Rename to subdi3.
3904         (*negdi2): Rename to negdi2.
3905         (*abs<mode>2): Rename to abs<mode>2.
3906
3907 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3908
3909         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
3910         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
3911         (atomic_sub_fetchsi): ... this new pattern.
3912         (mvtc): Add CC_REG clobber.
3913
3914 2016-05-31  Marek Polacek  <polacek@redhat.com>
3915
3916         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
3917
3918 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3919
3920         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
3921         aarch64_fusion_enabled_p to check for fusion capabilities.
3922
3923 2016-05-31  Richard Biener  <rguenther@suse.de>
3924
3925         PR tree-optimization/71352
3926         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
3927         minus one and a negate.
3928
3929 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3930
3931         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
3932         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
3933         Delete prototype.
3934         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
3935         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
3936         Remove use of aarch64_simd_attr_length_move, set length attribute
3937         directly.
3938         (*aarch64_be_movoi): Likewise.
3939         (*aarch64_be_movci): Likewise.
3940         (*aarch64_be_movxi): Likewise.
3941
3942 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3943
3944         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
3945         It no longer does that.
3946         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
3947
3948 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
3949
3950         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
3951         attribute __unused__.
3952
3953 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3954
3955         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
3956         * config/arm/arm.c (arm_arch_thumb1): Define.
3957         (arm_option_override): Initialize arm_arch_thumb1.
3958         * config/arm/arm.h (arm_arch_thumb1): Declare.
3959         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
3960         support Thumb-1 ISA.
3961
3962 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
3963
3964         PR target/71346
3965         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
3966         `Yv' for scalar operand.
3967
3968 2016-05-31  Tom de Vries  <tom@codesourcery.com>
3969
3970         PR tree-optimization/69068
3971         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
3972         phis with more than two args.
3973
3974 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
3975
3976         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
3977         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
3978         target.
3979
3980 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
3981
3982         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
3983         tune_64.
3984         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3985         support on SPARC.
3986         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
3987         cpu_32, cpu_64, tune_32 and tune_64.
3988         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
3989
3990 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
3991
3992         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
3993
3994 2016-05-30  Andi Kleen  <ak@linux.intel.com>
3995
3996         * auto-profile.c (read_profile): Replace asserts with errors
3997         when file does not exist.
3998         * gcov-io.c (gcov_read_words): Dito.
3999
4000 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4001
4002         * tree-cfg.c (print_loop): Print likely upper bounds.
4003
4004 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4005
4006         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
4007         * opts.c (default_options): Enable peel loops at -O3.
4008         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
4009         (try_peel_loop): Do not re-peel already peeled loops;
4010         use likely upper bounds; fix profile updating.
4011         (pass_complete_unroll::execute): Initialize peeled_loops.
4012
4013 2016-05-30  Martin Liska  <mliska@suse.cz>
4014
4015         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
4016         computed costs by frequency of BB they belong to.
4017         (get_scaled_computation_cost_at): New function.
4018
4019 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
4020             Marc Glisse  <marc.glisse@inria.fr>
4021
4022         PR tree-optimization/71289
4023         * match.pd (-1 / B < A, A > -1 / B): New transformations.
4024
4025 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4026
4027         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
4028
4029 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4030
4031         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
4032         for peeled copies; avoid underflow when updating estimates; correctly
4033         scale loop profile.
4034
4035 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4036
4037         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
4038         r236875. Corrected oe3 to oe2 as obvious.
4039
4040 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4041
4042         PR middle-end/71269
4043         PR middle-end/71252
4044         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
4045         that inserted stmt will not dominate stmts that defines its operand.
4046         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
4047         (rewrite_expr_tree_parallel): Likewise.
4048
4049 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4050
4051         PR middle-end/71252
4052         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
4053         all fields including stmt_to_insert are swapped.
4054
4055 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4056
4057         * predict.h (force_edge_cold): Declare.
4058         * predict.c (force_edge_cold): New function.
4059         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
4060         updating.
4061         (canonicalize_loop_induction_variables): Fix formating.
4062
4063 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4064
4065         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
4066         (visium_expand_copysign): Use gen_int_mode directly.
4067         (visium_compute_frame_size): Minor tweaks.
4068
4069 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4070
4071         * tree-vect-loop.c (vect_analyze_loop_2): Use
4072         likely_max_stmt_executions_int.
4073
4074 2016-05-30  Tom de Vries  <tom@codesourcery.com>
4075
4076         PR tree-optimization/69067
4077         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
4078
4079 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
4080
4081         PR target/71245
4082         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
4083         New peepholes to remove unneeded fild/fistp pairs.
4084         (define_peephole2 atomic_loaddi_fpu): Ditto.
4085
4086 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4087
4088         * predict.c (maybe_hot_frequency_p): Avoid division.
4089
4090 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
4091
4092         * doc/install.texi: Use https for shop.fsf.org.
4093
4094 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4095
4096         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
4097         likely_max_stmt_executions_int.
4098
4099 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4100
4101         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
4102         likely_max_stmt_executions_int.
4103
4104 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4105
4106         * profile.c (compute_branch_probabilities): Do not report hitrates
4107         here.
4108         (branch_prob): Report hitrates here.
4109         * predict.c (gimple_predict_edge): Do not assert profile status;
4110         fix formatting issues.
4111
4112 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4113
4114         * predict.c (edge_predicted_by_p): New function.
4115         (predict_paths_for_bb): Do not put multiple predictions of the same type
4116         on one edge.
4117
4118 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4119
4120         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
4121         commit.
4122
4123 2016-05-28  Alan Modra  <amodra@gmail.com>
4124
4125         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
4126
4127 2016-05-28  Alan Modra  <amodra@gmail.com>
4128
4129         PR rtl-optimization/71275
4130         * ira.c (ira): Free dominance info.
4131
4132 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
4133
4134         * doc/sourcebuild.texi: New address for upstream Go repository.
4135
4136 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4137
4138         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
4139         (TARGET_ARM_V7M): Likewise.
4140
4141 2016-05-26  Jeff Law  <law@redhat.com>
4142
4143         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
4144         (thread_across_edge): Remove calls to find_jump_threads_backwards.
4145         * passes.def: Add jump threading passes before DOM/VRP.
4146         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
4147         argument to a basic block from an edge.  Remove tests which are
4148         handled elsewhere.
4149         (pass_data_thread_jumps, class pass_thread_jumps): New.
4150         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
4151         (make_pass_thread_jumps): Likewise.
4152         * tree-pass.h (make_pass_thread_jumps): Declare.
4153
4154 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4155
4156         * config/visium/visium-protos.h (split_double_move): Rename into...
4157         (visium_split_double_move): ...this.
4158         (visium_split_double_add): Declare.
4159         * config/visium/visium.c (split_double_move): Rename into...
4160         (visium_split_double_move): ...this.
4161         (visium_split_double_add): New function.
4162         (visium_expand_copysign): Renumber operands for consistency.
4163         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
4164         (DFmode move splitter): Likewise.
4165         (*addi3_insn): Split by means of visium_split_double_add.
4166         (*adddi3_insn_flags): Delete.
4167         (*plus_plus_sltu<subst_arith>): New insn.
4168         (*subdi3_insn): Split by means of visium_split_double_add.
4169         (subdi3_insn_flags): Delete.
4170         (*minus_minus_sltu<subst_arith>): New insn.
4171         (*negdi2_insn): Split by means of visium_split_double_add.
4172         (*negdi2_insn_flags): Delete.
4173
4174 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
4175
4176         * configure.ac: Treat a --with-headers option without argument
4177         the same as the default (i.e. consult sys-include directory).
4178         * configure: Regenerate.
4179
4180 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4181
4182         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
4183         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
4184         prototype.
4185         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
4186         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
4187
4188 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
4189
4190         PR target/63596
4191         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
4192         tree-stdarg analysis results.
4193         (aarch64_setup_incoming_varargs): Likewise.
4194
4195 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
4196
4197         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
4198         va_list_gpr_counter_field and va_list_fpr_counter_field.
4199
4200 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
4201
4202         PR67609
4203         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
4204         * config/aarch64/aarch64.c
4205         (aarch64_cannot_change_mode_class): Remove function.
4206         * config/aarch64/aarch64-protos.h
4207         (aarch64_cannot_change_mode_class): Remove.
4208
4209 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4210
4211         * cfgloop.c (record_niter_bound): Record likely upper bounds.
4212         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
4213         get_likely_max_loop_iterations_int): New.
4214         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
4215         any_likely_upper_bound.
4216         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
4217         Declare.
4218         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
4219         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
4220         upper bound.
4221         (unroll_loop_constant_iterations): Likewise.
4222         (unroll_loop_runtime_iterations): Likewise.
4223         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
4224         * lto-streamer-out.c (output_cfg): Likewise.
4225         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
4226         bounds.
4227         (canonicalize_loop_induction_variables): Dump likely upper bounds.
4228         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
4229         (likely_max_loop_iterations): New.
4230         (likely_max_loop_iterations_int): New.
4231         (likely_max_stmt_executions): New.
4232         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
4233         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
4234         likely_max_stmt_executions): Declare.
4235
4236 2016-05-27  Marek Polacek  <polacek@redhat.com>
4237
4238         PR middle-end/71308
4239         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
4240
4241 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4242
4243         * config/s390/s390.md (2x risbg splitters): Use
4244         reg_overlap_mentioned_p instead of rtx_equal_p.
4245
4246 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4247
4248         * combine.c (make_compound_operation): Take known zero bits into
4249         account when checking for possible zero_extend.
4250
4251 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4252
4253         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
4254         Use const_int_operand for operand 2 predicate.  Simplify expand code
4255         as a result.
4256
4257 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
4258
4259         PR middle-end/71279
4260         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
4261         into comparison.
4262
4263 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4264
4265         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
4266         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
4267         that returns CC_SESWPmode and CC_ZESWPmode.
4268         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
4269         and CC_SESWPmode.
4270         (aarch64_rtx_costs): Likewise.
4271
4272 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4273
4274         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
4275         for ISA 3.0 min/max support.
4276         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
4277         conditional move support.
4278         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
4279         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
4280         available.
4281         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
4282         conditional moves where the comparison type is different from move
4283         type.
4284         (fp_minmax): New code iterator for smin/smax.
4285         (minmax): New code attributes for min/max.
4286         (SMINMAX): Likewise.
4287         (smax<mode>3): Combine min, max insns into one insn using the
4288         fp_minmax code iterator.  Add support for ISA 3.0 min/max
4289         instructions that don't need -ffast-math.
4290         (s<minmax><mode>3): Likewise.
4291         (smax<mode>3_vsx): Likewise.
4292         (smin<mode>3): Likewise.
4293         (s<minmax><mode>3_vsx): Likewise.
4294         (smin<mode>3_vsx): Likewise.
4295         (pre-VSX min/max splitters): Likewise.
4296         (s<minmax><mode>3_fpr): Likewise.
4297         (movsfcc): Rewrite floating point conditional moves to combine
4298         SFmode/DFmode into a single insn.
4299         (mov<mode>cc): Likewise.
4300         (movdfcc): Likewise.
4301         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
4302         SFDF2 iterators to handle all combinations.
4303         (fseldfsf4): Likewise.
4304         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
4305         (fseldfdf4): Likewise.
4306         (fselsfdf4): Likewise.
4307         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
4308         comparison instructions that set a 0/-1 mask, and use it for
4309         floating point conditional move via XXSEL.
4310         (fpmask<mode>): Likewise.
4311         (xxsel<mode>): Likewise.
4312         * config/rs6000/predicates.md (min_max_operator): Delete, no
4313         longer used.
4314         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
4315         instructions that generate a 0/-1 mask for use with XXSEL.
4316         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
4317         say whether floating point min/max is available, either through
4318         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
4319         (TARGET_MINMAX_DF): Likewise.
4320
4321 2016-05-27  Alan Modra  <amodra@gmail.com>
4322
4323         PR rtl-optimization/71275
4324         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
4325         for update_equiv_regs and combine_and_move_insns.
4326
4327 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
4328
4329         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
4330         if_then_else or cond RTXes to calculate attribute value.
4331         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
4332         <attr "length_immediate>: Ditto.
4333         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
4334         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
4335         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
4336         <attr "type">: Ditto.
4337         <attr "prefix_data16">: Ditto.
4338         <attr "prefix_extra">: Ditto.
4339         <attr "length_immediate">: Ditto.
4340         <attr "prefix">: Ditto.
4341         (vec_set<mode>_0) <attr "isa">: Ditto.
4342         <attr "prefix_extra">: Ditto.
4343         <attr "length_immediate">: Ditto.
4344         <attr "prefix">: Ditto.
4345         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
4346         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
4347         (sse2_storelpd) <attr "prefix_data16">: Ditto.
4348         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
4349         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
4350         <attr "length_immediate">: Ditto.
4351         <attr "prefix">: Ditto.
4352         (sse2_movsd) <attr "length_immediate">: Ditto.
4353         <attr "prefix">: Ditto.
4354         (vec_concatv2df)  <attr "isa">: Ditto.
4355         <attr "prefix">: Ditto.
4356         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
4357         (*vec_extractv2di_1) <attr "isa">: Ditto.
4358         <attr "type">: Ditto.
4359         <attr "length_immediate">: Ditto.
4360         <attr "prefix_rex">: Ditto.
4361         <attr "prefix_extra">: Ditto.
4362         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
4363         <attr "prefix_extra">: Ditto.
4364         <attr "length_immediate">: Ditto.
4365         (vec_concatv2di) <attr "isa">: Ditto.
4366         <attr "prefix_extra">: Ditto.
4367         <attr "length_immediate">: Ditto.
4368         <attr "prefix">: Ditto.
4369
4370 2016-05-26  Martin Liska  <mliska@suse.cz>
4371
4372         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
4373         function.
4374         (operator+): Likewise.
4375         (operator-): Likewise.
4376         (comp_cost::operator+=): Likewise.
4377         (comp_cost::operator-=): Likewise.
4378         (comp_cost::operator/=): Likewise.
4379         (comp_cost::operator*=): Likewise.
4380         (operator<): Likewise.
4381         (operator==): Likewise.
4382         (operator<=): Likewise.
4383         (new_cost): Remove.
4384         (infinite_cost_p): Likewise.
4385         (add_costs): Likewise.
4386         (sub_costs): Likewise.
4387         (compare_costs): Likewise.
4388         (set_group_iv_cost): Use the newly introduced functions.
4389         (get_address_cost): Likewise.
4390         (get_shiftadd_cost): Likewise.
4391         (force_expr_to_var_cost): Likewise.
4392         (split_address_cost): Likewise.
4393         (ptr_difference_cost): Likewise.
4394         (difference_cost): Likewise.
4395         (get_computation_cost_at): Likewise.
4396         (determine_group_iv_cost_generic): Likewise.
4397         (determine_group_iv_cost_address): Likewise.
4398         (determine_group_iv_cost_cond): Likewise.
4399         (autoinc_possible_for_pair): Likewise.
4400         (determine_group_iv_costs): Likewise.
4401         (cheaper_cost_pair): Likewise.
4402         (iv_ca_recount_cost): Likewise.
4403         (iv_ca_set_no_cp): Likewise.
4404         (iv_ca_set_cp): Likewise.
4405         (iv_ca_cost): Likewise.
4406         (iv_ca_new): Likewise.
4407         (iv_ca_dump): Likewise.
4408         (iv_ca_narrow): Likewise.
4409         (iv_ca_prune): Likewise.
4410         (iv_ca_replace): Likewise.
4411         (try_add_cand_for): Likewise.
4412         (try_improve_iv_set): Likewise.
4413         (find_optimal_iv_set): Likewise.
4414
4415 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
4416
4417         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
4418         that internal functions will clobber all caller-saved registers.
4419
4420 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
4421
4422         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
4423         Return a better case_values_threshold when optimizing.
4424
4425 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
4426
4427         * config/aarch64/aarch64-simd.md (aarch64_combinez):
4428         Add ? to integer variant.
4429         (aarch64_combinez_be): Likewise.
4430
4431 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
4432
4433         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
4434         instead of x constraint.
4435         (vcvtps2ph256<mask_name>): Likewise.
4436
4437         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
4438         alternative.  Formatting fix.
4439
4440         * config/i386/sse.md
4441         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
4442         to ...
4443         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
4444         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
4445         maybe_evex prefix instead of vex.
4446         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
4447         EXT_REX_SSE_REG_P (op0) case in the splitter.
4448
4449 2016-05-25  Jeff Law  <law@redhat.com>
4450
4451         PR tree-optimization/71272
4452         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
4453         Update comments.  Add test for empty path.
4454
4455 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
4456
4457         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
4458         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
4459         special case builtin.
4460         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4461         code for ALTIVEC_BUILTIN_VEC_CMPNE.
4462         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4463         for __builtin_vec_cmpne.
4464
4465 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4466
4467         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
4468         redundant test and bail out if the type of the new operand is not
4469         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
4470
4471 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
4472
4473         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
4474         (x_ix86_target_flags_explicit): Remove.
4475         * config/i386/i386.c (ix86_function_specific_save): Do not copy
4476         x_ix86_target_flags_explicit.
4477         (ix86_function_specific_restore): Ditto.
4478
4479 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
4480             H.J. Lu  <hongjiu.lu@intel.com>
4481
4482         PR target/70738
4483         * common/config/i386/i386-common.c
4484         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
4485         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
4486         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
4487         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
4488         (-mgeneral-regs-only): Add new option.
4489         * config/i386/i386.c (ix86_option_override_internal): Don't enable
4490         x87 instructions if only general registers are allowed.
4491         (ix86_target_string): Add ix86_flags argument. Handle additional
4492         flags options through ix86_flags argument.  Update all callers.
4493         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
4494
4495 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4496
4497         PR rtl-optimization/66940
4498         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
4499         decrementing desired_val will not overflow before performing these
4500         operations.
4501
4502 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
4503
4504         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
4505         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
4506         * config/i386/i386.c (enum ix86_builtins): Add
4507         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
4508         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
4509         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
4510         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
4511         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
4512         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
4513         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
4514         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
4515         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
4516         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
4517         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
4518         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
4519         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
4520         __builtin_ia32_cvtps2dq512_mask.
4521         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
4522         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
4523         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
4524         * config/i386/sse.md
4525         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
4526         Rename to ...
4527         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
4528         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
4529         to ...
4530         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
4531         (avx512f_vec_pack_sfix_v8df): New define_expand.
4532         (avx512f_roundpd512): Rename to ...
4533         (avx512f_round<castmode>512): ... this.  Change iterator.
4534         (avx512f_roundps512_sfix): New define_expand.
4535         (round<mode>2_sfix): Change iterator.
4536
4537 2016-05-25  Nick Clifton  <nickc@redhat.com>
4538
4539         * config/msp430/msp430.c (msp430_attr): Produce an error if a
4540         static interrupt handler is detected.
4541         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
4542         default linker script.
4543         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
4544         the low part of a symbolic pointer.
4545
4546 2016-05-25  Richard Biener  <rguenther@suse.de>
4547
4548         PR tree-optimization/71261
4549         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
4550         interesting stmt instead of immediate uses when looking
4551         for the use operand to replace.
4552
4553 2016-05-25  Martin Liska  <mliska@suse.cz>
4554
4555         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
4556
4557 2016-05-25  Richard Biener  <rguenther@suse.de>
4558
4559         PR tree-optimization/71264
4560         * tree-vect-stmts.c (vect_init_vector): Properly deal with
4561         vector type val.
4562
4563 2016-05-25  Martin Liska  <mliska@suse.cz>
4564
4565         PR tree-optimization/71239
4566         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
4567         if DECL_SIZE is NULL.
4568
4569 2016-05-25  Richard Biener  <rguenther@suse.de>
4570
4571         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
4572         * tree-if-conv.c (pass_data_if_conversion): Use it.
4573
4574 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4575
4576         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
4577         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
4578         * varpool.c (varpool_node::get_availability): Likewise.
4579
4580 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4581
4582         * config/rs6000/altivec.md (VNEG iterator): New iterator for
4583         VNEGW/VNEGD instructions.
4584         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
4585         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
4586         support for ISA 3.0 VNEGW/VNEGD instructions.
4587
4588 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
4589
4590         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
4591         pointers inside OACC_DATA regions.
4592         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
4593         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
4594         (gimplify_adjust_omp_clauses): Fix typo in comment.
4595
4596 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4597
4598         * config/rs6000/altivec.md (VParity): New mode iterator for vector
4599         parity built-in functions.
4600         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
4601         zeros.
4602         (p9v_parity<mode>2): Likewise.
4603         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
4604         parity.
4605         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
4606         (parity<mode>2): ISA 3.0 expander for vector parity.
4607         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
4608         power9 built-ins.
4609         (BU_P9_64BIT_MISC_0): Likewise.
4610         (BU_P9_MISC_0): Likewise.
4611         (BU_P9V_AV_1): Likewise.
4612         (BU_P9V_AV_2): Likewise.
4613         (BU_P9V_AV_3): Likewise.
4614         (BU_P9V_AV_P): Likewise.
4615         (BU_P9V_VSX_1): Likewise.
4616         (BU_P9V_OVERLOAD_1): Likewise.
4617         (BU_P9V_OVERLOAD_2): Likewise.
4618         (BU_P9V_OVERLOAD_3): Likewise.
4619         (VCTZB): Add vector count trailing zeros support.
4620         (VCTZH): Likewise.
4621         (VCTZW): Likewise.
4622         (VCTZD): Likewise.
4623         (VPRTYBD): Add vector parity support.
4624         (VPRTYBQ): Likewise.
4625         (VPRTYBW): Likewise.
4626         (VCTZ): Add overloaded vector count trailing zeros support.
4627         (VPRTYB): Add overloaded vector parity support.
4628         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4629         overloaded vector count trailing zeros and parity instructions.
4630         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
4631         vector parity support.
4632         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
4633         trailing zeros support.
4634         (vec_cntlz): Likewise.
4635         (vec_vctzb): Likewise.
4636         (vec_vctzd): Likewise.
4637         (vec_vctzh): Likewise.
4638         (vec_vctzw): Likewise.
4639         (vec_vprtyb): Add ISA 3.0 vector parity support.
4640         (vec_vprtybd): Likewise.
4641         (vec_vprtybw): Likewise.
4642         (vec_vprtybq): Likewise.
4643         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
4644         the ISA 3.0 vector count trailing zeros and vector parity built-in
4645         functions.
4646
4647 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4648
4649         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
4650         when there is stmt_to_insert.
4651
4652 2016-05-24  Martin Sebor  <msebor@redhat.com>
4653
4654         PR c++/71147
4655         * tree.h (complete_or_array_type_p): New inline function.
4656
4657 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4658
4659         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
4660         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
4661         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
4662
4663         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
4664         Limit 1st alternative to noavx isa, split 2nd alternative into one
4665         noavx and one avx alternative, use *x and Bm in the former and
4666         x and m in the latter.
4667
4668         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
4669         of sse4 for the first alternative, drop %v from the template
4670         and d operand modifier.  Split second alternative into one sse4_noavx
4671         and one avx alternative, use *x instead of *v in the former and v
4672         instead of *v in the latter.
4673         (*sse4_1_extractps): Use noavx isa instead of * for the first
4674         alternative, drop %v from the template.  Split second alternative into
4675         one noavx and one avx alternative, use *x instead of *v in the
4676         former and v instead of *v in the latter.
4677         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
4678         with noavx and the last one with avx.
4679         (sse4_1_phminposuw): Guard first alternative with noavx isa,
4680         split the second one into one noavx and one avx alternative,
4681         use *x and Bm in the former and x and m in the latter one.
4682         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
4683         alternatives.
4684
4685         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
4686         first two alternatives to noavx, use *x instead of *v in the second
4687         one, add avx alternative without *.
4688         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
4689         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
4690         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
4691
4692 2016-05-24  Jeff Law  <law@redhat.com>
4693
4694         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
4695         New function, extracted from...
4696         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
4697         Allow simple copies and constant initializations in the SSA chain.
4698
4699 2016-05-24  Marek Polacek  <polacek@redhat.com>
4700
4701         PR c/71249
4702         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
4703         scope.
4704
4705 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4706
4707         PR c++/71257
4708         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
4709         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
4710         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
4711         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
4712         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
4713
4714 2016-05-24  Richard Biener  <rguenther@suse.de>
4715
4716         PR tree-optimization/71240
4717         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
4718         has integral type.
4719
4720 2016-05-24  Richard Biener  <rguenther@suse.de>
4721
4722         PR tree-optimization/71230
4723         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
4724
4725 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4726
4727         * tree-vectorizer.h (vectorizable_comparison): Delete.
4728         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
4729         PURE_SLP_STMT check.
4730         * tree-vect-stmts.c (vectorizable_call): Likewise.
4731         (vectorizable_simd_clone_call): Likewise.
4732         (vectorizable_conversion): Likewise.
4733         (vectorizable_assignment): Likewise.
4734         (vectorizable_shift): Likewise.
4735         (vectorizable_operation): Likewise.
4736         (vectorizable_load): Likewise.
4737         (vectorizable_condition): Likewise.
4738         (vectorizable_store): Likewise.  Assert that we don't have
4739         hybrid SLP.
4740         (vectorizable_comparison): Make static.  Remove redundant
4741         PURE_SLP_STMT check.
4742         (vect_transform_stmt): Assert that we always have an slp_node
4743         if PURE_SLP_STMT.
4744
4745 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4746
4747         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
4748         operands[2] against 1 with comparison against CONST1_RTX.
4749         (<shift>di3_neon): Likewise.
4750         * config/arm/predicates.md (const0_operand): Replace with comparison
4751         against CONST0_RTX.
4752
4753 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4754
4755         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
4756         operands[2] against 1 with comparison against CONST1_RTX.
4757         (ashrdi3): Likewise.
4758         (lshrdi3): Likewise.
4759         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
4760         UINTVAL.
4761         (ashrsi3): Likewise.
4762         (lshrsi3): Likewise.
4763         (rotrsi3): Likewise.
4764         (define_split above *compareqi_eq0): Likewise.
4765         (define_split above "prologue"): Likewise.
4766         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
4767         * config/arm/predicates.md (shift_operator): Likewise.
4768         (shift_nomul_operator): Likewise.
4769         (sat_shift_operator): Likewise.
4770         (thumb1_cmp_operand): Likewise.
4771         (const_neon_scalar_shift_amount_operand): Replace manual range
4772         check with IN_RANGE.
4773         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
4774         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
4775
4776 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4777
4778         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
4779         with HOST_WIDE_INT_1.
4780         (insv): Likewise.
4781         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
4782         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
4783         (arm_canonicalize_comparison): Likewise.
4784         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
4785         HOST_WIDE_INT_1.
4786         (thumb1_size_rtx_costs): Likewise.
4787         (vfp_const_double_index): Replace cast of 1 to unsigned
4788         HOST_WIDE_INT with HOST_WIDE_INT_1U.
4789         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
4790         HOST_WIDE_INT_1.
4791         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
4792         HOST_WIDE_INT with HOST_WIDE_INT_1U.
4793         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
4794         HOST_WIDE_INT with HOST_WIDE_INT_1.
4795
4796 2016-05-24  Marek Polacek  <polacek@redhat.com>
4797
4798         * tree-cfg.h (should_remove_lhs_p): New predicate.
4799         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
4800         * gimplify.c (gimplify_modify_expr): Likewise.
4801         * tree-cfg.c (verify_gimple_call): Likewise.
4802         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
4803         * gimple-fold.c: Include "tree-cfg.h".
4804         (gimple_fold_call): Use should_remove_lhs_p.
4805
4806 2016-05-24  Richard Biener  <rguenther@suse.de>
4807
4808         PR tree-optimization/71253
4809         * cfganal.h (control_dependences): Make robust against edge
4810         and BB removal.
4811         (control_dependences::control_dependences): Remove edge_list argument.
4812         (control_dependences::get_edge): Remove.
4813         (control_dependences::get_edge_src): Add.
4814         (control_dependences::get_edge_dest): Likewise.
4815         (control_dependences::m_el): Make a vector of edge src/dest index.
4816         * cfganal.c (control_dependences::find_control_dependence): Adjust.
4817         (control_dependences::control_dependences): Likewise.
4818         (control_dependences::~control_dependence): Likewise.
4819         (control_dependences::get_edge): Remove.
4820         (control_dependences::get_edge_src): Add.
4821         (control_dependences::get_edge_dest): Likewise.
4822         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
4823         get_edge_src.
4824         (perform_tree_ssa_dce): Adjust.
4825         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
4826         get_edge_src.
4827         (pass_loop_distribution::execute): Adjust.  Do loop destroying
4828         conditional on changed.
4829
4830 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4831
4832         PR target/69857
4833         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
4834         return.  Reindent transformation comment and mention the ARM state
4835         behavior.
4836
4837 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4838
4839         PR middle-end/71252
4840         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
4841         after build_and_add_sum creates new use stmt.
4842
4843 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4844
4845         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
4846         load_lanes/grouped_load classification comes first.  Don't check
4847         whether the vectorization factor is a multiple of the group size
4848         for load_lanes.
4849
4850 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4851
4852         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
4853         GROUP_GAP for single-element interleaving.
4854         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
4855         variable.
4856
4857 2016-05-24  Richard Biener  <rguenther@suse.de>
4858
4859         PR middle-end/70434
4860         PR c/69504
4861         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
4862         bases which are accessed with non-invariant indices.
4863         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
4864         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
4865
4866 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4867
4868         PR middle-end/71170
4869         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
4870         (add_to_ops_vec): Add stmt_to_insert.
4871         (add_repeat_to_ops_vec): Init stmt_to_insert.
4872         (insert_stmt_before_use): New.
4873         (transform_add_to_multiply): Remove mult_stmt insertion and add it
4874         to ops vector.
4875         (get_ops): Init stmt_to_insert.
4876         (maybe_optimize_range_tests): Likewise.
4877         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
4878         (rewrite_expr_tree_parallel): Likewise.
4879         (reassociate_bb): Likewise.
4880
4881 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4882
4883         PR target/71201
4884         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
4885         ISA 3.0 xxperm fusion alternative.
4886         (altivec_vperm_v8hiv16qi): Likewise.
4887         (altivec_vperm_<mode>_uns_internal): Likewise.
4888         (vperm_v8hiv4si): Likewise.
4889         (vperm_v16qiv8hi): Likewise.
4890
4891 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4892             Kelvin Nilsen  <kelvin@gcc.gnu.org>
4893
4894         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
4895         vpermr/xxpermr on ISA 3.0.
4896         (altivec_expand_vec_perm_le): Likewise.
4897         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
4898         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
4899         ISA 3.0.
4900
4901 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
4902
4903         * config/i386/i386.h (IS_STACK_MODE): Enable for
4904         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
4905         SSE_FLOAT_MODE_P macros.
4906         * config/i386/i386.c (ix86_preferred_reload_class): Use
4907         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
4908         Cleanup regclass processing for CONST_DOUBLE_P.
4909         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
4910         (ix86_rtx_costs): Remove redundant TARGET_80387 check
4911         with IS_STACK_MODE macro.
4912         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
4913         with TARGET_SSE2.
4914         (*movdf_internal): Use IS_STACK_MODE macro.
4915         (*movsf_internal): Ditto.
4916
4917 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
4918
4919         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
4920         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
4921
4922 2016-05-23  Jeff Law  <law@redhat.com>
4923
4924         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
4925         extracted from ...
4926         (fsm_find_control_statement_thread_paths): Call it.
4927
4928 2016-05-23  Martin Jambor  <mjambor@suse.cz>
4929
4930         PR ipa/71234
4931         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
4932         from_global_constant if t is not NULL.
4933
4934 2016-05-23  Marek Polacek  <polacek@redhat.com>
4935
4936         PR c/49859
4937         * common.opt (Wswitch-unreachable): New option.
4938         * doc/invoke.texi: Document -Wswitch-unreachable.
4939         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
4940         warning.
4941
4942 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
4943
4944         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
4945         TMR_INDEX is non-NULL.
4946
4947 2016-05-23  Richard Biener  <rguenther@suse.de>
4948
4949         PR tree-optimization/71230
4950         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
4951         (try_special_add_to_ops): ... here.  Always test for single-use.
4952
4953 2016-05-23  Martin Jambor  <mjambor@suse.cz>
4954
4955         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
4956         default block if a PHI node in the original one would be resized.
4957
4958 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
4959
4960         PR tree-optimization/58135
4961         * tree-vect-slp.c: When group size is not multiple
4962         of vector size, allow splitting of store group at
4963         vector boundary.
4964
4965 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
4966
4967         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
4968
4969 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
4970
4971         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
4972         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
4973         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
4974         of 64x2.
4975
4976         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
4977         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
4978         v constraint instead of x and vinserti32x4 insn.
4979
4980         * config/i386/sse.md (i128vldq): New mode iterator.
4981         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
4982         avx512dq and avx512vl alternatives.
4983
4984         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
4985         constraint, use maybe_evex prefix instead of vex.
4986         (vec_dupv4sf): Use v constraint instead of x for output
4987         operand except for noavx alternative, use Yv constraint
4988         instead of x for input.  Use maybe_evex prefix instead of vex.
4989         (*vec_dupv4si): Likewise.
4990         (*vec_dupv2di): Likewise.
4991
4992 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
4993
4994         PR middle-end/40921
4995         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
4996         (linearize_expr_tree): Call try_special_add_to_ops.
4997         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
4998
4999 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5000
5001         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
5002         to computed stack_usage.
5003
5004 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
5005
5006         PR target/71103
5007         * config/avr/avr.md (define_expand "mov<mode>"): If the source
5008         operand is subreg (symbol_ref) then move the symbol ref to register.
5009
5010 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
5011
5012         * tree.c (array_at_struct_end_p): Look through MEM_REF.
5013
5014 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
5015
5016         PR middle-end/71179
5017         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
5018         VECTOR type.
5019
5020 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
5021
5022         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
5023         ranges by calling get_single_symbol and tidy up.  Look more closely
5024         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
5025
5026 2016-05-20  Jeff Law  <law@redhat.com>
5027
5028         * bitmap.c (bitmap_find_bit): Remove useless test.
5029
5030 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
5031
5032         * function.c (thread_prologue_and_epilogue_insns): Commit the
5033         insertion of the epilogue.
5034
5035 2016-05-20  Martin Jambor  <mjambor@suse.cz>
5036
5037         PR tree-optimization/70884
5038         * tree-sra.c (initialize_constant_pool_replacements): Do not check
5039         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
5040         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
5041         of constant pool data as a reason for scalarization.
5042
5043 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
5044
5045         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
5046         for naked functions.
5047         (thumb1_expand_prologue): Likewise.
5048
5049 2016-05-20  Nathan Sidwell  <nathan@acm.org>
5050
5051         * config/nvptx/nptx.c (nvptx_option_override): Only set
5052         flag_toplevel_reorder, if not explicitly specified.  Set
5053         flag_no_common, unless explicitly specified.
5054
5055 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5056
5057         * calls.c (can_implement_as_sibling_call_p): Mark param
5058         reg_parm_stack_space with ATTRIBUTE_UNUSED.
5059
5060 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
5061
5062         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
5063         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
5064         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
5065         constants.
5066         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
5067         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
5068         and CASE_CONST_ANY.
5069
5070 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
5071
5072         * config/nvptx/nvptx.md (sincossf3): New pattern.
5073
5074 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5075
5076         * calls.c (maybe_complain_about_tail_call): New function.
5077         (initialize_argument_information): Call
5078         maybe_complain_about_tail_call when clearing *may_tailcall.
5079         (can_implement_as_sibling_call_p): Call
5080         maybe_complain_about_tail_call when returning false.
5081         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
5082         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
5083         if tail-call optimization fails.
5084         * cfgexpand.c (expand_call_stmt): Initialize
5085         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
5086         * gimple-pretty-print.c (dump_gimple_call): Dump
5087         gimple_call_must_tail_p.
5088         * gimple.c (gimple_build_call_from_tree): Call
5089         gimple_call_set_must_tail with the value of
5090         CALL_EXPR_MUST_TAIL_CALL.
5091         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
5092         (gimple_call_set_must_tail): New function.
5093         (gimple_call_must_tail_p): New function.
5094         * print-tree.c (print_node): Update printing of TREE_STATIC
5095         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
5096         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
5097         trailing comment listing applicable flags.
5098         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
5099
5100 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5101
5102         * calls.c (expand_call): Move "Rest of purposes for tail call
5103         optimizations to fail" to...
5104         (can_implement_as_sibling_call_p): ...this new function, and
5105         split into multiple "if" statements.
5106
5107 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5108
5109         * cfgloop.h (expected_loop_iterations_unbounded,
5110         expected_loop_iterations): Unconstify.
5111         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
5112         profile with known upper bound; return 3 when profile is absent.
5113         (expected_loop_iterations): Update.
5114
5115 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5116
5117         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
5118         and get_max_loop_iterations_int.
5119
5120 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5121
5122         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
5123         realistic upper bounds here.
5124
5125 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
5126
5127         PR c++/71210
5128         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
5129         calls if the LHS is variable length or has addressable type.
5130         If targets[0]->decl is a noreturn call with void return type and
5131         zero arguments, adjust fntype and remove lhs in that case.
5132
5133 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
5134
5135         PR tree-optimization/71079
5136         PR tree-optimization/71206
5137         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
5138
5139 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5140
5141         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
5142         (get_vec_alignment_for_array_decl): Likewise.
5143         (get_vec_alignment_for_record_decl): Likewise.
5144         (increase_alignment::execute): Move code to find alignment to
5145         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
5146         (type_align_map): New hash_map.
5147
5148 2016-05-20  Richard Guenther  <rguenther@suse.de>
5149
5150         PR tree-optimization/29756
5151         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
5152         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
5153         * fold-const.c (operand_equal_p): Likewise.
5154         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
5155         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
5156         * tree-inline.c (estimate_operator_cost): Likewise.
5157         * tree-pretty-print.c (dump_generic_node): Likewise.
5158         * tree-ssa-operands.c (get_expr_operands): Likewise.
5159         * cfgexpand.c (expand_debug_expr): Likewise.
5160         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5161         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
5162         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
5163         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
5164         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
5165         (execute_update_addresses_taken): Do it.
5166
5167 2016-05-20  Richard Biener  <rguenther@suse.de>
5168
5169         PR tree-optimization/71185
5170         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
5171         register operations.
5172
5173 2016-05-20  Richard Biener  <rguenther@suse.de>
5174
5175         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
5176         gimple_seq_add_seq_without_update.
5177         (release_bb_predicate): Assert we have no operands to free.
5178         (if_convertible_loop_p_1): Calculate post dominators later.
5179         Do not free BB predicates here.
5180         (combine_blocks): Do not recompute BB predicates.
5181         (version_loop_for_if_conversion): Save BB predicates around
5182         loop versioning.
5183
5184 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
5185
5186         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
5187         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
5188         code.  Ignore sibcalls on EDGE_IGNORE edges.
5189         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
5190         on edges for sibcalls that run without prologue.  The rest of the
5191         function is combined from...
5192         (fix_fake_fallthrough_edge): ... this, and ...
5193         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
5194         function argument, make it a local variable.
5195
5196 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
5197
5198         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
5199         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
5200         for 32-bit mode and SEH for 64-bit.
5201         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
5202         TARGET_64BIT_DEFAULT.
5203
5204 2016-05-19  Ryan Burn  <contact@rnburn.com>
5205
5206         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
5207         * gengtype.c (open_base_files): Add cilk.h to ifiles.
5208
5209 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
5210
5211         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
5212         force pending loads from memory.
5213
5214 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5215
5216         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
5217         (UNSPEC_DARN_32): New unspec constant.
5218         (UNSPEC_DARN_RAW): New unspec constant.
5219         (darn_32): New instruction.
5220         (darn_raw): New instruction.
5221         (darn): New instruction.
5222         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
5223         support and documentation for this macro.
5224         (BU_P9_MISC_1): New macro definition.
5225         (BU_P9_64BIT_MISC_0): New macro definition.
5226         (BU_P9_MISC_0): New macro definition.
5227         (darn_32): New builtin definition.
5228         (darn_raw): New builtin definition.
5229         (darn): New builtin definition.
5230         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
5231         RS6000_BUILTIN_0 directives to surround each occurrence of
5232         #include "rs6000-builtin.def".
5233         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
5234         RS6000_BTM_64BIT flags to the returned mask, depending on
5235         configuration.
5236         (def_builtin): Correct an error in the assignments made to the
5237         debugging variable attr_string.
5238         (rs6000_expand_builtin): Add support for no-operand built-in
5239         functions.
5240         (builtin_function_type): Remove fatal_error assertion that is no
5241         longer valid.
5242         (rs6000_common_init_builtins): Add support for no-operand built-in
5243         functions.
5244         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
5245         definition.
5246         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
5247         definition.
5248         (RS6000_BTM_64BIT): New macro definition.
5249         * doc/extend.texi: Document __builtin_darn (void),
5250         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
5251         functions.
5252
5253 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
5254
5255         * tree-vect-loop.c (vect_analyze_loop_2): Use also
5256         max_loop_iterations_int.
5257
5258 2016-05-19  Marek Polacek  <polacek@redhat.com>
5259
5260         PR tree-optimization/71031
5261         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
5262         condition and adjust the code a bit.
5263
5264 2016-05-19  Martin Liska  <mliska@suse.cz>
5265
5266         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
5267         auto_vec instead of vec.
5268
5269 2016-05-19  Martin Liska  <mliska@suse.cz>
5270
5271         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
5272
5273 2016-05-19  Martin Liska  <mliska@suse.cz>
5274
5275         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
5276
5277 2016-05-19  Martin Liska  <mliska@suse.cz>
5278
5279         * ipa-pure-const.c (set_function_state): Remove an existing
5280         funct_state.
5281         (remove_node_data): Do not free it as it's released
5282         in set_function_state.
5283
5284 2016-05-19  Martin Liska  <mliska@suse.cz>
5285
5286         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
5287         bitmap.
5288
5289 2016-05-19  Martin Liska  <mliska@suse.cz>
5290
5291         * omp-simd-clone.c (simd_clone_adjust): Release vector.
5292
5293 2016-05-19  Martin Liska  <mliska@suse.cz>
5294
5295         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
5296         an auto_vec instead of re-creating it.
5297
5298 2016-05-19  Martin Liska  <mliska@suse.cz>
5299
5300         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
5301         auto_vec instead of vec.
5302
5303 2016-05-19  Martin Liska  <mliska@suse.cz>
5304
5305         * lto-section-in.c (lto_get_section_data): Call
5306         lto_check_version with additional argument.
5307         * lto-streamer.c (lto_check_version): Add new argument.
5308         * lto-streamer.h (lto_check_version): Likewise.
5309
5310 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5311
5312         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
5313         Don't add cost of inner memory when handling sign-extended loads.
5314
5315 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
5316
5317         PR rtl-optimization/71148
5318         * cse.c (cse_main): Free dominance info.
5319         (rest_of_handle_cse): Don't free dominance info.
5320         (rest_of_handle_cse2): Likewise.
5321         (rest_of_handle_cse_after_global_opts): Likewise.
5322
5323 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5324
5325         PR target/71056
5326         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
5327         NULL_TREE early if NEON is not available.  Remove now redundant check
5328         in ARM_CHECK_BUILTIN_MODE.
5329
5330 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
5331
5332         PR sanitizer/64354
5333         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
5334         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
5335         * doc/cpp.texi: Document new macros.
5336
5337 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
5338
5339         PR tree-optimization/69848
5340         * tree-vect-loop.c (vectorizable_reduction): Don't factor
5341         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
5342
5343 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
5344
5345         * function.c (thread_prologue_and_epilogue_insn): Move the
5346         "goto epilogue_done" one block later.
5347
5348 2016-05-19  Richard Biener  <rguenther@suse.de>
5349
5350         PR tree-optimization/70729
5351         * passes.def: Move LIM pass before PRE.  Remove no longer
5352         required copyprop and move first DCE out of the loop pipeline.
5353
5354 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
5355
5356         PR driver/69265
5357         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
5358         (OBJS-libcommon-target): ...here.
5359         * opts-common.c: Include spellcheck.h.
5360         (cmdline_handle_error): Build a vec of valid options and use it
5361         to suggest provide hints for misspelled arguments.
5362
5363 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
5364
5365         PR c++/71100
5366         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
5367         lhs if it has TREE_ADDRESSABLE type.
5368
5369 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
5370
5371         PR target/71145
5372         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
5373         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
5374
5375 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5376
5377         PR ipa/69708
5378         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
5379         input for NOP_EXPR pass-through functions.
5380         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
5381         aggregate global constant VAR_DECLs in constant jump functions.
5382
5383 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5384
5385         PR ipa/69708
5386         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
5387         from TREE_READONLY parameters.
5388
5389 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5390
5391         PR ipa/69708
5392         * cgraph.h (cgraph_indirect_call_info): New field
5393         guaranteed_unmodified.
5394         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
5395         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
5396         appropriate.
5397         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
5398         pass the parameter value to ipa_find_agg_cst_for_param.
5399         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
5400         guaranteed_unmodified, store AA results there instead of bailing out
5401         if present.
5402         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
5403         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
5404         (find_constructor_constant_at_offset): New function.
5405         (ipa_find_agg_cst_from_init): Likewise.
5406         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
5407         static initializers of contants, report back through a new paameter
5408         from_global_constant if that was the case.
5409         (try_make_edge_direct_simple_call): Also pass parameter value to
5410         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
5411         appropriate.
5412         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
5413         (ipa_read_indirect_edge_info): Likewise.
5414         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
5415         (ipa_load_from_parm_agg): Likewise.
5416
5417 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
5418
5419         PR rtl-optimization/71150
5420         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
5421         check.
5422
5423 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5424
5425         PR target/70915
5426         * config/rs6000/constraints.md (wE constraint): New constraint
5427         for a vector constant that can be loaded with XXSPLTIB.
5428         (wM constraint): New constraint for a vector constant of a 1's.
5429         (wS constraint): New constraint for a vector constant that can be
5430         loaded with XXSPLTIB and a vector sign extend instruction.
5431         * config/rs6000/predicates.md (xxspltib_constant_split): New
5432         predicates for wE/wS constraints.
5433         (xxspltib_constant_nosplit): Likewise.
5434         (easy_vector_constant): Add support for constants that can be
5435         loaded via XXSPLTIB.
5436         (all_ones_constant): New predicate for vector constant with all
5437         1's set.
5438         (splat_input_operand): Add support for ISA 3.0 word splat operations.
5439         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
5440         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
5441         instruction and possibly with a sign extension.
5442         (output_vec_const_move): Add support for XXSPLTIB. If we are
5443         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
5444         instead of XXLXOR/XXLORC.
5445         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
5446         operations.
5447         (rs6000_legitimize_reload_address): Likewise.
5448         (rs6000_output_move_128bit): Use output_vec_const_move to emit
5449         constants.
5450         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
5451         combine VSX_M and VSX_M2 into one iterator.
5452         (VSX_M2): Likewise.
5453         (VSINT_84): New iterators for loading constants with XXSPLTIB.
5454         (VSINT_842): Likewise.
5455         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
5456         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
5457         XXSPLTIB instruction.
5458         (xxspltib_<mode>_nosplit): Likewise.
5459         (xxspltib_<mode>_split): New insn to load up constants with
5460         XXSPLTIB and a sign extend instruction.
5461         (vsx_mov<mode>): Replace single move that handled all vector types
5462         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
5463         moves (when -mvsx-timode is in effect) into the main vector
5464         moves.  Eliminate separate moves for <VSr> <VSa>, where the
5465         preferred register class (<VSr>) is listed first, and the
5466         secondary register class (<VSa>) is listed second with a '?' to
5467         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
5468         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
5469         that if the register was involved in a slow operation, the
5470         clear/set operation does not wait for the slow operation to
5471         finish.  Adjust the length attributes for 32-bit mode.  Use
5472         rs6000_output_move_128bit and drop the use of the string
5473         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
5474         spacing so that the alternatives and attributes don't generate
5475         long lines, and put things in columns, so that it is easier to
5476         match up the operands and attributes with the insn alternatives.
5477         (vsx_mov<mode>_64bit): Likewise.
5478         (vsx_mov<mode>_32bit): Likewise.
5479         (vsx_movti_64bit): Fold movti into normal vector moves.
5480         (vsx_movti_32bit): Likewise.
5481         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
5482         splat instructions.
5483         (vsx_splat_v4si_internal): Likewise.
5484         (vsx_splat_v4sf_internal): Likewise.
5485         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
5486         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
5487         extend vector elements.
5488         (vsx_sign_extend_hi_<mode>): Likewise.
5489         (vsx_sign_extend_si_v2di): Likewise.
5490         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
5491         declaration.
5492         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
5493         constraints.  Add trailing period to wL documentation.
5494
5495 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
5496
5497         PR middle-end/71020
5498         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
5499         * tree-dfa.c (replace_abnormal_ssa_names): New function.
5500         * tree-call-cdce.c: Include tree-dfa.h.
5501         (can_guard_call_p): New function, extracted from...
5502         (can_use_internal_fn): ...here.
5503         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
5504         and return void.
5505         (shrink_wrap_one_built_in_call): Likewise.
5506         (use_internal_fn): Likewise.
5507         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
5508         and return void.  Call replace_abnormal_ssa_names.
5509         (pass_call_cdce::execute): Check can_guard_call_p during the
5510         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
5511         will always change something.
5512
5513 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5514
5515         PR ipa/70646
5516         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
5517         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
5518
5519 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5520
5521         PR ipa/70646
5522         * ipa-inline.h (condition): New field size.
5523         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
5524         for comaprison and store it into the new condition.
5525         (evaluate_conditions_for_known_args): Use condition size to check
5526         access sizes for all but CHANGED conditions.
5527         (unmodified_parm_1): New parameter size_p, store access size into it.
5528         (unmodified_parm): Likewise.
5529         (unmodified_parm_or_parm_agg_item): Likewise.
5530         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
5531         (set_cond_stmt_execution_predicate): Extract access sizes and store
5532         them to conditions.
5533         (set_switch_stmt_execution_predicate): Likewise.
5534         (will_be_nonconstant_expr_predicate): Likewise.
5535         (will_be_nonconstant_predicate): Likewise.
5536         (inline_read_section): Stream condition size.
5537         (inline_write_summary): Likewise.
5538
5539 2016-05-18  Richard Biener  <rguenther@suse.de>
5540
5541         * tree-ssa-loop-im.c (determine_max_movement): Properly add
5542         condition cost to PHI cost instead of total_cost.
5543
5544 2016-05-18  Martin Liska  <mliska@suse.cz>
5545
5546         PR fortran/70856
5547         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
5548         merged variables.
5549
5550 2016-05-18  Richard Biener  <rguenther@suse.de>
5551
5552         * lto-streamer.h (LTO_major_version): Bump to 6.
5553
5554 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
5555
5556         * function.c (make_split_prologue_seq, make_prologue_seq,
5557         make_epilogue_seq): New functions, factored out from...
5558         (thread_prologue_and_epilogue_insns): Here.
5559
5560 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
5561
5562         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5563         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
5564         of before.  Add a comment.
5565
5566 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
5567
5568         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
5569         expression pointer, not pointer to the pointer.
5570
5571 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
5572
5573         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
5574         (avx2_pbroadcast<mode>): Add another alternative with v instead
5575         of x constraints in it, using <pbroadcast_evex_isa> isa.
5576         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
5577
5578         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
5579         constraint x instead of v in second alternative, add avx512bw
5580         alternative.
5581
5582         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
5583         constraint x instead of v in second alternative, add avx512bw
5584         alternative.
5585
5586         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
5587         constraint x instead of v in second alternative, add avx512bw
5588         alternative.
5589
5590         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
5591         avx512bw alternative.
5592
5593 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5594
5595         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
5596         array to 128 chars.
5597         (define_insn "*andnottf3"): Ditto.
5598         (define_insn "*<code><mode>3"/any_logic): Ditto.
5599         (define_insn "*<code>tf3"/any_logic): Ditto.
5600         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
5601         operand to block AVX-512VL insn variant emit when it is not enabled.
5602
5603 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5604
5605         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
5606         constraint fot SF mode.
5607
5608 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
5609             Kirill Yukhin  <kirill.yukhin@intel.com>
5610
5611         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
5612         modifiers.
5613         (define_insn "rsqrt14<mode>"): Ditto.
5614         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
5615         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
5616         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
5617         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
5618         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
5619         Ditto.
5620         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
5621         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
5622         * config/i386/i386.c (ix86_print_operand): Expand check for size
5623         override codes for Intel syntax.
5624
5625 2016-05-18  Richard Biener  <rguenther@suse.de>
5626
5627         PR tree-optimization/71168
5628         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
5629         initialization earlier.
5630
5631 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
5632
5633         * config/aarch64/aarch64-simd.md
5634         (aarch64_reduc_plus_internal<mode>): Rename to...
5635         (reduc_plus_scal): ...This, and remove previous implementation.
5636
5637 2016-05-18  Richard Biener  <rguenther@suse.de>
5638
5639         * passes.def: Put late dse and cd_dce in canonical order.
5640
5641 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
5642
5643         * ipa-inline-transform.c (preserve_function_body_p): Look for
5644         first non-thunk clone.
5645         (save_function_body): Save into first non-thunk.
5646         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
5647         up call stmt id.
5648         (lto_output_node): Inline thunks don't need body in every
5649         partition.
5650         * lto-streamer-in.c: Do not fixup thunk clones.
5651         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
5652         thunks.
5653         * tree-inline.c (copy_bb): Be prepared for target node to be new after
5654         folding suceeds.
5655
5656 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5657
5658         PR middle-end/63586
5659         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
5660         (reassociate_bb): Call transform_add_to_multiply.
5661
5662 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5663
5664         * config/aarch64/aarch64.c (all_extensions): Removed unused
5665         static variable.
5666
5667 2016-05-17  Nathan Sidwell  <nathan@acm.org>
5668
5669         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
5670         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
5671
5672 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
5673
5674         PR tree-optimization/54579
5675         PR middle-end/55299
5676         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
5677
5678 2016-05-17  Marek Polacek  <polacek@redhat.com>
5679
5680         PR ipa/71146
5681         * tree-inline.c (expand_call_inline): Call
5682         maybe_remove_unused_call_args.
5683
5684 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
5685
5686         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
5687         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
5688         * doc/md.texi (fmin@var{m}3): Likewise.
5689
5690 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5691
5692         * match.pd (X & C): New transformation.
5693
5694 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5695
5696         * match.pd (~X & Y): New transformation.
5697
5698 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5699
5700         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
5701         information for new SSA_NAME.
5702         (simplify_conversion_using_ranges): Get range through get_range_info
5703         instead of get_value_range.
5704
5705 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5706
5707         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
5708         Remove inline assembly.
5709         (vmvn_s16): Likewise.
5710         (vmvn_s32): Likewise.
5711         (vmvn_u8): Likewise.
5712         (vmvn_u16): Likewise.
5713         (vmvn_u32): Likewise.
5714         (vmvnq_s8): Likewise.
5715         (vmvnq_s16): Likewise.
5716         (vmvnq_s32): Likewise.
5717         (vmvnq_u8): Likewise.
5718         (vmvnq_u16): Likewise.
5719         (vmvnq_u32): Likewise.
5720         (vmvn_p8): Likewise.
5721         (vmvnq_p16): Likewise.
5722
5723 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5724
5725         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
5726         Use builtin.
5727         (vmul_n_s16): Likewise.
5728         (vmul_n_s32): Likewise.
5729         (vmul_n_u16): Likewise.
5730         (vmul_n_u32): Likewise.
5731         (vmulq_n_f32): Likewise.
5732         (vmulq_n_f64): Likewise.
5733         (vmulq_n_s16): Likewise.
5734         (vmulq_n_s32): Likewise.
5735         (vmulq_n_u16): Likewise.
5736         (vmulq_n_u32): Likewise.
5737
5738 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5739
5740         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
5741         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
5742
5743 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5744
5745         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
5746         to *aarch64_fma4_elt_from_dup<mode>.
5747         (*aarch64_fnma4_elt_to_128df): Rename to
5748         *aarch64_fnma4_elt_from_dup<mode>.
5749         * config/aarch64/arm_neon.h (vfma_n_f64): New.
5750         (vfms_n_f32): Likewise.
5751         (vfms_n_f64): Likewise.
5752         (vfmsq_n_f32): Likewise.
5753         (vfmsq_n_f64): Likewise.
5754
5755 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
5756
5757         * wide-int.h: Change fixed_wide_int_storage from class to struct.
5758
5759 2016-05-17  Richard Biener  <rguenther@suse.de>
5760
5761         PR tree-optimization/71132
5762         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
5763         Only add control dependences for blocks in the loop.
5764         (build_rdg): Adjust.
5765         (generate_code_for_partition): Return whether loop should
5766         be destroyed and delay that.
5767         (distribute_loop): Likewise.
5768         (pass_loop_distribution::execute): Record loops to be destroyed
5769         and perform delayed destroying of loops.
5770
5771 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5772
5773         PR target/70809
5774         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
5775
5776 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5777
5778         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
5779
5780 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
5781
5782         PR target/71114
5783         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
5784         insertion point for instructions generated by validize_mem.
5785
5786 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5787
5788         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
5789         in brackets.
5790
5791 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5792
5793         * config/aarch64/aarch64.c
5794         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
5795         rather than a macro.
5796
5797 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5798
5799         * doc/invoke.texi (AArch64 Options): Various updates.
5800
5801 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5802
5803         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
5804         into instrumentation thunks.
5805         * cif-code.def (CIF_CHKP): New.
5806
5807 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
5808
5809         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
5810
5811 2016-05-16  Martin Jambor  <mjambor@suse.cz>
5812
5813         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
5814         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
5815
5816 2016-05-16  Marek Polacek  <polacek@redhat.com>
5817
5818         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
5819         commentary.
5820
5821 2016-05-16  Martin Jambor  <mjambor@suse.cz>
5822
5823         PR hsa/70857
5824         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
5825         the outlined kernel function.
5826
5827 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
5828
5829         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
5830         (ISA_HAS_DLSA): Ditto.
5831
5832 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
5833
5834         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
5835
5836 2016-05-16  Nathan Sidwell  <nathan@acm.org>
5837
5838         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
5839         (nvptx_name_replacement): Restore.  Add comment.
5840         (write_fn_proto, write_fn_proto_from_insn,
5841         nvptx_output_call_insn): Restore
5842         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
5843
5844 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5845
5846         * config/aarch64/aarch64.md
5847         (add<mode>3_compareC_cconly_imm): Remove use of %w.
5848         (add<mode>3_compareC_imm): Likewise.
5849         (<optab>si3_uxtw): Split into register and immediate variants.
5850         (andsi3_compare0_uxtw): Likewise.
5851         (and<mode>3_compare0): Likewise.
5852         (and<mode>3nr_compare0): Likewise.
5853         (stack_protect_test_<mode>): Don't use %x for memory operands.
5854
5855 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
5856
5857         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
5858
5859 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5860
5861         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
5862         Split integer shifts into shift_reg and bfm.
5863         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
5864         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
5865         (ror<mode>3_insn): Likewise.
5866         (<optab>si3_insn_uxtw): Likewise.
5867         (<optab><mode>3_insn): Change to rotate_imm.
5868         (extr<mode>5_insn_alt): Likewise.
5869         (extrsi5_insn_uxtw): Likewise.
5870         (extrsi5_insn_uxtw_alt): Likewise.
5871
5872 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
5873
5874         * doc/tm.texi: Regenerate.
5875         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
5876         (TARGET_INVALID_RETURN_TYPE): Remove.
5877         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
5878         TARGET_INVALID_RETURN_TYPE.
5879         * target.def (invalid_parameter_type): Remove.
5880         (invalid_return_type): Remove.
5881
5882 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5883
5884         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
5885         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
5886         calls from thunk.
5887         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
5888         gimple body.
5889         (preserve_function_body_p): No need to preserve function body
5890         * cif-codes.def (CIF_THUNK): Remove.
5891         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
5892
5893 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5894
5895         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
5896
5897 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5898
5899         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
5900         for thunks.
5901
5902 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5903
5904         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
5905         (inline_small_functions): Do not look for function symbol when
5906         resetting caches.
5907
5908 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5909
5910         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
5911         of inline thunks
5912
5913 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
5914             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5915             Jiong Wang  <jiong.wang@arm.com>
5916
5917         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
5918         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
5919         Define __ARM_FP16_ARGS when appropriate.
5920         * config/arm/arm.c (arm_invalid_parameter_type): Remove
5921         declaration.
5922         (arm_invalid_return_type): Likewise.
5923         (TARGET_INVALID_PARAMETER_TYPE): Remove.
5924         (TARGET_INVALID_RETURN_TYPE): Remove.
5925         (aapcs_vfp_sub_candidate): Allow HFmode.
5926         (aapcs_vfp_allocate): Add comment.  Support HFmode.
5927         (aapcs_vfp_allocate_return_reg): Likewise.
5928         (struct aapcs_cp_arg_layout): Slightly reword comments for
5929         is_return_candidate and allocate_return_reg.
5930         (output_mov_vfp): Update assert.
5931         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
5932         condition.
5933         (arm_invalid_parameter_type): Remove.
5934         (amr_invalid_return_type): Remove.
5935         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
5936         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
5937         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
5938
5939 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
5940
5941         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
5942         * config/aarch64/arch64-protos.h
5943         (aarch64_legitimize_reload_address): Remove.
5944         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
5945         Remove.
5946
5947 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5948
5949         * configure.ac: Add ACX_NONCANONICAL_HOST.
5950         * configure: Regenerate.
5951         * Makefile.in: Set host_noncanonical.
5952
5953 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
5954
5955         PR target/71097
5956         * config/i386/i386.md (*movtf_internal): Before register allocation,
5957         do not allow FP constants for CM_MEDIUM memory model, allow only
5958         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
5959         (*movxf_internal): Ditto.
5960         (*movdf_internal): Ditto.
5961         (*movsf_internal): Ditto.
5962
5963 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
5964
5965         PR rtl-optimization/67483
5966         * combine.c (make_compound_operation): Don't call extract_left_shift
5967         with negative shift amounts.
5968
5969 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
5970
5971         PR bootstrap/71071
5972         * fold-const.c (fold_checksum_tree): Allow modification
5973         of TYPE_ALIAS_SET during folding.
5974
5975         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
5976         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
5977         (ix86_split_to_parts): Likewise.  Fix up formatting.
5978
5979 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
5980
5981         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
5982         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
5983         printf format.
5984
5985 2016-05-13  Nathan Sidwell  <nathan@acm.org>
5986
5987         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
5988         (nvptx_name_replacement): Delete.
5989         (write_fn_proto, write_fn_proto_from_insn,
5990         nvptx_output_call_insn): Remove nvptx_name_replacement call.
5991         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
5992         * langhooks.c (add_builtin_funcction_common): Call
5993         targetm.mangle_decl_assembler_name.
5994
5995         * config/nvptx/nvptx.c (write_fn_proto): Handle
5996         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
5997
5998 2016-05-13  Martin Liska  <mliska@suse.cz>
5999
6000         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
6001         and PRIu64 in printf format.
6002
6003 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6004
6005         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
6006         comment.
6007
6008 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6009
6010         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
6011         Change --param max-completely-peeled-times to
6012         --param max-completely-peel-times in dump file printing.
6013
6014 2016-05-13  Richard Biener  <rguenther@suse.de>
6015
6016         PR tree-optimization/42587
6017         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
6018         (find_bswap_or_nop_1): Likewise.
6019         (bswap_replace): Likewise.
6020
6021 2016-05-13  Martin Liska  <mliska@suse.cz>
6022
6023         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
6024         Initialize a variable with default value.
6025
6026 2016-05-13  Martin Liska  <mliska@suse.cz>
6027
6028         * doc/invoke.texi: Enhance explanation of error recovery
6029         of sanitizers.
6030
6031 2016-05-13  Martin Liska  <mliska@suse.cz>
6032
6033         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
6034         (struct cost_pair): Change inv_expr_id (int) to inv_expr
6035         (iv_inv_expr_ent *).
6036         (struct iv_inv_expr_ent): Comment struct fields.
6037         (sort_iv_inv_expr_ent): New function.
6038         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
6039         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
6040         a hash_map between iv_inv_expr_ent and number of usages.
6041         (niter_for_exit): Fix coding style.
6042         (tree_ssa_iv_optimize_init): Use renamed variable.
6043         (determine_base_object): Fix coding style.
6044         (alloc_iv): Likewise.
6045         (find_interesting_uses_outside): Likewise.
6046         (add_candidate_1): Likewise.
6047         (add_standard_iv_candidates): Likewise.
6048         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
6049         (prepare_decl_rtl): Fix coding style.
6050         (get_address_cost): Likewise.
6051         (get_shiftadd_cost): Likewise.
6052         (force_expr_to_var_cost): Likewise.
6053         (compare_aff_trees): Likewise.
6054         (get_expr_id): Restructure the function.
6055         (get_loop_invariant_expr_id): Renamed to
6056         get_loop_invariant_expr.
6057         (get_computation_cost_at): Replace usage of inv_expr_id with
6058         inv_expr.
6059         (get_computation_cost): Likewise.
6060         (determine_group_iv_cost_generic): Likewise.
6061         (determine_group_iv_cost_address): Likewise.
6062         (iv_period): Fix coding style.
6063         (iv_elimination_compare_lt): Likewise.
6064         (may_eliminate_iv): Likewise.
6065         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
6066         inv_expr.
6067         (determine_group_iv_costs): Dump invariant expressions.
6068         (iv_ca_recount_cost): Use the newly added hash_map.
6069         (iv_ca_set_remove_invariants): Fix coding style.
6070         (iv_ca_set_add_invariants): Fix coding style.
6071         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
6072         invariants.
6073         (iv_ca_set_cp): Likewise.
6074         (iv_ca_new): Initialize the newly added hash_map and remove
6075         initialization of fields.
6076         (iv_ca_free): Delete the hash_map.
6077         (iv_ca_dump): Dump invariant expressions.
6078         (iv_ca_extend): Fix coding style.
6079         (try_add_cand_for): Likewise.
6080         (create_new_ivs): Dump information about # of avg iterations and
6081         # of used invariant expressions.
6082         (rewrite_use_compare): Fix coding style.
6083         (free_loop_data): Set default value for max_inv_expr_id.
6084
6085 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
6086
6087         * cse.c (rest_of_handle_cse): Use cleanup_cfg
6088         returned value cse_cfg_altered computation.
6089         (rest_of_handle_cse2): Likewise.
6090         (rest_of_handle_cse_after_global_opts): Likewise.
6091
6092 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6093
6094         PR target/53440
6095         * config/arm/arm.c (arm32_output_mi_thunk): New.
6096         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
6097         to split Thumb1 vs TARGET_32BIT functionality.
6098         (arm_thumb1_mi_thunk): New.
6099
6100 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6101
6102         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
6103         to true.
6104
6105 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6106
6107         PR target/71080
6108         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
6109
6110 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
6111
6112         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
6113         (expand_builtin_trap): Emit a regular call.
6114         (set_builtin_user_assembler_name): Remove obsolete cases.
6115         * dse.c (scan_insn): Adjust.
6116         * except.c: Include calls.h.
6117         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
6118         emit a regular call to setjmp.
6119         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
6120         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
6121         (emit_block_move_via_libcall): Delete.
6122         (block_move_fn): Delete.
6123         (init_block_move_fn): Likewise.
6124         (emit_block_move_libcall_fn): Likewise.
6125         (emit_block_op_via_libcall): New function.
6126         (set_storage_via_libcall): Tidy up and use memset builtin.
6127         (block_clear_fn): Delete.
6128         (init_block_clear_fn): Likewise.
6129         (clear_storage_libcall_fn): Likewise.
6130         (expand_assignment): Call emit_block_move_via_libcall.
6131         Do not include gt-expr.h.
6132         * expr.h (emit_block_op_via_libcall): Declare.
6133         (emit_block_copy_via_libcall): New inline function.
6134         (emit_block_move_via_libcall): Likewise.
6135         (emit_block_comp_via_libcall): Likewise.
6136         (block_clear_fn): Delete.
6137         (init_block_move_fn): Likewise.
6138         (init_block_clear_fn): Likewise.
6139         (emit_block_move_via_libcall): Likewise.
6140         (set_storage_via_libcall): Add default parameter value.
6141         * libfuncs.h (enum libfunc_index): Remove obsolete values.
6142         (abort_libfunc): Delete.
6143         (memcpy_libfunc): Likewise.
6144         (memmove_libfunc): Likewise.
6145         (memcmp_libfunc): Likewise.
6146         (memset_libfunc): Likewise.
6147         (setbits_libfunc): Likewise.
6148         (setjmp_libfunc): Likewise.
6149         (longjmp_libfunc): Likewise.
6150         (profile_function_entry_libfunc): Likewise.
6151         (profile_function_exit_libfunc): Likewise.
6152         (gcov_flush_libfunc): Likewise.
6153         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
6154         and DECL_VISIBILITY on the declaration.
6155         (init_optabs): Do not initialize obsolete libfuncs.
6156         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
6157         * tree-core.h (ECF_RET1): Define.
6158         (ECF_TM_PURE): Adjust.
6159         (ECF_TM_BUILTIN): Likewise.
6160         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
6161         (build_common_builtin_nodes): Initialize abort builtin.
6162         Add ECF_RET1 on memcpy, memmove and memset builtins.
6163         Pass final flags for alloca and alloca_with_align builtins.
6164         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
6165         obsolete builtins.
6166         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
6167         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
6168         set_storage_via_libcall and call emit_block_copy_via_libcall.
6169
6170 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
6171
6172         * config/i386/i386.md (*call_got_x32): Change operand 0 to
6173         DImode before it is passed to ix86_output_call_operand.
6174         (*call_value_got_x32): Ditto for operand 1.
6175
6176 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
6177
6178         PR rtl-optimization/70904
6179         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
6180         reload for wide mode.
6181
6182 2016-05-12  Marek Polacek  <polacek@redhat.com>
6183
6184         PR c/70756
6185         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
6186         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
6187         * langhooks.h (incomplete_type_error): Likewise.
6188         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
6189         parameter, pass it down to incomplete_type_error.
6190         * tree.h (size_in_bytes): New inline overload.
6191         (size_in_bytes_loc): Renamed from size_in_bytes.
6192
6193 2016-05-12  Richard Biener  <rguenther@suse.de>
6194
6195         PR tree-optimization/71059
6196         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
6197         nary before looking up or entering the expression into the VN
6198         hashes.
6199         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
6200         Make sure to re-use NARYs without result as inserted by
6201         phi-translation.
6202
6203 2016-05-12  Richard Biener  <rguenther@suse.de>
6204
6205         PR tree-optimization/71062
6206         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
6207         field.
6208         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6209         vars_contains_restrict if the var is a restrict tag.
6210         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
6211         do not disambiguate pointers against it.
6212         (dump_points_to_solution): Re-structure and adjust for new
6213         vars_contains_restrict flag.
6214         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
6215
6216 2016-05-12  Martin Liska  <mliska@suse.cz>
6217
6218         * doc/invoke.texi: Explain connection between
6219         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
6220
6221 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
6222
6223         PR tree-optimization/71006
6224         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
6225         consider COND_EXPR as a mask producer.
6226
6227 2016-05-12  Marek Polacek  <polacek@redhat.com>
6228
6229         PR driver/71063
6230         * opts.c (common_handle_option): Detect missing argument for --help^.
6231
6232 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6233
6234         PR target/70830
6235         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
6236         when popping the PC and within an interrupt handler routine.
6237         Add missing tab to output of "ldmfd".
6238         (output_return_instruction): Output LDMFD with SP update rather
6239         than POP when returning from interrupt handler.
6240
6241 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
6242
6243         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
6244         TARGET_64BIT && TARGET_AVX512DQ.
6245         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
6246         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
6247         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
6248         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
6249         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
6250         (*vec_extractv4si_zext): Add avx512dq alternative.
6251         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
6252         use v instead of x constraint in other alternatives where possible.
6253
6254         * config/i386/sse.md (sse2_loadld): Use v instead of x
6255         constraint in alternatives 0,1,4.
6256
6257         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
6258         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
6259         v constraints instead of x and <pinsr_evex_isa> isa attribute.
6260
6261         PR target/71019
6262         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
6263         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
6264         is not emitted unless TARGET_AVX512BW.
6265         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
6266         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
6267         for the result operand.
6268
6269         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
6270         constraint instead of x in avx alternatives.  Use maybe_evex instead
6271         of vex prefix.
6272
6273         * config/i386/constraints.md (Yv): New constraint.
6274         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
6275         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
6276         * config/i386/i386.md (avx512fvecmode): New mode attr.
6277         (*pushtf): Use v constraint instead of x.
6278         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
6279         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
6280         (*absneg<mode>2): Use Yv constraint instead of x constraint.
6281         (*absnegtf2_sse): Likewise.
6282         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
6283         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
6284         avx512f alternatives.
6285         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
6286
6287 2016-05-12  Richard Biener  <rguenther@suse.de>
6288
6289         PR tree-optimization/71060
6290         * tree-data-ref.c (initialize_data_dependence_relation): Do not
6291         require exact match of DR_BASE_OBJECT but only matching address and
6292         type.
6293
6294 2016-05-12  Richard Biener  <rguenther@suse.de>
6295
6296         PR tree-optimization/70986
6297         * cfganal.c: Include cfgloop.h.
6298         (dfs_find_deadend): Prefer to take edges exiting loops.
6299
6300 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6301
6302         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
6303         compile and run time.
6304
6305 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
6306
6307         PR c/43651
6308         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
6309
6310 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
6311
6312         * config/i386/i386.c (legitimize_pic_address): Use
6313         copy_to_suggested_reg instead of gen_movsi.
6314
6315 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6316
6317         * config/rs6000/predicates.md (quad_memory_operand): Move most of
6318         the code into quad_address_p and call it to share code with
6319         vsx_quad_dform_memory_operand.
6320         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
6321         d-form support.
6322         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
6323         bit instead of being a separate word.  Split -mpower9-dform into
6324         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
6325         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
6326         for the register class supporting 128-bit quad word memory offsets.
6327         (mode_supports_vsx_dform_quad): Helper function to return if the
6328         register class uses quad word memory offsets.
6329         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
6330         (rs6000_debug_reg_global): Always print if we are using LRA or not.
6331         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
6332         instructions are enabled, set up the appropriate addr_masks for
6333         128-bit types.
6334         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
6335         -mpower9-dform-scalar, instead of -mpower9-dform.
6336         (rs6000_option_override_internal): Split -mpower9-dform into two
6337         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
6338         -mpower9-dform switch sets or clears both.  If we are not using
6339         the LRA register allocator, do not enable -mpower9-dform-vector by
6340         default.  If we are using LRA, enable -mpower9-dform-vector and
6341         -mvsx-timode if it is appropriate.  Issue a warning if either
6342         -mpower9-dform-vector or -mvsx-timode are explicitly used without
6343         enabling LRA.
6344         (quad_address_offset_p): New helper function to return if the
6345         offset is legal for quad word memory instructions.
6346         (quad_address_p): New function to determin if GPR or vector
6347         register quad word memory addresses are legal.
6348         (mem_operand_gpr): Validate quad word address offsets.
6349         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
6350         d-form (register + offset) instructions.
6351         (offsettable_ok_by_alignment): Likewise.
6352         (rs6000_legitimate_offset_address_p): Likewise.
6353         (legitimate_lo_sum_address_p): Likewise.
6354         (rs6000_legitimize_address): Likewise.
6355         (rs6000_legitimize_reload_address): Add more debug statements for
6356         -mdebug=addr.
6357         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
6358         d-form instructions.
6359         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
6360         d-form instructions.  Distinguish different cases in debug
6361         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
6362         d-form instructions.
6363         (rs6000_preferred_reload_class): Likewise.
6364         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
6365         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
6366         of the ISA 2.06 indexed memory instructions.
6367         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
6368         use them to save/restore the saved vector registers instead of
6369         using Altivec instructions.
6370         (rs6000_emit_epilogue): Likewise.
6371         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
6372         (rs6000_opt_masks): Split -mpower9-dform into
6373         -mpower9-dform-scalar and -mpower9-dform-vector.
6374         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
6375         was not selected.
6376         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
6377         ISA 3.0 vector indexed memory instructions, and fold the code into
6378         the normal mov<mode> patterns.
6379         (p9_vecstore_<mode>): Likewise.
6380         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
6381         instructions.
6382         (vsx_movti_64bit): Likewise.
6383         (vsx_movti_32bit): Likewise.
6384         * config/rs6000/constraints.md (wO constraint): New constraint for
6385         ISA 3.0 vector d-form support.
6386         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
6387         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
6388         include -mpower9-dform-vector until we switch over to LRA.
6389         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
6390         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
6391         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
6392         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6393         for -mpower9-dform and -mlra.
6394         * doc/md.texi (wO constraint): Document wO constraint.
6395
6396 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
6397
6398         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
6399         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
6400         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
6401         Move handling of non-insn arguments inline into the sole user:
6402         (output_trans_func): ...here.
6403         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
6404         in emitted function prototype.
6405         (output_internal_insn_latency_func): Ditto.  Simplify.
6406         (output_internal_maximal_insn_latency_func): Ditto.  Delete
6407         always-unused argument.
6408         (output_insn_latency_func): Ditto.
6409         (output_maximal_insn_latency_func): Ditto.
6410
6411 2016-05-11  Richard Biener  <rguenther@suse.de>
6412
6413         PR tree-optimization/71055
6414         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
6415         sth with precision not equal to access size verify we don't chop
6416         off bits.
6417
6418 2016-05-11  Richard Biener  <rguenther@suse.de>
6419
6420         PR debug/71057
6421         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
6422         (dwarf2out_finish): Move retry_incomplete_types call ...
6423         (dwarf2out_early_finish): ... here.
6424
6425 2016-05-11  Richard Biener  <rguenther@suse.de>
6426
6427         PR middle-end/71002
6428         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
6429         if the langhook insists on it.
6430         * fold-const.c (make_bit_field_ref): Add arg for the original
6431         reference and preserve its alias-set.
6432         (decode_field_reference): Take exp by reference and adjust it
6433         to the original memory reference.
6434         (optimize_bit_field_compare): Adjust callers.
6435         (fold_truth_andor_1): Likewise.
6436         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
6437
6438 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
6439
6440         PR middle-end/70807
6441         * cfgrtl.h (delete_insn_and_edges): Now return bool.
6442         * cfgrtl.c (delete_insn_and_edges): Likewise.
6443         * config/i386/i386.c (convert_scalars_to_vector): Remove
6444         redundant code.
6445         * cse.c (cse_insn): Compute cse_cfg_altered.
6446         (delete_trivially_dead_insns): Likewise.
6447         (cse_cc_succs): Likewise.
6448         (rest_of_handle_cse): Free dominance info if required.
6449         (rest_of_handle_cse2): Likewise.
6450         (rest_of_handle_cse_after_global_opts): Likewise.
6451
6452 2016-05-11  Alan Modra  <amodra@gmail.com>
6453
6454         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
6455         abi_v4_pass_in_fpr): New functions.
6456         (rs6000_function_arg_boundary): Exclude complex IBM long double
6457         from 64-bit alignment when ABI_V4.
6458         (rs6000_function_arg, rs6000_function_arg_advance_1,
6459         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
6460
6461 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
6462
6463         PR rtl-optimization/71028
6464         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
6465         jump with just a return in the fallthrough block if the branch
6466         block contains just a return as well.
6467
6468 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
6469
6470         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
6471         * match.pd ((X & Y) ^ Y): ... this.
6472         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
6473         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
6474
6475 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
6476
6477         * read-md.c (require_char_ws): New function.
6478         (read_string): Simplify using require_char_ws.
6479         (handle_constants): Likewise.
6480         (handle_enum): Likewise.
6481         (handle_file): Likewise.
6482         * read-md.h (require_char_ws): New declaration.
6483         * read-rtl.c (read_conditions): Simplify using require_char_ws.
6484         (read_mapping): Likewise.
6485         (read_rtx_code): Likewise.
6486         (read_nested_rtx): Likewise.
6487
6488 2016-05-10  James Norris  <jnorris@codesourcery.com>
6489
6490         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
6491         if offloading is enabled and -fopenacc or -fopenmp is specified.
6492         (CRTOFFLOADEND): Likewise.
6493         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
6494         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
6495
6496 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
6497
6498         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
6499         gotoff_operand code paths.  Use copy_to_suggested_regs and
6500         expand_simple_binop where appropriate.  Cleanup.
6501
6502 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6503
6504         PR target/70799
6505         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
6506         integer constants.
6507         (dimode_scalar_chain::vector_const_cost): New.
6508         (dimode_scalar_chain::compute_convert_gain): Handle constants.
6509         (dimode_scalar_chain::convert_op): Likewise.
6510         (dimode_scalar_chain::convert_insn): Likewise.
6511
6512 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
6513
6514         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
6515         unary operation, not a binary one.
6516
6517 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6518
6519         PR middle-end/70877
6520         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
6521         calls with type casted fndecl.
6522
6523 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6524
6525         PR tree-optimization/70786
6526         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
6527         * calls.c (initialize_argument_information): Bind bounds
6528         with corresponding args passed by reference.
6529
6530 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
6531
6532         PR target/70927
6533         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
6534         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
6535         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
6536         accordingly.
6537
6538 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6539
6540         PR target/70963
6541         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
6542         code for a zero scale factor.
6543         (vsx_xvcvdpuxds_scale): Likewise.
6544
6545 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
6546
6547         * diagnostic-show-locus.c (layout::layout): Call show_ruler
6548         if show_ruler_p was set on the context.
6549         (layout::show_ruler): New method.
6550         * diagnostic.h (struct diagnostic_context): Add field
6551         "show_ruler_p".
6552
6553 2016-05-10  Richard Biener  <rguenther@suse.de>
6554
6555         PR tree-optimization/71039
6556         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
6557         (chk_uses): New function.
6558         (propagate_with_phi): Verify we can safely replicate the lhs of an
6559         aggregate assignment on all incoming edges.
6560
6561 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
6562
6563         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
6564         Forward declare.
6565         (rx_atomic_sequence): New class.
6566         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
6567         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
6568         non-inline.
6569         (rx_atomic_sequence::rx_atomic_sequence,
6570         rx_atomic_sequence::~rx_atomic_sequence): New functions.
6571         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
6572         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
6573         CTRLREG_INTB): New constants.
6574         (FETCHOP): New code iterator.
6575         (fethcop_name, fetchop_name2): New iterator code attributes.
6576         (QIHI): New mode iterator.
6577         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
6578         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
6579         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
6580
6581 2016-05-10  Martin Liska  <mliska@suse.cz>
6582
6583         * tree-inline.c (remap_dependence_clique): Do not remap
6584         debugging statements.
6585
6586 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6587
6588         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
6589         ("*fixuns_truncdfdi2_z13")
6590         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
6591         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
6592         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
6593
6594 2016-05-10  Richard Biener  <rguenther@suse.de>
6595
6596         PR tree-optimization/70497
6597         PR tree-optimization/28367
6598         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
6599         split out from ...
6600         (visit_reference_op_load): ... here.
6601         (vn_reference_lookup_3): Use it to handle subreg-like accesses
6602         with simplified BIT_FIELD_REFs.
6603         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
6604         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
6605         correctly.
6606
6607 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
6608
6609         * dwarf2out.c (add_abstract_origin_attribute): Adjust
6610         documentation comment.  For BLOCK nodes, add a
6611         DW_AT_abstract_origin attribute that points to the DIE generated
6612         for the origin BLOCK.
6613         (gen_lexical_block_die): Call add_abstract_origin_attribute for
6614         blocks from inlined functions.
6615
6616 2016-05-10  Alan Modra  <amodra@gmail.com>
6617
6618         PR target/70947
6619         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
6620         regrename modifying insns saving lr before __morestack call.
6621         * config/rs6000/rs6000.md (split_stack_return): Similarly for
6622         insns restoring lr after __morestack call.
6623
6624 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
6625
6626         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
6627         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
6628         expanders.
6629         * config/i386/sse.md (vec_interleave_high<mode>,
6630         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
6631         <avx512>_vpermt2var<mode>3_maskz): Likewise.
6632
6633 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6634
6635         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
6636         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
6637         parallel reassociation for power8 and forward.
6638
6639 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
6640
6641         * config/i386/i386.md (absneg splitters with general regs): Use
6642         general_reg_operand predicate.
6643         (btsq peephole2): Use x86_64_immediate_operand to check if new
6644         value is suitable for immediate operand.  Generate emitted insn
6645         using RTL expressions.
6646         (btcq peephole2): Ditto.
6647         (btrq peephole2): Ditto.  Generate correct immediate operand
6648         for AND masking.
6649
6650 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
6651
6652         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
6653         bitpos.
6654
6655 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
6656
6657         * tree-affine.c (wide_int_constant_multiple_p): Add missing
6658         pointer dereference.
6659
6660 2016-05-09  Richard Biener  <rguenther@suse.de>
6661
6662         PR tree-optimization/70985
6663         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
6664         op0 isn't a gimple register.
6665
6666 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
6667
6668         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
6669         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
6670         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
6671         (i6400_fpu_mult): New cpu units.
6672         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
6673         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
6674         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
6675         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
6676         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
6677         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
6678         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
6679         (i6400_msa_long_float4, i6400_msa_long_float5)
6680         (i6400_msa_long_float8, i6400_msa_fdiv_df)
6681         (i6400_msa_fdiv_sf): New reservations.
6682         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
6683         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
6684         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
6685         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
6686         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
6687         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
6688         (msa_short_cmp, msa_short_float2, msa_short_logic3)
6689         (msa_short_store4, msa_long_load, msa_short_store)
6690         (msa_long_logic, msa_long_float2, msa_long_float4)
6691         (msa_long_float5, msa_long_float8, msa_long_mult)
6692         (msa_long_fdiv, msa_long_div): New reservations.
6693
6694 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
6695             Sameera Deshpande  <sameera.deshpande@imgtec.com>
6696             Matthew Fortune  <matthew.fortune@imgtec.com>
6697             Graham Stott  <graham.stott@imgtec.com>
6698             Chao-ying Fu  <chao-ying.fu@imgtec.com>
6699
6700         * config.gcc: Add MSA header file for mips*-*-* target.
6701         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
6702         (Ubv8i, Urv8):  New constraints.
6703         * config/mips/mips-ftypes.def: Add function types for MSA
6704         builtins.
6705         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
6706         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
6707         * config/mips/mips-msa.md: New file.
6708         * config/mips/mips-protos.h
6709         (mips_split_128bit_const_insns): New prototype.
6710         (mips_msa_idiv_insns): Likewise.
6711         (mips_split_128bit_move): Likewise.
6712         (mips_split_128bit_move_p): Likewise.
6713         (mips_split_msa_copy_d): Likewise.
6714         (mips_split_msa_insert_d): Likewise.
6715         (mips_split_msa_fill_d): Likewise.
6716         (mips_expand_msa_branch): Likewise.
6717         (mips_const_vector_same_val_p): Likewise.
6718         (mips_const_vector_same_bytes_p): Likewise.
6719         (mips_const_vector_same_int_p): Likewise.
6720         (mips_const_vector_shuffle_set_p): Likewise.
6721         (mips_const_vector_bitimm_set_p): Likewise.
6722         (mips_const_vector_bitimm_clr_p): Likewise.
6723         (mips_msa_vec_parallel_const_half): Likewise.
6724         (mips_msa_output_division): Likewise.
6725         (mips_ldst_scaled_shift): Likewise.
6726         (mips_expand_vec_cond_expr): Likewise.
6727         * config/mips/mips.c (enum mips_builtin_type): Add
6728         MIPS_BUILTIN_MSA_TEST_BRANCH.
6729         (mips_gen_const_int_vector_shuffle): New prototype.
6730         (mips_const_vector_bitimm_set_p): New function.
6731         (mips_const_vector_bitimm_clr_p): Likewise.
6732         (mips_const_vector_same_val_p): Likewise.
6733         (mips_const_vector_same_bytes_p): Likewise.
6734         (mips_const_vector_same_int_p): Likewise.
6735         (mips_const_vector_shuffle_set_p): Likewise.
6736         (mips_symbol_insns): Forbid loading symbols via immediate for
6737         MSA.
6738         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
6739         stores.
6740         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
6741         MSA.
6742         (mips_lx_address_p): Add support load indexed address for MSA.
6743         (mips_address_insns): Add calculation of instructions needed for
6744         stores and loads for MSA.
6745         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
6746         CONST_VECTOR for MSA and let it fall through.
6747         (mips_ldst_scaled_shift): New function.
6748         (mips_subword_at_byte): Likewise.
6749         (mips_msa_idiv_insns): Likewise.
6750         (mips_legitimize_move): Validate MSA moves.
6751         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
6752         calculation of costs for MSA division.
6753         (mips_split_move_p): Check if MSA moves need splitting.
6754         (mips_split_move): Split MSA moves if necessary.
6755         (mips_split_128bit_move_p): New function.
6756         (mips_split_128bit_move): Likewise.
6757         (mips_split_msa_copy_d): Likewise.
6758         (mips_split_msa_insert_d): Likewise.
6759         (mips_split_msa_fill_d): Likewise.
6760         (mips_output_move): Handle MSA moves.
6761         (mips_expand_msa_branch): New function.
6762         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
6763         Reinstate 'y' modifier.
6764         (mips_file_start): Add MSA .gnu_attribute.
6765         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
6766         FPRs.
6767         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
6768         (mips_class_max_nregs): Add register size for MSA supported mode.
6769         (mips_cannot_change_mode_class): Allow conversion between MSA
6770         vector modes and TImode.
6771         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
6772         instruction.
6773         (mips_secondary_reload_class): Force MSA loads/stores via memory.
6774         (mips_preferred_simd_mode): Add preffered modes for MSA.
6775         (mips_vector_mode_supported_p): Add MSA supported modes.
6776         (mips_autovectorize_vector_sizes): New function.
6777         (mips_msa_output_division): Likewise.
6778         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
6779         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
6780         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
6781         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
6782         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
6783         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
6784         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
6785         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
6786         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
6787         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
6788         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
6789         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
6790         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
6791         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
6792         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
6793         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
6794         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
6795         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
6796         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
6797         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
6798         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
6799         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
6800         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
6801         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
6802         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
6803         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
6804         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
6805         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
6806         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
6807         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
6808         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
6809         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
6810         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
6811         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
6812         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
6813         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
6814         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
6815         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
6816         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
6817         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
6818         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
6819         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
6820         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
6821         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
6822         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
6823         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
6824         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
6825         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
6826         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
6827         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
6828         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
6829         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
6830         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
6831         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
6832         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
6833         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
6834         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
6835         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
6836         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
6837         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
6838         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
6839         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
6840         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
6841         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
6842         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
6843         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
6844         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
6845         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
6846         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
6847         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
6848         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
6849         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
6850         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
6851         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
6852         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
6853         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
6854         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
6855         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
6856         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
6857         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
6858         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
6859         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
6860         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
6861         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
6862         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
6863         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
6864         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
6865         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
6866         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
6867         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
6868         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
6869         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
6870         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
6871         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
6872         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
6873         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
6874         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
6875         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
6876         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
6877         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
6878         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
6879         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
6880         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
6881         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
6882         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
6883         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
6884         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
6885         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
6886         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
6887         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
6888         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
6889         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
6890         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
6891         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
6892         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
6893         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
6894         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
6895         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
6896         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
6897         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
6898         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
6899         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
6900         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
6901         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
6902         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
6903         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
6904         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
6905         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
6906         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
6907         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
6908         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
6909         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
6910         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
6911         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
6912         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
6913         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
6914         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
6915         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
6916         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
6917         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
6918         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
6919         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
6920         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
6921         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
6922         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
6923         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
6924         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
6925         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
6926         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
6927         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
6928         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
6929         move_v builtins.
6930         (mips_get_builtin_decl_index): New array.
6931         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
6932         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
6933         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
6934         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
6935         (mips_init_builtins): Initialize mips_get_builtin_decl_index
6936         array.
6937         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
6938         hook.
6939         (mips_expand_builtin_insn): Prepare operands for
6940         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
6941         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
6942         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
6943         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
6944         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
6945         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
6946         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
6947         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
6948         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
6949         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
6950         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
6951         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
6952         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
6953         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
6954         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
6955         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
6956         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
6957         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
6958         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
6959         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
6960         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
6961         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
6962         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
6963         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
6964         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
6965         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
6966         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
6967         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
6968         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
6969         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
6970         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
6971         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
6972         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
6973         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
6974         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
6975         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
6976         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
6977         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
6978         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
6979         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
6980         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
6981         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
6982         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
6983         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
6984         These are set implicitly and an error is reported if overridden.
6985         (mips_expand_builtin_msa_test_branch): New function.
6986         (mips_expand_msa_shuffle): Likewise.
6987         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
6988         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
6989         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
6990         (mips_expand_vec_unpack): Add support for MSA.
6991         (mips_expand_vector_init): Likewise.
6992         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
6993         instead of const0_rtx.
6994         (mips_msa_vec_parallel_const_half): New function.
6995         (mips_gen_const_int_vector): Likewise.
6996         (mips_gen_const_int_vector_shuffle): Likewise.
6997         (mips_expand_msa_cmp): Likewise.
6998         (mips_expand_vec_cond_expr): Likewise.
6999         * config/mips/mips.h
7000         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
7001         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
7002         specified.
7003         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
7004         (ISA_HAS_MSA): New macro.
7005         (UNITS_PER_MSA_REG): Likewise.
7006         (BITS_PER_MSA_REG): Likewise.
7007         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
7008         (MSA_REG_FIRST): New macro.
7009         (MSA_REG_LAST): Likewise.
7010         (MSA_REG_NUM): Likewise.
7011         (MSA_REG_P): Likewise.
7012         (MSA_REG_RTX_P): Likewise.
7013         (MSA_SUPPORTED_MODE_P): Likewise.
7014         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
7015         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
7016         * config/mips/mips.md: Include mips-msa.md.
7017         (alu_type): Add simd_add.
7018         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
7019         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
7020         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
7021         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
7022         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
7023         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
7024         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
7025         simd_move, simd_load, simd_store.  Choose "multi" for moves
7026         for "qword_mode".
7027         (qword_mode): New attribute.
7028         (insn_count): Add instruction count for quad moves.
7029         Increase the count for MIPS SIMD division.
7030         (UNITMODE): Add UNITMODEs for vector types.
7031         (addsub): New code iterator.
7032         * config/mips/mips.opt (mmsa): New option.
7033         * config/mips/msa.h: New file.
7034         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
7035         specified.
7036         * config/mips/mti-linux.h: Likewise.
7037         * config/mips/predicates.md
7038         (const_msa_branch_operand): New constraint.
7039         (const_uimm3_operand): Likewise.
7040         (const_uimm4_operand): Likewise.
7041         (const_uimm5_operand): Likewise.
7042         (const_uimm8_operand): Likewise.
7043         (const_imm5_operand): Likewise.
7044         (aq10b_operand): Likewise.
7045         (aq10h_operand): Likewise.
7046         (aq10w_operand): Likewise.
7047         (aq10d_operand): Likewise.
7048         (const_m1_operand): Likewise.
7049         (reg_or_m1_operand): Likewise.
7050         (const_exp_2_operand): Likewise.
7051         (const_exp_4_operand): Likewise.
7052         (const_exp_8_operand): Likewise.
7053         (const_exp_16_operand): Likewise.
7054         (const_vector_same_val_operand): Likewise.
7055         (const_vector_same_simm5_operand): Likewise.
7056         (const_vector_same_uimm5_operand): Likewise.
7057         (const_vector_same_uimm6_operand): Likewise.
7058         (const_vector_same_uimm8_operand): Likewise.
7059         (par_const_vector_shf_set_operand): Likewise.
7060         (reg_or_vector_same_val_operand): Likewise.
7061         (reg_or_vector_same_simm5_operand): Likewise.
7062         (reg_or_vector_same_uimm6_operand): Likewise.
7063         * doc/extend.texi (MIPS SIMD Architecture Functions): New
7064         section.
7065         * doc/invoke.texi (-mmsa): Document new option.
7066
7067 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7068
7069         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
7070         * configure: Regenerate.
7071         * config.in: Regenerate.
7072         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
7073         on -fvtable-verify.
7074         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
7075         (ENDFILE_VTV_SPEC): Define.
7076
7077 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
7078
7079         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
7080         registers in all interrupt handlers if necessary.
7081         (rl78_option_override): Add warning.
7082         (MUST_SAVE_MDUC_REGISTERS): New macro.
7083         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
7084         * config/rl78/rl78.c (check_mduc_usage): New function.
7085         (mduc_regs): New structure to hold MDUC register data.
7086         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
7087         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
7088         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
7089         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
7090         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
7091         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
7092
7093 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
7094
7095         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
7096         (tree-ssa-loop-niter.h): Ditto.
7097         (idx_within_array_bound, ref_within_array_bound): New functions.
7098         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
7099         Factor out check on writable base object to ...
7100         (base_object_writable): ... here.
7101
7102 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7103
7104         * config/arm/arm.md (probe_stack): Add modes to set source
7105         and destination.
7106
7107 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
7108
7109         * regrename.c (base_reg_class_for_rename): New static function.
7110         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
7111
7112 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
7113
7114         * cgraph.c (thunk_adjust): Export.
7115         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
7116         * cgraphunit.c (thunk_adjust): Export.
7117         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
7118         thunks.
7119         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
7120         inlinable.
7121         * tree-inline.c (expand_call_inline): Expand thunks inline.
7122
7123 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
7124
7125         PR target/70998
7126         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
7127         (*sse2_vd_cvtss2sd): Ditto.
7128         * config/i386/i386.md
7129         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
7130         Generate *sse2_vd_cvtsd2ss pattern.
7131         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
7132         Generate *sse2_vd_cvtss2sd pattern.
7133
7134 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
7135
7136         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
7137         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
7138         users.
7139
7140 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
7141
7142         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
7143         * config/sh/sh.c: Define and declare variables on first use throughout
7144         the file.
7145         (current_function_interrupt): Change to bool type.
7146         (frame_insn): Rename to emit_frame_insn and update users.
7147         (push_regs): Use bool for 'interrupt_handler' argument.
7148         (save_schedule_s): Remove.
7149         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
7150         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
7151         targetm.asm_out.unaligned_op.di.
7152         (gen_far_branch): Remove redundant forward declaration.
7153         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
7154         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
7155         (sh_set_return_address, sh_function_ok_for_sibcall,
7156         scavenge_reg): Update comments.
7157         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
7158         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
7159         (sh_attr_renesas_p): Remove unnecessary parentheses.
7160         (branch_dest): Simplify.
7161         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
7162         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
7163         (CUMULATIVE_ARGS): Change macro to typedef.
7164         (current_function_interrupt): Change to bool type.
7165         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
7166         Surround with __cplusplus ifdef.
7167         (sh_compare_op0, sh_compare_op1): Remove.
7168         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
7169
7170 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
7171
7172         * config/arm/arm.md: (arch): Add neon.
7173         (arch_enabled): Return yes for arch neon when TARGET_NEON.
7174         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
7175         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
7176         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
7177         attributes for alt renumbering.  Mark alt 3 as non-predicable.
7178         (thumb2_movdf_vfp): Likewise.
7179
7180 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
7181
7182         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
7183         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
7184         (*andqi_1): Add preferred_for_speed attribute to disparage
7185         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
7186         (*<code>qi_1): Ditto.
7187         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
7188         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
7189         (*ashlqi3_1): Ditto.
7190         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
7191         Add preferred_for_size attribute to disparage alternative 0 and
7192         preferred_for_speed attribute to disparage alternative 1 for
7193         TARGET_PARTIAL_REG_STALL targets.
7194
7195 2016-05-07  Tom de Vries  <tom@codesourcery.com>
7196
7197         PR tree-optimization/70956
7198         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
7199         def.
7200
7201 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
7202
7203         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
7204         * config/sh/sh.c (sh_cbranch_distance): Implement it.
7205         * config/sh/sh.md (branch_zero): Remove define_attr.
7206         (define_delay): Disable delay slot if branch distance is one insn.
7207
7208 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7209
7210         * config/i386/i386.md (LEAMODE): New mode attribute.
7211         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
7212         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
7213         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
7214         operand 2 predicate.
7215         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
7216         (*lea<mode>_general_3): Ditto.
7217         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
7218
7219 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
7220
7221         * genmddump.c (main): Convert argv from char ** to const char **.
7222
7223 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7224
7225         * coretypes.h (OVERRIDE): New macro.
7226         (FINAL): New macro.
7227
7228 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
7229
7230         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
7231         allow coalescing if the types are compatible.
7232
7233 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7234
7235         * pass_manager.h (pass_manager::register_pass_name): New method.
7236         (pass_manager::get_pass_by_name): New method.
7237         (pass_manager::create_pass_tab): New method.
7238         (pass_manager::m_name_to_pass_map): New field.
7239         * passes.c (name_to_pass_map): Delete global in favor of field
7240         "m_name_to_pass_map" of pass_manager.
7241         (register_pass_name): Rename from a function to...
7242         (pass_manager::register_pass_name): ...this method, updating
7243         for renaming of global "name_to_pass_map" to field
7244         "m_name_to_pass_map".
7245         (create_pass_tab): Rename from a function to...
7246         (pass_manager::create_pass_tab): ...this method, updating
7247         for renaming of global "name_to_pass_map" to field.
7248         (get_pass_by_name): Rename from a function to...
7249         (pass_manager::get_pass_by_name): ...this method.
7250         (enable_disable_pass): Convert use of get_pass_by_name to
7251         a method call, locating the pass_manager singleton.
7252
7253 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7254
7255         * genattr-common.c (main): Convert argv from char ** to const char **.
7256         * genattr.c (main): Likewise.
7257         * genattrtab.c (main): Likewise.
7258         * genautomata.c (initiate_automaton_gen): Likewise.
7259         (main): Likewise.
7260         * gencodes.c (main): Likewise.
7261         * genconditions.c (main): Likewise.
7262         * genconfig.c (main): Likewise.
7263         * genconstants.c (main): Likewise.
7264         * genemit.c (main): Likewise.
7265         * genenums.c (main): Likewise.
7266         * genextract.c (main): Likewise.
7267         * genflags.c (main): Likewise.
7268         * genmddeps.c (main): Likewise.
7269         * genopinit.c (main): Likewise.
7270         * genoutput.c (main): Likewise.
7271         * genpeep.c (main): Likewise.
7272         * genpreds.c (main): Likewise.
7273         * genrecog.c (main): Likewise.
7274         * gensupport.c (init_rtx_reader_args_cb): Likewise.
7275         (init_rtx_reader_args): Likewise.
7276         * gensupport.h (init_rtx_reader_args_cb): Likewise.
7277         (init_rtx_reader_args): Likewise.
7278         * gentarget-def.c (main): Likewise.
7279         * read-md.c (read_md_files): Likewise.
7280         * read-md.h (read_md_files): Likewise.
7281
7282 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7283
7284         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
7285         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
7286         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
7287         Remove unused predicate.
7288         (register_and_not_fp_reg_operand): Ditto.
7289
7290 2016-05-06  Martin Liska  <mliska@suse.cz>
7291
7292         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
7293         instead of vec as the vector is local to the function.
7294
7295 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
7296
7297         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
7298         avx512bw alternative.
7299
7300         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
7301         before the ashr<mode>3 pattern.
7302
7303         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
7304         v instead of x in vex or maybe_vex alternatives, use
7305         maybe_evex instead of vex in prefix.
7306
7307         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
7308         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
7309         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
7310         in vex or maybe_vex alternatives, use maybe_evex instead of vex
7311         in prefix.
7312
7313         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
7314         v instead of x in vex or maybe_vex alternatives, use
7315         maybe_evex instead of vex in prefix.
7316
7317         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
7318         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
7319         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
7320         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
7321         alternatives, use maybe_evex instead of vex in prefix.
7322
7323         * config/i386/sse.md (vec_interleave_lowv4sf,
7324         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
7325         v instead of x in vex or maybe_vex alternatives, use
7326         maybe_evex instead of vex in prefix.
7327
7328         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
7329         v instead of x in vex or maybe_vex alternatives, use
7330         maybe_evex instead of vex in prefix.
7331
7332         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
7333         v constraint instead of x.
7334
7335 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
7336
7337         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
7338         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
7339         equality first.
7340
7341 2016-05-06  Richard Biener  <rguenther@suse.de>
7342
7343         PR tree-optimization/70948
7344         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7345         Properly clobber all fields of va_list for __builtin_va_start.
7346
7347 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
7348
7349         PR debug/70935
7350         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
7351         loop latch destination.
7352
7353 2016-05-06  Martin Liska  <mliska@suse.cz>
7354
7355         * tree-ssa-uninit.c: Apply manual changes
7356         to the GNU coding style.
7357         (prune_uninit_phi_opnds): Rename from
7358         prune_uninit_phi_opnds_in_unrealizable_paths.
7359
7360 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7361
7362         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
7363         mspace): Remove deprecated options.
7364         * doc/invoke.texi (SH options): Remove -mspace.
7365
7366 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7367
7368         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
7369
7370 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7371
7372         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
7373         corresponding combine split pattern.
7374
7375 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7376
7377         PR target/58219
7378         * config/sh/predicates.md (long_displacement_mem_operand): New.
7379         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
7380         Add movi20, movi20s alternatives.  Adjust length attribute for
7381         alternatives.
7382         (movsi_ie): Allow for any FPU.  Adjust length attribute for
7383         alternatives.
7384         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
7385         attribute for alternatives.
7386         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
7387         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
7388         length attribute for alternatives.
7389
7390 2016-05-06  Richard Biener  <rguenther@suse.de>
7391
7392         PR tree-optimization/70960
7393         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
7394
7395 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7396
7397         PR target/52933
7398         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
7399         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
7400
7401 2016-05-06  Marek Polacek  <polacek@redhat.com>
7402
7403         PR sanitizer/70875
7404         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
7405
7406 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7407
7408         PR target/54089
7409         * config/sh/sh.md (*rotcr): Add another variant.
7410
7411 2016-05-06  Richard Biener  <rguenther@suse.de>
7412
7413         PR middle-end/70931
7414         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
7415
7416 2016-05-06  Richard Biener  <rguenther@suse.de>
7417
7418         PR middle-end/70941
7419         * fold-const.c (split_tree): Always convert to the original type
7420         before negating.
7421
7422 2016-05-06  Richard Biener  <rguenther@suse.de>
7423
7424         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
7425         (fwprop_addr): Likewise.
7426
7427 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7428
7429         PR target/70873
7430         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
7431         New prototype.
7432         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
7433         * config/i386/i386.md (push mem splitter): Use find_constant_src in
7434         the splitter condition.
7435         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
7436         the splitter condition.
7437         (FP float_extend load splitter): Ditto.
7438
7439 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
7440
7441         * config/i386/i386.md (peehole2 patterns): Change true_regnum
7442         to REGNO in all peephole2 patterns.
7443         (post-reload splitters): Change true_regnum to REGNO in
7444         post-reload splitters.
7445         (zero_extend splitters): Use general_reg_operand and
7446         nonimmediate_gr_operand predicates.
7447
7448 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
7449
7450         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
7451         v constraint instead of x.
7452
7453 2016-05-05  Alan Modra  <amodra@gmail.com>
7454
7455         PR target/68662
7456         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
7457         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
7458         TARGET_NO_FP_IN_TOC for -mrelocatable.
7459         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
7460         TARGET_RELOCATABLE test.
7461         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7462         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7463         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7464         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7465         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7466         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7467         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7468         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7469         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
7470         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
7471         Likewise.
7472         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
7473         (rs6000_stack_info): Likewise.
7474         (rs6000_elf_asm_out_constructor): Likewise.
7475         (rs6000_elf_asm_out_destructor): Likewise.
7476         (rs6000_elf_declare_function_name): Likewise.
7477         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
7478         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
7479         Don't define.
7480
7481 2016-05-05  Alan Modra  <amodra@gmail.com>
7482
7483         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
7484
7485 2016-05-05  Alan Modra  <amodra@gmail.com>
7486
7487         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
7488         out-of-line gpr restore for one or two regs if that would add
7489         a save of lr.
7490
7491 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
7492
7493         PR target/70873
7494         * config/i386/i386.md
7495         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
7496         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
7497         as operand 0 predicate.
7498         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
7499         Ditto.
7500         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
7501         Ditto.  Emit the pattern using RTX.
7502
7503         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
7504         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
7505         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
7506         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
7507         Ditto.
7508         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
7509         sse_reg_operand as operand 0 predicate.
7510
7511         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
7512         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
7513         instead of gen_rtx_REG.
7514         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
7515         Ditto.
7516
7517 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7518
7519         * function.c (emit_use_return_register_into_block): Delete.
7520         (gen_return_pattern): Delete.
7521         (emit_return_into_block): Delete.
7522         (active_insn_between): Delete.
7523         (convert_jumps_to_returns): Delete.
7524         (emit_return_for_exit): Delete.
7525         (thread_prologue_and_epilogue_insns): Delete all code dealing with
7526         simple_return for shrink-wrapped blocks.
7527         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
7528         end of blocks that need one.
7529         (get_unconverted_simple_return): Delete.
7530         (convert_to_simple_return): Delete.
7531         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
7532         (convert_to_simple_return): Ditto.
7533
7534 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7535
7536         * cfgcleanup.c (bb_is_just_return): New function.
7537         (try_optimize_cfg): Simplify jumps to return, branches to return,
7538         and branches around return.
7539
7540 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7541
7542         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
7543         branch to a return.
7544
7545 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
7546
7547         PR c++/70906
7548         PR c++/70933
7549         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
7550         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
7551         assert flags & OEP_HASH_CHECK, instead of asserting it
7552         never happens.  Handle TARGET_EXPR.
7553         * fold-const.c (operand_equal_p): For hash verification,
7554         or in OEP_HASH_CHECK into flags.
7555
7556 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7557
7558         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
7559         comment.
7560         (compute_samebase_partition_bases): Fix typo.
7561
7562 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
7563
7564         * config/i386/sse.md (vec_interleave_highv8sf,
7565         vec_interleave_lowv8sf, vec_interleave_highv4df,
7566         vec_interleave_lowv4df): Remove constraints from expanders.
7567
7568         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
7569
7570 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
7571
7572         * tree-inline.c (expand_call_inline): Fix path dealing with
7573         making lhs of call statement undefined.
7574
7575 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
7576
7577         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
7578         Check availability on NODE, too.
7579         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
7580         (cgraph_node::call_for_symbol_and_aliases): Likewise.
7581         (varpool_node::call_for_symbol_and_aliase): Likewise.
7582         * ipa-pure-const.c (add_new_function): Analyze all bodies.
7583         (propagate_pure_const): Propagate across interposable functions, too.
7584         (skip_function_for_local_pure_const): Do not skip interposable bodies
7585         with aliases.
7586         (pass_local_pure_const::execute): Update.
7587
7588 2016-05-04  Marek Polacek  <polacek@redhat.com>
7589
7590         * doc/invoke.texi: Document -Wdangling-else.
7591
7592 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7593
7594         * config.gcc: Error out when conflicting multilib is detected.  Do not
7595         loop over multilibs since no combination is legal.
7596
7597 2016-05-04  Alan Modra  <amodra@gmail.com>
7598
7599         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
7600         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
7601         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
7602         Align .toc.
7603
7604 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
7605
7606         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
7607         Clean up p5600 comments.
7608
7609 2016-05-04  Richard Biener  <rguenther@suse.de>
7610
7611         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
7612         constructor simplifications.
7613         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
7614
7615 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
7616
7617         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
7618         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
7619         result.set_rtx is null instead of aborting.
7620         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
7621         Always enable.
7622         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
7623         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
7624         *mov<mode>_store_postinc): New patterns.
7625
7626 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
7627
7628         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
7629         as commutative.  Check both conversions are NOP.
7630         ((A & B) OP (C & B)): Remove.
7631
7632 2016-05-04  Alan Modra  <amodra@gmail.com>
7633
7634         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
7635
7636 2016-05-04  Alan Modra  <amodra@gmail.com>
7637
7638         PR target/70866
7639         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
7640         when cr2,3,4 are all fixed regs.
7641
7642 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
7643
7644         PR rtl-optimization/57193
7645         * opts.c (default_options_table): Revert OPT_frename_registers change.
7646         * doc/invoke.texi (-frename-registers, -O2): Likewise.
7647
7648 2016-05-03  Martin Sebor  <msebor@redhat.com>
7649
7650         PR c++/66561
7651         * builtins.c (fold_builtin_FILE): New function.
7652         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
7653         (fold_builtin_0): Call them.
7654         * gimplify.c (gimplify_call_expr): Remove the handling of
7655         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
7656
7657         PR c++/66561
7658         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
7659         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
7660         constants.
7661
7662         PR c++/66639
7663         * doc/extend.texi (Function Names as Strings): Update __func__,
7664         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
7665         constants.
7666
7667 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7668             Richard Biener  <rguenther@suse.de>
7669
7670         PR tree-optimization/70916
7671         * tree-if-conv.c: Include cfganal.h.
7672         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
7673         and remove_fake_exit_edges around the optimization pass.
7674
7675 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
7676
7677         * cgraph.c (symbol_table::create_edge): Set inline_failed.
7678         (cgraph_edge::make_direct): Likewise.
7679         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
7680         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
7681         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
7682         (CIF_THUNK): New code.
7683         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
7684         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
7685         (compute_inline_parameters): Set inline_failed for thunks.
7686         (inline_analyze_function): Cleanup.
7687         * ipa-inline.c (can_inline_edge_p): Do not deal with
7688         call_stmt_cannot_inline_p.
7689         (can_early_inline_edge_p): Likewise.
7690         (early_inliner): Initialize inline_failed.
7691         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
7692
7693 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
7694
7695         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
7696         from nonimm_ssenomem_operand.
7697         (nonimm_ssenomem_operand): New predicate.
7698         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
7699         as operand 0 predicate.
7700         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
7701         Disable unsupported alternatives using "enabled" attribute.
7702         Use register_ssemem_operand as operand 0 predicate.
7703         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
7704
7705 2016-05-03  Marek Polacek  <polacek@redhat.com>
7706
7707         PR c/70859
7708         * input.c (expansion_point_location): New function.
7709         * input.h (expansion_point_location): Declare.
7710
7711 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
7712
7713         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
7714         occurence with frame_offset_ ones.
7715
7716 2016-05-03  Alan Modra  <amodra@gmail.com>
7717
7718         PR rtl-optimization/70890
7719         * ira.c (combine_and_move_insns): When moving def_insn, remove
7720         equivs on use_insn.
7721
7722 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7723
7724         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
7725         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
7726         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
7727         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
7728
7729 2016-05-03  Alan Modra  <amodra@gmail.com>
7730
7731         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
7732         for SAVE_MULTIPLE/STORE_MULTIPLE.
7733
7734 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7735
7736         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
7737         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
7738
7739 2016-05-03  Richard Biener  <rguenther@suse.de>
7740
7741         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
7742         default true.
7743         (gimplify_arg): Likewise.
7744         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
7745         re-writing the result to a decl if required.
7746         (internal_get_tmp_var): Add allow_ssa parameter
7747         and override into_ssa with it.
7748         (get_formal_tmp_var): Adjust.
7749         (get_initialized_tmp_var): Add allow_ssa parameter.
7750         (gimplify_arg): Add allow_ssa parameter and avoid generating
7751         SSA names for the result false.
7752         (gimplify_call_expr): If the call may return twice do not
7753         gimplify parameters into SSA.
7754         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
7755         (gimplify_modify_expr): Adjust assert.  For noreturn calls
7756         with a SSA name LHS adjust its def.
7757         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
7758         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
7759         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
7760         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
7761         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
7762         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
7763         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
7764         (optimize_target_teams): Do not allow SSA names for clause operands.
7765         (gimplify_expr): Likewise for where we mark the result addressable.
7766         * passes.def (pass_init_datastructures): Remove.
7767         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
7768         (rewrite_stmt): Likewise.
7769         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
7770         (replace_locals_op): Replace SSA names.
7771         (copy_gimple_seq_and_replace_locals): Init src_cfun.
7772         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
7773         * cgraph.c (release_function_body): Free CFG annotations only
7774         when we have a CFG.  Simplify.
7775         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
7776         force_gimple_operand instead of get_initialized_tmp_var.
7777         * tree-pass.h (make_pass_init_datastructures): Remove.
7778         * tree-ssa.c (execute_init_datastructures): Remove.
7779         (pass_data_init_datastructures): Likewise.
7780         (class pass_init_datastructures): Likewise.
7781         (make_pass_init_datastructures): Likewise.
7782         * omp-low.c (create_omp_child_function): Init SSA data structures.
7783         (grid_expand_target_grid_body): Likewise.
7784         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
7785         name before adding it to names_to_release.
7786         (remove_bb): Always release SSA defs.
7787         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
7788         before dereferencing it.
7789         * cgraphunit.c (init_lowered_empty_function): Always
7790         int SSA data structures.
7791         * tree-ssanames.c (release_defs): Remove assert that we are in
7792         SSA form.
7793         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
7794
7795 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7796             Uros Bizjak  <ubizjak@gmail.com>
7797
7798         PR rtl-optimization/70467
7799         * config/i386/predicates.md (x86_64_hilo_int_operand,
7800         x86_64_hilo_general_operand): New predicates.
7801         * config/i386/constraints.md (Wd): New constraint.
7802         * config/i386/i386.md (mode attr di): Use Wd instead of e.
7803         (general_hilo_operand): New mode attr.
7804         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
7805         instead of <general_operand>.
7806         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
7807         x86_64_hilo_general_operand instead of <general_operand>.
7808
7809 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7810
7811         PR tree-optimization/70916
7812         * tree-if-conv.c (constant_or_ssa_name): Removed.
7813         (fold_build_cond_expr): Use is_gimple_val instead of
7814         constant_or_ssa_name.
7815
7816         PR tree-optimization/70916
7817         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
7818         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
7819
7820         PR target/49244
7821         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
7822         (optimize_atomic_bit_test_and): New function.
7823         (pass_fold_builtins::execute): Use it.
7824         * optabs.def (atomic_bit_test_and_set_optab,
7825         atomic_bit_test_and_complement_optab,
7826         atomic_bit_test_and_reset_optab): New optabs.
7827         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
7828         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
7829         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
7830         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
7831         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
7832         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
7833         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
7834         * doc/md.texi (atomic_bit_test_and_set@var{mode},
7835         atomic_bit_test_and_complement@var{mode},
7836         atomic_bit_test_and_reset@var{mode}): Document.
7837         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
7838         atomic_bit_test_and_complement<mode>,
7839         atomic_bit_test_and_reset<mode>): New expanders.
7840         (atomic_bit_test_and_set<mode>_1,
7841         atomic_bit_test_and_complement<mode>_1,
7842         atomic_bit_test_and_reset<mode>_1): New insns.
7843
7844 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
7845
7846         PR rtl-optimization/70687
7847         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
7848         instead of unsigned HOST_WIDE_INT.
7849
7850 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
7851
7852         PR rtl-optimization/44281
7853         * hard-reg-set.h (struct target_hard_regs): New field
7854         x_fixed_nonglobal_reg_set.
7855         (fixed_nonglobal_reg_set): New macro.
7856         * reginfo.c (init_reg_sets_1): Initialize it.
7857         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
7858         of fixed_reg_set.
7859         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
7860
7861 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
7862
7863         PR tree-optimization/56541
7864         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
7865         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
7866         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
7867         (any_complicated_phi): new static variable.
7868         (aggressive_if_conv): delete.
7869         (if_convertible_phi_p): support phis with more than two arguments.
7870         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
7871         critical pred edges.
7872         (ifcvt_split_critical_edges): support phis with more than two
7873         arguments by checking new parameter.  only split critical edges
7874         if needed.
7875         (tree_if_conversion): handle simd pragma marked loop using new
7876         local variable aggressive_if_conv.  check any_complicated_phi.
7877
7878 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
7879
7880         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
7881         before using it.
7882
7883 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
7884
7885         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
7886         cbase.
7887
7888 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
7889
7890         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
7891         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
7892         define_insn_and_split.
7893         (mulsi3_i): New define_insn_and_split.
7894         (mulsi3_call): Convert to define_insn.
7895         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
7896         Remove constraints.
7897
7898 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7899
7900         * machmode.h (mode_complex): Add support to give the complex mode
7901         for a given mode.
7902         (GET_MODE_COMPLEX_MODE): Likewise.
7903         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
7904         stored by build_complex_type and gfc_build_complex_type instead of
7905         trying to figure out the appropriate mode based on the size. Raise
7906         an assertion error, if the type was not set.
7907         * genmodes.c (struct mode_data): Add field for the complex type of
7908         the given type.
7909         (blank_mode): Likewise.
7910         (make_complex_modes): Remember the complex mode created in the
7911         base type.
7912         (emit_mode_complex): Write out the mode_complex array to map a
7913         type mode to the complex version.
7914         (emit_insn_modes_c): Likewise.
7915         * tree.c (build_complex_type): Set the complex type to use before
7916         calling layout_type.
7917         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
7918         support for __float128 complex datatypes.
7919         (rs6000_hard_regno_mode_ok): Likewise.
7920         (rs6000_setup_reg_addr_masks): Likewise.
7921         (rs6000_complex_function_value): Likewise.
7922         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
7923         __float128 and __ibm128 complex.
7924         (FLOAT128_IBM_P): Likewise.
7925         (ALTIVEC_ARG_MAX_RETURN): Likewise.
7926         * doc/extend.texi (Additional Floating Types): Document that
7927         -mfloat128 must be used to enable __float128.  Document complex
7928         __float128 and __ibm128 support.
7929
7930 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
7931
7932         PR target/49244
7933         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
7934         char/short arguments promoted to int because of promote_prototypes.
7935
7936 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
7937
7938         * config/i386/predicates.md (register_ssemem_operand): New predicate.
7939         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
7940         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
7941         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
7942         alternatives using "enabled" attribute.  Use register_ssemem_operand
7943         as operand 1 predicate.
7944         (*cmpi<unord>xf_i387): Split XFmode pattern from
7945         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
7946         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
7947         *absneg<mode>2_i387.  Disable unsupported alternatives using
7948         "enabled" attribute.
7949         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
7950
7951 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
7952
7953         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
7954         marker.
7955         (oacc_loop_process): Check mask for loop termination.
7956
7957 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
7958
7959         * cif-code.def (CIF_THUNK): Add.
7960         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
7961         accidental change.
7962
7963 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
7964
7965         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
7966         (dump_inline_summary): Dump it.
7967         (fp_expression_p): New predicate.
7968         (estimate_function_body_sizes): Use it.
7969         (inline_merge_summary): Merge fp_expressions.
7970         (inline_read_section): Read fp_expressions.
7971         (inline_write_summary): Write fp_expressions.
7972         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
7973         codegen boundary if either caller or callee is !fp_expressions.
7974         * ipa-inline.h (inline_summary): Add fp_expressions.
7975         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
7976         to fp_expressions be sure the fp generation flags are updated.
7977
7978 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
7979
7980         PR rtl-optimization/70467
7981         * cse.c (cse_insn): Handle no-op MEM moves after folding.
7982
7983         PR rtl-optimization/70467
7984         * ipa-pure-const.c (check_call): Handle internal calls even in
7985         ipa mode like in local mode.
7986
7987 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7988
7989         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
7990
7991 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
7992
7993         * match.pd (X u< X, X u> X): New transformations.
7994
7995 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
7996
7997         * flag-types.h (enum warn_strict_overflow_code): Move ...
7998         * coretypes.h: ... here.
7999         * fold-const.h (fold_overflow_warning): Declare.
8000         * fold-const.c (fold_overflow_warning): Make non-static.
8001         (fold_comparison): Move the transformation of X +- C1 CMP C2
8002         into X CMP C2 -+ C1 ...
8003         * match.pd: ... here.
8004         * gimple-fold.c (fold_stmt_1): Protect with
8005         fold_defer_overflow_warnings.
8006
8007 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
8008
8009         * omp-low.c (struct oacc_loop): Add 'inner' field.
8010         (new_oacc_loop_raw): Initialize it to zero.
8011         (oacc_loop_fixed_partitions): Initialize it.
8012         (oacc_loop_auto_partitions): Partition outermost loop to outermost
8013         available partitioning.
8014
8015 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8016
8017         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
8018         register_operand.
8019         (umulsidi3): Likewise.
8020         (indirect_jump): Fix jump instruction assembly patterns.
8021
8022 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
8023
8024         PR target/70860
8025         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
8026         (nvptx_function_value): Assert non-NULL cfun.
8027
8028 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
8029
8030         PR rtl-optimization/70886
8031         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
8032
8033         * cselib.h (rtx_equal_for_cselib_1): Declare.
8034         (rtx_equal_for_cselib_p: New inline function.
8035         * cselib.c (rtx_equal_for_cselib_p): Delete.
8036         (rtx_equal_for_cselib_1): Make public.
8037
8038 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
8039
8040         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
8041         (register_mixssei387nonimm_operand): Remove predicate.
8042         * config/i386/i386.md (*fop_<mode>_comm): Merge from
8043         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
8044         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
8045         for TARGET_MIX_SSE_I387 alternatives.
8046         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
8047         Disable unsupported alternatives using "enabled" attribute.  Use
8048         nonimm_ssenomem_operand as operand 1 predicate.  Also check
8049         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
8050
8051 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8052
8053         * tree.c (cst_and_fits_in_hwi): Simplify.
8054
8055 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8056
8057         * tree.h (wi::to_wide): New function.
8058         * expr.c (expand_expr_real_1): Use wi::to_wide.
8059         * fold-const.c (int_const_binop_1): Likewise.
8060         (extract_muldiv_1): Likewise.
8061
8062 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8063
8064         * wide-int.h: Update offset_int and widest_int documentation.
8065         (WI_SIGNED_SHIFT_RESULT): New macro.
8066         (wi::binary_shift): Define signed_shift_result_type for
8067         shifts on offset_int- and widest_int-like types.
8068         (generic_wide_int): Support <<= and >>= if << and >> are supported.
8069         * tree.h (int_bit_position): Use shift operators instead of wi::
8070          shifts.
8071         * alias.c (adjust_offset_for_component_ref): Likewise.
8072         * expr.c (get_inner_reference): Likewise.
8073         * fold-const.c (fold_comparison): Likewise.
8074         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
8075         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
8076         * tree-dfa.c (get_ref_base_and_extent): Likewise.
8077         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
8078         (stmt_kills_ref_p): Likewise.
8079         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
8080         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
8081         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8082         (ao_ref_init_from_vn_reference): Likewise.
8083
8084 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8085
8086         * wide-int.h: Update offset_int and widest_int documentation.
8087         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
8088         (wi::binary_traits): Allow ordered comparisons between offset_int and
8089         offset_int, between widest_int and widest_int, and between either
8090         of these types and basic C types.
8091         (operator <, <=, >, >=): Define for the same combinations.
8092         * tree.h (tree_int_cst_lt): Use comparison operators instead
8093         of wi:: comparisons.
8094         (tree_int_cst_le): Likewise.
8095         * gimple-fold.c (fold_array_ctor_reference): Likewise.
8096         (fold_nonarray_ctor_reference): Likewise.
8097         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
8098         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
8099         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
8100         * tree-sra.c (completely_scalarize): Likewise.
8101         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
8102         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
8103         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
8104         (check_for_binary_op_overflow): Likewise.
8105         (search_for_addr_array): Likewise.
8106         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
8107
8108 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8109
8110         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
8111         (arc_save_restore): Likewise.
8112         (arc_dwarf_register_span): Likewise.
8113         (arc_output_pic_addr_const): Initialize suffix variable.
8114
8115 2016-05-02  Martin Liska  <mliska@suse.cz>
8116
8117         * symbol-summary.h (function_summary::function_summary):
8118         Remove checking assert for all cgraph nodes.
8119         (function_summary::get): Check summary_uid.
8120         (symtab_insertion): Check summary_uid.
8121
8122 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8123
8124         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
8125         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
8126         bmaskn instruction.
8127         (arc_dwarf_register_span): Remove enum keyword.
8128         (compact_memory_operand_p): New function.
8129         * config/arc/arc.h (reg_class): Add code density register classes.
8130         (REG_CLASS_NAMES): Likewise.
8131         (REG_CLASS_CONTENTS): Likewise.
8132         * config/arc/arc.md (*movqi_insn): Add code density instructions.
8133         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
8134         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
8135         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
8136         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
8137         constraints.
8138         (h, Rcd, Rsd, Rzd): New register constraints.
8139         (T): Use compact_memory_operand_p function.
8140         * config/arc/predicates.md (compact_load_memory_operand): Remove.
8141
8142 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
8143
8144         * config/sh/sh.md (*negnegt, *movtt): Remove.
8145
8146 2016-05-02  Marek Polacek  <polacek@redhat.com>
8147             Tom de Vries  <tom@codesourcery.com>
8148
8149         PR tree-optimization/70700
8150         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
8151         bigger than FIRST_REF_NODE.
8152
8153 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
8154
8155         PR target/52898
8156         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
8157         TARGET_CMPEQDI_T.
8158         (prepare_cbranch_operands): Don't use scratch register.  Assume that
8159         function is used when pseudos can be created.
8160         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
8161         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
8162         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
8163         define_expand.  Allow it only when pseudos can be created.
8164         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
8165
8166 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
8167
8168         * config/i386/constraints.md (BC): Only allow -1 operands.
8169         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
8170         Add "enabled" attribute.  Update XI mode attribute calculation.
8171         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
8172         (*movoi_internal_avx): Update XI mode attribute calculation.
8173         (*movti_internal): Ditto.
8174
8175 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8176
8177         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
8178         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
8179
8180 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
8181
8182         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
8183         statement on instruction code.  Remove trailing spaces.
8184         (altivec_expand_stv_builtin): Likewise.
8185
8186 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8187
8188         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
8189         (TARGET_FPU_DOUBLE): Simplify.
8190         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
8191         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
8192         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
8193         with 'TARGET_FPU_DOUBLE'.
8194         * config/sh/sh.md: Likewise.
8195
8196 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
8197
8198         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
8199         SH_DIV_STR_FOR_SIZE): Remove.
8200         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
8201         SH_DIV_STR_FOR_SIZE): Remove.
8202
8203 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8204
8205         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
8206         logical_reg_operand): Delete.
8207         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
8208         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
8209         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
8210         match_operand and match_test.
8211         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
8212         variables on their first use.  Return bool values.
8213         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
8214         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
8215         arith_reg_operand for input operand.  Remove empty constraints.
8216         (xorsi3): Delete.
8217         (*xorsi3_compact): Rename to xorsi3.
8218         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
8219         (*zero_extend<mode>si2_disp_mem): Update comment.
8220         (mov_nop): Delete.
8221
8222 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
8223
8224         * config/sh/t-sh: Remove SH5 support.
8225         * config.gcc: Likewise.
8226         * configure: Likewise.
8227
8228 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8229
8230         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
8231
8232 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
8233
8234         * config/sh/sh.c (register_sh_passes, sh_option_override,
8235         sh_print_operand, prepare_move_operands,
8236         sh_can_follow_jump): Remove TARGET_SH1 checks.
8237         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
8238         PROMOTE_MODE): Likewise.
8239         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
8240         movdi): Likewise.
8241
8242 2016-04-30  Alan Modra  <amodra@gmail.com>
8243
8244         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
8245         restoring when fixed_reg_p, but allow out-of-line or stmw save.
8246         Check for user regs later to avoid unnecessary looping over regs.
8247         Merge user reg check with non-saved reg check.  Don't force
8248         inline VR restore when static chain used.
8249         (rs6000_frame_related): Omit eh_frame info for user regs when
8250         saving.
8251         (fixed_regs_p): Delete.
8252
8253 2016-04-30  Alan Modra  <amodra@gmail.com>
8254
8255         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
8256         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
8257         Update all uses.
8258
8259 2016-04-30  Alan Modra  <amodra@gmail.com>
8260
8261         PR target/69645
8262         * config/rs6000/rs6000.c (fixed_reg_p): New function.
8263         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
8264         Update all uses.
8265
8266 2016-04-30  Alan Modra  <amodra@gmail.com>
8267
8268         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
8269         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
8270         flag_pic test for Darwin.
8271
8272 2016-04-30  Alan Modra  <amodra@gmail.com>
8273
8274         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
8275         throw_calls_crossed.
8276         (REG_FREQ_CALLS_CROSSED): Delete.
8277         (REG_N_THROWING_CALLS_CROSSED): Delete.
8278         * regstat.c (regstat_bb_compute_ri): Don't calculate
8279         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
8280         (dump_reg_info): Don't print call cross frequency.
8281         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
8282         and REG_N_THROWING_CALLS_CROSSED.
8283
8284 2016-04-30  Alan Modra  <amodra@gmail.com>
8285
8286         * regs.h (struct reg_info_t): Delete live_length.
8287         (REG_LIVE_LENGTH): Delete macro.
8288         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
8289         local_live, local_processed and local_live_last_luid params.
8290         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
8291         Formatting fixes.
8292         (regstat_compute_ri): Adjust for above.  Don't set
8293         REG_LIVE_LENGTH.
8294         (dump_reg_info): Don't print live length.
8295         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
8296         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
8297         Localize loop_depth var.
8298
8299 2016-04-30  Alan Modra  <amodra@gmail.com>
8300
8301         * ira.c (enum valid_equiv): New.
8302         (validate_equiv_mem): Return enum.
8303         (update_equiv_mem): Create replacement in more cases.
8304         (add_store_equivs): Update validate_equiv_mem call.
8305
8306 2016-04-30  Alan Modra  <amodra@gmail.com>
8307
8308         * ira.c (combine_and_move_insns): Rather than scanning insns,
8309         use DF infrastucture to find use and def insns.
8310
8311 2016-04-30  Alan Modra  <amodra@gmail.com>
8312
8313         ira.c (combine_and_move_insns): Move invariant conditions..
8314         (ira.c): ..to here.  Call combine_and_move_insns before
8315         add_store_equivs.  Call grow_reg_equivs later.  Allocate
8316         req_equiv later using max_reg_num() rather than global max_regno.
8317         (contains_replace_regs): Delete.
8318         (add_store_equivs): Remove contains_replace_regs test.
8319
8320 2016-04-30  Alan Modra  <amodra@gmail.com>
8321
8322         * ira.c (struct equiv_mem_data): New.
8323         (equiv_mem, equiv_mem_modified): Delete static vars.
8324         (validate_equiv_mem_from_store): Use "data" param to communicate..
8325         (validate_equiv_mem): ..from here.
8326
8327 2016-04-30  Alan Modra  <amodra@gmail.com>
8328
8329         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
8330         split out from..
8331         (update_reg_equivs): ..here.  Move allocation and freeing of
8332         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
8333         end_alias_analysis to..
8334         (ira): ..here.
8335
8336 2016-04-30  Alan Modra  <amodra@gmail.com>
8337
8338         * ira.c (pdx_subregs): Delete.
8339         (struct equivalence): Add pdx_subregs field.
8340         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
8341         pdx_subregs access.
8342         (update_equiv_regs): Don't create or free pdx_subregs.  Update
8343         pdx_subregs access.
8344
8345 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8346
8347         * config/rs6000/altivec.h: Change definitions of vec_xl and
8348         vec_xst.
8349         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
8350         (LD_ELEMREV_V2DI): New.
8351         (LD_ELEMREV_V4SF): New.
8352         (LD_ELEMREV_V4SI): New.
8353         (LD_ELEMREV_V8HI): New.
8354         (LD_ELEMREV_V16QI): New.
8355         (ST_ELEMREV_V2DF): New.
8356         (ST_ELEMREV_V2DI): New.
8357         (ST_ELEMREV_V4SF): New.
8358         (ST_ELEMREV_V4SI): New.
8359         (ST_ELEMREV_V8HI): New.
8360         (ST_ELEMREV_V16QI): New.
8361         (XL): New.
8362         (XST): New.
8363         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8364         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
8365         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
8366         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
8367         (altivec_expand_builtin): Add handling for
8368         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
8369         (rs6000_invalid_builtin): Add error-checking for
8370         RS6000_BTM_P9_VECTOR.
8371         (altivec_init_builtins): Define builtins used to implement vec_xl
8372         and vec_xst.
8373         (rs6000_builtin_mask_names): Define power9-vector.
8374         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
8375         (RS6000_BTM_P9_VECTOR): Define.
8376         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
8377         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
8378         (vsx_ld_elemrev_v2df): Likewise.
8379         (vsx_ld_elemrev_v4sf): Likewise.
8380         (vsx_ld_elemrev_v4si): Likewise.
8381         (vsx_ld_elemrev_v8hi): Likewise.
8382         (vsx_ld_elemrev_v16qi): Likewise.
8383         (vsx_st_elemrev_v2df): Likewise.
8384         (vsx_st_elemrev_v2di): Likewise.
8385         (vsx_st_elemrev_v4sf): Likewise.
8386         (vsx_st_elemrev_v4si): Likewise.
8387         (vsx_st_elemrev_v8hi): Likewise.
8388         (vsx_st_elemrev_v16qi): Likewise.
8389         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
8390         grammar.
8391
8392 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
8393
8394         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
8395         out into ...
8396         (simplify_control_stmt_condition_1): ... here.  Recurse into
8397         BIT_AND_EXPRs and BIT_IOR_EXPRs.
8398
8399 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
8400
8401         PR target/69810
8402         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
8403         (zero_extendqi<mode>2_dot): Revert earlier conversion from
8404         define_insn_and_split to define_insn.
8405         (zero_extendqi<mode>2_dot2): Same.
8406         (extendqi<mode>2_dot): Same.
8407         (extendqi<mode>2_dot2): Same.
8408
8409 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8410
8411         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
8412         (probe_stack): New expander.
8413         (probe_stack_<mode>): New insn pattern.
8414
8415 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8416
8417         * config/i386/i386.md
8418         (operations with memory inputs setting flags peephole2):
8419         Remove uneeded REG_P checks.  Cleanup pattern generation.
8420
8421 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
8422
8423         * tree-vect-loop.c (vect_transform_loop): Fix
8424         nb_iterations_upper_bound computation for vectorized loop.
8425
8426 2016-04-29  Marek Polacek  <polacek@redhat.com>
8427             Jakub Jelinek  <jakub@redhat.com>
8428
8429         PR sanitizer/70342
8430         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
8431         TARGET_EXPR_SLOT as a base.
8432
8433 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
8434
8435         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
8436         with 'rCm2' constraints to limit possible immediate size.
8437         (*load_zeroextendqisi_update): Likewise.
8438         (*load_signextendqisi_update): Likewise.
8439         (*loadhi_update): Likewise.
8440         (*load_zeroextendhisi_update): Likewise.
8441         (*load_signextendhisi_update): Likewise.
8442         (*loadsi_update): Likewise.
8443         (*loadsf_update): Likewise.
8444
8445 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8446
8447         * config/i386/predicates.md (constm1_operand): Fix comparison.
8448
8449 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
8450
8451         * testsuite/gcc.target/arc/ieee_eq.c: New test.
8452
8453 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
8454
8455         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
8456         remaining SH5 related settings.
8457         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
8458         shmedia_prepare_call_address): Delete.
8459         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
8460         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
8461         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
8462         UNSUPPORTED_SH2A): Remove m5 checks.
8463         (sh_divide_strategy_e): Remove SH5 division strategies.
8464         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
8465         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
8466
8467 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8468
8469         * config/s390/s390.c (s390_rtx_costs): Update documentation.
8470
8471 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8472
8473         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
8474         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
8475         Change lder to ldr.
8476         * config/s390/vector.md ("mov<mode>"): Likewise.
8477
8478 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
8479
8480         * config/s390/constraints.md ("U", "W"): Invoke
8481         s390_mem_constraint with "ZR" and "ZT".
8482         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
8483         addresses when using LRA.  Accept also short displacements for S
8484         and T constraints.  Do not check for long displacement target for
8485         S and T constraints.
8486         (s390_mem_constraint): Remove handling of U and W constraints.
8487         * config/s390/s390.md (various patterns): Remove the short
8488         displacement constraints (Q and R) if a long displacement
8489         constraint is present.  Add longdisp as required CPU capability.
8490         * config/s390/vector.md: Likewise.
8491         * config/s390/vx-builtins.md: Likewise.
8492
8493 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8494
8495         PR target/60040
8496         * reload1.c (reload): Call finish_spills before
8497         restarting reload loop. Skip select_reload_regs
8498         if update_eliminables_and_spill returns true.
8499
8500 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
8501
8502         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
8503         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
8504         (umulhisi3_imm): Update predicates and constraint letters.
8505         (umulhisi3_reg): Declare instruction as commutative.
8506         * config/arc/constraints.md (J12, J16): New constraints.
8507         * config/arc/predicates.md (short_unsigned_const_operand): New
8508         predicate.
8509         (arc_short_operand): Likewise.
8510         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
8511
8512 2016-04-29  Richard Biener  <rguenther@suse.de>
8513
8514         PR tree-optimization/13962
8515         PR tree-optimization/65686
8516         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
8517         * tree-ssa-alias.c (ptrs_compare_unequal): New function
8518         using PTA to compare pointers.
8519         * match.pd: Add pattern for pointer equality compare simplification
8520         using ptrs_compare_unequal.
8521
8522 2016-04-29  Richard Biener  <rguenther@suse.de>
8523
8524         * stor-layout.c (layout_type): Do not build a pointer-to-element
8525         type for arrays.
8526
8527 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8528
8529         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
8530         Use SWI mode iterator.  Use general_reg_operand predicate.
8531         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
8532         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
8533         predicates.
8534
8535 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
8536
8537         PR middle-end/70843
8538         * fold-const.c (operand_equal_p): Don't verify hash value equality
8539         if arg0 == arg1.
8540         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
8541         and OMP_CLAUSE.
8542
8543 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8544
8545         PR target/70858
8546         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
8547         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
8548         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
8549         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
8550         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
8551
8552 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8553
8554         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
8555         to info.  Don't initialize separate fields to 0.  Clean up
8556         formatting a bit.
8557
8558 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8559
8560         * config/i386/i386.md (peephole2s for operations with memory inputs):
8561         Use SWI mode iterator.
8562         (peephole2s for operations with memory outputs): Ditto.
8563         Do not check for stack checking probe.
8564
8565         (probe_stack): Remove expander.
8566
8567 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8568             Andrew Burgess  <andrew.burgess@embecosm.com>
8569
8570         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
8571         operands as 32-bits.
8572
8573 2016-04-28  Jason Merrill  <jason@redhat.com>
8574
8575         * gdbinit.in: Skip line-map.h.
8576
8577 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8578             Andrew Burgess  <andrew.burgess@embecosm.com>
8579
8580         * config/arc/arc.c (arc_conditional_register_usage): Take
8581         TARGET_RRQ_CLASS into account.
8582         (arc_print_operand): Support printing 'p' and 's' operands.
8583         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
8584         as 0.
8585         (TARGET_RRQ_CLASS): Define.
8586         (IS_POWEROF2_OR_0_P): Define.
8587         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
8588         alternatives.
8589         (*tst_movb): New define_insn.
8590         (*tst): Avoid recognition if it could prevent '*tst_movb'
8591         combination; replace c/CnL with c/Chs alternative.
8592         (*tst_bitfield_tst): New define_insn.
8593         (*tst_bitfield_asr): New define_insn.
8594         (*tst_bitfield): New define_insn.
8595         (andsi3_i): Add Rrq variant.
8596         (extzv): New define_expand.
8597         (insv): New define_expand.
8598         (*insv_i): New define_insn.
8599         (*movb): New define_insn.
8600         (*movb_signed): New define_insn.
8601         (*movb_high): New define_insn.
8602         (*movb_high_signed): New define_insn.
8603         (*movb_high_signed + 1): New define_split pattern.
8604         (*mrgb): New define_insn.
8605         (*mrgb + 1): New define_peephole2 pattern.
8606         (*mrgb + 2): New define_peephole2 pattern.
8607         * config/arc/arc.opt (mbitops): New option for nps400, uses
8608         TARGET_NPS_BITOPS_DEFAULT.
8609         * config/arc/constraints.md (q): Make register class conditional.
8610         (Rrq): New register constraint.
8611         (Chs): New constraint.
8612         (Clo): New constraint.
8613         (Chi): New constraint.
8614         (Cbf): New constraint.
8615         (Cbn): New constraint.
8616         (C18): New constraint.
8617         (Cbi): New constraint.
8618
8619 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8620
8621         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
8622         dst->popcount.
8623         (bitmap_intersection_of_preds): Ditto.
8624         (bitmap_union_of_succs): Ditto.
8625         (bitmap_union_of_preds): Ditto.
8626         * sbitmap.c (do_popcount): Delete.
8627         (BITMAP_DEBUGGING): Delete.
8628         (sbitmap_verify_popcount): Delete.
8629         (sbitmap_alloc): Don't initialize the popcount field.
8630         (sbitmap_alloc_with_popcount): Delete.
8631         (sbitmap_resize): Don't resize the popcount array.
8632         (sbitmap_vector_alloc): Don't initialize the popcount field.
8633         (bitmap_copy): Don't copy the popcount array.
8634         (bitmap_clear): Don't clear the popcount array.
8635         (bitmap_clear): Delete the popcount array handling.
8636         (bitmap_ior_and_compl): Delete the popcount assert.
8637         (bitmap_not): Ditto.
8638         (bitmap_and_compl): Ditto.
8639         (bitmap_and): Delete the popcount array handling.
8640         (bitmap_xor): Ditto.
8641         (bitmap_ior): Ditto.
8642         (bitmap_or_and): Delete the popcount assert.
8643         (bitmap_and_or): Ditto.
8644         (popcount_table): Delete.
8645         (sbitmap_elt_popcount): Delete.
8646         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
8647         (bitmap_set_bit): Delete the popcount assert.
8648         (bitmap_clear_bit): Ditto.
8649         (sbitmap_free): Don't free the popcount array.
8650         (sbitmap_alloc_with_popcount): Delete declaration.
8651         (sbitmap_popcount): Ditto.
8652
8653 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8654             Andrew Burgess  <andrew.burgess@embecosm.com>
8655
8656         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
8657         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
8658         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
8659         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
8660         * config/arc/arc.opt (mcmem): New option.
8661         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
8662         supply length for r/m alternative.
8663         (*extendqisi2_ac): Likewise.
8664         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
8665         r/Uex alternative.
8666         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
8667         (movhi_insn): Likewise.
8668         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
8669         (*zero_extendqihi2_i): Add r/Ucm alternative.
8670         (*zero_extendqisi2_ac): Likewise.
8671         (*zero_extendhisi2_i): Likewise.
8672         * config/arc/constraints.md (Uex): New memory constraint.
8673         (Ucm): New define_constraint.
8674         * config/arc/predicates.md (long_immediate_loadstore_operand):
8675         Return 0 for MEM with cmem_address address.
8676         (cmem_address_0): New predicates.
8677         (cmem_address_1): Likewise.
8678         (cmem_address_2): Likewise.
8679         (cmem_address): Likewise.
8680
8681 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8682
8683         * config/rs6000/rs6000.c (machine_function): Rename
8684         insn_chain_scanned_p to spe_insn_chain_scanned_p.
8685         (rs6000_stack_info): Adjust.
8686
8687 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8688             Andrew Burgess  <andrew.burgess@embecosm.com>
8689
8690         * config/arc/constraints.md (Usd): Convert to define_constraint.
8691         (Us<): Likewise.
8692         (Us>): Likewise.
8693
8694 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8695
8696         PR target/70821
8697         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
8698         Add new peephole2 where the first insn is *mov<mode>_or instead of
8699         *mov<mode>_internal.
8700
8701 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
8702
8703         * tracer.c (bb_seen): Make static.
8704
8705 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
8706
8707         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
8708         support, setup defaults.
8709         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
8710         * config/arc/arc.c (arc_init): Add NPS400 support.
8711         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
8712         (TARGET_ARC700): NPS400 is also an ARC700.
8713         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
8714
8715 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8716
8717         PR target/70668
8718         * config/nds32/nds32.md (casesi): Don't access the operands array
8719         out of bounds.
8720
8721 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8722
8723         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
8724         (or $-1,reg peephole2): Ditto.
8725         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
8726
8727 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
8728
8729         * doc/extend.texi (Common Function Attributes) [optimize]:
8730         Discourage use of the optimize attribute.
8731
8732 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
8733
8734         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
8735         special case builtin.
8736         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
8737         ALTIVEC_BUILTIN_VEC_ADDE.
8738         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
8739         support for ALTIVEC_BUILTIN_VEC_ADDE.
8740         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
8741         for __builtin_vec_adde.
8742
8743 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8744
8745         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
8746         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
8747
8748 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8749
8750         PR testsuite/70595
8751         * doc/sourcebuild.texi (Effective-Target Keywords, Other
8752         attributes): Document cilkplus_runtime.
8753
8754 2016-04-28  Martin Jambor  <mjambor@suse.cz>
8755
8756         * tree-cfg.c (verify_expr): Verify that local declarations belong to
8757         this function.  Call verify_expr on MEM_REFs and bases of other
8758         handled_components.
8759
8760 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8761
8762         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
8763         for WORD_REGISTER_OPERATIONS to runtime check.
8764
8765 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8766
8767         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
8768
8769 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8770
8771         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
8772         big-endian compilation.
8773         * config/arc/arc.md (addf3): Likewise.
8774         (subdf3): Likewise.
8775         (muldf3): Likewise.
8776
8777 2016-04-28  Richard Biener  <rguenther@suse.de>
8778
8779         PR tree-optimization/70840
8780         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
8781         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
8782         Mark x * pow(x,c) -> pow(x,c+1) commutative.
8783         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
8784
8785 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8786
8787         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
8788         and explain why in a comment.
8789
8790 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8791
8792         * config/arc/arc.md (cpu_facility): Add fpx variant.
8793         (subdf3): Prohibit use reverse sub when assist operations option
8794         is enabled.
8795         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
8796         instructions only when FPX is enabled.
8797         * testsuite/gcc.target/arc/trsub.c: New test.
8798
8799 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8800
8801         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
8802         mult_operator when calculating "type" attribute.
8803         (*fop_<mode>_1_i387): Ditto.
8804         (*fop_xf_1_i387): Ditto.
8805         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
8806         Use std::swap to swap operands.  Use RTL expressions to generate
8807         converted pattern.
8808
8809 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8810             Joern Rennecke  <joern.rennecke@embecosm.com>
8811
8812         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
8813         declaration.
8814         (emit_pic_move): Remove.
8815         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
8816         * config/arc/arc.c (emit_pic_move): Removed.
8817         (TARGET_HAVE_TLS): Define.
8818         (arc_conditional_register_usage): Test for arc_tp_regno.
8819         (arc_print_operand, arc_print_operand_address): Handle TLS
8820         unspecs.
8821         (arc_needs_pcl_p): New function.
8822         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
8823         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
8824         (arc_raw_symbolic_reference_mentioned_p): Likewise.
8825         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
8826         (arc_legitimize_tls_address): Likewise.
8827         (DTPOFF_ZERO_SYM): Define.
8828         (arc_legitimize_pic_address): Make it static, handle TLS cases.
8829         (arc_output_pic_addr_const): Print TLS unspecs.
8830         (prepare_pic_move): New function, replaces emit_pic_move.
8831         (arc_legitimate_constant_p): Handle TLS unspecs.
8832         (arc_legitimate_address_p): Likewise.
8833         (arc_rewrite_small_data_p): Use assert for TLS constants.
8834         (prepare_move_operands): Use prepare_pic_move.
8835         (arc_legitimize_address): Legitimize tls addresses.
8836         (arc_epilogue_uses): Check for arc_tp_regno.
8837         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
8838         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
8839         Define.
8840         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
8841         Likewise.
8842         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
8843         %(arc_tls_extra_start_spec).
8844         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
8845         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
8846         (EH_USES): Define.
8847         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
8848         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
8849         (UNSPEC_TLS_OFF): Add.
8850         (R10_REG): Define.
8851         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
8852         (get_thread_pointersi): New patterns.
8853         * config/arc/arc.opt (mtp-regno): New option.
8854         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
8855         (move_dest_operand): Likewise.
8856         * configure: Regenerate.
8857         * configure.ac: Add arc*-*-* case to test for tls.
8858         * doc/invoke.texi (ARC options): Document mtp-regno.
8859
8860 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8861
8862         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
8863         the new ARC HS SIMD instructions.
8864         (arc_preferred_simd_mode): New function.
8865         (arc_autovectorize_vector_sizes): Likewise.
8866         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
8867         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8868         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
8869         (arc_init_builtins): Add new SIMD builtin types.
8870         (arc_split_move): Handle 64 bit vector moves.
8871         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
8872         (TARGET_PLUS_QMACW): Define.
8873         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
8874         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
8875         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
8876         (VSUBADD4H): New builtins.
8877         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
8878         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
8879
8880 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
8881             Matthias Klose  <doko@debian.org>
8882
8883         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
8884
8885 2016-04-28  Richard Biener  <rguenther@suse.de>
8886
8887         PR middle-end/70777
8888         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
8889         canonicalization.
8890
8891 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
8892
8893         * common/config/sh/sh-common.c: Remove SH5 support.
8894         * config/sh/constraints.md: Likewise.
8895         * config/sh/config/sh/elf.h: Likewise.
8896         * config/sh/linux.h: Likewise.
8897         * config/sh/netbsd-elf.h: Likewise.
8898         * config/sh/predicates.md: Likewise.
8899         * config/sh/sh-c.c: Likewise.
8900         * config/sh/sh-protos.h: Likewise.
8901         * config/sh/sh.c: Likewise.
8902         * config/sh/sh.h: Likewise.
8903         * config/sh/sh.md: Likewise.
8904         * config/sh/sh.opt: Likewise.
8905         * config/sh/sync.md: Likewise.
8906         * config/sh/sh64.h: Delete.
8907         * config/sh/shmedia.h: Likewise.
8908         * config/sh/shmedia.md: Likewise.
8909         * config/sh/sshmedia.h: Likewise.
8910         * config/sh/t-netbsd-sh5-64: Likewise.
8911         * config/sh/t-sh64: Likewise.
8912         * config/sh/ushmedia.h: Likewise.
8913
8914 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8915
8916         * config/i386/i386.md (sign_extend to memory peephole2s): Use
8917         general_reg_operand instead of register_operand predicate.
8918
8919 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8920
8921         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
8922
8923 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
8924
8925         * match.pd (A - B > A, A + B < A): New transformations.
8926
8927 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
8928
8929         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
8930         which defaults to true.  Emit an outer pair of parentheses only if
8931         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
8932         don't emit parentheses for the right-hand operand.
8933
8934 2016-04-27  Jeff Law  <law@redhat.com>
8935
8936         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
8937
8938 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8939
8940         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
8941         (altivec_lvx_<mode>_internal): Document.
8942         (altivec_lvx_<mode>_2op): New define_insn.
8943         (altivec_lvx_<mode>_1op): Likewise.
8944         (altivec_lvx_<mode>_2op_si): Likewise.
8945         (altivec_lvx_<mode>_1op_si): Likewise.
8946         (altivec_stvx_<mode>): Remove.
8947         (altivec_stvx_<mode>_internal): Document.
8948         (altivec_stvx_<mode>_2op): New define_insn.
8949         (altivec_stvx_<mode>_1op): Likewise.
8950         (altivec_stvx_<mode>_2op_si): Likewise.
8951         (altivec_stvx_<mode>_1op_si): Likewise.
8952         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8953         Expand vec_ld and vec_st during parsing.
8954         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
8955         changes.
8956         (altivec_expand_stvx_be): Likewise.
8957         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
8958         address-masking behavior in RTL.
8959         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
8960         address-masking behavior in RTL.
8961         (altivec_expand_builtin): Change builtin code arguments for calls
8962         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
8963         (insn_is_swappable_p): Avoid incorrect swap optimization in the
8964         presence of lvx/stvx patterns.
8965         (alignment_with_canonical_addr): New function.
8966         (alignment_mask): Likewise.
8967         (find_alignment_op): Likewise.
8968         (recombine_lvx_pattern): Likewise.
8969         (recombine_stvx_pattern): Likewise.
8970         (recombine_lvx_stvx_patterns): Likewise.
8971         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
8972         stvx patterns from expand.
8973         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
8974         expansions.
8975         (vector_altivec_store_<mode>): Likewise.
8976
8977 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
8978
8979         * config/aarch64/aarch64.md
8980         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
8981         remove the "fp" attributes.
8982         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
8983         add the "simd" attributes.
8984         (*movdf_aarch64): Likewise.
8985         (*movtf_aarch64): Remove the "fp" attributes.
8986         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
8987         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
8988
8989 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
8990
8991         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
8992         rtx to rtx_code_label *.
8993         * rtl.h (maybe_set_first_label_num): Likewise.
8994
8995 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
8996
8997         * df-core.c (df_add_problem): Make the problem param be const.
8998         (df_remove_problem): Make local "problem" be const.
8999         * df-problems.c (problem_RD): Make const.
9000         (problem_LR): Likewise.
9001         (problem_LIVE): Likewise.
9002         (problem_MIR): Likewise.
9003         (problem_CHAIN): Likewise.
9004         (problem_WORD_LR): Likewise.
9005         (problem_NOTE): Likewise.
9006         (problem_MD): Likewise.
9007         * df-scan.c (problem_SCAN): Likewise.
9008         * df.h (struct df_problem): Make field "dependent_problem" be
9009         const.
9010         (struct dataflow): Likewise for field "problem".
9011         (df_add_problem): Make param const.
9012
9013 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
9014
9015         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
9016         inter-unit moves to/from vector registers are enabled.  Do not disable
9017         for TARGET_MMX.
9018
9019 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9020
9021         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
9022         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
9023         #define to...
9024         (enum df_problem_id): ...this new enum.
9025         (struct df_problem): Convert field "id" from "int" to
9026         enum df_problem_id.
9027
9028 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9029
9030         * rtl.def: Update comment for "things in the instruction chain" to
9031         reflect the removal of the leading "i" field for INSN_UID in
9032         r210360.  Fix bogus apostrophe.
9033
9034 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
9035
9036         * config/i386/i386.md
9037         (lea arith with mem operand + setcc peephole2): Set operator mode.
9038
9039 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
9040
9041         PR target/70155
9042         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
9043         (dimode_scalar_to_vector_candidate_p): This.
9044         (timode_scalar_to_vector_candidate_p): New function.
9045         (scalar_to_vector_candidate_p): Likewise.
9046         (timode_check_non_convertible_regs): Likewise.
9047         (timode_remove_non_convertible_regs): Likewise.
9048         (remove_non_convertible_regs): Likewise.
9049         (remove_non_convertible_regs): Renamed to ...
9050         (dimode_remove_non_convertible_regs): This.
9051         (scalar_chain::~scalar_chain): Make it virtual.
9052         (scalar_chain::compute_convert_gain): Make it pure virtual.
9053         (scalar_chain::mark_dual_mode_def): Likewise.
9054         (scalar_chain::convert_insn): Likewise.
9055         (scalar_chain::convert_registers): Likewise.
9056         (scalar_chain::add_to_queue): Make it protected.
9057         (scalar_chain::emit_conversion_insns): Likewise.
9058         (scalar_chain::replace_with_subreg): Likewise.
9059         (scalar_chain::replace_with_subreg_in_insn): Likewise.
9060         (scalar_chain::convert_op): Likewise.
9061         (scalar_chain::convert_reg): Likewise.
9062         (scalar_chain::make_vector_copies): Likewise.
9063         (scalar_chain::convert_registers): New pure virtual function.
9064         (class dimode_scalar_chain): New class.
9065         (class timode_scalar_chain): Likewise.
9066         (scalar_chain::mark_dual_mode_def): Renamed to ...
9067         (dimode_scalar_chain::mark_dual_mode_def): This.
9068         (timode_scalar_chain::mark_dual_mode_def): New function.
9069         (timode_scalar_chain::convert_insn): Likewise.
9070         (dimode_scalar_chain::convert_registers): Likewise.
9071         (scalar_chain::compute_convert_gain): Renamed to ...
9072         (dimode_scalar_chain::compute_convert_gain): This.
9073         (scalar_chain::replace_with_subreg): Renamed to ...
9074         (dimode_scalar_chain::replace_with_subreg): This.
9075         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
9076         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
9077         (scalar_chain::make_vector_copies): Renamed to ...
9078         (dimode_scalar_chain::make_vector_copies): This.
9079         (scalar_chain::convert_reg): Renamed to ...
9080         (dimode_scalar_chain::convert_reg ): This.
9081         (scalar_chain::convert_op): Renamed to ...
9082         (dimode_scalar_chain::convert_op): This.
9083         (scalar_chain::convert_insn): Renamed to ...
9084         (dimode_scalar_chain::convert_insn): This.
9085         (scalar_chain::convert): Call convert_registers.
9086         (convert_scalars_to_vector): Change to scalar_chain pointer to
9087         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
9088         in 32-bit mode.  Delete scalar_chain pointer.  Call
9089         free_dominance_info in 64-bit mode.
9090         (pass_stv::gate): Remove TARGET_64BIT check.
9091         (ix86_option_override): Put the 64-bit STV pass before the CSE
9092         pass.
9093
9094 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
9095
9096         * dwarf2out.h (struct dw_loc_descr_node): Remove the
9097         dw_loc_frame_offset field.
9098         * dwarf2out.c (new_loc_descr): Likewise.
9099         (resolve_args_picking_1): Turn the VISITED hash set into a
9100         FRAME_OFFSET hash map. Use it to associate a frame offset to
9101         visited nodes. Remove uses of the CHECKING_P macro.
9102         (resolve_args_picking): Update call to resolve_args_picking_1.
9103
9104 2016-04-27  Martin Liska  <mliska@suse.cz>
9105
9106         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
9107         (free_loop_data): Release vuses of groups.
9108
9109 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
9110
9111         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
9112         instead of redundant use_id and boolean have_use_for.
9113         (struct iv_use): Change sub_id into group_id.  Remove field next.
9114         Move fields: related_cands, n_map_members, cost_map and selected
9115         to ...
9116         (struct iv_group): ... here.  New structure.
9117         (struct iv_common_cand): Use structure declaration directly.
9118         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
9119         (MAX_CONSIDERED_USES): Rename macro to ...
9120         (MAX_CONSIDERED_GROUPS): ... here.
9121         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
9122         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
9123         (dump_uses): Rename to ...
9124         (dump_groups): ... here.  Update all uses.
9125         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
9126         (find_induction_variables): Refactor format of dump information.
9127         (record_sub_use): Delete.
9128         (record_use): Update all uses.
9129         (record_group): New function.
9130         (record_group_use, find_interesting_uses_op): Call above functions.
9131         Update all uses.
9132         (find_interesting_uses_cond): Ditto.
9133         (group_compare_offset): New function.
9134         (split_all_small_groups): Rename to ...
9135         (split_small_address_groups_p): ... here.  Update all uses.
9136         (split_address_groups):  Update all uses.
9137         (find_interesting_uses): Refactor format of dump information.
9138         (add_candidate_1): Update all uses.  Remove redundant check on iv,
9139         base and step.
9140         (add_candidate, record_common_cand): Remove redundant assert.
9141         (add_iv_candidate_for_biv): Update use.
9142         (add_iv_candidate_derived_from_uses): Update all uses.
9143         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
9144         (alloc_use_cost_map): Ditto.
9145         (set_use_iv_cost, get_use_iv_cost): Rename to ...
9146         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
9147         (determine_use_iv_cost_generic): Ditto.
9148         (determine_group_iv_cost_generic): Ditto.
9149         (determine_use_iv_cost_address): Ditto.
9150         (determine_group_iv_cost_address): Ditto.
9151         (determine_use_iv_cost_condition): Ditto.
9152         (determine_group_iv_cost_cond): Ditto.
9153         (determine_use_iv_cost): Ditto.
9154         (determine_group_iv_cost): Ditto.
9155         (set_autoinc_for_original_candidates): Update all uses.
9156         (find_iv_candidates): Update all uses.  Refactor dump information.
9157         (determine_use_iv_costs): Ditto.
9158         (determine_iv_costs): Ditto.
9159         (iv_ca_cand_for_use): Rename to ...
9160         (iv_ca_cand_for_group): ... here.  Update all uses.
9161         (iv_ca_add_use, iv_ca_add_group): Ditto.
9162         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
9163         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
9164         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
9165         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
9166         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
9167         (create_new_iv, adjust_iv_update_pos): Ditto.
9168         (rewrite_use_address): Delete.
9169         (rewrite_use_address_1): Rename to ...
9170         (rewrite_use_address): ... here.
9171         (rewrite_use_compare): Update all uses.
9172         (rewrite_use): Delete.
9173         (rewrite_uses): Rename to ...
9174         (rewrite_groups): ... here.  Update all uses.
9175         (remove_unused_ivs, free_loop_data): Update all uses.
9176         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
9177
9178 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9179
9180         * rtlanal.c (nonzero_bits1): Convert preprocessor check
9181         for WORD_REGISTER_OPERATIONS to runtime check.
9182
9183 2016-04-27  Richard Biener  <rguenther@suse.de>
9184
9185         PR ipa/70760
9186         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
9187         aggregate_value_p to determine if a function result is
9188         returned by reference.
9189         (ipa_pta_execute): Functions having their address taken are
9190         not automatically nonlocal.
9191
9192 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
9193
9194         PR sanitizer/70683
9195         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
9196         * fold-const.c (operand_equal_p): If flag_checking and
9197         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
9198         and if it returns non-zero, assert iterative_hash_expr on both
9199         args is the same.
9200
9201 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
9202
9203         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
9204
9205 2016-04-27  Nick Clifton  <nickc@redhat.com>
9206
9207         PR middle-end/49889
9208         * varasm.c (merge_weak): Generate an error if an attempt is made
9209         to convert a non-weak static function into a weak, public function.
9210
9211 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9212
9213         * params.def (MAX_PARTITION_SIZE): New param.
9214         * doc/invoke.texi: Document lto-max-partition.
9215
9216 2016-04-27  Richard Biener  <rguenther@suse.de>
9217
9218         PR ipa/70785
9219         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
9220         function cummulating used_from_other_partition, externally_visible
9221         and force_output from aliases.
9222         (refered_from_nonlocal_var): Likewise.
9223         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
9224         node flags properly.
9225
9226 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
9227
9228         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
9229         (-Wmemset-elt-size): New item.
9230
9231 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
9232
9233         PR ada/70759
9234         * stor-layout.h (internal_reference_types): Delete.
9235         * stor-layout.c (reference_types_internal): Likewise.
9236         (internal_reference_types): Likewise.
9237         (layout_type) <REFERENCE_TYPE>: Adjust.
9238
9239 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
9240
9241         PR sanitizer/70683
9242         * tree.h (inchash::add_expr): Add FLAGS argument.
9243         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
9244         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
9245         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
9246         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
9247         if swap_tree_comparison (code) is smaller than code, hash that
9248         and arguments in the other order.  Hash CONVERT_EXPR the same
9249         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
9250         of ADDR_EXPR of decl as the decl itself.  Add or remove
9251         OEP_ADDRESS_OF from recursive flags as needed.  For
9252         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
9253         operands commutatively and only the third one normally.
9254         For internal CALL_EXPR hash in CALL_EXPR_IFN.
9255
9256 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9257
9258         * config/rtems.h (LIB_SPEC): Add -latomic.
9259
9260 2016-04-27  Joel Sherrill  <joel@rtems.org>
9261
9262         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
9263         xilink.ld and flags not relevant to RTEMS.
9264
9265 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
9266
9267         * toplev.c (backend_init_target): Avoid calling init_reload when using
9268         LRA.
9269
9270 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
9271
9272         * reorg.c (try_merge_delay_insns): Declare i and j inside the
9273         for loops rather than one for the whole function.
9274
9275 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
9276
9277         * match.pd (X + CST CMP X): New transformation.
9278
9279 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
9280
9281         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
9282         * fold-const.c (fold_binary_loc): Remove 2 transformations
9283         superseded by match.pd.
9284         * match.pd (x+x -> x*2): Generalize to integers.
9285
9286 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
9287
9288         * config/i386/i386.md (operation on memory peephole): Duplicate an
9289         existing peephole and adapt it to match lea rather than an operation
9290         that clobbers CC.
9291
9292         PR rtl-optimization/57193
9293         * opts.c (default_options_table): Add OPT_frename_registers at -O2
9294         and above.
9295         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
9296
9297 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
9298
9299         * tree-if-conv.c (any_pred_load_store): New static variable.
9300         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
9301         any_pred_load_store instead of and_mask_load_store.
9302         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
9303         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
9304         (combine_blocks, tree_if_conversion): Ditto.
9305
9306 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
9307
9308         PR tree-optimization/70771
9309         PR tree-optimization/70775
9310         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
9311         virtual PHI nodes.  Delete parameter.
9312         (if_convertible_loop_p_1): Delete argument to above function.
9313         (predicate_all_scalar_phis): Delete code handling single-argument
9314         PHIs.
9315         (tree_if_conversion): Mark and update virtual SSA.
9316
9317 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9318
9319         PR target/61821
9320         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
9321         (x86_elf_aligned_common): Rename to ...
9322         (x86_elf_aligned_decl_common): ... this.
9323         Add decl arg.  Switch to .lbss for largecomm object.  Use
9324         LARGECOMM_SECTION_ASM_OP.
9325         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
9326         renaming.
9327         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
9328         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
9329         Pass new decl arg.
9330         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
9331         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
9332
9333 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9334
9335         PR target/59407
9336         * config/i386/i386.c (SECTION_LARGE): Define.
9337         (x86_64_elf_select_section): Set it for large data/bss sections.
9338         Only clear SECTION_WRITE for .lrodata.
9339         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
9340         data/bss sections.
9341         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
9342         * varasm.c (default_elf_asm_named_section): Grow flagchars.
9343         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
9344         SECTION_MACH_DEP.
9345         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
9346         * doc/tm.texi: Regenerate.
9347
9348 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
9349
9350         PR bootstrap/70704
9351         * configure.ac (--enable-checking): Document extra flag, for
9352         non-release builds default to --enable-checking=yes,extra.
9353         If misc checking and extra checking, define CHECKING_P to 2 instead
9354         of 1.
9355         * common.opt (fchecking=): Add.
9356         * doc/invoke.texi (-fchecking=): Document.
9357         * doc/install.texi: Document --enable-checking changes.
9358         * configure: Regenerated.
9359         * config.in: Regenerated.
9360
9361 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9362
9363         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
9364         attribute instead of which_alternative.
9365         * config/i386/sse.md (*mov<mode>_internal): Ditto.
9366         Use EXT_REX_SSE_REG_P where appropriate.
9367
9368 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9369
9370         * config/i386/predicates.md (const0_operand): Do not match
9371         const_wide_int code.
9372         (const1_operand): Ditto.
9373
9374 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9375
9376         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
9377         for SSE constm1 operands and TARGET_AVX512VL.
9378         (*movti_internal): Ditto.
9379         (*mov<mode>_or): Use constm1_operand predicate.
9380         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
9381         for SSE vector_all_ones operands and TARGET_AVX512VL.
9382         * config/i386/predicates.md (constm1_operand): New predicate.
9383         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
9384         emission of constant -1 load.
9385
9386 2016-04-25  Jason Merrill  <jason@redhat.com>
9387
9388         * gdbinit.in: Skip is-a.h.
9389
9390         * attribs.c (register_scoped_attributes): Fix logic.
9391         * attribs.h: Declare register_scoped_attributes.
9392
9393 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9394
9395         * config/rs6000/rs6000-builtin.def: Correct pasto error for
9396         stxvd2x and stxvw4x built-in functions.
9397
9398 2016-04-25  DJ Delorie  <dj@redhat.com>
9399
9400         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
9401         (ashrhi3): Likewise.
9402         (lshrhi3): Likewise.
9403
9404 2016-04-25  Richard Biener  <rguenther@suse.de>
9405
9406         PR tree-optimization/70780
9407         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
9408         wasn't visited yet.
9409         (compute_antic): Mark blocks with abnormal preds as visited as
9410         they have a final empty antic-in solution already.
9411
9412 2016-04-25  Michael Collison  <michael.collison@linaro.org>
9413
9414         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
9415
9416 2016-04-25  Michael Collison  <michael.collison@linaro.org>
9417
9418         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
9419         mode is VQI to improve mixed mode vectorization.
9420         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
9421         define_insn to match low half of signed vaddw.
9422         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
9423         define_insn to match high half of signed vaddw.
9424         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
9425         define_insn to match low half of unsigned vaddw.
9426         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
9427         define_insn to match high half of unsigned vaddw.
9428         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
9429         (arm_simd_check_vect_par_cnst_half_p): Likewise.
9430         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
9431         for new function.
9432         (arm_simd_check_vect_par_cnst_half_p): Likewise.
9433         * config/arm/predicates.md (vect_par_constant_high): Support
9434         big endian and simplify by calling
9435         arm_simd_check_vect_par_cnst_half
9436         (vect_par_constant_low): Likewise.
9437
9438 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9439
9440         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
9441         predicate for operand 2.
9442
9443 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
9444             H.J. Lu  <hongjiu.lu@intel.com>
9445
9446         * config/i386/i386-protos.h (standard_sse_constant_p): Add
9447         machine_mode argument.
9448         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
9449         constm1_rtx operands.  For VOIDmode constants, get mode from
9450         pred_mode.  Check mode size if the mode is supported by ABI.
9451         (standard_sse_constant_opcode): Do not use standard_constant_p.
9452         Strictly check ABI support for all-ones operands.
9453         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
9454         immediates. Update calls to standard_sse_constant_p.
9455         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
9456         (ix86_rtx_costs): Ditto.
9457         * config/i386/i386.md (*movxi_internal_avx512f): Use
9458         nonimmediate_or_sse_const_operand instead of vector_move_operand.
9459         Use (v,BC) alternative instead of (v,C). Use register_operand
9460         checks instead of MEM_P.
9461         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
9462         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
9463         isa attribute.  Use register_operand checks instead of MEM_P.
9464         (*movti_internal): Use nonimmediate_or_sse_const_operand for
9465         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
9466         alternative and corresponding sse2 isa attribute.
9467         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
9468         to standard_sse_constant_p.
9469         (FP constant splitters): Ditto.
9470         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
9471         (C): Ditto.
9472         * config/i386/predicates.md (constm1_operand): Remove.
9473         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
9474         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
9475         vector_all_ones_operand instead of constm1_operand.
9476
9477 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9478
9479         * print-rtl.c (print_rtx_insn_vec): New function.
9480         * print-rtl.h: New prototype.
9481         * store-motion.c (struct st_expr): Make avail_stores a vector.
9482         (st_expr_entry): Adjust.
9483         (free_st_expr_entry): Likewise.
9484         (print_store_motion_mems): Likewise.
9485         (find_moveable_store): Likewise.
9486         (compute_store_table): Likewise.
9487         (delete_store): Likewise.
9488         (build_store_vectors): Likewise.
9489
9490 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9491
9492         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
9493
9494 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9495
9496         * vec.h (vec_safe_contains): New function.
9497         (vec::contains): Likewise.
9498         (vec::begin): Likewise.
9499         (vec::end): Likewise.
9500
9501 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
9502
9503         PR sanitizer/70712
9504         * cfgexpand.c (expand_stack_vars): Fix typo.
9505
9506 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9507
9508         * system.h (list, map, set, vector): Include conditionally.
9509         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
9510         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
9511         * ipa-icf.c (INCLUDE_LIST): Define.
9512         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
9513         * config/sh/sh.c (INCLUDE_VECTOR): Define.
9514         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
9515         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
9516         * cp/logic.cc (INCLUDE_LIST): Define.
9517         * fortran/trans-common.c (INCLUDE_MAP): Define.
9518
9519 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9520
9521         * auto-profile.c: Remove <string.h> include.
9522         * ipa-icf-gimple.c: Remove <list> include.
9523         * diagnostic.c: Remove <new> include.
9524         * genmatch.c: Likewise.
9525         * pretty-print.c: Likewise.
9526         * toplev.c: Likewise
9527         * c/c-objc-common.c: Likewise.
9528         * cp/error.c: Likewise.
9529         * fortran/error.c: Likewise.
9530
9531 2016-04-22  Richard Biener  <rguenther@suse.de>
9532
9533         * lto-streamer-in.c (input_ssa_names): Do not allocate
9534         GIMPLE_NOP for all SSA names.
9535         * lto-streamer-out.c (output_ssa_names): Do not output
9536         SSA names that should have been released.
9537
9538 2016-04-22  Richard Biener  <rguenther@suse.de>
9539
9540         PR tree-optimization/70740
9541         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
9542         VDEF.
9543
9544 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
9545
9546         PR target/70750
9547         * config/i386/predicates.md (call_insn_operand): Replace
9548         sibcall_memory_operand with memory_operand.
9549
9550 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
9551
9552         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
9553         has_single_use() tests.
9554         (register_edge_assert_for_1): Likewise.
9555         (find_assert_locations_1): Check the liveness bitmap instead of
9556         checking has_single_use().
9557
9558 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
9559
9560         PR target/70728
9561         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
9562         Extract AVX-512BW constraint from AVX.
9563
9564 2016-04-21  Richard Biener  <rguenther@suse.de>
9565
9566         PR tree-optimization/70725
9567         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
9568         for phi_convertible_by_degenerating_args.
9569         (predicate_all_scalar_phis): Handle single-argument PHIs.
9570
9571 2016-04-21  Richard Biener  <rguenther@suse.de>
9572
9573         PR middle-end/70747
9574         * fold-const.c (fold_comparison): Return properly typed
9575         constant boolean.
9576
9577 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
9578
9579         PR tree-optimization/70715
9580         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
9581         after expanding BASE using expand_simple_operations.
9582
9583 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
9584
9585         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
9586         New transformations.
9587
9588 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
9589
9590         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
9591
9592 2016-04-20  Jan Hubicka  <jh@suse.cz>
9593
9594         * ipa-inline.c (can_inline_edge_p): Pass caller info to
9595         ultiimate_alias_target.
9596         (update_callee_keys): Likewise.
9597         (lookup_recursive_calls): Likewise.
9598         (speculation_useful_p): Likewise.
9599
9600 2016-04-20  Jan Hubicka  <jh@suse.cz>
9601
9602         PR ipa/70018
9603         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
9604         (set_nothrow_flag_1): ... this; handle interposition correctly;
9605         recurse on aliases and thunks.
9606         (cgraph_node::set_nothrow_flag): New.
9607         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
9608         functions compiled with non-call exceptions that binds to current
9609         def.
9610         (propagate_nothrow): Be safe WRT interposition.
9611         * cgraph.h (set_nothrow_flag): Update prototype.
9612
9613 2016-04-18  Jan Hubicka  <jh@suse.cz>
9614
9615         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9616         max_loop_iterations_int.
9617         (tree_unswitch_outer_loop): Likewise.
9618
9619 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9620
9621         PR tree-optimization/69489
9622         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
9623         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
9624         Revise dump message.
9625         (if_convertible_bb_p): Remove check on edge count of basic block's
9626         predecessors.
9627
9628 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9629
9630         PR tree-optimization/56625
9631         PR tree-optimization/69489
9632         * tree-data-ref.h (DR_INNERMOST): New macro.
9633         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
9634         hashing struct innermost_loop_behavior.
9635         (ref_DR_map): Remove.
9636         (innermost_DR_map): New map.
9637         (baseref_DR_map): Revise comment.
9638         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
9639         to innermost_DR_map accroding to its innermost loop behavior.
9640         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
9641         to its innermost loop behavior.
9642         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
9643         Add initialization for innermost_DR_map.  Record memory reference
9644         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
9645         have innermost loop behavior.
9646         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
9647         innermost_DR_map.
9648
9649 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
9650
9651         * config/i386/i386.md (*lea<mode>_general_1): Rename from
9652         *lea_general_1.  Use explicit SWI12 mode interator.
9653         (*lea<mode>_general_2): Rename from *lea_general_2.
9654         Use explicit SWI12 mode interator.
9655         (*lea<mode>_general_3): Rename from *lea_general_3.
9656         Use explicit SWI12 mode interator.
9657         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
9658         Use explicit SWI12 mode interator.
9659         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
9660         Use explicit SWI48 mode interator.
9661
9662 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9663
9664         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
9665         Short-cut unaligned load and store cases.  Handle all integer
9666         vector modes.
9667         (ix86_expand_vector_move_misalign): Short-cut unaligned load
9668         and store cases.  Call ix86_avx256_split_vector_move_misalign
9669         directly without checking mode class.
9670
9671 2016-04-20  Andrew Pinski  <apinski@cavium.com>
9672             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9673
9674         PR target/64971
9675         * config/aarch64/aarch64.md (sibcall): Force call
9676         address to be DImode for ILP32.
9677         (sibcall_value): Likewise.
9678
9679 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9680
9681         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
9682
9683 2016-04-20  Richard Biener  <rguenther@suse.de>
9684
9685         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
9686         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
9687         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
9688         (maybe_push_res_to_seq): Adjust.
9689         * gimple-fold.c (maybe_build_generic_op): Likewise.
9690
9691 2016-04-20  Marek Polacek  <polacek@redhat.com>
9692
9693         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
9694         rather than true.
9695
9696 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
9697
9698         * config/i386/sse.md (vec_unpacks_lo_hi): Always
9699         use kmovw to support AVX512F target.
9700
9701 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9702
9703         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
9704
9705 2016-04-20  Marek Polacek  <polacek@redhat.com>
9706
9707         PR tree-optimization/70725
9708         * tree-if-conv.c (is_false_predicate): New function.
9709         (predicate_mem_writes): Use it.
9710
9711 2016-04-20  Richard Biener  <rguenther@suse.de>
9712
9713         PR tree-optimization/70726
9714         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
9715         shift amounts from a pattern stmt operand.
9716
9717 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9718
9719         PR target/70674
9720         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
9721         stack_restore_from_fpr pattern when restoring r15.
9722         (s390_optimize_prologue): Strip away the memory barrier in the
9723         parallel when trying to get rid of restore insns.
9724         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
9725         definition for loading the stack pointer from an FPR.  Compared to
9726         the normal move insn this pattern includes a full memory barrier.
9727
9728 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
9729
9730         PR middle-end/70680
9731         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
9732         implicitly linear or lastprivate iterator on the outer context.
9733
9734 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9735
9736         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
9737         alignment check.
9738         * config/i386/i386.md (ssememalign): Removed.
9739         * config/i386/sse.md: Remove ssememalign attribute from patterns.
9740
9741 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9742
9743         PR target/69201
9744         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
9745         const short * to __builtin_ia32_loaddquhi512_mask.
9746         (_mm512_maskz_loadu_epi16): Likewise.
9747         (_mm512_mask_storeu_epi16): Pass short * to
9748         __builtin_ia32_storedquhi512_mask.
9749         (_mm512_mask_loadu_epi8): Pass const char * to
9750         __builtin_ia32_loaddquqi512_mask.
9751         (_mm512_maskz_loadu_epi8): Likewise.
9752         (_mm512_mask_storeu_epi8): Pass char * to
9753         __builtin_ia32_storedquqi512_mask.
9754         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
9755         const double * to __builtin_ia32_loadupd512_mask.
9756         (_mm512_mask_loadu_pd): Likewise.
9757         (_mm512_maskz_loadu_pd): Likewise.
9758         (_mm512_storeu_pd): Pass double * to
9759         __builtin_ia32_storeupd512_mask.
9760         (_mm512_mask_storeu_pd): Likewise.
9761         (_mm512_loadu_ps): Pass const float * to
9762         __builtin_ia32_loadups512_mask.
9763         (_mm512_mask_loadu_ps): Likewise.
9764         (_mm512_maskz_loadu_ps): Likewise.
9765         (_mm512_storeu_ps): Pass float * to
9766         __builtin_ia32_storeups512_mask.
9767         (_mm512_mask_storeu_ps): Likewise.
9768         (_mm512_mask_loadu_epi64): Pass const long long * to
9769         __builtin_ia32_loaddqudi512_mask.
9770         (_mm512_maskz_loadu_epi64): Likewise.
9771         (_mm512_mask_storeu_epi64): Pass long long *
9772         to __builtin_ia32_storedqudi512_mask.
9773         (_mm512_loadu_si512): Pass const int * to
9774         __builtin_ia32_loaddqusi512_mask.
9775         (_mm512_mask_loadu_epi32): Likewise.
9776         (_mm512_maskz_loadu_epi32): Likewise.
9777         (_mm512_storeu_si512): Pass int * to
9778         __builtin_ia32_storedqusi512_mask.
9779         (_mm512_mask_storeu_epi32): Likewise.
9780         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
9781         char * to __builtin_ia32_storedquqi256_mask.
9782         (_mm_mask_storeu_epi8): Likewise.
9783         (_mm256_mask_loadu_epi16): Pass const short * to
9784         __builtin_ia32_loaddquhi256_mask.
9785         (_mm256_maskz_loadu_epi16): Likewise.
9786         (_mm_mask_loadu_epi16): Pass const short * to
9787         __builtin_ia32_loaddquhi128_mask.
9788         (_mm_maskz_loadu_epi16): Likewise.
9789         (_mm256_mask_loadu_epi8): Pass const char * to
9790         __builtin_ia32_loaddquqi256_mask.
9791         (_mm256_maskz_loadu_epi8): Likewise.
9792         (_mm_mask_loadu_epi8): Pass const char * to
9793         __builtin_ia32_loaddquqi128_mask.
9794         (_mm_maskz_loadu_epi8): Likewise.
9795         (_mm256_mask_storeu_epi16): Pass short * to.
9796         __builtin_ia32_storedquhi256_mask.
9797         (_mm_mask_storeu_epi16): Pass short * to.
9798         __builtin_ia32_storedquhi128_mask.
9799         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
9800         const double * to __builtin_ia32_loadupd256_mask.
9801         (_mm256_maskz_loadu_pd): Likewise.
9802         (_mm_mask_loadu_pd): Pass onst double * to
9803         __builtin_ia32_loadupd128_mask.
9804         (_mm_maskz_loadu_pd): Likewise.
9805         (_mm256_mask_storeu_pd): Pass double * to
9806         __builtin_ia32_storeupd256_mask.
9807         (_mm_mask_storeu_pd): Pass double * to
9808         __builtin_ia32_storeupd128_mask.
9809         (_mm256_mask_loadu_ps): Pass const float * to
9810         __builtin_ia32_loadups256_mask.
9811         (_mm256_maskz_loadu_ps): Likewise.
9812         (_mm_mask_loadu_ps): Pass const float * to
9813         __builtin_ia32_loadups128_mask.
9814         (_mm_maskz_loadu_ps): Likewise.
9815         (_mm256_mask_storeu_ps): Pass float * to
9816         __builtin_ia32_storeups256_mask.
9817         (_mm_mask_storeu_ps): ass float * to
9818         __builtin_ia32_storeups128_mask.
9819         (_mm256_mask_loadu_epi64): Pass const long long * to
9820         __builtin_ia32_loaddqudi256_mask.
9821         (_mm256_maskz_loadu_epi64): Likewise.
9822         (_mm_mask_loadu_epi64): Pass const long long * to
9823         __builtin_ia32_loaddqudi128_mask.
9824         (_mm_maskz_loadu_epi64): Likewise.
9825         (_mm256_mask_storeu_epi64): Pass long long * to
9826         __builtin_ia32_storedqudi256_mask.
9827         (_mm_mask_storeu_epi64): Pass long long * to
9828         __builtin_ia32_storedqudi128_mask.
9829         (_mm256_mask_loadu_epi32): Pass const int * to
9830         __builtin_ia32_loaddqusi256_mask.
9831         (_mm256_maskz_loadu_epi32): Likewise.
9832         (_mm_mask_loadu_epi32): Pass const int * to
9833         __builtin_ia32_loaddqusi128_mask.
9834         (_mm_maskz_loadu_epi32): Likewise.
9835         (_mm256_mask_storeu_epi32): Pass int * to
9836         __builtin_ia32_storedqusi256_mask.
9837         (_mm_mask_storeu_epi32): Pass int * to
9838         __builtin_ia32_storedqusi128_mask.
9839         * config/i386/i386-builtin-types.def (PCSHORT): New.
9840         (PINT64): Likewise.
9841         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
9842         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
9843         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
9844         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
9845         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
9846         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
9847         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
9848         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
9849         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
9850         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
9851         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
9852         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
9853         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
9854         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
9855         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
9856         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
9857         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
9858         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
9859         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
9860         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
9861         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
9862         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
9863         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
9864         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
9865         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
9866         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
9867         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
9868         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
9869         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
9870         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
9871         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
9872         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
9873         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
9874         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
9875         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
9876         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
9877         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
9878         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
9879         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
9880         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
9881         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
9882         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
9883         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
9884         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
9885         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
9886         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
9887         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
9888         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
9889         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
9890         use UNSPEC_STOREU.
9891         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
9892         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
9893         load nor store.
9894         (ix86_expand_vector_move_misalign): Likewise.
9895         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
9896         to scalar function prototype for unaligned load/store builtins.
9897         (ix86_expand_special_args_builtin): Updated.
9898         * config/i386/sse.md (UNSPEC_LOADU): Removed.
9899         (UNSPEC_STOREU): Likewise.
9900         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
9901         (VI_ULOADSTORE_F_AVX512VL): Likewise.
9902         (ssescalarsize): Handle V4TI, V2TI and V1TI.
9903         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
9904         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
9905         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
9906         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
9907         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
9908         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
9909         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
9910         (<avx512>_storedqu<mode>_mask): Likewise.
9911         (*sse4_2_pcmpestr_unaligned): Likewise.
9912         (*sse4_2_pcmpistr_unaligned): Likewise.
9913         (*mov<mode>_internal): Renamed to ...
9914         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
9915         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
9916         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
9917         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
9918
9919 2016-04-19  Richard Biener  <rguenther@suse.de>
9920
9921         PR tree-optimization/70171
9922         * tree-ssa-phiprop.c: Include stor-layout.h.
9923         (phiprop_insert_phi): Handle the aggregate copy case.
9924         (propagate_with_phi): Likewise.
9925
9926 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
9927
9928         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
9929         instead of simplify_gen_subreg (... , 0).
9930         (ix86_delegitimize_address): Ditto.
9931         (ix86_split_divmod): Ditto.
9932         (ix86_split_copysign_const): Ditto.
9933         (ix86_split_copysign_var): Ditto.
9934         (ix86_expand_args_builtin): Ditto.
9935         (ix86_expand_round_builtin): Ditto.
9936         (ix86_expand_special_args_builtin): Ditto.
9937         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
9938         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
9939         (udivmodqi4): Ditto.
9940         (absneg splitters): Ditto.
9941         (*jcc_bt<mode>_1): Ditto.
9942
9943 2016-04-19  Richard Biener  <rguenther@suse.de>
9944
9945         PR tree-optimization/70724
9946         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
9947         restoring out from ...
9948         (free_scc_vn): ... here.
9949         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
9950         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
9951         tail merging.
9952         (pass_fre::execute): Restore SSA info.
9953
9954 2016-04-19  Richard Biener  <rguenther@suse.de>
9955
9956         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
9957         * gimple-walk.c (walk_gimple_op): Initialize it.
9958         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
9959         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
9960         remapping SSA names of defs.
9961         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
9962         adjustment.
9963
9964 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
9965
9966         PR middle-end/70689
9967         * lra-constraints.c (equiv_substition_p): New.
9968         (process_alt_operands): Use it.
9969         (swap_operands): Swap it.
9970         (curr_insn_transform): Update it.
9971
9972 2016-04-18  Michael Matz  <matz@suse.de>
9973
9974         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
9975         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
9976         * tree-core.h (tree_type_common.align): Use bit-field.
9977         (tree_type_common.spare): New.
9978         (tree_decl_common.off_align): Make smaller.
9979         (tree_decl_common.align): Use bit-field.
9980
9981         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
9982         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
9983         (scan_sharing_clauses): Ditto.
9984         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
9985         (omp_finish_file): Ditto.
9986         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
9987         (layout_decl): Ditto.
9988         (relayout_decl): Ditto.
9989         (finalize_record_size): Use SET_TYPE_ALIGN.
9990         (finalize_type_size): Ditto.
9991         (finish_builtin_struct): Ditto.
9992         (layout_type): Ditto.
9993         (initialize_sizetypes): Ditto.
9994         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
9995         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
9996         (lookup_field_for_decl): Use SET_DECL_ALIGN.
9997         (get_chain_field): Ditto.
9998         (get_trampoline_type): Ditto.
9999         (get_nl_goto_field): Ditto.
10000         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
10001         SET_DECL_ALIGN.
10002         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
10003         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
10004         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
10005         (build_qualified_type): Use SET_TYPE_ALIGN.
10006         (build_aligned_type, build_range_type_1): Ditto.
10007         (build_atomic_base): Ditto.
10008         (build_common_tree_nodes): Ditto.
10009         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
10010         (expand_one_stack_var_at): Ditto.
10011         * coverage.c (build_var): Use SET_DECL_ALIGN.
10012         * except.c (init_eh): Ditto.
10013         * function.c (assign_parm_setup_block): Ditto.
10014         * symtab.c (increase_alignment_1): Ditto.
10015         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
10016         * tree-vect-stmts.c (ensure_base_align): Ditto.
10017         * varasm.c (align_variable): Ditto.
10018         (assemble_variable): Ditto.
10019         (build_constant_desc): Ditto.
10020         (output_constant_def_contents): Ditto.
10021
10022         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
10023         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
10024         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
10025         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
10026         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
10027
10028 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
10029
10030         PR target/70708
10031         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
10032         replace %vmovsd with "%vmovq".
10033         (vec_concatv2df): Likewise.
10034
10035 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
10036
10037         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
10038         (*vec_extractv2si_0): Ditto.
10039         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
10040         (zero_extended_scalar_load_operand splitters): Ditto.
10041         (vec_extract splitters): Ditto.
10042         (*vec_extractv4si_0_zext): Ditto.
10043         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
10044         and lowpart_subreg.
10045         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
10046         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
10047         (*sse4_1_extractps): Use lowpart_subreg.
10048         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
10049
10050 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10051
10052         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
10053         gld requirements.
10054         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
10055         Mention Solaris 11 packaging changes.
10056         Update gas and gld requirements.
10057         Remove reference to pre-Solaris 10 bug.
10058         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
10059         systems and bugs.
10060         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
10061         with cc.
10062
10063 2016-04-17  Jan Hubicka  <jh@suse.cz>
10064
10065         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
10066         max_loop_iterations_int.
10067
10068 2016-04-18  Richard Biener  <rguenther@suse.de>
10069
10070         PR tree-optimization/43434
10071         * tree-ssa-structalias.c (struct vls_data): New.
10072         (visit_loadstore): Handle all pointer-based accesses.
10073         (compute_dependence_clique): Compute a bitmap of restrict tags
10074         assigned bases and pass it to visit_loadstore.
10075
10076 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
10077
10078         PR target/70711
10079         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
10080         armv8.1-a and armv8.1-a+crc.
10081
10082 2016-04-18  Richard Biener  <rguenther@suse.de>
10083
10084         PR tree-optimization/70701
10085         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
10086         references after translating through a memcpy.
10087
10088 2016-04-18  Richard Biener  <rguenther@suse.de>
10089
10090         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
10091         (compute_antic): ... here.  For partial antic use regular
10092         postorder and scrap iteration.
10093         (compute_partial_antic_aux): Remove unused return value.
10094         (init_pre): Do not allocate postorder.
10095         (fini_pre): Do not free postorder.
10096
10097 2016-04-18  Richard Biener  <rguenther@suse.de>
10098
10099         PR middle-end/37870
10100         * expmed.c (extract_bit_field_1): Remove broken case
10101         using a wider MODE_INT mode.
10102
10103 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
10104
10105         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
10106         unless compiling with at least GCC-4.8.
10107
10108 2016-04-17  Jan Hubicka  <jh@suse.cz>
10109
10110         PR bootstrap/70706
10111         * graphite.c (graphite_finalize): Update call to
10112         tree_estimate_probability.
10113         * predict.h (tree_estimate_probability): Update prototype.
10114
10115 2016-04-17  Jan Hubicka  <jh@suse.cz>
10116
10117         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
10118         (tree_estimate_probability): Likewise.
10119         (pass_profile::execute): Update.
10120         (report_predictor_hitrates): New function.
10121         * profile.c (compute_branch_probabilities): Use it.
10122         * predict.h (report_predictor_hitrates): Declare.
10123
10124 2016-04-17  Jan Hubicka  <jh@suse.cz>
10125
10126         PR ipa/70018
10127         * cgraph.h (cgraph_node::set_const_flag,
10128         cgraph_node::set_pure_flag): Update prototype to return bool;
10129         update comment.
10130         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
10131         of interposable symbol are interposable, too.
10132         (cgraph_set_const_flag_1): Rename to ...
10133         (set_const_flag_1): ... this one; change to self recursive function
10134         instead of call_for_symbol_thunks_and_aliases. Handle correctly
10135         clearnig the flag in all variants and also virtual thunks of const
10136         functions are pure; track if any change was done.
10137         (cgraph_node::set_const_flag): Update.
10138         (struct set_pure_flag_info): New struct.
10139         (cgraph_set_pure_flag_1): Rename to ...
10140         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
10141         rather than pointer encoded flags; track if any changes was done;
10142         handle correctly clearning flag and setting flag of aliases already
10143         declared const.
10144         (cgraph_node::set_pure_flag): Update.
10145         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
10146
10147 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10148
10149         PR other/70433
10150         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
10151         backslash in label.
10152
10153 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10154
10155         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
10156         '{}<> ' as escape-for-record.
10157
10158 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10159
10160         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
10161         structure.
10162
10163 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10164
10165         PR other/70185
10166         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
10167         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
10168         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
10169         * passes.c (finish_optimization_passes): Only call
10170         finish_graph_dump_file if dfi->graph_dump_initialized.
10171         (execute_function_dump, pass_init_dump_file): Use
10172         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
10173
10174 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10175
10176         PR tree-optimization/70256
10177         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
10178         (debug_varmap): New function.
10179
10180 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10181
10182         PR other/70183
10183         * passes.c (pass_manager::register_pass): Propagate pflags.
10184
10185 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10186
10187         PR other/68875
10188         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
10189         * passes.c (pass_manager::pass_manager): Declare and init p_start in
10190         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
10191         check if it's equal to p_start.
10192         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
10193
10194 2016-04-15  Jan Hubicka  <jh@suse.cz>
10195
10196         PR ipa/70018
10197         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
10198         function does not bind to current def.
10199         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
10200         handle conservatively calls to functions that does not need to bind
10201         to current def.
10202         (check_call): Update call of worse_state.
10203         (ignore_edge_for_nothrow): Update.
10204         (ignore_edge_for_pure_const): Likewise.
10205         (propagate_pure_const): Update calls to worse_state.
10206         (skip_function_for_local_pure_const): Reformat comments.
10207
10208 2016-04-15  Jan Hubicka  <jh@suse.cz>
10209
10210         PR ipa/70018
10211         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
10212         (cgraph_node::function_symbol): Likewise.
10213         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
10214         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
10215         (symtab_node::ultimate_alias_target): Add REF parameter.
10216         (symtab_node::binds_to_current_def_p): Declare.
10217         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
10218         (cgraph_node::function_symbol): Likewise.
10219         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
10220         (cgraph_node::get_availability): Likewise.
10221         (cgraph_edge::binds_to_current_def_p): New inline function.
10222         (varpool_node::get_availability): Add REF parameter.
10223         (varpool_node::ultimate_alias_target): Likewise.
10224         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
10225         (symtab_node::binds_to_current_def_p): Likewise.
10226         * varpool.c (varpool_node::get_availability): Likewise.
10227
10228 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
10229
10230         PR target/70662
10231         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
10232         Fix mode size check.
10233
10234 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
10235
10236         * BASE-VER: Set to 7.0.0.
10237
10238 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
10239
10240         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
10241
10242 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10243
10244         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
10245         architecture revisions.
10246
10247 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
10248
10249         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
10250         * config/i386/i386.c (ix86_using_red_zone): No longer static.
10251         * config/i386/i386.md (stack decrement to push peepholes): Guard
10252         with !x86_using_red_zone ().
10253
10254 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
10255
10256         PR c++/70675
10257         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
10258         to dump_generic_node.
10259         (NIY): Pass also flags to do_niy.
10260
10261 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
10262
10263         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
10264         (simd_clone_vector_of_formal_parm_types)
10265         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
10266         (simd_clone_mangle, simd_clone_create)
10267         (simd_clone_adjust_return_type, create_tmp_simd_array)
10268         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
10269         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
10270         (ipa_simd_modify_function_body, simd_clone_linear_addend)
10271         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
10272         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
10273         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
10274         * omp-simd-clone.c: ... this new file.
10275         (simd_clone_vector_of_formal_parm_types): Make it static.
10276         * Makefile.in (OBJS): Add omp-simd-clone.o.
10277
10278 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
10279
10280         PR target/70662
10281         * config/i386/sse.md: Use proper memory operand modifiers.
10282
10283
10284 2016-04-15  Richard Biener  <rguenther@suse.de>
10285         Alan Modra  <amodra@gmail.com>
10286
10287         PR tree-optimization/70130
10288         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
10289         when alignment stays not the same and no not use the realign
10290         scheme then.
10291
10292 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10293
10294         PR target/70669
10295         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
10296         direct move handlers for KFmode. Change TFmode handlers test from
10297         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
10298
10299 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
10300
10301         PR c++/70594
10302         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
10303         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
10304         (inlined_polymorphic_ctor_dtor_block_p): Use it.
10305         * tree-ssa-live.c (remove_unused_scope_block_p): When
10306         in_ctor_dtor_block, avoid discarding not just BLOCKs with
10307         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
10308         block_ultimate_origin is FUNCTION_DECL.
10309         (remove_unused_locals): If current_function_decl is
10310         polymorphic_ctor_dtor_p, pass initial true to
10311         remove_unused_scope_block_p' is_ctor_dtor_block.
10312
10313 2016-04-14  Martin Sebor  <msebor@redhat.com>
10314
10315         PR c++/69517
10316         PR c++/70019
10317         PR c++/70588
10318         * doc/extend.texi (Variable Length): Revert.
10319
10320 2016-04-14  Marek Polacek  <polacek@redhat.com>
10321             Jan Hubicka  <hubicka@ucw.cz>
10322
10323         PR c++/70029
10324         * tree.c (verify_type): Disable the canonical type of main variant
10325         check.
10326
10327 2016-04-14  Jason Merrill  <jason@redhat.com>
10328
10329         * cfgexpand.c, expr.c: Revert previous change.
10330
10331 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
10332
10333         PR middle-end/70643
10334         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
10335         when building a mem ref for the incoming reduction variable.
10336
10337 2016-04-14  Richard Biener  <rguenther@suse.de>
10338
10339         PR tree-optimization/70614
10340         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
10341         loop if the evolution dropped to chrec_dont_know.
10342         (interpret_condition_phi): Likewise.
10343
10344 2016-04-14  Richard Biener  <rguenther@suse.de>
10345
10346         PR tree-optimization/70623
10347         * tree-ssa-pre.c (changed_blocks): Make global ...
10348         (compute_antic): ... local here.  Move and fix worklist
10349         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
10350         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
10351         worklist handling, dump when ANTIC_IN changed.
10352         (compute_partial_antic_aux): Remove worklist handling.
10353         (init_pre): Do not compute post dominators.  Add a comment about
10354         the CFG order chosen.
10355         (fini_pre): Do not free post dominators.
10356
10357 2016-04-13  Martin Sebor  <msebor@redhat.com>
10358
10359         PR c++/69517
10360         PR c++/70019
10361         PR c++/70588
10362         * doc/extend.texi (Variable Length): Document C++ specifics.
10363
10364 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
10365
10366         PR c++/70641
10367         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
10368         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
10369         eh edges have been purged.
10370
10371         PR c++/70594
10372         * tree-sra.c (create_access_replacement,
10373         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
10374         gets fancy name.
10375         * tree-pretty-print.c (dump_fancy_name): New function.
10376         (dump_decl_name, dump_generic_node): Use it.
10377
10378 2016-04-13  Jason Merrill  <jason@redhat.com>
10379
10380         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
10381         * expr.c (expand_expr_real_1): Likewise.
10382
10383 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10384
10385         * config/i386/i386.md (kunpckhi): Swap operands.
10386         (kunpcksi): Likewise.
10387         (kunpckdi): Likewise.
10388         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
10389         (vec_pack_trunc_<mode>): Likewise.
10390
10391 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
10392
10393         PR debug/70628
10394         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
10395
10396         PR middle-end/70633
10397         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
10398         gimplification turns some element into non-constant.
10399
10400         PR debug/70628
10401         * rtl.h (convert_memory_address_addr_space_1): New prototype.
10402         * explow.c (convert_memory_address_addr_space_1): No longer static,
10403         add NO_EMIT argument and don't call convert_modes if true, pass
10404         it down recursively, remove break after return.
10405         (convert_memory_address_addr_space): Adjust caller.
10406         * simplify-rtx.c (simplify_unary_operation_1): Call
10407         convert_memory_address_addr_space_1 instead of convert_memory_address,
10408         if it returns NULL, don't simplify.
10409
10410 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10411
10412         PR target/70630
10413         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
10414
10415 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10416
10417         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10418         Bump the upper SIMDLEN limits, so that if the return type or
10419         characteristic type if the return type is void can be passed in
10420         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
10421         allowed.
10422
10423 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
10424
10425         PR target/70640
10426         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
10427         Do not use "=" constraint on an input constraint.
10428         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
10429         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
10430         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
10431         generates (neg (abs ...)) instead of (abs ...).
10432
10433 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10434
10435         PR rtl-optimization/70596
10436         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
10437         just invalidate LRA data and reset them.  Adjust dump wording.
10438
10439 2016-04-12  Martin Liska  <mliska@suse.cz>
10440
10441         Revert
10442         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10443
10444         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
10445         estimates here.
10446         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
10447         max_loop_iterations_int.
10448         (tree_unswitch_outer_loop): Likewise.
10449         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
10450         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
10451
10452 2016-04-12  Tom de Vries  <tom@codesourcery.com>
10453
10454         PR tree-optimization/68756
10455         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
10456         instead of new_name.
10457
10458 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10459
10460         PR tree-optimization/70602
10461         * tree-sra.c (generate_subtree_copies): Don't write anything into
10462         constant pool decls.
10463
10464         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
10465         regardless whether there are depend clauses or not.
10466
10467 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10468
10469         PR target/70381
10470         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
10471         target attribute and pragma from changing the -mfloat128
10472         and -mfloat128-hardware options.
10473
10474         * doc/extend.texi (Additional Floating Types): Document PowerPC
10475         __float128 restrictions.
10476
10477 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10478
10479         PR target/70133
10480         * config/aarch64/driver-aarch64.c
10481         (aarch64_get_extension_string_for_isa_flags): New.
10482         (arch_extension): Rename to...
10483         (aarch64_arch_extension): ...This.
10484         (ext_to_feat_string): Rename to...
10485         (aarch64_extensions): ...This.
10486         (aarch64_core_data): Keep track of architecture extension flags.
10487         (cpu_data): Rename to...
10488         (aarch64_cpu_data): ...This.
10489         (aarch64_arch_driver_info): Keep track of architecture extension
10490         flags.
10491         (get_arch_name_from_id): Rename to...
10492         (get_arch_from_id): ...This, change return type.
10493         (host_detect_local_cpu): Update and reformat for renames, handle
10494         extensions through common infrastructure.
10495
10496 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10497
10498         PR target/70133
10499         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
10500         track of a canonical flag name.
10501         (all_extensions): Likewise.
10502         (arch_to_arch_name): Also track extension flags enabled by the arch.
10503         (all_architectures): Likewise.
10504         (aarch64_parse_extension): Move to here.
10505         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
10506         rework.
10507         (aarch64_rewrite_selected_cpu): Update for above change.
10508         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
10509         are handled, such that the single explicit value enabled by an
10510         extension is kept seperate from the implicit values it also enables.
10511         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
10512         to here.
10513         (aarch64_parse_extension): New.
10514         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
10515         here to config/aarch64/aarch64-protos.h.
10516         (aarch64_parse_extension): Move from here to
10517         common/config/aarch64/aarch64-common.c.
10518         (aarch64_option_print): Update.
10519         (aarch64_declare_function_name): Likewise.
10520         (aarch64_start_file): Likewise.
10521         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
10522         the canonical flag for extensions.
10523         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
10524         flags.
10525
10526 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10527
10528         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
10529         AARCH64_FL_CRC.
10530
10531 2016-04-09  Tom de Vries  <tom@codesourcery.com>
10532
10533         PR tree-optimization/68953
10534         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
10535         first to last subscript.
10536
10537 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
10538
10539         PR tree-optimization/70586
10540         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
10541         for any calls.
10542
10543 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
10544
10545         PR lto/70289
10546         PR ipa/70348
10547         PR tree-optimization/70373
10548         PR middle-end/70533
10549         PR middle-end/70534
10550         PR middle-end/70535
10551         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
10552         clauses for acc parallel reductions as necessary.  Error on those
10553         that are private.
10554         * omp-low.c (scan_sharing_clauses): Don't install variables which
10555         are used in acc parallel reductions.
10556         (lower_rec_input_clauses): Remove dead code.
10557         (lower_oacc_reductions): Add support for reference reductions.
10558         (lower_reduction_clauses): Remove dead code.
10559         (lower_omp_target): Don't remap variables appearing in acc parallel
10560         reductions.
10561         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
10562
10563 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
10564
10565         PR middle-end/70593
10566         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
10567         with multiple SSA_NAME defs, force the outputs other than first
10568         to be live before calling live_track_process_def on each output.
10569
10570         PR rtl-optimization/70574
10571         * fwprop.c (forward_propagate_and_simplify): Don't add
10572         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
10573         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
10574         paradoxical subregs within *loc.
10575
10576 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
10577
10578         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
10579         -ftree-parallelize-loops={0,1}.
10580         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
10581         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
10582         * config/ia64/hpux.h (LIB_SPEC): Likewise.
10583         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
10584         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
10585
10586 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
10587
10588         PR sanitizer/70541
10589         * asan.c (instrument_derefs): If we get unknown location, extract it
10590         with EXPR_LOCATION.
10591         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
10592
10593 2016-04-08  Tom de Vries  <tom@codesourcery.com>
10594
10595         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
10596         implicit firstprivate clause.
10597
10598 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10599
10600         PR target/70566
10601         * config/arm/thumb2.md (tst + branch-> lsls + branch
10602         peephole below *orsi_not_shiftsi_si): Require that condition
10603         register is dead after the peephole.
10604         (second peephole after the above): Likewise.
10605
10606 2016-04-08  Alan Modra  <amodra@gmail.com>
10607
10608         PR target/70117
10609         * builtins.c (fold_builtin_classify): For IBM extended precision,
10610         look at just the high-order double to test for NaN.
10611         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
10612         test just the high double for Inf but both doubles for subnormal
10613         limit.
10614
10615 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
10616
10617         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
10618         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
10619         node->simdclone->mask_mode != VOIDmode masks.
10620         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
10621         earlier, use it instead of node->simdclone.
10622         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10623         Set clonei->mask_mode.
10624
10625 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
10626
10627         PR c/70436
10628         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
10629         Pass it through to cp_parser_already_scoped_statement.
10630         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
10631         it through to cp_parser_statement.
10632         (cp_parser_statement): Pass IF_P through to
10633         cp_parser_iteration_statement.
10634         (cp_parser_pragma): Adjust call to
10635         cp_parser_iteration_statement.
10636
10637 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
10638
10639         PR c/70436
10640         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
10641         resolve a future -Wparentheses warning.
10642         * omp-low.c (scan_sharing_clauses): Likewise.
10643         * tree-parloops.c (eliminate_local_variables): Likewise.
10644
10645 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
10646
10647         PR rtl-optimization/70398
10648         * lra-constraints.c (process_address_1): Check zero scale and code
10649         for reloading with zero scale.
10650
10651 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
10652
10653         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
10654         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
10655
10656 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
10657
10658         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10659         Add support for AVX512F clones, include them by default for
10660         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
10661         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
10662         up to 128.
10663
10664         PR middle-end/70550
10665         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
10666         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
10667         firstprivate clauses.
10668         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
10669         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
10670         (lower_omp_target): Set TREE_NO_WARNING for
10671         non-addressable possibly uninitialized vars which are copied into
10672         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
10673
10674 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
10675
10676         * config/pa/predicates.md (integer_store_memory_operand): Accept
10677         REG+D operands with a large offset when reload_in_progress is true.
10678         (floating_point_store_memory_operand): Likewise.
10679
10680 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10681
10682         PR c++/70336
10683         * match.pd (nested int casts): Limit to GIMPLE.
10684
10685 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
10686
10687         PR ipa/66223
10688         * ipa-devirt.c (maybe_record_node): Fix comment; use
10689         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
10690
10691 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10692
10693         PR rtl-optimization/70542
10694         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
10695         if there are any uses other than insn or debug insns.
10696
10697 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
10698             Jakub Jelinek  <jakub@redhat.com>
10699
10700         PR tree-optimization/70509
10701         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
10702         Shift HOST_WIDE_INT_1U instead of 1.
10703
10704 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
10705
10706         PR tree-optimization/70509
10707         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
10708         of the vector base type for index.
10709
10710 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
10711
10712         PR target/70510
10713         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
10714
10715 2016-04-05  Richard Biener  <rguenther@suse.de>
10716
10717         PR tree-optimization/70526
10718         * tree-sra.c (build_ref_for_offset): Use prev_base to
10719         extract the alias pointer type.
10720
10721 2016-04-05  Richard Biener  <rguenther@suse.de>
10722
10723         * dse.c (struct store_info): Remove alias_set member.
10724         (struct read_info_type): Likewise.
10725         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
10726         spill_deleted, clear_alias_set_lookup): Remove.
10727         (get_group_info): Remove dead base == NULL_RTX case.
10728         (dse_step0): Remove initialization of removed variables.
10729         (delete_dead_store_insn): Reomve alias set dumping.
10730         (free_read_records): Remove alias_set handling.
10731         (canon_address): Remove alias_set_out parameter.
10732         (record_store): Remove spill_alias_set, it's always zero.
10733         (check_mem_read_rtx): Likewise.
10734         (dse_step2): Rename from ...
10735         (dse_step2_nospill): ... this.  Adjust.
10736         (scan_stores): Rename from ...
10737         (scan_stores_nospill): ... this.
10738         (scan_reads): Rename from ...
10739         (scan_reads_nospill): ... this.
10740         (scan_stores_spill, scan_reads_spill): Remove.
10741         (dse_step3_scan): Remove for_spills argument which is always false.
10742         (dse_step3): Likewise.
10743         (dse_step5): Rename from ...
10744         (dse_step5_nospill): ... this.  Remove alias_set handling.
10745         (rest_of_handle_dse): Adjust.
10746
10747 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10748
10749         PR target/70525
10750         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
10751         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
10752         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
10753         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
10754
10755 2016-04-05  Richard Biener  <rguenther@suse.de>
10756
10757         PR middle-end/70499
10758         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
10759         non-register type temporaries into SSA.
10760
10761 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
10762
10763         PR ipa/66223
10764         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
10765         calls when sanitizing.
10766         (possible_polymorphic_call_target_p): Fix formatting.
10767
10768 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10769             Jakub Jelinek <jakub@redhat.com>
10770
10771         PR middle-end/70457
10772         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
10773         to ensure a call statement is compatible with a built-in's
10774         prototype.
10775         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
10776         Likewise.
10777
10778 2016-04-04  Richard Biener  <rguenther@suse.de>
10779
10780         PR rtl-optimization/70484
10781         * rtl.h (canon_output_dependence): Declare.
10782         * alias.c (canon_output_dependence): New function.
10783         * dse.c (record_store): Use canon_output_dependence rather
10784         than canon_true_dependence.
10785
10786 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10787
10788         PR ipa/68881
10789         * cgraph.h (symtab_node::copy_visibility_from): New function.
10790         * symtab.c (symtab_node::copy_visibility_from): New function.
10791         * ipa-visibility.c (optimize_weakref): New function.
10792         (function_and_variable_visibility): Use it.
10793
10794 2016-04-04  Martin Liska  <mliska@suse.cz>
10795
10796         PR hsa/70402
10797         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
10798         value that is really in range handled by SBR instruction.
10799         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
10800         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
10801         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
10802
10803 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
10804
10805         PR target/70416
10806         PR target/67391
10807         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
10808         set, but not for SP_REG operands.
10809
10810 2016-04-02  Martin Sebor  <msebor@redhat.com>
10811
10812         PR c++/67376
10813         * fold-const.c (maybe_nonzero_address): New function.
10814         (fold_comparison): Call it.  Fold equality and relational
10815         expressions involving null pointers.
10816         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
10817
10818 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
10819
10820         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
10821         the "Y" constraint (scalar FP 0.0 immediate).
10822
10823         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
10824         Add the "const_double" to the list of operand constraints.
10825
10826 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
10827
10828         PR rtl-optimization/70467
10829         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
10830         If low word of the last operand is 0, just emit addition/subtraction
10831         for the high word.
10832
10833 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10834
10835         PR target/70404
10836         * config/s390/s390.c (s390_expand_insv): Check for everything
10837         constant instead of just VOIDmode stuff.
10838
10839 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10840
10841         PR target/70496
10842         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
10843
10844 2016-04-01  Nathan Sidwell  <nathan@acm.org>
10845
10846         * tree.def (TRY_CATCH_EXPR): Correct documentation.
10847
10848 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
10849
10850         PR rtl-optimization/70461
10851         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
10852         is necessary.
10853
10854 2016-03-31  Martin Liska  <mliska@suse.cz>
10855
10856         PR hsa/70399
10857         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
10858         a tree value or an immediate integer value to a buffer
10859         that is eventually copied to a BRIG section.
10860         (emit_immediate_operand): Call the function here.
10861         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
10862         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
10863         of class' fields that are removed.
10864         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
10865         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
10866         m_brig_repr_size fields.
10867
10868 2016-03-31  Martin Liska  <mliska@suse.cz>
10869
10870         PR hsa/70391
10871         * hsa-gen.c (hsa_function_representation::update_dominance): New
10872         function.
10873         (convert_addr_to_flat_segment): Likewise.
10874         (gen_hsa_memory_set): New alignment argument.
10875         (gen_hsa_ctor_assignment): Likewise.
10876         (gen_hsa_insns_for_single_assignment): Provide alignment
10877         to gen_hsa_ctor_assignment.
10878         (gen_hsa_insns_for_direct_call): Add new argument.
10879         (expand_lhs_of_string_op): New function.
10880         (expand_string_operation_builtin): Likewise.
10881         (expand_memory_copy): New function.
10882         (expand_memory_set): New function.
10883         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
10884         (convert_switch_statements): Change signature.
10885         (generate_hsa): Use a return value of the function.
10886         (pass_gen_hsail::execute): Do not call
10887         convert_switch_statements here.
10888         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
10889         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
10890         (hsa_function_representation::update_dominance): New function.
10891
10892 2016-03-31  Martin Liska  <mliska@suse.cz>
10893
10894         PR hsa/70391
10895         * hsa-brig.c (emit_directive_variable): Emit alignment
10896         according to hsa_symbol::m_align.
10897         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
10898         (dump_hsa_symbol): Dump alignment of HSA symbols.
10899         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
10900         (gen_hsa_addr_with_align): New function.
10901         (hsa_bitmemref_alignment): Use newly added function.
10902         (gen_hsa_insns_for_load): Likewise.
10903         (gen_hsa_insns_for_store): Likewise.
10904         (gen_hsa_memory_copy): New argument added.
10905         (gen_hsa_insns_for_single_assignment): Respect
10906         alignment for assignments processed via gen_hsa_memory_copy.
10907         (gen_hsa_insns_for_direct_call): Likewise.
10908         (gen_hsa_insns_for_return): Likewise.
10909         (gen_function_def_parameters): Set default alignment.
10910         * hsa.c (hsa_object_alignment): New function.
10911         (hsa_byte_alignment): Pasted function.
10912         * hsa.h (hsa_symbol::m_align): New field.
10913
10914 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
10915
10916         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
10917         scratch field for goto case.
10918
10919 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
10920
10921         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
10922
10923 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
10924
10925         PR target/70442
10926         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
10927         (scalar_chain::convert_insn): Call convert_op for reg
10928         moves to handle undefined registers.
10929
10930 2016-03-31  Nathan Sidwell  <nathan@acm.org>
10931
10932         PR c++/70393
10933         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
10934         Assert we don't want to move backwards.
10935
10936 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
10937
10938         PR target/70453
10939         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
10940
10941 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
10942
10943         PR rtl-optimization/70460
10944         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
10945         with operand from REG_LABEL_OPERAND, instead substitute
10946         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
10947         Don't do anything for REG_NON_LOCAL_GOTO jumps.
10948
10949 2016-03-31  Martin Liska  <mliska@suse.cz>
10950
10951         * passes.c (execute_one_pass): Do not call
10952         todo_after for a discarded function.
10953
10954 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
10955
10956         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
10957         (no_cost, infinite_cost): Initialize the new field.
10958         (get_computation_cost_at): Record setup cost.
10959         (determine_use_iv_cost_address): Skip cost computation for sub
10960         uses if we can estimate it without losing accuracy.
10961
10962 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10963
10964         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
10965         estimates here.
10966         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
10967         max_loop_iterations_int.
10968         (tree_unswitch_outer_loop): Likewise.
10969         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
10970         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
10971
10972 2016-03-30  Richard Biener  <rguenther@suse.de>
10973
10974         PR middle-end/70450
10975         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
10976
10977 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
10978
10979         PR target/70421
10980         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
10981         in gen_blendm expander.
10982
10983 2016-03-30  Nick Clifton  <nickc@redhat.com>
10984
10985         PR target/62254
10986         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
10987         case where we are already provided with an SImode SUBREG.
10988
10989 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
10990
10991         PR target/70439
10992         * config/i386/i386.c (ix86_expand_epilogue): Properly check
10993         conflict between DRAP register and __builtin_eh_return.
10994
10995 2016-03-30  Michael Matz  <matz@suse.de>
10996             Richard Biener  <rguenther@suse.de>
10997
10998         PR ipa/12392
10999         * ipa-polymorphic-call.c (struct type_change_info): Change
11000         speculative to an unsigned allowing to limit the work we do.
11001         (csftc_abort_walking_p): New inline function..
11002         (check_stmt_for_type_change): Limit the number of may-defs
11003         skipped for speculative devirtualization to
11004         max-speculative-devirt-maydefs.
11005         * params.def (max-speculative-devirt-maydefs): New param.
11006         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
11007
11008 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
11009
11010         PR target/63890
11011         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
11012         and TARGET_MACHO.
11013
11014 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
11015
11016         PR tree-optimization/59124
11017         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
11018         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
11019
11020 2016-03-29  Jeff Law  <law@redhat.com>
11021
11022         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
11023
11024 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11025
11026         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
11027         to HOST_WIDE_INT.
11028
11029 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
11030
11031         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
11032         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
11033         gcrt0.o if linking dynamically.
11034
11035 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11036
11037         PR ipa/70283
11038         * ipa-devirt.c (methods_equal_p): New function.
11039         (compare_virtual_tables): Use it.
11040         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
11041         * cgraphclones.c (clone_function_name_1): Use
11042         symbol_table::symbol_suffix_separator.
11043         * coverage.c (build_var): Likewise.
11044         * symtab.c (symbol_table::symbol_suffix_separator): New.
11045
11046 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
11047
11048         PR rtl-optimization/70429
11049         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
11050         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
11051         mode != result_mode.
11052
11053         PR c++/70353
11054         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
11055
11056         PR tree-optimization/70405
11057         * ssa-iterators.h (num_imm_uses): Add missing braces.
11058
11059 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
11060
11061         PR rtl-optimization/68695
11062         * ira-color.c (allocno_copy_cost_saving): New.
11063         (improve_allocation): Use it.
11064
11065 2016-03-29  Richard Henderson  <rth@redhat.com>
11066
11067         PR middle-end/70355
11068         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
11069
11070 2016-03-29  Richard Biener  <rguenther@suse.de>
11071
11072         PR middle-end/70424
11073         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
11074         use alignment returned by get_pointer_alignment_1 if it is
11075         bigger than BITS_PER_UNIT.
11076         * builtins.c (get_pointer_alignment_1): Do not return true
11077         for alignment extracted from SSA info.
11078
11079 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
11080
11081         * config/ft32/ft32.opt (mnodiv): New.
11082         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
11083         * doc/invoke.texi (FT32 Options -mnodiv): New.
11084
11085 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
11086
11087         PR target/70406
11088         * config/i386/i386.md (define_split, andn): Fix modes.
11089
11090 2016-03-26  Richard Biener  <rguenther@suse.de>
11091             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11092
11093         PR ipa/70366
11094         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
11095         instead of
11096         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
11097         as 2nd argument to cl_optimization_restore().
11098
11099 2016-03-25  Richard Henderson  <rth@redhat.com>
11100
11101         PR target/70120
11102         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
11103         * config/aarch64/aarch64-protos.h: Declare it.
11104         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
11105
11106 2016-03-25  Alan Modra  <amodra@gmail.com>
11107
11108         PR target/70052
11109         * config/rs6000/constraints.md (j): Simplify.
11110         * config/rs6000/predicates.md (easy_fp_constant): Exclude
11111         decimal float 0.D.
11112         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
11113         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
11114          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
11115         in all constraint alternatives.
11116         (movtd_64bit_nodm): Delete "j" constraint alternative.
11117
11118 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
11119
11120         * tree-ssa-propagate.c: Enhance docs for
11121         SSA_PROP_NOT_INTERESTING.
11122
11123 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
11124
11125         * doc/extend.texi: Fix typo in documentation to pure attribute.
11126
11127 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
11128
11129         PR target/70319
11130         * config/pa/pa.md (bswapdi2): Use a scratch register.
11131
11132 2016-03-24  Richard Henderson  <rth@redhat.com>
11133
11134         PR middle-end/69845
11135         * fold-const.c (extract_muldiv_1): Correct test for multiplication
11136         overflow.
11137
11138 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
11139
11140         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
11141         using ix86_expand_binary_operator instead of gen_andsi3.
11142
11143 2016-03-24  Richard Biener  <rguenther@suse.de>
11144
11145         PR tree-optimization/70396
11146         * tree-vect-stmts.c (vectorizable_comparison): Use
11147         get_vectype_for_scalar_type.
11148
11149 2016-03-24  Richard Biener  <rguenther@suse.de>
11150
11151         PR middle-end/70370
11152         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
11153         with register bases.
11154
11155 2016-03-24  Richard Biener  <rguenther@suse.de>
11156
11157         PR tree-optimization/70372
11158         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
11159         build_all_ones_cst to also handle vector types correctly.
11160
11161 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
11162
11163         PR target/70381
11164         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
11165         -mfloat128 here.
11166
11167 2016-03-23  Marek Polacek  <polacek@redhat.com>
11168
11169         PR c++/69884
11170         * doc/invoke.texi: Document -Wignored-attributes.
11171
11172 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
11173
11174         PR tree-optimization/69042
11175         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
11176         parameter from 30 to 40.
11177
11178 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
11179
11180         PR tree-optimization/69042
11181         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
11182         for use with constant offset stripped in base.
11183
11184 2016-03-23  Richard Biener  <rguenther@suse.de>
11185
11186         PR middle-end/70251
11187         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
11188         mode compatibility check.
11189         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11190
11191 2016-03-23  Jeff Law  <law@redhat.com>
11192
11193         PR tree-optimization/64058
11194         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
11195         CONFLICT_COUNT.
11196         (struct ssa_conflicts): Move up earlier in the file.
11197         (conflicts_, var_map_): New static variables.
11198         (initialize_conflict_count): New function to initialize the
11199         CONFLICT_COUNT field for each conflict pair.
11200         (compare_pairs): Lazily initialize the conflict count and use it
11201         as the first tie-breaker.
11202         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
11203         and wipe conflicts_ and map_ around the call to qsort.  Remove
11204         special case for 2 coalesce pairs.
11205         * bitmap.c (bitmap_count_unique_bits): New function.
11206         (bitmap_count_bits_in_word): New function, extracted from
11207         bitmap_count_bits.
11208         (bitmap_count_bits): Use bitmap_count_bits_in_word.
11209         * bitmap.h (bitmap_count_unique_bits): Declare it.
11210
11211 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
11212
11213         PR target/69917
11214         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
11215         transparent alias chain for decl assembler name.
11216         * config/sol2.c (solaris_assemble_visibility): Likewise.
11217
11218 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11219
11220         * config/arm/arm1020e.md (1020call_op): Reduce reservation
11221         duration.
11222         (v10_fdivs): Likewise.
11223         (v10_fdivd): Likewise.
11224
11225 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11226
11227         PR driver/70132
11228         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
11229         to not call fclose twice on file.
11230
11231 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
11232
11233         PR tree-optimization/70354
11234         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
11235         oprnd0 is wider than oprnd1 and there is a cast from the wider
11236         type to oprnd1, mask it with the mask of the narrower type.
11237
11238         PR target/70321
11239         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
11240         Optimize TARGET_STV splitters, if high or low word of last argument
11241         is 0 or -1.
11242
11243 2016-03-22  Jeff Law  <law@redhat.com>
11244
11245         PR target/70232
11246         tree-ssa-threadbackward.c
11247         (fsm_find_control_statement_thread_paths): Correctly distinguish
11248         between old style jump threads vs FSM jump threads.
11249
11250 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
11251
11252         PR target/70302
11253         * config/i386/i386.c (scalar_chain::convert_op): Support
11254         uninitialized register usage case.
11255
11256 2016-03-22  Richard Biener  <rguenther@suse.de>
11257
11258         PR middle-end/70251
11259         * genmatch.c (gen_transform): Adjust last parameter to a three-state
11260         int...
11261         (capture::gen_transform): ... to change behavior when substituting
11262         a condition into cond or not-cond expr context.
11263         (dt_simplify::gen_1): Adjust.
11264         * gimple-match-head.c: Include gimplify.h for unshare_expr.
11265         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
11266         last change and instead change to
11267         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
11268         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11269
11270 2016-03-22  Anthony Green  <green@moxielogic.com>
11271
11272         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
11273         issue for moxiebox targets.
11274         (CC1PLUS_SPEC): Ditto.
11275
11276 2016-03-22  Richard Biener  <rguenther@suse.de>
11277
11278         PR middle-end/70333
11279         * fold-const.c (extract_muldiv_1): Properly perform multiplication
11280         in the wide type.
11281
11282 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11283
11284         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
11285
11286 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11287
11288         PR target/70325
11289         * config/i386/i386.c (def_builtin): Handle
11290         OPTION_MASK_ISA_AVX512VL to be and-ed with other
11291         bits.
11292         (const struct builtin_description bdesc_special_args[]):
11293         Remove duplicate ISA bits.
11294
11295 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
11296
11297         PR target/70329
11298         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
11299         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
11300         in a way that works also for AVX512BW.
11301
11302         PR target/70300
11303         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
11304         instead of source if operands[1] is xmm16 and above and
11305         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
11306         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
11307
11308         PR c++/70295
11309         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
11310         on assign if (*from_p) is a comparison, set it to
11311         TREE_NO_WARNING (*from_p).
11312
11313 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
11314
11315         PR middle-end/70326
11316         * lra.c (restore_scratches): Ignore deleted insns.
11317
11318 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
11319             Jakub Jelinek  <jakub@redhat.com>
11320
11321         PR tree-optimization/70317
11322         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
11323         to HONOR_NANS.
11324
11325 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
11326
11327         PR target/70327
11328         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
11329         of ix86_expand_move.
11330         (movoi): Ditto.
11331         (movti): Use general_operand for operand 1 predicate.
11332
11333 2016-03-21  Martin Liska  <mliska@suse.cz>
11334
11335         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
11336         insns.
11337         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
11338
11339 2016-03-21  Martin Liska  <mliska@suse.cz>
11340
11341         PR ipa/70306
11342         * ipa-icf.c (sem_function::parse): Skip static
11343         constructors and destructors.
11344
11345 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
11346
11347         PR target/70296
11348         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
11349         function-like macro, peek following token(s) if it is followed
11350         by CPP_OPEN_PAREN token with optional padding in between, and
11351         if not, don't treat it like a macro.
11352
11353 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
11354             Alexander Monakov  <amonakov@ispras.ru>
11355
11356         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
11357         for the stabs debug format.
11358
11359 2016-03-21  Richard Biener  <rguenther@suse.de>
11360
11361         PR tree-optimization/70310
11362         * tree-vect-generic.c (expand_vector_condition): Fold the built
11363         condition.
11364
11365 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
11366
11367         PR target/70293
11368         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
11369         Block third alternative for AVX-512VL target,
11370
11371 2016-03-21  Martin Liska  <mliska@suse.cz>
11372
11373         PR hsa/70234
11374         * hsa-brig.c (emit_function_directives): Mark unemitted
11375         global variables for emission.
11376         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
11377         (get_symbol_for_decl): Likewise.
11378         * hsa.h (struct hsa_symbol): New flag.
11379
11380 2016-03-21  Richard Biener  <rguenther@suse.de>
11381
11382         PR tree-optimization/70288
11383         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
11384         we do not estimate unsimplified all-constant conditionals or
11385         switches as optimized away.
11386
11387 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
11388
11389         PR rtl-optimization/69102
11390         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
11391         when we have a readonly dependency context.
11392
11393 2016-03-18  Jeff Law  <law@redhat.com>
11394
11395         PR rtl-optimization/70263
11396         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
11397         (update_equiv_regs): When trying to move a store to after the insn
11398         that sets the source of the store, make sure the store occurs after
11399         the insn that sets the source of the store.  When successful note
11400         the REG_EQUIV note created in the dump file.
11401
11402 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
11403             Bernd Schmidt  <bschmidt@redhat.com>
11404
11405         * doc/extend.texi: Document more potential problems with basic asms.
11406
11407 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
11408
11409         PR rtl-optimization/70278
11410         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
11411         VOIDmode.
11412
11413 2016-03-18  Jason Merrill  <jason@redhat.com>
11414
11415         * calls.c (load_register_parameters): Fix zero size sibcall logic.
11416
11417 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
11418
11419         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
11420         values to 128b regs.
11421
11422 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
11423
11424         PR tree-optimization/70252
11425         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
11426         boolean vector has a proper number of elements.
11427         (supportable_narrowing_operation): Likewise.
11428
11429 2016-03-18  Tom de Vries  <tom@codesourcery.com>
11430
11431         PR ipa/70269
11432         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
11433
11434 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
11435
11436         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
11437         instead of replace_rtx for DEBUG_INSNs.
11438
11439 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11440
11441         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
11442         load type reservations.
11443
11444 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
11445
11446         PR target/70188
11447         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
11448         define_constraint for "Q" and "T" constraints.
11449
11450 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
11451
11452         Tweak the pipeline model for Exynos M1
11453
11454         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
11455         model.
11456
11457 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
11458
11459         PR c/70264
11460         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
11461         where one or both locations aren't within a line_map.
11462
11463 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11464
11465         PR driver/70192
11466         * opts.c (finish_options): Don't set flag_pie to the default if
11467         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
11468         if it is -1.
11469
11470 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
11471
11472         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
11473         true as ALL_REGS argument to replace_rtx.
11474
11475 2016-03-17  Richard Biener  <rguenther@suse.de>
11476
11477         PR debug/70271
11478         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
11479         last.
11480
11481 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
11482
11483         PR target/70245
11484         * rtl.h (replace_rtx): Add ALL_REGS argument.
11485         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
11486         equality and assert mode is the same, instead of just rtx pointer
11487         equality.
11488         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
11489         true as ALL_REGS argument to replace_rtx.
11490
11491 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
11492
11493         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
11494         for boolean vector with vector mode only.
11495         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11496
11497 2016-03-17  Nick Clifton  <nickc@redhat.com>
11498
11499         PR target/70162
11500         * config/rx/rx.c (rx_print_integer): Print negative constants in
11501         decimal.
11502
11503 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
11504
11505         PR target/70261
11506         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
11507
11508 2016-03-16  Richard Henderson  <rth@redhat.com>
11509             Richard Biener  <rguenth@suse.de>
11510
11511         PR middle-end/70240
11512         PR middle-end/68215
11513         PR tree-opt/68714
11514         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
11515         first operand as is_gimple_condexpr.
11516
11517         PR middle-end/70240
11518         PR middle-end/68215
11519         Revert r231575
11520         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
11521         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
11522         Do not gimplify the result.
11523         (do_unop): Adjust call to tree_vec_extract.
11524         (do_binop): Likewise.
11525         (do_compare): Likewise.
11526         (do_plus_minus): Likewise.
11527         (do_negate): Likewise.
11528         (expand_vector_condition): Likewise.
11529         (do_cond): Likewise.
11530
11531 2016-03-16  Richard Henderson  <rth@redhat.com>
11532
11533         PR target/70048
11534         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
11535         (aarch64_classify_address): Use it.
11536         (aarch64_legitimize_address): Force all subexpressions of PLUS
11537         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
11538
11539 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
11540             Richard Biener  <rguenth@suse.de>
11541
11542         PR target/70245
11543         * rtlanal.c (replace_rtx): For REG, if from is a REG,
11544         return to even if only REGNO is equal, and assert
11545         mode is the same.
11546
11547 2016-03-11  Jeff Law  <law@redhat.com>
11548
11549         PR rtl-optimization/70224
11550         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
11551
11552 2016-03-16  Richard Henderson  <rth@redhat.com>
11553
11554         PR middle-end/70199
11555         * function.h (struct function): Add has_forced_label_in_static.
11556         * gimplify.c (force_labels_r): Set it.
11557         * lto-streamer-in.c (input_struct_function_base): Read it.
11558         * lto-streamer-out.c (output_struct_function_base): Write it.
11559         * tree-inline.c (has_label_address_in_static_1): Remove.
11560         (copy_forbidden): Remove fndecl parameter; test
11561         has_forced_label_in_static.
11562         (inline_forbidden_p): Update call to copy_forbidden.
11563         (tree_versionable_function_p): Likewise.
11564         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
11565         (chkp_versioning): Likewise.
11566         * tree-inline.h (copy_forbidden): Update decl.
11567
11568 2016-03-16  Marek Polacek  <polacek@redhat.com>
11569
11570         PR c/70093
11571         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
11572         function being thunked if the result type doesn't have fixed size.
11573         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
11574         doesn't have fixed size.
11575
11576 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
11577
11578         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
11579         reporting malformed loop nest.
11580
11581 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11582
11583         PR lto/70187
11584         * ipa-devirt.c (possible_polymorphic_call_targets): Move
11585         nodes.length () == 1 test to before first nodes[0] access.
11586
11587 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11588
11589         PR tree-optimization/68715
11590         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
11591         single_pred_p test.
11592
11593 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11594
11595         PR tree-optimization/68809
11596         * graphite-scop-detection.c (same_close_phi_node): Test if result types
11597         are the same.
11598
11599 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
11600             Sandra Loosemore  <sandra@codesourcery.com>
11601
11602         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
11603         on leaf attribute. Mention ELF interposition problems.
11604
11605 2016-03-16  Alan Modra  <amodra@gmail.com>
11606
11607         PR rtl-optimization/69195
11608         PR rtl-optimization/47992
11609         * ira.c (indirect_jump_optimize): Ignore artificial defs.
11610         Add comments.
11611
11612 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
11613
11614         PR bootstrap/69513
11615         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
11616
11617 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
11618
11619         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
11620
11621 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
11622
11623         PR rtl-optimization/70222
11624         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
11625         optimization if mode is different from result_mode, queue up masking
11626         of the result in outer_op.  Formatting fix.
11627
11628         PR middle-end/70239
11629         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
11630         of safe_grow.
11631
11632 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11633
11634         PR rtl-optimization/69032
11635         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
11636         looping backwards over basic block insns.
11637
11638 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11639
11640         PR target/66660
11641         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
11642         to non-speculative when propagating trap bits.
11643
11644 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11645
11646         PR rtl-optimization/63384
11647         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
11648         DEBUG_INSN_P insns.
11649
11650 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11651
11652         PR target/64411
11653         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
11654         factored out from ...
11655         (sched_analyze_insn): ... here.
11656         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
11657         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
11658         get_implicit_reg_pending_clobbers in it.
11659         (setup_id_reg_sets): Use setup_id_implicit_regs.
11660         (deps_init_id): Ditto.
11661
11662 2016-03-15  Tom de Vries  <tom@codesourcery.com>
11663
11664         PR ipa/70161
11665         * cgraph.c (cgraph_node::get_body): Save, reset and restore
11666         dump_file_name.
11667         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
11668         execute_function_dump.
11669         (execute_one_pass): Don't dump function if it will be dumped after ipa
11670         transform.
11671
11672 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
11673
11674         * genrecog.c (match_pattern_2): If pred is NULL don't call
11675         safe_predicate_mode on it.
11676
11677 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
11678
11679         PR middle-end/70219
11680         * lra-constraints.c (delete_move_and_clobber): Change assertion
11681         to also allow dregno == 0.
11682
11683 2016-03-14  Richard Henderson  <rth@redhat.com>
11684
11685         PR tree-opt/68714
11686         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
11687         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
11688         (reassociate_bb): Use optimize_vec_cond_expr; avoid
11689         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
11690         on vectors.
11691
11692 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
11693
11694         PR target/70083
11695         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
11696         regs.
11697         (lra_create_live_ranges_1): initialize hard register biggest_mode to
11698         VOIDmode.
11699         * lra-constraints.c (split_reg): For hard regs, try to find the
11700         biggest single-register mode used in the function.
11701
11702 2016-03-14  Richard Biener  <rguenther@suse.de>
11703
11704         PR tree-optimization/56365
11705         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
11706         constants to compare against.
11707
11708 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
11709
11710         PR target/70098
11711         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
11712         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
11713         (define_split for the GPR case): Use int_reg_operand instead of
11714         gpc_reg_operand for the output.
11715
11716 2016-03-14  Tom de Vries  <tom@codesourcery.com>
11717
11718         PR tree-optimization/70045
11719         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
11720         create_empty_if_region_on_edge argument.
11721
11722 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
11723
11724         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
11725         (STACK_CHECK_PROTECT): Likewise.
11726         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
11727         (STACK_CHECK_PROTECT): Likewise.
11728         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
11729         (STACK_CHECK_PROTECT): Likewise.
11730         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
11731         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11732         (STACK_CHECK_PROTECT): Likewise.
11733
11734 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
11735
11736         PR rtl-optimization/69307
11737         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
11738         registers in modes that span more than one register.
11739
11740 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
11741
11742         PR target/69614
11743         * lra-constraints.c (delete_move_and_clobber): New.
11744         (remove_inheritance_pseudos): Use it.
11745
11746 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
11747
11748         PR ada/70017
11749         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
11750         the libcall is LCT_THROW.
11751         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
11752         for the checking routine.
11753
11754 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
11755
11756         PR target/70131
11757         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
11758         optimization if we have direct move.
11759         (roundu32<mode>2_fprs): Likewise.
11760
11761 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
11762
11763         PR target/70123
11764         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
11765         be rematerialized.
11766         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
11767         Arguments swapped.  All callers changed.  Take reg_renumber into
11768         account, and Calculate and compare register ranges for hard regs.
11769
11770 2016-03-11  Jeff Law  <law@redhat.com>
11771
11772         PR tree-optimization/70190
11773         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11774         Handle cases where we can not extract the taken edge, even though we
11775         found a constant value.
11776
11777         PR tree-optimization/64058
11778         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
11779         (num_coalesce_pairs): Move up earlier in file.
11780         (find_coalesce_pair): Initialize the INDEX field for each pair
11781         discovered.
11782         (compare_pairs): No longer sort on the elements in each pair.
11783         Instead break ties with the index of the coalesce pair.
11784
11785 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11786
11787         PR target/70002
11788         * config/aarch64/aarch64-protos.h
11789         (aarch64_save_restore_target_globals): New prototype.
11790         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
11791         Call the above when popping pragma.
11792         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
11793         New function.
11794         (aarch64_set_current_function): Rewrite using the above.
11795
11796 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
11797
11798         PR tree-optimization/70177
11799         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
11800         (extract_ops_from_tree): ... this.  In the 2 argument
11801         overload remove _1 suffix.
11802         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
11803         (extract_ops_from_tree): ... this.
11804         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
11805         Adjust callers.
11806         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
11807         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
11808         extract_ops_from_tree instead of 2 operand one.
11809
11810 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
11811
11812         PR tree-optimization/70013
11813         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
11814         for constant-pool entries.
11815
11816 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
11817
11818         PR rtl-optimization/70174
11819         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
11820         followed by gen_lowpart on force_reg instead of just gen_lowpart.
11821
11822         PR tree-optimization/70169
11823         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
11824         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
11825         for unknown codes.
11826
11827 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11828             Jakub Jelinek  <jakub@redhat.com>
11829
11830         PR target/70160
11831         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
11832         of uninitialized values.
11833
11834 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11835
11836         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
11837         define_expand.
11838         ("*trunctddd2"): New pattern definition.
11839         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
11840         TD->DD truncation.
11841
11842 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11843
11844         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
11845         definitions for BFP and DFP rounding modes.
11846         ("fixuns_truncdddi2", "fixuns_trunctddi2")
11847         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
11848         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
11849         ("fix_trunctf<mode>2"): Use the new constants instead of magic
11850         numbers.
11851
11852 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11853
11854         * config/s390/constraints.md: Adjust comment.
11855         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
11856         s390_decompose_addrstyle_without_index.
11857         * config/s390/predicates.md (shift_count_or_setmem_operand):
11858         Rename to setmem_operand.
11859         * config/s390/s390-protos.h
11860         (s390_decompose_shift_count): Rename to
11861         s390_decompose_addrstyle_without_index.
11862         * config/s390/s390.c (s390_decompose_shift_count)
11863         (s390_mem_constraint, print_shift_count_operand)
11864         (print_operand_address, print_operand): Rename
11865         s390_decompose_shift_count to
11866         s390_decompose_addrstyle_without_index and rename
11867         print_shift_count_operand to print_addrstyle_operand troughout the
11868         file.
11869         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
11870         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
11871         Rename shift_count_or_setmem_operand to setmem_operand.
11872         * config/s390/vx-builtins.md ("vec_insert<mode>")
11873         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
11874         nonmemory_operand.
11875
11876 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11877
11878         PR target/70168
11879         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
11880         Handle overlapping retval and newval.
11881
11882 2016-03-10  Nick Clifton  <nickc@redhat.com>
11883
11884         PR target/7044
11885         * config/aarch64/aarch64.c
11886         (aarch64_override_options_after_change_1): When forcing
11887         flag_omit_frame_pointer to be true, use a special value that can
11888         be detected if this function is called again, thus preventing
11889         flag_omit_leaf_frame_pointer from being forced to be false.
11890
11891 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11892
11893         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
11894         Set x_flag_omit_leaf_frame_pointer when handling
11895         -momit-leaf-frame-pointer.
11896
11897 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11898
11899         PR lto/69589
11900         * cgraph.c (cgraph_node::dump): Dump split_part and
11901         indirect_call_target.
11902         * cgraph.h (cgraph_node): Add indirect_call_target flag.
11903         * ipa.c (has_addr_references_p): Cleanup.
11904         (is_indirect_call_target_p): New.
11905         (walk_polymorphic_call_targets): Do not mark virtuals that may be
11906         called indirectly as local.
11907         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
11908
11909 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11910
11911         PR ipa/69630
11912         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11913         on cxa_pure_virtual.
11914
11915 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11916
11917         PR lto/69589
11918         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
11919
11920 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11921
11922         PR lto/69589
11923         * tree.c (need_assembler_name_p): Only record main variant type names.
11924
11925 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
11926
11927         PR target/70113.
11928         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
11929         Always define to 0 or 1.
11930         (TARGET_FIX_ERR_A53_843419): New macro.
11931         * config/aarch64/aarch64-elf-raw.h
11932         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
11933         * config/aarch64/aarch64-linux.h: Likewise.
11934         * config/aarch64/aarch64.c
11935         (aarch64_override_options_after_change_1): Do not default
11936         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
11937         843419 is on.
11938         (aarch64_attributes): Handle fix-cortex-a53-843419.
11939         (aarch64_can_inline_p): Likewise.
11940         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
11941
11942 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
11943         Jakub Jelinek <jakub@redhat.com>
11944
11945         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
11946         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
11947         DECL_COMMONS if flag_unconstrained_commons is set.
11948         * tree-dfa.c (get_ref_base_and_extent): Likewise.
11949         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
11950         (funconstrained-commons): Document.
11951
11952 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
11953
11954         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
11955         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
11956
11957 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
11958
11959         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
11960         has a proper number of elements.
11961
11962 2016-03-10  Alan Modra  <amodra@gmail.com>
11963
11964         PR rtl-optimization/69195
11965         PR rtl-optimization/47992
11966         * ira.c (recorded_label_ref): Delete.
11967         (update_equiv_regs): Return void.
11968         (indirect_jump_optimize): New function.
11969         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
11970         before regstat_compute_ri.  Don't rebuild_jump_labels here.
11971         Delete update_regstat.
11972
11973 2016-03-10  Richard Biener  <rguenther@suse.de>
11974
11975         PR tree-optimization/70128
11976         * tree-ssa-structalias.c (set_uids_in_ptset): Set
11977         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
11978
11979 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
11980
11981         PR tree-optimization/70152
11982         * tree-sra.c (replace_removed_params_ssa_names): Copy over
11983         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
11984
11985         PR target/70086
11986         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
11987         instead of gen_sse2_loadlpd.
11988         * config/i386/sse.md (*vec_concatv2df): Rename to...
11989         (vec_concatv2df): ... this.
11990
11991         PR tree-optimization/70127
11992         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
11993
11994 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
11995
11996         PR c/68473
11997         PR c++/70105
11998         * diagnostic-show-locus.c (compatible_locations_p): New function.
11999         (layout::layout): Sanitize ranges using compatible_locations_p.
12000
12001 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
12002
12003         PR c/68473
12004         PR c++/70105
12005         * diagnostic-show-locus.c (layout_range::layout_range): Replace
12006         location_range param with three const expanded_locations * and a
12007         bool.
12008         (layout::layout): Replace call to
12009         rich_location::lazily_expand_location with get_expanded_location.
12010         Extract the range and perform location expansion here, passing
12011         the results to the layout_range ctor.
12012         * diagnostic.c (source_range::debug): Delete.
12013         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
12014         of rich_location::get_expanded_location.
12015         * gcc-rich-location.c (get_range_for_expr): Delete.
12016         (gcc_rich_location::add_expr): Reimplement to avoid the
12017         rich_location::add_range overload that took a location_range,
12018         passing a location_t instead.
12019
12020 2016-03-09  Richard Biener  <rguenther@suse.de>
12021         Jakub Jelinek  <jakub@redhat.com>
12022
12023         PR tree-optimization/70138
12024         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
12025         Also skip vect_double_reduction_def.
12026
12027 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
12028
12029         PR target/70049
12030         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
12031         if the operand is "m".
12032
12033 2016-03-09  Nathan Sidwell  <nathan@acm.org>
12034
12035         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
12036
12037 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12038
12039         * config/i386/i386.c (processor_target_table): Fix cost table
12040         intialization order for znver1.
12041
12042 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
12043
12044         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
12045         - becuase -> because.
12046         * ipa-reference.c (ignore_module_statics): Likewise.
12047         * cgraph.c (cgraph_node::get_body): Likewise.
12048         * ipa-inline.c (early_inliner): Likewise.
12049         * ipa-devirt.c (types_same_for_odr): Likewise.
12050         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
12051         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
12052
12053 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12054
12055         * tree-ssa-math-opts.c: Fix typo in comment.
12056
12057 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
12058
12059         PR target/70110
12060         * config/i386/i386.c (scalar_chain::make_vector_copies,
12061         scalar_chain::convert_reg): Call end_sequence in between
12062         get_insns and emit_conversion_insns rather than after both
12063         calls.
12064
12065 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
12066
12067         PR target/70064
12068         * config/i386/i386.h (machine_function): Add
12069         pc_thunk_call_expanded flag.
12070         (ix86_pc_thunk_call_expanded): New define.
12071         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
12072         (*set_got): Rename insn pattern from set_got.
12073         (*set_got_labelled): Rename inst pattern from set_got_labelled.
12074         * config/i386/i386.c (ix86_compute_frame_layout): Use
12075         ix86_pc_thunk_call_expanded to prevent red-zone.
12076
12077 2016-03-07  Martin Jambor  <mjambor@suse.cz>
12078
12079         * hsa.h (hsa_get_ctor_statements): Declare.
12080         (hsa_get_dtor_statements): Likewise.
12081         (hsa_get_kernel_dispatch_type): Likewise.
12082         * hsa.c (hsa_get_ctor_statements): New function.
12083         (hsa_get_dtor_statements): Likewise.
12084         (hsa_get_kernel_dispatch_type): Likewise.
12085         * hsa-brig.c (hsa_cdtor_statements): Removed.
12086         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
12087         hsa_get_dtor_statements.
12088         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
12089         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
12090
12091 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12092
12093         * config/arm/arm-cores.def (cortex-r8): New.
12094         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
12095         * config/arm/arm-tune.md: Likewise.
12096         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
12097
12098 2016-03-07  Martin Sebor  <msebor@redhat.com>
12099
12100         PR rtl-optimization/19705
12101         * doc/invoke.texi (Options That Control Optimization): Clarify
12102         -fno-branch-count-reg.
12103
12104 2016-02-26  Richard Biener  <rguenther@suse.de>
12105             Jeff Law  <law@redhat.com>
12106
12107         PR tree-optimization/69740
12108         * cfghooks.c (remove_edge): Request loop fixups if we delete
12109         an edge that might turn an irreducible loop into a natural
12110         loop.
12111         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
12112         Move after definition of loops_state_clear.
12113
12114 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
12115
12116         PR rtl-optimization/69052
12117         * rtlanal.c (commutative_operand_precedence): Set higher precedence
12118         to CONST_WIDE_INT.
12119
12120 2016-03-07  Tom de Vries  <tom@codesourcery.com>
12121
12122         PR tree-optimization/70116
12123         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
12124         is_tm_ending stmts and ubsan/asan internal functions.
12125         (find_duplicate): Use it.  Don't test is_tm_ending here.
12126
12127 2016-03-07  Richard Biener  <rguenther@suse.de>
12128
12129         PR tree-optimization/70115
12130         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
12131         (propagate_constants_for_unrolling): Use replace_uses_by.
12132
12133 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
12134
12135         PR middle-end/69916
12136         * omp-low.c (struct oacc_loop): Add ifns.
12137         (new_oacc_loop_raw): Initialize it.
12138         (finish_oacc_loop): Clear mask & flags if no ifns.
12139         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
12140         (oacc_loop_xform_loop): Add ifns arg & adjust.
12141         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
12142
12143 2016-03-07  Richard Henderson  <rth@redhat.com>
12144
12145         PR rtl-opt/70061
12146         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
12147         (insert_value_copy_on_edge): Likewise.
12148
12149 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12150
12151         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
12152
12153 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12154
12155         PR target/62281
12156         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
12157
12158 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
12159
12160         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
12161
12162 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
12163
12164         Fix sseimul type attribute.
12165         * config/i386/znver1.md
12166         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
12167         znver1_sseimul_avx256_load) : Fix the type attribute.
12168         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
12169         pipe usage and latency.
12170
12171 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
12172
12173         PR c++/70084
12174         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
12175         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
12176         to the right type.
12177
12178 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
12179
12180         PR c/69973
12181         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
12182
12183         PR rtl-optimization/69941
12184         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
12185         the reg share its mode.
12186
12187 2016-03-04  Jeff Law  <law@redhat.com>
12188
12189         PR tree-optimization/69196
12190         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12191         If the both SSA_NAMEs are anonymous, then consider them unassociated
12192         and include the PHI in the statement count.
12193
12194 2016-03-05  Tom de Vries  <tom@codesourcery.com>
12195
12196         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
12197         construct in oacc routine.  Check for oacc region in oacc routine.
12198
12199 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
12200
12201         PR target/70062
12202         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
12203         2016-02-22 changes, instead don't recurse if RECUR is already true.
12204         Don't change *dynamic_check if RECUR.  Adjust recursive caller
12205         to pass true to the new argument.
12206         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
12207
12208         PR target/70059
12209         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
12210         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
12211         fixes.
12212         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
12213
12214 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
12215
12216         PR rtl-optimization/57676
12217         * lra-assigns.c (lra_assign): Guard test for maximum iterations
12218         with flag_checking.
12219
12220 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
12221
12222         * tree-vect-patterns.c (search_type_for_mask): Handle
12223         comparison of booleans.
12224
12225 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
12226
12227         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
12228         Fix @xref usage.
12229
12230         PR debug/69947
12231         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
12232         all other ops that have dw_val_class_die_ref operands,
12233         and DW_OP_GNU_entry_value.
12234
12235 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12236
12237         PR rtl-optimization/69904
12238         * config/arm/arm.c (arm_cannot_copy_insn_p):
12239         Return true for load-exclusive instructions.
12240
12241 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
12242
12243         PR target/70021
12244         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
12245         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
12246         the pattern no matter if it is used just by non-pattern, pattern
12247         or mix thereof.
12248         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
12249         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
12250         oprnd1 def_stmt is in pattern, don't look through it.
12251
12252 2016-03-03  Marek Polacek  <polacek@redhat.com>
12253
12254         PR middle-end/70050
12255         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
12256
12257 2016-03-03  Martin Liska  <mliska@suse.cz>
12258
12259         PR tree-optimization/70043
12260         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
12261         previous statement if we see a debug statement.
12262
12263 2016-03-03  Richard Biener  <rguenther@suse.de>
12264
12265         PR tree-optimization/55936
12266         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
12267         parameter and guard unsafe equivalence use.
12268         (vrp_evaluate_conditional_warnv_with_ops): Always use
12269         safe equivalences but not via the quadratic compare_names
12270         helper.
12271
12272 2016-03-03  Michael Collison  <michael.collison@linaro.org>
12273
12274         PR target/70014
12275         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
12276         for operand 1 to s_register_operand. Change predicate for operand
12277         2 to arm_not_immediate_operand.
12278
12279 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
12280
12281         * doc/tm.texi: Regenerated.
12282
12283 2016-03-02  Richard Henderson  <rth@redhat.com>
12284
12285         PR rtl-opt/67145
12286         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
12287         simplification when all args are positive non-fixed registers.
12288
12289 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12290
12291         * target.def (lra_p): Specify that new ports should use LRA.
12292
12293 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
12294
12295         PR libgomp/69555
12296         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
12297         gimplify_type_sizes the type they refer to.
12298         (omp_notice_variable): Handle reference vars to VLAs.
12299         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
12300         reference to VLA decls in the second pass instead of first pass.
12301
12302 2016-03-02  Tom de Vries  <tom@codesourcery.com>
12303
12304         PR tree-optimization/68659
12305         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
12306         new_expr == NULL_TREE.
12307         (get_new_name): Handle ADDR_EXPR.
12308
12309 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
12310
12311         PR rtl-optimization/69052
12312         * loop-invariant.c (canonicalize_address): New function.
12313         (inv_can_prop_to_addr_use): Check validity of address expression
12314         which is canonicalized by above function.
12315
12316 2016-03-02  Alan Modra  <amodra@gmail.com>
12317
12318         PR ipa/69990
12319         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
12320         larger alignment.
12321
12322 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
12323
12324         PR target/70028
12325         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
12326         (*movhi_internal): Put mask moves from and to memory separately
12327         from moves from/to GPRs.
12328
12329 2016-03-02  Richard Biener  <rguenther@suse.de>
12330
12331         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
12332         GENERIC expressions in GIMPLE.
12333
12334 2016-03-02  Richard Biener  <rguenther@suse.de>
12335
12336         * config/i386/i386.c (type_natural_mode): Fix typo.
12337
12338 2016-03-02  Nick Clifton  <nickc@redhat.com>
12339
12340         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
12341
12342 2016-03-02  Richard Biener  <rguenther@suse.de>
12343             Uros Bizjak  <ubizjak@gmail.com>
12344
12345         PR target/67278
12346         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
12347
12348 2016-03-02  Richard Biener  <rguenther@suse.de>
12349
12350         PR middle-end/67278
12351         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
12352
12353 2016-03-02  Marek Polacek  <polacek@redhat.com>
12354
12355         PR c/67854
12356         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
12357         "is promoted to" warning.
12358
12359 2016-03-01  DJ Delorie  <dj@redhat.com>
12360
12361         * config.gcc: Deprecate mep-*.
12362
12363 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
12364
12365         PR middle-end/70025
12366         * lra-constraints.c (regno_val_use_in): New.
12367         (match_reload): Use it instead of regno_use_in.
12368
12369 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
12370
12371         PR rtl-optimization/70007
12372         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
12373         references present in REG_EQUAL notes attached to non-SET patterns.
12374
12375 2016-03-01  Jeff Law  <law@redhat.com>
12376
12377         PR tree-optimization/69196
12378         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12379         Appropriately clamp the number of statements to copy when the
12380         thread path does not traverse a loop backedge.
12381
12382         PR tree-optimization/69196
12383         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12384         Do count some PHIs in the thread path against the insn count.  Decrease
12385         final statement count by one as the control statement in the last
12386         block will get removed.  Remove special cased code for handling PHIs
12387         in the last block.
12388
12389 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
12390
12391         PR target/70027
12392         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
12393         asm dialect alternatives to explicit GOTPCREL calls.
12394
12395 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
12396
12397         PR ada/70017
12398         * ira.c (do_reload): Issue warning for generic stack checking here...
12399         * reload1.c (reload): ...instead of here and streamline it.
12400
12401 2016-03-01  Nick Clifton  <nickc@redhat.com>
12402
12403         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
12404
12405 2016-03-01  Richard Biener  <rguenther@suse.de>
12406
12407         PR tree-optimization/69983
12408         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
12409         types and fall back to operand_equal_p.
12410
12411 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12412
12413         Revert
12414         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12415
12416         * config/s390/constraints.md ("jm8"): New constraint.
12417         * config/s390/predicates.md ("const_int_8bitset_operand"): New
12418         predicate.
12419         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
12420         into ...
12421         ("*setmem_long<setmem_and>"): New pattern.
12422         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
12423         into ...
12424         ("*setmem_long_31z<setmem_and>"): New pattern.
12425         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
12426         New substitution rules with the required attributes.
12427
12428
12429 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12430
12431         Revert
12432         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12433
12434         * gensupport.c (process_substs_on_one_elem): Split loop to
12435         complete mark_operands_used_in_match_dup on all expressions in the
12436         vector first.
12437         (adjust_operands_numbers): Inline into process_substs_on_one_elem
12438         and remove function.
12439
12440 2016-03-01  Richard Biener  <rguenther@suse.de>
12441
12442         PR middle-end/70022
12443         * fold-const.c (fold_indirect_ref_1): Fix range checking for
12444         vector BIT_FIELD_REF extract.
12445
12446 2016-03-01  Richard Biener  <rguenther@suse.de>
12447
12448         PR tree-optimization/69994
12449         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
12450
12451 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
12452
12453         PR tree-optimization/69956
12454         * tree-vect-stmts.c (supportable_widening_operation): Support
12455         multi-step conversion of boolean vectors.
12456         (supportable_narrowing_operation): Likewise.
12457
12458 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12459
12460         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
12461         anymore.
12462
12463 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12464
12465         * config/s390/subst.md (DSI_VI): New mode iterator.
12466         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
12467         * config/s390/vector.md ("vec_set<mode>"): Move expander before
12468         the insn definition.
12469         ("*vec_set<mode>"): Change predicate and add alternative to
12470         support only either register or const_int operands as element
12471         selector.
12472         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
12473         operands.
12474         ("vec_extract<mode>"): New expander.
12475         ("*vec_extract<mode>"): New insn definition supporting reg and
12476         const_int element selectors.
12477         ("*vec_extract<mode>_plus"): New insn definition supporting
12478         reg+const_int element selectors.
12479         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
12480         following expander+insn definition.
12481         ("<vec_shifts_name><mode>3"): New expander.
12482         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
12483
12484 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12485
12486         * config/s390/s390.md ("*tabort_1"): Change predicate to
12487         nonmemory_operand.  Add a second alternative to cover
12488         register as well as const int operands.
12489         ("*tabort_1_plus"): New pattern definition.
12490
12491 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12492
12493         * config/s390/s390.md ("*ashrdi3_cc_31")
12494         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
12495         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
12496         Merge insn definitions into ...
12497         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
12498         New pattern definition.
12499         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
12500         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
12501         ("*ashr<mode>3_and"): Merge insn definitions into ...
12502         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
12503         New pattern definition.
12504         * config/s390/subst.md ("addr_style_op_cc_subst")
12505         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
12506         substitutions patterns plus attributes.
12507         Add ashiftrt to SUBST iterator.
12508
12509 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12510
12511         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
12512         op2 to nonmemory_operand.
12513         ("*<shift>di3_31", "*<shift>di3_31_and"):
12514         Merge into single pattern definition ...
12515         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
12516         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
12517         pattern definition ...
12518         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
12519         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
12520         iterator.
12521
12522 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12523
12524         * config/s390/predicates.md (const_int_6bitset_operand): New
12525         predicate.
12526         * config/s390/s390.md: Include subst.md.
12527         ("rotl<mode>3"): New expander.
12528         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
12529         ...
12530         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
12531         * config/s390/subst.md: New file.
12532
12533 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12534
12535         * config/s390/s390.md ("op_type", "atype", "length" attributes):
12536         Remove RRR type.  It doesn't really exist.
12537         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
12538         attributes.
12539         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
12540         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
12541         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
12542         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
12543         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
12544         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
12545         `enabled' attribute.
12546
12547 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12548
12549         * gensupport.c (process_substs_on_one_elem): Split loop to
12550         complete mark_operands_used_in_match_dup on all expressions in the
12551         vector first.
12552         (adjust_operands_numbers): Inline into process_substs_on_one_elem
12553         and remove function.
12554
12555 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
12556
12557         PR target/69706
12558         * config/sparc/sparc.c (NWORDS_UP): Rename to...
12559         (CEIL_NWORDS): ...this.  Use CEIL macro.
12560         (compute_fp_layout): Adjust to above renaming.
12561         (function_arg_union_value): Likewise.
12562         (sparc_arg_partial_bytes): Likewise.
12563         (sparc_function_arg_advance): Likewise.
12564
12565 2016-02-29  Jeff Law  <law@redhat.com>
12566
12567         PR tree-optimization/70005
12568         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
12569         where an object with a boolean range is compared against a value
12570         outside [0..1].
12571
12572         PR tree-optimization/69999
12573         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
12574         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
12575         loop cleanups.
12576
12577 2016-02-29  Richard Biener  <rguenther@suse.de>
12578
12579         PR tree-optimization/69994
12580         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
12581         (get_unary_op): Look through nop conversions.
12582         (ops_equal_values_p): New function, look for equality diregarding
12583         nop conversions.
12584         (eliminate_plus_minus_pair): Use ops_equal_values_p
12585         (repropagate_negates): Do not use get_unary_op here.
12586
12587 2016-02-29  Martin Liska  <mliska@suse.cz>
12588
12589         * system.h: Poison ENABLE_CHECKING macro.
12590
12591 2016-02-29  Martin Liska  <mliska@suse.cz>
12592
12593         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
12594         is presented in dump flags.
12595         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
12596         (hsa_regalloc): Likewise.
12597
12598 2016-02-19  Richard Biener  <rguenther@suse.de>
12599
12600         PR tree-optimization/69980
12601         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
12602         permutation of those we need to keep.
12603
12604 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
12605
12606         PR target/69706
12607         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
12608         (NWORDS_UP): ...this
12609         (init_cumulative_args): Minor tweaks.
12610         (sparc_promote_function_mode): Likewise.
12611         (scan_record_type): Delete.
12612         (traverse_record_type): New function template.
12613         (classify_data_t): New structure type.
12614         (classify_registers): New inline function.
12615         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
12616         exhausted.  Instantiate traverse_record_type on classify_registers and
12617         deal with the case of a structure passed in slot #15 with no FP field
12618         in the first word.
12619         (assign_data_t): New structure type.
12620         (compute_int_layout): New static function.
12621         (compute_fp_layout): Likewise.
12622         (count_registers): New inline function.
12623         (assign_int_registers): New static function.
12624         (assign_fp_registers): Likewise.
12625         (assign_registers): New inline function.
12626         (function_arg_record_value_1): Delete.
12627         (function_arg_record_value_2): Likewise.
12628         (function_arg_record_value_3): Likewise.
12629         (function_arg_record_value): Adjust to above changes.  Instantiate
12630         traverse_record_type on count_registers to first count the number of
12631         registers to be used and then on assign_registers to assign them.
12632         (function_arg_union_value): Adjust to above renaming.
12633         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
12634         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
12635         case of a structure passed in slot #15
12636         (sparc_function_arg_advance): Likewise.
12637         (function_arg_padding): Minor tweak.
12638
12639 2016-02-29  Richard Biener  <rguenther@suse.de>
12640
12641         PR tree-optimization/69720
12642         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
12643         the adjustment_def path for possibly vectorized defs.
12644         (vect_create_epilog_for_reduction): Handle vectorized initial
12645         defs properly.
12646
12647 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
12648
12649         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
12650
12651 2016-02-27  Jeff Law  <law@redhat.com>
12652
12653         Revert
12654         2016-02-26  Richard Biener  <rguenther@suse.de>
12655                     Jeff Law  <law@redhat.com>
12656
12657         PR tree-optimization/69740
12658         * cfghooks.c (remove_edge): Request loop fixups if we delete
12659         an edge that might turn an irreducible loop into a natural
12660         loop.
12661
12662 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
12663
12664         PR rtl-optimization/69896
12665         * tree-vect-generic.c (get_compute_type): Avoid single element
12666         vector types.
12667
12668 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
12669
12670         Rename the AArch64 tuning option and related functions to enable the
12671         Newton series for the reciprocal square root to reflect its
12672         approximative characteristic.
12673
12674         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
12675         function to "aarch64_emit_approx_rsqrt".
12676         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
12677         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
12678         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
12679         (xgene1_tunings): Likewise.
12680         (use_rsqrt_p): Likewise.
12681         (aarch64_emit_swrsqrt): Use new function name.
12682         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
12683         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
12684         text explaining this option.
12685         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
12686
12687 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
12688
12689         PR target/69969
12690         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12691         complain about -mallow-movmisalign without -mvsx if
12692         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
12693
12694 2016-02-26  Joel Sherrill  <joel@rtems.org>
12695
12696         * config.gcc: Add x86_64-*-rtems*.
12697         * config/i386/rtems-64.h: New file.
12698
12699 2016-02-26  Joel Sherrill  <joel@rtems.org>
12700
12701         * config.gcc: Add aarch64-*-rtems*.
12702         * config/aarch64/rtems.h: New file.
12703
12704 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
12705
12706         PR target/69946
12707         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
12708         shift amount using %h.  Add comment.
12709
12710 2016-02-26  Richard Biener  <rguenther@suse.de>
12711             Jeff Law  <law@redhat.com>
12712
12713         PR tree-optimization/69740
12714         * cfghooks.c (remove_edge): Request loop fixups if we delete
12715         an edge that might turn an irreducible loop into a natural
12716         loop.
12717
12718 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12719
12720         PR middle-end/69920
12721         * tree-sra.c (sra_modify_assign): Do not remove loads of
12722         uninitialized aggregates to SSA_NAMEs.
12723
12724 2016-02-26  Richard Henderson  <rth@redhat.com>
12725
12726         PR target/69709
12727         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
12728         pseudo in case the target rtx matches the source of the left
12729         shift.
12730
12731 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12732
12733         PR hsa/69568
12734         * hsa.h (hsa_type_packed_p): Declare.
12735         * hsa.c (hsa_type_packed_p): New function.
12736         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
12737         loads.
12738         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
12739         * hsa-brig.c (emit_basic_insn): Likewise.
12740
12741 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12742
12743         pr hsa/69674
12744         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
12745         pointers.
12746         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
12747
12748 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12749
12750         * hsa.h (is_a_helper): New overload for hsa_op_immed for
12751         hsa_op_with_type operands.
12752         (hsa_unsigned_type_for_type): Declare.
12753         * hsa.c (hsa_unsigned_type_for_type): New function.
12754         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
12755         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
12756         the finalizer.  Do not emit extra move.
12757
12758 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12759
12760         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
12761         atomic operations in private segment.
12762
12763 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12764
12765         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
12766         statements to wi->info.  Also disallow omp simd constructs.
12767         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
12768         for not gridifying.  Dump special string for omp_for.
12769
12770 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12771
12772         PR target/69245
12773         * config/aarch64/aarch64.c (aarch64_set_current_function):
12774         Save/restore target globals when switching to
12775         target_option_default_node.
12776
12777 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12778
12779         PR target/69613
12780         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
12781         Return 0 if !SHIFT_COUNT_TRUNCATED.
12782
12783 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
12784             Eric Botcazou  <ebotcazou@adacore.com>
12785
12786         PR rtl-optimization/69891
12787         * dse.c (scan_insn): If we can't figure out memset arguments
12788         or they are non-constant, call clear_rhs_from_active_local_stores.
12789
12790 2016-02-26  Martin Liska  <mliska@suse.cz>
12791
12792         * doc/extend.texi: Mention clog10, clog10f an clog10l
12793         in Builtins section.
12794
12795 2016-02-26  Martin Liska  <mliska@suse.cz>
12796
12797         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
12798         CHECKING_P.
12799         (resolve_args_picking_1): Likewise.
12800         * dwarf2out.h (struct GTY): Likewise.
12801
12802 2016-02-26  Martin Liska  <mliska@suse.cz>
12803
12804         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
12805         with flag_checking.
12806         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
12807
12808 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
12809             Martin Liska  <mliska@suse.cz>
12810
12811         * doc/install.texi: Mention --enable-valgrind-annotations.
12812
12813 2016-02-26  Richard Biener  <rguenther@suse.de>
12814
12815         PR tree-optimization/69551
12816         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
12817         looking through aliases adjust DECL_PT_UID to refer to the
12818         ultimate alias target.
12819
12820 2016-02-25  Martin Liska  <mliska@suse.cz>
12821
12822         PR middle-end/69919
12823         * alloc-pool.c (after_memory_report): New variable.
12824         * alloc-pool.h (base_pool_allocator ::release): Do not use
12825         the infrastructure if after_memory_report.
12826         * toplev.c (toplev::main): Mark after memory report.
12827
12828 2016-02-25  Richard Biener  <rguenther@suse.de>
12829
12830         PR tree-optimization/48795
12831         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
12832
12833 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
12834
12835         PR driver/68463
12836         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
12837         offloading is enabled and -fopenacc or -fopenmp is specified.
12838         (CRTOFFLOADEND): Likewise.
12839         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
12840         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
12841         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
12842         (offload_objects_file_name): New static var.
12843         (tool_cleanup): Remove offload_objects_file_name file.
12844         (find_offloadbeginend): Replace with ...
12845         (find_crtoffloadtable): ... this.
12846         (run_gcc): Remove offload_argc and offload_argv.
12847         Get offload_objects_file_name from -foffload-objects=... option.
12848         Read names of object files with offload from this file, pass them to
12849         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
12850         don't pass offloadbegin and offloadend to the linker.  Don't pass
12851         offload non-LTO files to the linker, because now they're not claimed.
12852
12853 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
12854
12855         PR ipa/69630
12856         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
12857         on builtin_unreachable.
12858
12859 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
12860
12861         PR rtl-optimization/69896
12862         * regcprop.c: Include cfgrtl.h.
12863         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
12864         than remembered mode, either delete it (if noop_move_p), or
12865         treat like copy_p but not noop_p instruction.
12866
12867 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12868
12869         PR debug/69705
12870         * dwarf2out.c (gen_variable_die): Work around buggy LTO
12871         - allow NULL decl for Fortran DW_TAG_common_block variables.
12872
12873 2016-02-24  Jason Merrill  <jason@redhat.com>
12874
12875         * common.opt (flifetime-dse): Add -flifetime-dse=1.
12876
12877 2016-02-24  Richard Biener  <rguenther@suse.de>
12878             Jakub Jelinek  <jakub@redhat.com>
12879
12880         PR middle-end/69760
12881         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
12882         conditionally executed ops to well-defined overflow behavior.
12883
12884 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12885
12886         PR middle-end/69915
12887         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
12888         elements.
12889
12890 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12891
12892         PR rtl-optimization/69886
12893         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
12894         argument.  Use it when checking validity of set instructions.
12895         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
12896         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
12897         callsite.
12898         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
12899         * store-motion.c (find_moveable_store): Update
12900         can_assign_to_reg_without_clobbers_p callsite.
12901
12902 2016-02-24  Richard Biener  <rguenther@suse.de>
12903
12904         PR middle-end/68963
12905         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
12906         bogus check.
12907         (record_nonwrapping_iv): Do not fall back to the low/high bound
12908         for non-constant IV bases if the stmt is not always executed.
12909
12910 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12911
12912         * config/arm/arm-cores.def (cortex-a32): New entry.
12913         * config/arm/arm-tables.opt: Regenerate.
12914         * config/arm/arm-tune.md: Regenerate.
12915         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
12916         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
12917         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
12918         for -mcpu and -mtune.
12919
12920 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12921
12922         PR target/69875
12923         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
12924         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
12925         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
12926         (atomic_loaddi_1): Delete.
12927         (atomic_loaddi): Rewrite expander using the above changes.
12928
12929 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12930
12931         PR c/69918
12932         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
12933         2 to 3.
12934
12935 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12936             Richard Biener  <rguenth@suse.de>
12937
12938         PR middle-end/69909
12939         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
12940         set_mem_attributes if tem is SSA_NAME which got expanded
12941         as a MEM.
12942
12943 2016-02-24  Richard Biener  <rguenther@suse.de>
12944
12945         PR tree-optimization/69907
12946         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
12947         end of permutations for BB vectorization.
12948
12949 2016-02-24  Christian Bruel  <christian.bruel@st.com>
12950
12951         * config/arm/arm-c.c (arm_option_override): Initialize
12952         target_option_current_node.
12953         * config/arm/arm.c (arm_pragma_target_parse): Replace
12954         build_target_option_node call by target_option_current_node.
12955         Set target_option_current_node.
12956         Fix comments.
12957
12958 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
12959
12960         PR target/69810
12961         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
12962         define_insn_and_split to define_insn.
12963         (zero_extendqi<mode>2_dot2): Same.
12964         (extendqi<mode>2_dot): Same.
12965         (extendqi<mode>2_dot2): Same.
12966
12967 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
12968
12969         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
12970         and add bypass for AES{D,E} and AESMC pairs.
12971         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
12972         and AESMC pairs.
12973
12974 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
12975
12976         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
12977         series for reciprocal square root in Exynos M1.
12978
12979 2016-02-23  Martin Sebor  <msebor@redhat.com>
12980
12981         PR c/69759
12982         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
12983         __builtin_alloca_with_align.
12984
12985 2016-02-23  Richard Henderson  <rth@redhat.com>
12986
12987         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
12988         (ix86_register_pragmas): Remove __seg_tls.
12989         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
12990         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
12991         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
12992         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
12993         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
12994         * doc/extend.texi (__seg_tls): Remove item.
12995
12996 2016-02-23  Richard Biener  <rguenther@suse.de>
12997
12998         * alloc-pool.h (struct allocation_object): Make id member
12999         conditional on CHECKING_P again.
13000         (get_instance): Adjust.
13001         (base_pool_allocator): Likewise.
13002
13003 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
13004
13005         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
13006         (parallelize_loops): In OpenACC kernels mode, set n_threads to
13007         zero.
13008         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
13009         flag_openacc.
13010         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
13011
13012 2016-02-23  Richard Biener  <rguenther@suse.de>
13013
13014         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
13015         * bitmap.h (struct bitmap_usage): Likewise.
13016         (bitmap_move): Declare.
13017         * bitmap.c (register_overhead): Take size_t argument.
13018         (bitmap_move): New function.
13019         * df-problems.c (df_rd_transfer_function): Use bitmap_move
13020         to properly account overhead.
13021         * tree.c (free_node): Use tree_size.
13022
13023 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
13024
13025         PR c++/69902
13026         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
13027         when inverting comparison.
13028
13029         PR c/69900
13030         * common.opt (Wunreachable-code): Add Warning flag.
13031
13032 2016-02-23  Mark Wielaard  <mjw@redhat.com>
13033             Jakub Jelinek  <jakub@redhat.com>
13034
13035         PR c/69911
13036         * cgraphunit.c (check_global_declaration): Check main_input_filename
13037         and DECL_SOURCE_FILE are not NULL.
13038
13039 2016-02-23  Martin Jambor  <mjambor@suse.cz>
13040
13041         PR tree-optimization/69666
13042         * tree-sra.c (sra_modify_assign): Do not attempt to create
13043         default_def replacements for unscalarizable regions.
13044
13045 2016-02-20  Mark Wielaard  <mjw@redhat.com>
13046
13047         PR c/28901
13048         * cgraphunit.c (check_global_declaration): Check level of
13049         warn_unused_const_variable and main_input_filename.
13050         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
13051         (-Wunused-variable): For C implies -Wunused-const-variable=1.
13052         (-Wunused-const-variable): Explain levels 1 and 2.
13053
13054 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
13055
13056         PR target/69888
13057         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
13058         identical arguments.  Formatting and spelling fixes.
13059
13060         PR target/69885
13061         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
13062         be specified.
13063
13064         PR target/69894
13065         PR target/69895
13066         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
13067         and m68k-devices.def.
13068         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
13069         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
13070
13071 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
13072
13073         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
13074         and HImode registers.
13075
13076 2016-02-22  Richard Biener  <rguenther@suse.de>
13077
13078         PR tree-optimization/69882
13079         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
13080         preserve permutations present because of gaps.
13081         (vect_supported_load_permutation_p): Always continue checking
13082         permutations after vect_attempt_slp_rearrange_stmts.
13083
13084 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
13085
13086         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
13087         min_profitable_estimate, rather than min_profitable_iters.
13088
13089 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
13090
13091         PR target/69885
13092         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
13093         SImode for last match_operand.
13094
13095 2016-02-22  Martin Liska  <mliska@suse.cz>
13096
13097         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
13098         return bitsize - 1 as the return value.
13099
13100 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
13101
13102         PR target/69806
13103         PR target/54089
13104         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
13105         Handle negative shift counts.
13106         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
13107         force_reg on the shift constant.
13108         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
13109         (lshrsi3_d): Handle negative shift counts.
13110
13111 2016-02-22  Richard Biener  <rguenther@suse.de>
13112             Tom de Vries  <tom@codesourcery.com>
13113
13114         * graph.c: Include dumpfile.h.
13115         (print_graph_cfg): Split into three overloads.
13116         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
13117
13118 2016-02-22  Tom de Vries  <tom@codesourcery.com>
13119
13120         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
13121         dump-fn.
13122
13123 2016-02-22  Richard Biener  <rguenther@suse.de>
13124
13125         PR ipa/37448
13126         * ipa-inline-transform.c (inline_call): When not updating
13127         overall summaries adjust self size by the growth estimate.
13128         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
13129         hash-set, do not update overall summaries here.  Renamed from ...
13130         (inline_to_all_callers): ... this which is now wrapping the
13131         above and performing delayed overall summary update.
13132         (early_inline_small_functions): Delay updating of the overall
13133         summary.
13134
13135 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
13136
13137         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
13138         variable.
13139
13140 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
13141
13142         PR driver/69805
13143         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
13144         :%* in %:gt() argument.
13145         (greater_than_spec_func): Adjust for expecting only numbers,
13146         if there are more than two numbers, compare the last two.
13147
13148 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
13149
13150         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
13151         -Wnarrowing with -std.
13152
13153 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
13154
13155         PR c++/69851
13156         * expr.c (store_field): Don't use bit-field path if exp is
13157         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
13158         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
13159         and the assignment can be performed by bitwise copy.  Formatting
13160         fix.
13161
13162         PR middle-end/69838
13163         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
13164         call copy_reg_eh_region_note_forward on before and/or after sequences
13165         and remove note from insn if it no longer can throw.
13166
13167         PR target/69820
13168         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
13169         if TARGET_AVX512BW.
13170
13171 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13172
13173         * config/s390/vector.md: Add missing commutative operand markers
13174         to the patterns which qualify for one.
13175         * config/s390/vx-builtins.md: Likewise.
13176
13177 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13178
13179         * config/s390/vector.md (VI, VI_QHS): Add single element vector
13180         types to mode iterators.
13181         (vec_double): ... and mode attribute.
13182         * config/s390/vx-builtins.md (non_vec_int): Likewise.
13183
13184 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13185
13186         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
13187         Change the predicate of op2 from nonimmediate to general and let
13188         reload fix it if necessary.
13189
13190 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13191
13192         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
13193
13194 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13195
13196         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
13197         mode.
13198
13199 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13200
13201         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
13202         * config/s390/s390.c (s390_expand_vec_movstr): New function.
13203         * config/s390/s390.md ("movstr<P:mode>"): Call
13204         s390_expand_vec_movstr.
13205
13206 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13207
13208         * config/s390/s390.md: Add missing output modifier for operand 1
13209         to print it as address properly.
13210
13211 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13212
13213         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
13214         * config/s390/2964.md: New file.
13215         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
13216         of insn grouping attributes depending on the CPU level.
13217         (s390_get_unit_mask): New function.
13218         (s390_sched_score): Remove the OOO from the scheduling macros.
13219         Add loop to calculate a score for the instruction mix.
13220         (s390_sched_reorder): Likewise plus improve debug output.
13221         (s390_sched_variable_issue): Rename macros as above.  Calculate
13222         the unit distances after actually scheduling an insn.  Improve
13223         debug output.
13224         (s390_sched_init): Clear last_scheduled_unit_distance array.
13225         * config/s390/s390.md: Include 2964.md.
13226
13227 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
13228
13229         PR target/69671
13230         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
13231         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
13232         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
13233         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
13234         *avx512f_<code>v8div16qi2_mask_1): New insns.
13235
13236 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
13237
13238         PR target/68404
13239         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
13240         2016-02-09 change.
13241
13242         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
13243         earlyclobber from target.  Use wF constraint for fused memory
13244         address.
13245         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
13246
13247 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
13248             Martin Liska  <mliska@suse.cz>
13249
13250         PR sanitizer/69863
13251         * cfgexpand.c (asan_sanitize_stack_p): New function.
13252         (partition_stack_vars): Use the function.
13253         (expand_stack_vars): Likewise.
13254         (defer_stack_allocation): Likewise.
13255         (expand_used_vars): Likewise.
13256
13257 2016-02-18  Richard Biener  <rguenther@suse.de>
13258
13259         PR middle-end/69553
13260         * fold-const.c (operand_equal_p): Properly compare offsets for
13261         IMAGPART_EXPR and ARRAY_REF.
13262
13263 2016-02-18  Nick Clifton  <nickc@redhat.com>
13264
13265         PR target/62254
13266         PR target/69610
13267         * config/arm/arm.c (arm_option_override_internal): Disable
13268         interworking if the target does not support thumb instructions.
13269         (arm_reload_in_hi): Handle the case where a register to register
13270         move needs reloading because there is no simple pattern to handle
13271         it.
13272         (arm_reload_out_hi): Likewise.
13273
13274 2016-02-18  Richard Biener  <rguenther@suse.de>
13275
13276         PR middle-end/69854
13277         * match.pd: Don't use fold_binary or fold_unary for folding
13278         constants.
13279
13280 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
13281
13282         PR c++/69850
13283         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
13284         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
13285         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
13286         warn on gimple_no_warning_p statements.
13287
13288 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
13289
13290         * doc/extend.texi (C++ Attributes): Correct description of
13291         warn_unused type attribute.
13292
13293 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13294
13295         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
13296         correct instruction.
13297
13298 2016-02-17  Richard Biener  <rguenther@suse.de>
13299
13300         PR rtl-optimization/69609
13301         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
13302         (find_traces_1_round): When ending a trace update cached priority
13303         of successors.
13304         (bb_to_key): Use cached priority when available.
13305         (copy_bb): Initialize cached priority.
13306         (reorder_basic_blocks_software_trace_cache): Likewise.
13307
13308 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13309
13310         PR target/69161
13311         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
13312         New predicate.
13313         (aarch64_comparison_operator): Break overly long line into two.
13314         (aarch64_comparison_operation): Likewise.
13315         * config/aarch64/aarch64.md (cstorecc4): Use
13316         aarch64_comparison_operator_mode instead of
13317         aarch64_comparison_operator.
13318         (cstore<mode>4): Likewise.
13319         (aarch64_cstore<mode>): Likewise.
13320         (*cstoresi_insn_uxtw): Likewise.
13321         (cstore<mode>_neg): Likewise.
13322         (*cstoresi_neg_uxtw): Likewise.
13323
13324 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13325
13326         PR target/69161
13327         * config/arm/predicates.md (arm_comparison_operator_mode):
13328         New predicate.
13329         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
13330         instead of arm_comparison_operator.
13331         (*mov_negscc): Likewise.
13332         (*mov_notscc): Likewise.
13333         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
13334         (*thumb2_mov_negscc): Likewise.
13335         (*thumb2_mov_negscc_strict_it): Likewise.
13336         (*thumb2_mov_notscc): Likewise.
13337         (*thumb2_mov_notscc_strict_it): Likewise.
13338
13339 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
13340
13341         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
13342         Add missing return.
13343
13344 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
13345
13346         * config/visium/visium.c (machine_libfunc_index): New enum.
13347         (machine_libfuncs): New structure.
13348         (visium_libfuncs): New static variable.
13349         (TARGET_INIT_LIBFUNCS): Define to...
13350         (visium_init_libfuncs): ...this.  New function.
13351         (expand_block_move_4): Use the appropriate libfunc.
13352         (expand_block_move_2): Likewise.
13353         (expand_block_move_1): Likewise.
13354         (expand_block_set_4): Likewise.
13355         (expand_block_set_2): Likewise.
13356         (expand_block_set_1): Likewise.
13357         (visium_trampoline_init): Likewise.
13358
13359 2016-02-17  Nick Clifton  <nickc@redhat.com>
13360
13361         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
13362         TI's devices.csv file as of March 2016.
13363
13364 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13365
13366         PR Target/48344
13367         * opts-global.c (handle_common_deferred_options): Introduce and
13368         initialize two global variables to remember command-line options
13369         specifying a stack-limiting register.
13370         * opts.h: Add extern declarations of the two new global variables.
13371         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
13372         variable based on the values of the two new global variables.
13373
13374 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13375
13376         PR c/69835
13377         * common.opt (Wnonnull-compare): New warning.
13378         * doc/invoke.texi (-Wnonnull): Remove text about comparison
13379         of arguments against NULL.
13380         (-Wnonnull-compare): Document.
13381         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
13382         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
13383         * passes.def (pass_warn_nonnull_compare): Add.
13384         * gimple-ssa-nonnull-compare.c: New file.
13385
13386 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13387
13388         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
13389         AARCH64_EXTRA_TUNE_RECIP_SQRT.
13390
13391 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13392
13393         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
13394         reciprocal sqrt for -mlow-precision-recip-sqrt.
13395
13396 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13397             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13398
13399         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
13400         always use lane loads to construct non-constant vectors.
13401
13402 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13403
13404         * config/aarch64/aarch64.md
13405         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
13406         constraints for operand 3.
13407         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
13408
13409 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13410             Richard Biener  <rguenther@suse.de>
13411
13412         PR tree-optimization/69820
13413         * tree-vect-patterns.c (type_conversion_p): Return false if
13414         *orig_type is unsigned single precision or boolean.
13415         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
13416         Formatting fix.
13417
13418 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13419
13420         PR rtl-optimization/69764
13421         PR rtl-optimization/69771
13422         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
13423         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
13424
13425 2016-02-16  Richard Biener  <rguenther@suse.de>
13426
13427         PR tree-optimization/69776
13428         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
13429         sets from caller.
13430         (indirect_refs_may_alias_p): Likewise.
13431         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
13432         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
13433         according to tbaa_p.
13434         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
13435         (optimize_stmt): For redundant store discovery do not allow tbaa.
13436
13437 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
13438
13439         PR tree-optimization/69714
13440         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
13441         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
13442
13443 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
13444
13445         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
13446         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
13447         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
13448         * config/arc/arc.c (arc_init): Check FPU options.
13449         (get_arc_condition_code): Handle new CC_FPU* modes.
13450         (arc_select_cc_mode): Likewise.
13451         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
13452         register pair only. Allow access for ARCv2 accumulator.
13453         (gen_compare_reg): Whenever we have FPU support use FPU compare
13454         instructions.
13455         (arc_reorg): Don't generate brcc insns when FPU compare
13456         instructions are involved.
13457         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
13458         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
13459         floating point emulation.
13460         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
13461         (REVERSE_CONDITION): Add new CC_FPU* modes.
13462         (TARGET_FP_SP_BASE): Define.
13463         (TARGET_FP_DP_BASE): Likewise.
13464         (TARGET_FP_SP_FUSED): Likewise.
13465         (TARGET_FP_DP_FUSED): Likewise.
13466         (TARGET_FP_SP_CONV): Likewise.
13467         (TARGET_FP_DP_CONV): Likewise.
13468         (TARGET_FP_SP_SQRT): Likewise.
13469         (TARGET_FP_DP_SQRT): Likewise.
13470         (TARGET_FP_DP_AX): Likewise.
13471         * config/arc/arc.md (ARCV2_ACC): New constant.
13472         (type): New fpu type attribute.
13473         (SDF): Conditional iterator.
13474         (cstore<mode>, cbranch<mode>): Change expand condition.
13475         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
13476         handles FPU/FPX cases as well.
13477         * config/arc/arc.opt (mfpu): New option.
13478         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
13479         Renamed.
13480         (adddf3, muldf3, subdf3): Removed.
13481         * config/arc/predicates.md (proper_comparison_operator): Recognize
13482         CC_FPU* modes.
13483         * config/arc/fpu.md: New file.
13484         * doc/invoke.texi (ARC Options): Document mfpu option.
13485
13486 2016-02-16  Richard Biener  <rguenther@suse.de>
13487
13488         PR rtl-optimization/69291
13489         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
13490         noce_operand_ok check.
13491
13492 2016-02-16  Tom de Vries  <tom@codesourcery.com>
13493
13494         PR lto/67709
13495         * omp-low.c (simd_clone_create): Remove call to
13496         symtab->call_cgraph_insertion_hooks.
13497
13498 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13499
13500         PR tree-optimization/69802
13501         * tree-ssa-reassoc.c (update_range_test): If op is
13502         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
13503         op == 1 test of precision 1 integral op, otherwise handle
13504         that case as op itself.  Fix up formatting.
13505         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
13506         up formatting.
13507
13508 2016-02-16  Richard Biener  <rguenther@suse.de>
13509
13510         PR tree-optimization/69586
13511         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
13512         types for conversion sources.
13513
13514 2016-02-16  Richard Biener  <rguenther@suse.de>
13515
13516         PR middle-end/69801
13517         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
13518         mask OEP_ADDRESS_OF.
13519
13520 2016-02-16  Alan Modra  <amodra@gmail.com>
13521
13522         PR target/68973
13523         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
13524         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
13525         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
13526         (p8_mtvsrwz): New.
13527         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
13528         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
13529         (p8_fmrgow_<mode>): Likewise.
13530         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
13531         changes.
13532         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
13533         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
13534         to use movdi_internal64.  Remove op0_di.
13535         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
13536
13537 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
13538
13539         Add support for the FCCMP insn types
13540
13541         * config/aarch64/aarch64.md (fccmp): Change insn type.
13542         (fccmpe): Likewise.
13543         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
13544         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
13545         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
13546         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
13547         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
13548         * config/arm/types.md (fccmps): Add new insn type.
13549         (fccmpd): Likewise.
13550
13551 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13552
13553         * alias.c (get_alias_set): Fix a typo in comment.
13554
13555 2016-02-15  Richard Biener  <rguenther@suse.de>
13556
13557         PR tree-optimization/69595
13558         * match.pd: Complete range test simplification to true.
13559
13560 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
13561
13562         PR rtl-optimization/69648
13563         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
13564         pic_offset_table_rtx.
13565
13566         PR rtl-optimization/69752
13567         * ira.c (update_equiv_regs): When looking for more than a single SET,
13568         also take other side effects into account.
13569
13570 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
13571
13572         * config/s390/s390.c (s390_function_profiler): Add a new sequence
13573         for z900+ CPUs in 31-bit mode.
13574
13575 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
13576
13577         * common/config/s390/s390-common.c (s390_supports_split_stack):
13578         New function.
13579         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
13580         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
13581         * config/s390/s390.c (struct machine_function): New field
13582         split_stack_varargs_pointer.
13583         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
13584         in s390_emit_prologue.
13585         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
13586         vararg pointer.
13587         (morestack_ref): New global.
13588         (SPLIT_STACK_AVAILABLE): New macro.
13589         (s390_expand_split_stack_prologue): New function.
13590         (s390_live_on_entry): New function.
13591         (s390_va_start): Use split-stack vararg pointer if appropriate.
13592         (s390_asm_file_end): Emit the split-stack note sections.
13593         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
13594         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
13595         (UNSPECV_SPLIT_STACK_CALL): New unspec.
13596         (UNSPECV_SPLIT_STACK_DATA): New unspec.
13597         (split_stack_prologue): New expand.
13598         (split_stack_space_check): New expand.
13599         (split_stack_data): New insn.
13600         (split_stack_call): New expand.
13601         (split_stack_call_*): New insn.
13602         (split_stack_cond_call): New expand.
13603         (split_stack_cond_call_*): New insn.
13604
13605 2016-02-15  Richard Biener  <rguenther@suse.de>
13606
13607         PR tree-optimization/69783
13608         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13609         Add trivially correct cases.
13610
13611 2016-02-15  Tom de Vries  <tom@codesourcery.com>
13612
13613         PR lto/69655
13614         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
13615         do_force_output.
13616         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
13617
13618 2016-02-15  Richard Biener  <rguenther@suse.de>
13619
13620         PR tree-optimization/69776
13621         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
13622         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
13623         indicate whether we can use TBAA to disambiguate against stores.
13624         Use alias-set zero if not.
13625         (visit_reference_op_store): Do not use TBAA when looking up
13626         redundant stores.
13627         * tree-ssa-pre.c (compute_avail): Use TBAA here.
13628         (eliminate_dom_walker::before_dom_children): But not when looking
13629         up redundant stores.
13630
13631 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
13632
13633         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
13634
13635 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
13636
13637         *  config/i386/znver1.md
13638         (znver1_pop, znver1_pop_mem,
13639         znver1_load_imov_double_store,
13640         znver1_load_imov_direct_store,
13641         znver1_load_imov_direct_load,
13642         znver1_load_imov_double_load): Add new.
13643         (znver1_insn, znver1_insn_load): Add icmov type.
13644         (znver1_sseavx_fma,
13645         znver1_sseavx_fma_load,
13646         znver1_avx256_fma,
13647         znver1_avx256_fma_load): Fix pipe usage.
13648
13649 2016-02-14  Alan Modra  <amodra@gmail.com>
13650
13651         PR target/68973
13652         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
13653         with an invalid hard reg, reload just the reg not the entire
13654         pre/post-inc/dec address expression.
13655
13656 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
13657
13658         PR target/67260
13659         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
13660         fixed R1_REG scratch reg.
13661         (sibcall_value_pcrel_fdpic): Likewise.
13662
13663 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
13664
13665         PR target/67636
13666         PR target/64345
13667         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
13668
13669 2016-02-12  Walter Lee  <walt@tilera.com>
13670
13671         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
13672         * config/tilegx/t-tilegx: Likewise.
13673
13674 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13675
13676         PR other/69554
13677         * diagnostic-show-locus.c (struct line_span): New struct.
13678         (layout::get_first_line): Delete.
13679         (layout::get_last_line): Delete.
13680         (layout::get_num_line_spans): New member function.
13681         (layout::get_line_span): Likewise.
13682         (layout::print_heading_for_line_span_index_p): Likewise.
13683         (layout::get_expanded_location): Likewise.
13684         (layout::calculate_line_spans): Likewise.
13685         (layout::m_first_line): Delete.
13686         (layout::m_last_line): Delete.
13687         (layout::m_line_spans): New field.
13688         (layout::layout): Update comment.  Replace m_first_line and
13689         m_last_line with m_line_spans, replacing their initialization
13690         with a call to calculate_line_spans.
13691         (diagnostic_show_locus): When printing source lines and
13692         annotations, rather than looping over a single span
13693         of lines, instead loop over each line_span within
13694         the layout, with an inner loop over the lines within them.
13695         Call the context's start_span callback when changing line spans.
13696         * diagnostic.c (diagnostic_initialize): Initialize start_span.
13697         (diagnostic_build_prefix): Break out the building of the location
13698         part of the string into...
13699         (diagnostic_get_location_text): ...this new function, rewriting
13700         it from nested ternary expressions to a sequence of "if"
13701         statements.
13702         (default_diagnostic_start_span_fn): New function.
13703         * diagnostic.h (diagnostic_start_span_fn): New typedef.
13704         (diagnostic_context::start_span): New field.
13705         (default_diagnostic_start_span_fn): New prototype.
13706
13707 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13708
13709         PR driver/69779
13710         * gcc.c (driver::finalize): Fix cleanup of "specs".
13711
13712 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13713
13714         PR driver/69265
13715         PR driver/69453
13716         * gcc.c (driver::driver): Initialize m_option_suggestions.
13717         (driver::~driver): Clean up m_option_suggestions.
13718         (suggest_option): Convert to...
13719         (driver::suggest_option): ...this, and split out into
13720         driver::build_option_suggestions and find_closest_string.
13721         (driver::build_option_suggestions): New function, from
13722         first half of suggest_option.  Special-case
13723         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
13724         the sanitizer_opts array.  For options of enum types, add the
13725         various enum values to the candidate strings.
13726         (driver::handle_unrecognized_options): Remove "const".
13727         * gcc.h (driver::handle_unrecognized_options): Likewise.
13728         (driver::build_option_suggestions): New decl.
13729         (driver::suggest_option): New decl.
13730         (driver::m_option_suggestions): New field.
13731         * opts-common.c (add_misspelling_candidates): New function.
13732         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
13733         and make non-static.
13734         * opts.h (sanitizer_opts): New array decl.
13735         (add_misspelling_candidates): New function decl.
13736         * spellcheck.c (find_closest_string): New function.
13737         * spellcheck.h (find_closest_string): New function decl.
13738
13739 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13740
13741         PR rtl-optimization/69764
13742         PR rtl-optimization/69771
13743         * optabs.c (expand_binop_directly): For shift_optab_p, force
13744         convert_modes with VOIDmode if xop1 has VOIDmode.
13745
13746 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
13747
13748         PR target/69729
13749         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
13750         to correctly determine instrumentation thunks.
13751
13752 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13753
13754         PR ipa/69241
13755         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
13756         type by reference, force lhs on the call.
13757
13758         PR ipa/68672
13759         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
13760         Compute retval and retbnd early in all cases if split_part_return_p
13761         and return_bb is not EXIT.  Remove all clobber stmts and reset
13762         all debug stmts that refer to SSA_NAMEs defined in split part,
13763         except if it is retval, in that case replace the old retval with the
13764         lhs of the call to the split part.
13765
13766 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13767
13768         revert:
13769         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13770
13771         PR middle-end/66726
13772         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
13773         whose result is used in PHI.
13774         (maybe_optimize_range_tests): Likewise.
13775         (final_range_test_p): Likweise.
13776
13777 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13778
13779         PR middle-end/66726
13780         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
13781         whose result is used in PHI.
13782         (maybe_optimize_range_tests): Likewise.
13783         (final_range_test_p): Likweise.
13784
13785 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13786
13787         * cgraph.c: Spelling fixes - behaviour -> behavior and
13788         neighbour -> neighbor.
13789         * target.def: Likewise.
13790         * sel-sched.c: Likewise.
13791         * config/mips/mips.c: Likewise.
13792         * config/arc/arc.md: Likewise.
13793         * config/arm/cortex-a57.md: Likewise.
13794         * config/arm/arm.c: Likewise.
13795         * config/arm/neon.md: Likewise.
13796         * config/arm/arm-c.c: Likewise.
13797         * config/vms/vms-c.c: Likewise.
13798         * config/s390/s390.c: Likewise.
13799         * config/i386/znver1.md: Likewise.
13800         * config/i386/i386.c: Likewise.
13801         * config/ia64/hpux-unix2003.h: Likewise.
13802         * config/msp430/msp430.md: Likewise.
13803         * config/rx/rx.c: Likewise.
13804         * config/rx/rx.md: Likewise.
13805         * config/aarch64/aarch64-simd.md: Likewise.
13806         * config/aarch64/aarch64.c: Likewise.
13807         * config/nvptx/nvptx.c: Likewise.
13808         * config/bfin/bfin.c: Likewise.
13809         * config/cris/cris.opt: Likewise.
13810         * config/rs6000/rs6000.c: Likewise.
13811         * target.h: Likewise.
13812         * spellcheck.c: Likewise.
13813         * ira-build.c: Likewise.
13814         * tree-inline.c: Likewise.
13815         * builtins.c: Likewise.
13816         * lra-constraints.c: Likewise.
13817         * explow.c: Likewise.
13818         * hwint.h: Likewise.
13819         * targhooks.c: Likewise.
13820         * tree-vect-data-refs.c: Likewise.
13821         * expr.c: Likewise.
13822         * doc/tm.texi: Likewise.
13823         * doc/extend.texi: Likewise.
13824         * doc/install.texi: Likewise.
13825         * doc/md.texi: Likewise.
13826         * tree-ssa-tail-merge.c: Likewise.
13827         * sched-int.h: Likewise.
13828         * match.pd: Likewise.
13829         * sched-ebb.c: Likewise.
13830         * target.def (omit_struct_return_reg): Likewise.
13831         * gimple-ssa-isolate-paths.c: Likewise.
13832         (find_implicit_erroneous_behaviour): Renamed to...
13833         (find_implicit_erroneous_behavior): ... this.
13834         (find_explicit_erroneous_behaviour): Renamed to...
13835         (find_explicit_erroneous_behavior): ... this.
13836         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
13837
13838 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
13839
13840         PR rtl-optimization/64682
13841         PR rtl-optimization/69567
13842         PR rtl-optimization/69737
13843         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
13844         in I2 as well, just lose it.
13845
13846 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13847
13848         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
13849         New variable.
13850         (aarch64_last_printed_tune_string): Likewise.
13851         (aarch64_declare_function_name): Only output .arch assembler
13852         directive if it will be different from the previously output
13853         directive.  Same for .tune comment but only if -dA is set.
13854         (aarch64_start_file): New function.
13855         (TARGET_ASM_FILE_START): Define.
13856
13857 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
13858
13859         PR plugins/69758
13860         * Makefile.in (PLUGIN_HEADERS): Add params.list.
13861
13862 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
13863
13864         PR target/65313
13865         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
13866         -Wmaybe-uninitialized warning.
13867
13868 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
13869
13870         PR target/69713
13871         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
13872
13873 2016-02-11  Richard Biener  <rguenther@suse.de>
13874
13875         PR rtl-optimization/69291
13876         * ifcvt.c (noce_try_store_flag_constants): Do not allow
13877         subexpressions affected by changing the result.
13878
13879 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
13880
13881         PR target/69148
13882         * lra-constraints.c (curr_insn_transform): Find in/out operands
13883         for secondary memory moves.  Update dups.
13884
13885 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
13886
13887         PR tree-optimization/69652
13888         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
13889         to nested loop, did source re-formatting, skip debug statements,
13890         add check on statement with volatile operand, remove dead scalar
13891         statements.
13892
13893 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
13894             Patrick Palka  <ppalka@gcc.gnu.org>
13895
13896         PR ipa/69241
13897         PR c++/69649
13898         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
13899         calls if the return type is TREE_ADDRESSABLE.
13900         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
13901         * ipa-split.c (split_function): Fix doubled "we" in comment.
13902         Use void return type for the split part even if
13903         !split_point->split_part_set_retval.
13904
13905 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
13906
13907         PR tree-optimization/68021
13908         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
13909         when computing the value of biv cand by itself.
13910
13911 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
13912
13913         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
13914         (cortexa57_tunings): Likewise.
13915         (cortexa72_tunings): Likewise.
13916         (arch_macro_fusion_pair_p): Add support for AES fusion.
13917         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
13918         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
13919         Allow virtual registers before reload so early scheduling works.
13920         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
13921         correct latency and pipeline.
13922         (cortex_a57_crypto_complex): Likewise.
13923         (cortex_a57_crypto_xor): Likewise.
13924         (define_bypass): Add AES bypass.
13925
13926 2016-02-10  Richard Biener  <rguenther@suse.de>
13927
13928         PR tree-optimization/69726
13929         * passes.def: Add DCE pass before late uninit.
13930         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
13931         really fixup if-conversions job.
13932
13933 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
13934
13935         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
13936         (arm_cortex_a57_tune): Likewise.
13937         (aarch_macro_fusion_pair_p): Add support for AES fusion.
13938         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
13939
13940 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
13941
13942         * timevar.def (TV_PHASE_DBGINFO): Delete.
13943         (TV_PHASE_CHECK_DBGINFO): Likewise.
13944         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
13945
13946 2016-02-10  Richard Biener  <rguenther@suse.de>
13947
13948         PR tree-optimization/69719
13949         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13950         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
13951
13952 2016-02-09  Andrew Pinski  <apinski@cavium.com>
13953
13954         PR tree-opt/69282
13955         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
13956         get_vcond_mask_icode returns false.
13957
13958 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
13959
13960         PR target/68404
13961         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
13962         an ADDIS that adds a pointer to a large constant that sets the
13963         upper16 bits with a load operation.
13964
13965 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
13966
13967         PR target/68532
13968         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
13969         order.
13970         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
13971         endian.
13972         (vzipq_s16): Likewise.
13973         (vzipq_s32): Likewise.
13974         (vzipq_f32): Likewise.
13975         (vzipq_u8): Likewise.
13976         (vzipq_u16): Likewise.
13977         (vzipq_u32): Likewise.
13978         (vzipq_p8): Likewise.
13979         (vzipq_p16): Likewise.
13980
13981 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
13982
13983         PR target/68532
13984         * config/arm/arm.c (neon_endian_lane_map): New function.
13985         (neon_vector_pair_endian_lane_map): New function.
13986         (arm_evpc_neon_vuzp): Allow for big endian lane order.
13987         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
13988         endian.
13989         (vuzpq_s16): Likewise.
13990         (vuzpq_s32): Likewise.
13991         (vuzpq_f32): Likewise.
13992         (vuzpq_u8): Likewise.
13993         (vuzpq_u16): Likewise.
13994         (vuzpq_u32): Likewise.
13995         (vuzpq_p8): Likewise.
13996         (vuzpq_p16): Likewise.
13997
13998 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
13999
14000         PR target/69634
14001         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
14002         debug insns.
14003
14004 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
14005
14006         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
14007         truncate const_int operand 1 to QImode.
14008
14009 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
14010
14011         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
14012         corresponding to an abnormal edge.
14013
14014 2016-02-09  Tom de Vries  <tom@codesourcery.com>
14015
14016         PR tree-optimization/69599
14017         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
14018         function.
14019         (find_func_aliases_for_builtin_call, find_func_clobbers)
14020         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
14021         partition.
14022
14023 2016-02-09  Richard Biener  <rguenther@suse.de>
14024
14025         PR tree-optimization/69715
14026         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
14027         LHS on calls as non-rewritable.
14028
14029 2016-02-09  Tom de Vries  <tom@codesourcery.com>
14030
14031         PR lto/69707
14032         * lto-wrapper.c (append_diag_options): New function.
14033         (compile_offload_image): Call append_diag_options.
14034
14035 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
14036
14037         PR other/69722
14038         * doc/extend.texi (Flag Output Operands): Correct sectioning.
14039         Minor copy-edit to fix verb tenses.
14040
14041 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
14042
14043         PR tree-optimization/69209
14044         * ipa-split.c (split_function): If split part is not
14045         returning retval, retval has gimple type but is not
14046         gimple value, force it into a SSA_NAME first.
14047
14048 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
14049
14050         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
14051         outdated section.
14052
14053 2016-02-08  Jason Merrill  <jason@redhat.com>
14054
14055         PR c++/69631
14056         * convert.c (convert_to_integer_1): Check dofold on truncation
14057         distribution.
14058         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
14059         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
14060         Rename from *_nofold.
14061         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
14062         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
14063
14064 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
14065
14066         PR target/60410
14067         * tree.c (build_common_tree_nodes): Remove short_double argument.
14068         All callers changed.
14069         * tree.h (build_common_tree_nodes): Adjust declaration.
14070         * doc/invoke.texi (-fshort-double): Remove documentation.
14071         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
14072         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
14073         * lto-wrapper.c (merge_and_complain, append_compiler_options)
14074         (append_linker_options): Don't handle OPT_fshort_double.
14075
14076         PR rtl-optimization/68730
14077         * lra-remat.c (insn_to_cand_activation): New static variable.
14078         (lra_remat): Allocate and free it.
14079         (create_cand): New arg activation. Initialize a field in
14080         insn_to_cand_activation if it is nonnull.
14081         (create_cands): Pass the activation insn to create_cand when making
14082         a candidate involving an output reload.  Reorganize code a little.
14083         (do_remat): Keep track of active status of candidates in a separate
14084         bitmap.
14085
14086 2016-02-08  Richard Biener  <rguenther@suse.de>
14087
14088         PR tree-optimization/69719
14089         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14090         Properly use absolute of the difference of the two offsets to
14091         compare or adjust the segment length.
14092
14093 2016-02-08  Richard Biener  <rguenther@suse.de>
14094             Jeff Law  <law@redhat.com>
14095
14096         PR target/68273
14097         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
14098         types for anonymous SSA names.
14099
14100 2016-02-08   Richard Biener  <rguenther@suse.de>
14101
14102         PR rtl-optimization/69274
14103         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
14104
14105 2016-02-08  Jeff Law  <law@redhat.com>
14106
14107         PR tree-optimization/65917
14108         * tree-ssa-dom.c (record_temporary_equivalences): Record both
14109         equivalences from if (x == y) style conditionals.
14110         (loop_depth_of_name): Remove.
14111         (record_equality): Remove loop depth check.
14112         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
14113         (const_and_copies::record_const_or_copy_raw): New member function.
14114         * tree-ssa-scopedtables.c
14115         (const_and_copies::record_const_or_copy_raw): New, factored out of
14116         (const_and_copies::record_const_or_copy): Call new member function.
14117
14118 2016-02-05  Jeff Law  <law@redhat.com>
14119
14120         PR tree-optimization/68541
14121         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
14122         (count_stmts_in_block): New function.
14123         (poor_ifcvt_candidate_code): Likewise.
14124         (is_feasible_trace): Add some heuristics to determine when path
14125         splitting is profitable.
14126         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
14127         is a diamond with a single exit.
14128
14129 2016-02-05  Martin Sebor  <msebor@redhat.com>
14130
14131         PR c++/69662
14132         * doc/invoke.texi: Update -Wplacement-new to take an optional
14133         argument.
14134
14135 2016-02-06  Richard Henderson  <rth@redhat.com>
14136
14137         PR c/69643
14138         * tree.c (tree_nop_conversion_p): Do not strip casts into or
14139         out of non-standard address spaces.
14140
14141 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
14142
14143         PR rtl-optimization/69691
14144         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
14145
14146 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
14147
14148         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
14149         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
14150         (*ieee128_mfvsrd_64bit): Likewise.
14151         (*ieee128_mfvsrd_32bit): Likewise.
14152
14153 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
14154
14155         PR target/69369
14156         Revert r232560:
14157         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14158
14159         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
14160         instrumented_version.
14161
14162 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
14163
14164         * doc/invoke.texi (Optimize Options): In table of --param options
14165         rename second occurrence of tracer-min-branch-ratio to
14166         tracer-min-branch-probability, rename
14167         tracer-min-branch-ratio-feedback to
14168         tracer-min-branch-probability-feedback and clarify description,
14169         rename sched-spec-state-edge-prob-cutoff to
14170         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
14171         to selsched-insns-to-rename, rename lto-minpartition to
14172         lto-min-partition, delete reorder-blocks-duplicate and
14173         reorder-blocks-duplicate-feedback.
14174
14175 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14176
14177         * config/s390/s390.c (s390_register_info_set_ranges): Remove
14178         superfluous loops.
14179
14180 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14181
14182         * doc/extend.texi: S/390: Correct some typos.
14183
14184 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14185
14186         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
14187
14188 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14189
14190         PR target/69625
14191         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
14192         (s390_register_info_gprtofpr): Use new macros above.
14193         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
14194         its name.
14195         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
14196         its name.  Adjust restore and save gpr ranges.
14197         (s390_register_info_set_ranges): New function.
14198         (s390_register_info): Use new macros above.  Call
14199         s390_register_info_set_ranges.
14200         (s390_optimize_register_info): Likewise.
14201         (s390_hard_regno_rename_ok): Use new macros.
14202         (s390_hard_regno_scratch_ok): Likewise.
14203         (s390_emit_epilogue): Likewise.
14204         (s390_can_use_return_insn): Likewise.
14205         (s390_optimize_prologue): Likewise.
14206         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
14207
14208 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
14209
14210         PR bootstrap/69677
14211         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
14212         alignment fixes.
14213         (ix86_option_override_internal): Disable TARGET_STV even for
14214         -m{incoming,preferred}-stack-boundary=3.
14215
14216 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14217
14218         * config.gcc: Mark deprecated rtems targets as obsolete.
14219
14220 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
14221
14222         PR rtl-optimization/64682
14223         PR rtl-optimization/69567
14224         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
14225         before I2 only if the register is both used and set in I2.
14226
14227 2016-02-04  DJ Delorie  <dj@redhat.com>
14228
14229         * config/msp430/msp430.c (msp430_start_function): Add function type.
14230
14231 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
14232
14233         PR fortran/69368
14234         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
14235
14236 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
14237
14238         PR rtl-optimization/69577
14239         Revert:
14240         2015-10-29  Richard Henderson  <rth@redhat.com>
14241
14242         PR target/68124
14243         PR rtl-opt/67609
14244         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
14245         sse check to the exact conditions of PR 67609.
14246
14247 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
14248
14249         PR target/69667
14250         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
14251         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
14252         not allowed into the traditional Altivec registers.
14253         (movtd_64bit_nodm): Likewise.
14254         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
14255
14256 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
14257
14258         * config/aarch64/cortex-a57-fma-steering.c
14259         (aarch64_register_fma_steering): Remove "static" from arguments
14260         to register_pass.
14261
14262 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
14263
14264         PR target/69619
14265         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
14266         twice when complex.
14267
14268 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
14269
14270         * doc/invoke.texi: Delete -mno-fma4.
14271
14272 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
14273
14274         PR rtl-optimization/69577
14275         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
14276         (find_subregs_of_mode): Update accordingly.  Iterate over partial
14277         definitions.
14278
14279 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
14280
14281         * config/arm/arm-protos.h (neon_reinterpret): Remove.
14282         * config/arm/arm.c (neon_reinterpret): Remove.
14283         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
14284         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
14285         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
14286         vreinterpretti): Remove.
14287         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
14288         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
14289         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
14290         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
14291         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
14292         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
14293         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
14294         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
14295         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
14296         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
14297         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
14298         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
14299         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
14300         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
14301         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
14302         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
14303         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
14304         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
14305         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
14306         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
14307         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
14308         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
14309         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
14310         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
14311         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
14312         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
14313         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
14314         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
14315         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
14316         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
14317         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
14318         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
14319         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
14320         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
14321         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
14322         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
14323         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
14324         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
14325         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
14326         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
14327         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
14328         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
14329         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
14330         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
14331         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
14332         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
14333         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
14334         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
14335         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
14336         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
14337         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
14338         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
14339         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
14340         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
14341         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
14342         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
14343         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
14344         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
14345         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
14346         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
14347         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
14348         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
14349         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
14350         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
14351         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
14352         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
14353         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
14354         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
14355         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
14356         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
14357         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
14358         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
14359         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
14360         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
14361         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
14362         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
14363         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
14364         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
14365         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
14366         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
14367         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
14368         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
14369         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
14370         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
14371         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
14372         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
14373         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
14374         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
14375         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
14376         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
14377         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
14378         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
14379         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
14380         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
14381         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
14382         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
14383         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
14384         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
14385         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
14386         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
14387         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
14388         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
14389         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
14390
14391 2016-02-04  Martin Liska  <mliska@suse.cz>
14392
14393         PR sanitizer/69276
14394         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
14395         that are gimple_store_p.
14396         (maybe_instrument_call): Likewise.
14397
14398 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
14399
14400         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
14401         register scaling out of memory reference and comment why.
14402
14403 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14404
14405         PR target/65932
14406         PR target/67714
14407         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
14408         folding the source of a SET.
14409
14410 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14411
14412         PR target/65932
14413         PR target/67714
14414         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
14415         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
14416
14417 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
14418
14419         PR target/65932
14420         PR target/67714
14421         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
14422         HImode.
14423
14424 2016-02-04  Christian Bruel  <christian.bruel@st.com>
14425
14426         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
14427         * config/arm/arm.c (arm_set_current_function): Likewise.
14428
14429 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
14430             Ilya Enkovich  <enkovich.gnu@gmail.com>
14431             H.J. Lu  <hongjiu.lu@intel.com>
14432
14433         PR target/69454
14434         * config/i386/i386.c (convert_scalars_to_vector): Remove
14435         stack alignment fixes.
14436         (ix86_option_override_internal): Disable TARGET_STV if stack
14437         might not be aligned enough.
14438         (ix86_minimum_alignment): Assert that TARGET_STV is false.
14439
14440 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
14441
14442         * config/i386/x86-tune.def: Disable default prefetching
14443         for -march=znver1.
14444
14445 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
14446             Vladimir Makarov  <vmakarov@redhat.com>
14447
14448         PR target/69461
14449         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
14450         in validating fused toc addresses.
14451
14452 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
14453
14454         PR c/69627
14455         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
14456         range->m_caret fields if range->m_show_caret_p is false.
14457
14458         PR target/69644
14459         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
14460         Force oldval into register if it does not satisfy reg_or_short_operand
14461         predicate.  Fix up formatting.
14462
14463 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
14464             Alexandre Oliva  <aoliva@redhat.com>
14465
14466         PR target/69461
14467         * lra-constraints.c (simplify_operand_subreg): Check additionally
14468         address validity after potential reloading.
14469         (process_address_1): Check insns validity.  In case of failure do
14470         nothing.
14471
14472 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
14473
14474         PR target/69118
14475         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
14476         Fix target.
14477
14478 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
14479
14480         * wide-int.cc (canonize_uhwi): New function.
14481         (wi::divmod_internal): Use it.
14482
14483 2016-02-02  James Norris  <jnorris@codesourcery.com
14484
14485         * gimplify.c (omp_notice_variable): Add usage check.
14486
14487 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
14488
14489         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
14490         like LE, GE, LT, GT when emitting relational operator.
14491
14492 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
14493
14494         * ira-costs.c (find_costs_and_classes): Add extra argument.
14495         * target.def (ira_change_pseudo_allocno_class): Add parameter.
14496         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
14497         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
14498         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
14499         Add best_class parameter, and return it if not ALL_REGS.
14500         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
14501         Add parameter.
14502         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
14503         Update target hook.
14504
14505 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
14506
14507         * config/aarch64/aarch64.c
14508         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
14509         (aarch64_ira_change_pseudo_allocno_class): New function.
14510
14511 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
14512
14513         PR target/67032
14514         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
14515
14516 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14517
14518         * config/avr/avr.c (avr_option_override): Set
14519         PARAM_ALLOW_STORE_DATA_RACES to 1.
14520
14521 2016-02-02  Richard Biener  <rguenther@suse.de>
14522
14523         PR tree-optimization/69595
14524         * match.pd: Add range test simplifications to true/false.
14525
14526 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
14527
14528         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
14529         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
14530         instead.
14531
14532 2016-02-02  Richard Biener  <rguenther@suse.de>
14533
14534         PR tree-optimization/69606
14535         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
14536         info on the result before moving a stmt.
14537
14538 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
14539
14540         PR middle-end/68542
14541         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
14542         branch with vector comparison.
14543         * config/i386/sse.md (VI48_AVX): New mode iterator.
14544         (define_expand "cbranch<mode>4): Add support for conditional branch
14545         with vector comparison.
14546         * tree-vect-loop.c (optimize_mask_stores): New function.
14547         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
14548         has_mask_store field of vect_info.
14549         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
14550         vectorized loops having masked stores after vec_info destroy.
14551         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
14552         correspondent macros.
14553         (optimize_mask_stores): Add prototype.
14554
14555 2016-02-02  Alan Modra  <amodra@gmail.com>
14556
14557         PR target/69548
14558         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
14559         allow subregs.
14560
14561 2016-02-02  Alan Modra  <amodra@gmail.com>
14562
14563         PR target/68662
14564         * config/rs6000/rs6000.c (need_toc_init): New var, set it
14565         whenever toc_label_name used.
14566         (rs6000_file_start): Don't set up toc section here,
14567         (rs6000_output_function_epilogue): do so here instead,
14568         (rs6000_xcoff_file_start): and here.
14569         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
14570         (load_toc_aix_di): Likewise.
14571
14572 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14573
14574         PR rtl-optimization/69592
14575         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
14576         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
14577         (num_sign_bit_copies_binary_arith_p): New inline function.
14578         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
14579
14580 2016-02-01  Jeff Law  <law@redhat.com>
14581
14582         PR tree-optimization/69580
14583         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
14584         * tree-ssa-threadbackward.c
14585         (fsm_find_control_statement_thread_paths): Do not try to walk
14586         through large PHI nodes.
14587
14588 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14589
14590         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
14591         when count is incremented above limit, don't analyze further
14592         insns afterwards.
14593
14594         * omp-low.c (oacc_parse_default_dims): Avoid
14595         -Wsign-compare warning, make sure value fits into int
14596         rather than just unsigned int.
14597
14598 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
14599
14600         PR tree-optimization/67921
14601         * fold-const.c (split_tree): New parameters.  Convert pointer
14602         type variable part to proper type before negating.
14603         (fold_binary_loc): Pass new arguments to split_tree.
14604
14605 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
14606
14607         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
14608         (nvptx_goacc_validate_dims): Extend to handle global defaults.
14609         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
14610         * doc/tm.texti: Rebuilt.
14611         * doc/invoke.texi (fopenacc-dim): Document.
14612         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
14613         (append_compiler_options): Likewise.
14614         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
14615         (oacc_parse_default_dims): New.
14616         (oacc_validate_dims): Add USED arg.  Select non-unity default when
14617         possible.
14618         (oacc_loop_fixed_partitions): Return mask of used partitions.
14619         (oacc_loop_auto_partitions): Emit dump info.
14620         (oacc_loop_partition): Return mask of used partitions.
14621         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
14622         loop partitioning and validation calls.
14623
14624 2016-02-01  Richard Biener  <rguenther@suse.de>
14625
14626         PR middle-end/69556
14627         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
14628
14629 2016-02-01  Richard Biener  <rguenther@suse.de>
14630
14631         PR tree-optimization/69574
14632         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
14633         of asserting return chrec_dont_know.
14634
14635 2016-02-01  Martin Liska  <mliska@suse.cz>
14636
14637         * mem-stats-traits.h: Add copyright header.
14638         * mem-stats.h: Likewise.
14639
14640 2016-02-01  Richard Biener  <rguenther@suse.de>
14641
14642         PR tree-optimization/69579
14643         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
14644         Do not propagate through abnormal PHI results.
14645
14646 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
14647
14648         * postreload.c (reload_cse_simplify): Remove dead code.
14649
14650 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14651
14652         PR rtl-optimization/69570
14653         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
14654         if there is more than one set, not if there is a single set.
14655
14656 2016-02-01  Richard Henderson  <rth@redhat.com>
14657
14658         PR rtl-opt/69535
14659         * combine.c (make_compound_operation): When looking through a
14660         subreg, make sure to re-extend to the width of the outer mode.
14661
14662 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
14663
14664         PR tree-optimization/69546
14665         * wide-int.cc (wi::divmod_internal): For unsigned division
14666         where both operands fit into uhwi, if o1 is 1 and o0 has
14667         msb set, if divident_prec is larger than bits per hwi,
14668         clear another quotient word and return 2 instead of 1.
14669         Similarly for remainder with msb in HWI set, if dividend_prec
14670         is larger than bits per hwi.
14671
14672 2016-01-29  Martin Jambor  <mjambor@suse.cz>
14673
14674         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
14675         Use short lowercase names.
14676         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
14677         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
14678         acq_rel one.  Protect warning agains segfaults if
14679         get_memory_order_name returns NULL.
14680         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
14681         with release semantics.  Do not warn if get_memory_order already did.
14682         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
14683         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
14684         if get_memory_order already did.
14685
14686 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
14687
14688         * doc/install.texi: Document that isl-0.16 is supported.
14689
14690 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
14691
14692         PR target/69299
14693         * config/i386/constraints.md (Bm): Describe as special memory
14694         constraint.
14695         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
14696         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14697         * genpreds.c (struct constraint_data): Add is_special_memory.
14698         (have_special_memory_constraints, special_memory_start): New
14699         static vars.
14700         (special_memory_end): Ditto.
14701         (add_constraint): Add new arg is_special_memory.  Add code to
14702         process its true value.  Update have_special_memory_constraints.
14703         (process_define_constraint): Pass the new arg.
14704         (process_define_register_constraint): Ditto.
14705         (choose_enum_order): Process special memory.
14706         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
14707         function insn_extra_special_memory_constraint.
14708         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14709         * gensupport.c (process_rtx): Process
14710         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14711         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
14712         * ira-lives.c (single_reg_class): Use
14713         insn_extra_special_memory_constraint.
14714         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
14715         * lra-constraints.c (process_alt_operands): Ditto.
14716         (curr_insn_transform): Use insn_extra_special_memory_constraint.
14717         * recog.c (asm_operand_ok, preprocess_constraints): Process
14718         CT_SPECIAL_MEMORY.
14719         * reload.c (find_reloads): Ditto.
14720         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
14721         * stmt.c (parse_input_constraint): Use
14722         insn_extra_special_memory_constraint.
14723
14724 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14725
14726         PR target/69530
14727         * lra-splill.c (lra_final_code_change): Revert r229087 by
14728         removing all sub-registers.
14729
14730 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
14731
14732         PR target/65604
14733         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
14734
14735 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
14736
14737         PR target/69551
14738         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
14739         SSE1, copy target into the temporary reg first before recursing
14740         on it.
14741
14742 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14743
14744         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
14745         with vm.
14746
14747 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
14748
14749         * ginclude/stdarg.h: Test __cplusplus instead of
14750         __GXX_EXPERIMENTAL_CXX0X__.
14751
14752 2016-01-29  Richard Biener  <rguenther@suse.de>
14753
14754         PR tree-optimization/69547
14755         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
14756         Do not mark clobbers necessary.
14757         (mark_all_reaching_defs_necessary_1): Likewise.
14758
14759 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14760
14761         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
14762         declaration name with %qs and print it in both error messages.
14763         Also fix indentation.
14764
14765 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14766
14767         PR other/69006
14768         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
14769         trailing blank line from error message.
14770
14771 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
14772
14773         PR c++/69462
14774         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
14775         for C++-11.
14776
14777 2016-01-29  Richard Biener  <rguenther@suse.de>
14778
14779         PR middle-end/69537
14780         * match.pd: Allow all integral types when simplifying a
14781         widening or sign-changing conversion.
14782
14783 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14784
14785         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
14786         back to setting codegen_error to fail codegen.
14787
14788 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
14789
14790         PR target/69459
14791         * config/i386/constraints.md (C): Only accept constant zero operand.
14792         (BC): New constraint.
14793         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
14794         instead of C constraint.
14795         * doc/md.texi (Machine Constraints): Update description
14796         of C constraint.
14797
14798 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
14799
14800         PR target/68400
14801         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
14802
14803 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
14804
14805         PR middle-end/69542
14806         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
14807         non-debug insns.
14808
14809 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
14810
14811         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
14812         branches if using guessed profile.
14813
14814 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
14815
14816         * graphite-optimize-isl.c (optimize_isl): Fix dump.
14817
14818 2016-01-28  Richard Henderson  <rth@redhat.com>
14819
14820         PR target/69305
14821         * config/aarch64/aarch64-modes.def (CC_Cmode): New
14822         * config/aarch64/aarch64-protos.h: Update.
14823         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
14824         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
14825         (aarch64_get_condition_code_1): Handle CC_Cmode.
14826         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
14827         (*add<mode>3_compareC_cconly_imm): New.
14828         (*add<mode>3_compareC_cconly): New.
14829         (*add<mode>3_compareC_imm): New.
14830         (add<mode>3_compareC): New.
14831         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
14832         to be first.  Use aarch64_carry_operation.
14833         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
14834         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
14835         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
14836         (subti3): Use subdi3_compare1.
14837         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
14838         (sub<mode>3_compare1): New.
14839         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
14840         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
14841         (*subsi3_carryin_uxtw): Likewise.
14842         (*ngc<mode>, *ngcsi_uxtw): Likewise.
14843         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
14844         * config/aarch64/iterators.md (DWI): New.
14845         * config/aarch64/predicates.md (aarch64_carry_operation): New.
14846         (aarch64_borrow_operation): New.
14847
14848 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
14849
14850         * graphite-optimize-isl.c (optimize_isl): Print a different debug
14851         message when isl does not return a valid schedule.
14852
14853 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14854
14855         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
14856         Remove comments from class declarations: they are already in the code
14857         close by the defs.
14858
14859 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14860
14861         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
14862         codegen_error_p.
14863         (ternary_op_to_tree): Same.
14864         (unary_op_to_tree): Same.
14865         (nary_op_to_tree): Same.
14866         (gcc_expression_from_isl_expr_op): Same.
14867         (gcc_expression_from_isl_expression): Same.
14868         (graphite_create_new_loop): Same.
14869         (graphite_create_new_loop_guard): Same.
14870         (build_iv_mapping): Same.
14871         (graphite_create_new_guard): Same.
14872         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
14873         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
14874
14875 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14876
14877         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
14878         instead of setting codegen_error to fail codegen.
14879
14880 2016-01-28  Jason Merrill  <jason@redhat.com>
14881
14882         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
14883
14884 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
14885
14886         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
14887         Remove CONST_INT_P check in CCMP cost calculation.
14888
14889 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
14890
14891         * config/aarch64/aarch64.c (generic_vector_cost):
14892         Set vec_permute_cost.
14893         (cortexa57_vector_cost): Likewise.
14894         (exynosm1_vector_cost): Likewise.
14895         (xgene1_vector_cost): Likewise.
14896         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
14897         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
14898         Add vec_permute_cost entry.
14899
14900 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
14901
14902         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
14903         immediate as %1.
14904         (add<mode>3_compare0): Likewise.
14905         (addsi3_compare0_uxtw): Likewise.
14906         (add<mode>3nr_compare0): Likewise.
14907         (compare_neg<mode>): Likewise.
14908         (<optab><mode>3): Likewise.
14909
14910 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
14911
14912         * tree-vect-stmts.c (vectorizable_comparison): Add
14913         NULL check for vectype.
14914
14915 2016-01-28  Richard Biener  <rguenther@suse.de>
14916
14917         PR tree-optimization/69466
14918         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
14919         Account for PHIs we couldn't duplicate.
14920
14921 2016-01-28  Martin Liska  <mliska@suse.cz>
14922
14923         PR pch/68758
14924         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
14925         instead of ENABLE_VALGRIND_CHECKING.
14926
14927 2016-01-27  Richard Henderson  <rth@redhat.com>
14928
14929         PR rtl-opt/69447
14930         * lra-remat.c (subreg_regs): New.
14931         (dump_candidates_and_remat_bb_data): Dump it.
14932         (operand_to_remat): Reject if operand in subreg_regs.
14933         (set_bb_regs): Collect subreg_regs.
14934         (lra_remat): Init and free subreg_regs.  Compute
14935         calculate_local_reg_remat_bb_data before create_cands.
14936
14937 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
14938
14939         PR target/68986
14940         * config/i386/i386.c (ix86_update_stack_boundary): Don't
14941         change stack_alignment_needed for __tls_get_addr call.
14942
14943 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
14944
14945         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
14946
14947 2016-01-27  Jeff Law  <law@redhat.com>
14948
14949         PR tree-optimization/68398
14950         PR tree-optimization/69196
14951         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
14952         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
14953         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
14954         Only count PHIs in the last block in the path.  The others will
14955         const/copy propagate away.  Add heuristic to allow more irreducible
14956         subloops to be created when it is likely profitable to do so.
14957
14958         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
14959         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
14960         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
14961
14962 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
14963
14964         PR lto/69254
14965         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
14966         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
14967         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
14968         * tree-streamer-in.c: Include asan.h.
14969         (streamer_get_builtin_tree): For builtins in sanitizer
14970         range call initialize_sanitizer_builtins and retry.
14971
14972 2016-01-27  Ian Lance Taylor  <iant@google.com>
14973
14974         * common.opt (fkeep-gc-roots-live): New undocumented option.
14975         * tree-ssa-loop-ivopts.c (add_candidate_1): If
14976         -fkeep-gc-roots-live, skip pointers.
14977         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
14978         NULL.
14979
14980 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
14981
14982         PR target/69512
14983         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
14984         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
14985
14986 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
14987
14988         PR target/68380
14989         * configure.ac: NetBSD provides SSP in its C library.
14990         * configure: Updated.
14991
14992 2016-01-27  Richard Biener  <rguenther@suse.de>
14993
14994         PR tree-optimization/69166
14995         * tree-vect-loop.c (vect_is_simple_reduction): Always check
14996         reduction code for commutativity / associativity.
14997
14998 2016-01-27  Martin Jambor  <mjambor@suse.cz>
14999
15000         PR tree-optimization/69355
15001         * tree-sra.c (analyze_access_subtree): Correct hole detection when
15002         total_scalarization fails.
15003
15004 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
15005
15006         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
15007         power9.
15008
15009 2016-01-27  Christian Bruel  <christian.bruel@st.com>
15010
15011         PR target/69245
15012         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
15013         Move arm_reset_previous_fndecl and set_target_option_current_node in
15014         the conditional part.  Call save_restore_target_globals.
15015         * config/arm/arm.c (arm_set_current_function):
15016         Refactor to better support #pragma target and attribute mix.
15017         Call save_restore_target_globals.
15018         * config/arm/arm-protos.h (save_restore_target_globals): New function.
15019
15020 2016-01-27  Martin Liska  <mliska@suse.cz>
15021
15022         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
15023         reference for an HSA kernel and its host function.
15024
15025 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
15026
15027         PR tree-optimization/69399
15028         * wide-int.h (wi::lrshift): For larger precisions, only
15029         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
15030
15031 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
15032
15033         * config/arc/predicates.md (proper_comparison_operator): Reject
15034         constant-constant comparison.
15035
15036 2016-01-26  Tom de Vries  <tom@codesourcery.com>
15037
15038         PR tree-optimization/69110
15039         * tree-data-ref.c (initialize_data_dependence_relation): Handle
15040         DR_NUM_DIMENSIONS == 0.
15041
15042 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
15043             Sebastian Pop  <s.pop@samsung.com>
15044
15045         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
15046         isl_ast_op_cond and isl_ast_op_select.
15047         (gcc_expression_from_isl_expr_op): Same.
15048
15049 2016-01-26  Jason Merrill  <jason@redhat.com>
15050
15051         PR c++/68782
15052         * tree.c (recompute_constructor_flags): Split out from
15053         build_constructor.
15054         (verify_constructor_flags): New.
15055         * tree.h: Declare them.
15056
15057 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
15058
15059         PR rtl-optimization/69217
15060         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
15061         are no TYPE_FIELDS set for the record type.
15062
15063 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15064
15065         PR target/68662
15066         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
15067         toc_label_name unconditionally.
15068         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
15069         SYMBOL_REF string.  Use toc_label_name instead of constructing
15070         LCTOC1.
15071         (rs6000_elf_declare_function_name): Use toc_label_name instead of
15072         constructing LCTOC1.
15073
15074 2016-01-26  Martin Sebor  <msebor@redhat.com>
15075
15076         PR other/69477
15077         * doc/extend.texi (Common Type Attributes): Move text that talks about
15078         attribute packed from attribute aligned to the section discussing
15079         the former attribute for clarity.
15080
15081 2016-01-26  Richard Henderson  <rth@redhat.com>
15082
15083         PR middle-end/60908
15084         * trans-mem.c (tm_region_init): Mark entry block as visited.
15085
15086 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
15087
15088         PR other/69006
15089         * diagnostic-show-locus.c (layout::print_source_line): Replace
15090         call to pp_newline with call to layout::print_newline.
15091         (layout::print_annotation_line): Likewise.
15092         (layout::move_to_column): Likewise.
15093         (layout::print_any_fixits): After printing any fixits, print a
15094         trailing newline, if necessary.
15095         (layout::print_newline): New method, resetting any colorization
15096         before a newline.
15097         (diagnostic_show_locus): Move the pp_newline to before the
15098         early bailout.  Remove dummy block enclosing the layout instance.
15099         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
15100         of pp_newline_and_flush with pp_flush.
15101         (diagnostic_append_note): Delete use of pp_newline.
15102         (diagnostic_append_note_at_rich_loc): Delete.
15103         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
15104         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
15105         when newline characters are added to the buffer.
15106
15107 2016-01-26  Michael Matz  <matz@suse.de>
15108
15109         * configure.ac (ac_cv_std_swap_in_utility): New test.
15110         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
15111         * configure: Regenerate.
15112         * config.in: Regenerate.
15113
15114 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
15115
15116         * config/arc/arc.md (cstoresi4): Force operand into register.
15117         (arcset<code>): Fix predicate.
15118         (arcsetltu): Likewise.
15119         (arcsetgeu): Likewise.
15120         (arcsethi): Likewise.
15121         (arcsetls): Likewise.
15122
15123 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15124
15125         PR tree-optimization/69483
15126         * gimple-fold.c (canonicalize_constructor_val): Return NULL
15127         if base has error_mark_node type.
15128
15129 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
15130
15131         PR target/68620
15132         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
15133         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
15134         New helper macros.
15135         (vget_lane_f16): Handle big-endian.
15136         (vgetq_lane_f16): Likewise.
15137         (vset_lane_f16): Likewise.
15138         (vsetq_lane_f16): Likewise.
15139         * config/arm/iterators.md (VQXMOV): Add V8HF.
15140         (VDQ): Add V4HF and V8HF.
15141         (V_reg): Handle V4HF and V8HF.
15142         (Is_float_mode): Likewise.
15143         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
15144         neon_vdup_nv8hf): New patterns.
15145         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
15146         Use VD_LANE iterator.
15147         (neon_vld1_dup<mode>): Use VQ2 iterator.
15148
15149 2016-01-26  Nathan Sidwell  <nathan@acm.org>
15150
15151         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
15152         (set_oacc_fn_attrib): Add IS_KERNEL arg.
15153         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
15154         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
15155         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
15156         (oacc_validate_dims): Add LEVEL arg, don't return level.
15157         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
15158         oacc_validate_dims.
15159         (execute_oacc_device_lower): Adjust, add more dump output.
15160         * tree-ssa-loop.c (gate_oacc_kernels): Use
15161         oacc_fn_attrib_kernels_p.
15162         * tree-parloops.c (create_parallel_loop): Adjust
15163         set_oacc_fn_attrib call.
15164
15165 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15166
15167         PR lto/69254
15168         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
15169         (append_compiler_options): Handle -fcilkplus.
15170         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
15171
15172 2016-01-26  Nick Clifton  <nickc@redhat.com>
15173
15174         PR target/66655
15175         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
15176         been marked as DECL_ONE_ONLY but we do not the means to make it
15177         so, then do not allow it to bind locally.
15178
15179 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15180
15181         PR lto/69254
15182         * opts.h (parse_sanitizer_options): New prototype.
15183         * opts.c (sanitizer_opts): New array.
15184         (parse_sanitizer_options): New function.
15185         (common_handle_option): Use parse_sanitizer_options.
15186
15187 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
15188
15189         PR target/68986
15190         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
15191         alignment adjustment to ...
15192         (ix86_update_stack_boundary): Here.  Don't over-align stack for
15193         __tls_get_addr.
15194         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
15195         if __tls_get_addr is called.
15196
15197 2016-01-26  Christian Bruel  <christian.bruel@st.com>
15198
15199         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
15200
15201 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
15202
15203         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
15204
15205 2016-01-26  Richard Biener  <rguenther@suse.de>
15206
15207         PR middle-end/69467
15208         * match.pd: Guard X * CST CMP 0 pattern with single_use.
15209
15210 2016-01-26  Richard Biener  <rguenther@suse.de>
15211
15212         PR tree-optimization/69452
15213         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
15214         (move_computations_dom_walker::before_dom_children): Rename
15215         to ...
15216         (move_computations_worker): This.
15217         (move_computations): Perform an RPO rather than a DOM walk.
15218
15219 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15220
15221         PR target/69442
15222         * combine.c (combine_instructions): For REG_EQUAL note with
15223         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
15224         to the underlying register.
15225         * doc/rtl.texi (REG_EQUAL): Document the behavior of
15226         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
15227
15228 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
15229
15230         PR target/67896
15231         * config/aarch64/aarch64-builtins.c
15232         (aarch64_init_simd_builtin_types): Do not set structural
15233         equality to __Poly{8,16,64,128}_t types.
15234
15235 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
15236
15237         PR tree-optimization/69400
15238         * wide-int.cc (wi_pack): Take the precision as argument and
15239         perform canonicalization here rather than in the callers.
15240         Use the main loop to handle all full-width HWIs.  Add a
15241         zero HWI if in_len isn't a full result.
15242         (wi::divmod_internal): Update accordingly.
15243         (wi::mul_internal): Likewise.  Simplify.
15244
15245 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
15246             Sebastian Pop  <s.pop@samsung.com>
15247
15248         * graphite-poly.c (apply_poly_transforms): Simplify.
15249         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
15250         (print_isl_map): Same.
15251         (print_isl_union_map): Same.
15252         (print_isl_schedule): New.
15253         (debug_isl_schedule): New.
15254         * graphite-dependences.c (scop_get_reads): Do not call
15255         isl_union_map_add_map that is undocumented isl functionality.
15256         (scop_get_must_writes): Same.
15257         (scop_get_may_writes): Same.
15258         (scop_get_original_schedule): Remove.
15259         (scop_get_dependences): Do not call isl_union_map_compute_flow that
15260         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
15261         (compute_deps): Remove.
15262         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
15263         (debug_schedule_ast): New.
15264         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
15265         set_separate_option.
15266         (graphite_regenerate_ast_isl): Add dump.
15267         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
15268         from scop->transformed_schedule.
15269         (graphite_regenerate_ast_isl): Add more dump.
15270         * graphite-optimize-isl.c (optimize_isl): Set
15271         scop->transformed_schedule.  Check whether schedules are equal.
15272         (apply_poly_transforms): Move here.
15273         * graphite-poly.c (apply_poly_transforms): ... from here.
15274         (free_poly_bb): Static.
15275         (free_scop): Static.
15276         (pbb_number_of_iterations_at_time): Remove.
15277         (print_isl_ast): New.
15278         (debug_isl_ast): New.
15279         (debug_scop_pbb): New.
15280         * graphite-scop-detection.c (print_edge): Move.
15281         (print_sese): Move.
15282         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
15283         (build_scop_scattering): Remove.
15284         (create_pw_aff_from_tree): Assert instead of bailing out.
15285         (add_condition_to_pbb): Remove unused code, do not fail.
15286         (add_conditions_to_domain): Same.
15287         (add_conditions_to_constraints): Remove.
15288         (build_scop_context): New.
15289         (add_iter_domain_dimension): New.
15290         (build_iteration_domains): Initialize pbb->iterators.
15291         Call add_conditions_to_domain.
15292         (nested_in): New.
15293         (loop_at): New.
15294         (index_outermost_in_loop): New.
15295         (index_pbb_in_loop): New.
15296         (outermost_pbb_in): New.
15297         (add_in_sequence): New.
15298         (add_outer_projection): New.
15299         (outer_projection_mupa): New.
15300         (add_loop_schedule): New.
15301         (build_schedule_pbb): New.
15302         (build_schedule_loop): New.
15303         (embed_in_surrounding_loops): New.
15304         (build_schedule_loop_nest): New.
15305         (build_original_schedule): New.
15306         (build_poly_scop): Call build_original_schedule.
15307         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
15308         (free_poly_dr): Remove.
15309         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
15310         (free_poly_bb): Remove.
15311         (debug_loop_vec): Remove.
15312         (print_isl_ast): Declare.
15313         (debug_isl_ast): Declare.
15314         (scop_do_interchange): Remove.
15315         (scop_do_strip_mine): Remove.
15316         (scop_do_block): Remove.
15317         (flatten_all_loops): Remove.
15318         (optimize_isl): Remove.
15319         (pbb_number_of_iterations_at_time): Remove.
15320         (debug_scop_pbb): Declare.
15321         (print_schedule_ast): Declare.
15322         (debug_schedule_ast): Declare.
15323         (struct scop): Remove schedule.  Add original_schedule,
15324         transformed_schedule.
15325         (free_gimple_poly_bb): Remove.
15326         (print_generated_program): Remove.
15327         (debug_generated_program): Remove.
15328         (unify_scattering_dimensions): Remove.
15329         * sese.c (print_edge): ... here.
15330         (print_sese): ... here.
15331         (debug_edge): ... here.
15332         (debug_sese): ... here.
15333         * sese.h (print_edge): Declare.
15334         (print_sese): Declare.
15335         (dump_edge): Declare.
15336         (dump_sese): Declare.
15337
15338 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
15339             Sebastian Pop  <s.pop@samsung.com>
15340
15341         * Makefile.in: Set ISLVER in site.exp.
15342
15343 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
15344
15345         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
15346         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
15347         through DECL_VALUE_EXPR for expansion.
15348
15349 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15350
15351         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
15352         the frame info after reload completed.
15353
15354 2016-01-25  Jeff Law  <law@redhat.com>
15355
15356         PR tree-optimization/69196
15357         PR tree-optimization/68398
15358         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
15359         tree-ssa-threadupdate.c.
15360         (determine_bb_domination_status): Prototype
15361         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
15362         (determine_bb_domination_status): No longer static.
15363         (valid_jump_thread_path): Remove code to detect characteristics
15364         of the jump thread path not associated with correctness.
15365         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
15366         Correct test for thread path length.  Count PHIs for real operands as
15367         statements that need to be copied.  Do not count ASSERT_EXPRs.
15368         Look at all the blocks in the thread path.  Compute and selectively
15369         filter thread paths based on threading through the latch, threading
15370         a multiway branch or crossing a multiway branch.
15371
15372 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15373
15374         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
15375         decl with __attribute__ ((unused)) annotation.
15376
15377 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
15378
15379         PR target/69421
15380         * tree-vect-stmts.c (vectorizable_condition): Check vectype
15381         of operands is compatible with a statement vectype.
15382
15383 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
15384
15385         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
15386         improve wording for mixed storage order support.
15387
15388 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
15389
15390         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
15391         (vcvt_u64_f64): Likewise.
15392         (vcvta_s64_f64): Likewise.
15393         (vcvta_u64_f64): Likewise.
15394         (vcvtm_s64_f64): Likewise.
15395         (vcvtm_u64_f64): Likewise.
15396         (vcvtn_s64_f64): Likewise.
15397         (vcvtn_u64_f64): Likewise.
15398         (vcvtp_s64_f64): Likewise.
15399         (vcvtp_u64_f64): Likewise.
15400
15401 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
15402
15403         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
15404         (arc_init): Check validity mll64 option.
15405         (arc_save_restore): Use double load/store instruction.
15406         (arc_expand_movmem): Likewise.
15407         (arc_split_move): Don't split if we have double load/store
15408         instructions. Returns a boolean.
15409         (arc_process_double_reg_moves): Change function to return boolean
15410         instead of a sequence of instructions.
15411         (arc_dwarf_register_span): New function.
15412         * config/arc/arc-protos.h (arc_split_move): Change prototype.
15413         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
15414         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
15415         (*movdf_insn): Likewise.
15416         * config/arc/arc.opt (mll64): New option.
15417         * config/arc/predicates.md (even_register_operand): New predicate.
15418         * doc/invoke.texi (ARC Options): Add mll64 documentation.
15419
15420 2016-01-25  Richard Biener  <rguenther@suse.de>
15421
15422         PR lto/69393
15423         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
15424         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
15425         DECL_NAMELESS.
15426         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
15427
15428 2016-01-25  Richard Biener  <rguenther@suse.de>
15429
15430         PR tree-optimization/69376
15431         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
15432         flag.
15433         (VN_INFO_ANTI_RANGE_P): New inline.
15434         (VN_INFO_RANGE_TYPE): Likewise.
15435         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
15436         SSA_NAME_ANTI_RANGE_P.
15437         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
15438         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15439         Properly query VN_INFO_RANGE_TYPE.
15440
15441 2016-01-25  Nick Clifton  <nickc@redhat.com>
15442
15443         PR target/66655
15444         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
15445
15446 2016-01-23  Tom de Vries  <tom@codesourcery.com>
15447
15448         PR tree-optimization/69426
15449         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
15450         removed clobber.
15451
15452 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
15453
15454         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
15455         "the the" with "the" in the comments.
15456         * ipa-devirt.c (build_type_inheritance_graph,
15457         update_type_inheritance_graph): Likewise.
15458         * tree.c (build_function_type_list_1): Likewise.
15459         * cfgloopmanip.c (scale_loop_profile): Likewise.
15460         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
15461         * gimple-ssa-split-paths.c
15462         (find_block_to_duplicate_for_splitting_paths): Likewise.
15463         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
15464         * expr.c (convert_move): Likewise.
15465         * var-tracking.c (vt_stack_adjustments): Likewise.
15466         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
15467         * tree-vrp.c (test_for_singularity): Likewise.
15468
15469         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
15470         directly instead of building a temporary tree.
15471
15472         PR bootstrap/69434
15473         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
15474         remove <algorithm> include.
15475
15476 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
15477
15478         PR target/69432
15479         * config/i386/i386.c: Include dojump.h.
15480         (expand_small_movmem_or_setmem,
15481         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
15482         fixes.
15483         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
15484         if dynamic_check != -1.
15485
15486 2016-01-21  Jeff Law  <law@redhat.com>
15487
15488         PR middle-end/69347
15489         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
15490         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
15491         into dominated_by_p.
15492         (cprop_into_successor_phis): Avoid unnecessary tests.
15493
15494 2016-01-22  Richard Henderson  <rth@redhat.com>
15495
15496         PR target/69416
15497         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
15498         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
15499
15500 2016-01-22  Michael Matz  <matz@suse.de>
15501
15502         * system.h (string, algorithm): Include only conditionally.
15503         (new): Include always under C++.
15504         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
15505         * final.c (toplevel): Ditto.
15506         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
15507         * genconditions.c (write_header): Make gencondmd.c define
15508         INCLUDE_STRING.
15509         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
15510
15511         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
15512         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
15513
15514 2016-01-22  Christian Bruel  <christian.bruel@st.com>
15515
15516         PR target/68674
15517         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
15518
15519 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15520
15521         PR target/69403
15522         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
15523         define_insn_and_split.  Ensure operands[1] and operands[0] do not
15524         get assigned the same register.
15525
15526 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
15527
15528         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
15529
15530 2016-01-22  Christian Bruel  <christian.bruel@st.com>
15531
15532         * config/arm/arm-c.c (arm_pragma_target_parse):
15533         Remove warn_builtin_macro_redefined overwrite.
15534
15535 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15536
15537         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
15538         flag_non_call_exceptions compatibility.
15539
15540 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
15541
15542         PR debug/66668
15543         * dwarf2out.c (add_child_die_after): New function.
15544         (dwarf_qual_info_t): New type.
15545         (dwarf_qual_info): New variable.
15546         (qualified_die_p): New function.
15547         (modified_type_die): For -fdebug-types-section, ensure
15548         canonical order of qualifiers.  Put qualified DIEs adjacent
15549         to the corresponding non-qualified type DIE and search there
15550         for existing qualified DIEs.
15551
15552 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15553
15554         * doc/extend.texi (scalar_storage_order type attribute): Document
15555         restriction on type punning and aliasing, and remove future tense.
15556
15557 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
15558
15559         PR target/69252
15560         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
15561         first stage.
15562
15563 2016-01-21  Jeff Law  <law@redhat.com>
15564
15565         PR middle-end/69347
15566         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
15567         useless call to record_temporary_equivalences.
15568         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
15569         allocate 10 slots in the bb_path vector and let it grow as needed.
15570         (fsm_find_control_statement_thread_paths): Similarly for the next_path
15571         vector.
15572
15573 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
15574
15575         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
15576         Detangle.
15577         * configure: Regenerate.
15578
15579 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
15580
15581         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
15582         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
15583
15584 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
15585
15586         PR middle-end/66178
15587         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
15588         drop EXPAND_INITIALIZER.
15589         * rtl.h (contains_symbolic_reference_p): Declare.
15590         * rtlanal.c (contains_symbolic_reference_p): New function.
15591         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
15592         a subtraction into a NOT if symbolic constants are involved.
15593
15594 2016-01-21  Anton Blanchard  <anton@samba.org>
15595             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15596
15597         PR target/63354
15598         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
15599         #define.
15600         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
15601         function.
15602
15603 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
15604
15605         * config/microblaze/microblaze.c
15606         (get_branch_target): New.
15607         (insert_wic_for_ilb_runout): New.
15608         (insert_wic): New.
15609         (microblaze_machine_dependent_reorg): New.
15610         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
15611         * config/microblaze/microblaze.md
15612         (UNSPEC_IPREFETCH): Define.
15613         (iprefetch): New pattern
15614         * config/microblaze/microblaze.opt
15615         (mxl-prefetch): New flag.
15616
15617 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
15618
15619         * config/microblaze/microblaze.h
15620         (FIXED_REGISTERS): Update in macro.
15621         (CALL_USED_REGISTERS): Update in macro.
15622
15623 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
15624
15625         PR rtl-optimization/68920
15626         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
15627         moves.
15628
15629 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
15630
15631         PR rtl-optimization/68990
15632         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
15633         pseudo instead of inheritance ones.
15634
15635 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15636             Nick Clifton  <nickc@redhat.com>
15637
15638         PR target/69129
15639         PR target/69012
15640         * config/mips/mips.c (mips_compute_frame_info): Initialise
15641         args_size and hard_frame_pointer_offset fields of the frame
15642         structure before calling mips_global_pointer.
15643
15644 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
15645
15646         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
15647         label reference.
15648         * configure: Regenerate.
15649
15650 2016-01-21  Richard Biener  <rguenther@suse.de>
15651
15652         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
15653
15654 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
15655
15656         * config/s390/s390.c (s390_asm_declare_function_size): Add code
15657         to actually emit the .size directive.
15658
15659 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
15660              Jakub Jelinek  <jakub@redhat.com>
15661
15662         PR target/69187
15663         PR target/65624
15664         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
15665         args array size by one to avoid buffer overflow.
15666
15667 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
15668
15669         * config/s390/s390.md (pool_section_start): Use switch_to_section
15670         to select proper read-only data section instead of hardcoding
15671         .rodata.
15672         (pool_section_end): Use switch_to_section to match the above.
15673
15674 2016-01-21  Richard Biener  <rguenther@suse.de>
15675
15676         PR tree-optimization/69378
15677         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
15678         (set_ssa_val_to): Use it for dominance checks taking into
15679         account not executable edges.
15680
15681 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
15682
15683         PR c++/69355
15684         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
15685         for bitsize instead of GET_MODE_PRECISION (mode).
15686
15687 2016-01-20  Martin Sebor  <msebor@redhat.com>
15688
15689         PR c/52291
15690         * extend.texi (__sync Builtins): Clarify the semantics of
15691         __sync_fetch_and_OP built-ins on pointers.
15692         (__atomic Builtins): Same.
15693
15694 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15695             Sebastian Pop  <s.pop@samsung.com>
15696
15697         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
15698         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
15699         (is_valid_rename): Same.
15700         (translate_isl_ast_to_gimple::get_rename): Same.
15701         (translate_isl_ast_to_gimple::rename_all_uses): Same.
15702         (translate_isl_ast_to_gimple::rename_uses): Same.
15703         (get_new_name): Check for close_phi nodes.
15704         (copy_loop_phi_args): Use phi_node_kind.
15705         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
15706         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
15707
15708 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15709             Sebastian Pop  <s.pop@samsung.com>
15710
15711         Revert commit r229783.
15712         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
15713         Remove use of parameter_rename_map.
15714         (copy_def): Remove.
15715         (copy_internal_parameters): Remove.
15716         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
15717         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
15718         (free_sese_info): Do not free parameter_rename_map.
15719         (set_rename): Do not use parameter_rename_map.
15720         (rename_uses): Update call to set_rename.
15721         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
15722         * sese.h (parameter_rename_map_t): Remove.
15723         (struct sese_info_t): Remove field parameter_rename_map.
15724
15725 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15726             Sebastian Pop  <s.pop@samsung.com>
15727
15728         * graphite-isl-ast-to-gimple.c: Fix comment.
15729         * graphite-scop-detection.c (defined_in_loop_p): New.
15730         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
15731         names defined in loop.
15732
15733 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15734             Sebastian Pop  <s.pop@samsung.com>
15735
15736         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
15737         Discard unstructured if-then-else regions.
15738
15739 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15740             Sebastian Pop  <s.pop@samsung.com>
15741
15742         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
15743         (cleanup_loop_iter_dom): Remove.
15744         (build_loop_iteration_domains): Remove.
15745         (build_scop_context): Remove.
15746         (build_scop_iteration_domain): Remove.
15747         (add_loop_constraints): New.
15748         (build_iteration_domains): New.
15749         (build_poly_scop): Call build_iteration_domains.
15750
15751 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15752             Sebastian Pop  <s.pop@samsung.com>
15753
15754         * graphite-scop-detection.c
15755         (scop_detection::harmful_loop_in_region): Free dom and loops.
15756         (scop_detection::loop_body_is_valid_scop): Free bbs.
15757
15758 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15759             Sebastian Pop  <s.pop@samsung.com>
15760
15761         * graphite-scop-detection.c (record_loop_in_sese): New.
15762         (gather_bbs::before_dom_children): Call record_loop_in_sese.
15763         (build_scops): Remove call to build_sese_loop_nests.
15764         * sese.c (sese_record_loop): Remove.
15765         (build_sese_loop_nests): Remove.
15766         (new_sese_info): Remove region->loops.
15767         (free_sese_info): Same.
15768         * sese.h (sese_contains_loop): Same.
15769         (build_sese_loop_nests): Remove.
15770         (sese_contains_loop): Remove.
15771
15772 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15773             Sebastian Pop  <s.pop@samsung.com>
15774
15775         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
15776         loop_is_valid_in_scop.
15777         (scop_detection::harmful_stmt_in_region): Renamed
15778         harmful_loop_in_region.
15779         Call loop_is_valid_in_scop.
15780
15781 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15782             Sebastian Pop  <s.pop@samsung.com>
15783
15784         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
15785         isl_ast_node_mark.
15786
15787 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15788             Sebastian Pop  <s.pop@samsung.com>
15789
15790         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
15791         * graphite.h (struct poly_bb): Remove field is_reduction.
15792         (PBB_IS_REDUCTION): Remove.
15793
15794 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15795             Sebastian Pop  <s.pop@samsung.com>
15796
15797         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
15798         (add_pdr_constraints): Same.
15799         (scop_get_reads): Same.
15800         (scop_get_must_writes): Same.
15801         (scop_get_may_writes): Same.
15802         (scop_get_original_schedule): Same.
15803         (extend_schedule): Same.
15804         (apply_schedule_on_deps): Same.
15805         (carries_deps): Same.
15806         (compute_deps): Same.
15807         (scop_get_dependences): Same.
15808         * graphite-isl-ast-to-gimple.c
15809         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
15810         * graphite-optimize-isl.c (get_schedule_for_band): Same.
15811         (get_schedule_for_band_list): Same.
15812         (get_schedule_map): Same.
15813         (apply_schedule_map_to_scop): Same.
15814         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
15815         (build_loop_iteration_domains): Same.
15816         (add_condition_to_pbb): Same.
15817         (add_param_constraints): Same.
15818         (pdr_add_memory_accesses): Same.
15819         (pdr_add_data_dimensions): Same.
15820
15821 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
15822
15823         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
15824         requirements.
15825
15826 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
15827
15828         * common.opt (feliminate-dwarf2-dups): Replace references to
15829         "DWARF 2" with just "DWARF".
15830         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
15831         * doc/extend.texi: Likewise.
15832         * doc/cpp.texi: Likewise.
15833         * doc/invoke.texi: Likewise.
15834         (Option Summary): Add -gdwarf to list of Debugging Options.
15835         (Debugging Options): Document -gdwarf.
15836         * doc/contrib.texi: Spell "DWARF" like that.
15837
15838 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
15839
15840         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
15841         warning.  Fix up formatting.
15842
15843         PR middle-end/67653
15844         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
15845         attempt to mark memory input operand addressable and
15846         call prepare_gimple_addressable in that case.  Don't adjust
15847         input_location for diagnostics, use error_at instead.
15848
15849 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
15850
15851         * config/rs6000/ppc-auxv.h: New file.
15852         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
15853         (cpu_is): Likewise.
15854         (cpu_supports): Likewise.
15855         * config/rs6000/rs6000.c: include "ppc-auxv.h".
15856         (cpu_is_info): New variable.
15857         (cpu_supports_info): Likewise.
15858         (tcb_verification_symbol): Likewise.
15859         (cpu_builtin_p): Likewise.
15860         (cpu_expand_builtin): New function.
15861         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
15862         (rs6000_init_builtins): Likewise.
15863         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
15864         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
15865         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
15866         * configure: Regenerate.
15867         * config.in: Likewise.
15868         * doc/extend.texi (PowerPC Built-in Functions): Document
15869         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
15870
15871 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
15872
15873         PR target/68609
15874         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
15875         domain check.
15876         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
15877         for V4SFmode.
15878
15879 2016-01-20  Richard Henderson  <rth@redhat.com>
15880
15881         PR bootstrap/69343
15882         PR bootstrap/69339
15883         PR tree-opt/68964
15884         Revert:
15885         * tree.c (tm_define_builtin): New.
15886         (find_tm_vector_type): New.
15887         (build_tm_vector_builtins): New.
15888         (build_common_builtin_nodes): Call it.
15889
15890 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
15891
15892         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
15893         (arm_fp_ok): Likewise.
15894         (arm_fp): Likewise.
15895         (arm_crypto): Likewise.
15896
15897 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
15898             Richard Biener  <rguenther@suse.de>
15899
15900         PR tree-optimization/69328
15901         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
15902         vectors have same number of elements.
15903         (vectorizable_condition): Fix masked version recognition.
15904
15905 2016-01-20  Richard Biener  <rguenther@suse.de>
15906
15907         PR tree-optimization/69345
15908         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
15909         (VN_INFO_PTR_INFO): Likewise.
15910         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
15911         info when it is equal between non-dominating SSA names.
15912         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15913         Make sure to look at original SSA infos.
15914
15915 2016-01-20  Jeff Law  <law@redhat.com>
15916
15917         PR target/25114
15918         * config/m68k/predicates.md (pow2_m1_operand): New predicate
15919         extracted from ...
15920         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
15921         (pc_or_label_operand): New predicate.
15922         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
15923         tests for small integers that are 2^n - 1.
15924
15925 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
15926
15927         * doc/invoke.texi (Options Summary): Add '.' after @xref.
15928
15929 2016-01-19  Jeff Law  <law@redhat.com>
15930
15931         PR middle-end/69347
15932         * tree-ssa-threadbackwards.c
15933         (fsm_find_control_statement_thread_paths): Do not try to lookup
15934         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
15935
15936 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
15937
15938         * doc/lto.texi: Remove text that says only Gold has linker plugin
15939         support.
15940
15941 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
15942
15943         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
15944         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
15945         the DIE accordingly.
15946         (modified_type_die): Add REVERSE parameter and pass it recursively,
15947         as well as to base_type_die.  Adjust presence check accordingly.
15948         (base_type_for_mode): Adjust call to modified_type_die.
15949         (add_type_attribute): Add REVERSE parameter and pass it to
15950         modified_type_die.
15951         (generic_parameter_die): Adjust call to add_type_attribute.
15952         (add_scalar_info): Likewise.
15953         (add_subscript_info): Likewise.
15954         (gen_array_type_die): Likewise.
15955         (gen_descr_array_type_die): Likewise.
15956         (gen_entry_point_die): Likewise.
15957         (gen_enumeration_type_die): Likewise.
15958         (gen_formal_parameter_die): Likewise.
15959         (gen_subprogram_die): Likewise.
15960         (gen_variable_die ): Likewise.
15961         (gen_const_die): Likewise.
15962         (gen_field_die): Likewise.
15963         (gen_pointer_type_die): Likewise.
15964         (gen_reference_type_die): Likewise.
15965         (gen_ptr_to_mbr_type_die): Likewise.
15966         (gen_inheritance_die): Likewise.
15967         (gen_subroutine_type_die): Likewise.
15968         (gen_typedef_die): Likewise.
15969         (force_type_die): Adjust call to modified_type_die.
15970
15971 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
15972
15973         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
15974         flow throughout the file.  Fix broken link to Objective-C 2.0
15975         documentation.
15976         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
15977         errors.
15978
15979 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
15980
15981         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
15982
15983 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
15984
15985         PR ipa/66223
15986         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
15987         (maybe_record_node): Record cxa_pure_virtual as the only possible
15988         target if there are not ohter candidates.
15989         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
15990
15991 2016-01-19  Richard Biener  <rguenther@suse.de>
15992
15993         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
15994         (get_memory_order): Likewise.
15995
15996 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
15997
15998         * tree-vect-stmts.c (vectorizable_store): Check
15999         rhs vectype.
16000
16001 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
16002
16003         PR jit/68446
16004         * gcc.c (driver::decode_argv): Add call to
16005         init_opts_obstack before init_options_struct.
16006         * opts.c (init_opts_obstack): Remove idempotency.
16007         (init_options_struct): Replace call to init_opts_obstack
16008         with a gcc_assert to verify that it has already been called.
16009         * toplev.c (toplev::main): Add call to init_opts_obstack before
16010         calls to init_options_struct.
16011         (toplev::finalize): Move cleanup of opts_obstack next to
16012         cleanup of save_decoded_options, clearing the latter, and
16013         save_decoded_options_count.
16014
16015 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16016
16017         PR target/69135
16018         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
16019         attribute to unconditional.  Remove %? from output template.
16020
16021 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16022             Jiong Wang  <jiong.wang@arm.com>
16023
16024         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
16025         generated from different expand order.
16026
16027 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16028
16029         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
16030         Add support for CCMP costing.
16031
16032 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16033
16034         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
16035         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
16036         (fccmpe<mode>): Likewise.
16037         (fcmp): Rename to fcmp and globalize pattern.
16038         (fcmpe): Likewise.
16039         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
16040         (aarch64_gen_ccmp_next): Add FP support.
16041
16042 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16043
16044         * target.def (gen_ccmp_first): Update documentation.
16045         (gen_ccmp_next): Likewise.
16046         * doc/tm.texi (gen_ccmp_first): Update documentation.
16047         (gen_ccmp_next): Likewise.
16048         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
16049         expand_ccmp_expr_1.  Improve comments.
16050         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
16051         (ccmp_ior<mode>): Remove pattern.
16052         (cmp<mode>): Remove expand.
16053         (cmp): Globalize pattern.
16054         (cstorecc4): Use cc_register.
16055         (mov<mode>cc): Remove ccmp_cc_register check.
16056         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
16057         Simplify after removal of CC_DNE/* modes.
16058         (aarch64_ccmp_mode_to_code): Remove.
16059         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
16060         In 'k' case use integer as condition.
16061         (aarch64_nzcv_codes): Remove inverted cases.
16062         (aarch64_code_to_ccmode): Remove.
16063         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
16064         comparison with CC register to be used in folowing CCMP/branch/CSEL.
16065         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
16066         pattern.  Return the comparison with CC register.  Invert conditions
16067         when bitcode is OR.
16068         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
16069         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
16070
16071 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16072
16073         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
16074         instrumented_version.
16075
16076 2016-01-19  Richard Biener  <rguenther@suse.de>
16077
16078         PR tree-optimization/69336
16079         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
16080         handled components with get_ref_base_and_extent.
16081         (equal_mem_array_ref_p): Adjust.
16082
16083 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
16084
16085         PR debug/65779
16086         * shrink-wrap.c: Include valtrack.h.
16087         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
16088         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
16089         in between insn and where it will be moved to.  Call
16090         dead_debug_insert_temp.
16091         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
16092         first and dead_debug_local_finish at the end.
16093         For uses and defs bitmap, handle all regs in between REGNO and
16094         END_REGNO, not just the first one.
16095
16096 2016-01-19  Richard Biener  <rguenther@suse.de>
16097
16098         PR tree-optimization/69352
16099         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
16100         (equal_mem_array_ref_p): Constrain size and max size properly.
16101         Compare the reverse flag.
16102
16103 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
16104
16105         * ira.c (ira): Update regstat data if we deleted insns.
16106
16107 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
16108
16109         PR rtl-optimization/68955
16110         PR rtl-optimization/64557
16111         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
16112         here.  Fix up formatting.
16113         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
16114
16115 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16116
16117         PR lto/69133
16118         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
16119         assume that the node has body.
16120         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
16121         check.
16122
16123 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16124
16125         * lto-streamer-out.c (lto_output): Do not stream instrumentation
16126         thunks.
16127
16128 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16129
16130         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
16131         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
16132
16133 2016-01-19  Martin Jambor  <mjambor@suse.cz>
16134             Martin Liska  <mliska@suse.cz>
16135             Michael Matz  <matz@suse.de>
16136
16137         * Makefile.in (OBJS): Add new source files.
16138         (GTFILES): Add hsa.c.
16139         * common.opt (disable_hsa): New variable.
16140         (-Whsa): New warning.
16141         * config.in (ENABLE_HSA): New.
16142         * configure.ac: Treat hsa differently from other accelerators.
16143         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
16144         $enable_offloading.
16145         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
16146         * doc/install.texi (Configuration): Document --with-hsa-runtime,
16147         --with-hsa-runtime-include, --with-hsa-runtime-lib and
16148         --with-hsa-kmt-lib.
16149         * doc/invoke.texi (-Whsa): Document.
16150         (hsa-gen-debug-stores): Likewise.
16151         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
16152         to invoke offload compiler for hsa acclerator.
16153         * opts.c (common_handle_option): Determine whether HSA offloading
16154         should be performed.
16155         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
16156         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
16157         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
16158         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
16159         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
16160         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
16161         GF_OMP_FOR_KIND_GRID_LOOP.
16162         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
16163         (pp_gimple_stmt_1): Likewise.
16164         * gimple-walk.c (walk_gimple_stmt): Likewise.
16165         * gimple.c (gimple_build_omp_grid_body): New function.
16166         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
16167         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
16168         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
16169         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
16170         GF_OMP_TEAMS_GRID_PHONY.
16171         (gimple_statement_omp_single_layout): Updated comments.
16172         (gimple_build_omp_grid_body): New function.
16173         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
16174         (gimple_omp_for_grid_phony): New function.
16175         (gimple_omp_for_set_grid_phony): Likewise.
16176         (gimple_omp_parallel_grid_phony): Likewise.
16177         (gimple_omp_parallel_set_grid_phony): Likewise.
16178         (gimple_omp_teams_grid_phony): Likewise.
16179         (gimple_omp_teams_set_grid_phony): Likewise.
16180         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
16181         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
16182         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
16183         (BUILT_IN_GOMP_TARGET): Updated type.
16184         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
16185         (adjust_for_condition): New function.
16186         (get_omp_for_step_from_incr): Likewise.
16187         (extract_omp_for_data): Moved parts to adjust_for_condition and
16188         get_omp_for_step_from_incr.
16189         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
16190         (fixup_child_record_type): Bail out if receiver_decl is NULL.
16191         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
16192         (scan_omp_parallel): Do not create child functions for phony
16193         constructs.
16194         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
16195         (scan_omp_1_op): Checking assert we are not remapping to
16196         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
16197         (parallel_needs_hsa_kernel_p): New function.
16198         (expand_parallel_call): Register apprpriate parallel child
16199         functions as HSA kernels.
16200         (grid_launch_attributes_trees): New type.
16201         (grid_attr_trees): New variable.
16202         (grid_create_kernel_launch_attr_types): New function.
16203         (grid_insert_store_range_dim): Likewise.
16204         (grid_get_kernel_launch_attributes): Likewise.
16205         (get_target_argument_identifier_1): Likewise.
16206         (get_target_argument_identifier): Likewise.
16207         (get_target_argument_value): Likewise.
16208         (push_target_argument_according_to_value): Likewise.
16209         (get_target_arguments): Likewise.
16210         (expand_omp_target): Call get_target_arguments instead of looking
16211         up for teams and thread limit.
16212         (grid_expand_omp_for_loop): New function.
16213         (grid_arg_decl_map): New type.
16214         (grid_remap_kernel_arg_accesses): New function.
16215         (grid_expand_target_kernel_body): New function.
16216         (expand_omp): Call it.
16217         (lower_omp_for): Do not emit phony constructs.
16218         (lower_omp_taskreg): Do not emit phony constructs but create for them
16219         a temporary variable receiver_decl.
16220         (lower_omp_taskreg): Do not emit phony constructs.
16221         (lower_omp_teams): Likewise.
16222         (lower_omp_grid_body): New function.
16223         (lower_omp_1): Call it.
16224         (grid_reg_assignment_to_local_var_p): New function.
16225         (grid_seq_only_contains_local_assignments): Likewise.
16226         (grid_find_single_omp_among_assignments_1): Likewise.
16227         (grid_find_single_omp_among_assignments): Likewise.
16228         (grid_find_ungridifiable_statement): Likewise.
16229         (grid_target_follows_gridifiable_pattern): Likewise.
16230         (grid_remap_prebody_decls): Likewise.
16231         (grid_copy_leading_local_assignments): Likewise.
16232         (grid_process_kernel_body_copy): Likewise.
16233         (grid_attempt_target_gridification): Likewise.
16234         (grid_gridify_all_targets_stmt): Likewise.
16235         (grid_gridify_all_targets): Likewise.
16236         (execute_lower_omp): Call grid_gridify_all_targets.
16237         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
16238         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
16239         (tree_omp_clause): Added union field dimension.
16240         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
16241         * tree.c (omp_clause_num_ops): Added number of arguments of
16242         OMP_CLAUSE__GRIDDIM_.
16243         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
16244         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
16245         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
16246         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
16247         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
16248         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
16249         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
16250         * tree-pass.h (make_pass_gen_hsail): Declare.
16251         (make_pass_ipa_hsa): Likewise.
16252         * ipa-hsa.c: New file.
16253         * lto-section-in.c (lto_section_name): Add hsa section name.
16254         * lto-streamer.h (lto_section_type): Add hsa section.
16255         * timevar.def (TV_IPA_HSA): New.
16256         * hsa-brig-format.h: New file.
16257         * hsa-brig.c: New file.
16258         * hsa-dump.c: Likewise.
16259         * hsa-gen.c: Likewise.
16260         * hsa.c: Likewise.
16261         * hsa.h: Likewise.
16262         * toplev.c (compile_file): Call hsa_output_brig.
16263         * hsa-regalloc.c: New file.
16264
16265 2016-01-18  Jeff Law  <law@redhat.com>
16266
16267         PR tree-optimization/69320
16268         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
16269         ranged object, do nothing if the RHS constant is not [0..1].
16270         (optimize_stmt): Comparing a boolean ranged object against a
16271         constant outside [0..1] results in a compile-time constant.
16272
16273         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
16274         test.
16275
16276 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
16277
16278         * doc/invoke.texi (Invoking GCC): Add new section to menu.
16279         (Option Summary): Update to reflect new section and moved options.
16280         (C++ Dialect Options): Move -fstats to new section.
16281         (Debugging Options): Move all dump, statistics, and other GCC
16282         developer options to new section.  Rewrite section introduction
16283         and re-order remaining options to put the more basic ones first.
16284         (Optimization Options): Move -fira-verbose and -flto-report* to
16285         new section.
16286         (Developer Options): New section incorporating moved options.
16287         * doc/cppopts.texi (-dM): Update cross-reference.
16288
16289 2016-01-18  Richard Henderson  <rth@redhat.com>
16290
16291         PR target/69176
16292         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
16293         operands to pseudo only if CSE is expected.  Split long immediate
16294         operands only after reload, and for the stack pointer.
16295         (*add<GPI>3_pluslong): Remove.
16296         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
16297         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
16298         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
16299         (*add<GPI>3 peepholes): New.
16300         (*add<GPI>3 splitters): New.
16301         * config/aarch64/constraints.md (Upl): New.
16302         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
16303
16304 2016-01-18  Richard Biener  <rguenther@suse.de>
16305
16306         PR tree-optimization/69297
16307         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
16308         stmt at most once.
16309         (vect_bb_vectorization_profitable_p): Clear visited flag again.
16310
16311 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
16312
16313         PR middle-end/68542
16314         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
16315         of mixind vector and scalar types.
16316         (fold_relational_const): Add handling of vector
16317         comparison with boolean result.
16318         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
16319         comparison of vector operands with boolean result for EQ/NE only.
16320         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
16321         (verify_gimple_cond): Likewise.
16322         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
16323         valid type of VAL.
16324
16325 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
16326
16327         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
16328         !TARGET_OCTEON.
16329
16330 2016-01-18  Richard Biener  <rguenther@suse.de>
16331
16332         PR middle-end/69308
16333         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
16334
16335 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16336
16337         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
16338
16339 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16340
16341         * omp-low.c (set_oacc_fn_attrib): Make extern.
16342         * omp-low.h (set_oacc_fn_attrib): Declare.
16343         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
16344         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
16345         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
16346         Add and handle function parameter oacc_kernels_p.
16347         (find_reduc_addr, get_omp_data_i_param): New function.
16348         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
16349         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
16350         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
16351         Calculate dominance info.  Skip loops that are not in a kernels region
16352         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
16353         (pass_parallelize_loops::execute): Call parallelize_loops with
16354         oacc_kernels_p argument.
16355         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
16356         New member function.
16357         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
16358         * passes.def: Add argument to pass_parallelize_loops instantation.
16359
16360 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16361
16362         * tree-parloops.c (pass_parallelize_loops::execute): Allow
16363         pass_parallelize_loops to be run outside the loop pipeline.
16364
16365 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16366
16367         * tree-scalar-evolution.c (follow_copies_to_constant): New.
16368         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
16369
16370 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16371
16372         PR target/63679
16373         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
16374         using get_ref_base_and_extent.
16375         (equal_mem_array_ref_p): New.
16376         (hashable_expr_equal_p): Add call to previous.
16377
16378 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16379
16380         PR target/63679
16381         * tree-sra.c (disqualified_constants, constant_decl_p): New.
16382         (sra_initialize): Allocate disqualified_constants.
16383         (sra_deinitialize): Free disqualified_constants.
16384         (disqualify_candidate): Update disqualified_constants when appropriate.
16385         (create_access): Scan for constant-pool entries as we go along.
16386         (scalarizable_type_p): Add check against type_contains_placeholder_p.
16387         (maybe_add_sra_candidate): Allow constant-pool entries.
16388         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
16389         (initialize_constant_pool_replacements): New.
16390         (sra_modify_assign): Avoid mangling assignments created by previous,
16391         and don't generate writes into constant pool.
16392         (sra_modify_function_body): Call initialize_constant_pool_replacements.
16393
16394 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16395
16396         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
16397         andnot instruction.
16398         (scalar_chain::convert_op): Likewise.
16399         * config/i386/i386.md (*andndi3_doubleword): New.
16400
16401 2016-01-18  Richard Biener  <rguenther@suse.de>
16402
16403         PR tree-optimization/69170
16404         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
16405         building a vector from scalar results of a pattern stmt.
16406
16407 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
16408
16409         * haifa-sched.c (autopref_multipass_init): Work around
16410         -Wmaybe-uninitialized warning.
16411
16412 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16413
16414         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
16415         against the constant 0.
16416
16417 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16418
16419         PR tree-optimization/68799
16420         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
16421         look up phi candidates in the statement-candidate map.
16422         (phi_add_costs): Likewise.
16423         (record_phi_increments): Likewise.
16424         (phi_incr_cost): Likewise.
16425         (ncd_with_phi): Likewise.
16426         (all_phi_incrs_profitable): Likewise.
16427
16428 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
16429
16430         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
16431         -Wmaybe-uninitialized warning.
16432
16433 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
16434
16435         * doc/invoke.texi (Invoking GCC): Add new section to menu.
16436         (Option Summary): Update to reflect new section and moved options.
16437         (C++ Dialect Options): Move -fvtable-verify and related options.
16438         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
16439         and profiling-related options.
16440         (Optimization Options): Move profile generation options and
16441         -fstack-protector and related options.
16442         (Instrumentation Options): New section incorporating moved options.
16443         (Code Generation Options): Move -finstrument-functions and
16444         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
16445
16446 2016-01-16  Tom de Vries  <tom@codesourcery.com>
16447
16448         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
16449
16450 2016-01-16  Tom de Vries  <tom@codesourcery.com>
16451
16452         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
16453
16454 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
16455
16456         * hash-table.h (hash_table::empty): Turn into an inline wrapper
16457         that checks whether the table is already empty.  Rename the
16458         original implementation to...
16459         (hash_table::empty_slot): ...this new private function.
16460
16461 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
16462
16463         PR diagnostic/68899
16464         * diagnostic-show-locus.c (layout::print_source_line): Move x
16465         offset of line until after call to
16466         get_line_width_without_trailing_whitespace.
16467
16468 2016-01-15  Jeff Law  <law@redhat.com>
16469
16470         PR tree-optimization/69270
16471         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
16472         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
16473         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
16474         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
16475         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
16476         ssa_name_has_boolean_range and constant_boolean_node.
16477
16478 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
16479
16480         PR rtl-optimization/69030
16481         * lra-spills.c (remove_pseudos): Check nrefs and make the function
16482         returning bool.
16483         (spill_pseudos): Delete debug insn for dead pseudo.
16484         (lra_spill): Initiate spill_hard_reg and slots memory separately.
16485
16486 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
16487
16488         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
16489         New.
16490         (TYPES_UNOPUS): Likewise.
16491         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
16492         builtin type, from UNOP to UNOPUS.
16493         (lbtruncuv4sf): Likewise.
16494         (lbtruncuv2df): Likewise.
16495         (lrounduv2sf): Likewise.
16496         (lrounduv4sf): Likewise.
16497         (lrounduv2df): Likewise.
16498         (lroundusf): Likewise.
16499         (lroundusf): Likewise.
16500         (lceiluv2sf): Likewise.
16501         (lceiluv4sf): Likewise.
16502         (lceiluv2df): Likewise.
16503         (lceilusf): Likewise.
16504         (lceiludf): Likewise.
16505         (lflooruv2sf): Likewise.
16506         (lflooruv4sf): Likewise.
16507         (lflooruv2df): Likewise.
16508         (lfloorusf): Likewise.
16509         (lfloorudf): Likewise.
16510         (lfrintnuv2sf): Likewise.
16511         (lfrintnuv4sf): Likewise.
16512         (lfrintnuv2df): Likewise.
16513         (lfrintnusf): Likewise.
16514         (lfrintnudf): Likewise.
16515         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
16516         conversion.
16517         (vcvtq_u32_f32): Likewise.
16518         (vcvtq_u64_f64): Likewise.
16519         (vcvta_u32_f32): Likewise.
16520         (vcvtaq_u32_f32): Likewise.
16521         (vcvtaq_u64_f64): Likewise.
16522         (vcvtm_u32_f32): Likewise.
16523         (vcvtmq_u32_f32): Likewise.
16524         (vcvtmq_u64_f64): Likewise.
16525         (vcvtn_u32_f32): Likwise.
16526         (vcvtnq_u32_f32): Likewise.
16527         (vcvtnq_u64_f64): Likewise.
16528         (vcvtp_u32_f32): Likewise.
16529         (vcvtpq_u32_f32): Likewise.
16530         (vcvtpq_u64_f64): Likewise.
16531         (vcvtmd_u64_f64): Likewise.
16532         (vcvtms_u32_f32): Likewise.
16533         (vcvtad_u64_f64): Likewise.
16534         (vcvtas_u32_f32): Likewise.
16535         (vcvtnd_u64_f64): Likewise.
16536         (vcvtns_u32_f32): Likewise.
16537         (vcvtpd_u64_f64): Likewise.
16538         (vcvtps_u32_f32): Likewise.
16539
16540 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16541
16542         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
16543         CSEL of zero_extended registers.
16544
16545 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16546
16547         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
16548         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
16549
16550 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16551
16552         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
16553         false when argument string is not found in the attributes table
16554         at all.
16555
16556 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
16557
16558         PR target/68609
16559         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
16560         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
16561         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
16562         precision estimate.
16563
16564 2016-01-15  Richard Biener  <rguenther@suse.de>
16565
16566         PR tree-optimization/66856
16567         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
16568         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
16569         (vect_create_new_slp_node): Increment stmt reference count.
16570         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
16571         an SLP tree before swapping operands.
16572         (vect_build_slp_tree): Likewise.
16573         (destroy_bb_vec_info): Free stmt info after SLP instances.
16574         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
16575         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
16576         (STMT_VINFO_NUM_SLP_USES): New macro.
16577
16578 2016-01-15  Richard Biener  <rguenther@suse.de>
16579
16580         PR debug/69137
16581         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
16582         (add_linkage_name): ... here.
16583         (gen_typedef_die): Use add_linkage_name_raw instead of
16584         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
16585         if necessary.
16586
16587 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
16588
16589         * gimplify.c (oacc_default_clause): Decode reference and pointer
16590         types for both kernels and parallel regions.
16591
16592 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
16593
16594         PR middle-end/69246
16595         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
16596
16597 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
16598
16599         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
16600         (convert_scalars_to_vector): Likewise.
16601
16602 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
16603
16604         * doc/extend.texi (Type Traits): Fix grammar.
16605
16606 2016-01-15  Martin Jambor  <mjambor@suse.cz>
16607
16608         * tree-inline.c (remap_decl): Use existing dclarations if
16609         remapping a type and prevent_decl_creation_for_types.
16610         (replace_locals_stmt): Do an initial remapping of non-VLA typed
16611         decls first.  Do real remapping with
16612         prevent_decl_creation_for_types set.
16613         * tree-inline.h (copy_body_data): New field
16614         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
16615         padding.
16616
16617 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16618
16619         * config/s390/s390.opt (mmvcle): More verbose help text.
16620
16621 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16622
16623         * config/s390/s390.opt: Add period to -mzvector option text.
16624
16625 2016-01-15  Richard Biener  <rguenther@suse.de>
16626
16627         PR tree-optimization/68961
16628         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
16629         of invariants in stores again.
16630
16631 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16632
16633         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
16634
16635 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
16636
16637         * config/i386/i386.c (ix86_expand_branch): Don't split
16638         DI mode xor instruction to SI mode.
16639
16640 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
16641
16642         PR ipa/68148
16643         * ipa-icf.c (sem_function::merge): Virtual functions may become
16644         reachable even if they address is not taken and there are no
16645         idrect calls.
16646
16647 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
16648
16649         * lto-streamer-out.c (subtract_estimated_size): New function.
16650         (get_symbol_initial_value): Use it.
16651
16652 2016-01-15  Christian Bruel  <christian.bruel@st.com>
16653
16654         PR target/65837
16655         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
16656         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
16657         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
16658         use add_builtin_function_ext_scope instead of add_builtin_function.
16659         (neon_set_p, neon_crypto_set_p): Remove.
16660         (arm_init_builtins): Always call arm_init_neon_builtins and
16661         arm_init_crypto_builtins.
16662         (arm_expand_builtin): Check that builtins are allowed for the arch.
16663         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
16664         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
16665         arm_init_neon_builtins call.
16666
16667 2016-01-15  Richard Biener  <rguenther@suse.de>
16668
16669         PR tree-optimization/69117
16670         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
16671         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
16672         of the leader conservatively.
16673         (free_scc_vn): Restore original SSA name infos.
16674
16675 2016-01-14  Jeff Law  <law@redhat.com>
16676
16677         PR tree-optimization/69270
16678         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
16679         single bit of precision, verify it's also unsigned.
16680         (record_edge_info): Use constant_boolean_node rather than fold_convert
16681         to convert boolean_true/boolean_false to the right type.
16682
16683 2016-01-14  Richard Henderson  <rth@redhat.com>
16684
16685         PR rtl-opt/69014
16686         * loop-doloop.c (record_reg_sets): New.
16687         (doloop_optimize): Reject the transform if the sequence
16688         clobbers registers live at the end of the loop block.
16689         (doloop_optimize_loops): Enable df_live if needed.
16690
16691 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16692
16693         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
16694         * config/rs6000/rs6000.c: Likewise.
16695         * config/rs6000/rs6000.h: Likewise.
16696         * config/rs6000/rs6000.md: Likewise.
16697         * doc/extend.texi: Likewsie.
16698
16699 2016-01-14  Jeff Law  <law@redhat.com>
16700
16701         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
16702         typo.
16703
16704 2016-01-14  Richard Henderson  <rth@redhat.com>
16705
16706         PR c/69272
16707         PR tree-opt/68964
16708         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
16709         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
16710         instead of builtin_decl_declared_p to test for declaration.
16711
16712 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
16713
16714         * doc/loop.texi (Loop Analysis and Representation): Document
16715         loop_depth function.
16716
16717 2016-01-14  Tom de Vries  <tom@codesourcery.com>
16718
16719         PR tree-optimization/68773
16720         * omp-low.c (expand_omp_target): Don't set force_output.
16721         * varpool.c (varpool_node::get_create): Same.
16722         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
16723         offload_funcs with force_output.
16724
16725 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16726
16727         PR debug/69244
16728         * lra-eliminations.c (move_plus_up): Don't change anything if either
16729         the outer or inner subreg mode is not MODE_INT.
16730         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
16731         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
16732
16733 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
16734
16735         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
16736         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
16737         reduc_uplus_@var{m}): Remove.
16738         * expr.c (expand_expr_real_2): Remove expansion path for
16739         reduc_[us](min|max|plus) optabs.
16740         * optabs-tree.c (scalar_reduc_to_vector): Remove.
16741         * optabs-tree.h (scalar_reduc_to_vector): Remove.
16742         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
16743         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
16744         * tree-vect-loop.c (vectorizable_reduction): Remove test for
16745         reduc_[us](min|max|plus) optabs.
16746
16747 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
16748
16749         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
16750         (reduc_plus_scal_v2sf): New.
16751         (reduc_smax_v2sf): Rename to...
16752         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
16753         (reduc_smin_v2sf): Rename to...
16754         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
16755
16756 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
16757
16758         * alias.c (compare_base_symbol_refs): New function.
16759         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
16760         it.
16761
16762 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16763
16764         PR middle-end/68146
16765         PR tree-optimization/69155
16766         * tree-complex.c: Include cfganal.h.
16767         (phis_to_revisit): New variable.
16768         (extract_component): Add phiarg_p argument.  Assert that returned
16769         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
16770         (update_phi_components): Partly rewrite to use loop over real/imag
16771         components instead of code duplication.  If extract_component returns
16772         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
16773         create_tmp_reg into the PHI node instead, and mention the phi triplet
16774         in phis_to_revisit.
16775         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
16776         in phis_to_revisit at the end.
16777
16778 2016-01-14  Richard Biener  <rguenther@suse.de>
16779
16780         PR tree-optimization/68060
16781         * tree-vect-loop.c (vect_is_simple_reduction): Check the
16782         outer loop reduction is only used in the inner loop before
16783         detecting a double reduction.
16784
16785 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16786
16787         PR target/68269
16788         * combine.c (expand_field_assignment): Punt if compute_mode is
16789         unsupported scalar mode.
16790
16791 2016-01-14  Richard Biener  <rguenther@suse.de>
16792
16793         PR tree-optimization/66856
16794         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
16795         SLP node only if it built successfully.
16796         (vect_analyze_slp_instance): Adjust.
16797
16798 2016-01-14  Jeff Law  <law@redhat.com>
16799
16800         PR tree-optimization/69270
16801         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
16802         (record_edge_info): Use it.  Convert boolean_{true,false}_node
16803         to the type of op0.
16804
16805 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
16806
16807         PR ipa/66487
16808         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
16809         use block_ultimate_origin
16810         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
16811
16812 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
16813
16814         * doc/invoke.texi (Submodel Options): Rename section to
16815         "Machine-Dependent Options" to better reflect its content.
16816         Rewrite introductory text to remove archaic CPU names.
16817         Update references.
16818
16819 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
16820
16821         * doc/invoke.texi (Code Gen Options): Move section up in file,
16822         before target-specific options.  Update menu and option summary
16823         to reflect the new section ordering.
16824
16825 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
16826
16827         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
16828         (C++ Dialect Options): Add cross-reference to -std option.
16829         * doc/standards.texi (C++ Language): Document C++14 support.
16830
16831 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
16832
16833         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
16834         for pack/unpack functions for __ibm128.
16835         (PACK_IF): Likewise.
16836         (UNPACK_IF): Likewise.
16837
16838         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
16839         support for __ibm128 pack/unpack functions.
16840         (rs6000_invalid_builtin): Likewise.
16841         (rs6000_init_builtins): Likewise.
16842         (rs6000_opt_masks): Likewise.
16843
16844         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
16845         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
16846         functions
16847         (RS6000_BTM_COMMON): Likewise.
16848
16849         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
16850         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
16851         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
16852         128-bit floating point.  Add support for the double values to be
16853         in Altivec registers for TF/IF packing and unpacking, but restrict
16854         TD packing sub-fields to be FPR registers.  Don't allow overlapped
16855         register support for packing.  Allow pack inputs to be memory
16856         locations.  Don't build generator functions for unpack<mode>_dm
16857         and unpack<mode>_nodm.
16858         (unpack<mode>_dm): Likewise.
16859         (unpack<mode>_nodm): Likewise.
16860         (pack<mode>): Likewise.
16861
16862         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
16863         built-in functions to pack/unpack explicit __ibm128 values.
16864         (__builtin_unpack_ibm128): Likewise.
16865
16866         * doc/extend.texi (PowerPC Built-in Functions): Document
16867         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
16868
16869 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
16870
16871         PR c/66208
16872         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
16873         Add new arg loc and pass it down as context.
16874         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
16875         to the location to use for the warning.
16876         (check_function_arguments): New arg loc.  All callers changed.  Pass
16877         it to check_function_nonnull.
16878         * c-common.h (check_function_arguments): Adjust declaration.
16879
16880 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
16881
16882         PR tree-optimization/69156
16883         * gimple.c (validate_type): Removed.
16884         (gimple_builtin_call_types_compatible_p): Use
16885         useless_type_conversion_p instead of validate_type.
16886         * value-prof.c (gimple_stringop_fixed_value): Fold
16887         icall_size to correct type.
16888
16889 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
16890
16891         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
16892         effects.
16893
16894 2016-01-13  Richard Henderson  <rth@redhat.com>
16895
16896         PR tree-opt/68964
16897         * target.def (builtin_tm_load, builtin_tm_store): Remove.
16898         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
16899         (ix86_builtin_tm_store): Remove.
16900         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
16901         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
16902         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
16903         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
16904         * doc/tm.texi: Rebuild.
16905
16906         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
16907         (BUILT_IN_TM_MEMCPY_RTWN): New.
16908         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
16909         fallback from vector to integer helpers.
16910         (build_tm_load): Handle vector types directly, instead of
16911         via target hook.
16912         (build_tm_store): Likewise.
16913         (expand_assign_tm): Prepare for register types not handled by
16914         the above.  Copy them to memory and use memcpy.
16915         * tree.c (tm_define_builtin): New.
16916         (find_tm_vector_type): New.
16917         (build_tm_vector_builtins): New.
16918         (build_common_builtin_nodes): Call it.
16919
16920 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
16921
16922         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
16923         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
16924
16925 2016-01-13  Tom de Vries  <tom@codesourcery.com>
16926
16927         PR tree-optimization/69169
16928         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
16929         handled_struct_type param.
16930         (create_variable_info_for, intra_create_variable_infos): Call
16931         create_variable_info_for_1 with extra arg.
16932
16933 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
16934
16935         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
16936         and "armv8.1-a+crc" entries.
16937
16938 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
16939
16940         PR target/69228
16941         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
16942         Change first operand predicate from register_or_constm1_operand
16943         to register_operand.
16944         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
16945         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
16946         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
16947         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
16948         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
16949         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
16950         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
16951         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
16952         comparison with constm1_rtx from vec_prefetch_gen part.
16953
16954 2016-01-13  Richard Biener  <rguenther@suse.de>
16955
16956         PR tree-optimization/69013
16957         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
16958         Exchange assert for a test.
16959
16960 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16961
16962         PR target/69247
16963         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
16964
16965 2016-01-13  Richard Biener  <rguenther@suse.de>
16966
16967         PR tree-optimization/69242
16968         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
16969         assert with a check.
16970
16971 2016-01-13  Richard Biener  <rguenther@suse.de>
16972
16973         PR tree-optimization/69186
16974         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
16975         Properly guard vect_update_misalignment_for_peel call.
16976
16977 2016-01-12  Jeff Law  <law@redhat.com>
16978
16979         PR tree-optimization/pr67755
16980         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
16981         "need_profile_correction".
16982         (thread_block_1): Initialize new field to false by default.  If we
16983         have multiple thread paths through a common joiner to different
16984         final targets, then set new field to true.
16985         (compute_path_counts): Only do count adjustment when it's really
16986         needed.
16987
16988 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
16989
16990         * doc/invoke.texi (Spec Files): Move section down in file, past
16991         all command-line option descriptions.
16992
16993 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16994
16995         PR middle-end/54809
16996         * doc/gty.texi: Remove documentation of mark_hook.
16997         * gengtype.c (struct write_types_data): Remove code to support
16998         mark_hook attribute.
16999         (walk_type): Likewise.
17000         (write_func_for_structure): Likewise.
17001
17002 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17003
17004         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
17005         Directory Options, and -specs= to Overall Options.
17006         (Overall Options): Adjust similarly.  Reorder to group related
17007         options together.  Make -specs= cross-reference the spec file details.
17008         (Directory Options): Adjust similarly.
17009
17010 2016-01-12  Jeff Law  <law@redhat.com>
17011
17012         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
17013
17014 2016-01-12  Olivier Hainque  <hainque@adacore.com>
17015
17016         * gcc.c (spec_undefvar_allowed): New global.
17017         (process_command): Set to true when running for --version or --help,
17018         alone or together.
17019         (getenv_spec_function): When the variable is not defined, use the
17020         variable name as the variable value if we're allowed not to issue
17021         a fatal error.
17022
17023 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
17024
17025         PR tree-optimization/68911
17026         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
17027         information computed for expression "init + nit * step".
17028
17029 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17030
17031         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
17032         about name of GCC executable.  Remove deleted node from menu.
17033         (Directory Options) <-B>: Remove cross-reference to deleted node.
17034         (Target Options): Delete section.
17035
17036 2016-01-12  Christian Bruel  <christian.bruel@st.com>
17037
17038         PR target/69180
17039         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
17040         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
17041
17042 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
17043
17044         PR target/69198
17045         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
17046         aligned_mem is properly set for AVX512-VL floating point masked
17047         stores.
17048
17049         PR target/69175
17050         * ifcvt.c (cond_exec_process_if_block): When removing the last
17051         insn from then_bb, remove also any possible barriers that follow it.
17052
17053 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
17054
17055         PR target/68456
17056         PR target/69226
17057         * config/i386/iamcu.h (SIZE_TYPE): New macro.
17058         (PTRDIFF_TYPE): Likewise.
17059         (WCHAR_TYPE): Likewise.
17060         (WCHAR_TYPE_SIZE): Likewise.
17061         (STDINT_LONG32): Likewise.
17062
17063 2016-01-12  Richard Biener  <rguenther@suse.de>
17064
17065         PR tree-optimization/69053
17066         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
17067         convert initial value for cond reductions.
17068
17069 2016-01-12  Richard Biener  <rguenther@suse.de>
17070
17071         PR tree-optimization/69007
17072         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
17073         widen_sum after dot_prod and sad.
17074
17075 2016-01-12  Richard Biener  <rguenther@suse.de>
17076
17077         PR tree-optimization/69168
17078         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
17079         pattern stmt SLP type.
17080         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
17081         end up unused so cope with that case.
17082
17083 2016-01-12  Richard Biener  <rguenther@suse.de>
17084
17085         PR tree-optimization/69157
17086         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
17087         stmts def type only during analyze phase.
17088         (vectorizable_call): Likewise.
17089         (vectorizable_simd_clone_call): Likewise.
17090         (vectorizable_conversion): Likewise.
17091         (vectorizable_assignment): Likewise.
17092         (vectorizable_shift): Likewise.
17093         (vectorizable_operation): Likewise.
17094         (vectorizable_store): Likewise.
17095         (vectorizable_load): Likewise.
17096
17097 2016-01-12  Richard Biener  <rguenther@suse.de>
17098
17099         PR tree-optimization/69174
17100         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
17101         space.
17102         (vectorizable_load): Properly compute the number of loads needed
17103         for permuted strided SLP loads and do not spuriously assign
17104         to SLP_TREE_VEC_STMTS.
17105
17106 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
17107
17108         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
17109         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
17110         (MD_EXEC_PREFIX): Remove.
17111         (MD_STARTFILE_PREFIX) Removee.
17112         (FILE_NAME_ABSOLUTE_P): Remove.
17113         (CPP_SPEC): Do not read macros from sys/version.h.
17114         (LINK_COMMAND_SPEC): Remove.
17115         (LOCAL_INCLUDE_DIR): Remove.
17116         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
17117         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
17118         (POST_LINK_SPEC): Define to invoke stubify after linker
17119         (LIBSTDCXX): Remove define
17120         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
17121         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
17122         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
17123         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
17124         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
17125         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
17126         (i386_djgpp_asm_named_section): Add propotype of new procedure
17127
17128         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
17129         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
17130         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
17131         in config/i386/djgpp.h).
17132         (STANDARD_STARTFILE_PREFIX_2): Define identical to
17133         STANDARD_STARTFILE_PREFIX_1.
17134         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
17135         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
17136         installation errors.
17137         (MAX_OFILE_ALIGNMENT): Define to 128.
17138         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
17139
17140         * config/i386/djgpp.c: New file. Add implementation of
17141         i386_djgpp_asm_named_section.
17142
17143         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
17144
17145         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
17146         Add rule for building djgpp.o.
17147
17148 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17149
17150         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
17151         (rtx_is_swappable_p): Reductions are swappable.
17152         (insn_is_swappable_p): V2DF reductions are swappable.
17153
17154 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
17155
17156         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
17157         reloads for other unsupported memory operands.
17158
17159 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
17160             Jim Wilson  <jim.wilson@linaro.org>
17161
17162         PR target/69194
17163         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
17164         copy_to_mode_reg instead of force_reg.
17165
17166 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
17167
17168         PR target/69225
17169         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
17170         TARGET_80387 is true.
17171
17172 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
17173
17174         PR target/69071
17175         * lra-eliminations.c (move_plus_up): Only move plus up
17176         if subreg of the constant can be simplified into constant
17177         and use the simplified subreg of the constant instead of
17178         the original constant.
17179
17180         * fold-const.c (fold_convertible_p): Don't return true
17181         for conversion of VECTOR_TYPE to same sized integral type.
17182         (fold_convert_loc): Fix up formatting.  Fold conversion of
17183         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
17184         instead of NOP_EXPR.
17185
17186         PR tree-optimization/69214
17187         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
17188         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17189         Formatting fix.
17190
17191         PR tree-optimization/69207
17192         * tree-vect-slp.c (vect_get_constant_vectors): For
17193         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
17194         fold_convertible_p to vector_type's element type, and always
17195         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
17196
17197 2016-01-11  Richard Biener  <rguenther@suse.de>
17198
17199         PR tree-optimization/69173
17200         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
17201         fixup the cycle if all stmts are in a pattern.
17202
17203 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
17204
17205         PR middle-end/68999
17206         * alias.c (base_alias_check): Move check for addresses with
17207         alignment ANDs before the call for compare_base_decls.
17208         (memrefs_conflict_p): Return -1 for different decls
17209         that went through alignment adjustments.
17210
17211 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17212
17213         PR rtl-optimization/68796
17214         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
17215         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
17216         and QImode comparisons against zero with CC_NZmode.
17217         * config/aarch64/iterators.md (short_mask): New mode_attr.
17218
17219 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
17220
17221         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
17222         (<avx512>_store<mode>_mask): Likewise.
17223
17224 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
17225             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17226
17227         PR rtl-optimization/68841
17228         * ifcvt.c (struct noce_if_info): Add orig_x field.
17229         (bbs_ok_for_cmove_arith): Add to_rename parameter.
17230         Don't record conflicts on to_rename if it's present.
17231         Allow memory destinations in sets.
17232         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
17233         blocks, passing orig_x to the checks.
17234         (noce_process_if_block): Set if_info->orig_x appropriately.
17235
17236 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17237
17238         PR tree-optimization/69069
17239         * tree-parloops.c (create_parallel_loop): Add missing phi args.
17240
17241 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
17242
17243         PR rtl-optimization/68920
17244         * config/i386/i386.c (ix86_option_override_internal): Restrict number
17245         of conditional moves for  RTL if-conversion to 1 for
17246         TARGET_ONE_IF_CONV_INSN.
17247         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
17248         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
17249         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
17250         parameter to restirct number of conditional moves for
17251         RTL if-conversion.
17252         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
17253         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
17254         conditionl moves.
17255
17256 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
17257
17258         PR bootstrap/69123
17259         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
17260         onepart vars.  Fix typo in comment.  Fix reversed condition in
17261         unshare test.
17262         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
17263
17264         PR bootstrap/69123
17265         * var-tracking.c (dump_onepart_variable_differences): New.
17266         (dataflow_set_different): If a detailed dump is requested,
17267         delay early returns and dump differences between onepart
17268         variables present before and after, and added variables.
17269
17270 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
17271
17272         PR target/69010
17273         * expr.c (expand_expr_real_1): For boolean vector constants
17274         with a scalar mode use const_scalar_mask_from_tree.
17275         (const_scalar_mask_from_tree): New.
17276         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
17277         assigned to a mask type to handle constants.
17278
17279 2016-01-11  Martin Jambor  <mjambor@suse.cz>
17280
17281         PR ipa/69044
17282         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
17283         useless parameters if we cannot change function signature.
17284
17285 2016-01-11  Martin Jambor  <mjambor@suse.cz>
17286
17287         PR ipa/66616
17288         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
17289         flag.
17290
17291 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17292
17293         PR tree-optimization/69109
17294         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
17295         latch with phi.
17296
17297 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17298
17299         PR tree-optimization/69108
17300         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
17301         res is not used in a phi.
17302
17303 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
17304
17305         PR 67425
17306         * common.opt (frandom-seed): Fix parameter name.
17307         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
17308
17309 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17310
17311         PR tree-optimization/69058
17312         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
17313         not supported.
17314
17315 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
17316
17317         * config/arc/arc.opt (mdiv-rem): Add period to the end.
17318         (mcode-density): Likewise.
17319
17320 2016-01-10  Tom de Vries  <tom@codesourcery.com>
17321
17322         PR tree-optimization/69062
17323         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
17324         (parallelize_loops): Don't paralelize loop that has phi with address
17325         arg.
17326
17327 2016-01-10  Tom de Vries  <tom@codesourcery.com>
17328
17329         PR tree-optimization/69039
17330         * tree-parloops.c (try_create_reduction_list): Only allow single exit
17331         phi for reduction.
17332
17333 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
17334
17335         PR middle-end/68743
17336         * match.pd: Require target has function_c99_misc before doing
17337         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
17338
17339 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
17340
17341         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
17342         use GMPINC.
17343         * configure: Regenerate.
17344
17345 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
17346
17347         PR middle-end/50865
17348         PR tree-optimization/69097
17349         * fold-const.h (expr_not_equal_to): New prototype.
17350         * fold-const.c: Include stringpool.h and tree-ssanames.h.
17351         (expr_not_equal_to): New function.
17352         * match.pd (X % -Y is the same as X % Y): Don't optimize
17353         unless X is known not to be equal to minimum or Y is known
17354         not to be equal to -1.
17355         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
17356         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
17357         (simplify_stmt_using_ranges): Adjust caller.
17358         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
17359         substitute_and_fold.
17360
17361 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
17362
17363         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
17364         w/o DECL_NAME.
17365
17366 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17367
17368         PR tree-optimization/69167
17369         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
17370         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
17371         ops[0] comparison.
17372         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
17373
17374 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
17375             Richard Biener  <rguenther@suse.de>
17376
17377         PR tree-optimization/68707
17378         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
17379         instances that can be handled via vect_load_lanes.
17380
17381 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
17382
17383         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
17384         if we can't determine address equivalence.
17385         * alias.c (compare_base_decl): Update for changed return value of
17386         symtab_node::equal_address_to.
17387
17388 2016-01-08  Jason Merrill  <jason@redhat.com>
17389
17390         PR c++/68983
17391         PR c++/67557
17392         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
17393         * expr.c (store_field): Not here.
17394         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
17395         call with TREE_ADDRESSABLE type.
17396         * tree-cfg.c (verify_gimple_call): Adjust.
17397
17398 2016-01-08  Olivier Hainque  <hainque@adacore.com>
17399
17400         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
17401         libc_internal.
17402
17403 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
17404
17405         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
17406         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
17407         (reduc_smin_v2sf): Rename to...
17408         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
17409         (reduc_splus_v2sf): Rename to...
17410         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
17411
17412 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17413
17414         PR tree-optimization/69162
17415         * gimplify.c (gimplify_va_arg_expr): Encode original type of
17416         valist argument in another argument.
17417         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
17418         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
17419         to determine the va_list type, build a MEM_REF instead of
17420         build_fold_indirect_ref.
17421
17422         PR tree-optimization/69172
17423         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
17424         gimple_build.
17425
17426 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17427
17428         PR tree-optimization/67781
17429         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
17430         and cmpnop in two steps: first the ones not accessed in original
17431         gimple expression in a endian independent way and then the ones not
17432         accessed in the final result in an endian-specific way.
17433
17434 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17435
17436         PR tree-optimization/69083
17437         * tree-vect-slp.c (vect_get_constant_vectors): For
17438         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
17439         element type.  If op is fold_convertible_p to vector_type's element
17440         type, use NOP_EXPR instead of VCE.
17441
17442 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
17443
17444         PR rtl-optimization/67778
17445         PR rtl-optimization/68634
17446         PR rtl-optimization/68909
17447         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
17448         block from the stack until done with it.  Remove a superfluous
17449         bitmap set.  Remove a superfluous bitmap test.
17450
17451 2016-01-07  Martin Sebor  <msebor@redhat.com>
17452
17453         PR c/68966
17454         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
17455         constraint on the type of arguments.
17456
17457 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
17458
17459         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
17460         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
17461         unaligned_access on the gcc_options set.
17462         * config/arm/arm.c (arm_option_override_internal): Use
17463         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
17464
17465 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
17466
17467         PR target/69140
17468         * config/i386/i386.c (ix86_frame_pointer_required): Enable
17469         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
17470
17471 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
17472
17473         Revert
17474         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
17475
17476         PR target/69140
17477         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
17478         depending on frame_pointer_needed before remaining integer and SSE
17479         registers are saved.
17480
17481 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
17482
17483         PR 1078
17484         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
17485
17486 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
17487
17488         PR target/69171
17489         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
17490         Use the "xBm" constraint.
17491         (float<sseintvecmodelower><mode>2<mask_name><round_name):
17492         Likewise.
17493         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
17494         (sse_cvtsi2ssq<round_name>): Likewise.
17495         (sse_cvtss2si<round_name>): Likewise.
17496         (sse_cvtss2siq<round_name>): Likewise.
17497         (sse2_cvtsi2sdq<round_name>): Likewise.
17498         (sse2_cvtsd2si<round_name>): Likewise.
17499         (sse2_cvtsd2siq<round_name>): Likewise.
17500         * config/i386/subst.md (round_nimm_scalar_predicate): New
17501         predicate.
17502
17503 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
17504
17505         PR middle-end/67639
17506         * varasm.c (make_decl_rtl): Mark invalid register vars as
17507         DECL_EXTERNAL.
17508
17509         PR rtl-optimization/66206
17510         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
17511         All callers changed.
17512
17513 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
17514
17515         PR tree-optimization/69141
17516         * tree-ssa-pre.c: Include langhooks.h.
17517         (eliminate_dom_walker::before_dom_children): Use
17518         lang_hooks.decl_printable_name instead of
17519         cgraph_node::get ()->name ().
17520
17521         PR middle-end/68960
17522         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
17523         it and DECL_ALIGN too.
17524
17525 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
17526
17527         * config/mips/mips-ftypes.def: Sort to lexicographical order.
17528
17529 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
17530
17531         PR target/69140
17532         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
17533         depending on frame_pointer_needed before remaining integer and SSE
17534         registers are saved.
17535
17536 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17537
17538         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
17539         mode iterator with VSX_M2.
17540         (*p9_vecstore_<mode>): Likewise.
17541         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
17542         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
17543         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
17544         (define_split for VSX_LE128 stores): Likewise.
17545         (define_peephole2 for TImode LE swaps): Likewise.
17546         (define_split for VSX_LE128 post-reload stores): Likewise.
17547
17548 2016-01-06  Marek Polacek  <polacek@redhat.com>
17549
17550         PR sanitizer/69099
17551         * convert.c (convert_to_integer_1): Adjust call to
17552         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
17553         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
17554         EXPR instead of ARG.
17555         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
17556
17557 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17558
17559         PR 1078
17560         * doc/extend.texi (RL78 Variable Attributes): New section.
17561
17562 2016-01-05  Marek Polacek  <polacek@redhat.com>
17563
17564         PR c/69104
17565         * builtins.c (get_memmodel): Use expansion point location rather than
17566         the input location.  Call warning_at rather than warning.
17567         (expand_builtin_atomic_compare_exchange): Likewise.
17568         (expand_builtin_atomic_load): Likewise.
17569         (expand_builtin_atomic_store): Likewise.
17570         (expand_builtin_atomic_clear): Likewise.
17571
17572 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17573
17574         PR target/68991
17575         * config/i386/i386.c (ix86_expand_vector_logical_operator):
17576         Replace nonimmediate_operand with vector_operand.
17577         * config/i386/predicates.md (vector_operand): New predicate.
17578         (general_vector_operand): Replace nonimmediate_operand with
17579         vector_operand.
17580         * config/i386/sse.md: Replace nonimmediate_operand with
17581         vector_operand and m constraint with Bm constraint on SSE
17582         patterns with 16-byte memory operand.
17583         * config/i386/subst.md (round_nimm_predicate): Replace
17584         nonimmediate_operand with vector_operand.
17585         (round_saeonly_nimm_predicate): Likewise.
17586         (round_saeonly_nimm_scalar_predicate): New.
17587
17588 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17589
17590         PR target/68991
17591         * config/i386/constraints.md (Bm): New constraint.
17592         * config/i386/predicates.md (vector_memory_operand): New
17593         predicate.
17594         * config/i386/sse.md: Replace xm with xBm in plusminus and
17595         any_logic patterns.
17596
17597 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17598
17599         PR 1078
17600         * doc/extend.texi (V850 Function Attributes): New section.
17601         (V850 Variable Attributes): New section.
17602
17603 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17604
17605         PR 1078
17606         * doc/extend.texi (MicroBlaze Function Attributes): Document
17607         interrupt_handler and fast_interrupt attributes.
17608
17609 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
17610
17611         PR other/60465
17612         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
17613         for local symbolic operands.
17614         * config/ia64/predicates.md (local_symbolic_operand64): New
17615         predicate.
17616
17617 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17618
17619         PR rtl-optimization/68651
17620         * combine.c (combine_simplify_rtx): Canonicalize x + x into
17621         x << 1.
17622
17623 2016-01-05  Nathan Sidwell  <nathan@acm.org>
17624
17625         * alias.c (compare_base_decls): Use symtab_node::get.
17626
17627 2016-01-05  Nick Clifton  <nickc@redhat.com>
17628
17629         PR target/68770
17630         * ira-costs.c (copy_cost): Initialise the t_icode field of the
17631         secondary_reload_info structure.
17632
17633         PR target/66655
17634         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
17635         decls if weak support is available.
17636
17637 2016-01-04  Martin Sebor  <msebor@redhat.com>
17638
17639         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
17640
17641 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
17642
17643         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
17644         OPTION_MASK_P9_DFORM.
17645
17646         * config/rs6000/constraints.md (wo constraint): New constraint for
17647         ISA 3.0 (power9).
17648
17649         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
17650         for wo constraint.
17651         (rs6000_init_hard_regno_mode_ok): Likewise.
17652
17653         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
17654         wo constraint.
17655
17656         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
17657         expanders not to have constraints.  Add support for ISA 3.0 xxperm
17658         instruction.  Add support for fusing xxlor with xxperm.
17659         (altivec_vperm_<mode>_internal): Likewise.
17660         (altivec_vperm_v8hiv16qi): Likewise.
17661         (altivec_vperm_<mode>v16q): Likewise.
17662         (altivec_vperm_<mode>_uns): Likewise.
17663         (vperm_v8hiv4si): Likewise.
17664         (vperm_v16qiv8hi): Likewise.
17665
17666         * doc/md.texi (RS/6000 constraints): Document wo constraint.
17667
17668 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
17669
17670         Update copyright years.
17671
17672         * gcc.c (process_command): Update copyright notice dates.
17673         * gcov-dump.c (print_version): Ditto.
17674         * gcov.c (print_version): Ditto.
17675         * gcov-tool.c (print_version): Ditto.
17676         * gengtype.c (create_file): Ditto.
17677         * doc/cpp.texi: Bump @copying's copyright year.
17678         * doc/cppinternals.texi: Ditto.
17679         * doc/gcc.texi: Ditto.
17680         * doc/gccint.texi: Ditto.
17681         * doc/gcov.texi: Ditto.
17682         * doc/install.texi: Ditto.
17683         * doc/invoke.texi: Ditto.
17684
17685 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17686
17687         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
17688         modes larger than TImode as TImode if NEON is not enabled.
17689
17690 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17691
17692         PR target/69100
17693         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
17694         mode for %f0-%f31 only if TARGET_FPU.
17695
17696 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17697
17698         PR target/69072
17699         * config/sparc/sparc.c (scan_record_type): Take into account subfields
17700         to compute the PACKED_P predicate.
17701         (function_arg_record_value): Minor tweaks.
17702
17703 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17704
17705         * doc/install.texi (--with-multilib-list): Describe the meaning of the
17706         option for arm*-*-* targets.
17707
17708 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
17709
17710         * doc/extend.texi (Common Function Attributes): Move docs for
17711         MSP430-specific attributes to....
17712         (MSP430 Function Attributes): ...here.  Delete the redundant
17713         entries and copy-edit the remaining text.
17714         (MSP430 Variable Attributes): Use uniform format for index
17715         entries and add a cross-reference to the corresponding function
17716         attribute docs.
17717
17718 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
17719
17720         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
17721         -finite-math typo.
17722         (x86 Options): Likewise.
17723
17724 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
17725
17726         PR 1078
17727
17728         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
17729         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
17730         to corresponding attribute.
17731
17732 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
17733
17734         * doc/extend.texi (Common Function Attributes) <noplt>: Move
17735         to correct alphabetization of table.  Copy-edit and correct
17736         markup.
17737         <stack_protect>: Likewise.
17738         <target_clones>: Likewise.
17739         <simd>: Likewise.
17740         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
17741         Correct punctuation.
17742         (Code Gen Options) <-fno-plt>: Copy-edit.
17743
17744 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17745
17746         PR target/68917
17747         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
17748         SI values.  Explicitly convert SI to DI and vice-versa.
17749
17750 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
17751
17752         PR tree-optimization/69070
17753         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
17754         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
17755
17756         PR sanitizer/69055
17757         * ubsan.c (ubsan_instrument_float_cast): Call
17758         initialize_sanitizer_builtins.
17759
17760         PR target/69015
17761         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
17762 \f
17763 Copyright (C) 2016 Free Software Foundation, Inc.
17764
17765 Copying and distribution of this file, with or without modification,
17766 are permitted in any medium without royalty provided the copyright
17767 notice and this notice are preserved.