re PR ipa/71633 ([CHKP] internal compiler error: in inline_call)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-07-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2
3         PR ipa/71633
4         * ipa-inline-transform.c (inline_call): Support
5         instrumented thunks.
6
7 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8
9         * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
10         (TARGET_IDIV): Set for all Thumb targets provided they have hardware
11         divide feature.
12         * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
13         Baseline.  Make initial alternative TARGET_32BIT only.
14         (udivsi3): Likewise.
15         * config/arm/thumb1.md (thumb1_cbz): New define_insn.
16         * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
17         target.
18
19 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20
21         * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
22         * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
23         availability with TARGET_HAVE_MOVT.
24         (thumb_legitimate_constant_p): Strip the high part of a label_ref.
25         (thumb1_rtx_costs): Also return 0 if setting a half word constant and
26         MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
27         UINTVAL.
28         (thumb1_size_rtx_costs): Make set of half word constant also cost 1
29         extra instruction if MOVW is available.  Use a cost variable
30         incremented by COSTS_N_INSNS (1) when the condition match rather than
31         returning an arithmetic expression based on COSTS_N_INSNS.  Make
32         constant with bottom half word zero cost 2 instruction if MOVW is
33         available.
34         * config/arm/arm.md (define_attr "arch"): Add v8mb.
35         (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
36         target is ARMv8-M Baseline.
37         (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
38         (arm_movtas_ze): Likewise.
39         * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
40         alternative for constants satisfying j constraint.
41         (thumb1_movsi_insn): Likewise.
42         (movsi splitter for K alternative): Tighten condition to not trigger
43         if movt is available and j constraint is satisfied.
44         (Pe immediate splitter): Likewise.
45         (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
46         constant fitting in an halfword to use MOVW.
47         * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
48         effective target.
49
50 2016-07-13  Richard Biener  <rguenther@suse.de>
51
52         PR middle-end/71104
53         * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
54         gimplifying the LHS.  Make sure to gimplify a returning twice
55         call LHS without using SSA names.
56
57 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
58
59         * tree-data-ref.c (find_data_references_in_stmt): Remove
60         unnecessary call to vec::release.
61         (graphite_find_data_references_in_stmt): Likewise.
62         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
63         * tree-vect-stmts.c (vectorizable_condition): Likewise.
64
65 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
66
67         * cfgexpand.c (expand_used_vars): Make the type of a local variable auto_vec.
68         * genmatch.c (lower_for): Likewise.
69         * haifa-sched.c (haifa_sched_init): Likewise.
70         (add_to_speculative_block): Likewise.
71         (create_check_block_twin): Likewise.
72         * predict.c (handle_missing_profiles): Likewise.
73         * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
74         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
75         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise.
76         (maybe_lower_iteration_bound): Likewise.
77         * tree-ssa-sccvn.c (DFS): Likewise.
78         * tree-stdarg.c (reachable_at_most_once): Likewise.
79         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
80         (vectorizable_store): Likewise.
81
82 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
83
84         * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
85         (sccvn_dom_walker): make cond_stack an auto_vec.
86
87 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
88
89         * ree.c (struct ext_state): Make type of members auto_vec.
90         (find_and_remove_re): Adjust.
91
92 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
93
94         * cfgexpand.c (struct stack_vars_data): Make type of fields
95         auto_vec.
96         (expand_used_vars): Adjust.
97
98 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
99
100         * ipa.c (record_cdtor_fn): Adjust.
101         (build_cdtor_fns): Likewise.
102         (ipa_cdtor_merge): Make static_ctors and static_dtors local
103         variables.
104
105 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
106
107         * genextract.c (struct accum_extract): Add constructor and make
108         members auto_vec.
109         (gen_insn): Adjust.
110
111 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
112
113         * tree.c (struct free_lang_data_d): Add constructor and change
114         types of members to ones that automatically manage resources.
115         (fld_worklist_push): Adjust.
116         (find_decls_types): Likewise.
117         (find_decls_types_in_eh_region): Likewise.
118         (free_lang_data_in_cgraph): Stop manually creating and
119         destroying members of free_lang_data_d.
120
121 2016-07-13  Uros Bizjak  <ubizjak@gmail.com>
122
123         PR rtl-optimization/68961
124         * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
125         peephole variant.  Use sse_reg_operand predicates.
126
127 2016-07-12  Uros Bizjak  <ubizjak@gmail.com>
128
129         * config/i386/predicates.md (x86_64_immediate_operand)
130         <case CONST_INT>: Remove unneeded truncation to DImode.
131         <case CONST>: Ditto.
132         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
133
134 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
135
136         PR target/71805
137         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
138         The xxperm and xxpermr instructions require that the 2nd input
139         operand overlap with the output operand, and not the 1st.
140         (altivec_vperm_v8hiv16qi): Likewise.
141         (altivec_vperm_<mode>_uns_internal): Likewise.
142         (altivec_vpermr_<mode>_internal): Likewise.
143         (vperm_v8hiv4si): Likewise.
144         (vperm_v16qiv8hi): Likewise.
145
146 2016-07-12  Martin Liska  <mliska@suse.cz>
147
148         * params.def: Add avg-loop niter.
149         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
150         * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
151         * doc/invoke.texi: Document the new parameter.
152
153 2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
154
155         PR middle-end/71700
156         * expr.c (store_constructor): Mask sign-extended bits when widening
157         sub-word constructor element at the start of a word.
158
159 2016-07-12  Martin Liska  <mliska@suse.cz>
160
161         * Makefile.in: Append rule for params-options.h.
162         * params-options.h: New file.
163
164 2016-07-12  Martin Liska  <mliska@suse.cz>
165
166         * ira-build.c (mark_loops_for_removal): Properly iterate
167         loops.
168
169 2016-07-12  Steven Bosscher  <steven@gcc.gnu.org>
170             Richard Biener  <rguenther@suse.de>
171
172         PR tree-optimization/23286
173         PR tree-optimization/70159
174         * doc/invoke.texi: Document -fcode-hoisting.
175         * common.opt (fcode-hoisting): New flag.
176         * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
177         * tree-ssa-pre.c (pre_stats): Add hoist_insert.
178         (do_regular_insertion): Rename to ...
179         (do_pre_regular_insertion): ... this and amend general comments
180         on insertion strathegy.
181         (do_partial_partial_insertion): Rename to ...
182         (do_pre_partial_partial_insertion): ... this.
183         (do_hoist_insertion): New function.
184         (insert_aux): Take flags on whether to do PRE and/or hoist insertion
185         and call do_hoist_insertion properly.
186         (insert): Adjust.
187         (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
188         (pass_pre::execute): Register hoist_insert stats.
189
190 2016-07-12  Jakub Jelinek  <jakub@redhat.com>
191
192         PR middle-end/71716
193         * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
194         for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
195         is different from mode's bitsize.  Small cleanup.
196
197 2016-07-12  Richard Biener  <rguenther@suse.de>
198
199         PR rtl-optimization/68961
200         * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
201         to simplify to a non-constant.
202
203 2016-07-11  Jakub Jelinek  <jakub@redhat.com>
204
205         PR middle-end/71758
206         * omp-low.c (expand_omp_target): Gimplify device.
207
208         PR tree-optimization/71823
209         * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
210         to get vec_oprnds2 from op2.
211
212 2016-07-11  Uros Bizjak  <ubizjak@gmail.com>
213
214         * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
215         Hoist common subexpressions.
216         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
217
218 2016-07-11  Pat Haugen  <pthaugen@us.ibm.com>
219
220         PR target/71800
221         * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
222         prevent generation of 'stxsiwx' on pre Power8 hardware.
223
224 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
225
226         * input.c: Include cpplib.h.
227         (selftest::temp_source_file): New class.
228         (selftest::temp_source_file::temp_source_file): New ctor.
229         (selftest::temp_source_file::~temp_source_file): New dtor.
230         (selftest::should_have_column_data_p): New function.
231         (selftest::test_should_have_column_data_p): New function.
232         (selftest::temp_line_table): New class.
233         (selftest::temp_line_table::temp_line_table): New ctor.
234         (selftest::temp_line_table::~temp_line_table): New dtor.
235         (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
236         it to create a temp_line_table.
237         (selftest::assert_loceq): Only verify LOCATION_COLUMN for
238         locations that are known to have column data.
239         (selftest::line_table_case): New struct.
240         (selftest::test_reading_source_line): Move tempfile handling
241         to class temp_source_file.
242         (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
243         (selftest::assert_token_loc_eq): New function.
244         (ASSERT_TOKEN_LOC_EQ): New macro.
245         (selftest::test_lexer): New function.
246         (selftest::boundary_locations): New array.
247         (selftest::input_c_tests): Call test_should_have_column_data_p.
248         Loop over a test matrix of interesting values of location and
249         default_range_bits, calling test_lexer on each case in the matrix.
250         Move call to test_accessing_ordinary_linemaps into the matrix.
251         * selftest.h (ASSERT_EQ): Reimplement in terms of...
252         (ASSERT_EQ_AT): New macro.
253
254 2016-07-11  H.J. Lu  <hongjiu.lu@intel.com>
255
256         PR target/71801
257         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
258         Don't convert TImode in debug insn.
259
260 2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
261
262         Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
263         * tree-core.h (tree_base::nothrow_flag): Adjust comment.
264         (tree_type_common::lang_flag_7): New.
265         (tree_type_common::spare): Reduce size.
266         * tree.h (TYPE_ALIGN_OK): Remove.
267         (TYPE_LANG_FLAG_7): New.
268         (get_inner_reference): Adjust header.
269         * print-tree.c (print_node): Adjust.
270         * expr.c (get_inner_reference): Remove parameter keep_aligning.
271         (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
272         calls to get_inner_reference.
273         (expand_expr_real_1): Adjust call to get_inner_reference.  Remove
274         handling of TYPE_ALIGN_OK.
275         * builtins.c (get_object_alignment_2): Adjust call to
276         get_inner_reference.  Remove handling of VIEW_CONVERT_EXPR.
277         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
278         TYPE_ALIGN_OK.
279         * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
280         * cfgexpand.c (expand_debug_expr): Likewise.
281         * dbxout.c (dbxout_expand_expr): Likewise.
282         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
283         loc_list_from_tree, fortran_common): Likewise.
284         * fold-const.c (optimize_bit_field_compare,
285         decode_field_reference, fold_unary_loc, fold_comparison,
286         split_address_to_core_and_offset): Likewise.
287         * gimple-laddress.c (execute): Likewise.
288         * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
289         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
290         * hsa-gen.c (gen_hsa_addr): Likewise.
291         * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
292         * tsan.c (instrument_expr): Likewise.
293         * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
294         * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
295         * tree-affine.c (tree_to_aff_combination,
296         get_inner_reference_aff): Adjust calls to get_inner_reference.
297         * tree-data-ref.c (split_constant_offset_1,
298         dr_analyze_innermost): Likewise.
299         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
300         * tree-sra.c (ipa_sra_check_caller): Likewise.
301         * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
302         * tree-ssa-math-opts.c (find_bswap_or_nop_load,
303         bswap_replace): Likewise.
304         * tree-vect-data-refs.c (vect_check_gather,
305         vect_analyze_data_refs): Likewise.
306         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
307         * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
308         TYPE_ALIGN_OK.
309
310 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
311
312         * Makefile.in (selftest-valgrind): New phony target.
313         * function-tests.c (selftest::build_cfg): Delete pass instances
314         created by the test.
315         (selftest::convert_to_ssa): Likewise.
316         (selftest::test_expansion_to_rtl): Likewise.
317         * tree-cfg.c (selftest::test_linear_chain): Release dominator
318         vectors.
319         (selftest::test_diamond): Likewise.
320
321 2016-07-11  Richard Biener  <rguenther@suse.de>
322
323         PR tree-optimization/71816
324         * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
325         than replacing all of its operands.
326
327 2016-07-11  Alan Modra  <amodra@gmail.com>
328
329         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
330         (ctr<mode>): Add unspec.
331         (ctr<mode>_internal*): Likewise.
332
333 2016-07-08  James Bowman  <james.bowman@ftdichip.com>
334
335         * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
336         * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
337
338 2016-07-08  Vladimir Makarov  <vmakarov@redhat.com>
339
340         PR rtl-optimization/71621
341         * lra-constraints.c (process_alt_operands): Check combination of
342         reg class and mode.
343
344 2016-07-08  Jason Merrill  <jason@redhat.com>
345             Richard Biener  <rguenther@suse.de>
346
347         P0145: Refining Expression Order for C++.
348         * gimplify.c (initial_rhs_predicate_for): New.
349         (gimplfy_modify_expr): Gimplify RHS before LHS.
350
351 2016-07-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
352
353         PR target/71297
354         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
355         Allow standard error handling to take over when a wrong number
356         of arguments is presented to __builtin_vec_ld () or
357         __builtin_vec_st ().
358
359 2016-07-08  Jiong Wang  <jiong.wang@arm.com>
360
361         * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
362         variants.
363         (smin): Likewise.
364         (fmax): New entry.
365         (fmin): Likewise.
366         * config/aarch64/arm_neon.h (vmaxnm_f32): Use
367         __builtin_aarch64_fmaxv2sf.
368         (vmaxnmq_f32): Likewise.
369         (vmaxnmq_f64): Likewise.
370         (vminnm_f32): Likewise.
371         (vminnmq_f32): Likewise.
372         (vminnmq_f64): Likewise.
373
374 2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
375
376         PR target/71806
377         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
378         enable -mfloat128-hardware by default.
379         (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
380         that IEEE 128-bit hardware support needs.
381         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
382         -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
383         Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
384         floating point requires.
385         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
386         -mfloat128 and -mfloat128-hardware changes.
387
388 2016-07-08  Alan Hayward  <alan.hayward@arm.com>
389
390         PR tree-optimization/71667
391         * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
392
393 2016-07-08  Martin Liska  <mliska@suse.cz>
394
395         PR middle-end/71606
396         * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
397         folding produces SAVE_EXPRs, thus return false for the type.
398
399 2016-07-07  Martin Liska  <mliska@suse.cz>
400
401         * file-find.c (remove_prefix): New function.
402         * file-find.h (remove_prefix): Declare the function.
403         * gcc-ar.c (main): Skip a folder of the wrapper if
404         a wrapped binary would point to the same file.
405
406 2016-07-07  Jan Hubicka  <jh@suse.cz>
407
408         * tree-scalar-evolution.c (iv_can_overflow_p): export.
409         * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
410         * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
411
412 2016-07-07  Ilya Enkovich  <ilya.enkovich@intel.com>
413
414         PR ipa/71624
415         * ipa-inline-analysis.c (compute_inline_parameters): Set
416         local.can_change_signature to false for intrumentation
417         thunk callees.
418
419 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
420
421         * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
422         with TARGET_HAVE_MOVT.
423         (TARGET_HAVE_MOVT): Define.
424         * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
425         availability with TARGET_HAVE_MOVT.
426         * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
427         availability.
428         (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
429         TARGET_THUMB2.
430         (symbol_refs movsi splitter): Remove TARGET_32BIT check.
431         (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
432         * config/arm/constraints.md (define_constraint "j"): Use
433         TARGET_HAVE_MOVT to check MOVT availability.
434
435 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
436
437         * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
438
439 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
440
441         * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
442         (armv8-m.main): Likewise.
443         (armv8-m.main+dsp): Likewise.
444         * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
445         (FL_FOR_ARCH8M_MAIN): Likewise.
446         * config/arm/arm-tables.opt: Regenerate.
447         * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
448         armv8-m.main+dsp to BE8_LINK_SPEC.
449         * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
450         (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
451         * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
452         Baseline and Mainline.
453         (arm_option_override_internal): Also disable arm_restrict_it when
454         !arm_arch_notm.  Update comment for -munaligned-access to also cover
455         ARMv8-M Baseline.
456         (arm_file_start): Increase buffer size for printing architecture name.
457         * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
458         and armv8-m.main+dsp.
459         (mno-unaligned-access): Clarify that this is disabled by default for
460         ARMv8-M Baseline architectures as well.
461
462 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
463
464         * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
465         decide whether to prevent some libgcc routines being included for some
466         multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
467         link between this condition and the one in
468         libgcc/config/arm/lib1func.S.
469
470 2016-07-07  Richard Biener  <rguenther@suse.de>
471
472         * tree-ssa-pre.c: Include alias.h.
473         (compute_avail): If we have multiple VN_REFERENCEs with the
474         same hashtable entry adjust that to make it a valid replacement
475         for all of them with respect to alignment and aliasing
476         when doing insertion.
477         * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
478         * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
479
480 2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>
481
482         PR target/70098
483         PR target/71763
484         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
485         *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
486         constraint.
487
488 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
489
490         * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
491         (adjust_mems): Adjust.
492         (adjust_insn): Likewise.
493         (prepare_call_arguments): Likewise.
494
495 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
496
497         * gcse.c (struct ls_expr): Make stores field a vector.
498         (ldst_entry): Adjust.
499         (free_ldst_entry): Likewise.
500         (print_ldst_list): Likewise.
501         (compute_ld_motion_mems): Likewise.
502         (update_ld_motion_stores): Likewise.
503
504 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
505
506         * gcse.c (struct ls_expr): Remove loads field.
507         (ldst_entry): Adjust.
508         (free_ldst_entry): Likewise.
509         (print_ldst_list): Likewise.
510         (compute_ld_motion_mems): Likewise.
511
512 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
513
514         * store-motion.c (struct st_expr): Make antic_stores a vector.
515         (st_expr_entry): Adjust.
516         (free_st_expr_entry): Likewise.
517         (print_store_motion_mems): Likewise.
518         (find_moveable_store): Likewise.
519         (compute_store_table): Likewise.
520         (remove_reachable_equiv_notes): Likewise.
521         (replace_store_insn): Likewise.
522         (build_store_vectors): Likewise.
523
524 2016-07-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
525
526         * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
527         cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
528
529 2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
530
531         PR tree-optimization/71518
532         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
533         misalign also for outer loops with negative step.
534
535 2016-07-06  Wilco Dijkstra  <wdijkstr@arm.com>
536
537         * config/arm/cortex-a53.md: Use final_presence_set for in-order.
538         (cortex_a53_shift): Add mov_shift.
539         (cortex_a53_shift_reg): Add new reservation for register shifts.
540         (cortex_a53_alu): Remove bfm.
541         (cortex_a53_alu_shift): Add bfm, remove mov_shift.
542         (cortex_a53_alu_extr): Add new reservation for EXTR.
543         (bypasses): Improve bypass modelling.
544
545 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
546
547         PR target/50739
548         * config/avr/avr.c (avr_asm_select_section): Strip off
549         SECTION_DECLARED from flags when calling get_section.
550
551 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
552
553         * tree-vectorizer.h (vect_memory_access_type): Add
554         VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
555         * tree-vect-stmts.c (compare_step_with_zero): New function.
556         (perm_mask_for_reverse): Move further up file.
557         (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
558         step is negative.
559         (get_negative_load_store_type): New function.
560         (get_load_store_type): Call it.  Add an ncopies argument.
561         (vectorizable_mask_load_store): Update call accordingly and
562         remove tests for negative steps.
563         (vectorizable_store, vectorizable_load): Likewise.  Handle new
564         memory_access_types.
565
566 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
567
568         * tree-vectorizer.h (vect_memory_access_type): New enum.
569         (_stmt_vec_info): Add a memory_access_type field.
570         (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
571         (vect_model_store_cost): Take an access type instead of a boolean.
572         (vect_model_load_cost): Likewise.
573         * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
574         vect_model_store_cost and vect_model_load_cost.
575         * tree-vect-stmts.c (vec_load_store_type): New enum.
576         (vect_model_store_cost): Take an access type instead of a
577         store_lanes_p boolean.  Simplify tests.
578         (vect_model_load_cost): Likewise, but for load_lanes_p.
579         (get_group_load_store_type, get_load_store_type): New functions.
580         (vectorizable_store): Use get_load_store_type.  Record the access
581         type in STMT_VINFO_MEMORY_ACCESS_TYPE.
582         (vectorizable_load): Likewise.
583         (vectorizable_mask_load_store): Likewise.  Replace is_store
584         variable with vls_type.
585
586 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
587
588         * tree-vectorizer.h (vect_grouped_load_supported): Add a
589         single_element_p parameter.
590         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
591         Check the PR65518 case here rather than in vectorizable_load.
592         * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
593         * tree-vect-stmts.c (vectorizable_load): Likewise.
594
595 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
596
597         * tree-vectorizer.h (gather_scatter_info): New structure.
598         (vect_check_gather_scatter): Return a bool rather than a decl.
599         Replace return-by-pointer arguments with a single
600         gather_scatter_info *.
601         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
602         (vect_analyze_data_refs): Update call accordingly.
603         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
604         (vectorizable_mask_load_store): Likewise.  Also record the
605         offset dt and vectype in the gather_scatter_info.
606         (vectorizable_store): Likewise.
607         (vectorizable_load): Likewise.
608
609 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
610
611         * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
612         strided groups, use the cost of N scalar accesses instead
613         of ncopies vector accesses.
614         (vect_model_load_cost): Likewise.
615
616 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
617
618         * tree-vect-stmts.c (vect_cost_group_size): Delete.
619         (vect_model_store_cost): Avoid calling it.  Use first_stmt_p
620         variable to indicate when once-per-group costs are being used.
621         (vect_model_load_cost): Likewise.  Fix comment and misindented code.
622
623 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
624
625         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
626         peeling-for-gaps condition.
627
628 2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
629
630         * config/s390/s390.c (s390_expand_vec_init): Force initializer
631         element to register if it doesn't match general_operand.
632
633 2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
634             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
635
636         * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
637         prototype.
638         * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
639         * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
640         (SIGNBIT): New mode iterator.
641         (Fsignbit): New mode attribute.
642         (signbit<mode>2): Change operand1 to match FLOAT128 instead of
643         IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
644         when direct moves are available.
645         (signbit<mode>2_dm): New define_insn_and_split).
646         (signbit<mode>2_dm2): New define_insn.
647
648 2016-07-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
649
650         PR rtl-optimization/71594
651         * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
652         into subregs of appropriate mode before trying to emit a conditional
653         move.
654
655 2016-07-05  Jan Hubicka  <jh@suse.cz>
656
657         * tree-scalar-evolution.c (iv_can_overflow_p): New function.
658         (simple_iv): Use it.
659
660 2016-07-05  Jan Hubicka  <jh@suse.cz>
661
662         * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
663
664 2016-07-05  Jiong Wang  <jiong.wang@arm.com>
665
666         * lra-constraints.c (process_alt_operands): Don't add spilling cost for
667         "offmemok".
668
669 2016-07-05  Jan Hubicka  <jh@suse.cz>
670
671         * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
672         IV can overflow.
673
674 2016-07-05  Richard Biener  <rguenther@suse.de>
675
676         * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
677         Handle empty else block.
678         (is_feasible_trace): Likewise.
679         (split_paths): Likewise.
680
681 2016-07-05  Richard Biener  <rguenther@suse.de>
682
683         * tree-loop-distribution.c (distribute_loop): Fix issue with
684         the cost model loop.
685
686 2016-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
687
688         * config/arm/neon-testgen.ml: Delete.
689         * config/arm/neon.ml: Delete.
690
691 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
692
693         PR c++/71739
694         * tree.c (attribute_value_equal): Use get_attribute_name instead of
695         directly using TREE_PURPOSE.
696
697 2016-07-04  Jiong Wang  <jiong.wang@arm.com>
698
699         * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
700         * config/aarch64/aarch64_neon.h: Likewise.
701         * config/aarch64/arm_neon.h: Likewise.
702         * config/aarch64/atomics.md: Likewise.
703         * config/aarch64/aarch64-simd-builtins.def: Likewise.
704         * doc/invoke.texi: Likewise.
705
706 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
707
708         * config/s390/s390.md: Add "z13" cpu_facility.
709         ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
710         * config/s390/predicates.md ("loc_operand"): New predicate for "load on
711         condition" type instructions.
712
713 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
714             Jeff Law  <law@redhat.com>
715
716         * explow.c (allocate_dynamic_stack_space): Simplify knowing that
717         MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
718
719 2016-07-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
720
721         * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
722         permutation for TARGET_AVX512F.
723         (ix86_expand_vec_one_operand_perm_avx512): New function.
724         (expand_vec_perm_1): Invoke introduced function.
725         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
726         it may be not valid after vectorization.
727
728 2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
729
730         PR target/63874
731         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
732         typo in comment.  Only force to memory if it is a weak
733         external reference.
734
735 2016-07-04  Matthew Wahab  <matthew.wahab@arm.com>
736             Jiong Wang  <jiong.wang@arm.com>
737
738         * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
739         * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
740         (AARCH64_FL_F16): New.
741         (AARCH64_FL_FOR_ARCH8_2): New.
742         (AARCH64_ISA_8_2): New.
743         (AARCH64_ISA_F16): New.
744         (TARGET_FP_F16INST): New.
745         (TARGET_SIMD_F16INST): New.
746         * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
747         ("fp"): Disabling "fp" also disables "fp16".
748         * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
749         Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
750         and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
751         * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
752
753 2016-07-04  Jan Beulich  <jbeulich@suse.com>
754
755         * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
756
757 2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
758
759         PR target/71720
760         * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
761         the insns, use an insn form that does not adjust the offset on
762         little endian systems.
763
764 2016-07-01  Jan Beulich  <jbeulich@suse.com>
765
766         * varasm.c (get_variable_section): Validate initializer in
767         named .bss-like sections.
768
769 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
770
771         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
772         Exchange the order of the second and third operands in the vpermr
773         instruction tmeplate.
774
775 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
776
777         PR target/71698
778         * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
779         Disallow TDmode values.
780
781 2016-07-01  Alan Modra  <amodra@gmail.com>
782
783         PR rtl-optimization/71709
784         * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
785         being set, not referenced.
786
787 2016-07-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
788
789         PR tree-optimization/70729
790         * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
791         of loop since it can be not valid after transformation.
792
793 2016-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
794
795         * config/arm/arm.c (thumb_reload_in_hi): Delete.
796         * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
797
798 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
799
800         * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
801         for NULL decl.
802
803 2016-06-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
804
805         PR target/71677
806         * config/rs6000/constraints.md (wY constraint): New constraint to
807         match the requirements for the LXSD and STXSD instructions.
808         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
809         predicate to match the requirements for the LXSD and STXSD
810         instructions.
811         * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
812         Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
813         to make sure that the bottom 2 bits of offset are 0, the address
814         form is offsettable, and no updating is done in the address mode.
815         (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
816         (movdi_internal32): Likewise
817         (movdi_internal64): Likewise.
818
819 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
820
821         PR tree-optimization/71707
822         * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
823         strinfo even for ADDR_EXPR ptr.
824
825 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
826
827         * config/rs6000/altivec.md (darn_32): Change the condition to
828         TARGET_P9_MISC instead of TARGET_MODULO.
829         (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
830         condition expression.
831         (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
832         condition expression.
833         * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
834         (DFP_TEST): New code iterator.
835         (dfptstsfi_<code>_mode>): New define_expand.
836         (*dfp_sgnfcnc_<mode>): New define_insn.
837         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
838         definition next to BU_P9_MISC_1 definition and change the MASK
839         value to RS6000_BTM_P9_MISC.
840         (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
841         (BU_P9_64BIT_MISC_0): Likewise.
842         (BU_P9_DFP_MISC_0): New macro definition.
843         (BU_P9_DFP_MISC_1): New macro definition.
844         (BU_P9_DFP_MISC_2): New macro definition.
845         (BU_P9_DFP_OVERLOAD_1): New macro definition.
846         (BU_P9_DFP_OVERLOAD_2): New macro definition.
847         (BU_P9_DFP_OVERLOAD_3): New macro definition.
848         (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
849         (TSTSFI_LT_TD): Likewise.
850         (TSTSFI_EQ_DD): Likewise.
851         (TSTSFI_EQ_TD): Likewise.
852         (TSTSFI_GT_DD): Likewise.
853         (TSTSFI_GT_TD): Likewise.
854         (TSTSFI_OV_DD): Likewise.
855         (TSTSFI_OV_TD): Likewise.
856         (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
857         (TSTSFI_LT_DD): Likewise.
858         (TSTSFI_LT_TD): Likewise.
859         (TSTSFI_EQ): Likewise.
860         (TSTSFI_EQ_DD): Likewise.
861         (TSTSFI_EQ_TD): Likewise.
862         (TSTSFI_GT): Likewise.
863         (TSTSFI_GT_DD): Likewise.
864         (TSTSFI_GT_TD): Likewise.
865         (TSTSFI_OV): Likewise.
866         (TSTSFI_OV_DD): Likewise.
867         (TSTSFI_OV_TD): Likewise.
868         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
869         overloaded test significance functions.
870         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
871         OPTION_MASK_P9_MISC into the representation of this mask.
872         (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
873         of this mask.
874         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
875         RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
876         non-zero.
877         (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
878         argument is a 6-bit unsigned literal value if the icode argument
879         represents a DFP test significance built-in call.
880         (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
881         flag used independently and in combination with the
882         RS6000_BTM_64BIT flag.
883         (rs6000_opt_masks): Add entry for power9-misc command-line option.
884         (rs6000_builtin_mask_names): Add entry for power9-misc
885         command-line option.
886         * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
887         HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
888         RS6000_BTM_P9_MISC macros.
889         * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
890         option and change the description of the -mpower9-vector option to
891         enable only vector instructions, removing its erroneously claimed
892         support for scalar instructions.
893         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
894         the ISA 3.0 digital floating point test significance built-in
895         functions.
896
897 2016-06-30  Wilco Dijkstra  <wdijkstr@arm.com>
898
899         * config/aarch64/aarch64.c (cortexa35_tunings):
900         Enable AES fusion.  Use cortexa57_branch_cost.
901         (cortexa53_tunings): Use cortexa57_branch_cost.
902         (cortexa72_tunings): Use cortexa57_branch_cost.
903         Use AUTOPREFETCHER_WEAK.
904         (cortexa73_tunings): Use cortexa57_branch_cost.
905
906 2016-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
907             James Greenhalgh  <james.greenhalgh@arm.com>
908
909         * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
910         vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
911         vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
912         vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
913         (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
914         vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
915         vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
916         vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
917         vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
918         vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
919         vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
920         vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
921         vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
922         New intrinsics.
923
924 2016-06-30  James Greenhalgh  <james.greenhalgh@arm.com>
925             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
926
927         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
928         New define_insn.
929         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
930
931 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
932
933         PR driver/71651
934         * gcc.c (driver::build_option_suggestions): Pass "option" to
935         add_misspelling_candidates.
936         * opts-common.c (add_misspelling_candidates): Add "option" param;
937         use it to avoid adding negated forms for options marked with
938         RejectNegative.
939         * opts.h (add_misspelling_candidates): Add "option" param.
940
941 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
942
943         PR middle-end/71693
944         * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
945         TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
946         first when permuting bitwise operation with rotate.  Cast
947         TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
948
949 2016-06-29  David Malcolm  <dmalcolm@redhat.com>
950
951         * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
952         for misspelled param names.
953         * params.c: Include spellcheck.h.
954         (find_param_fuzzy): New function.
955         * params.h (find_param_fuzzy): New prototype.
956         * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
957         * spellcheck.h (struct edit_distance_traits<const char *>):
958         ...here.
959
960 2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
961
962         * config/rs6000/predicates.md (const_0_to_7_operand): New
963         predicate, recognize 0..7.
964         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
965         support for doing extracts from V16QImode, V8HImode, V4SImode
966         under ISA 3.0.
967         * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
968         vector extract support.
969         (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
970         for ISA 3.0 vector extract.
971         (VSX_EX): Constraints to use for ISA 3.0 vector extract.
972         (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
973         extracts of a constant element number from small integer vectors
974         on 64-bit ISA 3.0 systems.
975         (vsx_extract_<mode>_di): Likewise.
976         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
977         say when we can do ISA 3.0 vector extracts.
978         * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
979         registers, using the stxsiwx instruction.
980
981 2016-06-29  Jim Wilson  <jim.wilson@linaro.org>
982
983         * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
984         * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
985         qdf24xx_regmove_cost, qdf24xx_tunings): New.
986         * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
987         * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
988         * config/arm/arm.c (arm_qdf24xx_tune): New.
989
990 2016-06-29  Wilco Dijkstra  <wdijkstr@arm.com>
991
992         * config/aarch64/aarch64.c (cortexa53_tunings):
993         Increase loop alignment to 8.  Set function alignment to 16.
994         (cortexa35_tunings): Likewise.
995         (cortexa57_tunings): Increase loop alignment to 8.
996         (cortexa72_tunings): Likewise.
997         (cortexa73_tunings): Likewise.
998
999 2016-06-29  Matthew Wahab  <matthew.wahab@arm.com>
1000
1001         * doc/sourcebuild.texi (Effective-Target keywords): Add entries
1002         for arm_fp16_ok and arm_fp16_hw.
1003         (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
1004         arm_fp16_alternative.
1005
1006 2016-06-29  Ilya Enkovich  <ilya.enkovich@intel.com>
1007
1008         PR tree-optimization/71655
1009         * tree-vect-stmts.c (vectorizable_comparison): Swap definition
1010         types when swapping operands.
1011
1012 2016-06-29  Martin Liska  <mliska@suse.cz>
1013
1014         PR middle-end/71585
1015         * common.opt (flag_stack_protect): Mark the flag as optimization flag.
1016         * ipa-inline-transform.c (inline_call): Remove unnecessary call
1017         of build_optimization_node.
1018
1019 2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
1020
1021         PR tree-optimization/70729
1022         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
1023         independent in loops having positive safelen value.
1024         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
1025         it may be not valid after vectorization.
1026
1027 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
1028
1029         PR tree-optimization/71625
1030         * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
1031         is sorted by ascending list->offset.  If PTR is non-NULL and there is
1032         previous strinfo, call get_stridx_plus_constant.
1033         (get_stridx): Pass exp as second argument to get_addr_stridx.
1034         (addr_stridxptr): Add missing list = list->next, so that there can be
1035         more than one entries in the list.  Bump limit from 16 to 32.  Ensure
1036         the list is sorted by ascending list->offset.
1037         (get_stridx_plus_constant): Adjust so that it can be also called with
1038         ADDR_EXPR instead of SSA_NAME as PTR.
1039         (handle_char_store): Pass NULL_TREE as second argument to
1040         get_addr_stridx.
1041
1042 2016-06-29  Richard Biener  <rguenther@suse.de>
1043
1044         PR rtl-optimization/68961
1045         * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
1046
1047 2016-06-29  Richard Biener  <rguenther@suse.de>
1048
1049         PR middle-end/71002
1050         * alias.c (component_uses_parent_alias_set_from): Handle
1051         type punning through union accesses by using the union alias set.
1052         * gimple.c (gimple_get_alias_set): Remove union type punning case.
1053
1054 2016-07-29  Richard Biener  <rguenther@suse.de>
1055
1056         * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
1057         precision not matching mode precision.
1058
1059 2016-06-28  John David Anglin  <danglin@gcc.gnu.org>
1060
1061         * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
1062         pa_output_arg_descriptor.
1063         (call_val_symref_64bit_post_reload): Likewise.
1064         (call_val_powf_64bit_post_reload): Likewise.
1065         (sibcall_internal_symref_64bit): Likewise.
1066         (sibcall_value_internal_symref_64bit): Likewise.
1067
1068 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
1069
1070         PR middle-end/71626
1071         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
1072         a constant, force its SUBREG_REG into memory or register instead
1073         of whole op1.
1074
1075 2016-06-28  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1076
1077         PR target/58655
1078         * config/avr/avr.opt (-mfract-convert-truncate): Update description.
1079         * doc/invoke.texi (AVR Options): Document it.
1080
1081 2016-06-28  Walter Lee  <walt@tilera.com>
1082
1083         * config/tilegx/linux.h: Do not include arch/icache.h
1084         (CLEAR_INSN_CACHE): Provide inlined definition directly.
1085         * config/tilepro/linux.h: Do not include arch/icache.h
1086         (CLEAR_INSN_CACHE): Provide inlined definition directly.
1087
1088 2016-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
1089
1090         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
1091         for big-endian BIT_FIELD_REF.
1092
1093 2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
1094
1095         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
1096         ('size' attribute): Add '128'.
1097         Include power9.md.
1098         (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
1099         *movdi_internal64, *movdf_update1): Set size attribute to '64'.
1100         (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
1101         copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
1102         *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
1103         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
1104         *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
1105         *trunc<mode>df2_odd): Set size attribute to '128'.
1106         (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
1107         * config/rs6000/power6.md (power6-fp): Include dfp type.
1108         * config/rs6000/power7.md (power7-fp): Likewise.
1109         * config/rs6000/power8.md (power8-fp): Likewise.
1110         * config/rs6000/power9.md: New file.
1111         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
1112         * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
1113         *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
1114         htmsimple.
1115         * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
1116         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1117         divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
1118         ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
1119         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
1120         dfp_dscri_<mode>): Change type attribute to dfp.
1121         * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
1122         attribute to vecsimple.
1123         * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
1124         and prefetch streams.
1125         (rs6000_option_override_internal): Remove temporary code setting
1126         tuning to power8.  Don't set rs6000_sched_groups for power9.
1127         (last_scheduled_insn): Change to rtx_insn *.
1128         (divide_cnt, vec_load_pendulum): New variables.
1129         (rs6000_adjust_cost): Add Power9 to test for store->load separation.
1130         (rs6000_issue_rate): Set issue rate for Power9.
1131         (is_power9_pairable_vec_type): New.
1132         (power9_sched_reorder2): New.
1133         (rs6000_sched_reorder2): Call new function for Power9 specific
1134         reordering.
1135         (insn_must_be_first_in_group): Remove Power9.
1136         (insn_must_be_last_in_group): Likewise.
1137         (force_new_group): Likewise.
1138         (rs6000_sched_init): Fix initialization of last_scheduled_insn.
1139         Initialize divide_cnt/vec_load_pendulum.
1140         (_rs6000_sched_context, rs6000_init_sched_context,
1141         rs6000_set_sched_context): Handle context save/restore of new
1142         variables.
1143
1144 2016-06-28  Richard Biener  <rguenther@suse.de>
1145
1146         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1147         Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
1148         COMPONENT_REF operand.
1149         (nonoverlapping_component_refs_p): Likewise.
1150         * stor-layout.c (start_bitfield_representative): Mark
1151         DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
1152
1153 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
1154
1155         * Makefile.in: Don't cat ../stage_current if it does not exist.
1156
1157         * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
1158         last argument is a bit-field.
1159
1160         PR rtl-optimization/71673
1161         * internal-fn.c (expand_arith_overflow_result_store): Use
1162         OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
1163         expand_simple_binop.
1164
1165         PR middle-end/66867
1166         * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
1167         expand_ifn_atomic_compare_exchange): New functions.
1168         * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
1169         * tree.h (build_call_expr_internal_loc): Rename to ...
1170         (build_call_expr_internal_loc_array): ... this.  Fix up type of
1171         last argument.
1172         * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
1173         * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
1174         ATOMIC_COMPARE_EXCHANGE result.
1175         * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
1176         * gimple-fold.h (optimize_atomic_compare_exchange_p,
1177         fold_builtin_atomic_compare_exchange): New prototypes.
1178         * gimple-fold.c (optimize_atomic_compare_exchange_p,
1179         fold_builtin_atomic_compare_exchange): New functions..
1180         * tree-ssa.c (execute_update_addresses_taken): If
1181         optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
1182         of call when finding addressable vars, and if such var becomes
1183         non-addressable, call fold_builtin_atomic_compare_exchange.
1184
1185 2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
1186
1187         PR target/71670
1188         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
1189         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
1190
1191 2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
1192
1193         * config/rs6000/rs6000.md ('type' attribute): Add
1194         veclogical,veccmpfx,vecexts,vecmove insn types.
1195         (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
1196         copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
1197         p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
1198         (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
1199         *nabs<mode>2_hw): Change type to vecmove.
1200         (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
1201         *boolcc<mode>3_internal, *eqv<mode>3_internal,
1202         *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
1203         *ieee_128bit_vsx_abs<mode>2_internal,
1204         *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
1205         *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
1206         *ieee128_mtvsrd_32bit): Change type to veclogical.
1207         (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
1208         *movdi_internal32, *movdi_internal64): Update insn types.
1209         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
1210         vsx_extract_<mode>): Change type to veclogical.
1211         (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
1212         (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
1213         *vsx_sign_extend_si_v2di): Change type to vecexts.
1214         * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
1215         type to veclogical.
1216         (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
1217         *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
1218         *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
1219         (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
1220         * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1221         negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
1222         * config/rs6000/40x.md (ppc405-float): Add fpsimple.
1223         * config/rs6000/440.md (ppc440-fp): Add fpsimple.
1224         * config/rs6000/476.md (ppc476-fp): Add fpsimple.
1225         * config/rs6000/601.md (ppc601-fp): Add fpsimple.
1226         * config/rs6000/603.md (ppc603-fp): Add fpsimple.
1227         * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
1228         * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
1229         (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
1230         * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
1231         (ppc7450-vecsimple): Add veclogical, vecmove.
1232         (ppc7450-veccmp): Add veccmpfx.
1233         * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
1234         vecmove.
1235         (ppc8540_vector_compare): Add veccmpfx.
1236         * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
1237         * config/rs6000/cell.md (cell-fp): Add fpsimple.
1238         (cell-vecsimple): Add veclogical, vecmove.
1239         (cell-veccmp): Add veccmpfx.
1240         * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
1241         * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
1242         veccmpfx.
1243         * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
1244         * config/rs6000/power4.md (power4-fp): Add fpsimple.
1245         (power4-vecsimple): Add veclogical, vecmove.
1246         (power4-veccmp): Add veccmpfx.
1247         * config/rs6000/power5.md (power5-fp): Add fpsimple.
1248         * config/rs6000/power6.md (power6-fp): Add fpsimple.
1249         (power6-vecsimple): Add veclogical, vecmove.
1250         (power6-veccmp): Add veccmpfx.
1251         * config/rs6000/power7.md (power7-fp): Add fpsimple.
1252         (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
1253         * config/rs6000/power8.md (power8-fp): Add fpsimple.
1254         (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
1255         * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
1256         * config/rs6000/titan.md (titan_fp): Add fpsimple.
1257         * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
1258         fpsimple.
1259         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
1260
1261 2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
1262
1263         PR target/71656
1264         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
1265         OPTION_MASK_P9_DFORM_VECTOR.
1266         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
1267         disable -mpower9-dform-vector when using reload.
1268         (quad_address_p): Remove 'gpr_p' argument and all associated code.
1269         New 'strict' argument.  Update all callers.  Add strict addressing
1270         support.
1271         (rs6000_legitimate_offset_address_p): Remove call to
1272         virtual_stack_registers_memory_p.
1273         (rs6000_legitimize_reload_address): Add quad address support.
1274         (rs6000_legitimate_address_p): Move call to quad_address_p above
1275         call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
1276         to account for new strict usage.
1277         (rs6000_output_move_128bit): Adjust quad_address_p args to account
1278         for new strict usage.
1279         * config/rs6000/predicates.md (quad_memory_operand): Likewise.
1280
1281 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
1282
1283         PR target/70902
1284         PR target/71453
1285         PR target/71555
1286         PR target/71596
1287         PR target/71657
1288         * config/i386/i386.c (ix86_spill_class): Disable condition to
1289         always return NO_REGS.
1290
1291 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
1292
1293         * predict.c: Include gimple-pretty-print.h
1294         (predicted_by_loop_heuristics_p): Check also
1295         PRED_LOOP_EXIT_WITH_RECURSION
1296         (predict_loops): Find self recursive calls and use special purpose
1297         predictors for them; dump log about decisions.
1298         (pass_profile::execute): Dump info about #of iterations.
1299         * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
1300         (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
1301
1302 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
1303
1304         * config/pa/pa.c (pa_output_indirect_call): Rework to combine
1305         output_asm_insn calls and shorten long lines.  Output .CALL
1306         argument descriptor using pa_output_arg_descriptor.  Add various
1307         inline $$dyncall and other optimizations.
1308         (pa_attr_length_indirect_call): Adjust ordering and lengths.
1309
1310 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
1311
1312         PR tree-optimization/71643
1313         * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
1314         EH preds.
1315
1316         * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
1317         leak a bitmap if dep_bb is NULL.
1318
1319         PR tree-optimization/71631
1320         * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
1321         to rewrite_expr_tree even if negate_result, move new_lhs var
1322         declaration and initialization earlier, for powi_result set afterwards
1323         new_lhs to lhs.  For negate_result, use new_lhs instead of tmp
1324         if new_lhs != lhs, and don't shadow gsi var.
1325
1326 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
1327
1328         * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
1329         Add in_loop parameter.
1330         (predict_loops): Add loop guard heuristics.
1331         * predict.def (PRED_LOOP_GUARD): New heuristics.
1332
1333 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
1334
1335         * predict.c: Include ipa-utils.h
1336         (tree_bb_level_prediction): Predict recursive calls.
1337         (tree_estimate_probability_bb): Skip inexpensive calls for call
1338         predictor.
1339         * predict.def (PRED_RECURSIVE_CALL): New.
1340
1341 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1342
1343         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
1344         (BU_FLOAT128_1): Likewise.
1345         (FABSQ): Likewise.
1346         (COPYSIGNQ): Likewise.
1347         (RS6000_BUILTIN_NANQ): Likewise.
1348         (RS6000_BUILTIN_NANSQ): Likewise.
1349         (RS6000_BUILTIN_INFQ): Likewise.
1350         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
1351         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
1352         (TARGET_FOLD_BUILTIN): New #define.
1353         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
1354         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
1355         (rs6000_fold_builtin): New target hook implementation, handling
1356         folding of 128-bit NaNs and infinities.
1357         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
1358         entries are filled in to avoid problems during bootstrap
1359         self-test; define builtins for 128-bit NaNs and infinities.
1360         (rs6000_opt_mask): Add entry for float128.
1361         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
1362         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
1363         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
1364         (const_str_type_node): New #define.
1365         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
1366         to a define_expand that dispatches to either copysign<mode>3_soft
1367         or copysign<mode>3_hard.
1368         (copysign<mode>3_hard): Rename from copysign<mode>3.
1369         (copysign<mode>3_soft): New define_insn.
1370         * doc/extend.texi: Document new builtins.
1371
1372 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1373
1374         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
1375         PRIu64 instead of lu.
1376
1377 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
1378
1379         PR debug/71642
1380         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
1381         copy the type name.
1382
1383 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1384
1385         PR tree-optimization/71647
1386         * omp-low.c (lower_rec_input_clauses): Convert
1387         omp_clause_aligned_alignment (c) to size_type_node for the
1388         last argument of __builtin_assume_aligned.
1389
1390 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1391
1392         * configure.ac (calling ___tls_get_addr via GOT): New
1393         assembler/linker check.
1394         (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
1395         assembler and linker supports calling ___tls_get_addr via GOT.
1396         Otherise, defined to 0.
1397         * config.in: Regenerated.
1398         * configure: Likewise.
1399         * config/i386/constraints.md (Yb): New constraint.
1400         * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
1401         (REG_CLASS_NAMES): Likewise.
1402         (REG_CLASS_CONTENTS): Likewise.
1403         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
1404         the b constraint with the Yb constraint.  Call ___tls_get_addr
1405         via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
1406         is 1.
1407         (*tls_local_dynamic_base_32_gnu): Likewise.
1408         (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
1409         GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
1410         (*tls_local_dynamic_base_64_<mode>): Likewise.
1411
1412 2016-06-24  Martin Liska  <mliska@suse.cz>
1413
1414         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
1415         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
1416         few functions.
1417         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
1418         argument to true if the expected number of iterations is
1419         loop-based.
1420
1421 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
1422
1423         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
1424         assemble for 32bit target.
1425         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
1426         and $ld_ix86_gld_32_opt to link for 32bit target.
1427         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
1428         * configure: Regenerate.
1429
1430 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1431
1432         * config/arm/arm.c (int_log2): Delete definition and prototype.
1433         (shift_op): Use exact_log2 instead of int_log2.
1434         (vfp3_const_double_for_fract_bits): Likewise.
1435
1436 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1437
1438         * internal-fn.c (expand_arith_set_overflow): New function.
1439         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
1440         Use it.
1441         (expand_arith_overflow_result_store): Likewise.  Handle precision
1442         smaller than mode precision.
1443         * tree-vrp.c (extract_range_basic): For imag part, handle
1444         properly signed 1-bit precision result.
1445         * doc/extend.texi (__builtin_add_overflow): Document that last
1446         argument can't be pointer to enumerated or boolean type.
1447         (__builtin_add_overflow_p): Document that last argument can't
1448         have enumerated or boolean type.
1449
1450 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1451             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1452
1453         * config/rs6000/predicates.md (splat_input_operand): Rework.
1454         Don't allow constants, since the insns that use this predicate
1455         don't support constants.  Constants are handled by other insns
1456         that are created via combine.  During and after register
1457         allocation, only allow indexed or indirect addresses, and not
1458         general addresses.  Only allow modes supported by the hardware.
1459         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
1460         comment.  Move check for using VSPLTIS<x> to a common location,
1461         instead of doing it in two different places.
1462
1463 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
1464
1465         * config/i386/driver-i386.c (host_detect_local_cpu): Set
1466         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
1467         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
1468         signature_CENTAUR_ebx.
1469
1470 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
1471
1472         PR target/66232
1473         PR target/67400
1474         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
1475         (as_ix86_gas_32_opt): This.
1476         (ld_ix86_tls_ldm_opt): Renamed to ...
1477         (ld_ix86_gld_32_opt): This.
1478         (R_386_TLS_LDM reloc): Updated.
1479         (R_386_GOT32X reloc): New assembler/linker check.
1480         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
1481         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
1482         defined to 0.
1483         * config.in: Regenerated.
1484         * configure: Likewise.
1485         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
1486         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
1487         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
1488         if ix86_force_load_from_GOT_p returns true.
1489         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
1490         ix86_force_load_from_GOT_p returns true.
1491         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
1492         the external function address via the GOT slot.
1493         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
1494         HAVE_AS_IX86_GOT32X before returning false.
1495         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
1496         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
1497
1498 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
1499
1500         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
1501
1502 2016-06-23  Andi Kleen  <ak@linux.intel.com>
1503
1504         * Makefile.in: Regenerate.
1505         * doc/install.texi: Document autoprofiledbootstrap.
1506
1507 2016-06-23  Andi Kleen  <ak@linux.intel.com>
1508
1509         * config/i386/gcc-auto-profile: New file.
1510
1511 2016-06-23  Martin Liska  <mliska@suse.cz>
1512
1513         PR middle-end/71619
1514         * predict.c (predict_loops): Revert the hunk that was removed
1515         in r237103.
1516
1517 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
1518
1519         * config.gcc: Add support for arm*-*-phoenix* targets.
1520         * config/arm/t-phoenix: New.
1521         * config/phoenix.h: New.
1522
1523 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
1524             H.J. Lu  <hongjiu.lu@intel.com>
1525
1526         PR target/67400
1527         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
1528         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
1529         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
1530         ix86_force_load_from_GOT_p returns true.
1531         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
1532         ix86_force_load_from_GOT_p returns true.
1533         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
1534         ix86_force_load_from_GOT_p returns true.
1535         (ix86_expand_move): Load the external function address via the
1536         GOT slot if ix86_force_load_from_GOT_p returns true.
1537         * config/i386/predicates.md (x86_64_immediate_operand): Return
1538         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
1539         (x86_64_zext_immediate_operand): Ditto.
1540
1541 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
1542
1543         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
1544
1545 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1546
1547         PR c/70339
1548         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
1549         * diagnostic.c (pedwarn_at_rich_loc): New function.
1550         * spellcheck.h (best_match::best_match): Add a
1551         "best_distance_so_far" optional parameter.
1552         (best_match::set_best_so_far): New method.
1553         (best_match::get_best_distance): New accessor.
1554         (best_match::get_best_candidate_length): New accessor.
1555
1556 2016-06-22  Nick Clifton  <nickc@redhat.com>
1557
1558         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
1559         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
1560         modes are accepted as well.
1561         (ucompare_loc_descriptor): Likewise.
1562         (minmax_loc_descriptor): Likewise.
1563         (clz_loc_descriptor): Likewise.
1564         (popcount_loc_descriptor): Likewise.
1565         (bswap_loc_descriptor): Likewise.
1566         (rotate_loc_descriptor): Likewise.
1567         (mem_loc_descriptor): Likewise.
1568         (loc_descriptor): Likewise.
1569
1570 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1571
1572         * common.opt (fdiagnostics-parseable-fixits): New option.
1573         * diagnostic.c: Include "selftest.h".
1574         (print_escaped_string): New function.
1575         (print_parseable_fixits): New function.
1576         (diagnostic_report_diagnostic): Call print_parseable_fixits.
1577         (selftest::assert_print_escaped_string): New function.
1578         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
1579         (selftest::test_print_escaped_string): New function.
1580         (selftest::test_print_parseable_fixits_none): New function.
1581         (selftest::test_print_parseable_fixits_insert): New function.
1582         (selftest::test_print_parseable_fixits_remove): New function.
1583         (selftest::test_print_parseable_fixits_replace): New function.
1584         (selftest::diagnostic_c_tests): New function.
1585         * diagnostic.h (struct diagnostic_context): Add field
1586         "parseable_fixits_p".
1587         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
1588         -fdiagnostics-parseable-fixits.
1589         (-fdiagnostics-parseable-fixits): New option.
1590         * opts.c (common_handle_option): Handle
1591         -fdiagnostics-parseable-fixits.
1592         * selftest-run-tests.c (selftest::run_tests): Call
1593         selftest::diagnostic_c_tests.
1594         * selftest.h (selftest::diagnostic_c_tests): New prototype.
1595
1596 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
1597
1598         PR tree-optimization/71488
1599         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
1600         comparison of boolean vectors.
1601         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
1602         of boolean vectors using bitwise operations.
1603
1604 2016-06-22  Andreas Schwab  <schwab@suse.de>
1605
1606         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
1607         Remove declaration.
1608
1609 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
1610
1611         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
1612
1613 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1614
1615         * config/i386/i386.c (print_reg): Emit an error message on attempt to
1616         print FLAGS_REG.
1617
1618 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1619
1620         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
1621         * config/arm/arm-cores.def (cortex-a73): New entry.
1622         (cortex-a73.cortex-a35): Likewise.
1623         (cortex-a73.cortex-a53): Likewise.
1624         * config/arm/arm-tables.opt: Regenerate.
1625         * config/arm/arm-tune.md: Likewise.
1626         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
1627         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
1628         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
1629         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
1630         * doc/invoke.texi (ARM Options): Document cortex-a73,
1631         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
1632
1633 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1634
1635         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
1636         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
1637         (cortex-a73.cortex-a35): Likewise.
1638         (cortex-a73.cortex-a53): Likewise.
1639         * config/aarch64/aarch64-tune.md: Regenerate.
1640         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
1641         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
1642         -mcpu and -mtune.
1643
1644 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1645
1646         * configure.ac (gcc_cv_as_compress_debug): Remove
1647         --compress-debug-sections as extra as switch.
1648         Handle gas --compress-debug-sections=type.
1649         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
1650         Handle gld --compress-debug-sections=type.
1651         * configure: Regenerate.
1652
1653 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
1654
1655         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
1656
1657 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
1658
1659         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
1660         (do_rewrite): likewise.
1661
1662 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1663
1664         * common/config/mep/mep-common.c: Remove.
1665         * config.gcc: Remove mep-* support.
1666         * config/mep/constraints.md: Remove.
1667         * config/mep/default.h: Remove.
1668         * config/mep/intrinsics.h: Remove.
1669         * config/mep/intrinsics.md: Remove.
1670         * config/mep/ivc2-template.h: Remove.
1671         * config/mep/mep-c5.cpu: Remove.
1672         * config/mep/mep-core.cpu: Remove.
1673         * config/mep/mep-default.cpu: Remove.
1674         * config/mep/mep-ext-cop.cpu: Remove.
1675         * config/mep/mep-intrin.h: Remove.
1676         * config/mep/mep-ivc2.cpu: Remove.
1677         * config/mep/mep-pragma.c: Remove.
1678         * config/mep/mep-protos.h: Remove.
1679         * config/mep/mep.c: Remove.
1680         * config/mep/mep.cpu: Remove.
1681         * config/mep/mep.h: Remove.
1682         * config/mep/mep.md: Remove.
1683         * config/mep/mep.opt: Remove.
1684         * config/mep/predicates.md: Remove.
1685         * config/mep/t-mep: Remove.
1686         * doc/install.texi: Remove mep-* documentation.
1687         * doc/md.texi: Likewise.
1688
1689 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1690
1691         * config.gcc: Remove support for avr-rtems.
1692         * config/avr/gen-avr-mmcu-specs.c: Likewise.
1693         * config/avr/rtems.h: Remove.
1694         * config/avr/t-rtems: Remove.
1695
1696 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1697
1698         * config.gcc: Remove m32r-rtems support.
1699         * config/m32r/rtems.h: Remove.
1700
1701 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1702
1703         * config.gcc: Remove h8300-rtems support.
1704         * config/h8300/rtems.h: Remove.
1705         * config/h8300/t-rtems: Remove.
1706
1707 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1708
1709         * config.gcc: Remove support for knetbsd.
1710         * configure.ac: Likewise.
1711         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
1712         * config/knetbsd-gnu.h: Remove.
1713         * configure: Regenerate.
1714
1715 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1716
1717         * config.gcc: Remove support for openbsd 2 and 3.
1718         * config/openbsd-oldgas.h: Remove.
1719
1720 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1721
1722         * config.gcc: Remove interix support.
1723         * config/i386/i386-interix.h: Remove.
1724         * config/i386/interix.opt: Remove.
1725         * config/i386/t-interix: Remove.
1726         * configure: Regenerate.
1727         * configure.ac: Remove interix support.
1728         * doc/install.texi: Remove interix documentation.
1729
1730 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1731
1732         * config/rs6000/rs6000.h: Add conditional preprocessing directives
1733         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
1734         not defined.
1735
1736 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1737
1738         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
1739         they are both PLACEHOLDER_EXPRs.
1740
1741 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1742
1743         * stor-layout.c (layout_type): Move setting complex MODE to
1744         layout_type, instead of setting it ahead of time by the caller.
1745         * tree.c (build_complex_type): Likewise.
1746
1747 2016-06-21  Martin Liska  <mliska@suse.cz>
1748
1749         * predict.c (force_edge_cold): Replace imposisble with
1750         impossible.
1751
1752 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
1753
1754         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
1755         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
1756
1757 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
1758
1759         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
1760
1761 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1762             Ilya Enkovich  <ilya.enkovich@intel.com>
1763
1764         PR target/71549
1765         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
1766         New member function to convert V1TImode register to SUBREG
1767         TImode in debug insn.
1768         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
1769         after changing register mode to V1TImode.
1770
1771 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
1772
1773         * config/aarch64/aarch64-cores.def (vulcan): New core.
1774         * config/aarch64/aarch64-tune.md: Regenerate.
1775         * doc/invoke.texi: Document vulcan as an available option.
1776
1777 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1778
1779         * cse.c (canon_asm_operands): New function extracted from...
1780         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
1781         either standalone or member of a PARALLEL.
1782
1783 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
1784
1785         PR target/30417
1786         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
1787         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
1788         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
1789
1790 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
1791
1792         PR target/71103
1793         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
1794         constant addresses if can_create_pseudo_p.
1795
1796 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
1797
1798         PR tree-optimization/71588
1799         * tree-ssa-strlen.c (valid_builtin_call): New function.
1800         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
1801         it.
1802
1803 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
1804
1805         PR middle-end/71581
1806         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
1807         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
1808         for conversion of scalar user var to complex type and use the
1809         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
1810         punt.
1811
1812         PR rtl-optimization/71591
1813         * toplev.c (toplev::run_self_tests): If no_backend, complain and
1814         don't run any tests.
1815
1816 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
1817
1818         PR target/71571
1819         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
1820         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
1821         space for PIC with non-v32 and the common non-PIC "jump".
1822
1823 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
1824
1825         PR target/71559
1826         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
1827         returned values and add UN*/LTGT/*ORDERED cases with values matching
1828         D operand modifier on vcmp for AVX.
1829
1830 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1831
1832         * config/aarch64/aarch64.opt
1833         (mpc-relative-literal-loads): Rename internal option name.
1834         * config/aarch64/aarch64.c
1835         (aarch64_nopcrelative_literal_loads): Rename to
1836         aarch64_pcrelative_literal_loads.
1837         (aarch64_expand_mov_immediate): Likewise.
1838         (aarch64_secondary_reload): Likewise.
1839         (aarch64_can_use_per_function_literal_pools_p): Likewise.
1840         (aarch64_override_options_after_change_1): Rename and simplify logic.
1841         (aarch64_classify_symbol): Merge large model checks into switch,
1842         remove pc-relative load check.
1843
1844 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1845
1846         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
1847         costs relative to the cost of a register move.
1848
1849 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1850
1851         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
1852         (vcvt_n_f64_u64): Likewise.
1853         (vcvt_n_s64_f64): Likewise.
1854         (vcvt_n_u64_f64): Likewise.
1855         (vcvt_f64_s64): Likewise.
1856         (vrecpe_f64): Likewise.
1857         (vcvt_f64_u64): Likewise.
1858         (vrecps_f64): Likewise.
1859
1860 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1861
1862         * config/aarch64/aarch64.md
1863         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
1864         iterators.
1865         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
1866         attributes.
1867         * config/aarch64/aarch64-builtins.c
1868         (aarch64_types_binop_uss_qualifiers): Delete.
1869         (TYPES_BINOP_USS): Likewise.
1870         (aarch64_types_binop_sus_qualifiers): Likewise.
1871         (TYPES_BINOP_SUS): Likewise.
1872         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
1873         (TYPES_FCVTIMM_SUS): Likewise.
1874         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
1875         rather than BINOP.
1876         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
1877         (fcvtzs): Use SHIFTIMM rather than BINOP.
1878         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
1879
1880 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1881
1882         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
1883         costs relative to the cost of a register move.
1884
1885 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1886
1887         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
1888         Allow scalar/single vector modes to be tieable.
1889
1890 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1891
1892         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
1893
1894 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1895
1896         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
1897         "alignement".
1898         * tree.h (TYPE_ALIGN): Likewise.
1899
1900 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
1901
1902         PR target/71103
1903         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
1904
1905 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
1906
1907         * config/avr/avr.c (avr_print_operand): Fix "format not a string
1908         literal" build warnings.
1909         (avr_print_operand_address): Dito.
1910
1911 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
1912
1913         PR target/71375
1914         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
1915         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
1916
1917 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
1918
1919         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
1920
1921 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
1922
1923         PR bootstrap/71435
1924         * reload1.c (reload): Pass 0 to finish_spills when called because
1925         update_eliminables_and_spill returns true and remove did_spill.
1926         (finish_spills): Adjust comment and document GLOBAL parameter.
1927
1928 2016-06-17  DJ Delorie  <dj@redhat.com>
1929
1930         PR target/71338
1931         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
1932         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
1933         (umulqihi3_virt): Likewise.
1934         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
1935         (umulqihi3_real): Likewise.
1936
1937 2016-06-17  Martin Liska  <mliska@suse.cz>
1938
1939         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
1940
1941 2016-06-17  Martin Liska  <mliska@suse.cz>
1942
1943         * predict.def: PRED_LOOP_EXIT from 92 to 85.
1944
1945 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
1946
1947         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
1948         __FAST_MATH__.
1949         (vaddq_f32): Likewise.
1950         (vmul_f32): Likewise.
1951         (vmulq_f32): Likewise.
1952         (vsub_f32): Likewise.
1953         (vsubq_f32): Likewise.
1954
1955 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
1956
1957         PR tree-optimization/71347
1958         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
1959         cost for all uses in group.
1960
1961 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
1962
1963         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
1964         insert gimple seq if it's not empty.
1965
1966 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
1967
1968         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
1969         member OFFSET.
1970         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
1971         rather than OFFSET.
1972         (comp_dr_with_seg_len_pair): Ditto.
1973         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
1974         struct dr_with_seg_len_pair against DR_OFFSET.
1975         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
1976         DR_OFFSET directly.
1977
1978 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1979
1980         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
1981
1982 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
1983
1984         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
1985         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
1986         (pa_output_millicode_call): Likewise.
1987         (pa_output_call): Likewise.
1988         (pa_output_indirect_call): Likewise.
1989         (pa_asm_output_mi_thunk): Likewise.
1990
1991 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1992
1993         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
1994
1995 2016-06-16  Martin Liska  <mliska@suse.cz>
1996
1997         * predict.c (combine_predictions_for_insn): When we find a first
1998         match predictor, we should consider just predictors with
1999         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
2000         DS theory predictor.
2001         (combine_predictions_for_bb): Likewise.
2002
2003 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
2004
2005         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
2006         with base of reference to struct.
2007
2008 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
2009
2010         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
2011
2012 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2013
2014         PR target/71151
2015         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
2016         progmem_swtable_section.
2017         (progmem_swtable_section): Remove.
2018         (avr_asm_function_rodata_section): Remove.
2019         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
2020         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
2021
2022 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
2023
2024         * config/i386/driver-i386.c (host_detect_local_cpu): Set
2025         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
2026         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
2027         signature_CENTAUR_ebx.
2028         * config/i386/i386.c (ix86_option_override_internal): Add
2029         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
2030         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
2031         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
2032
2033 2016-06-16  Martin Liska  <mliska@suse.cz>
2034
2035         * predict.def: Add fortran loop preheader predictor.
2036         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
2037         fold IFN_BUILTIN_EXPECT with a known constant argument.
2038
2039 2016-06-16  Martin Liska  <mliska@suse.cz>
2040
2041         * predict.def: Add 'Fortran' to display text of all
2042         PRED_FORTRAN_* predictors.
2043
2044 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
2045
2046         PR target/71242
2047         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
2048         [IA64_BUILTIN_NANSQ]: Ditto.
2049         (ia64_fold_builtin): New function.
2050         (TARGET_FOLD_BUILTIN): New define.
2051         (ia64_init_builtins) Declare const_string_type node.
2052         Add __builtin_nanq and __builtin_nansq builtin functions.
2053         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
2054
2055 2016-06-16  Nick Clifton  <nickc@redhat.com>
2056
2057         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
2058         MSP430_HWMULT_ prefix to enum values.
2059         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
2060         * config/msp430/msp430.c: Update use of enum values.
2061         * config/msp430/msp430.md: Likewise.
2062         * config/msp430/msp430.opt: Likewise.
2063
2064 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
2065
2066         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
2067         of comparsions in the last iteration.
2068
2069 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
2070             Joern Rennecke  <joern.rennecke@embecosm.com>
2071
2072         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
2073         addresses.
2074         (arc_needs_pcl_p): Add GOTOFFPC.
2075         (arc_legitimate_pic_addr_p): Likewise.
2076         (arc_output_pic_addr_const): Likewise.
2077         (arc_legitimize_pic_address): Generate a pc-relative address using
2078         GOTOFFPC.
2079         (arc_output_libcall): Use @pcl syntax.
2080         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
2081         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
2082         (*movsi_insn): Use @pcl syntax.
2083         (doloop_begin_i): Likewise.
2084
2085 2016-06-16  Martin Liska  <mliska@suse.cz>
2086
2087         * predict.def: Define a new predictor.
2088
2089 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
2090
2091         * config/arc/arc.opt (mtp-regno): Update text.
2092
2093 2016-06-16  Renlin Li  <renlin.li@arm.com>
2094
2095         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
2096
2097 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
2098
2099         PR target/71554
2100         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
2101         (setcc + and peephole2): Likewise.
2102
2103         PR rtl-optimization/71532
2104         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
2105         memory slots.
2106
2107 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
2108
2109         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
2110         DImode constants with XXSPLTIB in vector registers.
2111         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
2112         vsx_extract_<mode>_internal{1,2} into a single insn that handles
2113         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
2114         extraction of the element at the top of the register as a scalar
2115         value.
2116         (vsx_extract_<mode>_internal1): Likewise.
2117         (vsx_extract_<mode>_internal2): Likewise.
2118         * config/rs6000/constraints.md (wi constraint): Remove a comment
2119         about DImode not being allowed in Altivec registers.
2120         (wB constraint): New constraint for constants that can be
2121         generated in Altivec registers with VSPLTISW/VUPKHSW.
2122         * config/rs6000/predicates.md (xxspltib_constant_split): Update
2123         comments.
2124         (xxspltib_constant_nosplit): Likewise.
2125         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
2126         support for -mupper-regs-di to enable DImode to go into Altivec
2127         registers.
2128         (POWERPC_MASKS): Likewise.
2129         (power7 cpu): Likewise.
2130         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
2131         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
2132         for DImode being allowed in Altivec registers.  Update wi/wj
2133         constraints.  Set scalar_in_vmx_p flag.
2134         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
2135         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
2136         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
2137         (rs6000_opt_masks): Add -mupper-regs-di.
2138         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
2139         direct move to use wi and not wj.
2140         (lfiwzx): Likewise.
2141         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
2142         alternative.
2143         (floatunssi<mode>2_lfiwzx_mem): Likewise.
2144         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
2145         any VSX register, instead of just Altivec registers, to allow
2146         either operand to be an Altivec register or both.
2147         (fixuns_trunc<mode>di2_fctiduz): Likewise.
2148         (movdi_internal32): Add support for -mupper-regs-di.  Add support
2149         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
2150         the alternatives and attributes to be lined up to be easier to
2151         read.
2152         (movdi_internal64): Likewise.
2153         (64-bit DImode splitters): Change predicates to only split loading
2154         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
2155         load constants in ISA 3.0 or ISA 2.07 respectively.
2156         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2157         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
2158         mention -mcpu=power9 sets these options.
2159         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
2160         wB constraint.
2161
2162 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
2163
2164         PR target/67353
2165         * config/avr/avr.c (avr_set_current_function): Warn misspelled
2166         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
2167         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
2168         by default to warn misspelled interrupt/ signal handler.
2169         * doc/invoke.texi (AVR Options): Document it. Update description
2170         for -nodevicelib option.
2171
2172 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2173
2174         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
2175         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
2176         (aarch64_<sur>shll2_n<mode>): Likewise.
2177
2178 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
2179
2180         PR middle-end/71529
2181         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
2182         DECL_CONTEXT for copied arguments.
2183
2184 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
2185
2186         PR tree-optimization/71483
2187         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
2188         for slp
2189
2190 2016-06-15  Martin Liska  <mliska@suse.cz>
2191
2192         * predict.c (tree_predict_by_opcode): Call predict_edge_def
2193         instead of predict_edge w/o a probability.
2194
2195 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
2196
2197         PR tree-optimization/71439
2198         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
2199         live PHIs.
2200
2201 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2202
2203         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
2204         register subregs in SET_SRC.
2205
2206 2016-06-15  Richard Biener  <rguenther@suse.de>
2207
2208         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
2209         store restrictions.
2210
2211 2016-06-15  Richard Biener  <rguenther@suse.de>
2212
2213         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
2214         not consider dependences between accesses that belong to the
2215         same group.
2216         (vect_analyze_data_ref_dependences): Do not analyze read-read
2217         or self-dependences.
2218
2219 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2220
2221         * spellcheck-tree.c: Include spellcheck-tree.h rather than
2222         spellcheck.h.
2223         (find_closest_identifier): Reimplement in terms of
2224         best_match<tree,tree>.
2225         * spellcheck-tree.h: New file.
2226         * spellcheck.c (struct edit_distance_traits<const char *>): New
2227         struct.
2228         (find_closest_string): Reimplement in terms of
2229         best_match<const char *, const char *>.
2230         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
2231         overload to spellcheck-tree.h.
2232         (find_closest_identifier): Likewise.
2233         (struct edit_distance_traits<T>): New template.
2234         (class best_match): New class.
2235
2236 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2237
2238         * selftest-run-tests.c (selftest::run_tests): Call
2239         selftest::spellcheck_tree_c_tests.
2240         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
2241         * spellcheck-tree.c: Include selftest.h and stringpool.h.
2242         (selftest::test_find_closest_identifier): New function.
2243         (selftest::spellcheck_tree_c_tests): New function.
2244         * spellcheck.c (selftest::test_find_closest_string): Verify that
2245         the order of the vec does not affect the results for this case.
2246         (selftest::test_data): New array.
2247         (selftest::test_metric_conditions): New function.
2248         (selftest::spellcheck_c_tests): Add a test of case-comparison.
2249         Call selftest::test_metric_conditions.
2250
2251 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2252
2253         * config/rs6000/rs6000-builtin.def (commentary): Typo.
2254         (BU_P9_MISC_1): Likewise.
2255         (BU_P9_64BIT_MISC_0): Likewise.
2256         (BU_P9_MISC_0): Likewise.
2257
2258 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2259
2260         * gcc-rich-location.c
2261         (gcc_rich_location::add_fixit_misspelled_id): New method.
2262         * gcc-rich-location.h
2263         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
2264
2265 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
2266
2267         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
2268         FreeBSD 11 and above.
2269
2270 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
2271
2272         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
2273
2274 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2275
2276         * expmed.h: Close parenthesis in "at your option" in copyright
2277         boilerplate.
2278         * lower-subreg.h: Likewise.
2279
2280 2016-06-14  Richard Biener  <rguenther@suse.de>
2281
2282         PR middle-end/71526
2283         * genmatch.c (expr::gen_transform): Use in_type for comparisons
2284         if available.
2285
2286 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2287
2288         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
2289         New function.
2290         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
2291         mask+shift version.
2292         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
2293         New prototype.
2294         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
2295         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
2296
2297 2016-06-14  Richard Biener  <rguenther@suse.de>
2298
2299         PR tree-optimization/71522
2300         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
2301         copying into float copying.
2302
2303 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
2304
2305         PR tree-optimization/71520
2306         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
2307         (replace_block_by): Move user labels from bb1 to bb2.
2308
2309 2016-06-14  Richard Biener  <rguenther@suse.de>
2310
2311         PR middle-end/71310
2312         PR bootstrap/71510
2313         * expr.h (get_bit_range): Declare.
2314         * expr.c (get_bit_range): Export.
2315         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
2316         word_mode again to constrain the bitfield access.
2317
2318 2016-06-14  Richard Biener  <rguenther@suse.de>
2319
2320         PR tree-optimization/71521
2321         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
2322         division int_const_binop against zero divisor.
2323
2324 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2325
2326         * config/i386/i386.md (signbittf2): New expander.
2327         * config/i386/sse.md (ptesttf2): New insn pattern.
2328
2329 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2330
2331         PR bootstrap/71481
2332         * input.c (selftest::test_reading_source_line): Avoid reading from
2333         __FILE__ by creating a tempfile with known content and reading
2334         from that instead.
2335
2336 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2337
2338         * pretty-print.c (assert_pp_format_colored): Skip the test if
2339         GCC_COLORS is set.
2340         (test_pp_format): Remove comment about GCC_COLORS.
2341
2342 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2343
2344         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
2345         * pretty-print.c (assert_pp_format_va): Add location param and use
2346         it with ASSERT_STREQ_AT.
2347         (assert_pp_format): Add location param and pass it to
2348         assert_pp_format_va.
2349         (assert_pp_format_colored): Likewise.
2350         (ASSERT_PP_FORMAT_1): New.
2351         (ASSERT_PP_FORMAT_2): New.
2352         (ASSERT_PP_FORMAT_3): New.
2353         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
2354         explicitly, or implicitly via the above macros.
2355         * selftest.c (selftest::pass): Use a selftest::location rather
2356         than file and line.
2357         (selftest::fail): Likewise.  Print the function name.
2358         (selftest::fail_formatted): Likewise.
2359         (selftest::assert_streq): Use a selftest::location rather than
2360         file and line.
2361         * selftest.h (selftest::location): New struct.
2362         (SELFTEST_LOCATION): New macro.
2363         (selftest::pass): Accept a const location & rather than file
2364         and line.
2365         (selftest::fail): Likewise.
2366         (selftest::fail_formatted): Likewise.
2367         (selftest::assert_streq): Likewise.
2368         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
2369         (ASSERT_FALSE): Likewise.
2370         (ASSERT_EQ): Likewise.
2371         (ASSERT_NE): Likewise.
2372         (ASSERT_STREQ): Likewise.
2373         (ASSERT_PRED1): Likewise.
2374         (ASSERT_STREQ_AT): New macro.
2375
2376 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2377
2378         * selftest.c (selftest::fail_formatted): New function.
2379         (selftest::assert_streq): New function.
2380         * selftest.h (selftests::fail_formatted): New decl.
2381         (selftest::assert_streq): New decl.
2382         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
2383
2384 2016-06-13  Jeff Law  <law@redhat.com>
2385
2386         PR tree-optimization/71403
2387         * tree-ssa-threadbackward.c
2388         (convert_and_register_jump_thread_path): No longer accept reference
2389         to path.  Do not pop items off the path anymore.
2390         (fsm_find_control_statement_thread_paths): Do not allow threading
2391         to a deeper loop nest.  Pop the last item off the path here rather
2392         than in convert_and_register_jump_thread_path.
2393
2394 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2395             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
2396
2397         [AArch64] Emit division using the Newton series
2398
2399         * config/aarch64/aarch64-protos.h
2400         (cpu_approx_modes): Add new member "division".
2401         (aarch64_emit_approx_div): Declare new function.
2402         * config/aarch64/aarch64.c
2403         (generic_approx_modes): New member "division".
2404         (exynosm1_approx_modes): Likewise.
2405         (xgene1_approx_modes): Likewise.
2406         (aarch64_emit_approx_div): Define new function.
2407         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
2408         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
2409         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
2410         * doc/invoke.texi (-mlow-precision-div): Describe new option.
2411
2412 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2413             Wilco Dijkstra  <wilco.dijkstra@arm.com>
2414
2415         [AArch64] Emit square root using the Newton series
2416
2417         * config/aarch64/aarch64-protos.h
2418         (aarch64_emit_approx_rsqrt): Replace with new function
2419         "aarch64_emit_approx_sqrt".
2420         (cpu_approx_modes): New member "sqrt".
2421         * config/aarch64/aarch64.c
2422         (generic_approx_modes): New member "sqrt".
2423         (exynosm1_approx_modes): Likewise.
2424         (xgene1_approx_modes): Likewise.
2425         (aarch64_emit_approx_rsqrt): Replace with new function
2426         "aarch64_emit_approx_sqrt".
2427         (aarch64_override_options_after_change_1): Handle new option.
2428         * config/aarch64/aarch64-simd.md
2429         (rsqrt<mode>2): Use new function instead.
2430         (sqrt<mode>2): New expansion and insn definitions.
2431         * config/aarch64/aarch64.md: Likewise.
2432         * config/aarch64/aarch64.opt
2433         (mlow-precision-sqrt): Add new option description.
2434         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
2435
2436 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2437
2438         [AArch64] Add more choices for the reciprocal square root approximation
2439
2440         Allow a target to prefer such operation depending on the operation mode.
2441
2442         * config/aarch64/aarch64-protos.h
2443         (AARCH64_APPROX_MODE): New macro.
2444         (AARCH64_APPROX_{NONE,ALL}): Likewise.
2445         (cpu_approx_modes): New structure.
2446         (tune_params): New member "approx_modes".
2447         * config/aarch64/aarch64-tuning-flags.def
2448         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
2449         * config/aarch64/aarch64.c
2450         (generic_approx_modes): New core "cpu_approx_modes" structure.
2451         (exynosm1_approx_modes): Likewise.
2452         (xgene1_approx_modes): Likewise.
2453         (generic_tunings): New member "approx_modes".
2454         (cortexa35_tunings): Likewise.
2455         (cortexa53_tunings): Likewise.
2456         (cortexa57_tunings): Likewise.
2457         (cortexa72_tunings): Likewise.
2458         (exynosm1_tunings): Likewise.
2459         (thunderx_tunings): Likewise.
2460         (xgene1_tunings): Likewise.
2461         (use_rsqrt_p): New argument for the mode and use new member from
2462         "tune_params".
2463         (aarch64_builtin_reciprocal): Devise mode from builtin.
2464         (aarch64_optab_supported_p): New argument for the mode.
2465         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
2466
2467 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2468
2469         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
2470         RS6000_BTM_MODULO flag into the set of flags that are considered
2471         to be part of the common configuration.
2472
2473 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2474
2475         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
2476         difference unsigned.
2477         (vec_absdb): New macro for vector absolute difference unsigned
2478         byte.
2479         (vec_absdh): New macro for vector absolute difference unsigned
2480         half-word.
2481         (vec_absdw): New macro for vector absolute difference unsigned word.
2482         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
2483         (vadu<mode>3): New insn.
2484         (*p9_vadu<mode>3): New insn.
2485         * config/rs6000/rs6000-builtin.def (vadub): New built-in
2486         definition.
2487         (vaduh): New built-in definition.
2488         (vaduw): New built-in definition.
2489         (vadu): New overloaded built-in definition.
2490         (vadub): New overloaded built-in definition.
2491         (vaduh): New overloaded built-in definition.
2492         (vaduw): New overloaded built-in definition.
2493         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2494         overloaded vector absolute difference unsigned functions.
2495         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2496         the ISA 3.0 vector absolute difference unsigned built-in functions.
2497
2498 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
2499
2500         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
2501         update shared_lookup_references only once after changing operands.
2502
2503 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
2504
2505         PR middle-end/71373
2506         * tree-nested.c (convert_nonlocal_omp_clauses)
2507         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
2508
2509         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
2510         * tree.def (CASE_LABEL_EXPR): Likewise.
2511
2512 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2513
2514         PR bootstrap/71481
2515         * input.c (test_builtins): Fix an assertion.
2516
2517 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2518
2519         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
2520         (paritysi2): Ditto.
2521         (isinfxf2): Ditto.
2522         (isinf<mode>2): Ditto.
2523
2524 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2525
2526         * ggc-tests.c (test_finalization): Only test need_finalization_p
2527         for GCC_VERSION >= 4003.
2528
2529 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2530
2531         * config/s390/vecintrin.h: Fix file description in comment.
2532
2533 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2534
2535         * config/s390/s390-builtin-types.def: Change builtin type naming
2536         scheme to match builtin-types.def.
2537
2538 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
2539
2540         * fold-const.c (optimize_minmax_comparison): Remove.
2541         (fold_comparison): Remove call to the above.
2542         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
2543         New transformations.
2544
2545 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
2546
2547         PR tree-optimization/71416
2548         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
2549         multiple entries
2550
2551 2016-06-13  Martin Liska  <mliska@suse.cz>
2552
2553         * predict.c (enum predictor_reason): Prefix enum with REASON_.
2554         (combine_predictions_for_insn): Likewise.
2555         (prune_predictions_for_bb): Likewise.
2556         (combine_predictions_for_bb): Likewise.
2557
2558 2016-06-13  Richard Biener  <rguenther@suse.de>
2559
2560         PR tree-optimization/71505
2561         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
2562         assert match comment.
2563
2564 2016-06-13  Marek Polacek  <polacek@redhat.com>
2565
2566         PR middle-end/71476
2567         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
2568         gimplify_switch_expr.
2569         (warn_switch_unreachable_r): New function.
2570
2571 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2572
2573         PR target/71379
2574         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
2575         one.
2576
2577 2016-06-13  Richard Biener  <rguenther@suse.de>
2578
2579         PR middle-end/64516
2580         * fold-const.c (fold_unary_loc): Preserve alignment when
2581         folding a VIEW_CONVERT_EXPR into a MEM_REF.
2582
2583 2016-06-13  Martin Liska  <mliska@suse.cz>
2584
2585         PR sanitizer/71458
2586         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
2587         w/ -fsanitize=bounds.
2588
2589 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
2590
2591         * config/i386/i386.c (ix86_init_builtins): Calculate
2592         FLOAT128_FTYPE_CONST_STRING function type only once.
2593         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
2594         built-in functions are available for x86-32 and x86-64 targets.
2595
2596 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
2597
2598         PR target/71241
2599         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
2600         New primitive type.
2601         (FLOAT128_FTYPE_CONST_STRING): New function type.
2602         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
2603         [IX86_BUILTIN_NANSQ]: Ditto.
2604         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
2605         (ix86_init_builtin_types): Declare const_string_type_node.
2606         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
2607         builtin functions.
2608         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
2609         * doc/extend.texi (x86 Built-in Functions): Document
2610         __builtin_nanq and __builtin_nansq.
2611
2612 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
2613
2614         PR target/71061
2615         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
2616         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
2617         length for pop patterns.
2618         (arm_attr_length_push_multi): Update comments.
2619         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
2620         attribute.
2621         (*pop_multiple_with_writeback_and_return): Likewise.
2622         (*pop_multiple_with_return): Likewise.
2623
2624 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
2625
2626         PR middle-end/71310
2627         * fold-const.c (optimize_bit_field_compare): Don't try to use
2628         word_mode unconditionally for reading the bit field, look at
2629         DECL_BIT_FIELD_REPRESENTATIVE instead.
2630
2631 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
2632
2633         PR middle-end/71478
2634         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
2635         vector integer type.
2636
2637 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
2638
2639         PR middle-end/71494
2640         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
2641         without LABEL_DECL, set *handled_ops_p to false instead of true.
2642
2643 2016-06-10  Martin Sebor  <msebor@redhat.com>
2644
2645         PR c/71392
2646         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
2647         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
2648         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
2649         them.
2650         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
2651         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
2652         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
2653         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
2654         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
2655         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
2656         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
2657         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
2658
2659 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2660
2661         * config/arm/arm.h (pool_vector_label,
2662         return_used_this_function): Remove.
2663
2664 2016-06-10  Jeff Law  <law@redhat.com>
2665
2666         PR tree-optimization/71335
2667         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
2668         zero length paths here.
2669         (convert_and_register_jump_thread_path): Remove hacks related to
2670         duplicated blocks in the jump thread path.
2671         (fsm_find_control_statement_thread_paths): Avoid putting the same
2672         block on the thread path twice, but ensure the thread path is
2673         unchanged from the caller's point of view.
2674
2675 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
2676
2677         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
2678         * predict.def (PRED_LOOP_BRANCH): Remove.
2679
2680 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
2681
2682         * Makefile.in (OBJS): Add ggc-tests.o.
2683         (GTFILES): Add ggc-tests.c.
2684         * ggc-tests.c: New file.
2685         * selftest-run-tests.c (selftest::run_tests): Call
2686         selftest::ggc_tests_c_tests.
2687         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
2688
2689 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
2690
2691         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
2692
2693 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
2694
2695         PR sanitizer/71480
2696         * varasm.c (place_block_symbol): Adjust alignment for asan protected
2697         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
2698
2699 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
2700
2701         * profile.c: Include cfgloop.h.
2702         (branch_prob): Compute estimated number of iterations.
2703         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
2704         recompute estimate number of iterations from profile.
2705
2706 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2707
2708         PR inline-asm/68843
2709         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
2710         must be grouped on top of stack.  Don't force early clobber
2711         on ordinary reg outputs.
2712
2713 2016-06-10  Richard Biener  <rguenther@suse.de>
2714
2715         * targhooks.c (default_builtin_vectorization_cost): Adjust
2716         vec_construct cost.
2717
2718 2016-06-10  Richard Biener  <rguenther@suse.de>
2719
2720         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
2721         to fold the RHS to a constant if possible.
2722
2723 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
2724
2725         PR middle-end/71373
2726         * tree-nested.c (convert_nonlocal_omp_clauses)
2727         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
2728         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
2729         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
2730
2731         * gimplify.c (gimplify_adjust_omp_clauses): Discard
2732         OMP_CLAUSE_TILE.
2733         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
2734
2735         * omp-low.c (scan_sharing_clauses): Don't expect
2736         OMP_CLAUSE__CACHE_.
2737
2738 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
2739
2740         PR tree-optimization/71407
2741         PR tree-optimization/71416
2742         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
2743         BIT_FIELD_REF type.
2744
2745 2016-06-10  Richard Biener  <rguenther@suse.de>
2746
2747         PR middle-end/71477
2748         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
2749
2750 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2751
2752         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
2753
2754 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
2755             Jiong Wang  <jiong.wang@arm.com>
2756
2757         PR rtl-optimization/70751
2758         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
2759         spilled into memory.
2760
2761 2016-06-09  Jonathan Yong  <10walls@gmail.com>
2762
2763         Revert:
2764         2015-09-21  Jonathan Yong  <10walls@gmail.com>
2765
2766         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
2767         sysroot/usr/lib/32api for additional win32 libraries,
2768         fixes failing Cygwin bootstrapping.
2769
2770 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
2771
2772         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
2773         Delete.
2774
2775 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
2776
2777         PR bootstrap/71471
2778         * pretty-print.c (pp_indent): Specify that %p is printed in a
2779         host-dependent manner.
2780         (test_pp_format): Remove the test for %p.
2781
2782 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
2783
2784         * config/mips/mips.c (mips_output_jump): Fix formatting.
2785
2786 2016-06-09  Richard Biener  <rguenther@suse.de>
2787
2788         PR tree-optimization/71462
2789         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
2790         removed blocks.
2791
2792 2016-06-09  Martin Liska  <mliska@suse.cz>
2793
2794         * predict.c (dump_prediction): Add new argument.
2795         (enum predictor_reason): New enum.
2796         (struct predictor_hash): New struct.
2797         (predictor_hash::hash): New function.
2798         (predictor_hash::equal): Likewise.
2799         (not_removed_prediction_p): New function.
2800         (prune_predictions_for_bb): Likewise.
2801         (combine_predictions_for_bb): Prune predictions.
2802
2803 2016-06-09  Martin Liska  <mliska@suse.cz>
2804
2805         * predict.c (filter_predictions): New function.
2806         (remove_predictions_associated_with_edge): Use the filter
2807         function.
2808         (equal_edge_p): New function.
2809
2810 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
2811
2812         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
2813         Correct usage of @samp vs @option, add @samp where appropriate.
2814         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
2815         Add armv6s-m and document it, as it is no official ARM name.
2816
2817 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2818
2819         * ifcvt.c (struct noce_if_info): Add transform_name field.
2820         (noce_try_move): Set if_info->transform_name to the function name.
2821         (noce_try_ifelse_collapse): Likewise.
2822         (noce_try_store_flag): Likewise.
2823         (noce_try_inverse_constants): Likewise.
2824         (noce_try_store_flag_constants): Likewise.
2825         (noce_try_addcc): Likewise.
2826         (noce_try_store_flag_mask): Likewise.
2827         (noce_try_cmove): Likewise.
2828         (noce_try_cmove_arith): Likewise.
2829         (noce_try_minmax): Likewise.
2830         (noce_try_abs): Likewise.
2831         (noce_try_sign_mask): Likewise.
2832         (noce_try_bitop): Likewise.
2833         (noce_convert_multiple_sets): Likewise.
2834         (noce_process_if_block): Print if_info->transform_name to
2835         dump_file if transformation succeeded.
2836
2837 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2838
2839         * config/arm/cortex-a57.md (cortex_a57_alu):
2840         Handle csel type.
2841
2842 2016-06-08  Martin Sebor  <msebor@redhat.com>
2843             Jakub Jelinek  <jakub@redhat.com>
2844
2845         PR c++/70507
2846         PR c/68120
2847         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
2848         BUILT_IN_MUL_OVERFLOW_P): New builtins.
2849         * builtins.c: Include gimple-fold.h.
2850         (fold_builtin_arith_overflow): Handle
2851         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
2852         (fold_builtin_3): Likewise.
2853         * doc/extend.texi (Integer Overflow Builtins): Document
2854         __builtin_{add,sub,mul}_overflow_p.
2855
2856 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
2857
2858         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
2859         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
2860
2861 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
2862
2863         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
2864         Rewrite, looking one level down for records and arrays.
2865
2866 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
2867
2868         * pretty-print.c: Include "selftest.h".
2869         (pp_format): Fix comment.
2870         (identifier_to_locale): Likewise.
2871         (selftest::test_basic_printing): New function.
2872         (selftest::assert_pp_format): New function.
2873         (selftest::test_pp_format): New function.
2874         (selftest::pretty_print_c_tests): New function.
2875         * selftest-run-tests.c (selftest::run_tests): Call
2876         selftest::pretty_print_c_tests.
2877         * selftest.h (pretty_print_c_tests): New declaration.
2878
2879 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2880
2881         * invoke.texi (max-loop-headers-insns): Document.
2882         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
2883         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
2884         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
2885
2886 2016-06-08  Richard Biener  <rguenther@suse.de>
2887
2888         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
2889         on strided SLP loads and fall back to scalar loads in case
2890         we can't chunk them.
2891
2892 2016-06-08  Richard Biener  <rguenther@suse.de>
2893
2894         PR tree-optimization/71452
2895         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
2896         type used for the SSA rewrite has enough precision to cover
2897         the dynamic type of the location.
2898
2899 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
2900             Richard Biener  <rguenther@suse.de>
2901
2902         PR c++/71448
2903         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
2904         the same as DECL_P (base0) for indirect_base0.  Use equality_code
2905         in one further place.
2906
2907 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
2908
2909         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
2910         to one word if the field is known to overlap other words.
2911         (extract_bit_field_1): Likewise.
2912         (store_split_bit_field): Remove compensating code.
2913         (extract_split_bit_field): Likewise.
2914
2915 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
2916
2917         PR debug/71432
2918         PR ada/71413
2919         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
2920
2921 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2922
2923         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
2924         VDQF.
2925         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
2926         (arch64_addpv4sf): Delete.
2927         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
2928         "gen_aarch64_addpv4sf".
2929         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
2930         builtin.
2931         (vpadds_f32): Likewise.
2932         (vpaddq_f32): Likewise.
2933         (vpaddq_f64): Likewise.
2934
2935 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2936
2937         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
2938         VALLF.
2939         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
2940         to VALLF.  Rename to "fabd<mode>3".
2941         "*fabd_scalar<mode>3): Delete.
2942         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
2943         Use builtin.
2944         (vabdd_f64): Likewise.
2945         (vabd_f32): Likewise.
2946         (vabd_f64): Likewise.
2947         (vabdq_f32): Likewise.
2948         (vabdq_f64): Likewise.
2949
2950 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2951
2952         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
2953         VALLF.
2954         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
2955         "aarch64_rsqrts<mode>".
2956         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
2957         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
2958         builtin.
2959         (vrsqrtsd_f64): Likewise.
2960         (vrsqrts_f32): Likewise.
2961         (vrsqrts_f64): Likewise.
2962         (vrsqrtsq_f32): Likewise.
2963         (vrsqrtsq_f64): Likewise.
2964
2965 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2966
2967         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
2968         VALLF.
2969         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
2970         "aarch64_rsqrte<mode>".
2971         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
2972         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
2973         builtin.
2974         (vrsqrted_f64): Likewise.
2975         (vrsqrte_f32): Likewise.
2976         (vrsqrte_f64): Likewise.
2977         (vrsqrteq_f32): Likewise.
2978         (vrsqrteq_f64): Likewise.
2979
2980 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2981
2982         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
2983         (ucvtf): Likewise.
2984         (fcvtzs): Likewise.
2985         (fcvtzu): Likewise.
2986         * config/aarch64/aarch64-simd.md
2987         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
2988         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
2989         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
2990         Use builtin.
2991         (vcvt_n_f32_u32): Likewise.
2992         (vcvt_n_s32_f32): Likewise.
2993         (vcvt_n_u32_f32): Likewise.
2994         (vcvtq_n_f32_s32): Likewise.
2995         (vcvtq_n_f32_u32): Likewise.
2996         (vcvtq_n_f64_s64): Likewise.
2997         (vcvtq_n_f64_u64): Likewise.
2998         (vcvtq_n_s32_f32): Likewise.
2999         (vcvtq_n_s64_f64): Likewise.
3000         (vcvtq_n_u32_f32): Likewise.
3001         (vcvtq_n_u64_f64): Likewise.
3002         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
3003         (VSDQ_SDI): Likewise.
3004         (fcvt_target): Support V4DI, V4SI and V2SI.
3005         (FCVT_TARGET): Likewise.
3006
3007 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
3008
3009         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
3010         (TYPES_BINOP_SUS): Likewise.
3011         (aarch64_simd_builtin_data): Update include file name.
3012         (aarch64_builtins): Likewise.
3013         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
3014         for conversion between scalar float-point and fixed-point.
3015         (ucvtf): Likewise.
3016         (fcvtzs): Likewise.
3017         (fcvtzu): Likewise.
3018         * config/aarch64/aarch64.md
3019         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
3020         pattern for conversion between scalar float to fixed-pointer.
3021         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
3022         (UNSPEC_FCVTZS): New UNSPEC enumeration.
3023         (UNSPEC_FCVTZU): Likewise.
3024         (UNSPEC_SCVTF): Likewise.
3025         (UNSPEC_UCVTF): Likewise.
3026         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
3027         Use builtin.
3028         (vcvtd_n_f64_u64): Likewise.
3029         (vcvtd_n_s64_f64): Likewise.
3030         (vcvtd_n_u64_f64): Likewise.
3031         (vcvtd_n_f32_s32): Likewise.
3032         (vcvts_n_f32_u32): Likewise.
3033         (vcvtd_n_s32_f32): Likewise.
3034         (vcvts_n_u32_f32): Likewise.
3035         * config/aarch64/iterators.md (fcvt_target): Support integer to float
3036         mapping.
3037         (FCVT_TARGET): Likewise.
3038         (FCVT_FIXED2F): New iterator.
3039         (FCVT_F2FIXED): Likewise.
3040         (fcvt_fixed_insn): New define_int_attr.
3041
3042 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3043
3044         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
3045         some statements was removed.
3046
3047 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
3048
3049         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
3050         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
3051         (vect_can_advance_ivs_p): likewise.
3052         (vect_update_ivs_after_vectorizer): likewise.
3053         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
3054         (vect_analyze_scalar_cycles_1): likewise.
3055         (vect_analyze_loop_operations): likewise.
3056         (report_vect_op): likewise.
3057         (vect_is_slp_reduction): likewise.
3058         (vect_is_simple_reduction): likewise.
3059         (get_initial_def_for_induction): likewise.
3060         (vect_transform_loop): likewise.
3061         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
3062         (vect_recog_sad_pattern): likewise.
3063         (vect_recog_widen_sum_pattern): likewise.
3064         (vect_recog_widening_pattern): likewise.
3065         (vect_recog_divmod_pattern): likewise.
3066         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
3067         (vect_analyze_slp_instance): likewise.
3068         (vect_transform_slp_perm_load): likewise.
3069         (vect_schedule_slp_instance): likewise.
3070
3071 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3072
3073         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
3074         (return_prediction): PRED_CONST_RETURN predict return as not taken.
3075         * predict.def (PRED_CONTINUE): Change hitrate 50->67
3076         (PRED_LOOP_BRANCH): Document predictor as broken.
3077         (PRED_LOOP_EXIT): Change hitrate 91->92.
3078         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
3079         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
3080         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
3081         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
3082         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
3083         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
3084         (PRED_CALL): Chane hitrate 71->67.
3085         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
3086         (PRED_GOTO): Document as unused right now.
3087         (PRED_CONST_RETURN): Change hitrate 67->69
3088         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
3089         (PRED_NULL_RETURN): Change hitrate 91->90.
3090         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
3091         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
3092         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
3093
3094 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
3095
3096         * config/rs6000/altivec.h: Add __builtin_vec_mul.
3097         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
3098         special case Altivec builtin.
3099         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
3100         VSX_BUILTIN_VEC_MUL (replaced with special case code).
3101         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3102         code for ALTIVEC_BUILTIN_VEC_MUL.
3103         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3104         for __builtin_vec_mul.
3105
3106 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
3107
3108         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
3109         -mno-htm.
3110
3111 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
3112
3113         * spellcheck.c (selftest::test_find_closest_string): New function.
3114         (spellcheck_c_tests): Call the above.
3115
3116 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3117
3118         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
3119
3120 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
3121
3122         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
3123         Yv=Yv,C alternatives.
3124
3125 2016-06-07  Richard Biener  <rguenther@suse.de>
3126
3127         PR c/61564
3128         * common.opt (ffast-math): Make Optimization.
3129
3130 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
3131             Prachi Godbole  <prachi.godbole@imgtec.com>
3132
3133         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
3134         `fabs' and `fneg' type attributes.
3135         (p5600_fpu_fabs): Add `fmove' to the comment.
3136
3137 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3138
3139         * gimple.c: Include builtins.h
3140         (gimple_inexpensive_call_p): New function.
3141         * gimple.h (gimple_inexpensive_call_p): Declare.
3142         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
3143         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
3144         fix formatting.
3145
3146 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
3147
3148         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
3149         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
3150         warning_at_rich_loc, warning_n, pedwarn, permerror,
3151         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
3152         sorry, fatal_error, internal_error, internal_error_no_backtrace):
3153         Use the above.
3154
3155 2016-06-07  Richard Biener  <rguenther@suse.de>
3156
3157         PR tree-optimization/71428
3158         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
3159         BIT_FIELD_REF op vs. load.
3160
3161 2016-06-07  Richard Biener  <rguenther@suse.de>
3162
3163         PR middle-end/71423
3164         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
3165         for signed ops.
3166
3167 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
3168
3169         * config/pa/pa.md (call): Generate indirect long calls to non-local
3170         functions on TARGET_64BIT.
3171         (call_value): Likewise.
3172
3173 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
3174
3175         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
3176         pattern and subsequent splitters.
3177         (call_val_reg_64bit_post_reload): Likewise.
3178
3179 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
3180
3181         PR middle-end/71408
3182         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
3183         propagate_op_to_single_use.
3184
3185 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
3186
3187         PR middle-end/71281
3188         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
3189
3190 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
3191
3192         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
3193         (enum x86_dirflag_state): New enum.
3194         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
3195         (machine_function): Remove needs_cld.
3196         (ix86_current_function_needs_cld): Remove.
3197         * config/i386/i386.c (ix86_set_func_type): Set
3198         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
3199         (ix86_expand_prologue): Do not emit CLD here.
3200         (ix86_dirflag_mode_needed): New function.
3201         (ix86_dirflag_mode_entry): Ditto.
3202         (ix86_mode_needed): Handle X86_DIRFLAG entity.
3203         (ix86_mode_after): Ditto.
3204         (ix86_mode_entry): Ditto.
3205         (ix86_mode_exit): Ditto.
3206         (ix86_emit_mode_set): Ditto.
3207         * config/i386/i386.md (strmov_singleop): Set
3208         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
3209         Do not set ix86_current_function_needs_cld.
3210         (rep_mov): Ditto.
3211         (strset_singleop): Ditto.
3212         (rep_stos): Ditto.
3213         (cmpstrnqi_nz_1): Ditto.
3214         (cmpstrnqi_1): Ditto.
3215         (strlenqi_1): Ditto.
3216
3217 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
3218
3219         PR tree-optimization/71259
3220         * tree-vect-slp.c (vect_get_constant_vectors): For
3221         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
3222         one for constant op, and use COND_EXPR for non-constant.
3223
3224 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
3225
3226         * Makefile.in (OBJS): Add function-tests.o,
3227         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
3228         selftest-run-tests.o.
3229         (OBJS-libcommon): Add selftest.o.
3230         (OBJS-libcommon-target): Add selftest.o.
3231         (all.internal): Add "selftest".
3232         (all.cross): Likewise.
3233         (selftest): New phony target.
3234         (s-selftest): New target.
3235         (selftest-gdb): New phony target.
3236         (COLLECT2_OBJS): Add selftest.o.
3237         * bitmap.c: Include "selftest.h".
3238         (selftest::test_gc_alloc): New function.
3239         (selftest::test_set_range): New function.
3240         (selftest::test_clear_bit_in_middle): New function.
3241         (selftest::test_copying): New function.
3242         (selftest::test_bitmap_single_bit_set_p): New function.
3243         (selftest::bitmap_c_tests): New function.
3244         * common.opt (fself-test): New.
3245         * diagnostic-show-locus.c: Include "selftest.h".
3246         (make_range): New function.
3247         (test_range_contains_point_for_single_point): New function.
3248         (test_range_contains_point_for_single_line): New function.
3249         (test_range_contains_point_for_multiple_lines): New function.
3250         (assert_eq): New function.
3251         (test_get_line_width_without_trailing_whitespace): New function.
3252         (selftest::diagnostic_show_locus_c_tests): New function.
3253         * et-forest.c: Include "selftest.h".
3254         (selftest::test_single_node): New function.
3255         (selftest::test_simple_tree): New function.
3256         (selftest::test_disconnected_nodes): New function.
3257         (selftest::et_forest_c_tests): New function.
3258         * fold-const.c: Include "selftest.h".
3259         (selftest::assert_binop_folds_to_const): New function.
3260         (selftest::assert_binop_folds_to_nonlvalue): New function.
3261         (selftest::test_arithmetic_folding): New function.
3262         (selftest::fold_const_c_tests): New function.
3263         * function-tests.c: New file.
3264         * gimple.c: Include "selftest.h".
3265         Include "gimple-pretty-print.h".
3266         (selftest::verify_gimple_pp): New function.
3267         (selftest::test_assign_single): New function.
3268         (selftest::test_assign_binop): New function.
3269         (selftest::test_nop_stmt): New function.
3270         (selftest::test_return_stmt): New function.
3271         (selftest::test_return_without_value): New function.
3272         (selftest::gimple_c_tests): New function.
3273         * hash-map-tests.c: New file.
3274         * hash-set-tests.c: New file.
3275         * input.c: Include "selftest.h".
3276         (selftest::assert_loceq): New function.
3277         (selftest::test_accessing_ordinary_linemaps): New function.
3278         (selftest::test_unknown_location): New function.
3279         (selftest::test_builtins): New function.
3280         (selftest::test_reading_source_line): New function.
3281         (selftest::input_c_tests): New function.
3282         * rtl-tests.c: New file.
3283         * selftest-run-tests.c: New file.
3284         * selftest.c: New file.
3285         * selftest.h: New file.
3286         * spellcheck.c: Include "selftest.h".
3287         (selftest::levenshtein_distance_unit_test_oneway): New function,
3288         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
3289         (selftest::levenshtein_distance_unit_test): Likewise.
3290         (selftest::spellcheck_c_tests): Likewise.
3291         * toplev.c: Include selftest.h.
3292         (toplev::run_self_tests): New.
3293         (toplev::main): Handle -fself-test.
3294         * toplev.h (toplev::run_self_tests): New.
3295         * tree.c: Include "selftest.h".
3296         (selftest::test_integer_constants): New function.
3297         (selftest::test_identifiers): New function.
3298         (selftest::test_labels): New function.
3299         (selftest::tree_c_tests): New function.
3300         * tree-cfg.c: Include "selftest.h".
3301         (selftest::push_fndecl): New function.
3302         (selftest::test_linear_chain): New function.
3303         (selftest::test_diamond): New function.
3304         (selftest::test_fully_connected): New function.
3305         (selftest::tree_cfg_c_tests): New function.
3306         * vec.c: Include "selftest.h".
3307         (selftest::safe_push_range): New function.
3308         (selftest::test_quick_push): New function.
3309         (selftest::test_safe_push): New function.
3310         (selftest::test_truncate): New function.
3311         (selftest::test_safe_grow_cleared): New function.
3312         (selftest::test_pop): New function.
3313         (selftest::test_safe_insert): New function.
3314         (selftest::test_ordered_remove): New function.
3315         (selftest::test_unordered_remove): New function.
3316         (selftest::test_block_remove): New function.
3317         (selftest::reverse_cmp): New function.
3318         (selftest::test_qsort): New function.
3319         (selftest::vec_c_tests): New function.c.
3320         * wide-int.cc: Include selftest.h and wide-int-print.h.
3321         (selftest::from_int <wide_int>): New function.
3322         (selftest::from_int <offset_int>): New function.
3323         (selftest::from_int <widest_int>): New function.
3324         (selftest::assert_deceq): New function.
3325         (selftest::assert_hexeq): New function.
3326         (selftest::test_printing <VALUE_TYPE>): New function template.
3327         (selftest::test_ops <VALUE_TYPE>): New function template.
3328         (selftest::test_comparisons <VALUE_TYPE>): New function template.
3329         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
3330         template.
3331         (selftest::wide_int_cc_tests): New function.
3332
3333 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3334
3335         PR middle-end/37780
3336         * ifcvt.c (noce_try_ifelse_collapse): New function.
3337         Declare prototype.
3338         (noce_process_if_block): Call noce_try_ifelse_collapse.
3339         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
3340         (simplify_ternary_operation): Use the above to simplify
3341         conditional CLZ/CTZ expressions.
3342
3343 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3344
3345         PR middle-end/37780
3346         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
3347         define_insn_and_split.
3348
3349 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3350
3351         PR middle-end/37780
3352         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
3353
3354 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3355
3356         PR c/24414
3357         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
3358         Implicitly clobber memory for basic asm with non-empty assembler
3359         string.  Use targetm.md_asm_adjust also here.
3360         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
3361         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
3362         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
3363         non-empty assembler string.
3364         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
3365         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
3366         (decode_asm_operands): Handle basic asm in PARALLEL block.
3367         (extract_insn): Handle basic asm in PARALLEL block.
3368         * doc/extend.texi: Mention new behavior of basic asm.
3369         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
3370         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
3371         branch_needs_nop_p): Use asm_noperands.
3372
3373 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
3374
3375         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
3376         Include the M7 SPARC DFA scheduler.
3377         New attribute v3pipe.
3378         Annotate insns with v3pipe where appropriate.
3379         Define cpu_feature vis4.
3380         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
3381         Add (V8QI "8") to vbits.
3382         Add insns {add,sub}v8qi3
3383         Add insns ss{add,sub}v8qi3
3384         Add insns us{add,sub}{v8qi,v4hi}3
3385         Add insns {min,max}{v8qi,v4hi,v2si}3
3386         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
3387         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
3388         * config/sparc/niagara4.md: Add a comment explaining the
3389         discrepancy between the documented latenty numbers and the
3390         implemented ones.
3391         * config/sparc/niagara7.md: New file.
3392         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
3393         supports SPARC5 and VIS 4.0 instructions.
3394         * configure: Regenerate.
3395         * config.in: Likewise.
3396         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
3397         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
3398         TARGET_CPU_niagara7.
3399         (ASM_CPU64_DEFAULT_SPEC): Likewise.
3400         (CPP_CPU_SPEC): Handle niagara7.
3401         (ASM_CPU_SPEC): Likewise.
3402         * config/sparc/sparc-opts.h (processor_type): Add
3403         PROCESSOR_NIAGARA7.
3404         (mvis4): New option.
3405         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
3406         (AS_NIAGARA7_FLAG): Define.
3407         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
3408         (CPP_CPU64_DEFAULT_SPEC): Likewise.
3409         (CPP_CPU_SPEC): Handle niagara7.
3410         (ASM_CPU_SPEC): Likewise.
3411         * config/sparc/sparc.c (niagara7_costs): Define.
3412         (sparc_option_override): Handle niagara7 and adjust cache-related
3413         parameters with better values for niagara cpus.  Also support VIS4.
3414         (sparc32_initialize_trampoline): Likewise.
3415         (sparc_use_sched_lookahead): Likewise.
3416         (sparc_issue_rate): Likewise.
3417         (sparc_register_move_cost): Likewise.
3418         (dump_target_flag_bits): Support VIS4.
3419         (sparc_vis_init_builtins): Likewise.
3420         (sparc_builtins): Likewise.
3421         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
3422         VIS4 4.0.
3423         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
3424         UltraSparc M7.
3425         * config/sparc/sparc.opt (sparc_processor_type): New value
3426         niagara7.
3427         * config/sparc/visintrin.h (__attribute__): Prototypes for the
3428         VIS4 builtins.
3429         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
3430         -mvis4.
3431         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
3432         VIS4 builtins.
3433
3434 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
3435
3436         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
3437
3438 2016-06-06  Richard Biener  <rguenther@suse.de>
3439
3440         PR tree-optimization/71398
3441         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
3442         remove edges.
3443
3444 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
3445
3446         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
3447         ft32_expand_prolog, ft32_expand_epilogue):
3448         Handle pretend_args.
3449         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
3450         * config/ft32/ft32.md: Add pretend_returner.
3451
3452 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
3453
3454         PR target/71389
3455         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3456         Copy op1 RTX to avoid invalid sharing.
3457         (ix86_expand_vector_move_misalign): Ditto.
3458
3459 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
3460
3461         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
3462         ATTRIBUTE_UNUSED.
3463
3464 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
3465
3466         * predict.c (predicted_by_loop_heuristics_p): New function.
3467         (predict_iv_comparison): Use it.
3468         (predict_loops): Walk from innermost loops; do not predict edges
3469         leaving multiple loops multiple times; implement
3470         PRED_LOOP_ITERATIONS_MAX heuristics.
3471         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
3472
3473 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
3474
3475         * cfg.c (check_bb_profile): Do not report mismatched profiles when
3476         only edges out of BB are EH edges.
3477
3478 2016-06-04  Martin Sebor  <msebor@redhat.com>
3479             Marcin Baczyński  <marbacz@gmail.com>
3480
3481         PR c/48116
3482         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
3483         a void expression in a void function.
3484
3485 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
3486
3487         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
3488         aux; dump reasons of decisions.
3489         (should_duplicate_loop_header_p): Likewise.
3490         (do_while_loop_p): Likewise.
3491         (ch_base::copy_headers): Dump asi num insns duplicated.
3492
3493 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
3494
3495         PR tree-optimization/71405
3496         * tree-ssa.c (execute_update_addresses_taken): For clobber with
3497         incompatible type, build a new clobber with the right type instead
3498         of building a VIEW_CONVERT_EXPR around it.
3499
3500 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
3501
3502         PR tree-optimization/52171
3503         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
3504         by_pieces_ninsns instead of move_by_pieces_ninsns.
3505
3506 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
3507
3508         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
3509         for reg+reg addressing mode.
3510
3511 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3512
3513         * rs6000-c.c (c/c-tree.h): Add #include.
3514         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
3515         in C++ when found in the base position of vec_ld or vec_st.
3516
3517 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
3518
3519         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
3520         use of profile unless profile status is PROFILE_READ.
3521         * profile.c (compute_branch_probabilities): Set profile status
3522         only after reporting predictor hitrates.
3523
3524 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
3525
3526         PR target/71276
3527         PR target/71277
3528         * common.opt (ffp-int-builtin-inexact): New option.
3529         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
3530         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
3531         (ceil@var{m}2): Document dependence on this option.
3532         * ipa-inline-transform.c (inline_call): Handle
3533         flag_fp_int_builtin_inexact.
3534         * ipa-inline.c (can_inline_edge_p): Likewise.
3535         * config/i386/i386.md (rintxf2): Do not test
3536         flag_unsafe_math_optimizations.
3537         (rint<mode>2_frndint): New define_insn.
3538         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
3539         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
3540         for 387 instead of extending and truncating.
3541         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
3542         !flag_trapping_math instead of flag_unsafe_math_optimizations.
3543         Change to frndint<mode>2_<rounding>.
3544         (frndintxf2_<rounding>_i387): Likewise.  Change to
3545         frndint<mode>2_<rounding>_i387.
3546         (<rounding_insn>xf2): Likewise.
3547         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
3548         !flag_trapping_math instead of flag_unsafe_math_optimizations for
3549         x87.  Test TARGET_ROUND || !flag_trapping_math ||
3550         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
3551         SSE.  Use ROUND_NO_EXC in constant operand of
3552         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
3553         for 387 instead of extending and truncating.
3554
3555 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
3556             Julia Koval  <julia.koval@intel.com>
3557
3558         PR target/66960
3559         PR target/67630
3560         PR target/67634
3561         PR target/67841
3562         PR target/68037
3563         PR target/68618
3564         PR target/68661
3565         PR target/69575
3566         PR target/69596
3567         PR target/69734
3568         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
3569         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
3570         all registers, except for function return registers if there are
3571         no caller-saved registers.
3572         (ix86_set_func_type): New function.
3573         (ix86_set_current_function): Call ix86_set_func_type to set
3574         no_caller_saved_registers and func_type.  Call reinit_regs if
3575         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
3576         nor x87 instructions in interrupt handler nor function with
3577         no_caller_saved_registers attribute.
3578         (ix86_function_ok_for_sibcall): Return false if there are no
3579         caller-saved registers.
3580         (type_natural_mode): Don't warn ABI change for MMX in interrupt
3581         handler.
3582         (ix86_function_arg_advance): Skip for callee in interrupt handler.
3583         (ix86_function_arg): Return special arguments in interrupt handler.
3584         (ix86_promote_function_mode): Promote pointer to word_mode only
3585         for normal functions.
3586         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
3587         interrupt handler.
3588         (ix86_epilogue_uses): New function.
3589         (ix86_hard_regno_scratch_ok): Likewise.
3590         (ix86_save_reg): Preserve all registers in interrupt handler
3591         after reload.  Preserve all registers, except for function return
3592         registers, if there are no caller-saved registers after reload.
3593         (find_drap_reg): Always use callee-saved register if there are
3594         no caller-saved registers.
3595         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
3596         for interrupt handler.
3597         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
3598         Emit cld instruction if stringops are used in interrupt handler
3599         or interrupt handler isn't a leaf function.
3600         (ix86_expand_epilogue): Generate interrupt return for interrupt
3601         handler and pop the 'ERROR_CODE' off the stack before interrupt
3602         return in exception handler.
3603         (ix86_expand_call): Disallow calling interrupt handler directly.
3604         If there are no caller-saved registers, mark all registers that
3605         are clobbered by the call which returns as clobbered.
3606         (ix86_handle_no_caller_saved_registers_attribute): New function.
3607         (ix86_handle_interrupt_attribute): Likewise.
3608         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
3609         attributes.
3610         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
3611         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
3612         accumulation in interrupt function if stack may be realigned to
3613         avoid DRAP.
3614         (EPILOGUE_USES): New.
3615         (function_type): New enum.
3616         (machine_function): Add func_type and no_caller_saved_registers.
3617         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
3618         (interrupt_return): New pattern.
3619         * doc/extend.texi: Document x86 interrupt and
3620         no_caller_saved_registers attributes.
3621
3622 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
3623
3624         PR tree-optimization/52171
3625         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
3626         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
3627         Look for constant strings.  Move some code to emit_block_cmp_hints
3628         and use it.
3629         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
3630         * defaults.h (COMPARE_MAX_PIECES): New macro.
3631         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
3632         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
3633         (clear_by_pieces_1): Don't declare.  Move definition before use.
3634         (can_do_by_pieces): New static function.
3635         (can_move_by_pieces): Use it.  Return bool.
3636         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
3637         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
3638         (class pieces_addr); New.
3639         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
3640         pieces_addr::adjust, pieces_addr::increment_address,
3641         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
3642         functions for it.
3643         (class op_by_pieces_d): New.
3644         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
3645         functions for it.
3646         (class move_by_pieces_d, class compare_by_pieces_d,
3647         class store_by_pieces_d): New subclasses of op_by_pieces_d.
3648         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
3649         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
3650         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
3651         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
3652         compare_by_pieces_d::finish_mode): New member functions.
3653         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
3654         functions.
3655         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
3656         (emit_block_cmp_hints): New function.
3657         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
3658         use the newly defined classes.
3659         * expr.h (by_pieces_constfn): New typedef.
3660         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
3661         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
3662         (move_by_pieces_ninsns): Don't declare.
3663         (can_move_by_pieces): Change return value to bool.
3664         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
3665         (compare_by_pieces_branch_ratio): New hook.
3666         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
3667         (by_pieces_ninsns): Declare.
3668         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
3669         COMPARE_BY_PIECES.
3670         (default_compare_by_pieces_branch_ratio): New function.
3671         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
3672         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
3673         * doc/tm.texi: Regenerate.
3674         * tree-ssa-strlen.c: Include "builtins.h".
3675         (handle_builtin_memcmp): New static function.
3676         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
3677         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
3678
3679 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3680
3681         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
3682         relevant stmts which are simple and invariant.
3683         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
3684         instead of simple and invariant
3685
3686 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3687
3688         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
3689         (vectorizable_reduction): Check for new relevant state.
3690         (vectorizable_live_operation): vectorize live stmts using
3691         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
3692         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
3693         (vect_stmt_relevant_p): Check for stmts which are only used live.
3694         (process_use): Use of a stmt does not inherit it's live value.
3695         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
3696         (vect_analyze_stmt): Check for new relevant state.
3697         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
3698         outside the loop, but not inside it.
3699
3700 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3701
3702         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
3703         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
3704         (vect_get_vec_def_for_operand): Split out code.
3705
3706 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
3707
3708         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
3709
3710 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3711
3712         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
3713
3714 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3715
3716         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
3717
3718 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
3719
3720         PR middle-end/71387
3721         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
3722         to noreturn e->callee->decl that has void return type and void
3723         arguments, adjust gimple_call_fntype and remove lhs even if it had
3724         previously addressable type.
3725
3726 2016-06-02  Jeff Law  <law@redhat.com>
3727
3728         PR tree-optimization/71328
3729         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
3730         error when checking for a jump back onto the copied path.
3731
3732 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
3733
3734         * config/microblaze/microblaze.c (get_branch_target): Add return
3735         NULL_RTX for the non-CALL_P case.
3736         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
3737         (insert_wic): Remove unused local "j".
3738
3739 2016-06-02  Martin Liska  <mliska@suse.cz>
3740
3741         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
3742
3743 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
3744             Julia Koval  <julia.koval@intel.com>
3745
3746         * function.c (assign_parm_setup_stack): Force source into a
3747         register if needed.
3748         * target.def (function_incoming_arg): Update documentation to
3749         allow arbitrary address computation based on hard register.
3750         * doc/tm.texi: Regenerated.
3751
3752 2016-06-02  Martin Liska  <mliska@suse.cz>
3753
3754         * predict.c (combine_predictions_for_bb): Fix first match in
3755         cases where a first predictor contains more than one occurence
3756         in list of predictors.  Take the best value in such case.
3757
3758 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3759
3760         PR rtl-optimization/71295
3761         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
3762         offset would go over the size of the inner mode reject it.
3763
3764 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
3765
3766         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
3767         x=x,x and v=v,m instead of x=x,m.
3768
3769         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
3770         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
3771         alternative to v=rm,C.
3772
3773         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
3774         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
3775         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
3776         instead of vex for the last two above mentioned alternatives.
3777
3778 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3779
3780         PR target/70830
3781         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
3782
3783 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
3784
3785         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
3786
3787 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
3788
3789         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
3790         from int to unsigned.
3791
3792 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3793
3794         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
3795         alternatives, eliminating preferred register class.  Add support
3796         for the MTVSRDD instruction in ISA 3.0.
3797         (vsx_splat_v4si_internal): Use splat_input_operand instead of
3798         reg_or_indexed_operand.
3799         (vsx_splat_v4sf_internal): Likewise.
3800
3801 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3802
3803         PR target/71186
3804         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
3805         for loading up all 0's or all 1's.
3806
3807 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3808
3809         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
3810
3811 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
3812
3813         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
3814         extension.
3815         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
3816         * gcc.c (set_source_date_epoch_envvar): New function, sets
3817         the SOURCE_DATE_EPOCH environment variable to the current time.
3818
3819 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3820
3821         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
3822         the factor for live Phi nodes.
3823
3824 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
3825
3826         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
3827         * tree-parloops.c (parallelize_loops): likewise.
3828         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
3829         tree_unswitch_outer_loop): likewise.
3830
3831 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
3832
3833         PR middle-end/71371
3834         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
3835         around creation of the temporary.
3836
3837 2016-06-01  Richard Biener  <rguenther@suse.de>
3838
3839         PR tree-optimization/71366
3840         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
3841         (unloop_loops): Move removing edges here ...
3842         (try_unroll_loop_completely): ... from here.
3843         (try_peel_loop): ... and here.
3844         (tree_unroll_loops_completely_1): Track parent loops via
3845         bitmap of header BBs.
3846         (tree_unroll_loops_completely): Adjust for that.
3847
3848 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3849
3850         * config/rs6000/altivec.h (vec_slv): New macro.
3851         (vec_srv): New macro.
3852         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
3853         (UNSPEC_VSRV): New value.
3854         (vslv): New insn.
3855         (vsrv): New insn.
3856         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
3857         (vsrv): New builtin definition.
3858         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
3859         define argument types for new builtin.
3860         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
3861         new builtin.
3862         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
3863         functions.
3864
3865 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
3866             Jocelyn Mayer  <l_indien@magic.fr>
3867
3868         PR target/67310
3869         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
3870         detect processor family for signature_CENTAUR_ebx.
3871         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
3872         signature_CENTAUR_ebx.
3873         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
3874         <default>: Pass x86-64 for has_longmode.
3875
3876 2016-06-01  Nathan Sidwell  <nathan@acm.org>
3877
3878         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
3879         undefined weak.
3880
3881 2016-06-01  Richard Biener  <rguenther@suse.de>
3882
3883         PR tree-optimization/71261
3884         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
3885         of stmts successfully put in the bool pattern.  Remove
3886         single-use restriction.
3887         (adjust_bool_pattern_cast): Add cast at the use site via the
3888         pattern def sequence.
3889         (adjust_bool_pattern): Remove recursion, maintain a hash-map
3890         of patterned defs.  Use the pattern def seqence instead of
3891         multiple independent patterns.
3892         (sort_after_uid): New qsort compare function.
3893         (adjust_bool_stmts): New function to process stmts in the bool
3894         pattern in IL order.
3895         (vect_recog_bool_pattern): Adjust.
3896         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
3897         (ifcvt_walk_pattern_tree): Likewise.
3898         (stmt_is_root_of_bool_pattern): Likewise.
3899         (ifcvt_repair_bool_pattern): Likewise.
3900         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
3901
3902 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
3903
3904         * loop-unroll.c (decide_unroll_constant_iterations,
3905         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
3906         likely upper bounds.
3907         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
3908
3909 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
3910
3911         * tree-core.h (enum omp_clause_code): Remove
3912         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
3913
3914 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3915
3916         * config/arm/sync.md (arm_store_exclusive<mode>):
3917         Use 'H' output modifier on operands[2] rather than creating a new
3918         entry in out-of-bounds memory of the operands array.
3919         (arm_store_release_exclusivedi): Likewise.
3920
3921 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3922
3923         * config/arm/arm.c (arm_fusion_enabled_p): New function.
3924         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
3925         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
3926         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
3927
3928 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3929
3930         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
3931         into account live statements for mask producers.
3932
3933 2016-06-01  Richard Biener  <rguenther@suse.de>
3934
3935         PR tree-optimization/71311
3936         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
3937         restrict to non-INTEGER_CST @0.
3938
3939 2016-06-01  Richard Biener  <rguenther@suse.de>
3940
3941         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
3942         (relational patterns): Use :c to avoid pattern duplications.
3943
3944 2016-06-01  Richard Biener  <rguenther@suse.de>
3945
3946         * genmatch.c (comparison_code_p): New predicate.
3947         (swap_tree_comparison): New function.
3948         (commutate): Add for_vec parameter to append new for entries.
3949         Support commutating relational operators by swapping it alongside
3950         operands.
3951         (lower_commutative): Adjust.
3952         (dt_simplify::gen): Do not pass artificial operators to gen
3953         functions.
3954         (decision_tree::gen): Do not add artificial operators as parameters.
3955         (parser::parse_expr): Verify operator commutativity when :c is
3956         applied.  Allow :C to override this.
3957         * match.pd: Adjust patterns to use :C instead of :c where required.
3958
3959 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
3960
3961         PR tree-optimization/71077
3962         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
3963         the combining step, use boolean_false_node and boolean_true_node
3964         as the designated false/true return values.
3965
3966 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3967
3968         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
3969         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
3970         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
3971         PRED_LOOP_EXIT.
3972
3973 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3974
3975         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
3976         of flags impliying the register renaming.
3977         * toplev.c (process_options): Do not imply flag_rename_registers with
3978         loop peeling.
3979
3980 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3981
3982         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
3983         default implementation.
3984
3985 2016-05-31  Nathan Sidwell  <nathan@acm.org>
3986
3987         * dwarf2out.c (cur_line_info_table): Add GTY marker.
3988
3989 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3990
3991         * config/sh/constraints.md (b): Remove constraint.
3992         * config/sh/predicates.md (arith_reg_operand): Remove
3993         TARGET_REGISTER_P.
3994         * config/sh/sh-modes.def (PDI): Remove.
3995         * config/sh/sh.c (sh_target_reg_class,
3996         sh_optimize_target_register_callee_saved): Remove functions.
3997         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
3998         (sh_expand_epilogue): Update comment.
3999         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
4000         sh_secondary_reload): Remove TARGET_REGS related code.
4001         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
4002         TARGET_REGISTER_P): Remove macros.
4003         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
4004         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
4005         TR1_REG, TR2_REG): Remove constants.
4006         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
4007
4008 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
4009
4010         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
4011         define_expand patterns.
4012         (adddi3_compact): Rename to adddi3.
4013         (subdi3_compact): Rename to subdi3.
4014         (*negdi2): Rename to negdi2.
4015         (*abs<mode>2): Rename to abs<mode>2.
4016
4017 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
4018
4019         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
4020         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
4021         (atomic_sub_fetchsi): ... this new pattern.
4022         (mvtc): Add CC_REG clobber.
4023
4024 2016-05-31  Marek Polacek  <polacek@redhat.com>
4025
4026         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
4027
4028 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4029
4030         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
4031         aarch64_fusion_enabled_p to check for fusion capabilities.
4032
4033 2016-05-31  Richard Biener  <rguenther@suse.de>
4034
4035         PR tree-optimization/71352
4036         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
4037         minus one and a negate.
4038
4039 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4040
4041         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
4042         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
4043         Delete prototype.
4044         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
4045         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
4046         Remove use of aarch64_simd_attr_length_move, set length attribute
4047         directly.
4048         (*aarch64_be_movoi): Likewise.
4049         (*aarch64_be_movci): Likewise.
4050         (*aarch64_be_movxi): Likewise.
4051
4052 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
4053
4054         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
4055         It no longer does that.
4056         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
4057
4058 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
4059
4060         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
4061         attribute __unused__.
4062
4063 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4064
4065         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
4066         * config/arm/arm.c (arm_arch_thumb1): Define.
4067         (arm_option_override): Initialize arm_arch_thumb1.
4068         * config/arm/arm.h (arm_arch_thumb1): Declare.
4069         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
4070         support Thumb-1 ISA.
4071
4072 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
4073
4074         PR target/71346
4075         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
4076         `Yv' for scalar operand.
4077
4078 2016-05-31  Tom de Vries  <tom@codesourcery.com>
4079
4080         PR tree-optimization/69068
4081         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
4082         phis with more than two args.
4083
4084 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
4085
4086         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
4087         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
4088         target.
4089
4090 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
4091
4092         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
4093         tune_64.
4094         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4095         support on SPARC.
4096         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
4097         cpu_32, cpu_64, tune_32 and tune_64.
4098         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
4099
4100 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
4101
4102         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
4103
4104 2016-05-30  Andi Kleen  <ak@linux.intel.com>
4105
4106         * auto-profile.c (read_profile): Replace asserts with errors
4107         when file does not exist.
4108         * gcov-io.c (gcov_read_words): Dito.
4109
4110 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4111
4112         * tree-cfg.c (print_loop): Print likely upper bounds.
4113
4114 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4115
4116         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
4117         * opts.c (default_options): Enable peel loops at -O3.
4118         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
4119         (try_peel_loop): Do not re-peel already peeled loops;
4120         use likely upper bounds; fix profile updating.
4121         (pass_complete_unroll::execute): Initialize peeled_loops.
4122
4123 2016-05-30  Martin Liska  <mliska@suse.cz>
4124
4125         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
4126         computed costs by frequency of BB they belong to.
4127         (get_scaled_computation_cost_at): New function.
4128
4129 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
4130             Marc Glisse  <marc.glisse@inria.fr>
4131
4132         PR tree-optimization/71289
4133         * match.pd (-1 / B < A, A > -1 / B): New transformations.
4134
4135 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4136
4137         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
4138
4139 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4140
4141         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
4142         for peeled copies; avoid underflow when updating estimates; correctly
4143         scale loop profile.
4144
4145 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4146
4147         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
4148         r236875. Corrected oe3 to oe2 as obvious.
4149
4150 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4151
4152         PR middle-end/71269
4153         PR middle-end/71252
4154         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
4155         that inserted stmt will not dominate stmts that defines its operand.
4156         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
4157         (rewrite_expr_tree_parallel): Likewise.
4158
4159 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4160
4161         PR middle-end/71252
4162         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
4163         all fields including stmt_to_insert are swapped.
4164
4165 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4166
4167         * predict.h (force_edge_cold): Declare.
4168         * predict.c (force_edge_cold): New function.
4169         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
4170         updating.
4171         (canonicalize_loop_induction_variables): Fix formating.
4172
4173 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4174
4175         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
4176         (visium_expand_copysign): Use gen_int_mode directly.
4177         (visium_compute_frame_size): Minor tweaks.
4178
4179 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4180
4181         * tree-vect-loop.c (vect_analyze_loop_2): Use
4182         likely_max_stmt_executions_int.
4183
4184 2016-05-30  Tom de Vries  <tom@codesourcery.com>
4185
4186         PR tree-optimization/69067
4187         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
4188
4189 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
4190
4191         PR target/71245
4192         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
4193         New peepholes to remove unneeded fild/fistp pairs.
4194         (define_peephole2 atomic_loaddi_fpu): Ditto.
4195
4196 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4197
4198         * predict.c (maybe_hot_frequency_p): Avoid division.
4199
4200 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
4201
4202         * doc/install.texi: Use https for shop.fsf.org.
4203
4204 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4205
4206         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
4207         likely_max_stmt_executions_int.
4208
4209 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4210
4211         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
4212         likely_max_stmt_executions_int.
4213
4214 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4215
4216         * profile.c (compute_branch_probabilities): Do not report hitrates
4217         here.
4218         (branch_prob): Report hitrates here.
4219         * predict.c (gimple_predict_edge): Do not assert profile status;
4220         fix formatting issues.
4221
4222 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4223
4224         * predict.c (edge_predicted_by_p): New function.
4225         (predict_paths_for_bb): Do not put multiple predictions of the same type
4226         on one edge.
4227
4228 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4229
4230         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
4231         commit.
4232
4233 2016-05-28  Alan Modra  <amodra@gmail.com>
4234
4235         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
4236
4237 2016-05-28  Alan Modra  <amodra@gmail.com>
4238
4239         PR rtl-optimization/71275
4240         * ira.c (ira): Free dominance info.
4241
4242 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
4243
4244         * doc/sourcebuild.texi: New address for upstream Go repository.
4245
4246 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4247
4248         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
4249         (TARGET_ARM_V7M): Likewise.
4250
4251 2016-05-26  Jeff Law  <law@redhat.com>
4252
4253         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
4254         (thread_across_edge): Remove calls to find_jump_threads_backwards.
4255         * passes.def: Add jump threading passes before DOM/VRP.
4256         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
4257         argument to a basic block from an edge.  Remove tests which are
4258         handled elsewhere.
4259         (pass_data_thread_jumps, class pass_thread_jumps): New.
4260         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
4261         (make_pass_thread_jumps): Likewise.
4262         * tree-pass.h (make_pass_thread_jumps): Declare.
4263
4264 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4265
4266         * config/visium/visium-protos.h (split_double_move): Rename into...
4267         (visium_split_double_move): ...this.
4268         (visium_split_double_add): Declare.
4269         * config/visium/visium.c (split_double_move): Rename into...
4270         (visium_split_double_move): ...this.
4271         (visium_split_double_add): New function.
4272         (visium_expand_copysign): Renumber operands for consistency.
4273         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
4274         (DFmode move splitter): Likewise.
4275         (*addi3_insn): Split by means of visium_split_double_add.
4276         (*adddi3_insn_flags): Delete.
4277         (*plus_plus_sltu<subst_arith>): New insn.
4278         (*subdi3_insn): Split by means of visium_split_double_add.
4279         (subdi3_insn_flags): Delete.
4280         (*minus_minus_sltu<subst_arith>): New insn.
4281         (*negdi2_insn): Split by means of visium_split_double_add.
4282         (*negdi2_insn_flags): Delete.
4283
4284 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
4285
4286         * configure.ac: Treat a --with-headers option without argument
4287         the same as the default (i.e. consult sys-include directory).
4288         * configure: Regenerate.
4289
4290 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4291
4292         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
4293         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
4294         prototype.
4295         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
4296         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
4297
4298 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
4299
4300         PR target/63596
4301         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
4302         tree-stdarg analysis results.
4303         (aarch64_setup_incoming_varargs): Likewise.
4304
4305 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
4306
4307         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
4308         va_list_gpr_counter_field and va_list_fpr_counter_field.
4309
4310 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
4311
4312         PR67609
4313         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
4314         * config/aarch64/aarch64.c
4315         (aarch64_cannot_change_mode_class): Remove function.
4316         * config/aarch64/aarch64-protos.h
4317         (aarch64_cannot_change_mode_class): Remove.
4318
4319 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4320
4321         * cfgloop.c (record_niter_bound): Record likely upper bounds.
4322         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
4323         get_likely_max_loop_iterations_int): New.
4324         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
4325         any_likely_upper_bound.
4326         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
4327         Declare.
4328         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
4329         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
4330         upper bound.
4331         (unroll_loop_constant_iterations): Likewise.
4332         (unroll_loop_runtime_iterations): Likewise.
4333         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
4334         * lto-streamer-out.c (output_cfg): Likewise.
4335         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
4336         bounds.
4337         (canonicalize_loop_induction_variables): Dump likely upper bounds.
4338         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
4339         (likely_max_loop_iterations): New.
4340         (likely_max_loop_iterations_int): New.
4341         (likely_max_stmt_executions): New.
4342         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
4343         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
4344         likely_max_stmt_executions): Declare.
4345
4346 2016-05-27  Marek Polacek  <polacek@redhat.com>
4347
4348         PR middle-end/71308
4349         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
4350
4351 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4352
4353         * config/s390/s390.md (2x risbg splitters): Use
4354         reg_overlap_mentioned_p instead of rtx_equal_p.
4355
4356 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4357
4358         * combine.c (make_compound_operation): Take known zero bits into
4359         account when checking for possible zero_extend.
4360
4361 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4362
4363         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
4364         Use const_int_operand for operand 2 predicate.  Simplify expand code
4365         as a result.
4366
4367 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
4368
4369         PR middle-end/71279
4370         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
4371         into comparison.
4372
4373 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4374
4375         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
4376         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
4377         that returns CC_SESWPmode and CC_ZESWPmode.
4378         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
4379         and CC_SESWPmode.
4380         (aarch64_rtx_costs): Likewise.
4381
4382 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4383
4384         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
4385         for ISA 3.0 min/max support.
4386         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
4387         conditional move support.
4388         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
4389         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
4390         available.
4391         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
4392         conditional moves where the comparison type is different from move
4393         type.
4394         (fp_minmax): New code iterator for smin/smax.
4395         (minmax): New code attributes for min/max.
4396         (SMINMAX): Likewise.
4397         (smax<mode>3): Combine min, max insns into one insn using the
4398         fp_minmax code iterator.  Add support for ISA 3.0 min/max
4399         instructions that don't need -ffast-math.
4400         (s<minmax><mode>3): Likewise.
4401         (smax<mode>3_vsx): Likewise.
4402         (smin<mode>3): Likewise.
4403         (s<minmax><mode>3_vsx): Likewise.
4404         (smin<mode>3_vsx): Likewise.
4405         (pre-VSX min/max splitters): Likewise.
4406         (s<minmax><mode>3_fpr): Likewise.
4407         (movsfcc): Rewrite floating point conditional moves to combine
4408         SFmode/DFmode into a single insn.
4409         (mov<mode>cc): Likewise.
4410         (movdfcc): Likewise.
4411         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
4412         SFDF2 iterators to handle all combinations.
4413         (fseldfsf4): Likewise.
4414         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
4415         (fseldfdf4): Likewise.
4416         (fselsfdf4): Likewise.
4417         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
4418         comparison instructions that set a 0/-1 mask, and use it for
4419         floating point conditional move via XXSEL.
4420         (fpmask<mode>): Likewise.
4421         (xxsel<mode>): Likewise.
4422         * config/rs6000/predicates.md (min_max_operator): Delete, no
4423         longer used.
4424         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
4425         instructions that generate a 0/-1 mask for use with XXSEL.
4426         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
4427         say whether floating point min/max is available, either through
4428         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
4429         (TARGET_MINMAX_DF): Likewise.
4430
4431 2016-05-27  Alan Modra  <amodra@gmail.com>
4432
4433         PR rtl-optimization/71275
4434         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
4435         for update_equiv_regs and combine_and_move_insns.
4436
4437 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
4438
4439         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
4440         if_then_else or cond RTXes to calculate attribute value.
4441         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
4442         <attr "length_immediate>: Ditto.
4443         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
4444         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
4445         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
4446         <attr "type">: Ditto.
4447         <attr "prefix_data16">: Ditto.
4448         <attr "prefix_extra">: Ditto.
4449         <attr "length_immediate">: Ditto.
4450         <attr "prefix">: Ditto.
4451         (vec_set<mode>_0) <attr "isa">: Ditto.
4452         <attr "prefix_extra">: Ditto.
4453         <attr "length_immediate">: Ditto.
4454         <attr "prefix">: Ditto.
4455         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
4456         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
4457         (sse2_storelpd) <attr "prefix_data16">: Ditto.
4458         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
4459         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
4460         <attr "length_immediate">: Ditto.
4461         <attr "prefix">: Ditto.
4462         (sse2_movsd) <attr "length_immediate">: Ditto.
4463         <attr "prefix">: Ditto.
4464         (vec_concatv2df)  <attr "isa">: Ditto.
4465         <attr "prefix">: Ditto.
4466         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
4467         (*vec_extractv2di_1) <attr "isa">: Ditto.
4468         <attr "type">: Ditto.
4469         <attr "length_immediate">: Ditto.
4470         <attr "prefix_rex">: Ditto.
4471         <attr "prefix_extra">: Ditto.
4472         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
4473         <attr "prefix_extra">: Ditto.
4474         <attr "length_immediate">: Ditto.
4475         (vec_concatv2di) <attr "isa">: Ditto.
4476         <attr "prefix_extra">: Ditto.
4477         <attr "length_immediate">: Ditto.
4478         <attr "prefix">: Ditto.
4479
4480 2016-05-26  Martin Liska  <mliska@suse.cz>
4481
4482         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
4483         function.
4484         (operator+): Likewise.
4485         (operator-): Likewise.
4486         (comp_cost::operator+=): Likewise.
4487         (comp_cost::operator-=): Likewise.
4488         (comp_cost::operator/=): Likewise.
4489         (comp_cost::operator*=): Likewise.
4490         (operator<): Likewise.
4491         (operator==): Likewise.
4492         (operator<=): Likewise.
4493         (new_cost): Remove.
4494         (infinite_cost_p): Likewise.
4495         (add_costs): Likewise.
4496         (sub_costs): Likewise.
4497         (compare_costs): Likewise.
4498         (set_group_iv_cost): Use the newly introduced functions.
4499         (get_address_cost): Likewise.
4500         (get_shiftadd_cost): Likewise.
4501         (force_expr_to_var_cost): Likewise.
4502         (split_address_cost): Likewise.
4503         (ptr_difference_cost): Likewise.
4504         (difference_cost): Likewise.
4505         (get_computation_cost_at): Likewise.
4506         (determine_group_iv_cost_generic): Likewise.
4507         (determine_group_iv_cost_address): Likewise.
4508         (determine_group_iv_cost_cond): Likewise.
4509         (autoinc_possible_for_pair): Likewise.
4510         (determine_group_iv_costs): Likewise.
4511         (cheaper_cost_pair): Likewise.
4512         (iv_ca_recount_cost): Likewise.
4513         (iv_ca_set_no_cp): Likewise.
4514         (iv_ca_set_cp): Likewise.
4515         (iv_ca_cost): Likewise.
4516         (iv_ca_new): Likewise.
4517         (iv_ca_dump): Likewise.
4518         (iv_ca_narrow): Likewise.
4519         (iv_ca_prune): Likewise.
4520         (iv_ca_replace): Likewise.
4521         (try_add_cand_for): Likewise.
4522         (try_improve_iv_set): Likewise.
4523         (find_optimal_iv_set): Likewise.
4524
4525 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
4526
4527         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
4528         that internal functions will clobber all caller-saved registers.
4529
4530 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
4531
4532         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
4533         Return a better case_values_threshold when optimizing.
4534
4535 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
4536
4537         * config/aarch64/aarch64-simd.md (aarch64_combinez):
4538         Add ? to integer variant.
4539         (aarch64_combinez_be): Likewise.
4540
4541 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
4542
4543         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
4544         instead of x constraint.
4545         (vcvtps2ph256<mask_name>): Likewise.
4546
4547         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
4548         alternative.  Formatting fix.
4549
4550         * config/i386/sse.md
4551         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
4552         to ...
4553         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
4554         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
4555         maybe_evex prefix instead of vex.
4556         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
4557         EXT_REX_SSE_REG_P (op0) case in the splitter.
4558
4559 2016-05-25  Jeff Law  <law@redhat.com>
4560
4561         PR tree-optimization/71272
4562         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
4563         Update comments.  Add test for empty path.
4564
4565 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
4566
4567         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
4568         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
4569         special case builtin.
4570         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4571         code for ALTIVEC_BUILTIN_VEC_CMPNE.
4572         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4573         for __builtin_vec_cmpne.
4574
4575 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4576
4577         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
4578         redundant test and bail out if the type of the new operand is not
4579         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
4580
4581 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
4582
4583         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
4584         (x_ix86_target_flags_explicit): Remove.
4585         * config/i386/i386.c (ix86_function_specific_save): Do not copy
4586         x_ix86_target_flags_explicit.
4587         (ix86_function_specific_restore): Ditto.
4588
4589 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
4590             H.J. Lu  <hongjiu.lu@intel.com>
4591
4592         PR target/70738
4593         * common/config/i386/i386-common.c
4594         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
4595         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
4596         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
4597         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
4598         (-mgeneral-regs-only): Add new option.
4599         * config/i386/i386.c (ix86_option_override_internal): Don't enable
4600         x87 instructions if only general registers are allowed.
4601         (ix86_target_string): Add ix86_flags argument. Handle additional
4602         flags options through ix86_flags argument.  Update all callers.
4603         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
4604
4605 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4606
4607         PR rtl-optimization/66940
4608         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
4609         decrementing desired_val will not overflow before performing these
4610         operations.
4611
4612 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
4613
4614         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
4615         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
4616         * config/i386/i386.c (enum ix86_builtins): Add
4617         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
4618         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
4619         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
4620         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
4621         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
4622         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
4623         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
4624         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
4625         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
4626         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
4627         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
4628         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
4629         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
4630         __builtin_ia32_cvtps2dq512_mask.
4631         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
4632         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
4633         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
4634         * config/i386/sse.md
4635         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
4636         Rename to ...
4637         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
4638         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
4639         to ...
4640         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
4641         (avx512f_vec_pack_sfix_v8df): New define_expand.
4642         (avx512f_roundpd512): Rename to ...
4643         (avx512f_round<castmode>512): ... this.  Change iterator.
4644         (avx512f_roundps512_sfix): New define_expand.
4645         (round<mode>2_sfix): Change iterator.
4646
4647 2016-05-25  Nick Clifton  <nickc@redhat.com>
4648
4649         * config/msp430/msp430.c (msp430_attr): Produce an error if a
4650         static interrupt handler is detected.
4651         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
4652         default linker script.
4653         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
4654         the low part of a symbolic pointer.
4655
4656 2016-05-25  Richard Biener  <rguenther@suse.de>
4657
4658         PR tree-optimization/71261
4659         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
4660         interesting stmt instead of immediate uses when looking
4661         for the use operand to replace.
4662
4663 2016-05-25  Martin Liska  <mliska@suse.cz>
4664
4665         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
4666
4667 2016-05-25  Richard Biener  <rguenther@suse.de>
4668
4669         PR tree-optimization/71264
4670         * tree-vect-stmts.c (vect_init_vector): Properly deal with
4671         vector type val.
4672
4673 2016-05-25  Martin Liska  <mliska@suse.cz>
4674
4675         PR tree-optimization/71239
4676         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
4677         if DECL_SIZE is NULL.
4678
4679 2016-05-25  Richard Biener  <rguenther@suse.de>
4680
4681         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
4682         * tree-if-conv.c (pass_data_if_conversion): Use it.
4683
4684 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4685
4686         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
4687         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
4688         * varpool.c (varpool_node::get_availability): Likewise.
4689
4690 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4691
4692         * config/rs6000/altivec.md (VNEG iterator): New iterator for
4693         VNEGW/VNEGD instructions.
4694         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
4695         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
4696         support for ISA 3.0 VNEGW/VNEGD instructions.
4697
4698 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
4699
4700         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
4701         pointers inside OACC_DATA regions.
4702         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
4703         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
4704         (gimplify_adjust_omp_clauses): Fix typo in comment.
4705
4706 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4707
4708         * config/rs6000/altivec.md (VParity): New mode iterator for vector
4709         parity built-in functions.
4710         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
4711         zeros.
4712         (p9v_parity<mode>2): Likewise.
4713         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
4714         parity.
4715         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
4716         (parity<mode>2): ISA 3.0 expander for vector parity.
4717         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
4718         power9 built-ins.
4719         (BU_P9_64BIT_MISC_0): Likewise.
4720         (BU_P9_MISC_0): Likewise.
4721         (BU_P9V_AV_1): Likewise.
4722         (BU_P9V_AV_2): Likewise.
4723         (BU_P9V_AV_3): Likewise.
4724         (BU_P9V_AV_P): Likewise.
4725         (BU_P9V_VSX_1): Likewise.
4726         (BU_P9V_OVERLOAD_1): Likewise.
4727         (BU_P9V_OVERLOAD_2): Likewise.
4728         (BU_P9V_OVERLOAD_3): Likewise.
4729         (VCTZB): Add vector count trailing zeros support.
4730         (VCTZH): Likewise.
4731         (VCTZW): Likewise.
4732         (VCTZD): Likewise.
4733         (VPRTYBD): Add vector parity support.
4734         (VPRTYBQ): Likewise.
4735         (VPRTYBW): Likewise.
4736         (VCTZ): Add overloaded vector count trailing zeros support.
4737         (VPRTYB): Add overloaded vector parity support.
4738         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4739         overloaded vector count trailing zeros and parity instructions.
4740         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
4741         vector parity support.
4742         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
4743         trailing zeros support.
4744         (vec_cntlz): Likewise.
4745         (vec_vctzb): Likewise.
4746         (vec_vctzd): Likewise.
4747         (vec_vctzh): Likewise.
4748         (vec_vctzw): Likewise.
4749         (vec_vprtyb): Add ISA 3.0 vector parity support.
4750         (vec_vprtybd): Likewise.
4751         (vec_vprtybw): Likewise.
4752         (vec_vprtybq): Likewise.
4753         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
4754         the ISA 3.0 vector count trailing zeros and vector parity built-in
4755         functions.
4756
4757 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4758
4759         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
4760         when there is stmt_to_insert.
4761
4762 2016-05-24  Martin Sebor  <msebor@redhat.com>
4763
4764         PR c++/71147
4765         * tree.h (complete_or_array_type_p): New inline function.
4766
4767 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4768
4769         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
4770         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
4771         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
4772
4773         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
4774         Limit 1st alternative to noavx isa, split 2nd alternative into one
4775         noavx and one avx alternative, use *x and Bm in the former and
4776         x and m in the latter.
4777
4778         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
4779         of sse4 for the first alternative, drop %v from the template
4780         and d operand modifier.  Split second alternative into one sse4_noavx
4781         and one avx alternative, use *x instead of *v in the former and v
4782         instead of *v in the latter.
4783         (*sse4_1_extractps): Use noavx isa instead of * for the first
4784         alternative, drop %v from the template.  Split second alternative into
4785         one noavx and one avx alternative, use *x instead of *v in the
4786         former and v instead of *v in the latter.
4787         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
4788         with noavx and the last one with avx.
4789         (sse4_1_phminposuw): Guard first alternative with noavx isa,
4790         split the second one into one noavx and one avx alternative,
4791         use *x and Bm in the former and x and m in the latter one.
4792         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
4793         alternatives.
4794
4795         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
4796         first two alternatives to noavx, use *x instead of *v in the second
4797         one, add avx alternative without *.
4798         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
4799         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
4800         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
4801
4802 2016-05-24  Jeff Law  <law@redhat.com>
4803
4804         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
4805         New function, extracted from...
4806         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
4807         Allow simple copies and constant initializations in the SSA chain.
4808
4809 2016-05-24  Marek Polacek  <polacek@redhat.com>
4810
4811         PR c/71249
4812         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
4813         scope.
4814
4815 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4816
4817         PR c++/71257
4818         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
4819         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
4820         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
4821         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
4822         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
4823
4824 2016-05-24  Richard Biener  <rguenther@suse.de>
4825
4826         PR tree-optimization/71240
4827         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
4828         has integral type.
4829
4830 2016-05-24  Richard Biener  <rguenther@suse.de>
4831
4832         PR tree-optimization/71230
4833         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
4834
4835 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4836
4837         * tree-vectorizer.h (vectorizable_comparison): Delete.
4838         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
4839         PURE_SLP_STMT check.
4840         * tree-vect-stmts.c (vectorizable_call): Likewise.
4841         (vectorizable_simd_clone_call): Likewise.
4842         (vectorizable_conversion): Likewise.
4843         (vectorizable_assignment): Likewise.
4844         (vectorizable_shift): Likewise.
4845         (vectorizable_operation): Likewise.
4846         (vectorizable_load): Likewise.
4847         (vectorizable_condition): Likewise.
4848         (vectorizable_store): Likewise.  Assert that we don't have
4849         hybrid SLP.
4850         (vectorizable_comparison): Make static.  Remove redundant
4851         PURE_SLP_STMT check.
4852         (vect_transform_stmt): Assert that we always have an slp_node
4853         if PURE_SLP_STMT.
4854
4855 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4856
4857         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
4858         operands[2] against 1 with comparison against CONST1_RTX.
4859         (<shift>di3_neon): Likewise.
4860         * config/arm/predicates.md (const0_operand): Replace with comparison
4861         against CONST0_RTX.
4862
4863 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4864
4865         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
4866         operands[2] against 1 with comparison against CONST1_RTX.
4867         (ashrdi3): Likewise.
4868         (lshrdi3): Likewise.
4869         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
4870         UINTVAL.
4871         (ashrsi3): Likewise.
4872         (lshrsi3): Likewise.
4873         (rotrsi3): Likewise.
4874         (define_split above *compareqi_eq0): Likewise.
4875         (define_split above "prologue"): Likewise.
4876         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
4877         * config/arm/predicates.md (shift_operator): Likewise.
4878         (shift_nomul_operator): Likewise.
4879         (sat_shift_operator): Likewise.
4880         (thumb1_cmp_operand): Likewise.
4881         (const_neon_scalar_shift_amount_operand): Replace manual range
4882         check with IN_RANGE.
4883         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
4884         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
4885
4886 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4887
4888         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
4889         with HOST_WIDE_INT_1.
4890         (insv): Likewise.
4891         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
4892         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
4893         (arm_canonicalize_comparison): Likewise.
4894         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
4895         HOST_WIDE_INT_1.
4896         (thumb1_size_rtx_costs): Likewise.
4897         (vfp_const_double_index): Replace cast of 1 to unsigned
4898         HOST_WIDE_INT with HOST_WIDE_INT_1U.
4899         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
4900         HOST_WIDE_INT_1.
4901         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
4902         HOST_WIDE_INT with HOST_WIDE_INT_1U.
4903         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
4904         HOST_WIDE_INT with HOST_WIDE_INT_1.
4905
4906 2016-05-24  Marek Polacek  <polacek@redhat.com>
4907
4908         * tree-cfg.h (should_remove_lhs_p): New predicate.
4909         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
4910         * gimplify.c (gimplify_modify_expr): Likewise.
4911         * tree-cfg.c (verify_gimple_call): Likewise.
4912         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
4913         * gimple-fold.c: Include "tree-cfg.h".
4914         (gimple_fold_call): Use should_remove_lhs_p.
4915
4916 2016-05-24  Richard Biener  <rguenther@suse.de>
4917
4918         PR tree-optimization/71253
4919         * cfganal.h (control_dependences): Make robust against edge
4920         and BB removal.
4921         (control_dependences::control_dependences): Remove edge_list argument.
4922         (control_dependences::get_edge): Remove.
4923         (control_dependences::get_edge_src): Add.
4924         (control_dependences::get_edge_dest): Likewise.
4925         (control_dependences::m_el): Make a vector of edge src/dest index.
4926         * cfganal.c (control_dependences::find_control_dependence): Adjust.
4927         (control_dependences::control_dependences): Likewise.
4928         (control_dependences::~control_dependence): Likewise.
4929         (control_dependences::get_edge): Remove.
4930         (control_dependences::get_edge_src): Add.
4931         (control_dependences::get_edge_dest): Likewise.
4932         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
4933         get_edge_src.
4934         (perform_tree_ssa_dce): Adjust.
4935         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
4936         get_edge_src.
4937         (pass_loop_distribution::execute): Adjust.  Do loop destroying
4938         conditional on changed.
4939
4940 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4941
4942         PR target/69857
4943         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
4944         return.  Reindent transformation comment and mention the ARM state
4945         behavior.
4946
4947 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4948
4949         PR middle-end/71252
4950         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
4951         after build_and_add_sum creates new use stmt.
4952
4953 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4954
4955         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
4956         load_lanes/grouped_load classification comes first.  Don't check
4957         whether the vectorization factor is a multiple of the group size
4958         for load_lanes.
4959
4960 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4961
4962         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
4963         GROUP_GAP for single-element interleaving.
4964         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
4965         variable.
4966
4967 2016-05-24  Richard Biener  <rguenther@suse.de>
4968
4969         PR middle-end/70434
4970         PR c/69504
4971         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
4972         bases which are accessed with non-invariant indices.
4973         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
4974         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
4975
4976 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4977
4978         PR middle-end/71170
4979         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
4980         (add_to_ops_vec): Add stmt_to_insert.
4981         (add_repeat_to_ops_vec): Init stmt_to_insert.
4982         (insert_stmt_before_use): New.
4983         (transform_add_to_multiply): Remove mult_stmt insertion and add it
4984         to ops vector.
4985         (get_ops): Init stmt_to_insert.
4986         (maybe_optimize_range_tests): Likewise.
4987         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
4988         (rewrite_expr_tree_parallel): Likewise.
4989         (reassociate_bb): Likewise.
4990
4991 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4992
4993         PR target/71201
4994         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
4995         ISA 3.0 xxperm fusion alternative.
4996         (altivec_vperm_v8hiv16qi): Likewise.
4997         (altivec_vperm_<mode>_uns_internal): Likewise.
4998         (vperm_v8hiv4si): Likewise.
4999         (vperm_v16qiv8hi): Likewise.
5000
5001 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5002             Kelvin Nilsen  <kelvin@gcc.gnu.org>
5003
5004         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
5005         vpermr/xxpermr on ISA 3.0.
5006         (altivec_expand_vec_perm_le): Likewise.
5007         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
5008         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
5009         ISA 3.0.
5010
5011 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
5012
5013         * config/i386/i386.h (IS_STACK_MODE): Enable for
5014         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
5015         SSE_FLOAT_MODE_P macros.
5016         * config/i386/i386.c (ix86_preferred_reload_class): Use
5017         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
5018         Cleanup regclass processing for CONST_DOUBLE_P.
5019         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
5020         (ix86_rtx_costs): Remove redundant TARGET_80387 check
5021         with IS_STACK_MODE macro.
5022         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
5023         with TARGET_SSE2.
5024         (*movdf_internal): Use IS_STACK_MODE macro.
5025         (*movsf_internal): Ditto.
5026
5027 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
5028
5029         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
5030         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
5031
5032 2016-05-23  Jeff Law  <law@redhat.com>
5033
5034         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
5035         extracted from ...
5036         (fsm_find_control_statement_thread_paths): Call it.
5037
5038 2016-05-23  Martin Jambor  <mjambor@suse.cz>
5039
5040         PR ipa/71234
5041         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
5042         from_global_constant if t is not NULL.
5043
5044 2016-05-23  Marek Polacek  <polacek@redhat.com>
5045
5046         PR c/49859
5047         * common.opt (Wswitch-unreachable): New option.
5048         * doc/invoke.texi: Document -Wswitch-unreachable.
5049         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
5050         warning.
5051
5052 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
5053
5054         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
5055         TMR_INDEX is non-NULL.
5056
5057 2016-05-23  Richard Biener  <rguenther@suse.de>
5058
5059         PR tree-optimization/71230
5060         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
5061         (try_special_add_to_ops): ... here.  Always test for single-use.
5062
5063 2016-05-23  Martin Jambor  <mjambor@suse.cz>
5064
5065         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
5066         default block if a PHI node in the original one would be resized.
5067
5068 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5069
5070         PR tree-optimization/58135
5071         * tree-vect-slp.c: When group size is not multiple
5072         of vector size, allow splitting of store group at
5073         vector boundary.
5074
5075 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
5076
5077         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
5078
5079 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
5080
5081         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
5082         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
5083         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
5084         of 64x2.
5085
5086         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
5087         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
5088         v constraint instead of x and vinserti32x4 insn.
5089
5090         * config/i386/sse.md (i128vldq): New mode iterator.
5091         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
5092         avx512dq and avx512vl alternatives.
5093
5094         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
5095         constraint, use maybe_evex prefix instead of vex.
5096         (vec_dupv4sf): Use v constraint instead of x for output
5097         operand except for noavx alternative, use Yv constraint
5098         instead of x for input.  Use maybe_evex prefix instead of vex.
5099         (*vec_dupv4si): Likewise.
5100         (*vec_dupv2di): Likewise.
5101
5102 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
5103
5104         PR middle-end/40921
5105         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
5106         (linearize_expr_tree): Call try_special_add_to_ops.
5107         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
5108
5109 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5110
5111         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
5112         to computed stack_usage.
5113
5114 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
5115
5116         PR target/71103
5117         * config/avr/avr.md (define_expand "mov<mode>"): If the source
5118         operand is subreg (symbol_ref) then move the symbol ref to register.
5119
5120 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
5121
5122         * tree.c (array_at_struct_end_p): Look through MEM_REF.
5123
5124 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
5125
5126         PR middle-end/71179
5127         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
5128         VECTOR type.
5129
5130 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
5131
5132         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
5133         ranges by calling get_single_symbol and tidy up.  Look more closely
5134         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
5135
5136 2016-05-20  Jeff Law  <law@redhat.com>
5137
5138         * bitmap.c (bitmap_find_bit): Remove useless test.
5139
5140 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
5141
5142         * function.c (thread_prologue_and_epilogue_insns): Commit the
5143         insertion of the epilogue.
5144
5145 2016-05-20  Martin Jambor  <mjambor@suse.cz>
5146
5147         PR tree-optimization/70884
5148         * tree-sra.c (initialize_constant_pool_replacements): Do not check
5149         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
5150         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
5151         of constant pool data as a reason for scalarization.
5152
5153 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
5154
5155         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
5156         for naked functions.
5157         (thumb1_expand_prologue): Likewise.
5158
5159 2016-05-20  Nathan Sidwell  <nathan@acm.org>
5160
5161         * config/nvptx/nptx.c (nvptx_option_override): Only set
5162         flag_toplevel_reorder, if not explicitly specified.  Set
5163         flag_no_common, unless explicitly specified.
5164
5165 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5166
5167         * calls.c (can_implement_as_sibling_call_p): Mark param
5168         reg_parm_stack_space with ATTRIBUTE_UNUSED.
5169
5170 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
5171
5172         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
5173         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
5174         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
5175         constants.
5176         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
5177         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
5178         and CASE_CONST_ANY.
5179
5180 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
5181
5182         * config/nvptx/nvptx.md (sincossf3): New pattern.
5183
5184 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5185
5186         * calls.c (maybe_complain_about_tail_call): New function.
5187         (initialize_argument_information): Call
5188         maybe_complain_about_tail_call when clearing *may_tailcall.
5189         (can_implement_as_sibling_call_p): Call
5190         maybe_complain_about_tail_call when returning false.
5191         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
5192         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
5193         if tail-call optimization fails.
5194         * cfgexpand.c (expand_call_stmt): Initialize
5195         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
5196         * gimple-pretty-print.c (dump_gimple_call): Dump
5197         gimple_call_must_tail_p.
5198         * gimple.c (gimple_build_call_from_tree): Call
5199         gimple_call_set_must_tail with the value of
5200         CALL_EXPR_MUST_TAIL_CALL.
5201         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
5202         (gimple_call_set_must_tail): New function.
5203         (gimple_call_must_tail_p): New function.
5204         * print-tree.c (print_node): Update printing of TREE_STATIC
5205         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
5206         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
5207         trailing comment listing applicable flags.
5208         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
5209
5210 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5211
5212         * calls.c (expand_call): Move "Rest of purposes for tail call
5213         optimizations to fail" to...
5214         (can_implement_as_sibling_call_p): ...this new function, and
5215         split into multiple "if" statements.
5216
5217 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5218
5219         * cfgloop.h (expected_loop_iterations_unbounded,
5220         expected_loop_iterations): Unconstify.
5221         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
5222         profile with known upper bound; return 3 when profile is absent.
5223         (expected_loop_iterations): Update.
5224
5225 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5226
5227         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
5228         and get_max_loop_iterations_int.
5229
5230 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5231
5232         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
5233         realistic upper bounds here.
5234
5235 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
5236
5237         PR c++/71210
5238         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
5239         calls if the LHS is variable length or has addressable type.
5240         If targets[0]->decl is a noreturn call with void return type and
5241         zero arguments, adjust fntype and remove lhs in that case.
5242
5243 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
5244
5245         PR tree-optimization/71079
5246         PR tree-optimization/71206
5247         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
5248
5249 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5250
5251         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
5252         (get_vec_alignment_for_array_decl): Likewise.
5253         (get_vec_alignment_for_record_decl): Likewise.
5254         (increase_alignment::execute): Move code to find alignment to
5255         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
5256         (type_align_map): New hash_map.
5257
5258 2016-05-20  Richard Guenther  <rguenther@suse.de>
5259
5260         PR tree-optimization/29756
5261         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
5262         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
5263         * fold-const.c (operand_equal_p): Likewise.
5264         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
5265         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
5266         * tree-inline.c (estimate_operator_cost): Likewise.
5267         * tree-pretty-print.c (dump_generic_node): Likewise.
5268         * tree-ssa-operands.c (get_expr_operands): Likewise.
5269         * cfgexpand.c (expand_debug_expr): Likewise.
5270         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5271         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
5272         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
5273         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
5274         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
5275         (execute_update_addresses_taken): Do it.
5276
5277 2016-05-20  Richard Biener  <rguenther@suse.de>
5278
5279         PR tree-optimization/71185
5280         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
5281         register operations.
5282
5283 2016-05-20  Richard Biener  <rguenther@suse.de>
5284
5285         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
5286         gimple_seq_add_seq_without_update.
5287         (release_bb_predicate): Assert we have no operands to free.
5288         (if_convertible_loop_p_1): Calculate post dominators later.
5289         Do not free BB predicates here.
5290         (combine_blocks): Do not recompute BB predicates.
5291         (version_loop_for_if_conversion): Save BB predicates around
5292         loop versioning.
5293
5294 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
5295
5296         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
5297         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
5298         code.  Ignore sibcalls on EDGE_IGNORE edges.
5299         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
5300         on edges for sibcalls that run without prologue.  The rest of the
5301         function is combined from...
5302         (fix_fake_fallthrough_edge): ... this, and ...
5303         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
5304         function argument, make it a local variable.
5305
5306 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
5307
5308         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
5309         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
5310         for 32-bit mode and SEH for 64-bit.
5311         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
5312         TARGET_64BIT_DEFAULT.
5313
5314 2016-05-19  Ryan Burn  <contact@rnburn.com>
5315
5316         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
5317         * gengtype.c (open_base_files): Add cilk.h to ifiles.
5318
5319 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
5320
5321         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
5322         force pending loads from memory.
5323
5324 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5325
5326         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
5327         (UNSPEC_DARN_32): New unspec constant.
5328         (UNSPEC_DARN_RAW): New unspec constant.
5329         (darn_32): New instruction.
5330         (darn_raw): New instruction.
5331         (darn): New instruction.
5332         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
5333         support and documentation for this macro.
5334         (BU_P9_MISC_1): New macro definition.
5335         (BU_P9_64BIT_MISC_0): New macro definition.
5336         (BU_P9_MISC_0): New macro definition.
5337         (darn_32): New builtin definition.
5338         (darn_raw): New builtin definition.
5339         (darn): New builtin definition.
5340         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
5341         RS6000_BUILTIN_0 directives to surround each occurrence of
5342         #include "rs6000-builtin.def".
5343         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
5344         RS6000_BTM_64BIT flags to the returned mask, depending on
5345         configuration.
5346         (def_builtin): Correct an error in the assignments made to the
5347         debugging variable attr_string.
5348         (rs6000_expand_builtin): Add support for no-operand built-in
5349         functions.
5350         (builtin_function_type): Remove fatal_error assertion that is no
5351         longer valid.
5352         (rs6000_common_init_builtins): Add support for no-operand built-in
5353         functions.
5354         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
5355         definition.
5356         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
5357         definition.
5358         (RS6000_BTM_64BIT): New macro definition.
5359         * doc/extend.texi: Document __builtin_darn (void),
5360         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
5361         functions.
5362
5363 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
5364
5365         * tree-vect-loop.c (vect_analyze_loop_2): Use also
5366         max_loop_iterations_int.
5367
5368 2016-05-19  Marek Polacek  <polacek@redhat.com>
5369
5370         PR tree-optimization/71031
5371         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
5372         condition and adjust the code a bit.
5373
5374 2016-05-19  Martin Liska  <mliska@suse.cz>
5375
5376         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
5377         auto_vec instead of vec.
5378
5379 2016-05-19  Martin Liska  <mliska@suse.cz>
5380
5381         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
5382
5383 2016-05-19  Martin Liska  <mliska@suse.cz>
5384
5385         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
5386
5387 2016-05-19  Martin Liska  <mliska@suse.cz>
5388
5389         * ipa-pure-const.c (set_function_state): Remove an existing
5390         funct_state.
5391         (remove_node_data): Do not free it as it's released
5392         in set_function_state.
5393
5394 2016-05-19  Martin Liska  <mliska@suse.cz>
5395
5396         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
5397         bitmap.
5398
5399 2016-05-19  Martin Liska  <mliska@suse.cz>
5400
5401         * omp-simd-clone.c (simd_clone_adjust): Release vector.
5402
5403 2016-05-19  Martin Liska  <mliska@suse.cz>
5404
5405         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
5406         an auto_vec instead of re-creating it.
5407
5408 2016-05-19  Martin Liska  <mliska@suse.cz>
5409
5410         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
5411         auto_vec instead of vec.
5412
5413 2016-05-19  Martin Liska  <mliska@suse.cz>
5414
5415         * lto-section-in.c (lto_get_section_data): Call
5416         lto_check_version with additional argument.
5417         * lto-streamer.c (lto_check_version): Add new argument.
5418         * lto-streamer.h (lto_check_version): Likewise.
5419
5420 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5421
5422         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
5423         Don't add cost of inner memory when handling sign-extended loads.
5424
5425 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
5426
5427         PR rtl-optimization/71148
5428         * cse.c (cse_main): Free dominance info.
5429         (rest_of_handle_cse): Don't free dominance info.
5430         (rest_of_handle_cse2): Likewise.
5431         (rest_of_handle_cse_after_global_opts): Likewise.
5432
5433 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5434
5435         PR target/71056
5436         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
5437         NULL_TREE early if NEON is not available.  Remove now redundant check
5438         in ARM_CHECK_BUILTIN_MODE.
5439
5440 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
5441
5442         PR sanitizer/64354
5443         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
5444         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
5445         * doc/cpp.texi: Document new macros.
5446
5447 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
5448
5449         PR tree-optimization/69848
5450         * tree-vect-loop.c (vectorizable_reduction): Don't factor
5451         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
5452
5453 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
5454
5455         * function.c (thread_prologue_and_epilogue_insn): Move the
5456         "goto epilogue_done" one block later.
5457
5458 2016-05-19  Richard Biener  <rguenther@suse.de>
5459
5460         PR tree-optimization/70729
5461         * passes.def: Move LIM pass before PRE.  Remove no longer
5462         required copyprop and move first DCE out of the loop pipeline.
5463
5464 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
5465
5466         PR driver/69265
5467         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
5468         (OBJS-libcommon-target): ...here.
5469         * opts-common.c: Include spellcheck.h.
5470         (cmdline_handle_error): Build a vec of valid options and use it
5471         to suggest provide hints for misspelled arguments.
5472
5473 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
5474
5475         PR c++/71100
5476         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
5477         lhs if it has TREE_ADDRESSABLE type.
5478
5479 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
5480
5481         PR target/71145
5482         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
5483         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
5484
5485 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5486
5487         PR ipa/69708
5488         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
5489         input for NOP_EXPR pass-through functions.
5490         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
5491         aggregate global constant VAR_DECLs in constant jump functions.
5492
5493 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5494
5495         PR ipa/69708
5496         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
5497         from TREE_READONLY parameters.
5498
5499 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5500
5501         PR ipa/69708
5502         * cgraph.h (cgraph_indirect_call_info): New field
5503         guaranteed_unmodified.
5504         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
5505         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
5506         appropriate.
5507         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
5508         pass the parameter value to ipa_find_agg_cst_for_param.
5509         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
5510         guaranteed_unmodified, store AA results there instead of bailing out
5511         if present.
5512         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
5513         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
5514         (find_constructor_constant_at_offset): New function.
5515         (ipa_find_agg_cst_from_init): Likewise.
5516         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
5517         static initializers of contants, report back through a new paameter
5518         from_global_constant if that was the case.
5519         (try_make_edge_direct_simple_call): Also pass parameter value to
5520         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
5521         appropriate.
5522         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
5523         (ipa_read_indirect_edge_info): Likewise.
5524         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
5525         (ipa_load_from_parm_agg): Likewise.
5526
5527 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
5528
5529         PR rtl-optimization/71150
5530         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
5531         check.
5532
5533 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5534
5535         PR target/70915
5536         * config/rs6000/constraints.md (wE constraint): New constraint
5537         for a vector constant that can be loaded with XXSPLTIB.
5538         (wM constraint): New constraint for a vector constant of a 1's.
5539         (wS constraint): New constraint for a vector constant that can be
5540         loaded with XXSPLTIB and a vector sign extend instruction.
5541         * config/rs6000/predicates.md (xxspltib_constant_split): New
5542         predicates for wE/wS constraints.
5543         (xxspltib_constant_nosplit): Likewise.
5544         (easy_vector_constant): Add support for constants that can be
5545         loaded via XXSPLTIB.
5546         (all_ones_constant): New predicate for vector constant with all
5547         1's set.
5548         (splat_input_operand): Add support for ISA 3.0 word splat operations.
5549         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
5550         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
5551         instruction and possibly with a sign extension.
5552         (output_vec_const_move): Add support for XXSPLTIB. If we are
5553         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
5554         instead of XXLXOR/XXLORC.
5555         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
5556         operations.
5557         (rs6000_legitimize_reload_address): Likewise.
5558         (rs6000_output_move_128bit): Use output_vec_const_move to emit
5559         constants.
5560         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
5561         combine VSX_M and VSX_M2 into one iterator.
5562         (VSX_M2): Likewise.
5563         (VSINT_84): New iterators for loading constants with XXSPLTIB.
5564         (VSINT_842): Likewise.
5565         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
5566         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
5567         XXSPLTIB instruction.
5568         (xxspltib_<mode>_nosplit): Likewise.
5569         (xxspltib_<mode>_split): New insn to load up constants with
5570         XXSPLTIB and a sign extend instruction.
5571         (vsx_mov<mode>): Replace single move that handled all vector types
5572         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
5573         moves (when -mvsx-timode is in effect) into the main vector
5574         moves.  Eliminate separate moves for <VSr> <VSa>, where the
5575         preferred register class (<VSr>) is listed first, and the
5576         secondary register class (<VSa>) is listed second with a '?' to
5577         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
5578         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
5579         that if the register was involved in a slow operation, the
5580         clear/set operation does not wait for the slow operation to
5581         finish.  Adjust the length attributes for 32-bit mode.  Use
5582         rs6000_output_move_128bit and drop the use of the string
5583         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
5584         spacing so that the alternatives and attributes don't generate
5585         long lines, and put things in columns, so that it is easier to
5586         match up the operands and attributes with the insn alternatives.
5587         (vsx_mov<mode>_64bit): Likewise.
5588         (vsx_mov<mode>_32bit): Likewise.
5589         (vsx_movti_64bit): Fold movti into normal vector moves.
5590         (vsx_movti_32bit): Likewise.
5591         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
5592         splat instructions.
5593         (vsx_splat_v4si_internal): Likewise.
5594         (vsx_splat_v4sf_internal): Likewise.
5595         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
5596         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
5597         extend vector elements.
5598         (vsx_sign_extend_hi_<mode>): Likewise.
5599         (vsx_sign_extend_si_v2di): Likewise.
5600         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
5601         declaration.
5602         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
5603         constraints.  Add trailing period to wL documentation.
5604
5605 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
5606
5607         PR middle-end/71020
5608         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
5609         * tree-dfa.c (replace_abnormal_ssa_names): New function.
5610         * tree-call-cdce.c: Include tree-dfa.h.
5611         (can_guard_call_p): New function, extracted from...
5612         (can_use_internal_fn): ...here.
5613         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
5614         and return void.
5615         (shrink_wrap_one_built_in_call): Likewise.
5616         (use_internal_fn): Likewise.
5617         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
5618         and return void.  Call replace_abnormal_ssa_names.
5619         (pass_call_cdce::execute): Check can_guard_call_p during the
5620         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
5621         will always change something.
5622
5623 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5624
5625         PR ipa/70646
5626         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
5627         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
5628
5629 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5630
5631         PR ipa/70646
5632         * ipa-inline.h (condition): New field size.
5633         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
5634         for comaprison and store it into the new condition.
5635         (evaluate_conditions_for_known_args): Use condition size to check
5636         access sizes for all but CHANGED conditions.
5637         (unmodified_parm_1): New parameter size_p, store access size into it.
5638         (unmodified_parm): Likewise.
5639         (unmodified_parm_or_parm_agg_item): Likewise.
5640         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
5641         (set_cond_stmt_execution_predicate): Extract access sizes and store
5642         them to conditions.
5643         (set_switch_stmt_execution_predicate): Likewise.
5644         (will_be_nonconstant_expr_predicate): Likewise.
5645         (will_be_nonconstant_predicate): Likewise.
5646         (inline_read_section): Stream condition size.
5647         (inline_write_summary): Likewise.
5648
5649 2016-05-18  Richard Biener  <rguenther@suse.de>
5650
5651         * tree-ssa-loop-im.c (determine_max_movement): Properly add
5652         condition cost to PHI cost instead of total_cost.
5653
5654 2016-05-18  Martin Liska  <mliska@suse.cz>
5655
5656         PR fortran/70856
5657         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
5658         merged variables.
5659
5660 2016-05-18  Richard Biener  <rguenther@suse.de>
5661
5662         * lto-streamer.h (LTO_major_version): Bump to 6.
5663
5664 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
5665
5666         * function.c (make_split_prologue_seq, make_prologue_seq,
5667         make_epilogue_seq): New functions, factored out from...
5668         (thread_prologue_and_epilogue_insns): Here.
5669
5670 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
5671
5672         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5673         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
5674         of before.  Add a comment.
5675
5676 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
5677
5678         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
5679         expression pointer, not pointer to the pointer.
5680
5681 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
5682
5683         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
5684         (avx2_pbroadcast<mode>): Add another alternative with v instead
5685         of x constraints in it, using <pbroadcast_evex_isa> isa.
5686         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
5687
5688         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
5689         constraint x instead of v in second alternative, add avx512bw
5690         alternative.
5691
5692         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
5693         constraint x instead of v in second alternative, add avx512bw
5694         alternative.
5695
5696         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
5697         constraint x instead of v in second alternative, add avx512bw
5698         alternative.
5699
5700         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
5701         avx512bw alternative.
5702
5703 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5704
5705         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
5706         array to 128 chars.
5707         (define_insn "*andnottf3"): Ditto.
5708         (define_insn "*<code><mode>3"/any_logic): Ditto.
5709         (define_insn "*<code>tf3"/any_logic): Ditto.
5710         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
5711         operand to block AVX-512VL insn variant emit when it is not enabled.
5712
5713 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5714
5715         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
5716         constraint fot SF mode.
5717
5718 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
5719             Kirill Yukhin  <kirill.yukhin@intel.com>
5720
5721         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
5722         modifiers.
5723         (define_insn "rsqrt14<mode>"): Ditto.
5724         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
5725         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
5726         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
5727         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
5728         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
5729         Ditto.
5730         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
5731         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
5732         * config/i386/i386.c (ix86_print_operand): Expand check for size
5733         override codes for Intel syntax.
5734
5735 2016-05-18  Richard Biener  <rguenther@suse.de>
5736
5737         PR tree-optimization/71168
5738         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
5739         initialization earlier.
5740
5741 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
5742
5743         * config/aarch64/aarch64-simd.md
5744         (aarch64_reduc_plus_internal<mode>): Rename to...
5745         (reduc_plus_scal): ...This, and remove previous implementation.
5746
5747 2016-05-18  Richard Biener  <rguenther@suse.de>
5748
5749         * passes.def: Put late dse and cd_dce in canonical order.
5750
5751 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
5752
5753         * ipa-inline-transform.c (preserve_function_body_p): Look for
5754         first non-thunk clone.
5755         (save_function_body): Save into first non-thunk.
5756         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
5757         up call stmt id.
5758         (lto_output_node): Inline thunks don't need body in every
5759         partition.
5760         * lto-streamer-in.c: Do not fixup thunk clones.
5761         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
5762         thunks.
5763         * tree-inline.c (copy_bb): Be prepared for target node to be new after
5764         folding suceeds.
5765
5766 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5767
5768         PR middle-end/63586
5769         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
5770         (reassociate_bb): Call transform_add_to_multiply.
5771
5772 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5773
5774         * config/aarch64/aarch64.c (all_extensions): Removed unused
5775         static variable.
5776
5777 2016-05-17  Nathan Sidwell  <nathan@acm.org>
5778
5779         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
5780         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
5781
5782 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
5783
5784         PR tree-optimization/54579
5785         PR middle-end/55299
5786         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
5787
5788 2016-05-17  Marek Polacek  <polacek@redhat.com>
5789
5790         PR ipa/71146
5791         * tree-inline.c (expand_call_inline): Call
5792         maybe_remove_unused_call_args.
5793
5794 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
5795
5796         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
5797         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
5798         * doc/md.texi (fmin@var{m}3): Likewise.
5799
5800 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5801
5802         * match.pd (X & C): New transformation.
5803
5804 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5805
5806         * match.pd (~X & Y): New transformation.
5807
5808 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5809
5810         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
5811         information for new SSA_NAME.
5812         (simplify_conversion_using_ranges): Get range through get_range_info
5813         instead of get_value_range.
5814
5815 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5816
5817         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
5818         Remove inline assembly.
5819         (vmvn_s16): Likewise.
5820         (vmvn_s32): Likewise.
5821         (vmvn_u8): Likewise.
5822         (vmvn_u16): Likewise.
5823         (vmvn_u32): Likewise.
5824         (vmvnq_s8): Likewise.
5825         (vmvnq_s16): Likewise.
5826         (vmvnq_s32): Likewise.
5827         (vmvnq_u8): Likewise.
5828         (vmvnq_u16): Likewise.
5829         (vmvnq_u32): Likewise.
5830         (vmvn_p8): Likewise.
5831         (vmvnq_p16): Likewise.
5832
5833 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5834
5835         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
5836         Use builtin.
5837         (vmul_n_s16): Likewise.
5838         (vmul_n_s32): Likewise.
5839         (vmul_n_u16): Likewise.
5840         (vmul_n_u32): Likewise.
5841         (vmulq_n_f32): Likewise.
5842         (vmulq_n_f64): Likewise.
5843         (vmulq_n_s16): Likewise.
5844         (vmulq_n_s32): Likewise.
5845         (vmulq_n_u16): Likewise.
5846         (vmulq_n_u32): Likewise.
5847
5848 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5849
5850         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
5851         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
5852
5853 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5854
5855         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
5856         to *aarch64_fma4_elt_from_dup<mode>.
5857         (*aarch64_fnma4_elt_to_128df): Rename to
5858         *aarch64_fnma4_elt_from_dup<mode>.
5859         * config/aarch64/arm_neon.h (vfma_n_f64): New.
5860         (vfms_n_f32): Likewise.
5861         (vfms_n_f64): Likewise.
5862         (vfmsq_n_f32): Likewise.
5863         (vfmsq_n_f64): Likewise.
5864
5865 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
5866
5867         * wide-int.h: Change fixed_wide_int_storage from class to struct.
5868
5869 2016-05-17  Richard Biener  <rguenther@suse.de>
5870
5871         PR tree-optimization/71132
5872         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
5873         Only add control dependences for blocks in the loop.
5874         (build_rdg): Adjust.
5875         (generate_code_for_partition): Return whether loop should
5876         be destroyed and delay that.
5877         (distribute_loop): Likewise.
5878         (pass_loop_distribution::execute): Record loops to be destroyed
5879         and perform delayed destroying of loops.
5880
5881 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5882
5883         PR target/70809
5884         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
5885
5886 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5887
5888         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
5889
5890 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
5891
5892         PR target/71114
5893         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
5894         insertion point for instructions generated by validize_mem.
5895
5896 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5897
5898         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
5899         in brackets.
5900
5901 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5902
5903         * config/aarch64/aarch64.c
5904         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
5905         rather than a macro.
5906
5907 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5908
5909         * doc/invoke.texi (AArch64 Options): Various updates.
5910
5911 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5912
5913         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
5914         into instrumentation thunks.
5915         * cif-code.def (CIF_CHKP): New.
5916
5917 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
5918
5919         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
5920
5921 2016-05-16  Martin Jambor  <mjambor@suse.cz>
5922
5923         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
5924         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
5925
5926 2016-05-16  Marek Polacek  <polacek@redhat.com>
5927
5928         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
5929         commentary.
5930
5931 2016-05-16  Martin Jambor  <mjambor@suse.cz>
5932
5933         PR hsa/70857
5934         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
5935         the outlined kernel function.
5936
5937 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
5938
5939         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
5940         (ISA_HAS_DLSA): Ditto.
5941
5942 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
5943
5944         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
5945
5946 2016-05-16  Nathan Sidwell  <nathan@acm.org>
5947
5948         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
5949         (nvptx_name_replacement): Restore.  Add comment.
5950         (write_fn_proto, write_fn_proto_from_insn,
5951         nvptx_output_call_insn): Restore
5952         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
5953
5954 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5955
5956         * config/aarch64/aarch64.md
5957         (add<mode>3_compareC_cconly_imm): Remove use of %w.
5958         (add<mode>3_compareC_imm): Likewise.
5959         (<optab>si3_uxtw): Split into register and immediate variants.
5960         (andsi3_compare0_uxtw): Likewise.
5961         (and<mode>3_compare0): Likewise.
5962         (and<mode>3nr_compare0): Likewise.
5963         (stack_protect_test_<mode>): Don't use %x for memory operands.
5964
5965 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
5966
5967         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
5968
5969 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5970
5971         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
5972         Split integer shifts into shift_reg and bfm.
5973         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
5974         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
5975         (ror<mode>3_insn): Likewise.
5976         (<optab>si3_insn_uxtw): Likewise.
5977         (<optab><mode>3_insn): Change to rotate_imm.
5978         (extr<mode>5_insn_alt): Likewise.
5979         (extrsi5_insn_uxtw): Likewise.
5980         (extrsi5_insn_uxtw_alt): Likewise.
5981
5982 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
5983
5984         * doc/tm.texi: Regenerate.
5985         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
5986         (TARGET_INVALID_RETURN_TYPE): Remove.
5987         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
5988         TARGET_INVALID_RETURN_TYPE.
5989         * target.def (invalid_parameter_type): Remove.
5990         (invalid_return_type): Remove.
5991
5992 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5993
5994         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
5995         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
5996         calls from thunk.
5997         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
5998         gimple body.
5999         (preserve_function_body_p): No need to preserve function body
6000         * cif-codes.def (CIF_THUNK): Remove.
6001         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
6002
6003 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6004
6005         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
6006
6007 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6008
6009         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
6010         for thunks.
6011
6012 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6013
6014         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
6015         (inline_small_functions): Do not look for function symbol when
6016         resetting caches.
6017
6018 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6019
6020         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
6021         of inline thunks
6022
6023 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
6024             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6025             Jiong Wang  <jiong.wang@arm.com>
6026
6027         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
6028         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
6029         Define __ARM_FP16_ARGS when appropriate.
6030         * config/arm/arm.c (arm_invalid_parameter_type): Remove
6031         declaration.
6032         (arm_invalid_return_type): Likewise.
6033         (TARGET_INVALID_PARAMETER_TYPE): Remove.
6034         (TARGET_INVALID_RETURN_TYPE): Remove.
6035         (aapcs_vfp_sub_candidate): Allow HFmode.
6036         (aapcs_vfp_allocate): Add comment.  Support HFmode.
6037         (aapcs_vfp_allocate_return_reg): Likewise.
6038         (struct aapcs_cp_arg_layout): Slightly reword comments for
6039         is_return_candidate and allocate_return_reg.
6040         (output_mov_vfp): Update assert.
6041         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
6042         condition.
6043         (arm_invalid_parameter_type): Remove.
6044         (amr_invalid_return_type): Remove.
6045         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
6046         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
6047         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
6048
6049 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
6050
6051         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
6052         * config/aarch64/arch64-protos.h
6053         (aarch64_legitimize_reload_address): Remove.
6054         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
6055         Remove.
6056
6057 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
6058
6059         * configure.ac: Add ACX_NONCANONICAL_HOST.
6060         * configure: Regenerate.
6061         * Makefile.in: Set host_noncanonical.
6062
6063 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
6064
6065         PR target/71097
6066         * config/i386/i386.md (*movtf_internal): Before register allocation,
6067         do not allow FP constants for CM_MEDIUM memory model, allow only
6068         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
6069         (*movxf_internal): Ditto.
6070         (*movdf_internal): Ditto.
6071         (*movsf_internal): Ditto.
6072
6073 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
6074
6075         PR rtl-optimization/67483
6076         * combine.c (make_compound_operation): Don't call extract_left_shift
6077         with negative shift amounts.
6078
6079 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
6080
6081         PR bootstrap/71071
6082         * fold-const.c (fold_checksum_tree): Allow modification
6083         of TYPE_ALIAS_SET during folding.
6084
6085         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
6086         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
6087         (ix86_split_to_parts): Likewise.  Fix up formatting.
6088
6089 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
6090
6091         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
6092         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
6093         printf format.
6094
6095 2016-05-13  Nathan Sidwell  <nathan@acm.org>
6096
6097         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
6098         (nvptx_name_replacement): Delete.
6099         (write_fn_proto, write_fn_proto_from_insn,
6100         nvptx_output_call_insn): Remove nvptx_name_replacement call.
6101         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
6102         * langhooks.c (add_builtin_funcction_common): Call
6103         targetm.mangle_decl_assembler_name.
6104
6105         * config/nvptx/nvptx.c (write_fn_proto): Handle
6106         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
6107
6108 2016-05-13  Martin Liska  <mliska@suse.cz>
6109
6110         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
6111         and PRIu64 in printf format.
6112
6113 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6114
6115         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
6116         comment.
6117
6118 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6119
6120         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
6121         Change --param max-completely-peeled-times to
6122         --param max-completely-peel-times in dump file printing.
6123
6124 2016-05-13  Richard Biener  <rguenther@suse.de>
6125
6126         PR tree-optimization/42587
6127         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
6128         (find_bswap_or_nop_1): Likewise.
6129         (bswap_replace): Likewise.
6130
6131 2016-05-13  Martin Liska  <mliska@suse.cz>
6132
6133         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
6134         Initialize a variable with default value.
6135
6136 2016-05-13  Martin Liska  <mliska@suse.cz>
6137
6138         * doc/invoke.texi: Enhance explanation of error recovery
6139         of sanitizers.
6140
6141 2016-05-13  Martin Liska  <mliska@suse.cz>
6142
6143         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
6144         (struct cost_pair): Change inv_expr_id (int) to inv_expr
6145         (iv_inv_expr_ent *).
6146         (struct iv_inv_expr_ent): Comment struct fields.
6147         (sort_iv_inv_expr_ent): New function.
6148         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
6149         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
6150         a hash_map between iv_inv_expr_ent and number of usages.
6151         (niter_for_exit): Fix coding style.
6152         (tree_ssa_iv_optimize_init): Use renamed variable.
6153         (determine_base_object): Fix coding style.
6154         (alloc_iv): Likewise.
6155         (find_interesting_uses_outside): Likewise.
6156         (add_candidate_1): Likewise.
6157         (add_standard_iv_candidates): Likewise.
6158         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
6159         (prepare_decl_rtl): Fix coding style.
6160         (get_address_cost): Likewise.
6161         (get_shiftadd_cost): Likewise.
6162         (force_expr_to_var_cost): Likewise.
6163         (compare_aff_trees): Likewise.
6164         (get_expr_id): Restructure the function.
6165         (get_loop_invariant_expr_id): Renamed to
6166         get_loop_invariant_expr.
6167         (get_computation_cost_at): Replace usage of inv_expr_id with
6168         inv_expr.
6169         (get_computation_cost): Likewise.
6170         (determine_group_iv_cost_generic): Likewise.
6171         (determine_group_iv_cost_address): Likewise.
6172         (iv_period): Fix coding style.
6173         (iv_elimination_compare_lt): Likewise.
6174         (may_eliminate_iv): Likewise.
6175         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
6176         inv_expr.
6177         (determine_group_iv_costs): Dump invariant expressions.
6178         (iv_ca_recount_cost): Use the newly added hash_map.
6179         (iv_ca_set_remove_invariants): Fix coding style.
6180         (iv_ca_set_add_invariants): Fix coding style.
6181         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
6182         invariants.
6183         (iv_ca_set_cp): Likewise.
6184         (iv_ca_new): Initialize the newly added hash_map and remove
6185         initialization of fields.
6186         (iv_ca_free): Delete the hash_map.
6187         (iv_ca_dump): Dump invariant expressions.
6188         (iv_ca_extend): Fix coding style.
6189         (try_add_cand_for): Likewise.
6190         (create_new_ivs): Dump information about # of avg iterations and
6191         # of used invariant expressions.
6192         (rewrite_use_compare): Fix coding style.
6193         (free_loop_data): Set default value for max_inv_expr_id.
6194
6195 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
6196
6197         * cse.c (rest_of_handle_cse): Use cleanup_cfg
6198         returned value cse_cfg_altered computation.
6199         (rest_of_handle_cse2): Likewise.
6200         (rest_of_handle_cse_after_global_opts): Likewise.
6201
6202 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6203
6204         PR target/53440
6205         * config/arm/arm.c (arm32_output_mi_thunk): New.
6206         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
6207         to split Thumb1 vs TARGET_32BIT functionality.
6208         (arm_thumb1_mi_thunk): New.
6209
6210 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6211
6212         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
6213         to true.
6214
6215 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6216
6217         PR target/71080
6218         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
6219
6220 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
6221
6222         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
6223         (expand_builtin_trap): Emit a regular call.
6224         (set_builtin_user_assembler_name): Remove obsolete cases.
6225         * dse.c (scan_insn): Adjust.
6226         * except.c: Include calls.h.
6227         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
6228         emit a regular call to setjmp.
6229         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
6230         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
6231         (emit_block_move_via_libcall): Delete.
6232         (block_move_fn): Delete.
6233         (init_block_move_fn): Likewise.
6234         (emit_block_move_libcall_fn): Likewise.
6235         (emit_block_op_via_libcall): New function.
6236         (set_storage_via_libcall): Tidy up and use memset builtin.
6237         (block_clear_fn): Delete.
6238         (init_block_clear_fn): Likewise.
6239         (clear_storage_libcall_fn): Likewise.
6240         (expand_assignment): Call emit_block_move_via_libcall.
6241         Do not include gt-expr.h.
6242         * expr.h (emit_block_op_via_libcall): Declare.
6243         (emit_block_copy_via_libcall): New inline function.
6244         (emit_block_move_via_libcall): Likewise.
6245         (emit_block_comp_via_libcall): Likewise.
6246         (block_clear_fn): Delete.
6247         (init_block_move_fn): Likewise.
6248         (init_block_clear_fn): Likewise.
6249         (emit_block_move_via_libcall): Likewise.
6250         (set_storage_via_libcall): Add default parameter value.
6251         * libfuncs.h (enum libfunc_index): Remove obsolete values.
6252         (abort_libfunc): Delete.
6253         (memcpy_libfunc): Likewise.
6254         (memmove_libfunc): Likewise.
6255         (memcmp_libfunc): Likewise.
6256         (memset_libfunc): Likewise.
6257         (setbits_libfunc): Likewise.
6258         (setjmp_libfunc): Likewise.
6259         (longjmp_libfunc): Likewise.
6260         (profile_function_entry_libfunc): Likewise.
6261         (profile_function_exit_libfunc): Likewise.
6262         (gcov_flush_libfunc): Likewise.
6263         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
6264         and DECL_VISIBILITY on the declaration.
6265         (init_optabs): Do not initialize obsolete libfuncs.
6266         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
6267         * tree-core.h (ECF_RET1): Define.
6268         (ECF_TM_PURE): Adjust.
6269         (ECF_TM_BUILTIN): Likewise.
6270         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
6271         (build_common_builtin_nodes): Initialize abort builtin.
6272         Add ECF_RET1 on memcpy, memmove and memset builtins.
6273         Pass final flags for alloca and alloca_with_align builtins.
6274         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
6275         obsolete builtins.
6276         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
6277         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
6278         set_storage_via_libcall and call emit_block_copy_via_libcall.
6279
6280 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
6281
6282         * config/i386/i386.md (*call_got_x32): Change operand 0 to
6283         DImode before it is passed to ix86_output_call_operand.
6284         (*call_value_got_x32): Ditto for operand 1.
6285
6286 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
6287
6288         PR rtl-optimization/70904
6289         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
6290         reload for wide mode.
6291
6292 2016-05-12  Marek Polacek  <polacek@redhat.com>
6293
6294         PR c/70756
6295         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
6296         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
6297         * langhooks.h (incomplete_type_error): Likewise.
6298         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
6299         parameter, pass it down to incomplete_type_error.
6300         * tree.h (size_in_bytes): New inline overload.
6301         (size_in_bytes_loc): Renamed from size_in_bytes.
6302
6303 2016-05-12  Richard Biener  <rguenther@suse.de>
6304
6305         PR tree-optimization/71059
6306         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
6307         nary before looking up or entering the expression into the VN
6308         hashes.
6309         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
6310         Make sure to re-use NARYs without result as inserted by
6311         phi-translation.
6312
6313 2016-05-12  Richard Biener  <rguenther@suse.de>
6314
6315         PR tree-optimization/71062
6316         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
6317         field.
6318         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6319         vars_contains_restrict if the var is a restrict tag.
6320         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
6321         do not disambiguate pointers against it.
6322         (dump_points_to_solution): Re-structure and adjust for new
6323         vars_contains_restrict flag.
6324         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
6325
6326 2016-05-12  Martin Liska  <mliska@suse.cz>
6327
6328         * doc/invoke.texi: Explain connection between
6329         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
6330
6331 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
6332
6333         PR tree-optimization/71006
6334         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
6335         consider COND_EXPR as a mask producer.
6336
6337 2016-05-12  Marek Polacek  <polacek@redhat.com>
6338
6339         PR driver/71063
6340         * opts.c (common_handle_option): Detect missing argument for --help^.
6341
6342 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6343
6344         PR target/70830
6345         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
6346         when popping the PC and within an interrupt handler routine.
6347         Add missing tab to output of "ldmfd".
6348         (output_return_instruction): Output LDMFD with SP update rather
6349         than POP when returning from interrupt handler.
6350
6351 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
6352
6353         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
6354         TARGET_64BIT && TARGET_AVX512DQ.
6355         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
6356         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
6357         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
6358         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
6359         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
6360         (*vec_extractv4si_zext): Add avx512dq alternative.
6361         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
6362         use v instead of x constraint in other alternatives where possible.
6363
6364         * config/i386/sse.md (sse2_loadld): Use v instead of x
6365         constraint in alternatives 0,1,4.
6366
6367         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
6368         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
6369         v constraints instead of x and <pinsr_evex_isa> isa attribute.
6370
6371         PR target/71019
6372         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
6373         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
6374         is not emitted unless TARGET_AVX512BW.
6375         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
6376         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
6377         for the result operand.
6378
6379         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
6380         constraint instead of x in avx alternatives.  Use maybe_evex instead
6381         of vex prefix.
6382
6383         * config/i386/constraints.md (Yv): New constraint.
6384         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
6385         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
6386         * config/i386/i386.md (avx512fvecmode): New mode attr.
6387         (*pushtf): Use v constraint instead of x.
6388         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
6389         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
6390         (*absneg<mode>2): Use Yv constraint instead of x constraint.
6391         (*absnegtf2_sse): Likewise.
6392         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
6393         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
6394         avx512f alternatives.
6395         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
6396
6397 2016-05-12  Richard Biener  <rguenther@suse.de>
6398
6399         PR tree-optimization/71060
6400         * tree-data-ref.c (initialize_data_dependence_relation): Do not
6401         require exact match of DR_BASE_OBJECT but only matching address and
6402         type.
6403
6404 2016-05-12  Richard Biener  <rguenther@suse.de>
6405
6406         PR tree-optimization/70986
6407         * cfganal.c: Include cfgloop.h.
6408         (dfs_find_deadend): Prefer to take edges exiting loops.
6409
6410 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6411
6412         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
6413         compile and run time.
6414
6415 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
6416
6417         PR c/43651
6418         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
6419
6420 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
6421
6422         * config/i386/i386.c (legitimize_pic_address): Use
6423         copy_to_suggested_reg instead of gen_movsi.
6424
6425 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6426
6427         * config/rs6000/predicates.md (quad_memory_operand): Move most of
6428         the code into quad_address_p and call it to share code with
6429         vsx_quad_dform_memory_operand.
6430         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
6431         d-form support.
6432         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
6433         bit instead of being a separate word.  Split -mpower9-dform into
6434         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
6435         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
6436         for the register class supporting 128-bit quad word memory offsets.
6437         (mode_supports_vsx_dform_quad): Helper function to return if the
6438         register class uses quad word memory offsets.
6439         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
6440         (rs6000_debug_reg_global): Always print if we are using LRA or not.
6441         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
6442         instructions are enabled, set up the appropriate addr_masks for
6443         128-bit types.
6444         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
6445         -mpower9-dform-scalar, instead of -mpower9-dform.
6446         (rs6000_option_override_internal): Split -mpower9-dform into two
6447         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
6448         -mpower9-dform switch sets or clears both.  If we are not using
6449         the LRA register allocator, do not enable -mpower9-dform-vector by
6450         default.  If we are using LRA, enable -mpower9-dform-vector and
6451         -mvsx-timode if it is appropriate.  Issue a warning if either
6452         -mpower9-dform-vector or -mvsx-timode are explicitly used without
6453         enabling LRA.
6454         (quad_address_offset_p): New helper function to return if the
6455         offset is legal for quad word memory instructions.
6456         (quad_address_p): New function to determin if GPR or vector
6457         register quad word memory addresses are legal.
6458         (mem_operand_gpr): Validate quad word address offsets.
6459         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
6460         d-form (register + offset) instructions.
6461         (offsettable_ok_by_alignment): Likewise.
6462         (rs6000_legitimate_offset_address_p): Likewise.
6463         (legitimate_lo_sum_address_p): Likewise.
6464         (rs6000_legitimize_address): Likewise.
6465         (rs6000_legitimize_reload_address): Add more debug statements for
6466         -mdebug=addr.
6467         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
6468         d-form instructions.
6469         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
6470         d-form instructions.  Distinguish different cases in debug
6471         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
6472         d-form instructions.
6473         (rs6000_preferred_reload_class): Likewise.
6474         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
6475         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
6476         of the ISA 2.06 indexed memory instructions.
6477         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
6478         use them to save/restore the saved vector registers instead of
6479         using Altivec instructions.
6480         (rs6000_emit_epilogue): Likewise.
6481         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
6482         (rs6000_opt_masks): Split -mpower9-dform into
6483         -mpower9-dform-scalar and -mpower9-dform-vector.
6484         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
6485         was not selected.
6486         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
6487         ISA 3.0 vector indexed memory instructions, and fold the code into
6488         the normal mov<mode> patterns.
6489         (p9_vecstore_<mode>): Likewise.
6490         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
6491         instructions.
6492         (vsx_movti_64bit): Likewise.
6493         (vsx_movti_32bit): Likewise.
6494         * config/rs6000/constraints.md (wO constraint): New constraint for
6495         ISA 3.0 vector d-form support.
6496         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
6497         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
6498         include -mpower9-dform-vector until we switch over to LRA.
6499         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
6500         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
6501         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
6502         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6503         for -mpower9-dform and -mlra.
6504         * doc/md.texi (wO constraint): Document wO constraint.
6505
6506 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
6507
6508         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
6509         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
6510         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
6511         Move handling of non-insn arguments inline into the sole user:
6512         (output_trans_func): ...here.
6513         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
6514         in emitted function prototype.
6515         (output_internal_insn_latency_func): Ditto.  Simplify.
6516         (output_internal_maximal_insn_latency_func): Ditto.  Delete
6517         always-unused argument.
6518         (output_insn_latency_func): Ditto.
6519         (output_maximal_insn_latency_func): Ditto.
6520
6521 2016-05-11  Richard Biener  <rguenther@suse.de>
6522
6523         PR tree-optimization/71055
6524         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
6525         sth with precision not equal to access size verify we don't chop
6526         off bits.
6527
6528 2016-05-11  Richard Biener  <rguenther@suse.de>
6529
6530         PR debug/71057
6531         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
6532         (dwarf2out_finish): Move retry_incomplete_types call ...
6533         (dwarf2out_early_finish): ... here.
6534
6535 2016-05-11  Richard Biener  <rguenther@suse.de>
6536
6537         PR middle-end/71002
6538         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
6539         if the langhook insists on it.
6540         * fold-const.c (make_bit_field_ref): Add arg for the original
6541         reference and preserve its alias-set.
6542         (decode_field_reference): Take exp by reference and adjust it
6543         to the original memory reference.
6544         (optimize_bit_field_compare): Adjust callers.
6545         (fold_truth_andor_1): Likewise.
6546         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
6547
6548 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
6549
6550         PR middle-end/70807
6551         * cfgrtl.h (delete_insn_and_edges): Now return bool.
6552         * cfgrtl.c (delete_insn_and_edges): Likewise.
6553         * config/i386/i386.c (convert_scalars_to_vector): Remove
6554         redundant code.
6555         * cse.c (cse_insn): Compute cse_cfg_altered.
6556         (delete_trivially_dead_insns): Likewise.
6557         (cse_cc_succs): Likewise.
6558         (rest_of_handle_cse): Free dominance info if required.
6559         (rest_of_handle_cse2): Likewise.
6560         (rest_of_handle_cse_after_global_opts): Likewise.
6561
6562 2016-05-11  Alan Modra  <amodra@gmail.com>
6563
6564         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
6565         abi_v4_pass_in_fpr): New functions.
6566         (rs6000_function_arg_boundary): Exclude complex IBM long double
6567         from 64-bit alignment when ABI_V4.
6568         (rs6000_function_arg, rs6000_function_arg_advance_1,
6569         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
6570
6571 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
6572
6573         PR rtl-optimization/71028
6574         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
6575         jump with just a return in the fallthrough block if the branch
6576         block contains just a return as well.
6577
6578 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
6579
6580         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
6581         * match.pd ((X & Y) ^ Y): ... this.
6582         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
6583         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
6584
6585 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
6586
6587         * read-md.c (require_char_ws): New function.
6588         (read_string): Simplify using require_char_ws.
6589         (handle_constants): Likewise.
6590         (handle_enum): Likewise.
6591         (handle_file): Likewise.
6592         * read-md.h (require_char_ws): New declaration.
6593         * read-rtl.c (read_conditions): Simplify using require_char_ws.
6594         (read_mapping): Likewise.
6595         (read_rtx_code): Likewise.
6596         (read_nested_rtx): Likewise.
6597
6598 2016-05-10  James Norris  <jnorris@codesourcery.com>
6599
6600         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
6601         if offloading is enabled and -fopenacc or -fopenmp is specified.
6602         (CRTOFFLOADEND): Likewise.
6603         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
6604         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
6605
6606 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
6607
6608         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
6609         gotoff_operand code paths.  Use copy_to_suggested_regs and
6610         expand_simple_binop where appropriate.  Cleanup.
6611
6612 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6613
6614         PR target/70799
6615         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
6616         integer constants.
6617         (dimode_scalar_chain::vector_const_cost): New.
6618         (dimode_scalar_chain::compute_convert_gain): Handle constants.
6619         (dimode_scalar_chain::convert_op): Likewise.
6620         (dimode_scalar_chain::convert_insn): Likewise.
6621
6622 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
6623
6624         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
6625         unary operation, not a binary one.
6626
6627 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6628
6629         PR middle-end/70877
6630         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
6631         calls with type casted fndecl.
6632
6633 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6634
6635         PR tree-optimization/70786
6636         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
6637         * calls.c (initialize_argument_information): Bind bounds
6638         with corresponding args passed by reference.
6639
6640 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
6641
6642         PR target/70927
6643         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
6644         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
6645         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
6646         accordingly.
6647
6648 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6649
6650         PR target/70963
6651         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
6652         code for a zero scale factor.
6653         (vsx_xvcvdpuxds_scale): Likewise.
6654
6655 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
6656
6657         * diagnostic-show-locus.c (layout::layout): Call show_ruler
6658         if show_ruler_p was set on the context.
6659         (layout::show_ruler): New method.
6660         * diagnostic.h (struct diagnostic_context): Add field
6661         "show_ruler_p".
6662
6663 2016-05-10  Richard Biener  <rguenther@suse.de>
6664
6665         PR tree-optimization/71039
6666         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
6667         (chk_uses): New function.
6668         (propagate_with_phi): Verify we can safely replicate the lhs of an
6669         aggregate assignment on all incoming edges.
6670
6671 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
6672
6673         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
6674         Forward declare.
6675         (rx_atomic_sequence): New class.
6676         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
6677         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
6678         non-inline.
6679         (rx_atomic_sequence::rx_atomic_sequence,
6680         rx_atomic_sequence::~rx_atomic_sequence): New functions.
6681         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
6682         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
6683         CTRLREG_INTB): New constants.
6684         (FETCHOP): New code iterator.
6685         (fethcop_name, fetchop_name2): New iterator code attributes.
6686         (QIHI): New mode iterator.
6687         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
6688         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
6689         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
6690
6691 2016-05-10  Martin Liska  <mliska@suse.cz>
6692
6693         * tree-inline.c (remap_dependence_clique): Do not remap
6694         debugging statements.
6695
6696 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6697
6698         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
6699         ("*fixuns_truncdfdi2_z13")
6700         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
6701         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
6702         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
6703
6704 2016-05-10  Richard Biener  <rguenther@suse.de>
6705
6706         PR tree-optimization/70497
6707         PR tree-optimization/28367
6708         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
6709         split out from ...
6710         (visit_reference_op_load): ... here.
6711         (vn_reference_lookup_3): Use it to handle subreg-like accesses
6712         with simplified BIT_FIELD_REFs.
6713         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
6714         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
6715         correctly.
6716
6717 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
6718
6719         * dwarf2out.c (add_abstract_origin_attribute): Adjust
6720         documentation comment.  For BLOCK nodes, add a
6721         DW_AT_abstract_origin attribute that points to the DIE generated
6722         for the origin BLOCK.
6723         (gen_lexical_block_die): Call add_abstract_origin_attribute for
6724         blocks from inlined functions.
6725
6726 2016-05-10  Alan Modra  <amodra@gmail.com>
6727
6728         PR target/70947
6729         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
6730         regrename modifying insns saving lr before __morestack call.
6731         * config/rs6000/rs6000.md (split_stack_return): Similarly for
6732         insns restoring lr after __morestack call.
6733
6734 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
6735
6736         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
6737         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
6738         expanders.
6739         * config/i386/sse.md (vec_interleave_high<mode>,
6740         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
6741         <avx512>_vpermt2var<mode>3_maskz): Likewise.
6742
6743 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6744
6745         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
6746         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
6747         parallel reassociation for power8 and forward.
6748
6749 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
6750
6751         * config/i386/i386.md (absneg splitters with general regs): Use
6752         general_reg_operand predicate.
6753         (btsq peephole2): Use x86_64_immediate_operand to check if new
6754         value is suitable for immediate operand.  Generate emitted insn
6755         using RTL expressions.
6756         (btcq peephole2): Ditto.
6757         (btrq peephole2): Ditto.  Generate correct immediate operand
6758         for AND masking.
6759
6760 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
6761
6762         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
6763         bitpos.
6764
6765 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
6766
6767         * tree-affine.c (wide_int_constant_multiple_p): Add missing
6768         pointer dereference.
6769
6770 2016-05-09  Richard Biener  <rguenther@suse.de>
6771
6772         PR tree-optimization/70985
6773         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
6774         op0 isn't a gimple register.
6775
6776 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
6777
6778         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
6779         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
6780         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
6781         (i6400_fpu_mult): New cpu units.
6782         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
6783         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
6784         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
6785         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
6786         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
6787         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
6788         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
6789         (i6400_msa_long_float4, i6400_msa_long_float5)
6790         (i6400_msa_long_float8, i6400_msa_fdiv_df)
6791         (i6400_msa_fdiv_sf): New reservations.
6792         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
6793         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
6794         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
6795         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
6796         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
6797         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
6798         (msa_short_cmp, msa_short_float2, msa_short_logic3)
6799         (msa_short_store4, msa_long_load, msa_short_store)
6800         (msa_long_logic, msa_long_float2, msa_long_float4)
6801         (msa_long_float5, msa_long_float8, msa_long_mult)
6802         (msa_long_fdiv, msa_long_div): New reservations.
6803
6804 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
6805             Sameera Deshpande  <sameera.deshpande@imgtec.com>
6806             Matthew Fortune  <matthew.fortune@imgtec.com>
6807             Graham Stott  <graham.stott@imgtec.com>
6808             Chao-ying Fu  <chao-ying.fu@imgtec.com>
6809
6810         * config.gcc: Add MSA header file for mips*-*-* target.
6811         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
6812         (Ubv8i, Urv8):  New constraints.
6813         * config/mips/mips-ftypes.def: Add function types for MSA
6814         builtins.
6815         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
6816         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
6817         * config/mips/mips-msa.md: New file.
6818         * config/mips/mips-protos.h
6819         (mips_split_128bit_const_insns): New prototype.
6820         (mips_msa_idiv_insns): Likewise.
6821         (mips_split_128bit_move): Likewise.
6822         (mips_split_128bit_move_p): Likewise.
6823         (mips_split_msa_copy_d): Likewise.
6824         (mips_split_msa_insert_d): Likewise.
6825         (mips_split_msa_fill_d): Likewise.
6826         (mips_expand_msa_branch): Likewise.
6827         (mips_const_vector_same_val_p): Likewise.
6828         (mips_const_vector_same_bytes_p): Likewise.
6829         (mips_const_vector_same_int_p): Likewise.
6830         (mips_const_vector_shuffle_set_p): Likewise.
6831         (mips_const_vector_bitimm_set_p): Likewise.
6832         (mips_const_vector_bitimm_clr_p): Likewise.
6833         (mips_msa_vec_parallel_const_half): Likewise.
6834         (mips_msa_output_division): Likewise.
6835         (mips_ldst_scaled_shift): Likewise.
6836         (mips_expand_vec_cond_expr): Likewise.
6837         * config/mips/mips.c (enum mips_builtin_type): Add
6838         MIPS_BUILTIN_MSA_TEST_BRANCH.
6839         (mips_gen_const_int_vector_shuffle): New prototype.
6840         (mips_const_vector_bitimm_set_p): New function.
6841         (mips_const_vector_bitimm_clr_p): Likewise.
6842         (mips_const_vector_same_val_p): Likewise.
6843         (mips_const_vector_same_bytes_p): Likewise.
6844         (mips_const_vector_same_int_p): Likewise.
6845         (mips_const_vector_shuffle_set_p): Likewise.
6846         (mips_symbol_insns): Forbid loading symbols via immediate for
6847         MSA.
6848         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
6849         stores.
6850         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
6851         MSA.
6852         (mips_lx_address_p): Add support load indexed address for MSA.
6853         (mips_address_insns): Add calculation of instructions needed for
6854         stores and loads for MSA.
6855         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
6856         CONST_VECTOR for MSA and let it fall through.
6857         (mips_ldst_scaled_shift): New function.
6858         (mips_subword_at_byte): Likewise.
6859         (mips_msa_idiv_insns): Likewise.
6860         (mips_legitimize_move): Validate MSA moves.
6861         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
6862         calculation of costs for MSA division.
6863         (mips_split_move_p): Check if MSA moves need splitting.
6864         (mips_split_move): Split MSA moves if necessary.
6865         (mips_split_128bit_move_p): New function.
6866         (mips_split_128bit_move): Likewise.
6867         (mips_split_msa_copy_d): Likewise.
6868         (mips_split_msa_insert_d): Likewise.
6869         (mips_split_msa_fill_d): Likewise.
6870         (mips_output_move): Handle MSA moves.
6871         (mips_expand_msa_branch): New function.
6872         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
6873         Reinstate 'y' modifier.
6874         (mips_file_start): Add MSA .gnu_attribute.
6875         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
6876         FPRs.
6877         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
6878         (mips_class_max_nregs): Add register size for MSA supported mode.
6879         (mips_cannot_change_mode_class): Allow conversion between MSA
6880         vector modes and TImode.
6881         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
6882         instruction.
6883         (mips_secondary_reload_class): Force MSA loads/stores via memory.
6884         (mips_preferred_simd_mode): Add preffered modes for MSA.
6885         (mips_vector_mode_supported_p): Add MSA supported modes.
6886         (mips_autovectorize_vector_sizes): New function.
6887         (mips_msa_output_division): Likewise.
6888         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
6889         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
6890         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
6891         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
6892         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
6893         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
6894         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
6895         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
6896         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
6897         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
6898         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
6899         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
6900         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
6901         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
6902         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
6903         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
6904         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
6905         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
6906         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
6907         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
6908         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
6909         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
6910         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
6911         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
6912         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
6913         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
6914         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
6915         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
6916         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
6917         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
6918         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
6919         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
6920         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
6921         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
6922         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
6923         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
6924         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
6925         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
6926         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
6927         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
6928         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
6929         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
6930         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
6931         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
6932         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
6933         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
6934         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
6935         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
6936         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
6937         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
6938         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
6939         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
6940         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
6941         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
6942         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
6943         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
6944         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
6945         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
6946         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
6947         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
6948         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
6949         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
6950         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
6951         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
6952         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
6953         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
6954         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
6955         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
6956         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
6957         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
6958         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
6959         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
6960         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
6961         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
6962         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
6963         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
6964         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
6965         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
6966         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
6967         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
6968         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
6969         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
6970         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
6971         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
6972         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
6973         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
6974         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
6975         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
6976         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
6977         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
6978         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
6979         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
6980         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
6981         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
6982         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
6983         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
6984         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
6985         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
6986         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
6987         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
6988         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
6989         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
6990         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
6991         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
6992         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
6993         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
6994         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
6995         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
6996         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
6997         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
6998         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
6999         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
7000         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
7001         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
7002         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
7003         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
7004         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
7005         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
7006         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
7007         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
7008         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
7009         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
7010         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
7011         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
7012         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
7013         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
7014         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
7015         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
7016         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
7017         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
7018         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
7019         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
7020         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
7021         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
7022         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
7023         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
7024         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
7025         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
7026         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
7027         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
7028         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
7029         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
7030         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
7031         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
7032         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
7033         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
7034         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
7035         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
7036         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
7037         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
7038         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
7039         move_v builtins.
7040         (mips_get_builtin_decl_index): New array.
7041         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
7042         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
7043         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
7044         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
7045         (mips_init_builtins): Initialize mips_get_builtin_decl_index
7046         array.
7047         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
7048         hook.
7049         (mips_expand_builtin_insn): Prepare operands for
7050         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
7051         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
7052         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
7053         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
7054         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
7055         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
7056         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
7057         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
7058         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
7059         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
7060         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
7061         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
7062         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
7063         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
7064         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
7065         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
7066         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
7067         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
7068         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
7069         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
7070         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
7071         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
7072         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
7073         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
7074         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
7075         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
7076         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
7077         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
7078         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
7079         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
7080         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
7081         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
7082         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
7083         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
7084         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
7085         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
7086         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
7087         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
7088         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
7089         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
7090         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
7091         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
7092         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
7093         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
7094         These are set implicitly and an error is reported if overridden.
7095         (mips_expand_builtin_msa_test_branch): New function.
7096         (mips_expand_msa_shuffle): Likewise.
7097         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
7098         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
7099         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
7100         (mips_expand_vec_unpack): Add support for MSA.
7101         (mips_expand_vector_init): Likewise.
7102         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
7103         instead of const0_rtx.
7104         (mips_msa_vec_parallel_const_half): New function.
7105         (mips_gen_const_int_vector): Likewise.
7106         (mips_gen_const_int_vector_shuffle): Likewise.
7107         (mips_expand_msa_cmp): Likewise.
7108         (mips_expand_vec_cond_expr): Likewise.
7109         * config/mips/mips.h
7110         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
7111         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
7112         specified.
7113         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
7114         (ISA_HAS_MSA): New macro.
7115         (UNITS_PER_MSA_REG): Likewise.
7116         (BITS_PER_MSA_REG): Likewise.
7117         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
7118         (MSA_REG_FIRST): New macro.
7119         (MSA_REG_LAST): Likewise.
7120         (MSA_REG_NUM): Likewise.
7121         (MSA_REG_P): Likewise.
7122         (MSA_REG_RTX_P): Likewise.
7123         (MSA_SUPPORTED_MODE_P): Likewise.
7124         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
7125         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
7126         * config/mips/mips.md: Include mips-msa.md.
7127         (alu_type): Add simd_add.
7128         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
7129         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
7130         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
7131         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
7132         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
7133         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
7134         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
7135         simd_move, simd_load, simd_store.  Choose "multi" for moves
7136         for "qword_mode".
7137         (qword_mode): New attribute.
7138         (insn_count): Add instruction count for quad moves.
7139         Increase the count for MIPS SIMD division.
7140         (UNITMODE): Add UNITMODEs for vector types.
7141         (addsub): New code iterator.
7142         * config/mips/mips.opt (mmsa): New option.
7143         * config/mips/msa.h: New file.
7144         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
7145         specified.
7146         * config/mips/mti-linux.h: Likewise.
7147         * config/mips/predicates.md
7148         (const_msa_branch_operand): New constraint.
7149         (const_uimm3_operand): Likewise.
7150         (const_uimm4_operand): Likewise.
7151         (const_uimm5_operand): Likewise.
7152         (const_uimm8_operand): Likewise.
7153         (const_imm5_operand): Likewise.
7154         (aq10b_operand): Likewise.
7155         (aq10h_operand): Likewise.
7156         (aq10w_operand): Likewise.
7157         (aq10d_operand): Likewise.
7158         (const_m1_operand): Likewise.
7159         (reg_or_m1_operand): Likewise.
7160         (const_exp_2_operand): Likewise.
7161         (const_exp_4_operand): Likewise.
7162         (const_exp_8_operand): Likewise.
7163         (const_exp_16_operand): Likewise.
7164         (const_vector_same_val_operand): Likewise.
7165         (const_vector_same_simm5_operand): Likewise.
7166         (const_vector_same_uimm5_operand): Likewise.
7167         (const_vector_same_uimm6_operand): Likewise.
7168         (const_vector_same_uimm8_operand): Likewise.
7169         (par_const_vector_shf_set_operand): Likewise.
7170         (reg_or_vector_same_val_operand): Likewise.
7171         (reg_or_vector_same_simm5_operand): Likewise.
7172         (reg_or_vector_same_uimm6_operand): Likewise.
7173         * doc/extend.texi (MIPS SIMD Architecture Functions): New
7174         section.
7175         * doc/invoke.texi (-mmsa): Document new option.
7176
7177 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7178
7179         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
7180         * configure: Regenerate.
7181         * config.in: Regenerate.
7182         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
7183         on -fvtable-verify.
7184         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
7185         (ENDFILE_VTV_SPEC): Define.
7186
7187 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
7188
7189         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
7190         registers in all interrupt handlers if necessary.
7191         (rl78_option_override): Add warning.
7192         (MUST_SAVE_MDUC_REGISTERS): New macro.
7193         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
7194         * config/rl78/rl78.c (check_mduc_usage): New function.
7195         (mduc_regs): New structure to hold MDUC register data.
7196         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
7197         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
7198         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
7199         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
7200         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
7201         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
7202
7203 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
7204
7205         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
7206         (tree-ssa-loop-niter.h): Ditto.
7207         (idx_within_array_bound, ref_within_array_bound): New functions.
7208         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
7209         Factor out check on writable base object to ...
7210         (base_object_writable): ... here.
7211
7212 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7213
7214         * config/arm/arm.md (probe_stack): Add modes to set source
7215         and destination.
7216
7217 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
7218
7219         * regrename.c (base_reg_class_for_rename): New static function.
7220         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
7221
7222 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
7223
7224         * cgraph.c (thunk_adjust): Export.
7225         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
7226         * cgraphunit.c (thunk_adjust): Export.
7227         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
7228         thunks.
7229         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
7230         inlinable.
7231         * tree-inline.c (expand_call_inline): Expand thunks inline.
7232
7233 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
7234
7235         PR target/70998
7236         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
7237         (*sse2_vd_cvtss2sd): Ditto.
7238         * config/i386/i386.md
7239         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
7240         Generate *sse2_vd_cvtsd2ss pattern.
7241         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
7242         Generate *sse2_vd_cvtss2sd pattern.
7243
7244 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
7245
7246         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
7247         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
7248         users.
7249
7250 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
7251
7252         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
7253         * config/sh/sh.c: Define and declare variables on first use throughout
7254         the file.
7255         (current_function_interrupt): Change to bool type.
7256         (frame_insn): Rename to emit_frame_insn and update users.
7257         (push_regs): Use bool for 'interrupt_handler' argument.
7258         (save_schedule_s): Remove.
7259         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
7260         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
7261         targetm.asm_out.unaligned_op.di.
7262         (gen_far_branch): Remove redundant forward declaration.
7263         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
7264         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
7265         (sh_set_return_address, sh_function_ok_for_sibcall,
7266         scavenge_reg): Update comments.
7267         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
7268         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
7269         (sh_attr_renesas_p): Remove unnecessary parentheses.
7270         (branch_dest): Simplify.
7271         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
7272         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
7273         (CUMULATIVE_ARGS): Change macro to typedef.
7274         (current_function_interrupt): Change to bool type.
7275         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
7276         Surround with __cplusplus ifdef.
7277         (sh_compare_op0, sh_compare_op1): Remove.
7278         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
7279
7280 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
7281
7282         * config/arm/arm.md: (arch): Add neon.
7283         (arch_enabled): Return yes for arch neon when TARGET_NEON.
7284         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
7285         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
7286         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
7287         attributes for alt renumbering.  Mark alt 3 as non-predicable.
7288         (thumb2_movdf_vfp): Likewise.
7289
7290 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
7291
7292         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
7293         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
7294         (*andqi_1): Add preferred_for_speed attribute to disparage
7295         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
7296         (*<code>qi_1): Ditto.
7297         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
7298         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
7299         (*ashlqi3_1): Ditto.
7300         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
7301         Add preferred_for_size attribute to disparage alternative 0 and
7302         preferred_for_speed attribute to disparage alternative 1 for
7303         TARGET_PARTIAL_REG_STALL targets.
7304
7305 2016-05-07  Tom de Vries  <tom@codesourcery.com>
7306
7307         PR tree-optimization/70956
7308         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
7309         def.
7310
7311 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
7312
7313         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
7314         * config/sh/sh.c (sh_cbranch_distance): Implement it.
7315         * config/sh/sh.md (branch_zero): Remove define_attr.
7316         (define_delay): Disable delay slot if branch distance is one insn.
7317
7318 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7319
7320         * config/i386/i386.md (LEAMODE): New mode attribute.
7321         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
7322         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
7323         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
7324         operand 2 predicate.
7325         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
7326         (*lea<mode>_general_3): Ditto.
7327         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
7328
7329 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
7330
7331         * genmddump.c (main): Convert argv from char ** to const char **.
7332
7333 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7334
7335         * coretypes.h (OVERRIDE): New macro.
7336         (FINAL): New macro.
7337
7338 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
7339
7340         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
7341         allow coalescing if the types are compatible.
7342
7343 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7344
7345         * pass_manager.h (pass_manager::register_pass_name): New method.
7346         (pass_manager::get_pass_by_name): New method.
7347         (pass_manager::create_pass_tab): New method.
7348         (pass_manager::m_name_to_pass_map): New field.
7349         * passes.c (name_to_pass_map): Delete global in favor of field
7350         "m_name_to_pass_map" of pass_manager.
7351         (register_pass_name): Rename from a function to...
7352         (pass_manager::register_pass_name): ...this method, updating
7353         for renaming of global "name_to_pass_map" to field
7354         "m_name_to_pass_map".
7355         (create_pass_tab): Rename from a function to...
7356         (pass_manager::create_pass_tab): ...this method, updating
7357         for renaming of global "name_to_pass_map" to field.
7358         (get_pass_by_name): Rename from a function to...
7359         (pass_manager::get_pass_by_name): ...this method.
7360         (enable_disable_pass): Convert use of get_pass_by_name to
7361         a method call, locating the pass_manager singleton.
7362
7363 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7364
7365         * genattr-common.c (main): Convert argv from char ** to const char **.
7366         * genattr.c (main): Likewise.
7367         * genattrtab.c (main): Likewise.
7368         * genautomata.c (initiate_automaton_gen): Likewise.
7369         (main): Likewise.
7370         * gencodes.c (main): Likewise.
7371         * genconditions.c (main): Likewise.
7372         * genconfig.c (main): Likewise.
7373         * genconstants.c (main): Likewise.
7374         * genemit.c (main): Likewise.
7375         * genenums.c (main): Likewise.
7376         * genextract.c (main): Likewise.
7377         * genflags.c (main): Likewise.
7378         * genmddeps.c (main): Likewise.
7379         * genopinit.c (main): Likewise.
7380         * genoutput.c (main): Likewise.
7381         * genpeep.c (main): Likewise.
7382         * genpreds.c (main): Likewise.
7383         * genrecog.c (main): Likewise.
7384         * gensupport.c (init_rtx_reader_args_cb): Likewise.
7385         (init_rtx_reader_args): Likewise.
7386         * gensupport.h (init_rtx_reader_args_cb): Likewise.
7387         (init_rtx_reader_args): Likewise.
7388         * gentarget-def.c (main): Likewise.
7389         * read-md.c (read_md_files): Likewise.
7390         * read-md.h (read_md_files): Likewise.
7391
7392 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7393
7394         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
7395         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
7396         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
7397         Remove unused predicate.
7398         (register_and_not_fp_reg_operand): Ditto.
7399
7400 2016-05-06  Martin Liska  <mliska@suse.cz>
7401
7402         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
7403         instead of vec as the vector is local to the function.
7404
7405 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
7406
7407         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
7408         avx512bw alternative.
7409
7410         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
7411         before the ashr<mode>3 pattern.
7412
7413         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
7414         v instead of x in vex or maybe_vex alternatives, use
7415         maybe_evex instead of vex in prefix.
7416
7417         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
7418         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
7419         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
7420         in vex or maybe_vex alternatives, use maybe_evex instead of vex
7421         in prefix.
7422
7423         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
7424         v instead of x in vex or maybe_vex alternatives, use
7425         maybe_evex instead of vex in prefix.
7426
7427         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
7428         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
7429         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
7430         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
7431         alternatives, use maybe_evex instead of vex in prefix.
7432
7433         * config/i386/sse.md (vec_interleave_lowv4sf,
7434         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
7435         v instead of x in vex or maybe_vex alternatives, use
7436         maybe_evex instead of vex in prefix.
7437
7438         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
7439         v instead of x in vex or maybe_vex alternatives, use
7440         maybe_evex instead of vex in prefix.
7441
7442         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
7443         v constraint instead of x.
7444
7445 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
7446
7447         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
7448         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
7449         equality first.
7450
7451 2016-05-06  Richard Biener  <rguenther@suse.de>
7452
7453         PR tree-optimization/70948
7454         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7455         Properly clobber all fields of va_list for __builtin_va_start.
7456
7457 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
7458
7459         PR debug/70935
7460         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
7461         loop latch destination.
7462
7463 2016-05-06  Martin Liska  <mliska@suse.cz>
7464
7465         * tree-ssa-uninit.c: Apply manual changes
7466         to the GNU coding style.
7467         (prune_uninit_phi_opnds): Rename from
7468         prune_uninit_phi_opnds_in_unrealizable_paths.
7469
7470 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7471
7472         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
7473         mspace): Remove deprecated options.
7474         * doc/invoke.texi (SH options): Remove -mspace.
7475
7476 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7477
7478         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
7479
7480 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7481
7482         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
7483         corresponding combine split pattern.
7484
7485 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7486
7487         PR target/58219
7488         * config/sh/predicates.md (long_displacement_mem_operand): New.
7489         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
7490         Add movi20, movi20s alternatives.  Adjust length attribute for
7491         alternatives.
7492         (movsi_ie): Allow for any FPU.  Adjust length attribute for
7493         alternatives.
7494         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
7495         attribute for alternatives.
7496         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
7497         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
7498         length attribute for alternatives.
7499
7500 2016-05-06  Richard Biener  <rguenther@suse.de>
7501
7502         PR tree-optimization/70960
7503         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
7504
7505 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7506
7507         PR target/52933
7508         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
7509         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
7510
7511 2016-05-06  Marek Polacek  <polacek@redhat.com>
7512
7513         PR sanitizer/70875
7514         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
7515
7516 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7517
7518         PR target/54089
7519         * config/sh/sh.md (*rotcr): Add another variant.
7520
7521 2016-05-06  Richard Biener  <rguenther@suse.de>
7522
7523         PR middle-end/70931
7524         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
7525
7526 2016-05-06  Richard Biener  <rguenther@suse.de>
7527
7528         PR middle-end/70941
7529         * fold-const.c (split_tree): Always convert to the original type
7530         before negating.
7531
7532 2016-05-06  Richard Biener  <rguenther@suse.de>
7533
7534         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
7535         (fwprop_addr): Likewise.
7536
7537 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7538
7539         PR target/70873
7540         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
7541         New prototype.
7542         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
7543         * config/i386/i386.md (push mem splitter): Use find_constant_src in
7544         the splitter condition.
7545         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
7546         the splitter condition.
7547         (FP float_extend load splitter): Ditto.
7548
7549 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
7550
7551         * config/i386/i386.md (peehole2 patterns): Change true_regnum
7552         to REGNO in all peephole2 patterns.
7553         (post-reload splitters): Change true_regnum to REGNO in
7554         post-reload splitters.
7555         (zero_extend splitters): Use general_reg_operand and
7556         nonimmediate_gr_operand predicates.
7557
7558 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
7559
7560         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
7561         v constraint instead of x.
7562
7563 2016-05-05  Alan Modra  <amodra@gmail.com>
7564
7565         PR target/68662
7566         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
7567         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
7568         TARGET_NO_FP_IN_TOC for -mrelocatable.
7569         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
7570         TARGET_RELOCATABLE test.
7571         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7572         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7573         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7574         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7575         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7576         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7577         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7578         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7579         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
7580         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
7581         Likewise.
7582         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
7583         (rs6000_stack_info): Likewise.
7584         (rs6000_elf_asm_out_constructor): Likewise.
7585         (rs6000_elf_asm_out_destructor): Likewise.
7586         (rs6000_elf_declare_function_name): Likewise.
7587         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
7588         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
7589         Don't define.
7590
7591 2016-05-05  Alan Modra  <amodra@gmail.com>
7592
7593         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
7594
7595 2016-05-05  Alan Modra  <amodra@gmail.com>
7596
7597         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
7598         out-of-line gpr restore for one or two regs if that would add
7599         a save of lr.
7600
7601 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
7602
7603         PR target/70873
7604         * config/i386/i386.md
7605         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
7606         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
7607         as operand 0 predicate.
7608         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
7609         Ditto.
7610         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
7611         Ditto.  Emit the pattern using RTX.
7612
7613         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
7614         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
7615         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
7616         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
7617         Ditto.
7618         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
7619         sse_reg_operand as operand 0 predicate.
7620
7621         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
7622         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
7623         instead of gen_rtx_REG.
7624         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
7625         Ditto.
7626
7627 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7628
7629         * function.c (emit_use_return_register_into_block): Delete.
7630         (gen_return_pattern): Delete.
7631         (emit_return_into_block): Delete.
7632         (active_insn_between): Delete.
7633         (convert_jumps_to_returns): Delete.
7634         (emit_return_for_exit): Delete.
7635         (thread_prologue_and_epilogue_insns): Delete all code dealing with
7636         simple_return for shrink-wrapped blocks.
7637         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
7638         end of blocks that need one.
7639         (get_unconverted_simple_return): Delete.
7640         (convert_to_simple_return): Delete.
7641         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
7642         (convert_to_simple_return): Ditto.
7643
7644 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7645
7646         * cfgcleanup.c (bb_is_just_return): New function.
7647         (try_optimize_cfg): Simplify jumps to return, branches to return,
7648         and branches around return.
7649
7650 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7651
7652         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
7653         branch to a return.
7654
7655 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
7656
7657         PR c++/70906
7658         PR c++/70933
7659         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
7660         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
7661         assert flags & OEP_HASH_CHECK, instead of asserting it
7662         never happens.  Handle TARGET_EXPR.
7663         * fold-const.c (operand_equal_p): For hash verification,
7664         or in OEP_HASH_CHECK into flags.
7665
7666 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7667
7668         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
7669         comment.
7670         (compute_samebase_partition_bases): Fix typo.
7671
7672 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
7673
7674         * config/i386/sse.md (vec_interleave_highv8sf,
7675         vec_interleave_lowv8sf, vec_interleave_highv4df,
7676         vec_interleave_lowv4df): Remove constraints from expanders.
7677
7678         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
7679
7680 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
7681
7682         * tree-inline.c (expand_call_inline): Fix path dealing with
7683         making lhs of call statement undefined.
7684
7685 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
7686
7687         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
7688         Check availability on NODE, too.
7689         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
7690         (cgraph_node::call_for_symbol_and_aliases): Likewise.
7691         (varpool_node::call_for_symbol_and_aliase): Likewise.
7692         * ipa-pure-const.c (add_new_function): Analyze all bodies.
7693         (propagate_pure_const): Propagate across interposable functions, too.
7694         (skip_function_for_local_pure_const): Do not skip interposable bodies
7695         with aliases.
7696         (pass_local_pure_const::execute): Update.
7697
7698 2016-05-04  Marek Polacek  <polacek@redhat.com>
7699
7700         * doc/invoke.texi: Document -Wdangling-else.
7701
7702 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7703
7704         * config.gcc: Error out when conflicting multilib is detected.  Do not
7705         loop over multilibs since no combination is legal.
7706
7707 2016-05-04  Alan Modra  <amodra@gmail.com>
7708
7709         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
7710         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
7711         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
7712         Align .toc.
7713
7714 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
7715
7716         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
7717         Clean up p5600 comments.
7718
7719 2016-05-04  Richard Biener  <rguenther@suse.de>
7720
7721         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
7722         constructor simplifications.
7723         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
7724
7725 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
7726
7727         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
7728         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
7729         result.set_rtx is null instead of aborting.
7730         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
7731         Always enable.
7732         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
7733         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
7734         *mov<mode>_store_postinc): New patterns.
7735
7736 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
7737
7738         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
7739         as commutative.  Check both conversions are NOP.
7740         ((A & B) OP (C & B)): Remove.
7741
7742 2016-05-04  Alan Modra  <amodra@gmail.com>
7743
7744         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
7745
7746 2016-05-04  Alan Modra  <amodra@gmail.com>
7747
7748         PR target/70866
7749         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
7750         when cr2,3,4 are all fixed regs.
7751
7752 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
7753
7754         PR rtl-optimization/57193
7755         * opts.c (default_options_table): Revert OPT_frename_registers change.
7756         * doc/invoke.texi (-frename-registers, -O2): Likewise.
7757
7758 2016-05-03  Martin Sebor  <msebor@redhat.com>
7759
7760         PR c++/66561
7761         * builtins.c (fold_builtin_FILE): New function.
7762         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
7763         (fold_builtin_0): Call them.
7764         * gimplify.c (gimplify_call_expr): Remove the handling of
7765         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
7766
7767         PR c++/66561
7768         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
7769         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
7770         constants.
7771
7772         PR c++/66639
7773         * doc/extend.texi (Function Names as Strings): Update __func__,
7774         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
7775         constants.
7776
7777 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7778             Richard Biener  <rguenther@suse.de>
7779
7780         PR tree-optimization/70916
7781         * tree-if-conv.c: Include cfganal.h.
7782         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
7783         and remove_fake_exit_edges around the optimization pass.
7784
7785 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
7786
7787         * cgraph.c (symbol_table::create_edge): Set inline_failed.
7788         (cgraph_edge::make_direct): Likewise.
7789         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
7790         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
7791         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
7792         (CIF_THUNK): New code.
7793         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
7794         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
7795         (compute_inline_parameters): Set inline_failed for thunks.
7796         (inline_analyze_function): Cleanup.
7797         * ipa-inline.c (can_inline_edge_p): Do not deal with
7798         call_stmt_cannot_inline_p.
7799         (can_early_inline_edge_p): Likewise.
7800         (early_inliner): Initialize inline_failed.
7801         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
7802
7803 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
7804
7805         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
7806         from nonimm_ssenomem_operand.
7807         (nonimm_ssenomem_operand): New predicate.
7808         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
7809         as operand 0 predicate.
7810         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
7811         Disable unsupported alternatives using "enabled" attribute.
7812         Use register_ssemem_operand as operand 0 predicate.
7813         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
7814
7815 2016-05-03  Marek Polacek  <polacek@redhat.com>
7816
7817         PR c/70859
7818         * input.c (expansion_point_location): New function.
7819         * input.h (expansion_point_location): Declare.
7820
7821 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
7822
7823         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
7824         occurence with frame_offset_ ones.
7825
7826 2016-05-03  Alan Modra  <amodra@gmail.com>
7827
7828         PR rtl-optimization/70890
7829         * ira.c (combine_and_move_insns): When moving def_insn, remove
7830         equivs on use_insn.
7831
7832 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7833
7834         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
7835         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
7836         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
7837         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
7838
7839 2016-05-03  Alan Modra  <amodra@gmail.com>
7840
7841         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
7842         for SAVE_MULTIPLE/STORE_MULTIPLE.
7843
7844 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7845
7846         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
7847         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
7848
7849 2016-05-03  Richard Biener  <rguenther@suse.de>
7850
7851         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
7852         default true.
7853         (gimplify_arg): Likewise.
7854         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
7855         re-writing the result to a decl if required.
7856         (internal_get_tmp_var): Add allow_ssa parameter
7857         and override into_ssa with it.
7858         (get_formal_tmp_var): Adjust.
7859         (get_initialized_tmp_var): Add allow_ssa parameter.
7860         (gimplify_arg): Add allow_ssa parameter and avoid generating
7861         SSA names for the result false.
7862         (gimplify_call_expr): If the call may return twice do not
7863         gimplify parameters into SSA.
7864         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
7865         (gimplify_modify_expr): Adjust assert.  For noreturn calls
7866         with a SSA name LHS adjust its def.
7867         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
7868         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
7869         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
7870         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
7871         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
7872         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
7873         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
7874         (optimize_target_teams): Do not allow SSA names for clause operands.
7875         (gimplify_expr): Likewise for where we mark the result addressable.
7876         * passes.def (pass_init_datastructures): Remove.
7877         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
7878         (rewrite_stmt): Likewise.
7879         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
7880         (replace_locals_op): Replace SSA names.
7881         (copy_gimple_seq_and_replace_locals): Init src_cfun.
7882         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
7883         * cgraph.c (release_function_body): Free CFG annotations only
7884         when we have a CFG.  Simplify.
7885         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
7886         force_gimple_operand instead of get_initialized_tmp_var.
7887         * tree-pass.h (make_pass_init_datastructures): Remove.
7888         * tree-ssa.c (execute_init_datastructures): Remove.
7889         (pass_data_init_datastructures): Likewise.
7890         (class pass_init_datastructures): Likewise.
7891         (make_pass_init_datastructures): Likewise.
7892         * omp-low.c (create_omp_child_function): Init SSA data structures.
7893         (grid_expand_target_grid_body): Likewise.
7894         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
7895         name before adding it to names_to_release.
7896         (remove_bb): Always release SSA defs.
7897         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
7898         before dereferencing it.
7899         * cgraphunit.c (init_lowered_empty_function): Always
7900         int SSA data structures.
7901         * tree-ssanames.c (release_defs): Remove assert that we are in
7902         SSA form.
7903         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
7904
7905 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7906             Uros Bizjak  <ubizjak@gmail.com>
7907
7908         PR rtl-optimization/70467
7909         * config/i386/predicates.md (x86_64_hilo_int_operand,
7910         x86_64_hilo_general_operand): New predicates.
7911         * config/i386/constraints.md (Wd): New constraint.
7912         * config/i386/i386.md (mode attr di): Use Wd instead of e.
7913         (general_hilo_operand): New mode attr.
7914         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
7915         instead of <general_operand>.
7916         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
7917         x86_64_hilo_general_operand instead of <general_operand>.
7918
7919 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7920
7921         PR tree-optimization/70916
7922         * tree-if-conv.c (constant_or_ssa_name): Removed.
7923         (fold_build_cond_expr): Use is_gimple_val instead of
7924         constant_or_ssa_name.
7925
7926         PR tree-optimization/70916
7927         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
7928         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
7929
7930         PR target/49244
7931         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
7932         (optimize_atomic_bit_test_and): New function.
7933         (pass_fold_builtins::execute): Use it.
7934         * optabs.def (atomic_bit_test_and_set_optab,
7935         atomic_bit_test_and_complement_optab,
7936         atomic_bit_test_and_reset_optab): New optabs.
7937         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
7938         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
7939         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
7940         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
7941         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
7942         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
7943         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
7944         * doc/md.texi (atomic_bit_test_and_set@var{mode},
7945         atomic_bit_test_and_complement@var{mode},
7946         atomic_bit_test_and_reset@var{mode}): Document.
7947         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
7948         atomic_bit_test_and_complement<mode>,
7949         atomic_bit_test_and_reset<mode>): New expanders.
7950         (atomic_bit_test_and_set<mode>_1,
7951         atomic_bit_test_and_complement<mode>_1,
7952         atomic_bit_test_and_reset<mode>_1): New insns.
7953
7954 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
7955
7956         PR rtl-optimization/70687
7957         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
7958         instead of unsigned HOST_WIDE_INT.
7959
7960 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
7961
7962         PR rtl-optimization/44281
7963         * hard-reg-set.h (struct target_hard_regs): New field
7964         x_fixed_nonglobal_reg_set.
7965         (fixed_nonglobal_reg_set): New macro.
7966         * reginfo.c (init_reg_sets_1): Initialize it.
7967         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
7968         of fixed_reg_set.
7969         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
7970
7971 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
7972
7973         PR tree-optimization/56541
7974         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
7975         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
7976         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
7977         (any_complicated_phi): new static variable.
7978         (aggressive_if_conv): delete.
7979         (if_convertible_phi_p): support phis with more than two arguments.
7980         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
7981         critical pred edges.
7982         (ifcvt_split_critical_edges): support phis with more than two
7983         arguments by checking new parameter.  only split critical edges
7984         if needed.
7985         (tree_if_conversion): handle simd pragma marked loop using new
7986         local variable aggressive_if_conv.  check any_complicated_phi.
7987
7988 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
7989
7990         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
7991         before using it.
7992
7993 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
7994
7995         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
7996         cbase.
7997
7998 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
7999
8000         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
8001         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
8002         define_insn_and_split.
8003         (mulsi3_i): New define_insn_and_split.
8004         (mulsi3_call): Convert to define_insn.
8005         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
8006         Remove constraints.
8007
8008 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
8009
8010         * machmode.h (mode_complex): Add support to give the complex mode
8011         for a given mode.
8012         (GET_MODE_COMPLEX_MODE): Likewise.
8013         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
8014         stored by build_complex_type and gfc_build_complex_type instead of
8015         trying to figure out the appropriate mode based on the size. Raise
8016         an assertion error, if the type was not set.
8017         * genmodes.c (struct mode_data): Add field for the complex type of
8018         the given type.
8019         (blank_mode): Likewise.
8020         (make_complex_modes): Remember the complex mode created in the
8021         base type.
8022         (emit_mode_complex): Write out the mode_complex array to map a
8023         type mode to the complex version.
8024         (emit_insn_modes_c): Likewise.
8025         * tree.c (build_complex_type): Set the complex type to use before
8026         calling layout_type.
8027         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
8028         support for __float128 complex datatypes.
8029         (rs6000_hard_regno_mode_ok): Likewise.
8030         (rs6000_setup_reg_addr_masks): Likewise.
8031         (rs6000_complex_function_value): Likewise.
8032         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
8033         __float128 and __ibm128 complex.
8034         (FLOAT128_IBM_P): Likewise.
8035         (ALTIVEC_ARG_MAX_RETURN): Likewise.
8036         * doc/extend.texi (Additional Floating Types): Document that
8037         -mfloat128 must be used to enable __float128.  Document complex
8038         __float128 and __ibm128 support.
8039
8040 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
8041
8042         PR target/49244
8043         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
8044         char/short arguments promoted to int because of promote_prototypes.
8045
8046 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
8047
8048         * config/i386/predicates.md (register_ssemem_operand): New predicate.
8049         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
8050         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
8051         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
8052         alternatives using "enabled" attribute.  Use register_ssemem_operand
8053         as operand 1 predicate.
8054         (*cmpi<unord>xf_i387): Split XFmode pattern from
8055         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
8056         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
8057         *absneg<mode>2_i387.  Disable unsupported alternatives using
8058         "enabled" attribute.
8059         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
8060
8061 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
8062
8063         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
8064         marker.
8065         (oacc_loop_process): Check mask for loop termination.
8066
8067 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
8068
8069         * cif-code.def (CIF_THUNK): Add.
8070         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
8071         accidental change.
8072
8073 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
8074
8075         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
8076         (dump_inline_summary): Dump it.
8077         (fp_expression_p): New predicate.
8078         (estimate_function_body_sizes): Use it.
8079         (inline_merge_summary): Merge fp_expressions.
8080         (inline_read_section): Read fp_expressions.
8081         (inline_write_summary): Write fp_expressions.
8082         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
8083         codegen boundary if either caller or callee is !fp_expressions.
8084         * ipa-inline.h (inline_summary): Add fp_expressions.
8085         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
8086         to fp_expressions be sure the fp generation flags are updated.
8087
8088 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
8089
8090         PR rtl-optimization/70467
8091         * cse.c (cse_insn): Handle no-op MEM moves after folding.
8092
8093         PR rtl-optimization/70467
8094         * ipa-pure-const.c (check_call): Handle internal calls even in
8095         ipa mode like in local mode.
8096
8097 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8098
8099         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
8100
8101 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
8102
8103         * match.pd (X u< X, X u> X): New transformations.
8104
8105 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
8106
8107         * flag-types.h (enum warn_strict_overflow_code): Move ...
8108         * coretypes.h: ... here.
8109         * fold-const.h (fold_overflow_warning): Declare.
8110         * fold-const.c (fold_overflow_warning): Make non-static.
8111         (fold_comparison): Move the transformation of X +- C1 CMP C2
8112         into X CMP C2 -+ C1 ...
8113         * match.pd: ... here.
8114         * gimple-fold.c (fold_stmt_1): Protect with
8115         fold_defer_overflow_warnings.
8116
8117 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
8118
8119         * omp-low.c (struct oacc_loop): Add 'inner' field.
8120         (new_oacc_loop_raw): Initialize it to zero.
8121         (oacc_loop_fixed_partitions): Initialize it.
8122         (oacc_loop_auto_partitions): Partition outermost loop to outermost
8123         available partitioning.
8124
8125 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8126
8127         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
8128         register_operand.
8129         (umulsidi3): Likewise.
8130         (indirect_jump): Fix jump instruction assembly patterns.
8131
8132 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
8133
8134         PR target/70860
8135         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
8136         (nvptx_function_value): Assert non-NULL cfun.
8137
8138 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
8139
8140         PR rtl-optimization/70886
8141         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
8142
8143         * cselib.h (rtx_equal_for_cselib_1): Declare.
8144         (rtx_equal_for_cselib_p: New inline function.
8145         * cselib.c (rtx_equal_for_cselib_p): Delete.
8146         (rtx_equal_for_cselib_1): Make public.
8147
8148 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
8149
8150         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
8151         (register_mixssei387nonimm_operand): Remove predicate.
8152         * config/i386/i386.md (*fop_<mode>_comm): Merge from
8153         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
8154         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
8155         for TARGET_MIX_SSE_I387 alternatives.
8156         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
8157         Disable unsupported alternatives using "enabled" attribute.  Use
8158         nonimm_ssenomem_operand as operand 1 predicate.  Also check
8159         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
8160
8161 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8162
8163         * tree.c (cst_and_fits_in_hwi): Simplify.
8164
8165 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8166
8167         * tree.h (wi::to_wide): New function.
8168         * expr.c (expand_expr_real_1): Use wi::to_wide.
8169         * fold-const.c (int_const_binop_1): Likewise.
8170         (extract_muldiv_1): Likewise.
8171
8172 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8173
8174         * wide-int.h: Update offset_int and widest_int documentation.
8175         (WI_SIGNED_SHIFT_RESULT): New macro.
8176         (wi::binary_shift): Define signed_shift_result_type for
8177         shifts on offset_int- and widest_int-like types.
8178         (generic_wide_int): Support <<= and >>= if << and >> are supported.
8179         * tree.h (int_bit_position): Use shift operators instead of wi::
8180          shifts.
8181         * alias.c (adjust_offset_for_component_ref): Likewise.
8182         * expr.c (get_inner_reference): Likewise.
8183         * fold-const.c (fold_comparison): Likewise.
8184         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
8185         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
8186         * tree-dfa.c (get_ref_base_and_extent): Likewise.
8187         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
8188         (stmt_kills_ref_p): Likewise.
8189         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
8190         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
8191         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8192         (ao_ref_init_from_vn_reference): Likewise.
8193
8194 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8195
8196         * wide-int.h: Update offset_int and widest_int documentation.
8197         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
8198         (wi::binary_traits): Allow ordered comparisons between offset_int and
8199         offset_int, between widest_int and widest_int, and between either
8200         of these types and basic C types.
8201         (operator <, <=, >, >=): Define for the same combinations.
8202         * tree.h (tree_int_cst_lt): Use comparison operators instead
8203         of wi:: comparisons.
8204         (tree_int_cst_le): Likewise.
8205         * gimple-fold.c (fold_array_ctor_reference): Likewise.
8206         (fold_nonarray_ctor_reference): Likewise.
8207         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
8208         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
8209         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
8210         * tree-sra.c (completely_scalarize): Likewise.
8211         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
8212         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
8213         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
8214         (check_for_binary_op_overflow): Likewise.
8215         (search_for_addr_array): Likewise.
8216         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
8217
8218 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8219
8220         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
8221         (arc_save_restore): Likewise.
8222         (arc_dwarf_register_span): Likewise.
8223         (arc_output_pic_addr_const): Initialize suffix variable.
8224
8225 2016-05-02  Martin Liska  <mliska@suse.cz>
8226
8227         * symbol-summary.h (function_summary::function_summary):
8228         Remove checking assert for all cgraph nodes.
8229         (function_summary::get): Check summary_uid.
8230         (symtab_insertion): Check summary_uid.
8231
8232 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8233
8234         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
8235         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
8236         bmaskn instruction.
8237         (arc_dwarf_register_span): Remove enum keyword.
8238         (compact_memory_operand_p): New function.
8239         * config/arc/arc.h (reg_class): Add code density register classes.
8240         (REG_CLASS_NAMES): Likewise.
8241         (REG_CLASS_CONTENTS): Likewise.
8242         * config/arc/arc.md (*movqi_insn): Add code density instructions.
8243         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
8244         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
8245         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
8246         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
8247         constraints.
8248         (h, Rcd, Rsd, Rzd): New register constraints.
8249         (T): Use compact_memory_operand_p function.
8250         * config/arc/predicates.md (compact_load_memory_operand): Remove.
8251
8252 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
8253
8254         * config/sh/sh.md (*negnegt, *movtt): Remove.
8255
8256 2016-05-02  Marek Polacek  <polacek@redhat.com>
8257             Tom de Vries  <tom@codesourcery.com>
8258
8259         PR tree-optimization/70700
8260         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
8261         bigger than FIRST_REF_NODE.
8262
8263 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
8264
8265         PR target/52898
8266         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
8267         TARGET_CMPEQDI_T.
8268         (prepare_cbranch_operands): Don't use scratch register.  Assume that
8269         function is used when pseudos can be created.
8270         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
8271         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
8272         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
8273         define_expand.  Allow it only when pseudos can be created.
8274         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
8275
8276 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
8277
8278         * config/i386/constraints.md (BC): Only allow -1 operands.
8279         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
8280         Add "enabled" attribute.  Update XI mode attribute calculation.
8281         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
8282         (*movoi_internal_avx): Update XI mode attribute calculation.
8283         (*movti_internal): Ditto.
8284
8285 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8286
8287         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
8288         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
8289
8290 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
8291
8292         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
8293         statement on instruction code.  Remove trailing spaces.
8294         (altivec_expand_stv_builtin): Likewise.
8295
8296 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8297
8298         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
8299         (TARGET_FPU_DOUBLE): Simplify.
8300         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
8301         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
8302         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
8303         with 'TARGET_FPU_DOUBLE'.
8304         * config/sh/sh.md: Likewise.
8305
8306 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
8307
8308         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
8309         SH_DIV_STR_FOR_SIZE): Remove.
8310         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
8311         SH_DIV_STR_FOR_SIZE): Remove.
8312
8313 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8314
8315         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
8316         logical_reg_operand): Delete.
8317         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
8318         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
8319         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
8320         match_operand and match_test.
8321         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
8322         variables on their first use.  Return bool values.
8323         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
8324         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
8325         arith_reg_operand for input operand.  Remove empty constraints.
8326         (xorsi3): Delete.
8327         (*xorsi3_compact): Rename to xorsi3.
8328         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
8329         (*zero_extend<mode>si2_disp_mem): Update comment.
8330         (mov_nop): Delete.
8331
8332 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
8333
8334         * config/sh/t-sh: Remove SH5 support.
8335         * config.gcc: Likewise.
8336         * configure: Likewise.
8337
8338 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8339
8340         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
8341
8342 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
8343
8344         * config/sh/sh.c (register_sh_passes, sh_option_override,
8345         sh_print_operand, prepare_move_operands,
8346         sh_can_follow_jump): Remove TARGET_SH1 checks.
8347         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
8348         PROMOTE_MODE): Likewise.
8349         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
8350         movdi): Likewise.
8351
8352 2016-04-30  Alan Modra  <amodra@gmail.com>
8353
8354         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
8355         restoring when fixed_reg_p, but allow out-of-line or stmw save.
8356         Check for user regs later to avoid unnecessary looping over regs.
8357         Merge user reg check with non-saved reg check.  Don't force
8358         inline VR restore when static chain used.
8359         (rs6000_frame_related): Omit eh_frame info for user regs when
8360         saving.
8361         (fixed_regs_p): Delete.
8362
8363 2016-04-30  Alan Modra  <amodra@gmail.com>
8364
8365         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
8366         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
8367         Update all uses.
8368
8369 2016-04-30  Alan Modra  <amodra@gmail.com>
8370
8371         PR target/69645
8372         * config/rs6000/rs6000.c (fixed_reg_p): New function.
8373         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
8374         Update all uses.
8375
8376 2016-04-30  Alan Modra  <amodra@gmail.com>
8377
8378         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
8379         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
8380         flag_pic test for Darwin.
8381
8382 2016-04-30  Alan Modra  <amodra@gmail.com>
8383
8384         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
8385         throw_calls_crossed.
8386         (REG_FREQ_CALLS_CROSSED): Delete.
8387         (REG_N_THROWING_CALLS_CROSSED): Delete.
8388         * regstat.c (regstat_bb_compute_ri): Don't calculate
8389         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
8390         (dump_reg_info): Don't print call cross frequency.
8391         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
8392         and REG_N_THROWING_CALLS_CROSSED.
8393
8394 2016-04-30  Alan Modra  <amodra@gmail.com>
8395
8396         * regs.h (struct reg_info_t): Delete live_length.
8397         (REG_LIVE_LENGTH): Delete macro.
8398         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
8399         local_live, local_processed and local_live_last_luid params.
8400         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
8401         Formatting fixes.
8402         (regstat_compute_ri): Adjust for above.  Don't set
8403         REG_LIVE_LENGTH.
8404         (dump_reg_info): Don't print live length.
8405         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
8406         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
8407         Localize loop_depth var.
8408
8409 2016-04-30  Alan Modra  <amodra@gmail.com>
8410
8411         * ira.c (enum valid_equiv): New.
8412         (validate_equiv_mem): Return enum.
8413         (update_equiv_mem): Create replacement in more cases.
8414         (add_store_equivs): Update validate_equiv_mem call.
8415
8416 2016-04-30  Alan Modra  <amodra@gmail.com>
8417
8418         * ira.c (combine_and_move_insns): Rather than scanning insns,
8419         use DF infrastucture to find use and def insns.
8420
8421 2016-04-30  Alan Modra  <amodra@gmail.com>
8422
8423         ira.c (combine_and_move_insns): Move invariant conditions..
8424         (ira.c): ..to here.  Call combine_and_move_insns before
8425         add_store_equivs.  Call grow_reg_equivs later.  Allocate
8426         req_equiv later using max_reg_num() rather than global max_regno.
8427         (contains_replace_regs): Delete.
8428         (add_store_equivs): Remove contains_replace_regs test.
8429
8430 2016-04-30  Alan Modra  <amodra@gmail.com>
8431
8432         * ira.c (struct equiv_mem_data): New.
8433         (equiv_mem, equiv_mem_modified): Delete static vars.
8434         (validate_equiv_mem_from_store): Use "data" param to communicate..
8435         (validate_equiv_mem): ..from here.
8436
8437 2016-04-30  Alan Modra  <amodra@gmail.com>
8438
8439         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
8440         split out from..
8441         (update_reg_equivs): ..here.  Move allocation and freeing of
8442         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
8443         end_alias_analysis to..
8444         (ira): ..here.
8445
8446 2016-04-30  Alan Modra  <amodra@gmail.com>
8447
8448         * ira.c (pdx_subregs): Delete.
8449         (struct equivalence): Add pdx_subregs field.
8450         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
8451         pdx_subregs access.
8452         (update_equiv_regs): Don't create or free pdx_subregs.  Update
8453         pdx_subregs access.
8454
8455 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8456
8457         * config/rs6000/altivec.h: Change definitions of vec_xl and
8458         vec_xst.
8459         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
8460         (LD_ELEMREV_V2DI): New.
8461         (LD_ELEMREV_V4SF): New.
8462         (LD_ELEMREV_V4SI): New.
8463         (LD_ELEMREV_V8HI): New.
8464         (LD_ELEMREV_V16QI): New.
8465         (ST_ELEMREV_V2DF): New.
8466         (ST_ELEMREV_V2DI): New.
8467         (ST_ELEMREV_V4SF): New.
8468         (ST_ELEMREV_V4SI): New.
8469         (ST_ELEMREV_V8HI): New.
8470         (ST_ELEMREV_V16QI): New.
8471         (XL): New.
8472         (XST): New.
8473         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8474         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
8475         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
8476         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
8477         (altivec_expand_builtin): Add handling for
8478         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
8479         (rs6000_invalid_builtin): Add error-checking for
8480         RS6000_BTM_P9_VECTOR.
8481         (altivec_init_builtins): Define builtins used to implement vec_xl
8482         and vec_xst.
8483         (rs6000_builtin_mask_names): Define power9-vector.
8484         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
8485         (RS6000_BTM_P9_VECTOR): Define.
8486         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
8487         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
8488         (vsx_ld_elemrev_v2df): Likewise.
8489         (vsx_ld_elemrev_v4sf): Likewise.
8490         (vsx_ld_elemrev_v4si): Likewise.
8491         (vsx_ld_elemrev_v8hi): Likewise.
8492         (vsx_ld_elemrev_v16qi): Likewise.
8493         (vsx_st_elemrev_v2df): Likewise.
8494         (vsx_st_elemrev_v2di): Likewise.
8495         (vsx_st_elemrev_v4sf): Likewise.
8496         (vsx_st_elemrev_v4si): Likewise.
8497         (vsx_st_elemrev_v8hi): Likewise.
8498         (vsx_st_elemrev_v16qi): Likewise.
8499         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
8500         grammar.
8501
8502 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
8503
8504         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
8505         out into ...
8506         (simplify_control_stmt_condition_1): ... here.  Recurse into
8507         BIT_AND_EXPRs and BIT_IOR_EXPRs.
8508
8509 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
8510
8511         PR target/69810
8512         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
8513         (zero_extendqi<mode>2_dot): Revert earlier conversion from
8514         define_insn_and_split to define_insn.
8515         (zero_extendqi<mode>2_dot2): Same.
8516         (extendqi<mode>2_dot): Same.
8517         (extendqi<mode>2_dot2): Same.
8518
8519 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8520
8521         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
8522         (probe_stack): New expander.
8523         (probe_stack_<mode>): New insn pattern.
8524
8525 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8526
8527         * config/i386/i386.md
8528         (operations with memory inputs setting flags peephole2):
8529         Remove uneeded REG_P checks.  Cleanup pattern generation.
8530
8531 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
8532
8533         * tree-vect-loop.c (vect_transform_loop): Fix
8534         nb_iterations_upper_bound computation for vectorized loop.
8535
8536 2016-04-29  Marek Polacek  <polacek@redhat.com>
8537             Jakub Jelinek  <jakub@redhat.com>
8538
8539         PR sanitizer/70342
8540         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
8541         TARGET_EXPR_SLOT as a base.
8542
8543 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
8544
8545         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
8546         with 'rCm2' constraints to limit possible immediate size.
8547         (*load_zeroextendqisi_update): Likewise.
8548         (*load_signextendqisi_update): Likewise.
8549         (*loadhi_update): Likewise.
8550         (*load_zeroextendhisi_update): Likewise.
8551         (*load_signextendhisi_update): Likewise.
8552         (*loadsi_update): Likewise.
8553         (*loadsf_update): Likewise.
8554
8555 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8556
8557         * config/i386/predicates.md (constm1_operand): Fix comparison.
8558
8559 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
8560
8561         * testsuite/gcc.target/arc/ieee_eq.c: New test.
8562
8563 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
8564
8565         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
8566         remaining SH5 related settings.
8567         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
8568         shmedia_prepare_call_address): Delete.
8569         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
8570         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
8571         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
8572         UNSUPPORTED_SH2A): Remove m5 checks.
8573         (sh_divide_strategy_e): Remove SH5 division strategies.
8574         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
8575         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
8576
8577 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8578
8579         * config/s390/s390.c (s390_rtx_costs): Update documentation.
8580
8581 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8582
8583         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
8584         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
8585         Change lder to ldr.
8586         * config/s390/vector.md ("mov<mode>"): Likewise.
8587
8588 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
8589
8590         * config/s390/constraints.md ("U", "W"): Invoke
8591         s390_mem_constraint with "ZR" and "ZT".
8592         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
8593         addresses when using LRA.  Accept also short displacements for S
8594         and T constraints.  Do not check for long displacement target for
8595         S and T constraints.
8596         (s390_mem_constraint): Remove handling of U and W constraints.
8597         * config/s390/s390.md (various patterns): Remove the short
8598         displacement constraints (Q and R) if a long displacement
8599         constraint is present.  Add longdisp as required CPU capability.
8600         * config/s390/vector.md: Likewise.
8601         * config/s390/vx-builtins.md: Likewise.
8602
8603 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8604
8605         PR target/60040
8606         * reload1.c (reload): Call finish_spills before
8607         restarting reload loop. Skip select_reload_regs
8608         if update_eliminables_and_spill returns true.
8609
8610 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
8611
8612         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
8613         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
8614         (umulhisi3_imm): Update predicates and constraint letters.
8615         (umulhisi3_reg): Declare instruction as commutative.
8616         * config/arc/constraints.md (J12, J16): New constraints.
8617         * config/arc/predicates.md (short_unsigned_const_operand): New
8618         predicate.
8619         (arc_short_operand): Likewise.
8620         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
8621
8622 2016-04-29  Richard Biener  <rguenther@suse.de>
8623
8624         PR tree-optimization/13962
8625         PR tree-optimization/65686
8626         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
8627         * tree-ssa-alias.c (ptrs_compare_unequal): New function
8628         using PTA to compare pointers.
8629         * match.pd: Add pattern for pointer equality compare simplification
8630         using ptrs_compare_unequal.
8631
8632 2016-04-29  Richard Biener  <rguenther@suse.de>
8633
8634         * stor-layout.c (layout_type): Do not build a pointer-to-element
8635         type for arrays.
8636
8637 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8638
8639         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
8640         Use SWI mode iterator.  Use general_reg_operand predicate.
8641         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
8642         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
8643         predicates.
8644
8645 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
8646
8647         PR middle-end/70843
8648         * fold-const.c (operand_equal_p): Don't verify hash value equality
8649         if arg0 == arg1.
8650         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
8651         and OMP_CLAUSE.
8652
8653 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8654
8655         PR target/70858
8656         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
8657         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
8658         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
8659         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
8660         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
8661
8662 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8663
8664         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
8665         to info.  Don't initialize separate fields to 0.  Clean up
8666         formatting a bit.
8667
8668 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8669
8670         * config/i386/i386.md (peephole2s for operations with memory inputs):
8671         Use SWI mode iterator.
8672         (peephole2s for operations with memory outputs): Ditto.
8673         Do not check for stack checking probe.
8674
8675         (probe_stack): Remove expander.
8676
8677 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8678             Andrew Burgess  <andrew.burgess@embecosm.com>
8679
8680         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
8681         operands as 32-bits.
8682
8683 2016-04-28  Jason Merrill  <jason@redhat.com>
8684
8685         * gdbinit.in: Skip line-map.h.
8686
8687 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8688             Andrew Burgess  <andrew.burgess@embecosm.com>
8689
8690         * config/arc/arc.c (arc_conditional_register_usage): Take
8691         TARGET_RRQ_CLASS into account.
8692         (arc_print_operand): Support printing 'p' and 's' operands.
8693         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
8694         as 0.
8695         (TARGET_RRQ_CLASS): Define.
8696         (IS_POWEROF2_OR_0_P): Define.
8697         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
8698         alternatives.
8699         (*tst_movb): New define_insn.
8700         (*tst): Avoid recognition if it could prevent '*tst_movb'
8701         combination; replace c/CnL with c/Chs alternative.
8702         (*tst_bitfield_tst): New define_insn.
8703         (*tst_bitfield_asr): New define_insn.
8704         (*tst_bitfield): New define_insn.
8705         (andsi3_i): Add Rrq variant.
8706         (extzv): New define_expand.
8707         (insv): New define_expand.
8708         (*insv_i): New define_insn.
8709         (*movb): New define_insn.
8710         (*movb_signed): New define_insn.
8711         (*movb_high): New define_insn.
8712         (*movb_high_signed): New define_insn.
8713         (*movb_high_signed + 1): New define_split pattern.
8714         (*mrgb): New define_insn.
8715         (*mrgb + 1): New define_peephole2 pattern.
8716         (*mrgb + 2): New define_peephole2 pattern.
8717         * config/arc/arc.opt (mbitops): New option for nps400, uses
8718         TARGET_NPS_BITOPS_DEFAULT.
8719         * config/arc/constraints.md (q): Make register class conditional.
8720         (Rrq): New register constraint.
8721         (Chs): New constraint.
8722         (Clo): New constraint.
8723         (Chi): New constraint.
8724         (Cbf): New constraint.
8725         (Cbn): New constraint.
8726         (C18): New constraint.
8727         (Cbi): New constraint.
8728
8729 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8730
8731         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
8732         dst->popcount.
8733         (bitmap_intersection_of_preds): Ditto.
8734         (bitmap_union_of_succs): Ditto.
8735         (bitmap_union_of_preds): Ditto.
8736         * sbitmap.c (do_popcount): Delete.
8737         (BITMAP_DEBUGGING): Delete.
8738         (sbitmap_verify_popcount): Delete.
8739         (sbitmap_alloc): Don't initialize the popcount field.
8740         (sbitmap_alloc_with_popcount): Delete.
8741         (sbitmap_resize): Don't resize the popcount array.
8742         (sbitmap_vector_alloc): Don't initialize the popcount field.
8743         (bitmap_copy): Don't copy the popcount array.
8744         (bitmap_clear): Don't clear the popcount array.
8745         (bitmap_clear): Delete the popcount array handling.
8746         (bitmap_ior_and_compl): Delete the popcount assert.
8747         (bitmap_not): Ditto.
8748         (bitmap_and_compl): Ditto.
8749         (bitmap_and): Delete the popcount array handling.
8750         (bitmap_xor): Ditto.
8751         (bitmap_ior): Ditto.
8752         (bitmap_or_and): Delete the popcount assert.
8753         (bitmap_and_or): Ditto.
8754         (popcount_table): Delete.
8755         (sbitmap_elt_popcount): Delete.
8756         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
8757         (bitmap_set_bit): Delete the popcount assert.
8758         (bitmap_clear_bit): Ditto.
8759         (sbitmap_free): Don't free the popcount array.
8760         (sbitmap_alloc_with_popcount): Delete declaration.
8761         (sbitmap_popcount): Ditto.
8762
8763 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8764             Andrew Burgess  <andrew.burgess@embecosm.com>
8765
8766         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
8767         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
8768         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
8769         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
8770         * config/arc/arc.opt (mcmem): New option.
8771         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
8772         supply length for r/m alternative.
8773         (*extendqisi2_ac): Likewise.
8774         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
8775         r/Uex alternative.
8776         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
8777         (movhi_insn): Likewise.
8778         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
8779         (*zero_extendqihi2_i): Add r/Ucm alternative.
8780         (*zero_extendqisi2_ac): Likewise.
8781         (*zero_extendhisi2_i): Likewise.
8782         * config/arc/constraints.md (Uex): New memory constraint.
8783         (Ucm): New define_constraint.
8784         * config/arc/predicates.md (long_immediate_loadstore_operand):
8785         Return 0 for MEM with cmem_address address.
8786         (cmem_address_0): New predicates.
8787         (cmem_address_1): Likewise.
8788         (cmem_address_2): Likewise.
8789         (cmem_address): Likewise.
8790
8791 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8792
8793         * config/rs6000/rs6000.c (machine_function): Rename
8794         insn_chain_scanned_p to spe_insn_chain_scanned_p.
8795         (rs6000_stack_info): Adjust.
8796
8797 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8798             Andrew Burgess  <andrew.burgess@embecosm.com>
8799
8800         * config/arc/constraints.md (Usd): Convert to define_constraint.
8801         (Us<): Likewise.
8802         (Us>): Likewise.
8803
8804 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8805
8806         PR target/70821
8807         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
8808         Add new peephole2 where the first insn is *mov<mode>_or instead of
8809         *mov<mode>_internal.
8810
8811 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
8812
8813         * tracer.c (bb_seen): Make static.
8814
8815 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
8816
8817         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
8818         support, setup defaults.
8819         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
8820         * config/arc/arc.c (arc_init): Add NPS400 support.
8821         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
8822         (TARGET_ARC700): NPS400 is also an ARC700.
8823         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
8824
8825 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8826
8827         PR target/70668
8828         * config/nds32/nds32.md (casesi): Don't access the operands array
8829         out of bounds.
8830
8831 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8832
8833         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
8834         (or $-1,reg peephole2): Ditto.
8835         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
8836
8837 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
8838
8839         * doc/extend.texi (Common Function Attributes) [optimize]:
8840         Discourage use of the optimize attribute.
8841
8842 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
8843
8844         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
8845         special case builtin.
8846         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
8847         ALTIVEC_BUILTIN_VEC_ADDE.
8848         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
8849         support for ALTIVEC_BUILTIN_VEC_ADDE.
8850         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
8851         for __builtin_vec_adde.
8852
8853 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8854
8855         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
8856         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
8857
8858 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8859
8860         PR testsuite/70595
8861         * doc/sourcebuild.texi (Effective-Target Keywords, Other
8862         attributes): Document cilkplus_runtime.
8863
8864 2016-04-28  Martin Jambor  <mjambor@suse.cz>
8865
8866         * tree-cfg.c (verify_expr): Verify that local declarations belong to
8867         this function.  Call verify_expr on MEM_REFs and bases of other
8868         handled_components.
8869
8870 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8871
8872         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
8873         for WORD_REGISTER_OPERATIONS to runtime check.
8874
8875 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8876
8877         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
8878
8879 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8880
8881         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
8882         big-endian compilation.
8883         * config/arc/arc.md (addf3): Likewise.
8884         (subdf3): Likewise.
8885         (muldf3): Likewise.
8886
8887 2016-04-28  Richard Biener  <rguenther@suse.de>
8888
8889         PR tree-optimization/70840
8890         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
8891         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
8892         Mark x * pow(x,c) -> pow(x,c+1) commutative.
8893         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
8894
8895 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8896
8897         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
8898         and explain why in a comment.
8899
8900 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8901
8902         * config/arc/arc.md (cpu_facility): Add fpx variant.
8903         (subdf3): Prohibit use reverse sub when assist operations option
8904         is enabled.
8905         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
8906         instructions only when FPX is enabled.
8907         * testsuite/gcc.target/arc/trsub.c: New test.
8908
8909 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8910
8911         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
8912         mult_operator when calculating "type" attribute.
8913         (*fop_<mode>_1_i387): Ditto.
8914         (*fop_xf_1_i387): Ditto.
8915         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
8916         Use std::swap to swap operands.  Use RTL expressions to generate
8917         converted pattern.
8918
8919 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8920             Joern Rennecke  <joern.rennecke@embecosm.com>
8921
8922         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
8923         declaration.
8924         (emit_pic_move): Remove.
8925         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
8926         * config/arc/arc.c (emit_pic_move): Removed.
8927         (TARGET_HAVE_TLS): Define.
8928         (arc_conditional_register_usage): Test for arc_tp_regno.
8929         (arc_print_operand, arc_print_operand_address): Handle TLS
8930         unspecs.
8931         (arc_needs_pcl_p): New function.
8932         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
8933         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
8934         (arc_raw_symbolic_reference_mentioned_p): Likewise.
8935         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
8936         (arc_legitimize_tls_address): Likewise.
8937         (DTPOFF_ZERO_SYM): Define.
8938         (arc_legitimize_pic_address): Make it static, handle TLS cases.
8939         (arc_output_pic_addr_const): Print TLS unspecs.
8940         (prepare_pic_move): New function, replaces emit_pic_move.
8941         (arc_legitimate_constant_p): Handle TLS unspecs.
8942         (arc_legitimate_address_p): Likewise.
8943         (arc_rewrite_small_data_p): Use assert for TLS constants.
8944         (prepare_move_operands): Use prepare_pic_move.
8945         (arc_legitimize_address): Legitimize tls addresses.
8946         (arc_epilogue_uses): Check for arc_tp_regno.
8947         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
8948         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
8949         Define.
8950         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
8951         Likewise.
8952         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
8953         %(arc_tls_extra_start_spec).
8954         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
8955         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
8956         (EH_USES): Define.
8957         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
8958         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
8959         (UNSPEC_TLS_OFF): Add.
8960         (R10_REG): Define.
8961         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
8962         (get_thread_pointersi): New patterns.
8963         * config/arc/arc.opt (mtp-regno): New option.
8964         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
8965         (move_dest_operand): Likewise.
8966         * configure: Regenerate.
8967         * configure.ac: Add arc*-*-* case to test for tls.
8968         * doc/invoke.texi (ARC options): Document mtp-regno.
8969
8970 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8971
8972         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
8973         the new ARC HS SIMD instructions.
8974         (arc_preferred_simd_mode): New function.
8975         (arc_autovectorize_vector_sizes): Likewise.
8976         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
8977         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8978         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
8979         (arc_init_builtins): Add new SIMD builtin types.
8980         (arc_split_move): Handle 64 bit vector moves.
8981         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
8982         (TARGET_PLUS_QMACW): Define.
8983         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
8984         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
8985         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
8986         (VSUBADD4H): New builtins.
8987         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
8988         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
8989
8990 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
8991             Matthias Klose  <doko@debian.org>
8992
8993         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
8994
8995 2016-04-28  Richard Biener  <rguenther@suse.de>
8996
8997         PR middle-end/70777
8998         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
8999         canonicalization.
9000
9001 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
9002
9003         * common/config/sh/sh-common.c: Remove SH5 support.
9004         * config/sh/constraints.md: Likewise.
9005         * config/sh/config/sh/elf.h: Likewise.
9006         * config/sh/linux.h: Likewise.
9007         * config/sh/netbsd-elf.h: Likewise.
9008         * config/sh/predicates.md: Likewise.
9009         * config/sh/sh-c.c: Likewise.
9010         * config/sh/sh-protos.h: Likewise.
9011         * config/sh/sh.c: Likewise.
9012         * config/sh/sh.h: Likewise.
9013         * config/sh/sh.md: Likewise.
9014         * config/sh/sh.opt: Likewise.
9015         * config/sh/sync.md: Likewise.
9016         * config/sh/sh64.h: Delete.
9017         * config/sh/shmedia.h: Likewise.
9018         * config/sh/shmedia.md: Likewise.
9019         * config/sh/sshmedia.h: Likewise.
9020         * config/sh/t-netbsd-sh5-64: Likewise.
9021         * config/sh/t-sh64: Likewise.
9022         * config/sh/ushmedia.h: Likewise.
9023
9024 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
9025
9026         * config/i386/i386.md (sign_extend to memory peephole2s): Use
9027         general_reg_operand instead of register_operand predicate.
9028
9029 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9030
9031         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
9032
9033 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
9034
9035         * match.pd (A - B > A, A + B < A): New transformations.
9036
9037 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
9038
9039         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
9040         which defaults to true.  Emit an outer pair of parentheses only if
9041         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
9042         don't emit parentheses for the right-hand operand.
9043
9044 2016-04-27  Jeff Law  <law@redhat.com>
9045
9046         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
9047
9048 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9049
9050         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
9051         (altivec_lvx_<mode>_internal): Document.
9052         (altivec_lvx_<mode>_2op): New define_insn.
9053         (altivec_lvx_<mode>_1op): Likewise.
9054         (altivec_lvx_<mode>_2op_si): Likewise.
9055         (altivec_lvx_<mode>_1op_si): Likewise.
9056         (altivec_stvx_<mode>): Remove.
9057         (altivec_stvx_<mode>_internal): Document.
9058         (altivec_stvx_<mode>_2op): New define_insn.
9059         (altivec_stvx_<mode>_1op): Likewise.
9060         (altivec_stvx_<mode>_2op_si): Likewise.
9061         (altivec_stvx_<mode>_1op_si): Likewise.
9062         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9063         Expand vec_ld and vec_st during parsing.
9064         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
9065         changes.
9066         (altivec_expand_stvx_be): Likewise.
9067         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
9068         address-masking behavior in RTL.
9069         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
9070         address-masking behavior in RTL.
9071         (altivec_expand_builtin): Change builtin code arguments for calls
9072         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
9073         (insn_is_swappable_p): Avoid incorrect swap optimization in the
9074         presence of lvx/stvx patterns.
9075         (alignment_with_canonical_addr): New function.
9076         (alignment_mask): Likewise.
9077         (find_alignment_op): Likewise.
9078         (recombine_lvx_pattern): Likewise.
9079         (recombine_stvx_pattern): Likewise.
9080         (recombine_lvx_stvx_patterns): Likewise.
9081         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
9082         stvx patterns from expand.
9083         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
9084         expansions.
9085         (vector_altivec_store_<mode>): Likewise.
9086
9087 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
9088
9089         * config/aarch64/aarch64.md
9090         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
9091         remove the "fp" attributes.
9092         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
9093         add the "simd" attributes.
9094         (*movdf_aarch64): Likewise.
9095         (*movtf_aarch64): Remove the "fp" attributes.
9096         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
9097         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
9098
9099 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9100
9101         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
9102         rtx to rtx_code_label *.
9103         * rtl.h (maybe_set_first_label_num): Likewise.
9104
9105 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9106
9107         * df-core.c (df_add_problem): Make the problem param be const.
9108         (df_remove_problem): Make local "problem" be const.
9109         * df-problems.c (problem_RD): Make const.
9110         (problem_LR): Likewise.
9111         (problem_LIVE): Likewise.
9112         (problem_MIR): Likewise.
9113         (problem_CHAIN): Likewise.
9114         (problem_WORD_LR): Likewise.
9115         (problem_NOTE): Likewise.
9116         (problem_MD): Likewise.
9117         * df-scan.c (problem_SCAN): Likewise.
9118         * df.h (struct df_problem): Make field "dependent_problem" be
9119         const.
9120         (struct dataflow): Likewise for field "problem".
9121         (df_add_problem): Make param const.
9122
9123 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
9124
9125         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
9126         inter-unit moves to/from vector registers are enabled.  Do not disable
9127         for TARGET_MMX.
9128
9129 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9130
9131         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
9132         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
9133         #define to...
9134         (enum df_problem_id): ...this new enum.
9135         (struct df_problem): Convert field "id" from "int" to
9136         enum df_problem_id.
9137
9138 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9139
9140         * rtl.def: Update comment for "things in the instruction chain" to
9141         reflect the removal of the leading "i" field for INSN_UID in
9142         r210360.  Fix bogus apostrophe.
9143
9144 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
9145
9146         * config/i386/i386.md
9147         (lea arith with mem operand + setcc peephole2): Set operator mode.
9148
9149 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
9150
9151         PR target/70155
9152         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
9153         (dimode_scalar_to_vector_candidate_p): This.
9154         (timode_scalar_to_vector_candidate_p): New function.
9155         (scalar_to_vector_candidate_p): Likewise.
9156         (timode_check_non_convertible_regs): Likewise.
9157         (timode_remove_non_convertible_regs): Likewise.
9158         (remove_non_convertible_regs): Likewise.
9159         (remove_non_convertible_regs): Renamed to ...
9160         (dimode_remove_non_convertible_regs): This.
9161         (scalar_chain::~scalar_chain): Make it virtual.
9162         (scalar_chain::compute_convert_gain): Make it pure virtual.
9163         (scalar_chain::mark_dual_mode_def): Likewise.
9164         (scalar_chain::convert_insn): Likewise.
9165         (scalar_chain::convert_registers): Likewise.
9166         (scalar_chain::add_to_queue): Make it protected.
9167         (scalar_chain::emit_conversion_insns): Likewise.
9168         (scalar_chain::replace_with_subreg): Likewise.
9169         (scalar_chain::replace_with_subreg_in_insn): Likewise.
9170         (scalar_chain::convert_op): Likewise.
9171         (scalar_chain::convert_reg): Likewise.
9172         (scalar_chain::make_vector_copies): Likewise.
9173         (scalar_chain::convert_registers): New pure virtual function.
9174         (class dimode_scalar_chain): New class.
9175         (class timode_scalar_chain): Likewise.
9176         (scalar_chain::mark_dual_mode_def): Renamed to ...
9177         (dimode_scalar_chain::mark_dual_mode_def): This.
9178         (timode_scalar_chain::mark_dual_mode_def): New function.
9179         (timode_scalar_chain::convert_insn): Likewise.
9180         (dimode_scalar_chain::convert_registers): Likewise.
9181         (scalar_chain::compute_convert_gain): Renamed to ...
9182         (dimode_scalar_chain::compute_convert_gain): This.
9183         (scalar_chain::replace_with_subreg): Renamed to ...
9184         (dimode_scalar_chain::replace_with_subreg): This.
9185         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
9186         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
9187         (scalar_chain::make_vector_copies): Renamed to ...
9188         (dimode_scalar_chain::make_vector_copies): This.
9189         (scalar_chain::convert_reg): Renamed to ...
9190         (dimode_scalar_chain::convert_reg ): This.
9191         (scalar_chain::convert_op): Renamed to ...
9192         (dimode_scalar_chain::convert_op): This.
9193         (scalar_chain::convert_insn): Renamed to ...
9194         (dimode_scalar_chain::convert_insn): This.
9195         (scalar_chain::convert): Call convert_registers.
9196         (convert_scalars_to_vector): Change to scalar_chain pointer to
9197         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
9198         in 32-bit mode.  Delete scalar_chain pointer.  Call
9199         free_dominance_info in 64-bit mode.
9200         (pass_stv::gate): Remove TARGET_64BIT check.
9201         (ix86_option_override): Put the 64-bit STV pass before the CSE
9202         pass.
9203
9204 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
9205
9206         * dwarf2out.h (struct dw_loc_descr_node): Remove the
9207         dw_loc_frame_offset field.
9208         * dwarf2out.c (new_loc_descr): Likewise.
9209         (resolve_args_picking_1): Turn the VISITED hash set into a
9210         FRAME_OFFSET hash map. Use it to associate a frame offset to
9211         visited nodes. Remove uses of the CHECKING_P macro.
9212         (resolve_args_picking): Update call to resolve_args_picking_1.
9213
9214 2016-04-27  Martin Liska  <mliska@suse.cz>
9215
9216         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
9217         (free_loop_data): Release vuses of groups.
9218
9219 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
9220
9221         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
9222         instead of redundant use_id and boolean have_use_for.
9223         (struct iv_use): Change sub_id into group_id.  Remove field next.
9224         Move fields: related_cands, n_map_members, cost_map and selected
9225         to ...
9226         (struct iv_group): ... here.  New structure.
9227         (struct iv_common_cand): Use structure declaration directly.
9228         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
9229         (MAX_CONSIDERED_USES): Rename macro to ...
9230         (MAX_CONSIDERED_GROUPS): ... here.
9231         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
9232         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
9233         (dump_uses): Rename to ...
9234         (dump_groups): ... here.  Update all uses.
9235         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
9236         (find_induction_variables): Refactor format of dump information.
9237         (record_sub_use): Delete.
9238         (record_use): Update all uses.
9239         (record_group): New function.
9240         (record_group_use, find_interesting_uses_op): Call above functions.
9241         Update all uses.
9242         (find_interesting_uses_cond): Ditto.
9243         (group_compare_offset): New function.
9244         (split_all_small_groups): Rename to ...
9245         (split_small_address_groups_p): ... here.  Update all uses.
9246         (split_address_groups):  Update all uses.
9247         (find_interesting_uses): Refactor format of dump information.
9248         (add_candidate_1): Update all uses.  Remove redundant check on iv,
9249         base and step.
9250         (add_candidate, record_common_cand): Remove redundant assert.
9251         (add_iv_candidate_for_biv): Update use.
9252         (add_iv_candidate_derived_from_uses): Update all uses.
9253         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
9254         (alloc_use_cost_map): Ditto.
9255         (set_use_iv_cost, get_use_iv_cost): Rename to ...
9256         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
9257         (determine_use_iv_cost_generic): Ditto.
9258         (determine_group_iv_cost_generic): Ditto.
9259         (determine_use_iv_cost_address): Ditto.
9260         (determine_group_iv_cost_address): Ditto.
9261         (determine_use_iv_cost_condition): Ditto.
9262         (determine_group_iv_cost_cond): Ditto.
9263         (determine_use_iv_cost): Ditto.
9264         (determine_group_iv_cost): Ditto.
9265         (set_autoinc_for_original_candidates): Update all uses.
9266         (find_iv_candidates): Update all uses.  Refactor dump information.
9267         (determine_use_iv_costs): Ditto.
9268         (determine_iv_costs): Ditto.
9269         (iv_ca_cand_for_use): Rename to ...
9270         (iv_ca_cand_for_group): ... here.  Update all uses.
9271         (iv_ca_add_use, iv_ca_add_group): Ditto.
9272         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
9273         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
9274         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
9275         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
9276         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
9277         (create_new_iv, adjust_iv_update_pos): Ditto.
9278         (rewrite_use_address): Delete.
9279         (rewrite_use_address_1): Rename to ...
9280         (rewrite_use_address): ... here.
9281         (rewrite_use_compare): Update all uses.
9282         (rewrite_use): Delete.
9283         (rewrite_uses): Rename to ...
9284         (rewrite_groups): ... here.  Update all uses.
9285         (remove_unused_ivs, free_loop_data): Update all uses.
9286         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
9287
9288 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9289
9290         * rtlanal.c (nonzero_bits1): Convert preprocessor check
9291         for WORD_REGISTER_OPERATIONS to runtime check.
9292
9293 2016-04-27  Richard Biener  <rguenther@suse.de>
9294
9295         PR ipa/70760
9296         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
9297         aggregate_value_p to determine if a function result is
9298         returned by reference.
9299         (ipa_pta_execute): Functions having their address taken are
9300         not automatically nonlocal.
9301
9302 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
9303
9304         PR sanitizer/70683
9305         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
9306         * fold-const.c (operand_equal_p): If flag_checking and
9307         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
9308         and if it returns non-zero, assert iterative_hash_expr on both
9309         args is the same.
9310
9311 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
9312
9313         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
9314
9315 2016-04-27  Nick Clifton  <nickc@redhat.com>
9316
9317         PR middle-end/49889
9318         * varasm.c (merge_weak): Generate an error if an attempt is made
9319         to convert a non-weak static function into a weak, public function.
9320
9321 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9322
9323         * params.def (MAX_PARTITION_SIZE): New param.
9324         * doc/invoke.texi: Document lto-max-partition.
9325
9326 2016-04-27  Richard Biener  <rguenther@suse.de>
9327
9328         PR ipa/70785
9329         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
9330         function cummulating used_from_other_partition, externally_visible
9331         and force_output from aliases.
9332         (refered_from_nonlocal_var): Likewise.
9333         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
9334         node flags properly.
9335
9336 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
9337
9338         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
9339         (-Wmemset-elt-size): New item.
9340
9341 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
9342
9343         PR ada/70759
9344         * stor-layout.h (internal_reference_types): Delete.
9345         * stor-layout.c (reference_types_internal): Likewise.
9346         (internal_reference_types): Likewise.
9347         (layout_type) <REFERENCE_TYPE>: Adjust.
9348
9349 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
9350
9351         PR sanitizer/70683
9352         * tree.h (inchash::add_expr): Add FLAGS argument.
9353         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
9354         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
9355         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
9356         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
9357         if swap_tree_comparison (code) is smaller than code, hash that
9358         and arguments in the other order.  Hash CONVERT_EXPR the same
9359         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
9360         of ADDR_EXPR of decl as the decl itself.  Add or remove
9361         OEP_ADDRESS_OF from recursive flags as needed.  For
9362         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
9363         operands commutatively and only the third one normally.
9364         For internal CALL_EXPR hash in CALL_EXPR_IFN.
9365
9366 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9367
9368         * config/rtems.h (LIB_SPEC): Add -latomic.
9369
9370 2016-04-27  Joel Sherrill  <joel@rtems.org>
9371
9372         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
9373         xilink.ld and flags not relevant to RTEMS.
9374
9375 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
9376
9377         * toplev.c (backend_init_target): Avoid calling init_reload when using
9378         LRA.
9379
9380 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
9381
9382         * reorg.c (try_merge_delay_insns): Declare i and j inside the
9383         for loops rather than one for the whole function.
9384
9385 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
9386
9387         * match.pd (X + CST CMP X): New transformation.
9388
9389 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
9390
9391         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
9392         * fold-const.c (fold_binary_loc): Remove 2 transformations
9393         superseded by match.pd.
9394         * match.pd (x+x -> x*2): Generalize to integers.
9395
9396 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
9397
9398         * config/i386/i386.md (operation on memory peephole): Duplicate an
9399         existing peephole and adapt it to match lea rather than an operation
9400         that clobbers CC.
9401
9402         PR rtl-optimization/57193
9403         * opts.c (default_options_table): Add OPT_frename_registers at -O2
9404         and above.
9405         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
9406
9407 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
9408
9409         * tree-if-conv.c (any_pred_load_store): New static variable.
9410         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
9411         any_pred_load_store instead of and_mask_load_store.
9412         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
9413         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
9414         (combine_blocks, tree_if_conversion): Ditto.
9415
9416 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
9417
9418         PR tree-optimization/70771
9419         PR tree-optimization/70775
9420         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
9421         virtual PHI nodes.  Delete parameter.
9422         (if_convertible_loop_p_1): Delete argument to above function.
9423         (predicate_all_scalar_phis): Delete code handling single-argument
9424         PHIs.
9425         (tree_if_conversion): Mark and update virtual SSA.
9426
9427 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9428
9429         PR target/61821
9430         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
9431         (x86_elf_aligned_common): Rename to ...
9432         (x86_elf_aligned_decl_common): ... this.
9433         Add decl arg.  Switch to .lbss for largecomm object.  Use
9434         LARGECOMM_SECTION_ASM_OP.
9435         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
9436         renaming.
9437         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
9438         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
9439         Pass new decl arg.
9440         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
9441         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
9442
9443 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9444
9445         PR target/59407
9446         * config/i386/i386.c (SECTION_LARGE): Define.
9447         (x86_64_elf_select_section): Set it for large data/bss sections.
9448         Only clear SECTION_WRITE for .lrodata.
9449         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
9450         data/bss sections.
9451         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
9452         * varasm.c (default_elf_asm_named_section): Grow flagchars.
9453         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
9454         SECTION_MACH_DEP.
9455         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
9456         * doc/tm.texi: Regenerate.
9457
9458 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
9459
9460         PR bootstrap/70704
9461         * configure.ac (--enable-checking): Document extra flag, for
9462         non-release builds default to --enable-checking=yes,extra.
9463         If misc checking and extra checking, define CHECKING_P to 2 instead
9464         of 1.
9465         * common.opt (fchecking=): Add.
9466         * doc/invoke.texi (-fchecking=): Document.
9467         * doc/install.texi: Document --enable-checking changes.
9468         * configure: Regenerated.
9469         * config.in: Regenerated.
9470
9471 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9472
9473         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
9474         attribute instead of which_alternative.
9475         * config/i386/sse.md (*mov<mode>_internal): Ditto.
9476         Use EXT_REX_SSE_REG_P where appropriate.
9477
9478 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9479
9480         * config/i386/predicates.md (const0_operand): Do not match
9481         const_wide_int code.
9482         (const1_operand): Ditto.
9483
9484 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9485
9486         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
9487         for SSE constm1 operands and TARGET_AVX512VL.
9488         (*movti_internal): Ditto.
9489         (*mov<mode>_or): Use constm1_operand predicate.
9490         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
9491         for SSE vector_all_ones operands and TARGET_AVX512VL.
9492         * config/i386/predicates.md (constm1_operand): New predicate.
9493         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
9494         emission of constant -1 load.
9495
9496 2016-04-25  Jason Merrill  <jason@redhat.com>
9497
9498         * gdbinit.in: Skip is-a.h.
9499
9500         * attribs.c (register_scoped_attributes): Fix logic.
9501         * attribs.h: Declare register_scoped_attributes.
9502
9503 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9504
9505         * config/rs6000/rs6000-builtin.def: Correct pasto error for
9506         stxvd2x and stxvw4x built-in functions.
9507
9508 2016-04-25  DJ Delorie  <dj@redhat.com>
9509
9510         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
9511         (ashrhi3): Likewise.
9512         (lshrhi3): Likewise.
9513
9514 2016-04-25  Richard Biener  <rguenther@suse.de>
9515
9516         PR tree-optimization/70780
9517         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
9518         wasn't visited yet.
9519         (compute_antic): Mark blocks with abnormal preds as visited as
9520         they have a final empty antic-in solution already.
9521
9522 2016-04-25  Michael Collison  <michael.collison@linaro.org>
9523
9524         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
9525
9526 2016-04-25  Michael Collison  <michael.collison@linaro.org>
9527
9528         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
9529         mode is VQI to improve mixed mode vectorization.
9530         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
9531         define_insn to match low half of signed vaddw.
9532         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
9533         define_insn to match high half of signed vaddw.
9534         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
9535         define_insn to match low half of unsigned vaddw.
9536         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
9537         define_insn to match high half of unsigned vaddw.
9538         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
9539         (arm_simd_check_vect_par_cnst_half_p): Likewise.
9540         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
9541         for new function.
9542         (arm_simd_check_vect_par_cnst_half_p): Likewise.
9543         * config/arm/predicates.md (vect_par_constant_high): Support
9544         big endian and simplify by calling
9545         arm_simd_check_vect_par_cnst_half
9546         (vect_par_constant_low): Likewise.
9547
9548 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9549
9550         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
9551         predicate for operand 2.
9552
9553 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
9554             H.J. Lu  <hongjiu.lu@intel.com>
9555
9556         * config/i386/i386-protos.h (standard_sse_constant_p): Add
9557         machine_mode argument.
9558         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
9559         constm1_rtx operands.  For VOIDmode constants, get mode from
9560         pred_mode.  Check mode size if the mode is supported by ABI.
9561         (standard_sse_constant_opcode): Do not use standard_constant_p.
9562         Strictly check ABI support for all-ones operands.
9563         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
9564         immediates. Update calls to standard_sse_constant_p.
9565         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
9566         (ix86_rtx_costs): Ditto.
9567         * config/i386/i386.md (*movxi_internal_avx512f): Use
9568         nonimmediate_or_sse_const_operand instead of vector_move_operand.
9569         Use (v,BC) alternative instead of (v,C). Use register_operand
9570         checks instead of MEM_P.
9571         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
9572         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
9573         isa attribute.  Use register_operand checks instead of MEM_P.
9574         (*movti_internal): Use nonimmediate_or_sse_const_operand for
9575         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
9576         alternative and corresponding sse2 isa attribute.
9577         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
9578         to standard_sse_constant_p.
9579         (FP constant splitters): Ditto.
9580         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
9581         (C): Ditto.
9582         * config/i386/predicates.md (constm1_operand): Remove.
9583         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
9584         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
9585         vector_all_ones_operand instead of constm1_operand.
9586
9587 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9588
9589         * print-rtl.c (print_rtx_insn_vec): New function.
9590         * print-rtl.h: New prototype.
9591         * store-motion.c (struct st_expr): Make avail_stores a vector.
9592         (st_expr_entry): Adjust.
9593         (free_st_expr_entry): Likewise.
9594         (print_store_motion_mems): Likewise.
9595         (find_moveable_store): Likewise.
9596         (compute_store_table): Likewise.
9597         (delete_store): Likewise.
9598         (build_store_vectors): Likewise.
9599
9600 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9601
9602         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
9603
9604 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9605
9606         * vec.h (vec_safe_contains): New function.
9607         (vec::contains): Likewise.
9608         (vec::begin): Likewise.
9609         (vec::end): Likewise.
9610
9611 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
9612
9613         PR sanitizer/70712
9614         * cfgexpand.c (expand_stack_vars): Fix typo.
9615
9616 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9617
9618         * system.h (list, map, set, vector): Include conditionally.
9619         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
9620         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
9621         * ipa-icf.c (INCLUDE_LIST): Define.
9622         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
9623         * config/sh/sh.c (INCLUDE_VECTOR): Define.
9624         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
9625         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
9626         * cp/logic.cc (INCLUDE_LIST): Define.
9627         * fortran/trans-common.c (INCLUDE_MAP): Define.
9628
9629 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9630
9631         * auto-profile.c: Remove <string.h> include.
9632         * ipa-icf-gimple.c: Remove <list> include.
9633         * diagnostic.c: Remove <new> include.
9634         * genmatch.c: Likewise.
9635         * pretty-print.c: Likewise.
9636         * toplev.c: Likewise
9637         * c/c-objc-common.c: Likewise.
9638         * cp/error.c: Likewise.
9639         * fortran/error.c: Likewise.
9640
9641 2016-04-22  Richard Biener  <rguenther@suse.de>
9642
9643         * lto-streamer-in.c (input_ssa_names): Do not allocate
9644         GIMPLE_NOP for all SSA names.
9645         * lto-streamer-out.c (output_ssa_names): Do not output
9646         SSA names that should have been released.
9647
9648 2016-04-22  Richard Biener  <rguenther@suse.de>
9649
9650         PR tree-optimization/70740
9651         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
9652         VDEF.
9653
9654 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
9655
9656         PR target/70750
9657         * config/i386/predicates.md (call_insn_operand): Replace
9658         sibcall_memory_operand with memory_operand.
9659
9660 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
9661
9662         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
9663         has_single_use() tests.
9664         (register_edge_assert_for_1): Likewise.
9665         (find_assert_locations_1): Check the liveness bitmap instead of
9666         checking has_single_use().
9667
9668 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
9669
9670         PR target/70728
9671         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
9672         Extract AVX-512BW constraint from AVX.
9673
9674 2016-04-21  Richard Biener  <rguenther@suse.de>
9675
9676         PR tree-optimization/70725
9677         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
9678         for phi_convertible_by_degenerating_args.
9679         (predicate_all_scalar_phis): Handle single-argument PHIs.
9680
9681 2016-04-21  Richard Biener  <rguenther@suse.de>
9682
9683         PR middle-end/70747
9684         * fold-const.c (fold_comparison): Return properly typed
9685         constant boolean.
9686
9687 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
9688
9689         PR tree-optimization/70715
9690         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
9691         after expanding BASE using expand_simple_operations.
9692
9693 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
9694
9695         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
9696         New transformations.
9697
9698 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
9699
9700         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
9701
9702 2016-04-20  Jan Hubicka  <jh@suse.cz>
9703
9704         * ipa-inline.c (can_inline_edge_p): Pass caller info to
9705         ultiimate_alias_target.
9706         (update_callee_keys): Likewise.
9707         (lookup_recursive_calls): Likewise.
9708         (speculation_useful_p): Likewise.
9709
9710 2016-04-20  Jan Hubicka  <jh@suse.cz>
9711
9712         PR ipa/70018
9713         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
9714         (set_nothrow_flag_1): ... this; handle interposition correctly;
9715         recurse on aliases and thunks.
9716         (cgraph_node::set_nothrow_flag): New.
9717         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
9718         functions compiled with non-call exceptions that binds to current
9719         def.
9720         (propagate_nothrow): Be safe WRT interposition.
9721         * cgraph.h (set_nothrow_flag): Update prototype.
9722
9723 2016-04-18  Jan Hubicka  <jh@suse.cz>
9724
9725         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9726         max_loop_iterations_int.
9727         (tree_unswitch_outer_loop): Likewise.
9728
9729 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9730
9731         PR tree-optimization/69489
9732         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
9733         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
9734         Revise dump message.
9735         (if_convertible_bb_p): Remove check on edge count of basic block's
9736         predecessors.
9737
9738 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9739
9740         PR tree-optimization/56625
9741         PR tree-optimization/69489
9742         * tree-data-ref.h (DR_INNERMOST): New macro.
9743         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
9744         hashing struct innermost_loop_behavior.
9745         (ref_DR_map): Remove.
9746         (innermost_DR_map): New map.
9747         (baseref_DR_map): Revise comment.
9748         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
9749         to innermost_DR_map accroding to its innermost loop behavior.
9750         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
9751         to its innermost loop behavior.
9752         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
9753         Add initialization for innermost_DR_map.  Record memory reference
9754         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
9755         have innermost loop behavior.
9756         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
9757         innermost_DR_map.
9758
9759 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
9760
9761         * config/i386/i386.md (*lea<mode>_general_1): Rename from
9762         *lea_general_1.  Use explicit SWI12 mode interator.
9763         (*lea<mode>_general_2): Rename from *lea_general_2.
9764         Use explicit SWI12 mode interator.
9765         (*lea<mode>_general_3): Rename from *lea_general_3.
9766         Use explicit SWI12 mode interator.
9767         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
9768         Use explicit SWI12 mode interator.
9769         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
9770         Use explicit SWI48 mode interator.
9771
9772 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9773
9774         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
9775         Short-cut unaligned load and store cases.  Handle all integer
9776         vector modes.
9777         (ix86_expand_vector_move_misalign): Short-cut unaligned load
9778         and store cases.  Call ix86_avx256_split_vector_move_misalign
9779         directly without checking mode class.
9780
9781 2016-04-20  Andrew Pinski  <apinski@cavium.com>
9782             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9783
9784         PR target/64971
9785         * config/aarch64/aarch64.md (sibcall): Force call
9786         address to be DImode for ILP32.
9787         (sibcall_value): Likewise.
9788
9789 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9790
9791         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
9792
9793 2016-04-20  Richard Biener  <rguenther@suse.de>
9794
9795         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
9796         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
9797         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
9798         (maybe_push_res_to_seq): Adjust.
9799         * gimple-fold.c (maybe_build_generic_op): Likewise.
9800
9801 2016-04-20  Marek Polacek  <polacek@redhat.com>
9802
9803         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
9804         rather than true.
9805
9806 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
9807
9808         * config/i386/sse.md (vec_unpacks_lo_hi): Always
9809         use kmovw to support AVX512F target.
9810
9811 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9812
9813         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
9814
9815 2016-04-20  Marek Polacek  <polacek@redhat.com>
9816
9817         PR tree-optimization/70725
9818         * tree-if-conv.c (is_false_predicate): New function.
9819         (predicate_mem_writes): Use it.
9820
9821 2016-04-20  Richard Biener  <rguenther@suse.de>
9822
9823         PR tree-optimization/70726
9824         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
9825         shift amounts from a pattern stmt operand.
9826
9827 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9828
9829         PR target/70674
9830         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
9831         stack_restore_from_fpr pattern when restoring r15.
9832         (s390_optimize_prologue): Strip away the memory barrier in the
9833         parallel when trying to get rid of restore insns.
9834         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
9835         definition for loading the stack pointer from an FPR.  Compared to
9836         the normal move insn this pattern includes a full memory barrier.
9837
9838 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
9839
9840         PR middle-end/70680
9841         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
9842         implicitly linear or lastprivate iterator on the outer context.
9843
9844 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9845
9846         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
9847         alignment check.
9848         * config/i386/i386.md (ssememalign): Removed.
9849         * config/i386/sse.md: Remove ssememalign attribute from patterns.
9850
9851 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9852
9853         PR target/69201
9854         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
9855         const short * to __builtin_ia32_loaddquhi512_mask.
9856         (_mm512_maskz_loadu_epi16): Likewise.
9857         (_mm512_mask_storeu_epi16): Pass short * to
9858         __builtin_ia32_storedquhi512_mask.
9859         (_mm512_mask_loadu_epi8): Pass const char * to
9860         __builtin_ia32_loaddquqi512_mask.
9861         (_mm512_maskz_loadu_epi8): Likewise.
9862         (_mm512_mask_storeu_epi8): Pass char * to
9863         __builtin_ia32_storedquqi512_mask.
9864         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
9865         const double * to __builtin_ia32_loadupd512_mask.
9866         (_mm512_mask_loadu_pd): Likewise.
9867         (_mm512_maskz_loadu_pd): Likewise.
9868         (_mm512_storeu_pd): Pass double * to
9869         __builtin_ia32_storeupd512_mask.
9870         (_mm512_mask_storeu_pd): Likewise.
9871         (_mm512_loadu_ps): Pass const float * to
9872         __builtin_ia32_loadups512_mask.
9873         (_mm512_mask_loadu_ps): Likewise.
9874         (_mm512_maskz_loadu_ps): Likewise.
9875         (_mm512_storeu_ps): Pass float * to
9876         __builtin_ia32_storeups512_mask.
9877         (_mm512_mask_storeu_ps): Likewise.
9878         (_mm512_mask_loadu_epi64): Pass const long long * to
9879         __builtin_ia32_loaddqudi512_mask.
9880         (_mm512_maskz_loadu_epi64): Likewise.
9881         (_mm512_mask_storeu_epi64): Pass long long *
9882         to __builtin_ia32_storedqudi512_mask.
9883         (_mm512_loadu_si512): Pass const int * to
9884         __builtin_ia32_loaddqusi512_mask.
9885         (_mm512_mask_loadu_epi32): Likewise.
9886         (_mm512_maskz_loadu_epi32): Likewise.
9887         (_mm512_storeu_si512): Pass int * to
9888         __builtin_ia32_storedqusi512_mask.
9889         (_mm512_mask_storeu_epi32): Likewise.
9890         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
9891         char * to __builtin_ia32_storedquqi256_mask.
9892         (_mm_mask_storeu_epi8): Likewise.
9893         (_mm256_mask_loadu_epi16): Pass const short * to
9894         __builtin_ia32_loaddquhi256_mask.
9895         (_mm256_maskz_loadu_epi16): Likewise.
9896         (_mm_mask_loadu_epi16): Pass const short * to
9897         __builtin_ia32_loaddquhi128_mask.
9898         (_mm_maskz_loadu_epi16): Likewise.
9899         (_mm256_mask_loadu_epi8): Pass const char * to
9900         __builtin_ia32_loaddquqi256_mask.
9901         (_mm256_maskz_loadu_epi8): Likewise.
9902         (_mm_mask_loadu_epi8): Pass const char * to
9903         __builtin_ia32_loaddquqi128_mask.
9904         (_mm_maskz_loadu_epi8): Likewise.
9905         (_mm256_mask_storeu_epi16): Pass short * to.
9906         __builtin_ia32_storedquhi256_mask.
9907         (_mm_mask_storeu_epi16): Pass short * to.
9908         __builtin_ia32_storedquhi128_mask.
9909         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
9910         const double * to __builtin_ia32_loadupd256_mask.
9911         (_mm256_maskz_loadu_pd): Likewise.
9912         (_mm_mask_loadu_pd): Pass onst double * to
9913         __builtin_ia32_loadupd128_mask.
9914         (_mm_maskz_loadu_pd): Likewise.
9915         (_mm256_mask_storeu_pd): Pass double * to
9916         __builtin_ia32_storeupd256_mask.
9917         (_mm_mask_storeu_pd): Pass double * to
9918         __builtin_ia32_storeupd128_mask.
9919         (_mm256_mask_loadu_ps): Pass const float * to
9920         __builtin_ia32_loadups256_mask.
9921         (_mm256_maskz_loadu_ps): Likewise.
9922         (_mm_mask_loadu_ps): Pass const float * to
9923         __builtin_ia32_loadups128_mask.
9924         (_mm_maskz_loadu_ps): Likewise.
9925         (_mm256_mask_storeu_ps): Pass float * to
9926         __builtin_ia32_storeups256_mask.
9927         (_mm_mask_storeu_ps): ass float * to
9928         __builtin_ia32_storeups128_mask.
9929         (_mm256_mask_loadu_epi64): Pass const long long * to
9930         __builtin_ia32_loaddqudi256_mask.
9931         (_mm256_maskz_loadu_epi64): Likewise.
9932         (_mm_mask_loadu_epi64): Pass const long long * to
9933         __builtin_ia32_loaddqudi128_mask.
9934         (_mm_maskz_loadu_epi64): Likewise.
9935         (_mm256_mask_storeu_epi64): Pass long long * to
9936         __builtin_ia32_storedqudi256_mask.
9937         (_mm_mask_storeu_epi64): Pass long long * to
9938         __builtin_ia32_storedqudi128_mask.
9939         (_mm256_mask_loadu_epi32): Pass const int * to
9940         __builtin_ia32_loaddqusi256_mask.
9941         (_mm256_maskz_loadu_epi32): Likewise.
9942         (_mm_mask_loadu_epi32): Pass const int * to
9943         __builtin_ia32_loaddqusi128_mask.
9944         (_mm_maskz_loadu_epi32): Likewise.
9945         (_mm256_mask_storeu_epi32): Pass int * to
9946         __builtin_ia32_storedqusi256_mask.
9947         (_mm_mask_storeu_epi32): Pass int * to
9948         __builtin_ia32_storedqusi128_mask.
9949         * config/i386/i386-builtin-types.def (PCSHORT): New.
9950         (PINT64): Likewise.
9951         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
9952         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
9953         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
9954         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
9955         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
9956         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
9957         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
9958         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
9959         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
9960         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
9961         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
9962         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
9963         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
9964         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
9965         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
9966         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
9967         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
9968         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
9969         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
9970         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
9971         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
9972         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
9973         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
9974         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
9975         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
9976         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
9977         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
9978         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
9979         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
9980         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
9981         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
9982         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
9983         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
9984         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
9985         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
9986         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
9987         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
9988         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
9989         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
9990         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
9991         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
9992         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
9993         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
9994         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
9995         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
9996         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
9997         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
9998         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
9999         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
10000         use UNSPEC_STOREU.
10001         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
10002         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
10003         load nor store.
10004         (ix86_expand_vector_move_misalign): Likewise.
10005         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
10006         to scalar function prototype for unaligned load/store builtins.
10007         (ix86_expand_special_args_builtin): Updated.
10008         * config/i386/sse.md (UNSPEC_LOADU): Removed.
10009         (UNSPEC_STOREU): Likewise.
10010         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
10011         (VI_ULOADSTORE_F_AVX512VL): Likewise.
10012         (ssescalarsize): Handle V4TI, V2TI and V1TI.
10013         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
10014         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
10015         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
10016         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
10017         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
10018         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
10019         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
10020         (<avx512>_storedqu<mode>_mask): Likewise.
10021         (*sse4_2_pcmpestr_unaligned): Likewise.
10022         (*sse4_2_pcmpistr_unaligned): Likewise.
10023         (*mov<mode>_internal): Renamed to ...
10024         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
10025         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
10026         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
10027         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
10028
10029 2016-04-19  Richard Biener  <rguenther@suse.de>
10030
10031         PR tree-optimization/70171
10032         * tree-ssa-phiprop.c: Include stor-layout.h.
10033         (phiprop_insert_phi): Handle the aggregate copy case.
10034         (propagate_with_phi): Likewise.
10035
10036 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
10037
10038         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
10039         instead of simplify_gen_subreg (... , 0).
10040         (ix86_delegitimize_address): Ditto.
10041         (ix86_split_divmod): Ditto.
10042         (ix86_split_copysign_const): Ditto.
10043         (ix86_split_copysign_var): Ditto.
10044         (ix86_expand_args_builtin): Ditto.
10045         (ix86_expand_round_builtin): Ditto.
10046         (ix86_expand_special_args_builtin): Ditto.
10047         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
10048         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
10049         (udivmodqi4): Ditto.
10050         (absneg splitters): Ditto.
10051         (*jcc_bt<mode>_1): Ditto.
10052
10053 2016-04-19  Richard Biener  <rguenther@suse.de>
10054
10055         PR tree-optimization/70724
10056         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
10057         restoring out from ...
10058         (free_scc_vn): ... here.
10059         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
10060         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
10061         tail merging.
10062         (pass_fre::execute): Restore SSA info.
10063
10064 2016-04-19  Richard Biener  <rguenther@suse.de>
10065
10066         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
10067         * gimple-walk.c (walk_gimple_op): Initialize it.
10068         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
10069         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
10070         remapping SSA names of defs.
10071         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
10072         adjustment.
10073
10074 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
10075
10076         PR middle-end/70689
10077         * lra-constraints.c (equiv_substition_p): New.
10078         (process_alt_operands): Use it.
10079         (swap_operands): Swap it.
10080         (curr_insn_transform): Update it.
10081
10082 2016-04-18  Michael Matz  <matz@suse.de>
10083
10084         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
10085         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
10086         * tree-core.h (tree_type_common.align): Use bit-field.
10087         (tree_type_common.spare): New.
10088         (tree_decl_common.off_align): Make smaller.
10089         (tree_decl_common.align): Use bit-field.
10090
10091         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
10092         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
10093         (scan_sharing_clauses): Ditto.
10094         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
10095         (omp_finish_file): Ditto.
10096         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
10097         (layout_decl): Ditto.
10098         (relayout_decl): Ditto.
10099         (finalize_record_size): Use SET_TYPE_ALIGN.
10100         (finalize_type_size): Ditto.
10101         (finish_builtin_struct): Ditto.
10102         (layout_type): Ditto.
10103         (initialize_sizetypes): Ditto.
10104         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
10105         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
10106         (lookup_field_for_decl): Use SET_DECL_ALIGN.
10107         (get_chain_field): Ditto.
10108         (get_trampoline_type): Ditto.
10109         (get_nl_goto_field): Ditto.
10110         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
10111         SET_DECL_ALIGN.
10112         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
10113         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
10114         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
10115         (build_qualified_type): Use SET_TYPE_ALIGN.
10116         (build_aligned_type, build_range_type_1): Ditto.
10117         (build_atomic_base): Ditto.
10118         (build_common_tree_nodes): Ditto.
10119         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
10120         (expand_one_stack_var_at): Ditto.
10121         * coverage.c (build_var): Use SET_DECL_ALIGN.
10122         * except.c (init_eh): Ditto.
10123         * function.c (assign_parm_setup_block): Ditto.
10124         * symtab.c (increase_alignment_1): Ditto.
10125         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
10126         * tree-vect-stmts.c (ensure_base_align): Ditto.
10127         * varasm.c (align_variable): Ditto.
10128         (assemble_variable): Ditto.
10129         (build_constant_desc): Ditto.
10130         (output_constant_def_contents): Ditto.
10131
10132         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
10133         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
10134         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
10135         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
10136         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
10137
10138 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
10139
10140         PR target/70708
10141         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
10142         replace %vmovsd with "%vmovq".
10143         (vec_concatv2df): Likewise.
10144
10145 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
10146
10147         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
10148         (*vec_extractv2si_0): Ditto.
10149         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
10150         (zero_extended_scalar_load_operand splitters): Ditto.
10151         (vec_extract splitters): Ditto.
10152         (*vec_extractv4si_0_zext): Ditto.
10153         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
10154         and lowpart_subreg.
10155         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
10156         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
10157         (*sse4_1_extractps): Use lowpart_subreg.
10158         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
10159
10160 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10161
10162         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
10163         gld requirements.
10164         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
10165         Mention Solaris 11 packaging changes.
10166         Update gas and gld requirements.
10167         Remove reference to pre-Solaris 10 bug.
10168         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
10169         systems and bugs.
10170         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
10171         with cc.
10172
10173 2016-04-17  Jan Hubicka  <jh@suse.cz>
10174
10175         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
10176         max_loop_iterations_int.
10177
10178 2016-04-18  Richard Biener  <rguenther@suse.de>
10179
10180         PR tree-optimization/43434
10181         * tree-ssa-structalias.c (struct vls_data): New.
10182         (visit_loadstore): Handle all pointer-based accesses.
10183         (compute_dependence_clique): Compute a bitmap of restrict tags
10184         assigned bases and pass it to visit_loadstore.
10185
10186 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
10187
10188         PR target/70711
10189         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
10190         armv8.1-a and armv8.1-a+crc.
10191
10192 2016-04-18  Richard Biener  <rguenther@suse.de>
10193
10194         PR tree-optimization/70701
10195         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
10196         references after translating through a memcpy.
10197
10198 2016-04-18  Richard Biener  <rguenther@suse.de>
10199
10200         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
10201         (compute_antic): ... here.  For partial antic use regular
10202         postorder and scrap iteration.
10203         (compute_partial_antic_aux): Remove unused return value.
10204         (init_pre): Do not allocate postorder.
10205         (fini_pre): Do not free postorder.
10206
10207 2016-04-18  Richard Biener  <rguenther@suse.de>
10208
10209         PR middle-end/37870
10210         * expmed.c (extract_bit_field_1): Remove broken case
10211         using a wider MODE_INT mode.
10212
10213 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
10214
10215         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
10216         unless compiling with at least GCC-4.8.
10217
10218 2016-04-17  Jan Hubicka  <jh@suse.cz>
10219
10220         PR bootstrap/70706
10221         * graphite.c (graphite_finalize): Update call to
10222         tree_estimate_probability.
10223         * predict.h (tree_estimate_probability): Update prototype.
10224
10225 2016-04-17  Jan Hubicka  <jh@suse.cz>
10226
10227         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
10228         (tree_estimate_probability): Likewise.
10229         (pass_profile::execute): Update.
10230         (report_predictor_hitrates): New function.
10231         * profile.c (compute_branch_probabilities): Use it.
10232         * predict.h (report_predictor_hitrates): Declare.
10233
10234 2016-04-17  Jan Hubicka  <jh@suse.cz>
10235
10236         PR ipa/70018
10237         * cgraph.h (cgraph_node::set_const_flag,
10238         cgraph_node::set_pure_flag): Update prototype to return bool;
10239         update comment.
10240         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
10241         of interposable symbol are interposable, too.
10242         (cgraph_set_const_flag_1): Rename to ...
10243         (set_const_flag_1): ... this one; change to self recursive function
10244         instead of call_for_symbol_thunks_and_aliases. Handle correctly
10245         clearnig the flag in all variants and also virtual thunks of const
10246         functions are pure; track if any change was done.
10247         (cgraph_node::set_const_flag): Update.
10248         (struct set_pure_flag_info): New struct.
10249         (cgraph_set_pure_flag_1): Rename to ...
10250         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
10251         rather than pointer encoded flags; track if any changes was done;
10252         handle correctly clearning flag and setting flag of aliases already
10253         declared const.
10254         (cgraph_node::set_pure_flag): Update.
10255         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
10256
10257 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10258
10259         PR other/70433
10260         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
10261         backslash in label.
10262
10263 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10264
10265         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
10266         '{}<> ' as escape-for-record.
10267
10268 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10269
10270         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
10271         structure.
10272
10273 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10274
10275         PR other/70185
10276         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
10277         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
10278         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
10279         * passes.c (finish_optimization_passes): Only call
10280         finish_graph_dump_file if dfi->graph_dump_initialized.
10281         (execute_function_dump, pass_init_dump_file): Use
10282         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
10283
10284 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10285
10286         PR tree-optimization/70256
10287         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
10288         (debug_varmap): New function.
10289
10290 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10291
10292         PR other/70183
10293         * passes.c (pass_manager::register_pass): Propagate pflags.
10294
10295 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10296
10297         PR other/68875
10298         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
10299         * passes.c (pass_manager::pass_manager): Declare and init p_start in
10300         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
10301         check if it's equal to p_start.
10302         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
10303
10304 2016-04-15  Jan Hubicka  <jh@suse.cz>
10305
10306         PR ipa/70018
10307         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
10308         function does not bind to current def.
10309         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
10310         handle conservatively calls to functions that does not need to bind
10311         to current def.
10312         (check_call): Update call of worse_state.
10313         (ignore_edge_for_nothrow): Update.
10314         (ignore_edge_for_pure_const): Likewise.
10315         (propagate_pure_const): Update calls to worse_state.
10316         (skip_function_for_local_pure_const): Reformat comments.
10317
10318 2016-04-15  Jan Hubicka  <jh@suse.cz>
10319
10320         PR ipa/70018
10321         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
10322         (cgraph_node::function_symbol): Likewise.
10323         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
10324         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
10325         (symtab_node::ultimate_alias_target): Add REF parameter.
10326         (symtab_node::binds_to_current_def_p): Declare.
10327         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
10328         (cgraph_node::function_symbol): Likewise.
10329         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
10330         (cgraph_node::get_availability): Likewise.
10331         (cgraph_edge::binds_to_current_def_p): New inline function.
10332         (varpool_node::get_availability): Add REF parameter.
10333         (varpool_node::ultimate_alias_target): Likewise.
10334         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
10335         (symtab_node::binds_to_current_def_p): Likewise.
10336         * varpool.c (varpool_node::get_availability): Likewise.
10337
10338 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
10339
10340         PR target/70662
10341         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
10342         Fix mode size check.
10343
10344 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
10345
10346         * BASE-VER: Set to 7.0.0.
10347
10348 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
10349
10350         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
10351
10352 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10353
10354         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
10355         architecture revisions.
10356
10357 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
10358
10359         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
10360         * config/i386/i386.c (ix86_using_red_zone): No longer static.
10361         * config/i386/i386.md (stack decrement to push peepholes): Guard
10362         with !x86_using_red_zone ().
10363
10364 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
10365
10366         PR c++/70675
10367         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
10368         to dump_generic_node.
10369         (NIY): Pass also flags to do_niy.
10370
10371 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
10372
10373         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
10374         (simd_clone_vector_of_formal_parm_types)
10375         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
10376         (simd_clone_mangle, simd_clone_create)
10377         (simd_clone_adjust_return_type, create_tmp_simd_array)
10378         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
10379         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
10380         (ipa_simd_modify_function_body, simd_clone_linear_addend)
10381         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
10382         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
10383         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
10384         * omp-simd-clone.c: ... this new file.
10385         (simd_clone_vector_of_formal_parm_types): Make it static.
10386         * Makefile.in (OBJS): Add omp-simd-clone.o.
10387
10388 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
10389
10390         PR target/70662
10391         * config/i386/sse.md: Use proper memory operand modifiers.
10392
10393
10394 2016-04-15  Richard Biener  <rguenther@suse.de>
10395         Alan Modra  <amodra@gmail.com>
10396
10397         PR tree-optimization/70130
10398         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
10399         when alignment stays not the same and no not use the realign
10400         scheme then.
10401
10402 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10403
10404         PR target/70669
10405         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
10406         direct move handlers for KFmode. Change TFmode handlers test from
10407         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
10408
10409 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
10410
10411         PR c++/70594
10412         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
10413         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
10414         (inlined_polymorphic_ctor_dtor_block_p): Use it.
10415         * tree-ssa-live.c (remove_unused_scope_block_p): When
10416         in_ctor_dtor_block, avoid discarding not just BLOCKs with
10417         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
10418         block_ultimate_origin is FUNCTION_DECL.
10419         (remove_unused_locals): If current_function_decl is
10420         polymorphic_ctor_dtor_p, pass initial true to
10421         remove_unused_scope_block_p' is_ctor_dtor_block.
10422
10423 2016-04-14  Martin Sebor  <msebor@redhat.com>
10424
10425         PR c++/69517
10426         PR c++/70019
10427         PR c++/70588
10428         * doc/extend.texi (Variable Length): Revert.
10429
10430 2016-04-14  Marek Polacek  <polacek@redhat.com>
10431             Jan Hubicka  <hubicka@ucw.cz>
10432
10433         PR c++/70029
10434         * tree.c (verify_type): Disable the canonical type of main variant
10435         check.
10436
10437 2016-04-14  Jason Merrill  <jason@redhat.com>
10438
10439         * cfgexpand.c, expr.c: Revert previous change.
10440
10441 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
10442
10443         PR middle-end/70643
10444         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
10445         when building a mem ref for the incoming reduction variable.
10446
10447 2016-04-14  Richard Biener  <rguenther@suse.de>
10448
10449         PR tree-optimization/70614
10450         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
10451         loop if the evolution dropped to chrec_dont_know.
10452         (interpret_condition_phi): Likewise.
10453
10454 2016-04-14  Richard Biener  <rguenther@suse.de>
10455
10456         PR tree-optimization/70623
10457         * tree-ssa-pre.c (changed_blocks): Make global ...
10458         (compute_antic): ... local here.  Move and fix worklist
10459         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
10460         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
10461         worklist handling, dump when ANTIC_IN changed.
10462         (compute_partial_antic_aux): Remove worklist handling.
10463         (init_pre): Do not compute post dominators.  Add a comment about
10464         the CFG order chosen.
10465         (fini_pre): Do not free post dominators.
10466
10467 2016-04-13  Martin Sebor  <msebor@redhat.com>
10468
10469         PR c++/69517
10470         PR c++/70019
10471         PR c++/70588
10472         * doc/extend.texi (Variable Length): Document C++ specifics.
10473
10474 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
10475
10476         PR c++/70641
10477         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
10478         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
10479         eh edges have been purged.
10480
10481         PR c++/70594
10482         * tree-sra.c (create_access_replacement,
10483         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
10484         gets fancy name.
10485         * tree-pretty-print.c (dump_fancy_name): New function.
10486         (dump_decl_name, dump_generic_node): Use it.
10487
10488 2016-04-13  Jason Merrill  <jason@redhat.com>
10489
10490         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
10491         * expr.c (expand_expr_real_1): Likewise.
10492
10493 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10494
10495         * config/i386/i386.md (kunpckhi): Swap operands.
10496         (kunpcksi): Likewise.
10497         (kunpckdi): Likewise.
10498         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
10499         (vec_pack_trunc_<mode>): Likewise.
10500
10501 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
10502
10503         PR debug/70628
10504         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
10505
10506         PR middle-end/70633
10507         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
10508         gimplification turns some element into non-constant.
10509
10510         PR debug/70628
10511         * rtl.h (convert_memory_address_addr_space_1): New prototype.
10512         * explow.c (convert_memory_address_addr_space_1): No longer static,
10513         add NO_EMIT argument and don't call convert_modes if true, pass
10514         it down recursively, remove break after return.
10515         (convert_memory_address_addr_space): Adjust caller.
10516         * simplify-rtx.c (simplify_unary_operation_1): Call
10517         convert_memory_address_addr_space_1 instead of convert_memory_address,
10518         if it returns NULL, don't simplify.
10519
10520 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10521
10522         PR target/70630
10523         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
10524
10525 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10526
10527         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10528         Bump the upper SIMDLEN limits, so that if the return type or
10529         characteristic type if the return type is void can be passed in
10530         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
10531         allowed.
10532
10533 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
10534
10535         PR target/70640
10536         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
10537         Do not use "=" constraint on an input constraint.
10538         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
10539         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
10540         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
10541         generates (neg (abs ...)) instead of (abs ...).
10542
10543 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10544
10545         PR rtl-optimization/70596
10546         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
10547         just invalidate LRA data and reset them.  Adjust dump wording.
10548
10549 2016-04-12  Martin Liska  <mliska@suse.cz>
10550
10551         Revert
10552         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10553
10554         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
10555         estimates here.
10556         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
10557         max_loop_iterations_int.
10558         (tree_unswitch_outer_loop): Likewise.
10559         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
10560         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
10561
10562 2016-04-12  Tom de Vries  <tom@codesourcery.com>
10563
10564         PR tree-optimization/68756
10565         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
10566         instead of new_name.
10567
10568 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10569
10570         PR tree-optimization/70602
10571         * tree-sra.c (generate_subtree_copies): Don't write anything into
10572         constant pool decls.
10573
10574         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
10575         regardless whether there are depend clauses or not.
10576
10577 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10578
10579         PR target/70381
10580         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
10581         target attribute and pragma from changing the -mfloat128
10582         and -mfloat128-hardware options.
10583
10584         * doc/extend.texi (Additional Floating Types): Document PowerPC
10585         __float128 restrictions.
10586
10587 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10588
10589         PR target/70133
10590         * config/aarch64/driver-aarch64.c
10591         (aarch64_get_extension_string_for_isa_flags): New.
10592         (arch_extension): Rename to...
10593         (aarch64_arch_extension): ...This.
10594         (ext_to_feat_string): Rename to...
10595         (aarch64_extensions): ...This.
10596         (aarch64_core_data): Keep track of architecture extension flags.
10597         (cpu_data): Rename to...
10598         (aarch64_cpu_data): ...This.
10599         (aarch64_arch_driver_info): Keep track of architecture extension
10600         flags.
10601         (get_arch_name_from_id): Rename to...
10602         (get_arch_from_id): ...This, change return type.
10603         (host_detect_local_cpu): Update and reformat for renames, handle
10604         extensions through common infrastructure.
10605
10606 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10607
10608         PR target/70133
10609         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
10610         track of a canonical flag name.
10611         (all_extensions): Likewise.
10612         (arch_to_arch_name): Also track extension flags enabled by the arch.
10613         (all_architectures): Likewise.
10614         (aarch64_parse_extension): Move to here.
10615         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
10616         rework.
10617         (aarch64_rewrite_selected_cpu): Update for above change.
10618         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
10619         are handled, such that the single explicit value enabled by an
10620         extension is kept seperate from the implicit values it also enables.
10621         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
10622         to here.
10623         (aarch64_parse_extension): New.
10624         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
10625         here to config/aarch64/aarch64-protos.h.
10626         (aarch64_parse_extension): Move from here to
10627         common/config/aarch64/aarch64-common.c.
10628         (aarch64_option_print): Update.
10629         (aarch64_declare_function_name): Likewise.
10630         (aarch64_start_file): Likewise.
10631         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
10632         the canonical flag for extensions.
10633         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
10634         flags.
10635
10636 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10637
10638         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
10639         AARCH64_FL_CRC.
10640
10641 2016-04-09  Tom de Vries  <tom@codesourcery.com>
10642
10643         PR tree-optimization/68953
10644         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
10645         first to last subscript.
10646
10647 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
10648
10649         PR tree-optimization/70586
10650         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
10651         for any calls.
10652
10653 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
10654
10655         PR lto/70289
10656         PR ipa/70348
10657         PR tree-optimization/70373
10658         PR middle-end/70533
10659         PR middle-end/70534
10660         PR middle-end/70535
10661         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
10662         clauses for acc parallel reductions as necessary.  Error on those
10663         that are private.
10664         * omp-low.c (scan_sharing_clauses): Don't install variables which
10665         are used in acc parallel reductions.
10666         (lower_rec_input_clauses): Remove dead code.
10667         (lower_oacc_reductions): Add support for reference reductions.
10668         (lower_reduction_clauses): Remove dead code.
10669         (lower_omp_target): Don't remap variables appearing in acc parallel
10670         reductions.
10671         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
10672
10673 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
10674
10675         PR middle-end/70593
10676         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
10677         with multiple SSA_NAME defs, force the outputs other than first
10678         to be live before calling live_track_process_def on each output.
10679
10680         PR rtl-optimization/70574
10681         * fwprop.c (forward_propagate_and_simplify): Don't add
10682         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
10683         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
10684         paradoxical subregs within *loc.
10685
10686 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
10687
10688         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
10689         -ftree-parallelize-loops={0,1}.
10690         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
10691         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
10692         * config/ia64/hpux.h (LIB_SPEC): Likewise.
10693         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
10694         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
10695
10696 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
10697
10698         PR sanitizer/70541
10699         * asan.c (instrument_derefs): If we get unknown location, extract it
10700         with EXPR_LOCATION.
10701         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
10702
10703 2016-04-08  Tom de Vries  <tom@codesourcery.com>
10704
10705         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
10706         implicit firstprivate clause.
10707
10708 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10709
10710         PR target/70566
10711         * config/arm/thumb2.md (tst + branch-> lsls + branch
10712         peephole below *orsi_not_shiftsi_si): Require that condition
10713         register is dead after the peephole.
10714         (second peephole after the above): Likewise.
10715
10716 2016-04-08  Alan Modra  <amodra@gmail.com>
10717
10718         PR target/70117
10719         * builtins.c (fold_builtin_classify): For IBM extended precision,
10720         look at just the high-order double to test for NaN.
10721         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
10722         test just the high double for Inf but both doubles for subnormal
10723         limit.
10724
10725 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
10726
10727         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
10728         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
10729         node->simdclone->mask_mode != VOIDmode masks.
10730         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
10731         earlier, use it instead of node->simdclone.
10732         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10733         Set clonei->mask_mode.
10734
10735 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
10736
10737         PR c/70436
10738         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
10739         Pass it through to cp_parser_already_scoped_statement.
10740         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
10741         it through to cp_parser_statement.
10742         (cp_parser_statement): Pass IF_P through to
10743         cp_parser_iteration_statement.
10744         (cp_parser_pragma): Adjust call to
10745         cp_parser_iteration_statement.
10746
10747 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
10748
10749         PR c/70436
10750         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
10751         resolve a future -Wparentheses warning.
10752         * omp-low.c (scan_sharing_clauses): Likewise.
10753         * tree-parloops.c (eliminate_local_variables): Likewise.
10754
10755 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
10756
10757         PR rtl-optimization/70398
10758         * lra-constraints.c (process_address_1): Check zero scale and code
10759         for reloading with zero scale.
10760
10761 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
10762
10763         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
10764         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
10765
10766 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
10767
10768         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10769         Add support for AVX512F clones, include them by default for
10770         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
10771         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
10772         up to 128.
10773
10774         PR middle-end/70550
10775         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
10776         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
10777         firstprivate clauses.
10778         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
10779         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
10780         (lower_omp_target): Set TREE_NO_WARNING for
10781         non-addressable possibly uninitialized vars which are copied into
10782         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
10783
10784 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
10785
10786         * config/pa/predicates.md (integer_store_memory_operand): Accept
10787         REG+D operands with a large offset when reload_in_progress is true.
10788         (floating_point_store_memory_operand): Likewise.
10789
10790 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10791
10792         PR c++/70336
10793         * match.pd (nested int casts): Limit to GIMPLE.
10794
10795 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
10796
10797         PR ipa/66223
10798         * ipa-devirt.c (maybe_record_node): Fix comment; use
10799         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
10800
10801 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10802
10803         PR rtl-optimization/70542
10804         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
10805         if there are any uses other than insn or debug insns.
10806
10807 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
10808             Jakub Jelinek  <jakub@redhat.com>
10809
10810         PR tree-optimization/70509
10811         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
10812         Shift HOST_WIDE_INT_1U instead of 1.
10813
10814 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
10815
10816         PR tree-optimization/70509
10817         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
10818         of the vector base type for index.
10819
10820 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
10821
10822         PR target/70510
10823         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
10824
10825 2016-04-05  Richard Biener  <rguenther@suse.de>
10826
10827         PR tree-optimization/70526
10828         * tree-sra.c (build_ref_for_offset): Use prev_base to
10829         extract the alias pointer type.
10830
10831 2016-04-05  Richard Biener  <rguenther@suse.de>
10832
10833         * dse.c (struct store_info): Remove alias_set member.
10834         (struct read_info_type): Likewise.
10835         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
10836         spill_deleted, clear_alias_set_lookup): Remove.
10837         (get_group_info): Remove dead base == NULL_RTX case.
10838         (dse_step0): Remove initialization of removed variables.
10839         (delete_dead_store_insn): Reomve alias set dumping.
10840         (free_read_records): Remove alias_set handling.
10841         (canon_address): Remove alias_set_out parameter.
10842         (record_store): Remove spill_alias_set, it's always zero.
10843         (check_mem_read_rtx): Likewise.
10844         (dse_step2): Rename from ...
10845         (dse_step2_nospill): ... this.  Adjust.
10846         (scan_stores): Rename from ...
10847         (scan_stores_nospill): ... this.
10848         (scan_reads): Rename from ...
10849         (scan_reads_nospill): ... this.
10850         (scan_stores_spill, scan_reads_spill): Remove.
10851         (dse_step3_scan): Remove for_spills argument which is always false.
10852         (dse_step3): Likewise.
10853         (dse_step5): Rename from ...
10854         (dse_step5_nospill): ... this.  Remove alias_set handling.
10855         (rest_of_handle_dse): Adjust.
10856
10857 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10858
10859         PR target/70525
10860         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
10861         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
10862         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
10863         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
10864
10865 2016-04-05  Richard Biener  <rguenther@suse.de>
10866
10867         PR middle-end/70499
10868         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
10869         non-register type temporaries into SSA.
10870
10871 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
10872
10873         PR ipa/66223
10874         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
10875         calls when sanitizing.
10876         (possible_polymorphic_call_target_p): Fix formatting.
10877
10878 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10879             Jakub Jelinek <jakub@redhat.com>
10880
10881         PR middle-end/70457
10882         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
10883         to ensure a call statement is compatible with a built-in's
10884         prototype.
10885         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
10886         Likewise.
10887
10888 2016-04-04  Richard Biener  <rguenther@suse.de>
10889
10890         PR rtl-optimization/70484
10891         * rtl.h (canon_output_dependence): Declare.
10892         * alias.c (canon_output_dependence): New function.
10893         * dse.c (record_store): Use canon_output_dependence rather
10894         than canon_true_dependence.
10895
10896 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10897
10898         PR ipa/68881
10899         * cgraph.h (symtab_node::copy_visibility_from): New function.
10900         * symtab.c (symtab_node::copy_visibility_from): New function.
10901         * ipa-visibility.c (optimize_weakref): New function.
10902         (function_and_variable_visibility): Use it.
10903
10904 2016-04-04  Martin Liska  <mliska@suse.cz>
10905
10906         PR hsa/70402
10907         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
10908         value that is really in range handled by SBR instruction.
10909         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
10910         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
10911         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
10912
10913 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
10914
10915         PR target/70416
10916         PR target/67391
10917         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
10918         set, but not for SP_REG operands.
10919
10920 2016-04-02  Martin Sebor  <msebor@redhat.com>
10921
10922         PR c++/67376
10923         * fold-const.c (maybe_nonzero_address): New function.
10924         (fold_comparison): Call it.  Fold equality and relational
10925         expressions involving null pointers.
10926         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
10927
10928 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
10929
10930         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
10931         the "Y" constraint (scalar FP 0.0 immediate).
10932
10933         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
10934         Add the "const_double" to the list of operand constraints.
10935
10936 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
10937
10938         PR rtl-optimization/70467
10939         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
10940         If low word of the last operand is 0, just emit addition/subtraction
10941         for the high word.
10942
10943 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10944
10945         PR target/70404
10946         * config/s390/s390.c (s390_expand_insv): Check for everything
10947         constant instead of just VOIDmode stuff.
10948
10949 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10950
10951         PR target/70496
10952         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
10953
10954 2016-04-01  Nathan Sidwell  <nathan@acm.org>
10955
10956         * tree.def (TRY_CATCH_EXPR): Correct documentation.
10957
10958 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
10959
10960         PR rtl-optimization/70461
10961         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
10962         is necessary.
10963
10964 2016-03-31  Martin Liska  <mliska@suse.cz>
10965
10966         PR hsa/70399
10967         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
10968         a tree value or an immediate integer value to a buffer
10969         that is eventually copied to a BRIG section.
10970         (emit_immediate_operand): Call the function here.
10971         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
10972         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
10973         of class' fields that are removed.
10974         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
10975         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
10976         m_brig_repr_size fields.
10977
10978 2016-03-31  Martin Liska  <mliska@suse.cz>
10979
10980         PR hsa/70391
10981         * hsa-gen.c (hsa_function_representation::update_dominance): New
10982         function.
10983         (convert_addr_to_flat_segment): Likewise.
10984         (gen_hsa_memory_set): New alignment argument.
10985         (gen_hsa_ctor_assignment): Likewise.
10986         (gen_hsa_insns_for_single_assignment): Provide alignment
10987         to gen_hsa_ctor_assignment.
10988         (gen_hsa_insns_for_direct_call): Add new argument.
10989         (expand_lhs_of_string_op): New function.
10990         (expand_string_operation_builtin): Likewise.
10991         (expand_memory_copy): New function.
10992         (expand_memory_set): New function.
10993         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
10994         (convert_switch_statements): Change signature.
10995         (generate_hsa): Use a return value of the function.
10996         (pass_gen_hsail::execute): Do not call
10997         convert_switch_statements here.
10998         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
10999         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
11000         (hsa_function_representation::update_dominance): New function.
11001
11002 2016-03-31  Martin Liska  <mliska@suse.cz>
11003
11004         PR hsa/70391
11005         * hsa-brig.c (emit_directive_variable): Emit alignment
11006         according to hsa_symbol::m_align.
11007         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
11008         (dump_hsa_symbol): Dump alignment of HSA symbols.
11009         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
11010         (gen_hsa_addr_with_align): New function.
11011         (hsa_bitmemref_alignment): Use newly added function.
11012         (gen_hsa_insns_for_load): Likewise.
11013         (gen_hsa_insns_for_store): Likewise.
11014         (gen_hsa_memory_copy): New argument added.
11015         (gen_hsa_insns_for_single_assignment): Respect
11016         alignment for assignments processed via gen_hsa_memory_copy.
11017         (gen_hsa_insns_for_direct_call): Likewise.
11018         (gen_hsa_insns_for_return): Likewise.
11019         (gen_function_def_parameters): Set default alignment.
11020         * hsa.c (hsa_object_alignment): New function.
11021         (hsa_byte_alignment): Pasted function.
11022         * hsa.h (hsa_symbol::m_align): New field.
11023
11024 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
11025
11026         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
11027         scratch field for goto case.
11028
11029 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
11030
11031         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
11032
11033 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
11034
11035         PR target/70442
11036         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
11037         (scalar_chain::convert_insn): Call convert_op for reg
11038         moves to handle undefined registers.
11039
11040 2016-03-31  Nathan Sidwell  <nathan@acm.org>
11041
11042         PR c++/70393
11043         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
11044         Assert we don't want to move backwards.
11045
11046 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
11047
11048         PR target/70453
11049         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
11050
11051 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
11052
11053         PR rtl-optimization/70460
11054         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
11055         with operand from REG_LABEL_OPERAND, instead substitute
11056         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
11057         Don't do anything for REG_NON_LOCAL_GOTO jumps.
11058
11059 2016-03-31  Martin Liska  <mliska@suse.cz>
11060
11061         * passes.c (execute_one_pass): Do not call
11062         todo_after for a discarded function.
11063
11064 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
11065
11066         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
11067         (no_cost, infinite_cost): Initialize the new field.
11068         (get_computation_cost_at): Record setup cost.
11069         (determine_use_iv_cost_address): Skip cost computation for sub
11070         uses if we can estimate it without losing accuracy.
11071
11072 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
11073
11074         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
11075         estimates here.
11076         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
11077         max_loop_iterations_int.
11078         (tree_unswitch_outer_loop): Likewise.
11079         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
11080         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
11081
11082 2016-03-30  Richard Biener  <rguenther@suse.de>
11083
11084         PR middle-end/70450
11085         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
11086
11087 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
11088
11089         PR target/70421
11090         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
11091         in gen_blendm expander.
11092
11093 2016-03-30  Nick Clifton  <nickc@redhat.com>
11094
11095         PR target/62254
11096         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
11097         case where we are already provided with an SImode SUBREG.
11098
11099 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
11100
11101         PR target/70439
11102         * config/i386/i386.c (ix86_expand_epilogue): Properly check
11103         conflict between DRAP register and __builtin_eh_return.
11104
11105 2016-03-30  Michael Matz  <matz@suse.de>
11106             Richard Biener  <rguenther@suse.de>
11107
11108         PR ipa/12392
11109         * ipa-polymorphic-call.c (struct type_change_info): Change
11110         speculative to an unsigned allowing to limit the work we do.
11111         (csftc_abort_walking_p): New inline function..
11112         (check_stmt_for_type_change): Limit the number of may-defs
11113         skipped for speculative devirtualization to
11114         max-speculative-devirt-maydefs.
11115         * params.def (max-speculative-devirt-maydefs): New param.
11116         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
11117
11118 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
11119
11120         PR target/63890
11121         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
11122         and TARGET_MACHO.
11123
11124 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
11125
11126         PR tree-optimization/59124
11127         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
11128         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
11129
11130 2016-03-29  Jeff Law  <law@redhat.com>
11131
11132         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
11133
11134 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11135
11136         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
11137         to HOST_WIDE_INT.
11138
11139 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
11140
11141         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
11142         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
11143         gcrt0.o if linking dynamically.
11144
11145 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11146
11147         PR ipa/70283
11148         * ipa-devirt.c (methods_equal_p): New function.
11149         (compare_virtual_tables): Use it.
11150         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
11151         * cgraphclones.c (clone_function_name_1): Use
11152         symbol_table::symbol_suffix_separator.
11153         * coverage.c (build_var): Likewise.
11154         * symtab.c (symbol_table::symbol_suffix_separator): New.
11155
11156 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
11157
11158         PR rtl-optimization/70429
11159         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
11160         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
11161         mode != result_mode.
11162
11163         PR c++/70353
11164         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
11165
11166         PR tree-optimization/70405
11167         * ssa-iterators.h (num_imm_uses): Add missing braces.
11168
11169 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
11170
11171         PR rtl-optimization/68695
11172         * ira-color.c (allocno_copy_cost_saving): New.
11173         (improve_allocation): Use it.
11174
11175 2016-03-29  Richard Henderson  <rth@redhat.com>
11176
11177         PR middle-end/70355
11178         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
11179
11180 2016-03-29  Richard Biener  <rguenther@suse.de>
11181
11182         PR middle-end/70424
11183         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
11184         use alignment returned by get_pointer_alignment_1 if it is
11185         bigger than BITS_PER_UNIT.
11186         * builtins.c (get_pointer_alignment_1): Do not return true
11187         for alignment extracted from SSA info.
11188
11189 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
11190
11191         * config/ft32/ft32.opt (mnodiv): New.
11192         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
11193         * doc/invoke.texi (FT32 Options -mnodiv): New.
11194
11195 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
11196
11197         PR target/70406
11198         * config/i386/i386.md (define_split, andn): Fix modes.
11199
11200 2016-03-26  Richard Biener  <rguenther@suse.de>
11201             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11202
11203         PR ipa/70366
11204         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
11205         instead of
11206         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
11207         as 2nd argument to cl_optimization_restore().
11208
11209 2016-03-25  Richard Henderson  <rth@redhat.com>
11210
11211         PR target/70120
11212         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
11213         * config/aarch64/aarch64-protos.h: Declare it.
11214         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
11215
11216 2016-03-25  Alan Modra  <amodra@gmail.com>
11217
11218         PR target/70052
11219         * config/rs6000/constraints.md (j): Simplify.
11220         * config/rs6000/predicates.md (easy_fp_constant): Exclude
11221         decimal float 0.D.
11222         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
11223         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
11224          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
11225         in all constraint alternatives.
11226         (movtd_64bit_nodm): Delete "j" constraint alternative.
11227
11228 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
11229
11230         * tree-ssa-propagate.c: Enhance docs for
11231         SSA_PROP_NOT_INTERESTING.
11232
11233 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
11234
11235         * doc/extend.texi: Fix typo in documentation to pure attribute.
11236
11237 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
11238
11239         PR target/70319
11240         * config/pa/pa.md (bswapdi2): Use a scratch register.
11241
11242 2016-03-24  Richard Henderson  <rth@redhat.com>
11243
11244         PR middle-end/69845
11245         * fold-const.c (extract_muldiv_1): Correct test for multiplication
11246         overflow.
11247
11248 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
11249
11250         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
11251         using ix86_expand_binary_operator instead of gen_andsi3.
11252
11253 2016-03-24  Richard Biener  <rguenther@suse.de>
11254
11255         PR tree-optimization/70396
11256         * tree-vect-stmts.c (vectorizable_comparison): Use
11257         get_vectype_for_scalar_type.
11258
11259 2016-03-24  Richard Biener  <rguenther@suse.de>
11260
11261         PR middle-end/70370
11262         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
11263         with register bases.
11264
11265 2016-03-24  Richard Biener  <rguenther@suse.de>
11266
11267         PR tree-optimization/70372
11268         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
11269         build_all_ones_cst to also handle vector types correctly.
11270
11271 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
11272
11273         PR target/70381
11274         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
11275         -mfloat128 here.
11276
11277 2016-03-23  Marek Polacek  <polacek@redhat.com>
11278
11279         PR c++/69884
11280         * doc/invoke.texi: Document -Wignored-attributes.
11281
11282 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
11283
11284         PR tree-optimization/69042
11285         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
11286         parameter from 30 to 40.
11287
11288 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
11289
11290         PR tree-optimization/69042
11291         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
11292         for use with constant offset stripped in base.
11293
11294 2016-03-23  Richard Biener  <rguenther@suse.de>
11295
11296         PR middle-end/70251
11297         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
11298         mode compatibility check.
11299         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11300
11301 2016-03-23  Jeff Law  <law@redhat.com>
11302
11303         PR tree-optimization/64058
11304         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
11305         CONFLICT_COUNT.
11306         (struct ssa_conflicts): Move up earlier in the file.
11307         (conflicts_, var_map_): New static variables.
11308         (initialize_conflict_count): New function to initialize the
11309         CONFLICT_COUNT field for each conflict pair.
11310         (compare_pairs): Lazily initialize the conflict count and use it
11311         as the first tie-breaker.
11312         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
11313         and wipe conflicts_ and map_ around the call to qsort.  Remove
11314         special case for 2 coalesce pairs.
11315         * bitmap.c (bitmap_count_unique_bits): New function.
11316         (bitmap_count_bits_in_word): New function, extracted from
11317         bitmap_count_bits.
11318         (bitmap_count_bits): Use bitmap_count_bits_in_word.
11319         * bitmap.h (bitmap_count_unique_bits): Declare it.
11320
11321 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
11322
11323         PR target/69917
11324         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
11325         transparent alias chain for decl assembler name.
11326         * config/sol2.c (solaris_assemble_visibility): Likewise.
11327
11328 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11329
11330         * config/arm/arm1020e.md (1020call_op): Reduce reservation
11331         duration.
11332         (v10_fdivs): Likewise.
11333         (v10_fdivd): Likewise.
11334
11335 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11336
11337         PR driver/70132
11338         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
11339         to not call fclose twice on file.
11340
11341 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
11342
11343         PR tree-optimization/70354
11344         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
11345         oprnd0 is wider than oprnd1 and there is a cast from the wider
11346         type to oprnd1, mask it with the mask of the narrower type.
11347
11348         PR target/70321
11349         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
11350         Optimize TARGET_STV splitters, if high or low word of last argument
11351         is 0 or -1.
11352
11353 2016-03-22  Jeff Law  <law@redhat.com>
11354
11355         PR target/70232
11356         tree-ssa-threadbackward.c
11357         (fsm_find_control_statement_thread_paths): Correctly distinguish
11358         between old style jump threads vs FSM jump threads.
11359
11360 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
11361
11362         PR target/70302
11363         * config/i386/i386.c (scalar_chain::convert_op): Support
11364         uninitialized register usage case.
11365
11366 2016-03-22  Richard Biener  <rguenther@suse.de>
11367
11368         PR middle-end/70251
11369         * genmatch.c (gen_transform): Adjust last parameter to a three-state
11370         int...
11371         (capture::gen_transform): ... to change behavior when substituting
11372         a condition into cond or not-cond expr context.
11373         (dt_simplify::gen_1): Adjust.
11374         * gimple-match-head.c: Include gimplify.h for unshare_expr.
11375         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
11376         last change and instead change to
11377         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
11378         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11379
11380 2016-03-22  Anthony Green  <green@moxielogic.com>
11381
11382         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
11383         issue for moxiebox targets.
11384         (CC1PLUS_SPEC): Ditto.
11385
11386 2016-03-22  Richard Biener  <rguenther@suse.de>
11387
11388         PR middle-end/70333
11389         * fold-const.c (extract_muldiv_1): Properly perform multiplication
11390         in the wide type.
11391
11392 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11393
11394         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
11395
11396 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11397
11398         PR target/70325
11399         * config/i386/i386.c (def_builtin): Handle
11400         OPTION_MASK_ISA_AVX512VL to be and-ed with other
11401         bits.
11402         (const struct builtin_description bdesc_special_args[]):
11403         Remove duplicate ISA bits.
11404
11405 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
11406
11407         PR target/70329
11408         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
11409         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
11410         in a way that works also for AVX512BW.
11411
11412         PR target/70300
11413         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
11414         instead of source if operands[1] is xmm16 and above and
11415         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
11416         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
11417
11418         PR c++/70295
11419         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
11420         on assign if (*from_p) is a comparison, set it to
11421         TREE_NO_WARNING (*from_p).
11422
11423 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
11424
11425         PR middle-end/70326
11426         * lra.c (restore_scratches): Ignore deleted insns.
11427
11428 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
11429             Jakub Jelinek  <jakub@redhat.com>
11430
11431         PR tree-optimization/70317
11432         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
11433         to HONOR_NANS.
11434
11435 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
11436
11437         PR target/70327
11438         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
11439         of ix86_expand_move.
11440         (movoi): Ditto.
11441         (movti): Use general_operand for operand 1 predicate.
11442
11443 2016-03-21  Martin Liska  <mliska@suse.cz>
11444
11445         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
11446         insns.
11447         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
11448
11449 2016-03-21  Martin Liska  <mliska@suse.cz>
11450
11451         PR ipa/70306
11452         * ipa-icf.c (sem_function::parse): Skip static
11453         constructors and destructors.
11454
11455 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
11456
11457         PR target/70296
11458         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
11459         function-like macro, peek following token(s) if it is followed
11460         by CPP_OPEN_PAREN token with optional padding in between, and
11461         if not, don't treat it like a macro.
11462
11463 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
11464             Alexander Monakov  <amonakov@ispras.ru>
11465
11466         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
11467         for the stabs debug format.
11468
11469 2016-03-21  Richard Biener  <rguenther@suse.de>
11470
11471         PR tree-optimization/70310
11472         * tree-vect-generic.c (expand_vector_condition): Fold the built
11473         condition.
11474
11475 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
11476
11477         PR target/70293
11478         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
11479         Block third alternative for AVX-512VL target,
11480
11481 2016-03-21  Martin Liska  <mliska@suse.cz>
11482
11483         PR hsa/70234
11484         * hsa-brig.c (emit_function_directives): Mark unemitted
11485         global variables for emission.
11486         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
11487         (get_symbol_for_decl): Likewise.
11488         * hsa.h (struct hsa_symbol): New flag.
11489
11490 2016-03-21  Richard Biener  <rguenther@suse.de>
11491
11492         PR tree-optimization/70288
11493         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
11494         we do not estimate unsimplified all-constant conditionals or
11495         switches as optimized away.
11496
11497 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
11498
11499         PR rtl-optimization/69102
11500         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
11501         when we have a readonly dependency context.
11502
11503 2016-03-18  Jeff Law  <law@redhat.com>
11504
11505         PR rtl-optimization/70263
11506         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
11507         (update_equiv_regs): When trying to move a store to after the insn
11508         that sets the source of the store, make sure the store occurs after
11509         the insn that sets the source of the store.  When successful note
11510         the REG_EQUIV note created in the dump file.
11511
11512 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
11513             Bernd Schmidt  <bschmidt@redhat.com>
11514
11515         * doc/extend.texi: Document more potential problems with basic asms.
11516
11517 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
11518
11519         PR rtl-optimization/70278
11520         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
11521         VOIDmode.
11522
11523 2016-03-18  Jason Merrill  <jason@redhat.com>
11524
11525         * calls.c (load_register_parameters): Fix zero size sibcall logic.
11526
11527 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
11528
11529         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
11530         values to 128b regs.
11531
11532 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
11533
11534         PR tree-optimization/70252
11535         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
11536         boolean vector has a proper number of elements.
11537         (supportable_narrowing_operation): Likewise.
11538
11539 2016-03-18  Tom de Vries  <tom@codesourcery.com>
11540
11541         PR ipa/70269
11542         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
11543
11544 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
11545
11546         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
11547         instead of replace_rtx for DEBUG_INSNs.
11548
11549 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11550
11551         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
11552         load type reservations.
11553
11554 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
11555
11556         PR target/70188
11557         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
11558         define_constraint for "Q" and "T" constraints.
11559
11560 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
11561
11562         Tweak the pipeline model for Exynos M1
11563
11564         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
11565         model.
11566
11567 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
11568
11569         PR c/70264
11570         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
11571         where one or both locations aren't within a line_map.
11572
11573 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11574
11575         PR driver/70192
11576         * opts.c (finish_options): Don't set flag_pie to the default if
11577         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
11578         if it is -1.
11579
11580 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
11581
11582         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
11583         true as ALL_REGS argument to replace_rtx.
11584
11585 2016-03-17  Richard Biener  <rguenther@suse.de>
11586
11587         PR debug/70271
11588         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
11589         last.
11590
11591 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
11592
11593         PR target/70245
11594         * rtl.h (replace_rtx): Add ALL_REGS argument.
11595         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
11596         equality and assert mode is the same, instead of just rtx pointer
11597         equality.
11598         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
11599         true as ALL_REGS argument to replace_rtx.
11600
11601 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
11602
11603         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
11604         for boolean vector with vector mode only.
11605         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11606
11607 2016-03-17  Nick Clifton  <nickc@redhat.com>
11608
11609         PR target/70162
11610         * config/rx/rx.c (rx_print_integer): Print negative constants in
11611         decimal.
11612
11613 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
11614
11615         PR target/70261
11616         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
11617
11618 2016-03-16  Richard Henderson  <rth@redhat.com>
11619             Richard Biener  <rguenth@suse.de>
11620
11621         PR middle-end/70240
11622         PR middle-end/68215
11623         PR tree-opt/68714
11624         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
11625         first operand as is_gimple_condexpr.
11626
11627         PR middle-end/70240
11628         PR middle-end/68215
11629         Revert r231575
11630         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
11631         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
11632         Do not gimplify the result.
11633         (do_unop): Adjust call to tree_vec_extract.
11634         (do_binop): Likewise.
11635         (do_compare): Likewise.
11636         (do_plus_minus): Likewise.
11637         (do_negate): Likewise.
11638         (expand_vector_condition): Likewise.
11639         (do_cond): Likewise.
11640
11641 2016-03-16  Richard Henderson  <rth@redhat.com>
11642
11643         PR target/70048
11644         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
11645         (aarch64_classify_address): Use it.
11646         (aarch64_legitimize_address): Force all subexpressions of PLUS
11647         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
11648
11649 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
11650             Richard Biener  <rguenth@suse.de>
11651
11652         PR target/70245
11653         * rtlanal.c (replace_rtx): For REG, if from is a REG,
11654         return to even if only REGNO is equal, and assert
11655         mode is the same.
11656
11657 2016-03-11  Jeff Law  <law@redhat.com>
11658
11659         PR rtl-optimization/70224
11660         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
11661
11662 2016-03-16  Richard Henderson  <rth@redhat.com>
11663
11664         PR middle-end/70199
11665         * function.h (struct function): Add has_forced_label_in_static.
11666         * gimplify.c (force_labels_r): Set it.
11667         * lto-streamer-in.c (input_struct_function_base): Read it.
11668         * lto-streamer-out.c (output_struct_function_base): Write it.
11669         * tree-inline.c (has_label_address_in_static_1): Remove.
11670         (copy_forbidden): Remove fndecl parameter; test
11671         has_forced_label_in_static.
11672         (inline_forbidden_p): Update call to copy_forbidden.
11673         (tree_versionable_function_p): Likewise.
11674         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
11675         (chkp_versioning): Likewise.
11676         * tree-inline.h (copy_forbidden): Update decl.
11677
11678 2016-03-16  Marek Polacek  <polacek@redhat.com>
11679
11680         PR c/70093
11681         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
11682         function being thunked if the result type doesn't have fixed size.
11683         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
11684         doesn't have fixed size.
11685
11686 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
11687
11688         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
11689         reporting malformed loop nest.
11690
11691 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11692
11693         PR lto/70187
11694         * ipa-devirt.c (possible_polymorphic_call_targets): Move
11695         nodes.length () == 1 test to before first nodes[0] access.
11696
11697 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11698
11699         PR tree-optimization/68715
11700         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
11701         single_pred_p test.
11702
11703 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11704
11705         PR tree-optimization/68809
11706         * graphite-scop-detection.c (same_close_phi_node): Test if result types
11707         are the same.
11708
11709 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
11710             Sandra Loosemore  <sandra@codesourcery.com>
11711
11712         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
11713         on leaf attribute. Mention ELF interposition problems.
11714
11715 2016-03-16  Alan Modra  <amodra@gmail.com>
11716
11717         PR rtl-optimization/69195
11718         PR rtl-optimization/47992
11719         * ira.c (indirect_jump_optimize): Ignore artificial defs.
11720         Add comments.
11721
11722 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
11723
11724         PR bootstrap/69513
11725         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
11726
11727 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
11728
11729         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
11730
11731 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
11732
11733         PR rtl-optimization/70222
11734         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
11735         optimization if mode is different from result_mode, queue up masking
11736         of the result in outer_op.  Formatting fix.
11737
11738         PR middle-end/70239
11739         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
11740         of safe_grow.
11741
11742 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11743
11744         PR rtl-optimization/69032
11745         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
11746         looping backwards over basic block insns.
11747
11748 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11749
11750         PR target/66660
11751         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
11752         to non-speculative when propagating trap bits.
11753
11754 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11755
11756         PR rtl-optimization/63384
11757         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
11758         DEBUG_INSN_P insns.
11759
11760 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11761
11762         PR target/64411
11763         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
11764         factored out from ...
11765         (sched_analyze_insn): ... here.
11766         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
11767         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
11768         get_implicit_reg_pending_clobbers in it.
11769         (setup_id_reg_sets): Use setup_id_implicit_regs.
11770         (deps_init_id): Ditto.
11771
11772 2016-03-15  Tom de Vries  <tom@codesourcery.com>
11773
11774         PR ipa/70161
11775         * cgraph.c (cgraph_node::get_body): Save, reset and restore
11776         dump_file_name.
11777         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
11778         execute_function_dump.
11779         (execute_one_pass): Don't dump function if it will be dumped after ipa
11780         transform.
11781
11782 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
11783
11784         * genrecog.c (match_pattern_2): If pred is NULL don't call
11785         safe_predicate_mode on it.
11786
11787 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
11788
11789         PR middle-end/70219
11790         * lra-constraints.c (delete_move_and_clobber): Change assertion
11791         to also allow dregno == 0.
11792
11793 2016-03-14  Richard Henderson  <rth@redhat.com>
11794
11795         PR tree-opt/68714
11796         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
11797         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
11798         (reassociate_bb): Use optimize_vec_cond_expr; avoid
11799         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
11800         on vectors.
11801
11802 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
11803
11804         PR target/70083
11805         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
11806         regs.
11807         (lra_create_live_ranges_1): initialize hard register biggest_mode to
11808         VOIDmode.
11809         * lra-constraints.c (split_reg): For hard regs, try to find the
11810         biggest single-register mode used in the function.
11811
11812 2016-03-14  Richard Biener  <rguenther@suse.de>
11813
11814         PR tree-optimization/56365
11815         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
11816         constants to compare against.
11817
11818 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
11819
11820         PR target/70098
11821         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
11822         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
11823         (define_split for the GPR case): Use int_reg_operand instead of
11824         gpc_reg_operand for the output.
11825
11826 2016-03-14  Tom de Vries  <tom@codesourcery.com>
11827
11828         PR tree-optimization/70045
11829         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
11830         create_empty_if_region_on_edge argument.
11831
11832 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
11833
11834         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
11835         (STACK_CHECK_PROTECT): Likewise.
11836         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
11837         (STACK_CHECK_PROTECT): Likewise.
11838         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
11839         (STACK_CHECK_PROTECT): Likewise.
11840         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
11841         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11842         (STACK_CHECK_PROTECT): Likewise.
11843
11844 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
11845
11846         PR rtl-optimization/69307
11847         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
11848         registers in modes that span more than one register.
11849
11850 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
11851
11852         PR target/69614
11853         * lra-constraints.c (delete_move_and_clobber): New.
11854         (remove_inheritance_pseudos): Use it.
11855
11856 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
11857
11858         PR ada/70017
11859         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
11860         the libcall is LCT_THROW.
11861         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
11862         for the checking routine.
11863
11864 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
11865
11866         PR target/70131
11867         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
11868         optimization if we have direct move.
11869         (roundu32<mode>2_fprs): Likewise.
11870
11871 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
11872
11873         PR target/70123
11874         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
11875         be rematerialized.
11876         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
11877         Arguments swapped.  All callers changed.  Take reg_renumber into
11878         account, and Calculate and compare register ranges for hard regs.
11879
11880 2016-03-11  Jeff Law  <law@redhat.com>
11881
11882         PR tree-optimization/70190
11883         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11884         Handle cases where we can not extract the taken edge, even though we
11885         found a constant value.
11886
11887         PR tree-optimization/64058
11888         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
11889         (num_coalesce_pairs): Move up earlier in file.
11890         (find_coalesce_pair): Initialize the INDEX field for each pair
11891         discovered.
11892         (compare_pairs): No longer sort on the elements in each pair.
11893         Instead break ties with the index of the coalesce pair.
11894
11895 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11896
11897         PR target/70002
11898         * config/aarch64/aarch64-protos.h
11899         (aarch64_save_restore_target_globals): New prototype.
11900         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
11901         Call the above when popping pragma.
11902         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
11903         New function.
11904         (aarch64_set_current_function): Rewrite using the above.
11905
11906 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
11907
11908         PR tree-optimization/70177
11909         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
11910         (extract_ops_from_tree): ... this.  In the 2 argument
11911         overload remove _1 suffix.
11912         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
11913         (extract_ops_from_tree): ... this.
11914         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
11915         Adjust callers.
11916         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
11917         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
11918         extract_ops_from_tree instead of 2 operand one.
11919
11920 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
11921
11922         PR tree-optimization/70013
11923         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
11924         for constant-pool entries.
11925
11926 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
11927
11928         PR rtl-optimization/70174
11929         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
11930         followed by gen_lowpart on force_reg instead of just gen_lowpart.
11931
11932         PR tree-optimization/70169
11933         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
11934         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
11935         for unknown codes.
11936
11937 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11938             Jakub Jelinek  <jakub@redhat.com>
11939
11940         PR target/70160
11941         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
11942         of uninitialized values.
11943
11944 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11945
11946         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
11947         define_expand.
11948         ("*trunctddd2"): New pattern definition.
11949         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
11950         TD->DD truncation.
11951
11952 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11953
11954         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
11955         definitions for BFP and DFP rounding modes.
11956         ("fixuns_truncdddi2", "fixuns_trunctddi2")
11957         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
11958         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
11959         ("fix_trunctf<mode>2"): Use the new constants instead of magic
11960         numbers.
11961
11962 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11963
11964         * config/s390/constraints.md: Adjust comment.
11965         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
11966         s390_decompose_addrstyle_without_index.
11967         * config/s390/predicates.md (shift_count_or_setmem_operand):
11968         Rename to setmem_operand.
11969         * config/s390/s390-protos.h
11970         (s390_decompose_shift_count): Rename to
11971         s390_decompose_addrstyle_without_index.
11972         * config/s390/s390.c (s390_decompose_shift_count)
11973         (s390_mem_constraint, print_shift_count_operand)
11974         (print_operand_address, print_operand): Rename
11975         s390_decompose_shift_count to
11976         s390_decompose_addrstyle_without_index and rename
11977         print_shift_count_operand to print_addrstyle_operand troughout the
11978         file.
11979         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
11980         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
11981         Rename shift_count_or_setmem_operand to setmem_operand.
11982         * config/s390/vx-builtins.md ("vec_insert<mode>")
11983         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
11984         nonmemory_operand.
11985
11986 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11987
11988         PR target/70168
11989         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
11990         Handle overlapping retval and newval.
11991
11992 2016-03-10  Nick Clifton  <nickc@redhat.com>
11993
11994         PR target/7044
11995         * config/aarch64/aarch64.c
11996         (aarch64_override_options_after_change_1): When forcing
11997         flag_omit_frame_pointer to be true, use a special value that can
11998         be detected if this function is called again, thus preventing
11999         flag_omit_leaf_frame_pointer from being forced to be false.
12000
12001 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12002
12003         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
12004         Set x_flag_omit_leaf_frame_pointer when handling
12005         -momit-leaf-frame-pointer.
12006
12007 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12008
12009         PR lto/69589
12010         * cgraph.c (cgraph_node::dump): Dump split_part and
12011         indirect_call_target.
12012         * cgraph.h (cgraph_node): Add indirect_call_target flag.
12013         * ipa.c (has_addr_references_p): Cleanup.
12014         (is_indirect_call_target_p): New.
12015         (walk_polymorphic_call_targets): Do not mark virtuals that may be
12016         called indirectly as local.
12017         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
12018
12019 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12020
12021         PR ipa/69630
12022         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
12023         on cxa_pure_virtual.
12024
12025 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12026
12027         PR lto/69589
12028         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
12029
12030 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12031
12032         PR lto/69589
12033         * tree.c (need_assembler_name_p): Only record main variant type names.
12034
12035 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
12036
12037         PR target/70113.
12038         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
12039         Always define to 0 or 1.
12040         (TARGET_FIX_ERR_A53_843419): New macro.
12041         * config/aarch64/aarch64-elf-raw.h
12042         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
12043         * config/aarch64/aarch64-linux.h: Likewise.
12044         * config/aarch64/aarch64.c
12045         (aarch64_override_options_after_change_1): Do not default
12046         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
12047         843419 is on.
12048         (aarch64_attributes): Handle fix-cortex-a53-843419.
12049         (aarch64_can_inline_p): Likewise.
12050         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
12051
12052 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
12053         Jakub Jelinek <jakub@redhat.com>
12054
12055         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
12056         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
12057         DECL_COMMONS if flag_unconstrained_commons is set.
12058         * tree-dfa.c (get_ref_base_and_extent): Likewise.
12059         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
12060         (funconstrained-commons): Document.
12061
12062 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
12063
12064         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
12065         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
12066
12067 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
12068
12069         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
12070         has a proper number of elements.
12071
12072 2016-03-10  Alan Modra  <amodra@gmail.com>
12073
12074         PR rtl-optimization/69195
12075         PR rtl-optimization/47992
12076         * ira.c (recorded_label_ref): Delete.
12077         (update_equiv_regs): Return void.
12078         (indirect_jump_optimize): New function.
12079         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
12080         before regstat_compute_ri.  Don't rebuild_jump_labels here.
12081         Delete update_regstat.
12082
12083 2016-03-10  Richard Biener  <rguenther@suse.de>
12084
12085         PR tree-optimization/70128
12086         * tree-ssa-structalias.c (set_uids_in_ptset): Set
12087         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
12088
12089 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
12090
12091         PR tree-optimization/70152
12092         * tree-sra.c (replace_removed_params_ssa_names): Copy over
12093         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
12094
12095         PR target/70086
12096         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
12097         instead of gen_sse2_loadlpd.
12098         * config/i386/sse.md (*vec_concatv2df): Rename to...
12099         (vec_concatv2df): ... this.
12100
12101         PR tree-optimization/70127
12102         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
12103
12104 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
12105
12106         PR c/68473
12107         PR c++/70105
12108         * diagnostic-show-locus.c (compatible_locations_p): New function.
12109         (layout::layout): Sanitize ranges using compatible_locations_p.
12110
12111 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
12112
12113         PR c/68473
12114         PR c++/70105
12115         * diagnostic-show-locus.c (layout_range::layout_range): Replace
12116         location_range param with three const expanded_locations * and a
12117         bool.
12118         (layout::layout): Replace call to
12119         rich_location::lazily_expand_location with get_expanded_location.
12120         Extract the range and perform location expansion here, passing
12121         the results to the layout_range ctor.
12122         * diagnostic.c (source_range::debug): Delete.
12123         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
12124         of rich_location::get_expanded_location.
12125         * gcc-rich-location.c (get_range_for_expr): Delete.
12126         (gcc_rich_location::add_expr): Reimplement to avoid the
12127         rich_location::add_range overload that took a location_range,
12128         passing a location_t instead.
12129
12130 2016-03-09  Richard Biener  <rguenther@suse.de>
12131         Jakub Jelinek  <jakub@redhat.com>
12132
12133         PR tree-optimization/70138
12134         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
12135         Also skip vect_double_reduction_def.
12136
12137 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
12138
12139         PR target/70049
12140         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
12141         if the operand is "m".
12142
12143 2016-03-09  Nathan Sidwell  <nathan@acm.org>
12144
12145         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
12146
12147 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12148
12149         * config/i386/i386.c (processor_target_table): Fix cost table
12150         intialization order for znver1.
12151
12152 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
12153
12154         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
12155         - becuase -> because.
12156         * ipa-reference.c (ignore_module_statics): Likewise.
12157         * cgraph.c (cgraph_node::get_body): Likewise.
12158         * ipa-inline.c (early_inliner): Likewise.
12159         * ipa-devirt.c (types_same_for_odr): Likewise.
12160         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
12161         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
12162
12163 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12164
12165         * tree-ssa-math-opts.c: Fix typo in comment.
12166
12167 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
12168
12169         PR target/70110
12170         * config/i386/i386.c (scalar_chain::make_vector_copies,
12171         scalar_chain::convert_reg): Call end_sequence in between
12172         get_insns and emit_conversion_insns rather than after both
12173         calls.
12174
12175 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
12176
12177         PR target/70064
12178         * config/i386/i386.h (machine_function): Add
12179         pc_thunk_call_expanded flag.
12180         (ix86_pc_thunk_call_expanded): New define.
12181         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
12182         (*set_got): Rename insn pattern from set_got.
12183         (*set_got_labelled): Rename inst pattern from set_got_labelled.
12184         * config/i386/i386.c (ix86_compute_frame_layout): Use
12185         ix86_pc_thunk_call_expanded to prevent red-zone.
12186
12187 2016-03-07  Martin Jambor  <mjambor@suse.cz>
12188
12189         * hsa.h (hsa_get_ctor_statements): Declare.
12190         (hsa_get_dtor_statements): Likewise.
12191         (hsa_get_kernel_dispatch_type): Likewise.
12192         * hsa.c (hsa_get_ctor_statements): New function.
12193         (hsa_get_dtor_statements): Likewise.
12194         (hsa_get_kernel_dispatch_type): Likewise.
12195         * hsa-brig.c (hsa_cdtor_statements): Removed.
12196         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
12197         hsa_get_dtor_statements.
12198         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
12199         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
12200
12201 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12202
12203         * config/arm/arm-cores.def (cortex-r8): New.
12204         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
12205         * config/arm/arm-tune.md: Likewise.
12206         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
12207
12208 2016-03-07  Martin Sebor  <msebor@redhat.com>
12209
12210         PR rtl-optimization/19705
12211         * doc/invoke.texi (Options That Control Optimization): Clarify
12212         -fno-branch-count-reg.
12213
12214 2016-02-26  Richard Biener  <rguenther@suse.de>
12215             Jeff Law  <law@redhat.com>
12216
12217         PR tree-optimization/69740
12218         * cfghooks.c (remove_edge): Request loop fixups if we delete
12219         an edge that might turn an irreducible loop into a natural
12220         loop.
12221         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
12222         Move after definition of loops_state_clear.
12223
12224 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
12225
12226         PR rtl-optimization/69052
12227         * rtlanal.c (commutative_operand_precedence): Set higher precedence
12228         to CONST_WIDE_INT.
12229
12230 2016-03-07  Tom de Vries  <tom@codesourcery.com>
12231
12232         PR tree-optimization/70116
12233         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
12234         is_tm_ending stmts and ubsan/asan internal functions.
12235         (find_duplicate): Use it.  Don't test is_tm_ending here.
12236
12237 2016-03-07  Richard Biener  <rguenther@suse.de>
12238
12239         PR tree-optimization/70115
12240         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
12241         (propagate_constants_for_unrolling): Use replace_uses_by.
12242
12243 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
12244
12245         PR middle-end/69916
12246         * omp-low.c (struct oacc_loop): Add ifns.
12247         (new_oacc_loop_raw): Initialize it.
12248         (finish_oacc_loop): Clear mask & flags if no ifns.
12249         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
12250         (oacc_loop_xform_loop): Add ifns arg & adjust.
12251         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
12252
12253 2016-03-07  Richard Henderson  <rth@redhat.com>
12254
12255         PR rtl-opt/70061
12256         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
12257         (insert_value_copy_on_edge): Likewise.
12258
12259 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12260
12261         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
12262
12263 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12264
12265         PR target/62281
12266         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
12267
12268 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
12269
12270         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
12271
12272 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
12273
12274         Fix sseimul type attribute.
12275         * config/i386/znver1.md
12276         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
12277         znver1_sseimul_avx256_load) : Fix the type attribute.
12278         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
12279         pipe usage and latency.
12280
12281 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
12282
12283         PR c++/70084
12284         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
12285         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
12286         to the right type.
12287
12288 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
12289
12290         PR c/69973
12291         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
12292
12293         PR rtl-optimization/69941
12294         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
12295         the reg share its mode.
12296
12297 2016-03-04  Jeff Law  <law@redhat.com>
12298
12299         PR tree-optimization/69196
12300         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12301         If the both SSA_NAMEs are anonymous, then consider them unassociated
12302         and include the PHI in the statement count.
12303
12304 2016-03-05  Tom de Vries  <tom@codesourcery.com>
12305
12306         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
12307         construct in oacc routine.  Check for oacc region in oacc routine.
12308
12309 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
12310
12311         PR target/70062
12312         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
12313         2016-02-22 changes, instead don't recurse if RECUR is already true.
12314         Don't change *dynamic_check if RECUR.  Adjust recursive caller
12315         to pass true to the new argument.
12316         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
12317
12318         PR target/70059
12319         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
12320         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
12321         fixes.
12322         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
12323
12324 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
12325
12326         PR rtl-optimization/57676
12327         * lra-assigns.c (lra_assign): Guard test for maximum iterations
12328         with flag_checking.
12329
12330 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
12331
12332         * tree-vect-patterns.c (search_type_for_mask): Handle
12333         comparison of booleans.
12334
12335 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
12336
12337         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
12338         Fix @xref usage.
12339
12340         PR debug/69947
12341         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
12342         all other ops that have dw_val_class_die_ref operands,
12343         and DW_OP_GNU_entry_value.
12344
12345 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12346
12347         PR rtl-optimization/69904
12348         * config/arm/arm.c (arm_cannot_copy_insn_p):
12349         Return true for load-exclusive instructions.
12350
12351 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
12352
12353         PR target/70021
12354         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
12355         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
12356         the pattern no matter if it is used just by non-pattern, pattern
12357         or mix thereof.
12358         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
12359         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
12360         oprnd1 def_stmt is in pattern, don't look through it.
12361
12362 2016-03-03  Marek Polacek  <polacek@redhat.com>
12363
12364         PR middle-end/70050
12365         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
12366
12367 2016-03-03  Martin Liska  <mliska@suse.cz>
12368
12369         PR tree-optimization/70043
12370         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
12371         previous statement if we see a debug statement.
12372
12373 2016-03-03  Richard Biener  <rguenther@suse.de>
12374
12375         PR tree-optimization/55936
12376         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
12377         parameter and guard unsafe equivalence use.
12378         (vrp_evaluate_conditional_warnv_with_ops): Always use
12379         safe equivalences but not via the quadratic compare_names
12380         helper.
12381
12382 2016-03-03  Michael Collison  <michael.collison@linaro.org>
12383
12384         PR target/70014
12385         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
12386         for operand 1 to s_register_operand. Change predicate for operand
12387         2 to arm_not_immediate_operand.
12388
12389 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
12390
12391         * doc/tm.texi: Regenerated.
12392
12393 2016-03-02  Richard Henderson  <rth@redhat.com>
12394
12395         PR rtl-opt/67145
12396         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
12397         simplification when all args are positive non-fixed registers.
12398
12399 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12400
12401         * target.def (lra_p): Specify that new ports should use LRA.
12402
12403 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
12404
12405         PR libgomp/69555
12406         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
12407         gimplify_type_sizes the type they refer to.
12408         (omp_notice_variable): Handle reference vars to VLAs.
12409         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
12410         reference to VLA decls in the second pass instead of first pass.
12411
12412 2016-03-02  Tom de Vries  <tom@codesourcery.com>
12413
12414         PR tree-optimization/68659
12415         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
12416         new_expr == NULL_TREE.
12417         (get_new_name): Handle ADDR_EXPR.
12418
12419 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
12420
12421         PR rtl-optimization/69052
12422         * loop-invariant.c (canonicalize_address): New function.
12423         (inv_can_prop_to_addr_use): Check validity of address expression
12424         which is canonicalized by above function.
12425
12426 2016-03-02  Alan Modra  <amodra@gmail.com>
12427
12428         PR ipa/69990
12429         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
12430         larger alignment.
12431
12432 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
12433
12434         PR target/70028
12435         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
12436         (*movhi_internal): Put mask moves from and to memory separately
12437         from moves from/to GPRs.
12438
12439 2016-03-02  Richard Biener  <rguenther@suse.de>
12440
12441         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
12442         GENERIC expressions in GIMPLE.
12443
12444 2016-03-02  Richard Biener  <rguenther@suse.de>
12445
12446         * config/i386/i386.c (type_natural_mode): Fix typo.
12447
12448 2016-03-02  Nick Clifton  <nickc@redhat.com>
12449
12450         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
12451
12452 2016-03-02  Richard Biener  <rguenther@suse.de>
12453             Uros Bizjak  <ubizjak@gmail.com>
12454
12455         PR target/67278
12456         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
12457
12458 2016-03-02  Richard Biener  <rguenther@suse.de>
12459
12460         PR middle-end/67278
12461         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
12462
12463 2016-03-02  Marek Polacek  <polacek@redhat.com>
12464
12465         PR c/67854
12466         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
12467         "is promoted to" warning.
12468
12469 2016-03-01  DJ Delorie  <dj@redhat.com>
12470
12471         * config.gcc: Deprecate mep-*.
12472
12473 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
12474
12475         PR middle-end/70025
12476         * lra-constraints.c (regno_val_use_in): New.
12477         (match_reload): Use it instead of regno_use_in.
12478
12479 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
12480
12481         PR rtl-optimization/70007
12482         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
12483         references present in REG_EQUAL notes attached to non-SET patterns.
12484
12485 2016-03-01  Jeff Law  <law@redhat.com>
12486
12487         PR tree-optimization/69196
12488         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12489         Appropriately clamp the number of statements to copy when the
12490         thread path does not traverse a loop backedge.
12491
12492         PR tree-optimization/69196
12493         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12494         Do count some PHIs in the thread path against the insn count.  Decrease
12495         final statement count by one as the control statement in the last
12496         block will get removed.  Remove special cased code for handling PHIs
12497         in the last block.
12498
12499 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
12500
12501         PR target/70027
12502         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
12503         asm dialect alternatives to explicit GOTPCREL calls.
12504
12505 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
12506
12507         PR ada/70017
12508         * ira.c (do_reload): Issue warning for generic stack checking here...
12509         * reload1.c (reload): ...instead of here and streamline it.
12510
12511 2016-03-01  Nick Clifton  <nickc@redhat.com>
12512
12513         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
12514
12515 2016-03-01  Richard Biener  <rguenther@suse.de>
12516
12517         PR tree-optimization/69983
12518         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
12519         types and fall back to operand_equal_p.
12520
12521 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12522
12523         Revert
12524         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12525
12526         * config/s390/constraints.md ("jm8"): New constraint.
12527         * config/s390/predicates.md ("const_int_8bitset_operand"): New
12528         predicate.
12529         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
12530         into ...
12531         ("*setmem_long<setmem_and>"): New pattern.
12532         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
12533         into ...
12534         ("*setmem_long_31z<setmem_and>"): New pattern.
12535         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
12536         New substitution rules with the required attributes.
12537
12538
12539 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12540
12541         Revert
12542         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12543
12544         * gensupport.c (process_substs_on_one_elem): Split loop to
12545         complete mark_operands_used_in_match_dup on all expressions in the
12546         vector first.
12547         (adjust_operands_numbers): Inline into process_substs_on_one_elem
12548         and remove function.
12549
12550 2016-03-01  Richard Biener  <rguenther@suse.de>
12551
12552         PR middle-end/70022
12553         * fold-const.c (fold_indirect_ref_1): Fix range checking for
12554         vector BIT_FIELD_REF extract.
12555
12556 2016-03-01  Richard Biener  <rguenther@suse.de>
12557
12558         PR tree-optimization/69994
12559         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
12560
12561 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
12562
12563         PR tree-optimization/69956
12564         * tree-vect-stmts.c (supportable_widening_operation): Support
12565         multi-step conversion of boolean vectors.
12566         (supportable_narrowing_operation): Likewise.
12567
12568 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12569
12570         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
12571         anymore.
12572
12573 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12574
12575         * config/s390/subst.md (DSI_VI): New mode iterator.
12576         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
12577         * config/s390/vector.md ("vec_set<mode>"): Move expander before
12578         the insn definition.
12579         ("*vec_set<mode>"): Change predicate and add alternative to
12580         support only either register or const_int operands as element
12581         selector.
12582         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
12583         operands.
12584         ("vec_extract<mode>"): New expander.
12585         ("*vec_extract<mode>"): New insn definition supporting reg and
12586         const_int element selectors.
12587         ("*vec_extract<mode>_plus"): New insn definition supporting
12588         reg+const_int element selectors.
12589         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
12590         following expander+insn definition.
12591         ("<vec_shifts_name><mode>3"): New expander.
12592         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
12593
12594 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12595
12596         * config/s390/s390.md ("*tabort_1"): Change predicate to
12597         nonmemory_operand.  Add a second alternative to cover
12598         register as well as const int operands.
12599         ("*tabort_1_plus"): New pattern definition.
12600
12601 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12602
12603         * config/s390/s390.md ("*ashrdi3_cc_31")
12604         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
12605         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
12606         Merge insn definitions into ...
12607         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
12608         New pattern definition.
12609         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
12610         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
12611         ("*ashr<mode>3_and"): Merge insn definitions into ...
12612         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
12613         New pattern definition.
12614         * config/s390/subst.md ("addr_style_op_cc_subst")
12615         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
12616         substitutions patterns plus attributes.
12617         Add ashiftrt to SUBST iterator.
12618
12619 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12620
12621         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
12622         op2 to nonmemory_operand.
12623         ("*<shift>di3_31", "*<shift>di3_31_and"):
12624         Merge into single pattern definition ...
12625         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
12626         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
12627         pattern definition ...
12628         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
12629         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
12630         iterator.
12631
12632 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12633
12634         * config/s390/predicates.md (const_int_6bitset_operand): New
12635         predicate.
12636         * config/s390/s390.md: Include subst.md.
12637         ("rotl<mode>3"): New expander.
12638         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
12639         ...
12640         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
12641         * config/s390/subst.md: New file.
12642
12643 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12644
12645         * config/s390/s390.md ("op_type", "atype", "length" attributes):
12646         Remove RRR type.  It doesn't really exist.
12647         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
12648         attributes.
12649         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
12650         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
12651         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
12652         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
12653         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
12654         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
12655         `enabled' attribute.
12656
12657 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12658
12659         * gensupport.c (process_substs_on_one_elem): Split loop to
12660         complete mark_operands_used_in_match_dup on all expressions in the
12661         vector first.
12662         (adjust_operands_numbers): Inline into process_substs_on_one_elem
12663         and remove function.
12664
12665 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
12666
12667         PR target/69706
12668         * config/sparc/sparc.c (NWORDS_UP): Rename to...
12669         (CEIL_NWORDS): ...this.  Use CEIL macro.
12670         (compute_fp_layout): Adjust to above renaming.
12671         (function_arg_union_value): Likewise.
12672         (sparc_arg_partial_bytes): Likewise.
12673         (sparc_function_arg_advance): Likewise.
12674
12675 2016-02-29  Jeff Law  <law@redhat.com>
12676
12677         PR tree-optimization/70005
12678         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
12679         where an object with a boolean range is compared against a value
12680         outside [0..1].
12681
12682         PR tree-optimization/69999
12683         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
12684         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
12685         loop cleanups.
12686
12687 2016-02-29  Richard Biener  <rguenther@suse.de>
12688
12689         PR tree-optimization/69994
12690         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
12691         (get_unary_op): Look through nop conversions.
12692         (ops_equal_values_p): New function, look for equality diregarding
12693         nop conversions.
12694         (eliminate_plus_minus_pair): Use ops_equal_values_p
12695         (repropagate_negates): Do not use get_unary_op here.
12696
12697 2016-02-29  Martin Liska  <mliska@suse.cz>
12698
12699         * system.h: Poison ENABLE_CHECKING macro.
12700
12701 2016-02-29  Martin Liska  <mliska@suse.cz>
12702
12703         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
12704         is presented in dump flags.
12705         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
12706         (hsa_regalloc): Likewise.
12707
12708 2016-02-19  Richard Biener  <rguenther@suse.de>
12709
12710         PR tree-optimization/69980
12711         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
12712         permutation of those we need to keep.
12713
12714 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
12715
12716         PR target/69706
12717         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
12718         (NWORDS_UP): ...this
12719         (init_cumulative_args): Minor tweaks.
12720         (sparc_promote_function_mode): Likewise.
12721         (scan_record_type): Delete.
12722         (traverse_record_type): New function template.
12723         (classify_data_t): New structure type.
12724         (classify_registers): New inline function.
12725         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
12726         exhausted.  Instantiate traverse_record_type on classify_registers and
12727         deal with the case of a structure passed in slot #15 with no FP field
12728         in the first word.
12729         (assign_data_t): New structure type.
12730         (compute_int_layout): New static function.
12731         (compute_fp_layout): Likewise.
12732         (count_registers): New inline function.
12733         (assign_int_registers): New static function.
12734         (assign_fp_registers): Likewise.
12735         (assign_registers): New inline function.
12736         (function_arg_record_value_1): Delete.
12737         (function_arg_record_value_2): Likewise.
12738         (function_arg_record_value_3): Likewise.
12739         (function_arg_record_value): Adjust to above changes.  Instantiate
12740         traverse_record_type on count_registers to first count the number of
12741         registers to be used and then on assign_registers to assign them.
12742         (function_arg_union_value): Adjust to above renaming.
12743         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
12744         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
12745         case of a structure passed in slot #15
12746         (sparc_function_arg_advance): Likewise.
12747         (function_arg_padding): Minor tweak.
12748
12749 2016-02-29  Richard Biener  <rguenther@suse.de>
12750
12751         PR tree-optimization/69720
12752         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
12753         the adjustment_def path for possibly vectorized defs.
12754         (vect_create_epilog_for_reduction): Handle vectorized initial
12755         defs properly.
12756
12757 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
12758
12759         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
12760
12761 2016-02-27  Jeff Law  <law@redhat.com>
12762
12763         Revert
12764         2016-02-26  Richard Biener  <rguenther@suse.de>
12765                     Jeff Law  <law@redhat.com>
12766
12767         PR tree-optimization/69740
12768         * cfghooks.c (remove_edge): Request loop fixups if we delete
12769         an edge that might turn an irreducible loop into a natural
12770         loop.
12771
12772 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
12773
12774         PR rtl-optimization/69896
12775         * tree-vect-generic.c (get_compute_type): Avoid single element
12776         vector types.
12777
12778 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
12779
12780         Rename the AArch64 tuning option and related functions to enable the
12781         Newton series for the reciprocal square root to reflect its
12782         approximative characteristic.
12783
12784         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
12785         function to "aarch64_emit_approx_rsqrt".
12786         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
12787         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
12788         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
12789         (xgene1_tunings): Likewise.
12790         (use_rsqrt_p): Likewise.
12791         (aarch64_emit_swrsqrt): Use new function name.
12792         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
12793         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
12794         text explaining this option.
12795         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
12796
12797 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
12798
12799         PR target/69969
12800         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12801         complain about -mallow-movmisalign without -mvsx if
12802         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
12803
12804 2016-02-26  Joel Sherrill  <joel@rtems.org>
12805
12806         * config.gcc: Add x86_64-*-rtems*.
12807         * config/i386/rtems-64.h: New file.
12808
12809 2016-02-26  Joel Sherrill  <joel@rtems.org>
12810
12811         * config.gcc: Add aarch64-*-rtems*.
12812         * config/aarch64/rtems.h: New file.
12813
12814 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
12815
12816         PR target/69946
12817         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
12818         shift amount using %h.  Add comment.
12819
12820 2016-02-26  Richard Biener  <rguenther@suse.de>
12821             Jeff Law  <law@redhat.com>
12822
12823         PR tree-optimization/69740
12824         * cfghooks.c (remove_edge): Request loop fixups if we delete
12825         an edge that might turn an irreducible loop into a natural
12826         loop.
12827
12828 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12829
12830         PR middle-end/69920
12831         * tree-sra.c (sra_modify_assign): Do not remove loads of
12832         uninitialized aggregates to SSA_NAMEs.
12833
12834 2016-02-26  Richard Henderson  <rth@redhat.com>
12835
12836         PR target/69709
12837         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
12838         pseudo in case the target rtx matches the source of the left
12839         shift.
12840
12841 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12842
12843         PR hsa/69568
12844         * hsa.h (hsa_type_packed_p): Declare.
12845         * hsa.c (hsa_type_packed_p): New function.
12846         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
12847         loads.
12848         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
12849         * hsa-brig.c (emit_basic_insn): Likewise.
12850
12851 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12852
12853         pr hsa/69674
12854         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
12855         pointers.
12856         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
12857
12858 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12859
12860         * hsa.h (is_a_helper): New overload for hsa_op_immed for
12861         hsa_op_with_type operands.
12862         (hsa_unsigned_type_for_type): Declare.
12863         * hsa.c (hsa_unsigned_type_for_type): New function.
12864         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
12865         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
12866         the finalizer.  Do not emit extra move.
12867
12868 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12869
12870         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
12871         atomic operations in private segment.
12872
12873 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12874
12875         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
12876         statements to wi->info.  Also disallow omp simd constructs.
12877         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
12878         for not gridifying.  Dump special string for omp_for.
12879
12880 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12881
12882         PR target/69245
12883         * config/aarch64/aarch64.c (aarch64_set_current_function):
12884         Save/restore target globals when switching to
12885         target_option_default_node.
12886
12887 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12888
12889         PR target/69613
12890         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
12891         Return 0 if !SHIFT_COUNT_TRUNCATED.
12892
12893 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
12894             Eric Botcazou  <ebotcazou@adacore.com>
12895
12896         PR rtl-optimization/69891
12897         * dse.c (scan_insn): If we can't figure out memset arguments
12898         or they are non-constant, call clear_rhs_from_active_local_stores.
12899
12900 2016-02-26  Martin Liska  <mliska@suse.cz>
12901
12902         * doc/extend.texi: Mention clog10, clog10f an clog10l
12903         in Builtins section.
12904
12905 2016-02-26  Martin Liska  <mliska@suse.cz>
12906
12907         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
12908         CHECKING_P.
12909         (resolve_args_picking_1): Likewise.
12910         * dwarf2out.h (struct GTY): Likewise.
12911
12912 2016-02-26  Martin Liska  <mliska@suse.cz>
12913
12914         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
12915         with flag_checking.
12916         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
12917
12918 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
12919             Martin Liska  <mliska@suse.cz>
12920
12921         * doc/install.texi: Mention --enable-valgrind-annotations.
12922
12923 2016-02-26  Richard Biener  <rguenther@suse.de>
12924
12925         PR tree-optimization/69551
12926         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
12927         looking through aliases adjust DECL_PT_UID to refer to the
12928         ultimate alias target.
12929
12930 2016-02-25  Martin Liska  <mliska@suse.cz>
12931
12932         PR middle-end/69919
12933         * alloc-pool.c (after_memory_report): New variable.
12934         * alloc-pool.h (base_pool_allocator ::release): Do not use
12935         the infrastructure if after_memory_report.
12936         * toplev.c (toplev::main): Mark after memory report.
12937
12938 2016-02-25  Richard Biener  <rguenther@suse.de>
12939
12940         PR tree-optimization/48795
12941         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
12942
12943 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
12944
12945         PR driver/68463
12946         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
12947         offloading is enabled and -fopenacc or -fopenmp is specified.
12948         (CRTOFFLOADEND): Likewise.
12949         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
12950         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
12951         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
12952         (offload_objects_file_name): New static var.
12953         (tool_cleanup): Remove offload_objects_file_name file.
12954         (find_offloadbeginend): Replace with ...
12955         (find_crtoffloadtable): ... this.
12956         (run_gcc): Remove offload_argc and offload_argv.
12957         Get offload_objects_file_name from -foffload-objects=... option.
12958         Read names of object files with offload from this file, pass them to
12959         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
12960         don't pass offloadbegin and offloadend to the linker.  Don't pass
12961         offload non-LTO files to the linker, because now they're not claimed.
12962
12963 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
12964
12965         PR ipa/69630
12966         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
12967         on builtin_unreachable.
12968
12969 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
12970
12971         PR rtl-optimization/69896
12972         * regcprop.c: Include cfgrtl.h.
12973         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
12974         than remembered mode, either delete it (if noop_move_p), or
12975         treat like copy_p but not noop_p instruction.
12976
12977 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12978
12979         PR debug/69705
12980         * dwarf2out.c (gen_variable_die): Work around buggy LTO
12981         - allow NULL decl for Fortran DW_TAG_common_block variables.
12982
12983 2016-02-24  Jason Merrill  <jason@redhat.com>
12984
12985         * common.opt (flifetime-dse): Add -flifetime-dse=1.
12986
12987 2016-02-24  Richard Biener  <rguenther@suse.de>
12988             Jakub Jelinek  <jakub@redhat.com>
12989
12990         PR middle-end/69760
12991         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
12992         conditionally executed ops to well-defined overflow behavior.
12993
12994 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12995
12996         PR middle-end/69915
12997         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
12998         elements.
12999
13000 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13001
13002         PR rtl-optimization/69886
13003         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
13004         argument.  Use it when checking validity of set instructions.
13005         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
13006         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
13007         callsite.
13008         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
13009         * store-motion.c (find_moveable_store): Update
13010         can_assign_to_reg_without_clobbers_p callsite.
13011
13012 2016-02-24  Richard Biener  <rguenther@suse.de>
13013
13014         PR middle-end/68963
13015         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
13016         bogus check.
13017         (record_nonwrapping_iv): Do not fall back to the low/high bound
13018         for non-constant IV bases if the stmt is not always executed.
13019
13020 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13021
13022         * config/arm/arm-cores.def (cortex-a32): New entry.
13023         * config/arm/arm-tables.opt: Regenerate.
13024         * config/arm/arm-tune.md: Regenerate.
13025         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
13026         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
13027         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
13028         for -mcpu and -mtune.
13029
13030 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13031
13032         PR target/69875
13033         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
13034         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
13035         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
13036         (atomic_loaddi_1): Delete.
13037         (atomic_loaddi): Rewrite expander using the above changes.
13038
13039 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
13040
13041         PR c/69918
13042         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
13043         2 to 3.
13044
13045 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
13046             Richard Biener  <rguenth@suse.de>
13047
13048         PR middle-end/69909
13049         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
13050         set_mem_attributes if tem is SSA_NAME which got expanded
13051         as a MEM.
13052
13053 2016-02-24  Richard Biener  <rguenther@suse.de>
13054
13055         PR tree-optimization/69907
13056         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
13057         end of permutations for BB vectorization.
13058
13059 2016-02-24  Christian Bruel  <christian.bruel@st.com>
13060
13061         * config/arm/arm-c.c (arm_option_override): Initialize
13062         target_option_current_node.
13063         * config/arm/arm.c (arm_pragma_target_parse): Replace
13064         build_target_option_node call by target_option_current_node.
13065         Set target_option_current_node.
13066         Fix comments.
13067
13068 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
13069
13070         PR target/69810
13071         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
13072         define_insn_and_split to define_insn.
13073         (zero_extendqi<mode>2_dot2): Same.
13074         (extendqi<mode>2_dot): Same.
13075         (extendqi<mode>2_dot2): Same.
13076
13077 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
13078
13079         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
13080         and add bypass for AES{D,E} and AESMC pairs.
13081         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
13082         and AESMC pairs.
13083
13084 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
13085
13086         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
13087         series for reciprocal square root in Exynos M1.
13088
13089 2016-02-23  Martin Sebor  <msebor@redhat.com>
13090
13091         PR c/69759
13092         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
13093         __builtin_alloca_with_align.
13094
13095 2016-02-23  Richard Henderson  <rth@redhat.com>
13096
13097         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
13098         (ix86_register_pragmas): Remove __seg_tls.
13099         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
13100         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
13101         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
13102         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
13103         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
13104         * doc/extend.texi (__seg_tls): Remove item.
13105
13106 2016-02-23  Richard Biener  <rguenther@suse.de>
13107
13108         * alloc-pool.h (struct allocation_object): Make id member
13109         conditional on CHECKING_P again.
13110         (get_instance): Adjust.
13111         (base_pool_allocator): Likewise.
13112
13113 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
13114
13115         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
13116         (parallelize_loops): In OpenACC kernels mode, set n_threads to
13117         zero.
13118         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
13119         flag_openacc.
13120         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
13121
13122 2016-02-23  Richard Biener  <rguenther@suse.de>
13123
13124         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
13125         * bitmap.h (struct bitmap_usage): Likewise.
13126         (bitmap_move): Declare.
13127         * bitmap.c (register_overhead): Take size_t argument.
13128         (bitmap_move): New function.
13129         * df-problems.c (df_rd_transfer_function): Use bitmap_move
13130         to properly account overhead.
13131         * tree.c (free_node): Use tree_size.
13132
13133 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
13134
13135         PR c++/69902
13136         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
13137         when inverting comparison.
13138
13139         PR c/69900
13140         * common.opt (Wunreachable-code): Add Warning flag.
13141
13142 2016-02-23  Mark Wielaard  <mjw@redhat.com>
13143             Jakub Jelinek  <jakub@redhat.com>
13144
13145         PR c/69911
13146         * cgraphunit.c (check_global_declaration): Check main_input_filename
13147         and DECL_SOURCE_FILE are not NULL.
13148
13149 2016-02-23  Martin Jambor  <mjambor@suse.cz>
13150
13151         PR tree-optimization/69666
13152         * tree-sra.c (sra_modify_assign): Do not attempt to create
13153         default_def replacements for unscalarizable regions.
13154
13155 2016-02-20  Mark Wielaard  <mjw@redhat.com>
13156
13157         PR c/28901
13158         * cgraphunit.c (check_global_declaration): Check level of
13159         warn_unused_const_variable and main_input_filename.
13160         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
13161         (-Wunused-variable): For C implies -Wunused-const-variable=1.
13162         (-Wunused-const-variable): Explain levels 1 and 2.
13163
13164 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
13165
13166         PR target/69888
13167         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
13168         identical arguments.  Formatting and spelling fixes.
13169
13170         PR target/69885
13171         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
13172         be specified.
13173
13174         PR target/69894
13175         PR target/69895
13176         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
13177         and m68k-devices.def.
13178         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
13179         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
13180
13181 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
13182
13183         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
13184         and HImode registers.
13185
13186 2016-02-22  Richard Biener  <rguenther@suse.de>
13187
13188         PR tree-optimization/69882
13189         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
13190         preserve permutations present because of gaps.
13191         (vect_supported_load_permutation_p): Always continue checking
13192         permutations after vect_attempt_slp_rearrange_stmts.
13193
13194 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
13195
13196         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
13197         min_profitable_estimate, rather than min_profitable_iters.
13198
13199 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
13200
13201         PR target/69885
13202         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
13203         SImode for last match_operand.
13204
13205 2016-02-22  Martin Liska  <mliska@suse.cz>
13206
13207         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
13208         return bitsize - 1 as the return value.
13209
13210 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
13211
13212         PR target/69806
13213         PR target/54089
13214         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
13215         Handle negative shift counts.
13216         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
13217         force_reg on the shift constant.
13218         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
13219         (lshrsi3_d): Handle negative shift counts.
13220
13221 2016-02-22  Richard Biener  <rguenther@suse.de>
13222             Tom de Vries  <tom@codesourcery.com>
13223
13224         * graph.c: Include dumpfile.h.
13225         (print_graph_cfg): Split into three overloads.
13226         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
13227
13228 2016-02-22  Tom de Vries  <tom@codesourcery.com>
13229
13230         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
13231         dump-fn.
13232
13233 2016-02-22  Richard Biener  <rguenther@suse.de>
13234
13235         PR ipa/37448
13236         * ipa-inline-transform.c (inline_call): When not updating
13237         overall summaries adjust self size by the growth estimate.
13238         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
13239         hash-set, do not update overall summaries here.  Renamed from ...
13240         (inline_to_all_callers): ... this which is now wrapping the
13241         above and performing delayed overall summary update.
13242         (early_inline_small_functions): Delay updating of the overall
13243         summary.
13244
13245 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
13246
13247         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
13248         variable.
13249
13250 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
13251
13252         PR driver/69805
13253         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
13254         :%* in %:gt() argument.
13255         (greater_than_spec_func): Adjust for expecting only numbers,
13256         if there are more than two numbers, compare the last two.
13257
13258 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
13259
13260         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
13261         -Wnarrowing with -std.
13262
13263 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
13264
13265         PR c++/69851
13266         * expr.c (store_field): Don't use bit-field path if exp is
13267         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
13268         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
13269         and the assignment can be performed by bitwise copy.  Formatting
13270         fix.
13271
13272         PR middle-end/69838
13273         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
13274         call copy_reg_eh_region_note_forward on before and/or after sequences
13275         and remove note from insn if it no longer can throw.
13276
13277         PR target/69820
13278         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
13279         if TARGET_AVX512BW.
13280
13281 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13282
13283         * config/s390/vector.md: Add missing commutative operand markers
13284         to the patterns which qualify for one.
13285         * config/s390/vx-builtins.md: Likewise.
13286
13287 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13288
13289         * config/s390/vector.md (VI, VI_QHS): Add single element vector
13290         types to mode iterators.
13291         (vec_double): ... and mode attribute.
13292         * config/s390/vx-builtins.md (non_vec_int): Likewise.
13293
13294 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13295
13296         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
13297         Change the predicate of op2 from nonimmediate to general and let
13298         reload fix it if necessary.
13299
13300 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13301
13302         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
13303
13304 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13305
13306         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
13307         mode.
13308
13309 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13310
13311         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
13312         * config/s390/s390.c (s390_expand_vec_movstr): New function.
13313         * config/s390/s390.md ("movstr<P:mode>"): Call
13314         s390_expand_vec_movstr.
13315
13316 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13317
13318         * config/s390/s390.md: Add missing output modifier for operand 1
13319         to print it as address properly.
13320
13321 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13322
13323         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
13324         * config/s390/2964.md: New file.
13325         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
13326         of insn grouping attributes depending on the CPU level.
13327         (s390_get_unit_mask): New function.
13328         (s390_sched_score): Remove the OOO from the scheduling macros.
13329         Add loop to calculate a score for the instruction mix.
13330         (s390_sched_reorder): Likewise plus improve debug output.
13331         (s390_sched_variable_issue): Rename macros as above.  Calculate
13332         the unit distances after actually scheduling an insn.  Improve
13333         debug output.
13334         (s390_sched_init): Clear last_scheduled_unit_distance array.
13335         * config/s390/s390.md: Include 2964.md.
13336
13337 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
13338
13339         PR target/69671
13340         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
13341         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
13342         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
13343         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
13344         *avx512f_<code>v8div16qi2_mask_1): New insns.
13345
13346 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
13347
13348         PR target/68404
13349         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
13350         2016-02-09 change.
13351
13352         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
13353         earlyclobber from target.  Use wF constraint for fused memory
13354         address.
13355         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
13356
13357 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
13358             Martin Liska  <mliska@suse.cz>
13359
13360         PR sanitizer/69863
13361         * cfgexpand.c (asan_sanitize_stack_p): New function.
13362         (partition_stack_vars): Use the function.
13363         (expand_stack_vars): Likewise.
13364         (defer_stack_allocation): Likewise.
13365         (expand_used_vars): Likewise.
13366
13367 2016-02-18  Richard Biener  <rguenther@suse.de>
13368
13369         PR middle-end/69553
13370         * fold-const.c (operand_equal_p): Properly compare offsets for
13371         IMAGPART_EXPR and ARRAY_REF.
13372
13373 2016-02-18  Nick Clifton  <nickc@redhat.com>
13374
13375         PR target/62254
13376         PR target/69610
13377         * config/arm/arm.c (arm_option_override_internal): Disable
13378         interworking if the target does not support thumb instructions.
13379         (arm_reload_in_hi): Handle the case where a register to register
13380         move needs reloading because there is no simple pattern to handle
13381         it.
13382         (arm_reload_out_hi): Likewise.
13383
13384 2016-02-18  Richard Biener  <rguenther@suse.de>
13385
13386         PR middle-end/69854
13387         * match.pd: Don't use fold_binary or fold_unary for folding
13388         constants.
13389
13390 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
13391
13392         PR c++/69850
13393         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
13394         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
13395         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
13396         warn on gimple_no_warning_p statements.
13397
13398 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
13399
13400         * doc/extend.texi (C++ Attributes): Correct description of
13401         warn_unused type attribute.
13402
13403 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13404
13405         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
13406         correct instruction.
13407
13408 2016-02-17  Richard Biener  <rguenther@suse.de>
13409
13410         PR rtl-optimization/69609
13411         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
13412         (find_traces_1_round): When ending a trace update cached priority
13413         of successors.
13414         (bb_to_key): Use cached priority when available.
13415         (copy_bb): Initialize cached priority.
13416         (reorder_basic_blocks_software_trace_cache): Likewise.
13417
13418 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13419
13420         PR target/69161
13421         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
13422         New predicate.
13423         (aarch64_comparison_operator): Break overly long line into two.
13424         (aarch64_comparison_operation): Likewise.
13425         * config/aarch64/aarch64.md (cstorecc4): Use
13426         aarch64_comparison_operator_mode instead of
13427         aarch64_comparison_operator.
13428         (cstore<mode>4): Likewise.
13429         (aarch64_cstore<mode>): Likewise.
13430         (*cstoresi_insn_uxtw): Likewise.
13431         (cstore<mode>_neg): Likewise.
13432         (*cstoresi_neg_uxtw): Likewise.
13433
13434 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13435
13436         PR target/69161
13437         * config/arm/predicates.md (arm_comparison_operator_mode):
13438         New predicate.
13439         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
13440         instead of arm_comparison_operator.
13441         (*mov_negscc): Likewise.
13442         (*mov_notscc): Likewise.
13443         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
13444         (*thumb2_mov_negscc): Likewise.
13445         (*thumb2_mov_negscc_strict_it): Likewise.
13446         (*thumb2_mov_notscc): Likewise.
13447         (*thumb2_mov_notscc_strict_it): Likewise.
13448
13449 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
13450
13451         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
13452         Add missing return.
13453
13454 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
13455
13456         * config/visium/visium.c (machine_libfunc_index): New enum.
13457         (machine_libfuncs): New structure.
13458         (visium_libfuncs): New static variable.
13459         (TARGET_INIT_LIBFUNCS): Define to...
13460         (visium_init_libfuncs): ...this.  New function.
13461         (expand_block_move_4): Use the appropriate libfunc.
13462         (expand_block_move_2): Likewise.
13463         (expand_block_move_1): Likewise.
13464         (expand_block_set_4): Likewise.
13465         (expand_block_set_2): Likewise.
13466         (expand_block_set_1): Likewise.
13467         (visium_trampoline_init): Likewise.
13468
13469 2016-02-17  Nick Clifton  <nickc@redhat.com>
13470
13471         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
13472         TI's devices.csv file as of March 2016.
13473
13474 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13475
13476         PR Target/48344
13477         * opts-global.c (handle_common_deferred_options): Introduce and
13478         initialize two global variables to remember command-line options
13479         specifying a stack-limiting register.
13480         * opts.h: Add extern declarations of the two new global variables.
13481         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
13482         variable based on the values of the two new global variables.
13483
13484 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13485
13486         PR c/69835
13487         * common.opt (Wnonnull-compare): New warning.
13488         * doc/invoke.texi (-Wnonnull): Remove text about comparison
13489         of arguments against NULL.
13490         (-Wnonnull-compare): Document.
13491         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
13492         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
13493         * passes.def (pass_warn_nonnull_compare): Add.
13494         * gimple-ssa-nonnull-compare.c: New file.
13495
13496 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13497
13498         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
13499         AARCH64_EXTRA_TUNE_RECIP_SQRT.
13500
13501 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13502
13503         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
13504         reciprocal sqrt for -mlow-precision-recip-sqrt.
13505
13506 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13507             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13508
13509         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
13510         always use lane loads to construct non-constant vectors.
13511
13512 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13513
13514         * config/aarch64/aarch64.md
13515         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
13516         constraints for operand 3.
13517         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
13518
13519 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13520             Richard Biener  <rguenther@suse.de>
13521
13522         PR tree-optimization/69820
13523         * tree-vect-patterns.c (type_conversion_p): Return false if
13524         *orig_type is unsigned single precision or boolean.
13525         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
13526         Formatting fix.
13527
13528 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13529
13530         PR rtl-optimization/69764
13531         PR rtl-optimization/69771
13532         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
13533         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
13534
13535 2016-02-16  Richard Biener  <rguenther@suse.de>
13536
13537         PR tree-optimization/69776
13538         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
13539         sets from caller.
13540         (indirect_refs_may_alias_p): Likewise.
13541         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
13542         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
13543         according to tbaa_p.
13544         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
13545         (optimize_stmt): For redundant store discovery do not allow tbaa.
13546
13547 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
13548
13549         PR tree-optimization/69714
13550         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
13551         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
13552
13553 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
13554
13555         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
13556         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
13557         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
13558         * config/arc/arc.c (arc_init): Check FPU options.
13559         (get_arc_condition_code): Handle new CC_FPU* modes.
13560         (arc_select_cc_mode): Likewise.
13561         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
13562         register pair only. Allow access for ARCv2 accumulator.
13563         (gen_compare_reg): Whenever we have FPU support use FPU compare
13564         instructions.
13565         (arc_reorg): Don't generate brcc insns when FPU compare
13566         instructions are involved.
13567         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
13568         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
13569         floating point emulation.
13570         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
13571         (REVERSE_CONDITION): Add new CC_FPU* modes.
13572         (TARGET_FP_SP_BASE): Define.
13573         (TARGET_FP_DP_BASE): Likewise.
13574         (TARGET_FP_SP_FUSED): Likewise.
13575         (TARGET_FP_DP_FUSED): Likewise.
13576         (TARGET_FP_SP_CONV): Likewise.
13577         (TARGET_FP_DP_CONV): Likewise.
13578         (TARGET_FP_SP_SQRT): Likewise.
13579         (TARGET_FP_DP_SQRT): Likewise.
13580         (TARGET_FP_DP_AX): Likewise.
13581         * config/arc/arc.md (ARCV2_ACC): New constant.
13582         (type): New fpu type attribute.
13583         (SDF): Conditional iterator.
13584         (cstore<mode>, cbranch<mode>): Change expand condition.
13585         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
13586         handles FPU/FPX cases as well.
13587         * config/arc/arc.opt (mfpu): New option.
13588         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
13589         Renamed.
13590         (adddf3, muldf3, subdf3): Removed.
13591         * config/arc/predicates.md (proper_comparison_operator): Recognize
13592         CC_FPU* modes.
13593         * config/arc/fpu.md: New file.
13594         * doc/invoke.texi (ARC Options): Document mfpu option.
13595
13596 2016-02-16  Richard Biener  <rguenther@suse.de>
13597
13598         PR rtl-optimization/69291
13599         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
13600         noce_operand_ok check.
13601
13602 2016-02-16  Tom de Vries  <tom@codesourcery.com>
13603
13604         PR lto/67709
13605         * omp-low.c (simd_clone_create): Remove call to
13606         symtab->call_cgraph_insertion_hooks.
13607
13608 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13609
13610         PR tree-optimization/69802
13611         * tree-ssa-reassoc.c (update_range_test): If op is
13612         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
13613         op == 1 test of precision 1 integral op, otherwise handle
13614         that case as op itself.  Fix up formatting.
13615         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
13616         up formatting.
13617
13618 2016-02-16  Richard Biener  <rguenther@suse.de>
13619
13620         PR tree-optimization/69586
13621         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
13622         types for conversion sources.
13623
13624 2016-02-16  Richard Biener  <rguenther@suse.de>
13625
13626         PR middle-end/69801
13627         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
13628         mask OEP_ADDRESS_OF.
13629
13630 2016-02-16  Alan Modra  <amodra@gmail.com>
13631
13632         PR target/68973
13633         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
13634         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
13635         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
13636         (p8_mtvsrwz): New.
13637         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
13638         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
13639         (p8_fmrgow_<mode>): Likewise.
13640         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
13641         changes.
13642         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
13643         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
13644         to use movdi_internal64.  Remove op0_di.
13645         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
13646
13647 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
13648
13649         Add support for the FCCMP insn types
13650
13651         * config/aarch64/aarch64.md (fccmp): Change insn type.
13652         (fccmpe): Likewise.
13653         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
13654         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
13655         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
13656         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
13657         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
13658         * config/arm/types.md (fccmps): Add new insn type.
13659         (fccmpd): Likewise.
13660
13661 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13662
13663         * alias.c (get_alias_set): Fix a typo in comment.
13664
13665 2016-02-15  Richard Biener  <rguenther@suse.de>
13666
13667         PR tree-optimization/69595
13668         * match.pd: Complete range test simplification to true.
13669
13670 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
13671
13672         PR rtl-optimization/69648
13673         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
13674         pic_offset_table_rtx.
13675
13676         PR rtl-optimization/69752
13677         * ira.c (update_equiv_regs): When looking for more than a single SET,
13678         also take other side effects into account.
13679
13680 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
13681
13682         * config/s390/s390.c (s390_function_profiler): Add a new sequence
13683         for z900+ CPUs in 31-bit mode.
13684
13685 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
13686
13687         * common/config/s390/s390-common.c (s390_supports_split_stack):
13688         New function.
13689         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
13690         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
13691         * config/s390/s390.c (struct machine_function): New field
13692         split_stack_varargs_pointer.
13693         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
13694         in s390_emit_prologue.
13695         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
13696         vararg pointer.
13697         (morestack_ref): New global.
13698         (SPLIT_STACK_AVAILABLE): New macro.
13699         (s390_expand_split_stack_prologue): New function.
13700         (s390_live_on_entry): New function.
13701         (s390_va_start): Use split-stack vararg pointer if appropriate.
13702         (s390_asm_file_end): Emit the split-stack note sections.
13703         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
13704         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
13705         (UNSPECV_SPLIT_STACK_CALL): New unspec.
13706         (UNSPECV_SPLIT_STACK_DATA): New unspec.
13707         (split_stack_prologue): New expand.
13708         (split_stack_space_check): New expand.
13709         (split_stack_data): New insn.
13710         (split_stack_call): New expand.
13711         (split_stack_call_*): New insn.
13712         (split_stack_cond_call): New expand.
13713         (split_stack_cond_call_*): New insn.
13714
13715 2016-02-15  Richard Biener  <rguenther@suse.de>
13716
13717         PR tree-optimization/69783
13718         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13719         Add trivially correct cases.
13720
13721 2016-02-15  Tom de Vries  <tom@codesourcery.com>
13722
13723         PR lto/69655
13724         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
13725         do_force_output.
13726         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
13727
13728 2016-02-15  Richard Biener  <rguenther@suse.de>
13729
13730         PR tree-optimization/69776
13731         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
13732         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
13733         indicate whether we can use TBAA to disambiguate against stores.
13734         Use alias-set zero if not.
13735         (visit_reference_op_store): Do not use TBAA when looking up
13736         redundant stores.
13737         * tree-ssa-pre.c (compute_avail): Use TBAA here.
13738         (eliminate_dom_walker::before_dom_children): But not when looking
13739         up redundant stores.
13740
13741 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
13742
13743         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
13744
13745 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
13746
13747         *  config/i386/znver1.md
13748         (znver1_pop, znver1_pop_mem,
13749         znver1_load_imov_double_store,
13750         znver1_load_imov_direct_store,
13751         znver1_load_imov_direct_load,
13752         znver1_load_imov_double_load): Add new.
13753         (znver1_insn, znver1_insn_load): Add icmov type.
13754         (znver1_sseavx_fma,
13755         znver1_sseavx_fma_load,
13756         znver1_avx256_fma,
13757         znver1_avx256_fma_load): Fix pipe usage.
13758
13759 2016-02-14  Alan Modra  <amodra@gmail.com>
13760
13761         PR target/68973
13762         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
13763         with an invalid hard reg, reload just the reg not the entire
13764         pre/post-inc/dec address expression.
13765
13766 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
13767
13768         PR target/67260
13769         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
13770         fixed R1_REG scratch reg.
13771         (sibcall_value_pcrel_fdpic): Likewise.
13772
13773 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
13774
13775         PR target/67636
13776         PR target/64345
13777         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
13778
13779 2016-02-12  Walter Lee  <walt@tilera.com>
13780
13781         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
13782         * config/tilegx/t-tilegx: Likewise.
13783
13784 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13785
13786         PR other/69554
13787         * diagnostic-show-locus.c (struct line_span): New struct.
13788         (layout::get_first_line): Delete.
13789         (layout::get_last_line): Delete.
13790         (layout::get_num_line_spans): New member function.
13791         (layout::get_line_span): Likewise.
13792         (layout::print_heading_for_line_span_index_p): Likewise.
13793         (layout::get_expanded_location): Likewise.
13794         (layout::calculate_line_spans): Likewise.
13795         (layout::m_first_line): Delete.
13796         (layout::m_last_line): Delete.
13797         (layout::m_line_spans): New field.
13798         (layout::layout): Update comment.  Replace m_first_line and
13799         m_last_line with m_line_spans, replacing their initialization
13800         with a call to calculate_line_spans.
13801         (diagnostic_show_locus): When printing source lines and
13802         annotations, rather than looping over a single span
13803         of lines, instead loop over each line_span within
13804         the layout, with an inner loop over the lines within them.
13805         Call the context's start_span callback when changing line spans.
13806         * diagnostic.c (diagnostic_initialize): Initialize start_span.
13807         (diagnostic_build_prefix): Break out the building of the location
13808         part of the string into...
13809         (diagnostic_get_location_text): ...this new function, rewriting
13810         it from nested ternary expressions to a sequence of "if"
13811         statements.
13812         (default_diagnostic_start_span_fn): New function.
13813         * diagnostic.h (diagnostic_start_span_fn): New typedef.
13814         (diagnostic_context::start_span): New field.
13815         (default_diagnostic_start_span_fn): New prototype.
13816
13817 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13818
13819         PR driver/69779
13820         * gcc.c (driver::finalize): Fix cleanup of "specs".
13821
13822 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13823
13824         PR driver/69265
13825         PR driver/69453
13826         * gcc.c (driver::driver): Initialize m_option_suggestions.
13827         (driver::~driver): Clean up m_option_suggestions.
13828         (suggest_option): Convert to...
13829         (driver::suggest_option): ...this, and split out into
13830         driver::build_option_suggestions and find_closest_string.
13831         (driver::build_option_suggestions): New function, from
13832         first half of suggest_option.  Special-case
13833         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
13834         the sanitizer_opts array.  For options of enum types, add the
13835         various enum values to the candidate strings.
13836         (driver::handle_unrecognized_options): Remove "const".
13837         * gcc.h (driver::handle_unrecognized_options): Likewise.
13838         (driver::build_option_suggestions): New decl.
13839         (driver::suggest_option): New decl.
13840         (driver::m_option_suggestions): New field.
13841         * opts-common.c (add_misspelling_candidates): New function.
13842         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
13843         and make non-static.
13844         * opts.h (sanitizer_opts): New array decl.
13845         (add_misspelling_candidates): New function decl.
13846         * spellcheck.c (find_closest_string): New function.
13847         * spellcheck.h (find_closest_string): New function decl.
13848
13849 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13850
13851         PR rtl-optimization/69764
13852         PR rtl-optimization/69771
13853         * optabs.c (expand_binop_directly): For shift_optab_p, force
13854         convert_modes with VOIDmode if xop1 has VOIDmode.
13855
13856 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
13857
13858         PR target/69729
13859         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
13860         to correctly determine instrumentation thunks.
13861
13862 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13863
13864         PR ipa/69241
13865         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
13866         type by reference, force lhs on the call.
13867
13868         PR ipa/68672
13869         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
13870         Compute retval and retbnd early in all cases if split_part_return_p
13871         and return_bb is not EXIT.  Remove all clobber stmts and reset
13872         all debug stmts that refer to SSA_NAMEs defined in split part,
13873         except if it is retval, in that case replace the old retval with the
13874         lhs of the call to the split part.
13875
13876 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13877
13878         revert:
13879         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13880
13881         PR middle-end/66726
13882         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
13883         whose result is used in PHI.
13884         (maybe_optimize_range_tests): Likewise.
13885         (final_range_test_p): Likweise.
13886
13887 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13888
13889         PR middle-end/66726
13890         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
13891         whose result is used in PHI.
13892         (maybe_optimize_range_tests): Likewise.
13893         (final_range_test_p): Likweise.
13894
13895 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13896
13897         * cgraph.c: Spelling fixes - behaviour -> behavior and
13898         neighbour -> neighbor.
13899         * target.def: Likewise.
13900         * sel-sched.c: Likewise.
13901         * config/mips/mips.c: Likewise.
13902         * config/arc/arc.md: Likewise.
13903         * config/arm/cortex-a57.md: Likewise.
13904         * config/arm/arm.c: Likewise.
13905         * config/arm/neon.md: Likewise.
13906         * config/arm/arm-c.c: Likewise.
13907         * config/vms/vms-c.c: Likewise.
13908         * config/s390/s390.c: Likewise.
13909         * config/i386/znver1.md: Likewise.
13910         * config/i386/i386.c: Likewise.
13911         * config/ia64/hpux-unix2003.h: Likewise.
13912         * config/msp430/msp430.md: Likewise.
13913         * config/rx/rx.c: Likewise.
13914         * config/rx/rx.md: Likewise.
13915         * config/aarch64/aarch64-simd.md: Likewise.
13916         * config/aarch64/aarch64.c: Likewise.
13917         * config/nvptx/nvptx.c: Likewise.
13918         * config/bfin/bfin.c: Likewise.
13919         * config/cris/cris.opt: Likewise.
13920         * config/rs6000/rs6000.c: Likewise.
13921         * target.h: Likewise.
13922         * spellcheck.c: Likewise.
13923         * ira-build.c: Likewise.
13924         * tree-inline.c: Likewise.
13925         * builtins.c: Likewise.
13926         * lra-constraints.c: Likewise.
13927         * explow.c: Likewise.
13928         * hwint.h: Likewise.
13929         * targhooks.c: Likewise.
13930         * tree-vect-data-refs.c: Likewise.
13931         * expr.c: Likewise.
13932         * doc/tm.texi: Likewise.
13933         * doc/extend.texi: Likewise.
13934         * doc/install.texi: Likewise.
13935         * doc/md.texi: Likewise.
13936         * tree-ssa-tail-merge.c: Likewise.
13937         * sched-int.h: Likewise.
13938         * match.pd: Likewise.
13939         * sched-ebb.c: Likewise.
13940         * target.def (omit_struct_return_reg): Likewise.
13941         * gimple-ssa-isolate-paths.c: Likewise.
13942         (find_implicit_erroneous_behaviour): Renamed to...
13943         (find_implicit_erroneous_behavior): ... this.
13944         (find_explicit_erroneous_behaviour): Renamed to...
13945         (find_explicit_erroneous_behavior): ... this.
13946         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
13947
13948 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
13949
13950         PR rtl-optimization/64682
13951         PR rtl-optimization/69567
13952         PR rtl-optimization/69737
13953         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
13954         in I2 as well, just lose it.
13955
13956 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13957
13958         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
13959         New variable.
13960         (aarch64_last_printed_tune_string): Likewise.
13961         (aarch64_declare_function_name): Only output .arch assembler
13962         directive if it will be different from the previously output
13963         directive.  Same for .tune comment but only if -dA is set.
13964         (aarch64_start_file): New function.
13965         (TARGET_ASM_FILE_START): Define.
13966
13967 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
13968
13969         PR plugins/69758
13970         * Makefile.in (PLUGIN_HEADERS): Add params.list.
13971
13972 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
13973
13974         PR target/65313
13975         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
13976         -Wmaybe-uninitialized warning.
13977
13978 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
13979
13980         PR target/69713
13981         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
13982
13983 2016-02-11  Richard Biener  <rguenther@suse.de>
13984
13985         PR rtl-optimization/69291
13986         * ifcvt.c (noce_try_store_flag_constants): Do not allow
13987         subexpressions affected by changing the result.
13988
13989 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
13990
13991         PR target/69148
13992         * lra-constraints.c (curr_insn_transform): Find in/out operands
13993         for secondary memory moves.  Update dups.
13994
13995 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
13996
13997         PR tree-optimization/69652
13998         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
13999         to nested loop, did source re-formatting, skip debug statements,
14000         add check on statement with volatile operand, remove dead scalar
14001         statements.
14002
14003 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
14004             Patrick Palka  <ppalka@gcc.gnu.org>
14005
14006         PR ipa/69241
14007         PR c++/69649
14008         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
14009         calls if the return type is TREE_ADDRESSABLE.
14010         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
14011         * ipa-split.c (split_function): Fix doubled "we" in comment.
14012         Use void return type for the split part even if
14013         !split_point->split_part_set_retval.
14014
14015 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
14016
14017         PR tree-optimization/68021
14018         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
14019         when computing the value of biv cand by itself.
14020
14021 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
14022
14023         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
14024         (cortexa57_tunings): Likewise.
14025         (cortexa72_tunings): Likewise.
14026         (arch_macro_fusion_pair_p): Add support for AES fusion.
14027         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
14028         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
14029         Allow virtual registers before reload so early scheduling works.
14030         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
14031         correct latency and pipeline.
14032         (cortex_a57_crypto_complex): Likewise.
14033         (cortex_a57_crypto_xor): Likewise.
14034         (define_bypass): Add AES bypass.
14035
14036 2016-02-10  Richard Biener  <rguenther@suse.de>
14037
14038         PR tree-optimization/69726
14039         * passes.def: Add DCE pass before late uninit.
14040         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
14041         really fixup if-conversions job.
14042
14043 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
14044
14045         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
14046         (arm_cortex_a57_tune): Likewise.
14047         (aarch_macro_fusion_pair_p): Add support for AES fusion.
14048         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
14049
14050 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
14051
14052         * timevar.def (TV_PHASE_DBGINFO): Delete.
14053         (TV_PHASE_CHECK_DBGINFO): Likewise.
14054         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
14055
14056 2016-02-10  Richard Biener  <rguenther@suse.de>
14057
14058         PR tree-optimization/69719
14059         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14060         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
14061
14062 2016-02-09  Andrew Pinski  <apinski@cavium.com>
14063
14064         PR tree-opt/69282
14065         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
14066         get_vcond_mask_icode returns false.
14067
14068 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
14069
14070         PR target/68404
14071         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
14072         an ADDIS that adds a pointer to a large constant that sets the
14073         upper16 bits with a load operation.
14074
14075 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
14076
14077         PR target/68532
14078         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
14079         order.
14080         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
14081         endian.
14082         (vzipq_s16): Likewise.
14083         (vzipq_s32): Likewise.
14084         (vzipq_f32): Likewise.
14085         (vzipq_u8): Likewise.
14086         (vzipq_u16): Likewise.
14087         (vzipq_u32): Likewise.
14088         (vzipq_p8): Likewise.
14089         (vzipq_p16): Likewise.
14090
14091 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
14092
14093         PR target/68532
14094         * config/arm/arm.c (neon_endian_lane_map): New function.
14095         (neon_vector_pair_endian_lane_map): New function.
14096         (arm_evpc_neon_vuzp): Allow for big endian lane order.
14097         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
14098         endian.
14099         (vuzpq_s16): Likewise.
14100         (vuzpq_s32): Likewise.
14101         (vuzpq_f32): Likewise.
14102         (vuzpq_u8): Likewise.
14103         (vuzpq_u16): Likewise.
14104         (vuzpq_u32): Likewise.
14105         (vuzpq_p8): Likewise.
14106         (vuzpq_p16): Likewise.
14107
14108 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
14109
14110         PR target/69634
14111         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
14112         debug insns.
14113
14114 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
14115
14116         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
14117         truncate const_int operand 1 to QImode.
14118
14119 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
14120
14121         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
14122         corresponding to an abnormal edge.
14123
14124 2016-02-09  Tom de Vries  <tom@codesourcery.com>
14125
14126         PR tree-optimization/69599
14127         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
14128         function.
14129         (find_func_aliases_for_builtin_call, find_func_clobbers)
14130         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
14131         partition.
14132
14133 2016-02-09  Richard Biener  <rguenther@suse.de>
14134
14135         PR tree-optimization/69715
14136         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
14137         LHS on calls as non-rewritable.
14138
14139 2016-02-09  Tom de Vries  <tom@codesourcery.com>
14140
14141         PR lto/69707
14142         * lto-wrapper.c (append_diag_options): New function.
14143         (compile_offload_image): Call append_diag_options.
14144
14145 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
14146
14147         PR other/69722
14148         * doc/extend.texi (Flag Output Operands): Correct sectioning.
14149         Minor copy-edit to fix verb tenses.
14150
14151 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
14152
14153         PR tree-optimization/69209
14154         * ipa-split.c (split_function): If split part is not
14155         returning retval, retval has gimple type but is not
14156         gimple value, force it into a SSA_NAME first.
14157
14158 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
14159
14160         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
14161         outdated section.
14162
14163 2016-02-08  Jason Merrill  <jason@redhat.com>
14164
14165         PR c++/69631
14166         * convert.c (convert_to_integer_1): Check dofold on truncation
14167         distribution.
14168         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
14169         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
14170         Rename from *_nofold.
14171         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
14172         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
14173
14174 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
14175
14176         PR target/60410
14177         * tree.c (build_common_tree_nodes): Remove short_double argument.
14178         All callers changed.
14179         * tree.h (build_common_tree_nodes): Adjust declaration.
14180         * doc/invoke.texi (-fshort-double): Remove documentation.
14181         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
14182         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
14183         * lto-wrapper.c (merge_and_complain, append_compiler_options)
14184         (append_linker_options): Don't handle OPT_fshort_double.
14185
14186         PR rtl-optimization/68730
14187         * lra-remat.c (insn_to_cand_activation): New static variable.
14188         (lra_remat): Allocate and free it.
14189         (create_cand): New arg activation. Initialize a field in
14190         insn_to_cand_activation if it is nonnull.
14191         (create_cands): Pass the activation insn to create_cand when making
14192         a candidate involving an output reload.  Reorganize code a little.
14193         (do_remat): Keep track of active status of candidates in a separate
14194         bitmap.
14195
14196 2016-02-08  Richard Biener  <rguenther@suse.de>
14197
14198         PR tree-optimization/69719
14199         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14200         Properly use absolute of the difference of the two offsets to
14201         compare or adjust the segment length.
14202
14203 2016-02-08  Richard Biener  <rguenther@suse.de>
14204             Jeff Law  <law@redhat.com>
14205
14206         PR target/68273
14207         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
14208         types for anonymous SSA names.
14209
14210 2016-02-08   Richard Biener  <rguenther@suse.de>
14211
14212         PR rtl-optimization/69274
14213         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
14214
14215 2016-02-08  Jeff Law  <law@redhat.com>
14216
14217         PR tree-optimization/65917
14218         * tree-ssa-dom.c (record_temporary_equivalences): Record both
14219         equivalences from if (x == y) style conditionals.
14220         (loop_depth_of_name): Remove.
14221         (record_equality): Remove loop depth check.
14222         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
14223         (const_and_copies::record_const_or_copy_raw): New member function.
14224         * tree-ssa-scopedtables.c
14225         (const_and_copies::record_const_or_copy_raw): New, factored out of
14226         (const_and_copies::record_const_or_copy): Call new member function.
14227
14228 2016-02-05  Jeff Law  <law@redhat.com>
14229
14230         PR tree-optimization/68541
14231         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
14232         (count_stmts_in_block): New function.
14233         (poor_ifcvt_candidate_code): Likewise.
14234         (is_feasible_trace): Add some heuristics to determine when path
14235         splitting is profitable.
14236         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
14237         is a diamond with a single exit.
14238
14239 2016-02-05  Martin Sebor  <msebor@redhat.com>
14240
14241         PR c++/69662
14242         * doc/invoke.texi: Update -Wplacement-new to take an optional
14243         argument.
14244
14245 2016-02-06  Richard Henderson  <rth@redhat.com>
14246
14247         PR c/69643
14248         * tree.c (tree_nop_conversion_p): Do not strip casts into or
14249         out of non-standard address spaces.
14250
14251 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
14252
14253         PR rtl-optimization/69691
14254         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
14255
14256 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
14257
14258         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
14259         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
14260         (*ieee128_mfvsrd_64bit): Likewise.
14261         (*ieee128_mfvsrd_32bit): Likewise.
14262
14263 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
14264
14265         PR target/69369
14266         Revert r232560:
14267         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14268
14269         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
14270         instrumented_version.
14271
14272 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
14273
14274         * doc/invoke.texi (Optimize Options): In table of --param options
14275         rename second occurrence of tracer-min-branch-ratio to
14276         tracer-min-branch-probability, rename
14277         tracer-min-branch-ratio-feedback to
14278         tracer-min-branch-probability-feedback and clarify description,
14279         rename sched-spec-state-edge-prob-cutoff to
14280         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
14281         to selsched-insns-to-rename, rename lto-minpartition to
14282         lto-min-partition, delete reorder-blocks-duplicate and
14283         reorder-blocks-duplicate-feedback.
14284
14285 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14286
14287         * config/s390/s390.c (s390_register_info_set_ranges): Remove
14288         superfluous loops.
14289
14290 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14291
14292         * doc/extend.texi: S/390: Correct some typos.
14293
14294 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14295
14296         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
14297
14298 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14299
14300         PR target/69625
14301         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
14302         (s390_register_info_gprtofpr): Use new macros above.
14303         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
14304         its name.
14305         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
14306         its name.  Adjust restore and save gpr ranges.
14307         (s390_register_info_set_ranges): New function.
14308         (s390_register_info): Use new macros above.  Call
14309         s390_register_info_set_ranges.
14310         (s390_optimize_register_info): Likewise.
14311         (s390_hard_regno_rename_ok): Use new macros.
14312         (s390_hard_regno_scratch_ok): Likewise.
14313         (s390_emit_epilogue): Likewise.
14314         (s390_can_use_return_insn): Likewise.
14315         (s390_optimize_prologue): Likewise.
14316         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
14317
14318 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
14319
14320         PR bootstrap/69677
14321         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
14322         alignment fixes.
14323         (ix86_option_override_internal): Disable TARGET_STV even for
14324         -m{incoming,preferred}-stack-boundary=3.
14325
14326 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14327
14328         * config.gcc: Mark deprecated rtems targets as obsolete.
14329
14330 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
14331
14332         PR rtl-optimization/64682
14333         PR rtl-optimization/69567
14334         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
14335         before I2 only if the register is both used and set in I2.
14336
14337 2016-02-04  DJ Delorie  <dj@redhat.com>
14338
14339         * config/msp430/msp430.c (msp430_start_function): Add function type.
14340
14341 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
14342
14343         PR fortran/69368
14344         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
14345
14346 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
14347
14348         PR rtl-optimization/69577
14349         Revert:
14350         2015-10-29  Richard Henderson  <rth@redhat.com>
14351
14352         PR target/68124
14353         PR rtl-opt/67609
14354         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
14355         sse check to the exact conditions of PR 67609.
14356
14357 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
14358
14359         PR target/69667
14360         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
14361         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
14362         not allowed into the traditional Altivec registers.
14363         (movtd_64bit_nodm): Likewise.
14364         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
14365
14366 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
14367
14368         * config/aarch64/cortex-a57-fma-steering.c
14369         (aarch64_register_fma_steering): Remove "static" from arguments
14370         to register_pass.
14371
14372 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
14373
14374         PR target/69619
14375         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
14376         twice when complex.
14377
14378 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
14379
14380         * doc/invoke.texi: Delete -mno-fma4.
14381
14382 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
14383
14384         PR rtl-optimization/69577
14385         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
14386         (find_subregs_of_mode): Update accordingly.  Iterate over partial
14387         definitions.
14388
14389 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
14390
14391         * config/arm/arm-protos.h (neon_reinterpret): Remove.
14392         * config/arm/arm.c (neon_reinterpret): Remove.
14393         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
14394         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
14395         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
14396         vreinterpretti): Remove.
14397         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
14398         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
14399         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
14400         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
14401         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
14402         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
14403         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
14404         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
14405         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
14406         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
14407         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
14408         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
14409         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
14410         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
14411         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
14412         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
14413         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
14414         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
14415         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
14416         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
14417         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
14418         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
14419         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
14420         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
14421         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
14422         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
14423         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
14424         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
14425         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
14426         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
14427         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
14428         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
14429         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
14430         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
14431         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
14432         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
14433         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
14434         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
14435         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
14436         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
14437         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
14438         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
14439         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
14440         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
14441         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
14442         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
14443         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
14444         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
14445         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
14446         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
14447         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
14448         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
14449         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
14450         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
14451         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
14452         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
14453         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
14454         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
14455         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
14456         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
14457         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
14458         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
14459         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
14460         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
14461         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
14462         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
14463         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
14464         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
14465         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
14466         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
14467         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
14468         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
14469         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
14470         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
14471         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
14472         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
14473         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
14474         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
14475         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
14476         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
14477         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
14478         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
14479         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
14480         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
14481         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
14482         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
14483         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
14484         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
14485         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
14486         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
14487         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
14488         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
14489         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
14490         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
14491         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
14492         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
14493         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
14494         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
14495         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
14496         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
14497         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
14498         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
14499         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
14500
14501 2016-02-04  Martin Liska  <mliska@suse.cz>
14502
14503         PR sanitizer/69276
14504         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
14505         that are gimple_store_p.
14506         (maybe_instrument_call): Likewise.
14507
14508 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
14509
14510         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
14511         register scaling out of memory reference and comment why.
14512
14513 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14514
14515         PR target/65932
14516         PR target/67714
14517         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
14518         folding the source of a SET.
14519
14520 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14521
14522         PR target/65932
14523         PR target/67714
14524         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
14525         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
14526
14527 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
14528
14529         PR target/65932
14530         PR target/67714
14531         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
14532         HImode.
14533
14534 2016-02-04  Christian Bruel  <christian.bruel@st.com>
14535
14536         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
14537         * config/arm/arm.c (arm_set_current_function): Likewise.
14538
14539 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
14540             Ilya Enkovich  <enkovich.gnu@gmail.com>
14541             H.J. Lu  <hongjiu.lu@intel.com>
14542
14543         PR target/69454
14544         * config/i386/i386.c (convert_scalars_to_vector): Remove
14545         stack alignment fixes.
14546         (ix86_option_override_internal): Disable TARGET_STV if stack
14547         might not be aligned enough.
14548         (ix86_minimum_alignment): Assert that TARGET_STV is false.
14549
14550 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
14551
14552         * config/i386/x86-tune.def: Disable default prefetching
14553         for -march=znver1.
14554
14555 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
14556             Vladimir Makarov  <vmakarov@redhat.com>
14557
14558         PR target/69461
14559         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
14560         in validating fused toc addresses.
14561
14562 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
14563
14564         PR c/69627
14565         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
14566         range->m_caret fields if range->m_show_caret_p is false.
14567
14568         PR target/69644
14569         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
14570         Force oldval into register if it does not satisfy reg_or_short_operand
14571         predicate.  Fix up formatting.
14572
14573 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
14574             Alexandre Oliva  <aoliva@redhat.com>
14575
14576         PR target/69461
14577         * lra-constraints.c (simplify_operand_subreg): Check additionally
14578         address validity after potential reloading.
14579         (process_address_1): Check insns validity.  In case of failure do
14580         nothing.
14581
14582 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
14583
14584         PR target/69118
14585         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
14586         Fix target.
14587
14588 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
14589
14590         * wide-int.cc (canonize_uhwi): New function.
14591         (wi::divmod_internal): Use it.
14592
14593 2016-02-02  James Norris  <jnorris@codesourcery.com
14594
14595         * gimplify.c (omp_notice_variable): Add usage check.
14596
14597 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
14598
14599         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
14600         like LE, GE, LT, GT when emitting relational operator.
14601
14602 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
14603
14604         * ira-costs.c (find_costs_and_classes): Add extra argument.
14605         * target.def (ira_change_pseudo_allocno_class): Add parameter.
14606         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
14607         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
14608         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
14609         Add best_class parameter, and return it if not ALL_REGS.
14610         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
14611         Add parameter.
14612         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
14613         Update target hook.
14614
14615 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
14616
14617         * config/aarch64/aarch64.c
14618         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
14619         (aarch64_ira_change_pseudo_allocno_class): New function.
14620
14621 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
14622
14623         PR target/67032
14624         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
14625
14626 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14627
14628         * config/avr/avr.c (avr_option_override): Set
14629         PARAM_ALLOW_STORE_DATA_RACES to 1.
14630
14631 2016-02-02  Richard Biener  <rguenther@suse.de>
14632
14633         PR tree-optimization/69595
14634         * match.pd: Add range test simplifications to true/false.
14635
14636 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
14637
14638         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
14639         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
14640         instead.
14641
14642 2016-02-02  Richard Biener  <rguenther@suse.de>
14643
14644         PR tree-optimization/69606
14645         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
14646         info on the result before moving a stmt.
14647
14648 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
14649
14650         PR middle-end/68542
14651         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
14652         branch with vector comparison.
14653         * config/i386/sse.md (VI48_AVX): New mode iterator.
14654         (define_expand "cbranch<mode>4): Add support for conditional branch
14655         with vector comparison.
14656         * tree-vect-loop.c (optimize_mask_stores): New function.
14657         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
14658         has_mask_store field of vect_info.
14659         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
14660         vectorized loops having masked stores after vec_info destroy.
14661         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
14662         correspondent macros.
14663         (optimize_mask_stores): Add prototype.
14664
14665 2016-02-02  Alan Modra  <amodra@gmail.com>
14666
14667         PR target/69548
14668         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
14669         allow subregs.
14670
14671 2016-02-02  Alan Modra  <amodra@gmail.com>
14672
14673         PR target/68662
14674         * config/rs6000/rs6000.c (need_toc_init): New var, set it
14675         whenever toc_label_name used.
14676         (rs6000_file_start): Don't set up toc section here,
14677         (rs6000_output_function_epilogue): do so here instead,
14678         (rs6000_xcoff_file_start): and here.
14679         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
14680         (load_toc_aix_di): Likewise.
14681
14682 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14683
14684         PR rtl-optimization/69592
14685         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
14686         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
14687         (num_sign_bit_copies_binary_arith_p): New inline function.
14688         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
14689
14690 2016-02-01  Jeff Law  <law@redhat.com>
14691
14692         PR tree-optimization/69580
14693         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
14694         * tree-ssa-threadbackward.c
14695         (fsm_find_control_statement_thread_paths): Do not try to walk
14696         through large PHI nodes.
14697
14698 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14699
14700         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
14701         when count is incremented above limit, don't analyze further
14702         insns afterwards.
14703
14704         * omp-low.c (oacc_parse_default_dims): Avoid
14705         -Wsign-compare warning, make sure value fits into int
14706         rather than just unsigned int.
14707
14708 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
14709
14710         PR tree-optimization/67921
14711         * fold-const.c (split_tree): New parameters.  Convert pointer
14712         type variable part to proper type before negating.
14713         (fold_binary_loc): Pass new arguments to split_tree.
14714
14715 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
14716
14717         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
14718         (nvptx_goacc_validate_dims): Extend to handle global defaults.
14719         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
14720         * doc/tm.texti: Rebuilt.
14721         * doc/invoke.texi (fopenacc-dim): Document.
14722         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
14723         (append_compiler_options): Likewise.
14724         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
14725         (oacc_parse_default_dims): New.
14726         (oacc_validate_dims): Add USED arg.  Select non-unity default when
14727         possible.
14728         (oacc_loop_fixed_partitions): Return mask of used partitions.
14729         (oacc_loop_auto_partitions): Emit dump info.
14730         (oacc_loop_partition): Return mask of used partitions.
14731         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
14732         loop partitioning and validation calls.
14733
14734 2016-02-01  Richard Biener  <rguenther@suse.de>
14735
14736         PR middle-end/69556
14737         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
14738
14739 2016-02-01  Richard Biener  <rguenther@suse.de>
14740
14741         PR tree-optimization/69574
14742         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
14743         of asserting return chrec_dont_know.
14744
14745 2016-02-01  Martin Liska  <mliska@suse.cz>
14746
14747         * mem-stats-traits.h: Add copyright header.
14748         * mem-stats.h: Likewise.
14749
14750 2016-02-01  Richard Biener  <rguenther@suse.de>
14751
14752         PR tree-optimization/69579
14753         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
14754         Do not propagate through abnormal PHI results.
14755
14756 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
14757
14758         * postreload.c (reload_cse_simplify): Remove dead code.
14759
14760 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14761
14762         PR rtl-optimization/69570
14763         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
14764         if there is more than one set, not if there is a single set.
14765
14766 2016-02-01  Richard Henderson  <rth@redhat.com>
14767
14768         PR rtl-opt/69535
14769         * combine.c (make_compound_operation): When looking through a
14770         subreg, make sure to re-extend to the width of the outer mode.
14771
14772 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
14773
14774         PR tree-optimization/69546
14775         * wide-int.cc (wi::divmod_internal): For unsigned division
14776         where both operands fit into uhwi, if o1 is 1 and o0 has
14777         msb set, if divident_prec is larger than bits per hwi,
14778         clear another quotient word and return 2 instead of 1.
14779         Similarly for remainder with msb in HWI set, if dividend_prec
14780         is larger than bits per hwi.
14781
14782 2016-01-29  Martin Jambor  <mjambor@suse.cz>
14783
14784         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
14785         Use short lowercase names.
14786         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
14787         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
14788         acq_rel one.  Protect warning agains segfaults if
14789         get_memory_order_name returns NULL.
14790         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
14791         with release semantics.  Do not warn if get_memory_order already did.
14792         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
14793         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
14794         if get_memory_order already did.
14795
14796 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
14797
14798         * doc/install.texi: Document that isl-0.16 is supported.
14799
14800 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
14801
14802         PR target/69299
14803         * config/i386/constraints.md (Bm): Describe as special memory
14804         constraint.
14805         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
14806         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14807         * genpreds.c (struct constraint_data): Add is_special_memory.
14808         (have_special_memory_constraints, special_memory_start): New
14809         static vars.
14810         (special_memory_end): Ditto.
14811         (add_constraint): Add new arg is_special_memory.  Add code to
14812         process its true value.  Update have_special_memory_constraints.
14813         (process_define_constraint): Pass the new arg.
14814         (process_define_register_constraint): Ditto.
14815         (choose_enum_order): Process special memory.
14816         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
14817         function insn_extra_special_memory_constraint.
14818         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14819         * gensupport.c (process_rtx): Process
14820         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14821         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
14822         * ira-lives.c (single_reg_class): Use
14823         insn_extra_special_memory_constraint.
14824         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
14825         * lra-constraints.c (process_alt_operands): Ditto.
14826         (curr_insn_transform): Use insn_extra_special_memory_constraint.
14827         * recog.c (asm_operand_ok, preprocess_constraints): Process
14828         CT_SPECIAL_MEMORY.
14829         * reload.c (find_reloads): Ditto.
14830         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
14831         * stmt.c (parse_input_constraint): Use
14832         insn_extra_special_memory_constraint.
14833
14834 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14835
14836         PR target/69530
14837         * lra-splill.c (lra_final_code_change): Revert r229087 by
14838         removing all sub-registers.
14839
14840 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
14841
14842         PR target/65604
14843         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
14844
14845 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
14846
14847         PR target/69551
14848         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
14849         SSE1, copy target into the temporary reg first before recursing
14850         on it.
14851
14852 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14853
14854         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
14855         with vm.
14856
14857 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
14858
14859         * ginclude/stdarg.h: Test __cplusplus instead of
14860         __GXX_EXPERIMENTAL_CXX0X__.
14861
14862 2016-01-29  Richard Biener  <rguenther@suse.de>
14863
14864         PR tree-optimization/69547
14865         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
14866         Do not mark clobbers necessary.
14867         (mark_all_reaching_defs_necessary_1): Likewise.
14868
14869 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14870
14871         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
14872         declaration name with %qs and print it in both error messages.
14873         Also fix indentation.
14874
14875 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14876
14877         PR other/69006
14878         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
14879         trailing blank line from error message.
14880
14881 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
14882
14883         PR c++/69462
14884         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
14885         for C++-11.
14886
14887 2016-01-29  Richard Biener  <rguenther@suse.de>
14888
14889         PR middle-end/69537
14890         * match.pd: Allow all integral types when simplifying a
14891         widening or sign-changing conversion.
14892
14893 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14894
14895         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
14896         back to setting codegen_error to fail codegen.
14897
14898 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
14899
14900         PR target/69459
14901         * config/i386/constraints.md (C): Only accept constant zero operand.
14902         (BC): New constraint.
14903         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
14904         instead of C constraint.
14905         * doc/md.texi (Machine Constraints): Update description
14906         of C constraint.
14907
14908 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
14909
14910         PR target/68400
14911         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
14912
14913 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
14914
14915         PR middle-end/69542
14916         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
14917         non-debug insns.
14918
14919 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
14920
14921         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
14922         branches if using guessed profile.
14923
14924 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
14925
14926         * graphite-optimize-isl.c (optimize_isl): Fix dump.
14927
14928 2016-01-28  Richard Henderson  <rth@redhat.com>
14929
14930         PR target/69305
14931         * config/aarch64/aarch64-modes.def (CC_Cmode): New
14932         * config/aarch64/aarch64-protos.h: Update.
14933         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
14934         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
14935         (aarch64_get_condition_code_1): Handle CC_Cmode.
14936         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
14937         (*add<mode>3_compareC_cconly_imm): New.
14938         (*add<mode>3_compareC_cconly): New.
14939         (*add<mode>3_compareC_imm): New.
14940         (add<mode>3_compareC): New.
14941         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
14942         to be first.  Use aarch64_carry_operation.
14943         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
14944         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
14945         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
14946         (subti3): Use subdi3_compare1.
14947         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
14948         (sub<mode>3_compare1): New.
14949         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
14950         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
14951         (*subsi3_carryin_uxtw): Likewise.
14952         (*ngc<mode>, *ngcsi_uxtw): Likewise.
14953         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
14954         * config/aarch64/iterators.md (DWI): New.
14955         * config/aarch64/predicates.md (aarch64_carry_operation): New.
14956         (aarch64_borrow_operation): New.
14957
14958 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
14959
14960         * graphite-optimize-isl.c (optimize_isl): Print a different debug
14961         message when isl does not return a valid schedule.
14962
14963 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14964
14965         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
14966         Remove comments from class declarations: they are already in the code
14967         close by the defs.
14968
14969 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14970
14971         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
14972         codegen_error_p.
14973         (ternary_op_to_tree): Same.
14974         (unary_op_to_tree): Same.
14975         (nary_op_to_tree): Same.
14976         (gcc_expression_from_isl_expr_op): Same.
14977         (gcc_expression_from_isl_expression): Same.
14978         (graphite_create_new_loop): Same.
14979         (graphite_create_new_loop_guard): Same.
14980         (build_iv_mapping): Same.
14981         (graphite_create_new_guard): Same.
14982         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
14983         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
14984
14985 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14986
14987         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
14988         instead of setting codegen_error to fail codegen.
14989
14990 2016-01-28  Jason Merrill  <jason@redhat.com>
14991
14992         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
14993
14994 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
14995
14996         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
14997         Remove CONST_INT_P check in CCMP cost calculation.
14998
14999 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
15000
15001         * config/aarch64/aarch64.c (generic_vector_cost):
15002         Set vec_permute_cost.
15003         (cortexa57_vector_cost): Likewise.
15004         (exynosm1_vector_cost): Likewise.
15005         (xgene1_vector_cost): Likewise.
15006         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
15007         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
15008         Add vec_permute_cost entry.
15009
15010 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
15011
15012         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
15013         immediate as %1.
15014         (add<mode>3_compare0): Likewise.
15015         (addsi3_compare0_uxtw): Likewise.
15016         (add<mode>3nr_compare0): Likewise.
15017         (compare_neg<mode>): Likewise.
15018         (<optab><mode>3): Likewise.
15019
15020 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
15021
15022         * tree-vect-stmts.c (vectorizable_comparison): Add
15023         NULL check for vectype.
15024
15025 2016-01-28  Richard Biener  <rguenther@suse.de>
15026
15027         PR tree-optimization/69466
15028         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
15029         Account for PHIs we couldn't duplicate.
15030
15031 2016-01-28  Martin Liska  <mliska@suse.cz>
15032
15033         PR pch/68758
15034         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
15035         instead of ENABLE_VALGRIND_CHECKING.
15036
15037 2016-01-27  Richard Henderson  <rth@redhat.com>
15038
15039         PR rtl-opt/69447
15040         * lra-remat.c (subreg_regs): New.
15041         (dump_candidates_and_remat_bb_data): Dump it.
15042         (operand_to_remat): Reject if operand in subreg_regs.
15043         (set_bb_regs): Collect subreg_regs.
15044         (lra_remat): Init and free subreg_regs.  Compute
15045         calculate_local_reg_remat_bb_data before create_cands.
15046
15047 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
15048
15049         PR target/68986
15050         * config/i386/i386.c (ix86_update_stack_boundary): Don't
15051         change stack_alignment_needed for __tls_get_addr call.
15052
15053 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
15054
15055         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
15056
15057 2016-01-27  Jeff Law  <law@redhat.com>
15058
15059         PR tree-optimization/68398
15060         PR tree-optimization/69196
15061         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
15062         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
15063         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
15064         Only count PHIs in the last block in the path.  The others will
15065         const/copy propagate away.  Add heuristic to allow more irreducible
15066         subloops to be created when it is likely profitable to do so.
15067
15068         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
15069         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
15070         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
15071
15072 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
15073
15074         PR lto/69254
15075         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
15076         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
15077         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
15078         * tree-streamer-in.c: Include asan.h.
15079         (streamer_get_builtin_tree): For builtins in sanitizer
15080         range call initialize_sanitizer_builtins and retry.
15081
15082 2016-01-27  Ian Lance Taylor  <iant@google.com>
15083
15084         * common.opt (fkeep-gc-roots-live): New undocumented option.
15085         * tree-ssa-loop-ivopts.c (add_candidate_1): If
15086         -fkeep-gc-roots-live, skip pointers.
15087         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
15088         NULL.
15089
15090 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
15091
15092         PR target/69512
15093         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
15094         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
15095
15096 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
15097
15098         PR target/68380
15099         * configure.ac: NetBSD provides SSP in its C library.
15100         * configure: Updated.
15101
15102 2016-01-27  Richard Biener  <rguenther@suse.de>
15103
15104         PR tree-optimization/69166
15105         * tree-vect-loop.c (vect_is_simple_reduction): Always check
15106         reduction code for commutativity / associativity.
15107
15108 2016-01-27  Martin Jambor  <mjambor@suse.cz>
15109
15110         PR tree-optimization/69355
15111         * tree-sra.c (analyze_access_subtree): Correct hole detection when
15112         total_scalarization fails.
15113
15114 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
15115
15116         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
15117         power9.
15118
15119 2016-01-27  Christian Bruel  <christian.bruel@st.com>
15120
15121         PR target/69245
15122         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
15123         Move arm_reset_previous_fndecl and set_target_option_current_node in
15124         the conditional part.  Call save_restore_target_globals.
15125         * config/arm/arm.c (arm_set_current_function):
15126         Refactor to better support #pragma target and attribute mix.
15127         Call save_restore_target_globals.
15128         * config/arm/arm-protos.h (save_restore_target_globals): New function.
15129
15130 2016-01-27  Martin Liska  <mliska@suse.cz>
15131
15132         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
15133         reference for an HSA kernel and its host function.
15134
15135 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
15136
15137         PR tree-optimization/69399
15138         * wide-int.h (wi::lrshift): For larger precisions, only
15139         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
15140
15141 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
15142
15143         * config/arc/predicates.md (proper_comparison_operator): Reject
15144         constant-constant comparison.
15145
15146 2016-01-26  Tom de Vries  <tom@codesourcery.com>
15147
15148         PR tree-optimization/69110
15149         * tree-data-ref.c (initialize_data_dependence_relation): Handle
15150         DR_NUM_DIMENSIONS == 0.
15151
15152 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
15153             Sebastian Pop  <s.pop@samsung.com>
15154
15155         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
15156         isl_ast_op_cond and isl_ast_op_select.
15157         (gcc_expression_from_isl_expr_op): Same.
15158
15159 2016-01-26  Jason Merrill  <jason@redhat.com>
15160
15161         PR c++/68782
15162         * tree.c (recompute_constructor_flags): Split out from
15163         build_constructor.
15164         (verify_constructor_flags): New.
15165         * tree.h: Declare them.
15166
15167 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
15168
15169         PR rtl-optimization/69217
15170         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
15171         are no TYPE_FIELDS set for the record type.
15172
15173 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15174
15175         PR target/68662
15176         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
15177         toc_label_name unconditionally.
15178         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
15179         SYMBOL_REF string.  Use toc_label_name instead of constructing
15180         LCTOC1.
15181         (rs6000_elf_declare_function_name): Use toc_label_name instead of
15182         constructing LCTOC1.
15183
15184 2016-01-26  Martin Sebor  <msebor@redhat.com>
15185
15186         PR other/69477
15187         * doc/extend.texi (Common Type Attributes): Move text that talks about
15188         attribute packed from attribute aligned to the section discussing
15189         the former attribute for clarity.
15190
15191 2016-01-26  Richard Henderson  <rth@redhat.com>
15192
15193         PR middle-end/60908
15194         * trans-mem.c (tm_region_init): Mark entry block as visited.
15195
15196 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
15197
15198         PR other/69006
15199         * diagnostic-show-locus.c (layout::print_source_line): Replace
15200         call to pp_newline with call to layout::print_newline.
15201         (layout::print_annotation_line): Likewise.
15202         (layout::move_to_column): Likewise.
15203         (layout::print_any_fixits): After printing any fixits, print a
15204         trailing newline, if necessary.
15205         (layout::print_newline): New method, resetting any colorization
15206         before a newline.
15207         (diagnostic_show_locus): Move the pp_newline to before the
15208         early bailout.  Remove dummy block enclosing the layout instance.
15209         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
15210         of pp_newline_and_flush with pp_flush.
15211         (diagnostic_append_note): Delete use of pp_newline.
15212         (diagnostic_append_note_at_rich_loc): Delete.
15213         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
15214         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
15215         when newline characters are added to the buffer.
15216
15217 2016-01-26  Michael Matz  <matz@suse.de>
15218
15219         * configure.ac (ac_cv_std_swap_in_utility): New test.
15220         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
15221         * configure: Regenerate.
15222         * config.in: Regenerate.
15223
15224 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
15225
15226         * config/arc/arc.md (cstoresi4): Force operand into register.
15227         (arcset<code>): Fix predicate.
15228         (arcsetltu): Likewise.
15229         (arcsetgeu): Likewise.
15230         (arcsethi): Likewise.
15231         (arcsetls): Likewise.
15232
15233 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15234
15235         PR tree-optimization/69483
15236         * gimple-fold.c (canonicalize_constructor_val): Return NULL
15237         if base has error_mark_node type.
15238
15239 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
15240
15241         PR target/68620
15242         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
15243         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
15244         New helper macros.
15245         (vget_lane_f16): Handle big-endian.
15246         (vgetq_lane_f16): Likewise.
15247         (vset_lane_f16): Likewise.
15248         (vsetq_lane_f16): Likewise.
15249         * config/arm/iterators.md (VQXMOV): Add V8HF.
15250         (VDQ): Add V4HF and V8HF.
15251         (V_reg): Handle V4HF and V8HF.
15252         (Is_float_mode): Likewise.
15253         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
15254         neon_vdup_nv8hf): New patterns.
15255         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
15256         Use VD_LANE iterator.
15257         (neon_vld1_dup<mode>): Use VQ2 iterator.
15258
15259 2016-01-26  Nathan Sidwell  <nathan@acm.org>
15260
15261         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
15262         (set_oacc_fn_attrib): Add IS_KERNEL arg.
15263         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
15264         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
15265         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
15266         (oacc_validate_dims): Add LEVEL arg, don't return level.
15267         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
15268         oacc_validate_dims.
15269         (execute_oacc_device_lower): Adjust, add more dump output.
15270         * tree-ssa-loop.c (gate_oacc_kernels): Use
15271         oacc_fn_attrib_kernels_p.
15272         * tree-parloops.c (create_parallel_loop): Adjust
15273         set_oacc_fn_attrib call.
15274
15275 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15276
15277         PR lto/69254
15278         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
15279         (append_compiler_options): Handle -fcilkplus.
15280         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
15281
15282 2016-01-26  Nick Clifton  <nickc@redhat.com>
15283
15284         PR target/66655
15285         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
15286         been marked as DECL_ONE_ONLY but we do not the means to make it
15287         so, then do not allow it to bind locally.
15288
15289 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15290
15291         PR lto/69254
15292         * opts.h (parse_sanitizer_options): New prototype.
15293         * opts.c (sanitizer_opts): New array.
15294         (parse_sanitizer_options): New function.
15295         (common_handle_option): Use parse_sanitizer_options.
15296
15297 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
15298
15299         PR target/68986
15300         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
15301         alignment adjustment to ...
15302         (ix86_update_stack_boundary): Here.  Don't over-align stack for
15303         __tls_get_addr.
15304         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
15305         if __tls_get_addr is called.
15306
15307 2016-01-26  Christian Bruel  <christian.bruel@st.com>
15308
15309         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
15310
15311 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
15312
15313         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
15314
15315 2016-01-26  Richard Biener  <rguenther@suse.de>
15316
15317         PR middle-end/69467
15318         * match.pd: Guard X * CST CMP 0 pattern with single_use.
15319
15320 2016-01-26  Richard Biener  <rguenther@suse.de>
15321
15322         PR tree-optimization/69452
15323         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
15324         (move_computations_dom_walker::before_dom_children): Rename
15325         to ...
15326         (move_computations_worker): This.
15327         (move_computations): Perform an RPO rather than a DOM walk.
15328
15329 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15330
15331         PR target/69442
15332         * combine.c (combine_instructions): For REG_EQUAL note with
15333         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
15334         to the underlying register.
15335         * doc/rtl.texi (REG_EQUAL): Document the behavior of
15336         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
15337
15338 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
15339
15340         PR target/67896
15341         * config/aarch64/aarch64-builtins.c
15342         (aarch64_init_simd_builtin_types): Do not set structural
15343         equality to __Poly{8,16,64,128}_t types.
15344
15345 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
15346
15347         PR tree-optimization/69400
15348         * wide-int.cc (wi_pack): Take the precision as argument and
15349         perform canonicalization here rather than in the callers.
15350         Use the main loop to handle all full-width HWIs.  Add a
15351         zero HWI if in_len isn't a full result.
15352         (wi::divmod_internal): Update accordingly.
15353         (wi::mul_internal): Likewise.  Simplify.
15354
15355 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
15356             Sebastian Pop  <s.pop@samsung.com>
15357
15358         * graphite-poly.c (apply_poly_transforms): Simplify.
15359         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
15360         (print_isl_map): Same.
15361         (print_isl_union_map): Same.
15362         (print_isl_schedule): New.
15363         (debug_isl_schedule): New.
15364         * graphite-dependences.c (scop_get_reads): Do not call
15365         isl_union_map_add_map that is undocumented isl functionality.
15366         (scop_get_must_writes): Same.
15367         (scop_get_may_writes): Same.
15368         (scop_get_original_schedule): Remove.
15369         (scop_get_dependences): Do not call isl_union_map_compute_flow that
15370         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
15371         (compute_deps): Remove.
15372         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
15373         (debug_schedule_ast): New.
15374         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
15375         set_separate_option.
15376         (graphite_regenerate_ast_isl): Add dump.
15377         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
15378         from scop->transformed_schedule.
15379         (graphite_regenerate_ast_isl): Add more dump.
15380         * graphite-optimize-isl.c (optimize_isl): Set
15381         scop->transformed_schedule.  Check whether schedules are equal.
15382         (apply_poly_transforms): Move here.
15383         * graphite-poly.c (apply_poly_transforms): ... from here.
15384         (free_poly_bb): Static.
15385         (free_scop): Static.
15386         (pbb_number_of_iterations_at_time): Remove.
15387         (print_isl_ast): New.
15388         (debug_isl_ast): New.
15389         (debug_scop_pbb): New.
15390         * graphite-scop-detection.c (print_edge): Move.
15391         (print_sese): Move.
15392         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
15393         (build_scop_scattering): Remove.
15394         (create_pw_aff_from_tree): Assert instead of bailing out.
15395         (add_condition_to_pbb): Remove unused code, do not fail.
15396         (add_conditions_to_domain): Same.
15397         (add_conditions_to_constraints): Remove.
15398         (build_scop_context): New.
15399         (add_iter_domain_dimension): New.
15400         (build_iteration_domains): Initialize pbb->iterators.
15401         Call add_conditions_to_domain.
15402         (nested_in): New.
15403         (loop_at): New.
15404         (index_outermost_in_loop): New.
15405         (index_pbb_in_loop): New.
15406         (outermost_pbb_in): New.
15407         (add_in_sequence): New.
15408         (add_outer_projection): New.
15409         (outer_projection_mupa): New.
15410         (add_loop_schedule): New.
15411         (build_schedule_pbb): New.
15412         (build_schedule_loop): New.
15413         (embed_in_surrounding_loops): New.
15414         (build_schedule_loop_nest): New.
15415         (build_original_schedule): New.
15416         (build_poly_scop): Call build_original_schedule.
15417         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
15418         (free_poly_dr): Remove.
15419         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
15420         (free_poly_bb): Remove.
15421         (debug_loop_vec): Remove.
15422         (print_isl_ast): Declare.
15423         (debug_isl_ast): Declare.
15424         (scop_do_interchange): Remove.
15425         (scop_do_strip_mine): Remove.
15426         (scop_do_block): Remove.
15427         (flatten_all_loops): Remove.
15428         (optimize_isl): Remove.
15429         (pbb_number_of_iterations_at_time): Remove.
15430         (debug_scop_pbb): Declare.
15431         (print_schedule_ast): Declare.
15432         (debug_schedule_ast): Declare.
15433         (struct scop): Remove schedule.  Add original_schedule,
15434         transformed_schedule.
15435         (free_gimple_poly_bb): Remove.
15436         (print_generated_program): Remove.
15437         (debug_generated_program): Remove.
15438         (unify_scattering_dimensions): Remove.
15439         * sese.c (print_edge): ... here.
15440         (print_sese): ... here.
15441         (debug_edge): ... here.
15442         (debug_sese): ... here.
15443         * sese.h (print_edge): Declare.
15444         (print_sese): Declare.
15445         (dump_edge): Declare.
15446         (dump_sese): Declare.
15447
15448 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
15449             Sebastian Pop  <s.pop@samsung.com>
15450
15451         * Makefile.in: Set ISLVER in site.exp.
15452
15453 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
15454
15455         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
15456         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
15457         through DECL_VALUE_EXPR for expansion.
15458
15459 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15460
15461         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
15462         the frame info after reload completed.
15463
15464 2016-01-25  Jeff Law  <law@redhat.com>
15465
15466         PR tree-optimization/69196
15467         PR tree-optimization/68398
15468         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
15469         tree-ssa-threadupdate.c.
15470         (determine_bb_domination_status): Prototype
15471         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
15472         (determine_bb_domination_status): No longer static.
15473         (valid_jump_thread_path): Remove code to detect characteristics
15474         of the jump thread path not associated with correctness.
15475         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
15476         Correct test for thread path length.  Count PHIs for real operands as
15477         statements that need to be copied.  Do not count ASSERT_EXPRs.
15478         Look at all the blocks in the thread path.  Compute and selectively
15479         filter thread paths based on threading through the latch, threading
15480         a multiway branch or crossing a multiway branch.
15481
15482 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15483
15484         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
15485         decl with __attribute__ ((unused)) annotation.
15486
15487 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
15488
15489         PR target/69421
15490         * tree-vect-stmts.c (vectorizable_condition): Check vectype
15491         of operands is compatible with a statement vectype.
15492
15493 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
15494
15495         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
15496         improve wording for mixed storage order support.
15497
15498 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
15499
15500         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
15501         (vcvt_u64_f64): Likewise.
15502         (vcvta_s64_f64): Likewise.
15503         (vcvta_u64_f64): Likewise.
15504         (vcvtm_s64_f64): Likewise.
15505         (vcvtm_u64_f64): Likewise.
15506         (vcvtn_s64_f64): Likewise.
15507         (vcvtn_u64_f64): Likewise.
15508         (vcvtp_s64_f64): Likewise.
15509         (vcvtp_u64_f64): Likewise.
15510
15511 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
15512
15513         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
15514         (arc_init): Check validity mll64 option.
15515         (arc_save_restore): Use double load/store instruction.
15516         (arc_expand_movmem): Likewise.
15517         (arc_split_move): Don't split if we have double load/store
15518         instructions. Returns a boolean.
15519         (arc_process_double_reg_moves): Change function to return boolean
15520         instead of a sequence of instructions.
15521         (arc_dwarf_register_span): New function.
15522         * config/arc/arc-protos.h (arc_split_move): Change prototype.
15523         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
15524         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
15525         (*movdf_insn): Likewise.
15526         * config/arc/arc.opt (mll64): New option.
15527         * config/arc/predicates.md (even_register_operand): New predicate.
15528         * doc/invoke.texi (ARC Options): Add mll64 documentation.
15529
15530 2016-01-25  Richard Biener  <rguenther@suse.de>
15531
15532         PR lto/69393
15533         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
15534         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
15535         DECL_NAMELESS.
15536         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
15537
15538 2016-01-25  Richard Biener  <rguenther@suse.de>
15539
15540         PR tree-optimization/69376
15541         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
15542         flag.
15543         (VN_INFO_ANTI_RANGE_P): New inline.
15544         (VN_INFO_RANGE_TYPE): Likewise.
15545         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
15546         SSA_NAME_ANTI_RANGE_P.
15547         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
15548         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15549         Properly query VN_INFO_RANGE_TYPE.
15550
15551 2016-01-25  Nick Clifton  <nickc@redhat.com>
15552
15553         PR target/66655
15554         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
15555
15556 2016-01-23  Tom de Vries  <tom@codesourcery.com>
15557
15558         PR tree-optimization/69426
15559         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
15560         removed clobber.
15561
15562 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
15563
15564         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
15565         "the the" with "the" in the comments.
15566         * ipa-devirt.c (build_type_inheritance_graph,
15567         update_type_inheritance_graph): Likewise.
15568         * tree.c (build_function_type_list_1): Likewise.
15569         * cfgloopmanip.c (scale_loop_profile): Likewise.
15570         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
15571         * gimple-ssa-split-paths.c
15572         (find_block_to_duplicate_for_splitting_paths): Likewise.
15573         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
15574         * expr.c (convert_move): Likewise.
15575         * var-tracking.c (vt_stack_adjustments): Likewise.
15576         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
15577         * tree-vrp.c (test_for_singularity): Likewise.
15578
15579         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
15580         directly instead of building a temporary tree.
15581
15582         PR bootstrap/69434
15583         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
15584         remove <algorithm> include.
15585
15586 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
15587
15588         PR target/69432
15589         * config/i386/i386.c: Include dojump.h.
15590         (expand_small_movmem_or_setmem,
15591         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
15592         fixes.
15593         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
15594         if dynamic_check != -1.
15595
15596 2016-01-21  Jeff Law  <law@redhat.com>
15597
15598         PR middle-end/69347
15599         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
15600         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
15601         into dominated_by_p.
15602         (cprop_into_successor_phis): Avoid unnecessary tests.
15603
15604 2016-01-22  Richard Henderson  <rth@redhat.com>
15605
15606         PR target/69416
15607         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
15608         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
15609
15610 2016-01-22  Michael Matz  <matz@suse.de>
15611
15612         * system.h (string, algorithm): Include only conditionally.
15613         (new): Include always under C++.
15614         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
15615         * final.c (toplevel): Ditto.
15616         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
15617         * genconditions.c (write_header): Make gencondmd.c define
15618         INCLUDE_STRING.
15619         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
15620
15621         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
15622         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
15623
15624 2016-01-22  Christian Bruel  <christian.bruel@st.com>
15625
15626         PR target/68674
15627         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
15628
15629 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15630
15631         PR target/69403
15632         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
15633         define_insn_and_split.  Ensure operands[1] and operands[0] do not
15634         get assigned the same register.
15635
15636 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
15637
15638         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
15639
15640 2016-01-22  Christian Bruel  <christian.bruel@st.com>
15641
15642         * config/arm/arm-c.c (arm_pragma_target_parse):
15643         Remove warn_builtin_macro_redefined overwrite.
15644
15645 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15646
15647         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
15648         flag_non_call_exceptions compatibility.
15649
15650 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
15651
15652         PR debug/66668
15653         * dwarf2out.c (add_child_die_after): New function.
15654         (dwarf_qual_info_t): New type.
15655         (dwarf_qual_info): New variable.
15656         (qualified_die_p): New function.
15657         (modified_type_die): For -fdebug-types-section, ensure
15658         canonical order of qualifiers.  Put qualified DIEs adjacent
15659         to the corresponding non-qualified type DIE and search there
15660         for existing qualified DIEs.
15661
15662 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15663
15664         * doc/extend.texi (scalar_storage_order type attribute): Document
15665         restriction on type punning and aliasing, and remove future tense.
15666
15667 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
15668
15669         PR target/69252
15670         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
15671         first stage.
15672
15673 2016-01-21  Jeff Law  <law@redhat.com>
15674
15675         PR middle-end/69347
15676         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
15677         useless call to record_temporary_equivalences.
15678         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
15679         allocate 10 slots in the bb_path vector and let it grow as needed.
15680         (fsm_find_control_statement_thread_paths): Similarly for the next_path
15681         vector.
15682
15683 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
15684
15685         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
15686         Detangle.
15687         * configure: Regenerate.
15688
15689 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
15690
15691         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
15692         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
15693
15694 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
15695
15696         PR middle-end/66178
15697         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
15698         drop EXPAND_INITIALIZER.
15699         * rtl.h (contains_symbolic_reference_p): Declare.
15700         * rtlanal.c (contains_symbolic_reference_p): New function.
15701         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
15702         a subtraction into a NOT if symbolic constants are involved.
15703
15704 2016-01-21  Anton Blanchard  <anton@samba.org>
15705             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15706
15707         PR target/63354
15708         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
15709         #define.
15710         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
15711         function.
15712
15713 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
15714
15715         * config/microblaze/microblaze.c
15716         (get_branch_target): New.
15717         (insert_wic_for_ilb_runout): New.
15718         (insert_wic): New.
15719         (microblaze_machine_dependent_reorg): New.
15720         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
15721         * config/microblaze/microblaze.md
15722         (UNSPEC_IPREFETCH): Define.
15723         (iprefetch): New pattern
15724         * config/microblaze/microblaze.opt
15725         (mxl-prefetch): New flag.
15726
15727 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
15728
15729         * config/microblaze/microblaze.h
15730         (FIXED_REGISTERS): Update in macro.
15731         (CALL_USED_REGISTERS): Update in macro.
15732
15733 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
15734
15735         PR rtl-optimization/68920
15736         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
15737         moves.
15738
15739 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
15740
15741         PR rtl-optimization/68990
15742         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
15743         pseudo instead of inheritance ones.
15744
15745 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15746             Nick Clifton  <nickc@redhat.com>
15747
15748         PR target/69129
15749         PR target/69012
15750         * config/mips/mips.c (mips_compute_frame_info): Initialise
15751         args_size and hard_frame_pointer_offset fields of the frame
15752         structure before calling mips_global_pointer.
15753
15754 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
15755
15756         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
15757         label reference.
15758         * configure: Regenerate.
15759
15760 2016-01-21  Richard Biener  <rguenther@suse.de>
15761
15762         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
15763
15764 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
15765
15766         * config/s390/s390.c (s390_asm_declare_function_size): Add code
15767         to actually emit the .size directive.
15768
15769 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
15770              Jakub Jelinek  <jakub@redhat.com>
15771
15772         PR target/69187
15773         PR target/65624
15774         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
15775         args array size by one to avoid buffer overflow.
15776
15777 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
15778
15779         * config/s390/s390.md (pool_section_start): Use switch_to_section
15780         to select proper read-only data section instead of hardcoding
15781         .rodata.
15782         (pool_section_end): Use switch_to_section to match the above.
15783
15784 2016-01-21  Richard Biener  <rguenther@suse.de>
15785
15786         PR tree-optimization/69378
15787         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
15788         (set_ssa_val_to): Use it for dominance checks taking into
15789         account not executable edges.
15790
15791 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
15792
15793         PR c++/69355
15794         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
15795         for bitsize instead of GET_MODE_PRECISION (mode).
15796
15797 2016-01-20  Martin Sebor  <msebor@redhat.com>
15798
15799         PR c/52291
15800         * extend.texi (__sync Builtins): Clarify the semantics of
15801         __sync_fetch_and_OP built-ins on pointers.
15802         (__atomic Builtins): Same.
15803
15804 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15805             Sebastian Pop  <s.pop@samsung.com>
15806
15807         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
15808         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
15809         (is_valid_rename): Same.
15810         (translate_isl_ast_to_gimple::get_rename): Same.
15811         (translate_isl_ast_to_gimple::rename_all_uses): Same.
15812         (translate_isl_ast_to_gimple::rename_uses): Same.
15813         (get_new_name): Check for close_phi nodes.
15814         (copy_loop_phi_args): Use phi_node_kind.
15815         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
15816         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
15817
15818 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15819             Sebastian Pop  <s.pop@samsung.com>
15820
15821         Revert commit r229783.
15822         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
15823         Remove use of parameter_rename_map.
15824         (copy_def): Remove.
15825         (copy_internal_parameters): Remove.
15826         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
15827         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
15828         (free_sese_info): Do not free parameter_rename_map.
15829         (set_rename): Do not use parameter_rename_map.
15830         (rename_uses): Update call to set_rename.
15831         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
15832         * sese.h (parameter_rename_map_t): Remove.
15833         (struct sese_info_t): Remove field parameter_rename_map.
15834
15835 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15836             Sebastian Pop  <s.pop@samsung.com>
15837
15838         * graphite-isl-ast-to-gimple.c: Fix comment.
15839         * graphite-scop-detection.c (defined_in_loop_p): New.
15840         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
15841         names defined in loop.
15842
15843 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15844             Sebastian Pop  <s.pop@samsung.com>
15845
15846         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
15847         Discard unstructured if-then-else regions.
15848
15849 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15850             Sebastian Pop  <s.pop@samsung.com>
15851
15852         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
15853         (cleanup_loop_iter_dom): Remove.
15854         (build_loop_iteration_domains): Remove.
15855         (build_scop_context): Remove.
15856         (build_scop_iteration_domain): Remove.
15857         (add_loop_constraints): New.
15858         (build_iteration_domains): New.
15859         (build_poly_scop): Call build_iteration_domains.
15860
15861 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15862             Sebastian Pop  <s.pop@samsung.com>
15863
15864         * graphite-scop-detection.c
15865         (scop_detection::harmful_loop_in_region): Free dom and loops.
15866         (scop_detection::loop_body_is_valid_scop): Free bbs.
15867
15868 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15869             Sebastian Pop  <s.pop@samsung.com>
15870
15871         * graphite-scop-detection.c (record_loop_in_sese): New.
15872         (gather_bbs::before_dom_children): Call record_loop_in_sese.
15873         (build_scops): Remove call to build_sese_loop_nests.
15874         * sese.c (sese_record_loop): Remove.
15875         (build_sese_loop_nests): Remove.
15876         (new_sese_info): Remove region->loops.
15877         (free_sese_info): Same.
15878         * sese.h (sese_contains_loop): Same.
15879         (build_sese_loop_nests): Remove.
15880         (sese_contains_loop): Remove.
15881
15882 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15883             Sebastian Pop  <s.pop@samsung.com>
15884
15885         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
15886         loop_is_valid_in_scop.
15887         (scop_detection::harmful_stmt_in_region): Renamed
15888         harmful_loop_in_region.
15889         Call loop_is_valid_in_scop.
15890
15891 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15892             Sebastian Pop  <s.pop@samsung.com>
15893
15894         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
15895         isl_ast_node_mark.
15896
15897 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15898             Sebastian Pop  <s.pop@samsung.com>
15899
15900         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
15901         * graphite.h (struct poly_bb): Remove field is_reduction.
15902         (PBB_IS_REDUCTION): Remove.
15903
15904 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15905             Sebastian Pop  <s.pop@samsung.com>
15906
15907         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
15908         (add_pdr_constraints): Same.
15909         (scop_get_reads): Same.
15910         (scop_get_must_writes): Same.
15911         (scop_get_may_writes): Same.
15912         (scop_get_original_schedule): Same.
15913         (extend_schedule): Same.
15914         (apply_schedule_on_deps): Same.
15915         (carries_deps): Same.
15916         (compute_deps): Same.
15917         (scop_get_dependences): Same.
15918         * graphite-isl-ast-to-gimple.c
15919         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
15920         * graphite-optimize-isl.c (get_schedule_for_band): Same.
15921         (get_schedule_for_band_list): Same.
15922         (get_schedule_map): Same.
15923         (apply_schedule_map_to_scop): Same.
15924         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
15925         (build_loop_iteration_domains): Same.
15926         (add_condition_to_pbb): Same.
15927         (add_param_constraints): Same.
15928         (pdr_add_memory_accesses): Same.
15929         (pdr_add_data_dimensions): Same.
15930
15931 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
15932
15933         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
15934         requirements.
15935
15936 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
15937
15938         * common.opt (feliminate-dwarf2-dups): Replace references to
15939         "DWARF 2" with just "DWARF".
15940         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
15941         * doc/extend.texi: Likewise.
15942         * doc/cpp.texi: Likewise.
15943         * doc/invoke.texi: Likewise.
15944         (Option Summary): Add -gdwarf to list of Debugging Options.
15945         (Debugging Options): Document -gdwarf.
15946         * doc/contrib.texi: Spell "DWARF" like that.
15947
15948 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
15949
15950         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
15951         warning.  Fix up formatting.
15952
15953         PR middle-end/67653
15954         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
15955         attempt to mark memory input operand addressable and
15956         call prepare_gimple_addressable in that case.  Don't adjust
15957         input_location for diagnostics, use error_at instead.
15958
15959 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
15960
15961         * config/rs6000/ppc-auxv.h: New file.
15962         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
15963         (cpu_is): Likewise.
15964         (cpu_supports): Likewise.
15965         * config/rs6000/rs6000.c: include "ppc-auxv.h".
15966         (cpu_is_info): New variable.
15967         (cpu_supports_info): Likewise.
15968         (tcb_verification_symbol): Likewise.
15969         (cpu_builtin_p): Likewise.
15970         (cpu_expand_builtin): New function.
15971         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
15972         (rs6000_init_builtins): Likewise.
15973         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
15974         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
15975         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
15976         * configure: Regenerate.
15977         * config.in: Likewise.
15978         * doc/extend.texi (PowerPC Built-in Functions): Document
15979         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
15980
15981 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
15982
15983         PR target/68609
15984         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
15985         domain check.
15986         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
15987         for V4SFmode.
15988
15989 2016-01-20  Richard Henderson  <rth@redhat.com>
15990
15991         PR bootstrap/69343
15992         PR bootstrap/69339
15993         PR tree-opt/68964
15994         Revert:
15995         * tree.c (tm_define_builtin): New.
15996         (find_tm_vector_type): New.
15997         (build_tm_vector_builtins): New.
15998         (build_common_builtin_nodes): Call it.
15999
16000 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
16001
16002         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
16003         (arm_fp_ok): Likewise.
16004         (arm_fp): Likewise.
16005         (arm_crypto): Likewise.
16006
16007 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
16008             Richard Biener  <rguenther@suse.de>
16009
16010         PR tree-optimization/69328
16011         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
16012         vectors have same number of elements.
16013         (vectorizable_condition): Fix masked version recognition.
16014
16015 2016-01-20  Richard Biener  <rguenther@suse.de>
16016
16017         PR tree-optimization/69345
16018         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
16019         (VN_INFO_PTR_INFO): Likewise.
16020         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
16021         info when it is equal between non-dominating SSA names.
16022         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16023         Make sure to look at original SSA infos.
16024
16025 2016-01-20  Jeff Law  <law@redhat.com>
16026
16027         PR target/25114
16028         * config/m68k/predicates.md (pow2_m1_operand): New predicate
16029         extracted from ...
16030         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
16031         (pc_or_label_operand): New predicate.
16032         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
16033         tests for small integers that are 2^n - 1.
16034
16035 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
16036
16037         * doc/invoke.texi (Options Summary): Add '.' after @xref.
16038
16039 2016-01-19  Jeff Law  <law@redhat.com>
16040
16041         PR middle-end/69347
16042         * tree-ssa-threadbackwards.c
16043         (fsm_find_control_statement_thread_paths): Do not try to lookup
16044         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
16045
16046 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
16047
16048         * doc/lto.texi: Remove text that says only Gold has linker plugin
16049         support.
16050
16051 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
16052
16053         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
16054         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
16055         the DIE accordingly.
16056         (modified_type_die): Add REVERSE parameter and pass it recursively,
16057         as well as to base_type_die.  Adjust presence check accordingly.
16058         (base_type_for_mode): Adjust call to modified_type_die.
16059         (add_type_attribute): Add REVERSE parameter and pass it to
16060         modified_type_die.
16061         (generic_parameter_die): Adjust call to add_type_attribute.
16062         (add_scalar_info): Likewise.
16063         (add_subscript_info): Likewise.
16064         (gen_array_type_die): Likewise.
16065         (gen_descr_array_type_die): Likewise.
16066         (gen_entry_point_die): Likewise.
16067         (gen_enumeration_type_die): Likewise.
16068         (gen_formal_parameter_die): Likewise.
16069         (gen_subprogram_die): Likewise.
16070         (gen_variable_die ): Likewise.
16071         (gen_const_die): Likewise.
16072         (gen_field_die): Likewise.
16073         (gen_pointer_type_die): Likewise.
16074         (gen_reference_type_die): Likewise.
16075         (gen_ptr_to_mbr_type_die): Likewise.
16076         (gen_inheritance_die): Likewise.
16077         (gen_subroutine_type_die): Likewise.
16078         (gen_typedef_die): Likewise.
16079         (force_type_die): Adjust call to modified_type_die.
16080
16081 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
16082
16083         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
16084         flow throughout the file.  Fix broken link to Objective-C 2.0
16085         documentation.
16086         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
16087         errors.
16088
16089 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16090
16091         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
16092
16093 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16094
16095         PR ipa/66223
16096         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
16097         (maybe_record_node): Record cxa_pure_virtual as the only possible
16098         target if there are not ohter candidates.
16099         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
16100
16101 2016-01-19  Richard Biener  <rguenther@suse.de>
16102
16103         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
16104         (get_memory_order): Likewise.
16105
16106 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
16107
16108         * tree-vect-stmts.c (vectorizable_store): Check
16109         rhs vectype.
16110
16111 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
16112
16113         PR jit/68446
16114         * gcc.c (driver::decode_argv): Add call to
16115         init_opts_obstack before init_options_struct.
16116         * opts.c (init_opts_obstack): Remove idempotency.
16117         (init_options_struct): Replace call to init_opts_obstack
16118         with a gcc_assert to verify that it has already been called.
16119         * toplev.c (toplev::main): Add call to init_opts_obstack before
16120         calls to init_options_struct.
16121         (toplev::finalize): Move cleanup of opts_obstack next to
16122         cleanup of save_decoded_options, clearing the latter, and
16123         save_decoded_options_count.
16124
16125 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16126
16127         PR target/69135
16128         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
16129         attribute to unconditional.  Remove %? from output template.
16130
16131 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16132             Jiong Wang  <jiong.wang@arm.com>
16133
16134         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
16135         generated from different expand order.
16136
16137 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16138
16139         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
16140         Add support for CCMP costing.
16141
16142 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16143
16144         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
16145         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
16146         (fccmpe<mode>): Likewise.
16147         (fcmp): Rename to fcmp and globalize pattern.
16148         (fcmpe): Likewise.
16149         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
16150         (aarch64_gen_ccmp_next): Add FP support.
16151
16152 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16153
16154         * target.def (gen_ccmp_first): Update documentation.
16155         (gen_ccmp_next): Likewise.
16156         * doc/tm.texi (gen_ccmp_first): Update documentation.
16157         (gen_ccmp_next): Likewise.
16158         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
16159         expand_ccmp_expr_1.  Improve comments.
16160         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
16161         (ccmp_ior<mode>): Remove pattern.
16162         (cmp<mode>): Remove expand.
16163         (cmp): Globalize pattern.
16164         (cstorecc4): Use cc_register.
16165         (mov<mode>cc): Remove ccmp_cc_register check.
16166         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
16167         Simplify after removal of CC_DNE/* modes.
16168         (aarch64_ccmp_mode_to_code): Remove.
16169         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
16170         In 'k' case use integer as condition.
16171         (aarch64_nzcv_codes): Remove inverted cases.
16172         (aarch64_code_to_ccmode): Remove.
16173         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
16174         comparison with CC register to be used in folowing CCMP/branch/CSEL.
16175         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
16176         pattern.  Return the comparison with CC register.  Invert conditions
16177         when bitcode is OR.
16178         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
16179         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
16180
16181 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16182
16183         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
16184         instrumented_version.
16185
16186 2016-01-19  Richard Biener  <rguenther@suse.de>
16187
16188         PR tree-optimization/69336
16189         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
16190         handled components with get_ref_base_and_extent.
16191         (equal_mem_array_ref_p): Adjust.
16192
16193 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
16194
16195         PR debug/65779
16196         * shrink-wrap.c: Include valtrack.h.
16197         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
16198         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
16199         in between insn and where it will be moved to.  Call
16200         dead_debug_insert_temp.
16201         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
16202         first and dead_debug_local_finish at the end.
16203         For uses and defs bitmap, handle all regs in between REGNO and
16204         END_REGNO, not just the first one.
16205
16206 2016-01-19  Richard Biener  <rguenther@suse.de>
16207
16208         PR tree-optimization/69352
16209         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
16210         (equal_mem_array_ref_p): Constrain size and max size properly.
16211         Compare the reverse flag.
16212
16213 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
16214
16215         * ira.c (ira): Update regstat data if we deleted insns.
16216
16217 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
16218
16219         PR rtl-optimization/68955
16220         PR rtl-optimization/64557
16221         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
16222         here.  Fix up formatting.
16223         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
16224
16225 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16226
16227         PR lto/69133
16228         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
16229         assume that the node has body.
16230         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
16231         check.
16232
16233 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16234
16235         * lto-streamer-out.c (lto_output): Do not stream instrumentation
16236         thunks.
16237
16238 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16239
16240         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
16241         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
16242
16243 2016-01-19  Martin Jambor  <mjambor@suse.cz>
16244             Martin Liska  <mliska@suse.cz>
16245             Michael Matz  <matz@suse.de>
16246
16247         * Makefile.in (OBJS): Add new source files.
16248         (GTFILES): Add hsa.c.
16249         * common.opt (disable_hsa): New variable.
16250         (-Whsa): New warning.
16251         * config.in (ENABLE_HSA): New.
16252         * configure.ac: Treat hsa differently from other accelerators.
16253         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
16254         $enable_offloading.
16255         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
16256         * doc/install.texi (Configuration): Document --with-hsa-runtime,
16257         --with-hsa-runtime-include, --with-hsa-runtime-lib and
16258         --with-hsa-kmt-lib.
16259         * doc/invoke.texi (-Whsa): Document.
16260         (hsa-gen-debug-stores): Likewise.
16261         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
16262         to invoke offload compiler for hsa acclerator.
16263         * opts.c (common_handle_option): Determine whether HSA offloading
16264         should be performed.
16265         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
16266         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
16267         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
16268         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
16269         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
16270         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
16271         GF_OMP_FOR_KIND_GRID_LOOP.
16272         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
16273         (pp_gimple_stmt_1): Likewise.
16274         * gimple-walk.c (walk_gimple_stmt): Likewise.
16275         * gimple.c (gimple_build_omp_grid_body): New function.
16276         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
16277         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
16278         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
16279         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
16280         GF_OMP_TEAMS_GRID_PHONY.
16281         (gimple_statement_omp_single_layout): Updated comments.
16282         (gimple_build_omp_grid_body): New function.
16283         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
16284         (gimple_omp_for_grid_phony): New function.
16285         (gimple_omp_for_set_grid_phony): Likewise.
16286         (gimple_omp_parallel_grid_phony): Likewise.
16287         (gimple_omp_parallel_set_grid_phony): Likewise.
16288         (gimple_omp_teams_grid_phony): Likewise.
16289         (gimple_omp_teams_set_grid_phony): Likewise.
16290         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
16291         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
16292         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
16293         (BUILT_IN_GOMP_TARGET): Updated type.
16294         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
16295         (adjust_for_condition): New function.
16296         (get_omp_for_step_from_incr): Likewise.
16297         (extract_omp_for_data): Moved parts to adjust_for_condition and
16298         get_omp_for_step_from_incr.
16299         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
16300         (fixup_child_record_type): Bail out if receiver_decl is NULL.
16301         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
16302         (scan_omp_parallel): Do not create child functions for phony
16303         constructs.
16304         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
16305         (scan_omp_1_op): Checking assert we are not remapping to
16306         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
16307         (parallel_needs_hsa_kernel_p): New function.
16308         (expand_parallel_call): Register apprpriate parallel child
16309         functions as HSA kernels.
16310         (grid_launch_attributes_trees): New type.
16311         (grid_attr_trees): New variable.
16312         (grid_create_kernel_launch_attr_types): New function.
16313         (grid_insert_store_range_dim): Likewise.
16314         (grid_get_kernel_launch_attributes): Likewise.
16315         (get_target_argument_identifier_1): Likewise.
16316         (get_target_argument_identifier): Likewise.
16317         (get_target_argument_value): Likewise.
16318         (push_target_argument_according_to_value): Likewise.
16319         (get_target_arguments): Likewise.
16320         (expand_omp_target): Call get_target_arguments instead of looking
16321         up for teams and thread limit.
16322         (grid_expand_omp_for_loop): New function.
16323         (grid_arg_decl_map): New type.
16324         (grid_remap_kernel_arg_accesses): New function.
16325         (grid_expand_target_kernel_body): New function.
16326         (expand_omp): Call it.
16327         (lower_omp_for): Do not emit phony constructs.
16328         (lower_omp_taskreg): Do not emit phony constructs but create for them
16329         a temporary variable receiver_decl.
16330         (lower_omp_taskreg): Do not emit phony constructs.
16331         (lower_omp_teams): Likewise.
16332         (lower_omp_grid_body): New function.
16333         (lower_omp_1): Call it.
16334         (grid_reg_assignment_to_local_var_p): New function.
16335         (grid_seq_only_contains_local_assignments): Likewise.
16336         (grid_find_single_omp_among_assignments_1): Likewise.
16337         (grid_find_single_omp_among_assignments): Likewise.
16338         (grid_find_ungridifiable_statement): Likewise.
16339         (grid_target_follows_gridifiable_pattern): Likewise.
16340         (grid_remap_prebody_decls): Likewise.
16341         (grid_copy_leading_local_assignments): Likewise.
16342         (grid_process_kernel_body_copy): Likewise.
16343         (grid_attempt_target_gridification): Likewise.
16344         (grid_gridify_all_targets_stmt): Likewise.
16345         (grid_gridify_all_targets): Likewise.
16346         (execute_lower_omp): Call grid_gridify_all_targets.
16347         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
16348         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
16349         (tree_omp_clause): Added union field dimension.
16350         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
16351         * tree.c (omp_clause_num_ops): Added number of arguments of
16352         OMP_CLAUSE__GRIDDIM_.
16353         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
16354         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
16355         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
16356         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
16357         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
16358         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
16359         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
16360         * tree-pass.h (make_pass_gen_hsail): Declare.
16361         (make_pass_ipa_hsa): Likewise.
16362         * ipa-hsa.c: New file.
16363         * lto-section-in.c (lto_section_name): Add hsa section name.
16364         * lto-streamer.h (lto_section_type): Add hsa section.
16365         * timevar.def (TV_IPA_HSA): New.
16366         * hsa-brig-format.h: New file.
16367         * hsa-brig.c: New file.
16368         * hsa-dump.c: Likewise.
16369         * hsa-gen.c: Likewise.
16370         * hsa.c: Likewise.
16371         * hsa.h: Likewise.
16372         * toplev.c (compile_file): Call hsa_output_brig.
16373         * hsa-regalloc.c: New file.
16374
16375 2016-01-18  Jeff Law  <law@redhat.com>
16376
16377         PR tree-optimization/69320
16378         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
16379         ranged object, do nothing if the RHS constant is not [0..1].
16380         (optimize_stmt): Comparing a boolean ranged object against a
16381         constant outside [0..1] results in a compile-time constant.
16382
16383         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
16384         test.
16385
16386 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
16387
16388         * doc/invoke.texi (Invoking GCC): Add new section to menu.
16389         (Option Summary): Update to reflect new section and moved options.
16390         (C++ Dialect Options): Move -fstats to new section.
16391         (Debugging Options): Move all dump, statistics, and other GCC
16392         developer options to new section.  Rewrite section introduction
16393         and re-order remaining options to put the more basic ones first.
16394         (Optimization Options): Move -fira-verbose and -flto-report* to
16395         new section.
16396         (Developer Options): New section incorporating moved options.
16397         * doc/cppopts.texi (-dM): Update cross-reference.
16398
16399 2016-01-18  Richard Henderson  <rth@redhat.com>
16400
16401         PR target/69176
16402         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
16403         operands to pseudo only if CSE is expected.  Split long immediate
16404         operands only after reload, and for the stack pointer.
16405         (*add<GPI>3_pluslong): Remove.
16406         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
16407         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
16408         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
16409         (*add<GPI>3 peepholes): New.
16410         (*add<GPI>3 splitters): New.
16411         * config/aarch64/constraints.md (Upl): New.
16412         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
16413
16414 2016-01-18  Richard Biener  <rguenther@suse.de>
16415
16416         PR tree-optimization/69297
16417         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
16418         stmt at most once.
16419         (vect_bb_vectorization_profitable_p): Clear visited flag again.
16420
16421 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
16422
16423         PR middle-end/68542
16424         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
16425         of mixind vector and scalar types.
16426         (fold_relational_const): Add handling of vector
16427         comparison with boolean result.
16428         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
16429         comparison of vector operands with boolean result for EQ/NE only.
16430         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
16431         (verify_gimple_cond): Likewise.
16432         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
16433         valid type of VAL.
16434
16435 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
16436
16437         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
16438         !TARGET_OCTEON.
16439
16440 2016-01-18  Richard Biener  <rguenther@suse.de>
16441
16442         PR middle-end/69308
16443         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
16444
16445 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16446
16447         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
16448
16449 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16450
16451         * omp-low.c (set_oacc_fn_attrib): Make extern.
16452         * omp-low.h (set_oacc_fn_attrib): Declare.
16453         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
16454         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
16455         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
16456         Add and handle function parameter oacc_kernels_p.
16457         (find_reduc_addr, get_omp_data_i_param): New function.
16458         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
16459         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
16460         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
16461         Calculate dominance info.  Skip loops that are not in a kernels region
16462         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
16463         (pass_parallelize_loops::execute): Call parallelize_loops with
16464         oacc_kernels_p argument.
16465         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
16466         New member function.
16467         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
16468         * passes.def: Add argument to pass_parallelize_loops instantation.
16469
16470 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16471
16472         * tree-parloops.c (pass_parallelize_loops::execute): Allow
16473         pass_parallelize_loops to be run outside the loop pipeline.
16474
16475 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16476
16477         * tree-scalar-evolution.c (follow_copies_to_constant): New.
16478         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
16479
16480 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16481
16482         PR target/63679
16483         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
16484         using get_ref_base_and_extent.
16485         (equal_mem_array_ref_p): New.
16486         (hashable_expr_equal_p): Add call to previous.
16487
16488 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16489
16490         PR target/63679
16491         * tree-sra.c (disqualified_constants, constant_decl_p): New.
16492         (sra_initialize): Allocate disqualified_constants.
16493         (sra_deinitialize): Free disqualified_constants.
16494         (disqualify_candidate): Update disqualified_constants when appropriate.
16495         (create_access): Scan for constant-pool entries as we go along.
16496         (scalarizable_type_p): Add check against type_contains_placeholder_p.
16497         (maybe_add_sra_candidate): Allow constant-pool entries.
16498         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
16499         (initialize_constant_pool_replacements): New.
16500         (sra_modify_assign): Avoid mangling assignments created by previous,
16501         and don't generate writes into constant pool.
16502         (sra_modify_function_body): Call initialize_constant_pool_replacements.
16503
16504 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16505
16506         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
16507         andnot instruction.
16508         (scalar_chain::convert_op): Likewise.
16509         * config/i386/i386.md (*andndi3_doubleword): New.
16510
16511 2016-01-18  Richard Biener  <rguenther@suse.de>
16512
16513         PR tree-optimization/69170
16514         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
16515         building a vector from scalar results of a pattern stmt.
16516
16517 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
16518
16519         * haifa-sched.c (autopref_multipass_init): Work around
16520         -Wmaybe-uninitialized warning.
16521
16522 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16523
16524         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
16525         against the constant 0.
16526
16527 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16528
16529         PR tree-optimization/68799
16530         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
16531         look up phi candidates in the statement-candidate map.
16532         (phi_add_costs): Likewise.
16533         (record_phi_increments): Likewise.
16534         (phi_incr_cost): Likewise.
16535         (ncd_with_phi): Likewise.
16536         (all_phi_incrs_profitable): Likewise.
16537
16538 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
16539
16540         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
16541         -Wmaybe-uninitialized warning.
16542
16543 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
16544
16545         * doc/invoke.texi (Invoking GCC): Add new section to menu.
16546         (Option Summary): Update to reflect new section and moved options.
16547         (C++ Dialect Options): Move -fvtable-verify and related options.
16548         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
16549         and profiling-related options.
16550         (Optimization Options): Move profile generation options and
16551         -fstack-protector and related options.
16552         (Instrumentation Options): New section incorporating moved options.
16553         (Code Generation Options): Move -finstrument-functions and
16554         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
16555
16556 2016-01-16  Tom de Vries  <tom@codesourcery.com>
16557
16558         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
16559
16560 2016-01-16  Tom de Vries  <tom@codesourcery.com>
16561
16562         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
16563
16564 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
16565
16566         * hash-table.h (hash_table::empty): Turn into an inline wrapper
16567         that checks whether the table is already empty.  Rename the
16568         original implementation to...
16569         (hash_table::empty_slot): ...this new private function.
16570
16571 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
16572
16573         PR diagnostic/68899
16574         * diagnostic-show-locus.c (layout::print_source_line): Move x
16575         offset of line until after call to
16576         get_line_width_without_trailing_whitespace.
16577
16578 2016-01-15  Jeff Law  <law@redhat.com>
16579
16580         PR tree-optimization/69270
16581         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
16582         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
16583         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
16584         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
16585         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
16586         ssa_name_has_boolean_range and constant_boolean_node.
16587
16588 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
16589
16590         PR rtl-optimization/69030
16591         * lra-spills.c (remove_pseudos): Check nrefs and make the function
16592         returning bool.
16593         (spill_pseudos): Delete debug insn for dead pseudo.
16594         (lra_spill): Initiate spill_hard_reg and slots memory separately.
16595
16596 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
16597
16598         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
16599         New.
16600         (TYPES_UNOPUS): Likewise.
16601         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
16602         builtin type, from UNOP to UNOPUS.
16603         (lbtruncuv4sf): Likewise.
16604         (lbtruncuv2df): Likewise.
16605         (lrounduv2sf): Likewise.
16606         (lrounduv4sf): Likewise.
16607         (lrounduv2df): Likewise.
16608         (lroundusf): Likewise.
16609         (lroundusf): Likewise.
16610         (lceiluv2sf): Likewise.
16611         (lceiluv4sf): Likewise.
16612         (lceiluv2df): Likewise.
16613         (lceilusf): Likewise.
16614         (lceiludf): Likewise.
16615         (lflooruv2sf): Likewise.
16616         (lflooruv4sf): Likewise.
16617         (lflooruv2df): Likewise.
16618         (lfloorusf): Likewise.
16619         (lfloorudf): Likewise.
16620         (lfrintnuv2sf): Likewise.
16621         (lfrintnuv4sf): Likewise.
16622         (lfrintnuv2df): Likewise.
16623         (lfrintnusf): Likewise.
16624         (lfrintnudf): Likewise.
16625         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
16626         conversion.
16627         (vcvtq_u32_f32): Likewise.
16628         (vcvtq_u64_f64): Likewise.
16629         (vcvta_u32_f32): Likewise.
16630         (vcvtaq_u32_f32): Likewise.
16631         (vcvtaq_u64_f64): Likewise.
16632         (vcvtm_u32_f32): Likewise.
16633         (vcvtmq_u32_f32): Likewise.
16634         (vcvtmq_u64_f64): Likewise.
16635         (vcvtn_u32_f32): Likwise.
16636         (vcvtnq_u32_f32): Likewise.
16637         (vcvtnq_u64_f64): Likewise.
16638         (vcvtp_u32_f32): Likewise.
16639         (vcvtpq_u32_f32): Likewise.
16640         (vcvtpq_u64_f64): Likewise.
16641         (vcvtmd_u64_f64): Likewise.
16642         (vcvtms_u32_f32): Likewise.
16643         (vcvtad_u64_f64): Likewise.
16644         (vcvtas_u32_f32): Likewise.
16645         (vcvtnd_u64_f64): Likewise.
16646         (vcvtns_u32_f32): Likewise.
16647         (vcvtpd_u64_f64): Likewise.
16648         (vcvtps_u32_f32): Likewise.
16649
16650 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16651
16652         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
16653         CSEL of zero_extended registers.
16654
16655 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16656
16657         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
16658         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
16659
16660 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16661
16662         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
16663         false when argument string is not found in the attributes table
16664         at all.
16665
16666 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
16667
16668         PR target/68609
16669         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
16670         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
16671         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
16672         precision estimate.
16673
16674 2016-01-15  Richard Biener  <rguenther@suse.de>
16675
16676         PR tree-optimization/66856
16677         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
16678         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
16679         (vect_create_new_slp_node): Increment stmt reference count.
16680         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
16681         an SLP tree before swapping operands.
16682         (vect_build_slp_tree): Likewise.
16683         (destroy_bb_vec_info): Free stmt info after SLP instances.
16684         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
16685         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
16686         (STMT_VINFO_NUM_SLP_USES): New macro.
16687
16688 2016-01-15  Richard Biener  <rguenther@suse.de>
16689
16690         PR debug/69137
16691         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
16692         (add_linkage_name): ... here.
16693         (gen_typedef_die): Use add_linkage_name_raw instead of
16694         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
16695         if necessary.
16696
16697 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
16698
16699         * gimplify.c (oacc_default_clause): Decode reference and pointer
16700         types for both kernels and parallel regions.
16701
16702 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
16703
16704         PR middle-end/69246
16705         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
16706
16707 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
16708
16709         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
16710         (convert_scalars_to_vector): Likewise.
16711
16712 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
16713
16714         * doc/extend.texi (Type Traits): Fix grammar.
16715
16716 2016-01-15  Martin Jambor  <mjambor@suse.cz>
16717
16718         * tree-inline.c (remap_decl): Use existing dclarations if
16719         remapping a type and prevent_decl_creation_for_types.
16720         (replace_locals_stmt): Do an initial remapping of non-VLA typed
16721         decls first.  Do real remapping with
16722         prevent_decl_creation_for_types set.
16723         * tree-inline.h (copy_body_data): New field
16724         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
16725         padding.
16726
16727 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16728
16729         * config/s390/s390.opt (mmvcle): More verbose help text.
16730
16731 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16732
16733         * config/s390/s390.opt: Add period to -mzvector option text.
16734
16735 2016-01-15  Richard Biener  <rguenther@suse.de>
16736
16737         PR tree-optimization/68961
16738         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
16739         of invariants in stores again.
16740
16741 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16742
16743         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
16744
16745 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
16746
16747         * config/i386/i386.c (ix86_expand_branch): Don't split
16748         DI mode xor instruction to SI mode.
16749
16750 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
16751
16752         PR ipa/68148
16753         * ipa-icf.c (sem_function::merge): Virtual functions may become
16754         reachable even if they address is not taken and there are no
16755         idrect calls.
16756
16757 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
16758
16759         * lto-streamer-out.c (subtract_estimated_size): New function.
16760         (get_symbol_initial_value): Use it.
16761
16762 2016-01-15  Christian Bruel  <christian.bruel@st.com>
16763
16764         PR target/65837
16765         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
16766         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
16767         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
16768         use add_builtin_function_ext_scope instead of add_builtin_function.
16769         (neon_set_p, neon_crypto_set_p): Remove.
16770         (arm_init_builtins): Always call arm_init_neon_builtins and
16771         arm_init_crypto_builtins.
16772         (arm_expand_builtin): Check that builtins are allowed for the arch.
16773         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
16774         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
16775         arm_init_neon_builtins call.
16776
16777 2016-01-15  Richard Biener  <rguenther@suse.de>
16778
16779         PR tree-optimization/69117
16780         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
16781         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
16782         of the leader conservatively.
16783         (free_scc_vn): Restore original SSA name infos.
16784
16785 2016-01-14  Jeff Law  <law@redhat.com>
16786
16787         PR tree-optimization/69270
16788         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
16789         single bit of precision, verify it's also unsigned.
16790         (record_edge_info): Use constant_boolean_node rather than fold_convert
16791         to convert boolean_true/boolean_false to the right type.
16792
16793 2016-01-14  Richard Henderson  <rth@redhat.com>
16794
16795         PR rtl-opt/69014
16796         * loop-doloop.c (record_reg_sets): New.
16797         (doloop_optimize): Reject the transform if the sequence
16798         clobbers registers live at the end of the loop block.
16799         (doloop_optimize_loops): Enable df_live if needed.
16800
16801 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16802
16803         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
16804         * config/rs6000/rs6000.c: Likewise.
16805         * config/rs6000/rs6000.h: Likewise.
16806         * config/rs6000/rs6000.md: Likewise.
16807         * doc/extend.texi: Likewsie.
16808
16809 2016-01-14  Jeff Law  <law@redhat.com>
16810
16811         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
16812         typo.
16813
16814 2016-01-14  Richard Henderson  <rth@redhat.com>
16815
16816         PR c/69272
16817         PR tree-opt/68964
16818         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
16819         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
16820         instead of builtin_decl_declared_p to test for declaration.
16821
16822 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
16823
16824         * doc/loop.texi (Loop Analysis and Representation): Document
16825         loop_depth function.
16826
16827 2016-01-14  Tom de Vries  <tom@codesourcery.com>
16828
16829         PR tree-optimization/68773
16830         * omp-low.c (expand_omp_target): Don't set force_output.
16831         * varpool.c (varpool_node::get_create): Same.
16832         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
16833         offload_funcs with force_output.
16834
16835 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16836
16837         PR debug/69244
16838         * lra-eliminations.c (move_plus_up): Don't change anything if either
16839         the outer or inner subreg mode is not MODE_INT.
16840         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
16841         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
16842
16843 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
16844
16845         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
16846         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
16847         reduc_uplus_@var{m}): Remove.
16848         * expr.c (expand_expr_real_2): Remove expansion path for
16849         reduc_[us](min|max|plus) optabs.
16850         * optabs-tree.c (scalar_reduc_to_vector): Remove.
16851         * optabs-tree.h (scalar_reduc_to_vector): Remove.
16852         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
16853         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
16854         * tree-vect-loop.c (vectorizable_reduction): Remove test for
16855         reduc_[us](min|max|plus) optabs.
16856
16857 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
16858
16859         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
16860         (reduc_plus_scal_v2sf): New.
16861         (reduc_smax_v2sf): Rename to...
16862         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
16863         (reduc_smin_v2sf): Rename to...
16864         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
16865
16866 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
16867
16868         * alias.c (compare_base_symbol_refs): New function.
16869         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
16870         it.
16871
16872 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16873
16874         PR middle-end/68146
16875         PR tree-optimization/69155
16876         * tree-complex.c: Include cfganal.h.
16877         (phis_to_revisit): New variable.
16878         (extract_component): Add phiarg_p argument.  Assert that returned
16879         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
16880         (update_phi_components): Partly rewrite to use loop over real/imag
16881         components instead of code duplication.  If extract_component returns
16882         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
16883         create_tmp_reg into the PHI node instead, and mention the phi triplet
16884         in phis_to_revisit.
16885         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
16886         in phis_to_revisit at the end.
16887
16888 2016-01-14  Richard Biener  <rguenther@suse.de>
16889
16890         PR tree-optimization/68060
16891         * tree-vect-loop.c (vect_is_simple_reduction): Check the
16892         outer loop reduction is only used in the inner loop before
16893         detecting a double reduction.
16894
16895 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16896
16897         PR target/68269
16898         * combine.c (expand_field_assignment): Punt if compute_mode is
16899         unsupported scalar mode.
16900
16901 2016-01-14  Richard Biener  <rguenther@suse.de>
16902
16903         PR tree-optimization/66856
16904         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
16905         SLP node only if it built successfully.
16906         (vect_analyze_slp_instance): Adjust.
16907
16908 2016-01-14  Jeff Law  <law@redhat.com>
16909
16910         PR tree-optimization/69270
16911         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
16912         (record_edge_info): Use it.  Convert boolean_{true,false}_node
16913         to the type of op0.
16914
16915 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
16916
16917         PR ipa/66487
16918         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
16919         use block_ultimate_origin
16920         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
16921
16922 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
16923
16924         * doc/invoke.texi (Submodel Options): Rename section to
16925         "Machine-Dependent Options" to better reflect its content.
16926         Rewrite introductory text to remove archaic CPU names.
16927         Update references.
16928
16929 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
16930
16931         * doc/invoke.texi (Code Gen Options): Move section up in file,
16932         before target-specific options.  Update menu and option summary
16933         to reflect the new section ordering.
16934
16935 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
16936
16937         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
16938         (C++ Dialect Options): Add cross-reference to -std option.
16939         * doc/standards.texi (C++ Language): Document C++14 support.
16940
16941 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
16942
16943         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
16944         for pack/unpack functions for __ibm128.
16945         (PACK_IF): Likewise.
16946         (UNPACK_IF): Likewise.
16947
16948         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
16949         support for __ibm128 pack/unpack functions.
16950         (rs6000_invalid_builtin): Likewise.
16951         (rs6000_init_builtins): Likewise.
16952         (rs6000_opt_masks): Likewise.
16953
16954         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
16955         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
16956         functions
16957         (RS6000_BTM_COMMON): Likewise.
16958
16959         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
16960         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
16961         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
16962         128-bit floating point.  Add support for the double values to be
16963         in Altivec registers for TF/IF packing and unpacking, but restrict
16964         TD packing sub-fields to be FPR registers.  Don't allow overlapped
16965         register support for packing.  Allow pack inputs to be memory
16966         locations.  Don't build generator functions for unpack<mode>_dm
16967         and unpack<mode>_nodm.
16968         (unpack<mode>_dm): Likewise.
16969         (unpack<mode>_nodm): Likewise.
16970         (pack<mode>): Likewise.
16971
16972         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
16973         built-in functions to pack/unpack explicit __ibm128 values.
16974         (__builtin_unpack_ibm128): Likewise.
16975
16976         * doc/extend.texi (PowerPC Built-in Functions): Document
16977         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
16978
16979 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
16980
16981         PR c/66208
16982         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
16983         Add new arg loc and pass it down as context.
16984         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
16985         to the location to use for the warning.
16986         (check_function_arguments): New arg loc.  All callers changed.  Pass
16987         it to check_function_nonnull.
16988         * c-common.h (check_function_arguments): Adjust declaration.
16989
16990 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
16991
16992         PR tree-optimization/69156
16993         * gimple.c (validate_type): Removed.
16994         (gimple_builtin_call_types_compatible_p): Use
16995         useless_type_conversion_p instead of validate_type.
16996         * value-prof.c (gimple_stringop_fixed_value): Fold
16997         icall_size to correct type.
16998
16999 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
17000
17001         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
17002         effects.
17003
17004 2016-01-13  Richard Henderson  <rth@redhat.com>
17005
17006         PR tree-opt/68964
17007         * target.def (builtin_tm_load, builtin_tm_store): Remove.
17008         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
17009         (ix86_builtin_tm_store): Remove.
17010         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
17011         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
17012         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
17013         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
17014         * doc/tm.texi: Rebuild.
17015
17016         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
17017         (BUILT_IN_TM_MEMCPY_RTWN): New.
17018         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
17019         fallback from vector to integer helpers.
17020         (build_tm_load): Handle vector types directly, instead of
17021         via target hook.
17022         (build_tm_store): Likewise.
17023         (expand_assign_tm): Prepare for register types not handled by
17024         the above.  Copy them to memory and use memcpy.
17025         * tree.c (tm_define_builtin): New.
17026         (find_tm_vector_type): New.
17027         (build_tm_vector_builtins): New.
17028         (build_common_builtin_nodes): Call it.
17029
17030 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
17031
17032         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
17033         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
17034
17035 2016-01-13  Tom de Vries  <tom@codesourcery.com>
17036
17037         PR tree-optimization/69169
17038         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
17039         handled_struct_type param.
17040         (create_variable_info_for, intra_create_variable_infos): Call
17041         create_variable_info_for_1 with extra arg.
17042
17043 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
17044
17045         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
17046         and "armv8.1-a+crc" entries.
17047
17048 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
17049
17050         PR target/69228
17051         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
17052         Change first operand predicate from register_or_constm1_operand
17053         to register_operand.
17054         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
17055         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
17056         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
17057         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
17058         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
17059         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
17060         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
17061         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
17062         comparison with constm1_rtx from vec_prefetch_gen part.
17063
17064 2016-01-13  Richard Biener  <rguenther@suse.de>
17065
17066         PR tree-optimization/69013
17067         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
17068         Exchange assert for a test.
17069
17070 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17071
17072         PR target/69247
17073         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
17074
17075 2016-01-13  Richard Biener  <rguenther@suse.de>
17076
17077         PR tree-optimization/69242
17078         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
17079         assert with a check.
17080
17081 2016-01-13  Richard Biener  <rguenther@suse.de>
17082
17083         PR tree-optimization/69186
17084         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
17085         Properly guard vect_update_misalignment_for_peel call.
17086
17087 2016-01-12  Jeff Law  <law@redhat.com>
17088
17089         PR tree-optimization/pr67755
17090         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
17091         "need_profile_correction".
17092         (thread_block_1): Initialize new field to false by default.  If we
17093         have multiple thread paths through a common joiner to different
17094         final targets, then set new field to true.
17095         (compute_path_counts): Only do count adjustment when it's really
17096         needed.
17097
17098 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17099
17100         * doc/invoke.texi (Spec Files): Move section down in file, past
17101         all command-line option descriptions.
17102
17103 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17104
17105         PR middle-end/54809
17106         * doc/gty.texi: Remove documentation of mark_hook.
17107         * gengtype.c (struct write_types_data): Remove code to support
17108         mark_hook attribute.
17109         (walk_type): Likewise.
17110         (write_func_for_structure): Likewise.
17111
17112 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17113
17114         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
17115         Directory Options, and -specs= to Overall Options.
17116         (Overall Options): Adjust similarly.  Reorder to group related
17117         options together.  Make -specs= cross-reference the spec file details.
17118         (Directory Options): Adjust similarly.
17119
17120 2016-01-12  Jeff Law  <law@redhat.com>
17121
17122         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
17123
17124 2016-01-12  Olivier Hainque  <hainque@adacore.com>
17125
17126         * gcc.c (spec_undefvar_allowed): New global.
17127         (process_command): Set to true when running for --version or --help,
17128         alone or together.
17129         (getenv_spec_function): When the variable is not defined, use the
17130         variable name as the variable value if we're allowed not to issue
17131         a fatal error.
17132
17133 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
17134
17135         PR tree-optimization/68911
17136         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
17137         information computed for expression "init + nit * step".
17138
17139 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17140
17141         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
17142         about name of GCC executable.  Remove deleted node from menu.
17143         (Directory Options) <-B>: Remove cross-reference to deleted node.
17144         (Target Options): Delete section.
17145
17146 2016-01-12  Christian Bruel  <christian.bruel@st.com>
17147
17148         PR target/69180
17149         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
17150         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
17151
17152 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
17153
17154         PR target/69198
17155         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
17156         aligned_mem is properly set for AVX512-VL floating point masked
17157         stores.
17158
17159         PR target/69175
17160         * ifcvt.c (cond_exec_process_if_block): When removing the last
17161         insn from then_bb, remove also any possible barriers that follow it.
17162
17163 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
17164
17165         PR target/68456
17166         PR target/69226
17167         * config/i386/iamcu.h (SIZE_TYPE): New macro.
17168         (PTRDIFF_TYPE): Likewise.
17169         (WCHAR_TYPE): Likewise.
17170         (WCHAR_TYPE_SIZE): Likewise.
17171         (STDINT_LONG32): Likewise.
17172
17173 2016-01-12  Richard Biener  <rguenther@suse.de>
17174
17175         PR tree-optimization/69053
17176         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
17177         convert initial value for cond reductions.
17178
17179 2016-01-12  Richard Biener  <rguenther@suse.de>
17180
17181         PR tree-optimization/69007
17182         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
17183         widen_sum after dot_prod and sad.
17184
17185 2016-01-12  Richard Biener  <rguenther@suse.de>
17186
17187         PR tree-optimization/69168
17188         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
17189         pattern stmt SLP type.
17190         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
17191         end up unused so cope with that case.
17192
17193 2016-01-12  Richard Biener  <rguenther@suse.de>
17194
17195         PR tree-optimization/69157
17196         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
17197         stmts def type only during analyze phase.
17198         (vectorizable_call): Likewise.
17199         (vectorizable_simd_clone_call): Likewise.
17200         (vectorizable_conversion): Likewise.
17201         (vectorizable_assignment): Likewise.
17202         (vectorizable_shift): Likewise.
17203         (vectorizable_operation): Likewise.
17204         (vectorizable_store): Likewise.
17205         (vectorizable_load): Likewise.
17206
17207 2016-01-12  Richard Biener  <rguenther@suse.de>
17208
17209         PR tree-optimization/69174
17210         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
17211         space.
17212         (vectorizable_load): Properly compute the number of loads needed
17213         for permuted strided SLP loads and do not spuriously assign
17214         to SLP_TREE_VEC_STMTS.
17215
17216 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
17217
17218         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
17219         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
17220         (MD_EXEC_PREFIX): Remove.
17221         (MD_STARTFILE_PREFIX) Removee.
17222         (FILE_NAME_ABSOLUTE_P): Remove.
17223         (CPP_SPEC): Do not read macros from sys/version.h.
17224         (LINK_COMMAND_SPEC): Remove.
17225         (LOCAL_INCLUDE_DIR): Remove.
17226         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
17227         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
17228         (POST_LINK_SPEC): Define to invoke stubify after linker
17229         (LIBSTDCXX): Remove define
17230         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
17231         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
17232         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
17233         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
17234         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
17235         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
17236         (i386_djgpp_asm_named_section): Add propotype of new procedure
17237
17238         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
17239         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
17240         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
17241         in config/i386/djgpp.h).
17242         (STANDARD_STARTFILE_PREFIX_2): Define identical to
17243         STANDARD_STARTFILE_PREFIX_1.
17244         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
17245         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
17246         installation errors.
17247         (MAX_OFILE_ALIGNMENT): Define to 128.
17248         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
17249
17250         * config/i386/djgpp.c: New file. Add implementation of
17251         i386_djgpp_asm_named_section.
17252
17253         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
17254
17255         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
17256         Add rule for building djgpp.o.
17257
17258 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17259
17260         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
17261         (rtx_is_swappable_p): Reductions are swappable.
17262         (insn_is_swappable_p): V2DF reductions are swappable.
17263
17264 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
17265
17266         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
17267         reloads for other unsupported memory operands.
17268
17269 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
17270             Jim Wilson  <jim.wilson@linaro.org>
17271
17272         PR target/69194
17273         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
17274         copy_to_mode_reg instead of force_reg.
17275
17276 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
17277
17278         PR target/69225
17279         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
17280         TARGET_80387 is true.
17281
17282 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
17283
17284         PR target/69071
17285         * lra-eliminations.c (move_plus_up): Only move plus up
17286         if subreg of the constant can be simplified into constant
17287         and use the simplified subreg of the constant instead of
17288         the original constant.
17289
17290         * fold-const.c (fold_convertible_p): Don't return true
17291         for conversion of VECTOR_TYPE to same sized integral type.
17292         (fold_convert_loc): Fix up formatting.  Fold conversion of
17293         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
17294         instead of NOP_EXPR.
17295
17296         PR tree-optimization/69214
17297         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
17298         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17299         Formatting fix.
17300
17301         PR tree-optimization/69207
17302         * tree-vect-slp.c (vect_get_constant_vectors): For
17303         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
17304         fold_convertible_p to vector_type's element type, and always
17305         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
17306
17307 2016-01-11  Richard Biener  <rguenther@suse.de>
17308
17309         PR tree-optimization/69173
17310         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
17311         fixup the cycle if all stmts are in a pattern.
17312
17313 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
17314
17315         PR middle-end/68999
17316         * alias.c (base_alias_check): Move check for addresses with
17317         alignment ANDs before the call for compare_base_decls.
17318         (memrefs_conflict_p): Return -1 for different decls
17319         that went through alignment adjustments.
17320
17321 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17322
17323         PR rtl-optimization/68796
17324         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
17325         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
17326         and QImode comparisons against zero with CC_NZmode.
17327         * config/aarch64/iterators.md (short_mask): New mode_attr.
17328
17329 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
17330
17331         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
17332         (<avx512>_store<mode>_mask): Likewise.
17333
17334 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
17335             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17336
17337         PR rtl-optimization/68841
17338         * ifcvt.c (struct noce_if_info): Add orig_x field.
17339         (bbs_ok_for_cmove_arith): Add to_rename parameter.
17340         Don't record conflicts on to_rename if it's present.
17341         Allow memory destinations in sets.
17342         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
17343         blocks, passing orig_x to the checks.
17344         (noce_process_if_block): Set if_info->orig_x appropriately.
17345
17346 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17347
17348         PR tree-optimization/69069
17349         * tree-parloops.c (create_parallel_loop): Add missing phi args.
17350
17351 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
17352
17353         PR rtl-optimization/68920
17354         * config/i386/i386.c (ix86_option_override_internal): Restrict number
17355         of conditional moves for  RTL if-conversion to 1 for
17356         TARGET_ONE_IF_CONV_INSN.
17357         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
17358         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
17359         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
17360         parameter to restirct number of conditional moves for
17361         RTL if-conversion.
17362         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
17363         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
17364         conditionl moves.
17365
17366 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
17367
17368         PR bootstrap/69123
17369         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
17370         onepart vars.  Fix typo in comment.  Fix reversed condition in
17371         unshare test.
17372         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
17373
17374         PR bootstrap/69123
17375         * var-tracking.c (dump_onepart_variable_differences): New.
17376         (dataflow_set_different): If a detailed dump is requested,
17377         delay early returns and dump differences between onepart
17378         variables present before and after, and added variables.
17379
17380 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
17381
17382         PR target/69010
17383         * expr.c (expand_expr_real_1): For boolean vector constants
17384         with a scalar mode use const_scalar_mask_from_tree.
17385         (const_scalar_mask_from_tree): New.
17386         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
17387         assigned to a mask type to handle constants.
17388
17389 2016-01-11  Martin Jambor  <mjambor@suse.cz>
17390
17391         PR ipa/69044
17392         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
17393         useless parameters if we cannot change function signature.
17394
17395 2016-01-11  Martin Jambor  <mjambor@suse.cz>
17396
17397         PR ipa/66616
17398         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
17399         flag.
17400
17401 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17402
17403         PR tree-optimization/69109
17404         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
17405         latch with phi.
17406
17407 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17408
17409         PR tree-optimization/69108
17410         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
17411         res is not used in a phi.
17412
17413 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
17414
17415         PR 67425
17416         * common.opt (frandom-seed): Fix parameter name.
17417         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
17418
17419 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17420
17421         PR tree-optimization/69058
17422         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
17423         not supported.
17424
17425 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
17426
17427         * config/arc/arc.opt (mdiv-rem): Add period to the end.
17428         (mcode-density): Likewise.
17429
17430 2016-01-10  Tom de Vries  <tom@codesourcery.com>
17431
17432         PR tree-optimization/69062
17433         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
17434         (parallelize_loops): Don't paralelize loop that has phi with address
17435         arg.
17436
17437 2016-01-10  Tom de Vries  <tom@codesourcery.com>
17438
17439         PR tree-optimization/69039
17440         * tree-parloops.c (try_create_reduction_list): Only allow single exit
17441         phi for reduction.
17442
17443 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
17444
17445         PR middle-end/68743
17446         * match.pd: Require target has function_c99_misc before doing
17447         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
17448
17449 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
17450
17451         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
17452         use GMPINC.
17453         * configure: Regenerate.
17454
17455 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
17456
17457         PR middle-end/50865
17458         PR tree-optimization/69097
17459         * fold-const.h (expr_not_equal_to): New prototype.
17460         * fold-const.c: Include stringpool.h and tree-ssanames.h.
17461         (expr_not_equal_to): New function.
17462         * match.pd (X % -Y is the same as X % Y): Don't optimize
17463         unless X is known not to be equal to minimum or Y is known
17464         not to be equal to -1.
17465         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
17466         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
17467         (simplify_stmt_using_ranges): Adjust caller.
17468         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
17469         substitute_and_fold.
17470
17471 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
17472
17473         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
17474         w/o DECL_NAME.
17475
17476 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17477
17478         PR tree-optimization/69167
17479         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
17480         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
17481         ops[0] comparison.
17482         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
17483
17484 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
17485             Richard Biener  <rguenther@suse.de>
17486
17487         PR tree-optimization/68707
17488         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
17489         instances that can be handled via vect_load_lanes.
17490
17491 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
17492
17493         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
17494         if we can't determine address equivalence.
17495         * alias.c (compare_base_decl): Update for changed return value of
17496         symtab_node::equal_address_to.
17497
17498 2016-01-08  Jason Merrill  <jason@redhat.com>
17499
17500         PR c++/68983
17501         PR c++/67557
17502         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
17503         * expr.c (store_field): Not here.
17504         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
17505         call with TREE_ADDRESSABLE type.
17506         * tree-cfg.c (verify_gimple_call): Adjust.
17507
17508 2016-01-08  Olivier Hainque  <hainque@adacore.com>
17509
17510         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
17511         libc_internal.
17512
17513 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
17514
17515         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
17516         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
17517         (reduc_smin_v2sf): Rename to...
17518         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
17519         (reduc_splus_v2sf): Rename to...
17520         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
17521
17522 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17523
17524         PR tree-optimization/69162
17525         * gimplify.c (gimplify_va_arg_expr): Encode original type of
17526         valist argument in another argument.
17527         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
17528         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
17529         to determine the va_list type, build a MEM_REF instead of
17530         build_fold_indirect_ref.
17531
17532         PR tree-optimization/69172
17533         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
17534         gimple_build.
17535
17536 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17537
17538         PR tree-optimization/67781
17539         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
17540         and cmpnop in two steps: first the ones not accessed in original
17541         gimple expression in a endian independent way and then the ones not
17542         accessed in the final result in an endian-specific way.
17543
17544 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17545
17546         PR tree-optimization/69083
17547         * tree-vect-slp.c (vect_get_constant_vectors): For
17548         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
17549         element type.  If op is fold_convertible_p to vector_type's element
17550         type, use NOP_EXPR instead of VCE.
17551
17552 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
17553
17554         PR rtl-optimization/67778
17555         PR rtl-optimization/68634
17556         PR rtl-optimization/68909
17557         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
17558         block from the stack until done with it.  Remove a superfluous
17559         bitmap set.  Remove a superfluous bitmap test.
17560
17561 2016-01-07  Martin Sebor  <msebor@redhat.com>
17562
17563         PR c/68966
17564         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
17565         constraint on the type of arguments.
17566
17567 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
17568
17569         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
17570         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
17571         unaligned_access on the gcc_options set.
17572         * config/arm/arm.c (arm_option_override_internal): Use
17573         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
17574
17575 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
17576
17577         PR target/69140
17578         * config/i386/i386.c (ix86_frame_pointer_required): Enable
17579         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
17580
17581 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
17582
17583         Revert
17584         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
17585
17586         PR target/69140
17587         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
17588         depending on frame_pointer_needed before remaining integer and SSE
17589         registers are saved.
17590
17591 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
17592
17593         PR 1078
17594         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
17595
17596 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
17597
17598         PR target/69171
17599         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
17600         Use the "xBm" constraint.
17601         (float<sseintvecmodelower><mode>2<mask_name><round_name):
17602         Likewise.
17603         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
17604         (sse_cvtsi2ssq<round_name>): Likewise.
17605         (sse_cvtss2si<round_name>): Likewise.
17606         (sse_cvtss2siq<round_name>): Likewise.
17607         (sse2_cvtsi2sdq<round_name>): Likewise.
17608         (sse2_cvtsd2si<round_name>): Likewise.
17609         (sse2_cvtsd2siq<round_name>): Likewise.
17610         * config/i386/subst.md (round_nimm_scalar_predicate): New
17611         predicate.
17612
17613 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
17614
17615         PR middle-end/67639
17616         * varasm.c (make_decl_rtl): Mark invalid register vars as
17617         DECL_EXTERNAL.
17618
17619         PR rtl-optimization/66206
17620         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
17621         All callers changed.
17622
17623 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
17624
17625         PR tree-optimization/69141
17626         * tree-ssa-pre.c: Include langhooks.h.
17627         (eliminate_dom_walker::before_dom_children): Use
17628         lang_hooks.decl_printable_name instead of
17629         cgraph_node::get ()->name ().
17630
17631         PR middle-end/68960
17632         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
17633         it and DECL_ALIGN too.
17634
17635 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
17636
17637         * config/mips/mips-ftypes.def: Sort to lexicographical order.
17638
17639 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
17640
17641         PR target/69140
17642         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
17643         depending on frame_pointer_needed before remaining integer and SSE
17644         registers are saved.
17645
17646 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17647
17648         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
17649         mode iterator with VSX_M2.
17650         (*p9_vecstore_<mode>): Likewise.
17651         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
17652         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
17653         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
17654         (define_split for VSX_LE128 stores): Likewise.
17655         (define_peephole2 for TImode LE swaps): Likewise.
17656         (define_split for VSX_LE128 post-reload stores): Likewise.
17657
17658 2016-01-06  Marek Polacek  <polacek@redhat.com>
17659
17660         PR sanitizer/69099
17661         * convert.c (convert_to_integer_1): Adjust call to
17662         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
17663         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
17664         EXPR instead of ARG.
17665         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
17666
17667 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17668
17669         PR 1078
17670         * doc/extend.texi (RL78 Variable Attributes): New section.
17671
17672 2016-01-05  Marek Polacek  <polacek@redhat.com>
17673
17674         PR c/69104
17675         * builtins.c (get_memmodel): Use expansion point location rather than
17676         the input location.  Call warning_at rather than warning.
17677         (expand_builtin_atomic_compare_exchange): Likewise.
17678         (expand_builtin_atomic_load): Likewise.
17679         (expand_builtin_atomic_store): Likewise.
17680         (expand_builtin_atomic_clear): Likewise.
17681
17682 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17683
17684         PR target/68991
17685         * config/i386/i386.c (ix86_expand_vector_logical_operator):
17686         Replace nonimmediate_operand with vector_operand.
17687         * config/i386/predicates.md (vector_operand): New predicate.
17688         (general_vector_operand): Replace nonimmediate_operand with
17689         vector_operand.
17690         * config/i386/sse.md: Replace nonimmediate_operand with
17691         vector_operand and m constraint with Bm constraint on SSE
17692         patterns with 16-byte memory operand.
17693         * config/i386/subst.md (round_nimm_predicate): Replace
17694         nonimmediate_operand with vector_operand.
17695         (round_saeonly_nimm_predicate): Likewise.
17696         (round_saeonly_nimm_scalar_predicate): New.
17697
17698 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17699
17700         PR target/68991
17701         * config/i386/constraints.md (Bm): New constraint.
17702         * config/i386/predicates.md (vector_memory_operand): New
17703         predicate.
17704         * config/i386/sse.md: Replace xm with xBm in plusminus and
17705         any_logic patterns.
17706
17707 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17708
17709         PR 1078
17710         * doc/extend.texi (V850 Function Attributes): New section.
17711         (V850 Variable Attributes): New section.
17712
17713 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17714
17715         PR 1078
17716         * doc/extend.texi (MicroBlaze Function Attributes): Document
17717         interrupt_handler and fast_interrupt attributes.
17718
17719 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
17720
17721         PR other/60465
17722         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
17723         for local symbolic operands.
17724         * config/ia64/predicates.md (local_symbolic_operand64): New
17725         predicate.
17726
17727 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17728
17729         PR rtl-optimization/68651
17730         * combine.c (combine_simplify_rtx): Canonicalize x + x into
17731         x << 1.
17732
17733 2016-01-05  Nathan Sidwell  <nathan@acm.org>
17734
17735         * alias.c (compare_base_decls): Use symtab_node::get.
17736
17737 2016-01-05  Nick Clifton  <nickc@redhat.com>
17738
17739         PR target/68770
17740         * ira-costs.c (copy_cost): Initialise the t_icode field of the
17741         secondary_reload_info structure.
17742
17743         PR target/66655
17744         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
17745         decls if weak support is available.
17746
17747 2016-01-04  Martin Sebor  <msebor@redhat.com>
17748
17749         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
17750
17751 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
17752
17753         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
17754         OPTION_MASK_P9_DFORM.
17755
17756         * config/rs6000/constraints.md (wo constraint): New constraint for
17757         ISA 3.0 (power9).
17758
17759         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
17760         for wo constraint.
17761         (rs6000_init_hard_regno_mode_ok): Likewise.
17762
17763         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
17764         wo constraint.
17765
17766         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
17767         expanders not to have constraints.  Add support for ISA 3.0 xxperm
17768         instruction.  Add support for fusing xxlor with xxperm.
17769         (altivec_vperm_<mode>_internal): Likewise.
17770         (altivec_vperm_v8hiv16qi): Likewise.
17771         (altivec_vperm_<mode>v16q): Likewise.
17772         (altivec_vperm_<mode>_uns): Likewise.
17773         (vperm_v8hiv4si): Likewise.
17774         (vperm_v16qiv8hi): Likewise.
17775
17776         * doc/md.texi (RS/6000 constraints): Document wo constraint.
17777
17778 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
17779
17780         Update copyright years.
17781
17782         * gcc.c (process_command): Update copyright notice dates.
17783         * gcov-dump.c (print_version): Ditto.
17784         * gcov.c (print_version): Ditto.
17785         * gcov-tool.c (print_version): Ditto.
17786         * gengtype.c (create_file): Ditto.
17787         * doc/cpp.texi: Bump @copying's copyright year.
17788         * doc/cppinternals.texi: Ditto.
17789         * doc/gcc.texi: Ditto.
17790         * doc/gccint.texi: Ditto.
17791         * doc/gcov.texi: Ditto.
17792         * doc/install.texi: Ditto.
17793         * doc/invoke.texi: Ditto.
17794
17795 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17796
17797         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
17798         modes larger than TImode as TImode if NEON is not enabled.
17799
17800 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17801
17802         PR target/69100
17803         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
17804         mode for %f0-%f31 only if TARGET_FPU.
17805
17806 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17807
17808         PR target/69072
17809         * config/sparc/sparc.c (scan_record_type): Take into account subfields
17810         to compute the PACKED_P predicate.
17811         (function_arg_record_value): Minor tweaks.
17812
17813 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17814
17815         * doc/install.texi (--with-multilib-list): Describe the meaning of the
17816         option for arm*-*-* targets.
17817
17818 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
17819
17820         * doc/extend.texi (Common Function Attributes): Move docs for
17821         MSP430-specific attributes to....
17822         (MSP430 Function Attributes): ...here.  Delete the redundant
17823         entries and copy-edit the remaining text.
17824         (MSP430 Variable Attributes): Use uniform format for index
17825         entries and add a cross-reference to the corresponding function
17826         attribute docs.
17827
17828 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
17829
17830         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
17831         -finite-math typo.
17832         (x86 Options): Likewise.
17833
17834 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
17835
17836         PR 1078
17837
17838         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
17839         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
17840         to corresponding attribute.
17841
17842 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
17843
17844         * doc/extend.texi (Common Function Attributes) <noplt>: Move
17845         to correct alphabetization of table.  Copy-edit and correct
17846         markup.
17847         <stack_protect>: Likewise.
17848         <target_clones>: Likewise.
17849         <simd>: Likewise.
17850         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
17851         Correct punctuation.
17852         (Code Gen Options) <-fno-plt>: Copy-edit.
17853
17854 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17855
17856         PR target/68917
17857         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
17858         SI values.  Explicitly convert SI to DI and vice-versa.
17859
17860 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
17861
17862         PR tree-optimization/69070
17863         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
17864         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
17865
17866         PR sanitizer/69055
17867         * ubsan.c (ubsan_instrument_float_cast): Call
17868         initialize_sanitizer_builtins.
17869
17870         PR target/69015
17871         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
17872 \f
17873 Copyright (C) 2016 Free Software Foundation, Inc.
17874
17875 Copying and distribution of this file, with or without modification,
17876 are permitted in any medium without royalty provided the copyright
17877 notice and this notice are preserved.