tree-vect-data-refs.c (vect_no_alias_p): New function.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-07-13  Bin Cheng  <bin.cheng@arm.com>
2
3         * tree-vect-data-refs.c (vect_no_alias_p): New function.
4         (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
5         resolve alias checks which are known at compilation time.
6         Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
7         alias checks are resolved.  Move dump info for too many runtime
8         alias checks to here...
9         * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
10
11 2016-07-13  Richard Biener  <rguenther@suse.de>
12
13         PR tree-optimization/24574
14         * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
15         position and add shift, rotate, divison and modulo support
16         for left zero.
17         (value_replacement): Pass in argument position to absorbing_element_p.
18
19 2016-07-13  Ilya Enkovich  <ilya.enkovich@intel.com>
20
21         PR ipa/71633
22         * ipa-inline-transform.c (inline_call): Support
23         instrumented thunks.
24
25 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26
27         * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
28         (TARGET_IDIV): Set for all Thumb targets provided they have hardware
29         divide feature.
30         * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
31         Baseline.  Make initial alternative TARGET_32BIT only.
32         (udivsi3): Likewise.
33         * config/arm/thumb1.md (thumb1_cbz): New define_insn.
34         * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
35         target.
36
37 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38
39         * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
40         * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
41         availability with TARGET_HAVE_MOVT.
42         (thumb_legitimate_constant_p): Strip the high part of a label_ref.
43         (thumb1_rtx_costs): Also return 0 if setting a half word constant and
44         MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
45         UINTVAL.
46         (thumb1_size_rtx_costs): Make set of half word constant also cost 1
47         extra instruction if MOVW is available.  Use a cost variable
48         incremented by COSTS_N_INSNS (1) when the condition match rather than
49         returning an arithmetic expression based on COSTS_N_INSNS.  Make
50         constant with bottom half word zero cost 2 instruction if MOVW is
51         available.
52         * config/arm/arm.md (define_attr "arch"): Add v8mb.
53         (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
54         target is ARMv8-M Baseline.
55         (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
56         (arm_movtas_ze): Likewise.
57         * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
58         alternative for constants satisfying j constraint.
59         (thumb1_movsi_insn): Likewise.
60         (movsi splitter for K alternative): Tighten condition to not trigger
61         if movt is available and j constraint is satisfied.
62         (Pe immediate splitter): Likewise.
63         (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
64         constant fitting in an halfword to use MOVW.
65         * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
66         effective target.
67
68 2016-07-13  Richard Biener  <rguenther@suse.de>
69
70         PR middle-end/71104
71         * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
72         gimplifying the LHS.  Make sure to gimplify a returning twice
73         call LHS without using SSA names.
74
75 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
76
77         * tree-data-ref.c (find_data_references_in_stmt): Remove
78         unnecessary call to vec::release.
79         (graphite_find_data_references_in_stmt): Likewise.
80         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
81         * tree-vect-stmts.c (vectorizable_condition): Likewise.
82
83 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
84
85         * cfgexpand.c (expand_used_vars): Make the type of a local variable auto_vec.
86         * genmatch.c (lower_for): Likewise.
87         * haifa-sched.c (haifa_sched_init): Likewise.
88         (add_to_speculative_block): Likewise.
89         (create_check_block_twin): Likewise.
90         * predict.c (handle_missing_profiles): Likewise.
91         * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
92         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
93         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise.
94         (maybe_lower_iteration_bound): Likewise.
95         * tree-ssa-sccvn.c (DFS): Likewise.
96         * tree-stdarg.c (reachable_at_most_once): Likewise.
97         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
98         (vectorizable_store): Likewise.
99
100 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
101
102         * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
103         (sccvn_dom_walker): make cond_stack an auto_vec.
104
105 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
106
107         * ree.c (struct ext_state): Make type of members auto_vec.
108         (find_and_remove_re): Adjust.
109
110 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
111
112         * cfgexpand.c (struct stack_vars_data): Make type of fields
113         auto_vec.
114         (expand_used_vars): Adjust.
115
116 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
117
118         * ipa.c (record_cdtor_fn): Adjust.
119         (build_cdtor_fns): Likewise.
120         (ipa_cdtor_merge): Make static_ctors and static_dtors local
121         variables.
122
123 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
124
125         * genextract.c (struct accum_extract): Add constructor and make
126         members auto_vec.
127         (gen_insn): Adjust.
128
129 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
130
131         * tree.c (struct free_lang_data_d): Add constructor and change
132         types of members to ones that automatically manage resources.
133         (fld_worklist_push): Adjust.
134         (find_decls_types): Likewise.
135         (find_decls_types_in_eh_region): Likewise.
136         (free_lang_data_in_cgraph): Stop manually creating and
137         destroying members of free_lang_data_d.
138
139 2016-07-13  Uros Bizjak  <ubizjak@gmail.com>
140
141         PR rtl-optimization/68961
142         * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
143         peephole variant.  Use sse_reg_operand predicates.
144
145 2016-07-12  Uros Bizjak  <ubizjak@gmail.com>
146
147         * config/i386/predicates.md (x86_64_immediate_operand)
148         <case CONST_INT>: Remove unneeded truncation to DImode.
149         <case CONST>: Ditto.
150         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
151
152 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
153
154         PR target/71805
155         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
156         The xxperm and xxpermr instructions require that the 2nd input
157         operand overlap with the output operand, and not the 1st.
158         (altivec_vperm_v8hiv16qi): Likewise.
159         (altivec_vperm_<mode>_uns_internal): Likewise.
160         (altivec_vpermr_<mode>_internal): Likewise.
161         (vperm_v8hiv4si): Likewise.
162         (vperm_v16qiv8hi): Likewise.
163
164 2016-07-12  Martin Liska  <mliska@suse.cz>
165
166         * params.def: Add avg-loop niter.
167         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
168         * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
169         * doc/invoke.texi: Document the new parameter.
170
171 2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
172
173         PR middle-end/71700
174         * expr.c (store_constructor): Mask sign-extended bits when widening
175         sub-word constructor element at the start of a word.
176
177 2016-07-12  Martin Liska  <mliska@suse.cz>
178
179         * Makefile.in: Append rule for params-options.h.
180         * params-options.h: New file.
181
182 2016-07-12  Martin Liska  <mliska@suse.cz>
183
184         * ira-build.c (mark_loops_for_removal): Properly iterate
185         loops.
186
187 2016-07-12  Steven Bosscher  <steven@gcc.gnu.org>
188             Richard Biener  <rguenther@suse.de>
189
190         PR tree-optimization/23286
191         PR tree-optimization/70159
192         * doc/invoke.texi: Document -fcode-hoisting.
193         * common.opt (fcode-hoisting): New flag.
194         * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
195         * tree-ssa-pre.c (pre_stats): Add hoist_insert.
196         (do_regular_insertion): Rename to ...
197         (do_pre_regular_insertion): ... this and amend general comments
198         on insertion strathegy.
199         (do_partial_partial_insertion): Rename to ...
200         (do_pre_partial_partial_insertion): ... this.
201         (do_hoist_insertion): New function.
202         (insert_aux): Take flags on whether to do PRE and/or hoist insertion
203         and call do_hoist_insertion properly.
204         (insert): Adjust.
205         (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
206         (pass_pre::execute): Register hoist_insert stats.
207
208 2016-07-12  Jakub Jelinek  <jakub@redhat.com>
209
210         PR middle-end/71716
211         * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
212         for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
213         is different from mode's bitsize.  Small cleanup.
214
215 2016-07-12  Richard Biener  <rguenther@suse.de>
216
217         PR rtl-optimization/68961
218         * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
219         to simplify to a non-constant.
220
221 2016-07-11  Jakub Jelinek  <jakub@redhat.com>
222
223         PR middle-end/71758
224         * omp-low.c (expand_omp_target): Gimplify device.
225
226         PR tree-optimization/71823
227         * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
228         to get vec_oprnds2 from op2.
229
230 2016-07-11  Uros Bizjak  <ubizjak@gmail.com>
231
232         * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
233         Hoist common subexpressions.
234         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
235
236 2016-07-11  Pat Haugen  <pthaugen@us.ibm.com>
237
238         PR target/71800
239         * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
240         prevent generation of 'stxsiwx' on pre Power8 hardware.
241
242 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
243
244         * input.c: Include cpplib.h.
245         (selftest::temp_source_file): New class.
246         (selftest::temp_source_file::temp_source_file): New ctor.
247         (selftest::temp_source_file::~temp_source_file): New dtor.
248         (selftest::should_have_column_data_p): New function.
249         (selftest::test_should_have_column_data_p): New function.
250         (selftest::temp_line_table): New class.
251         (selftest::temp_line_table::temp_line_table): New ctor.
252         (selftest::temp_line_table::~temp_line_table): New dtor.
253         (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
254         it to create a temp_line_table.
255         (selftest::assert_loceq): Only verify LOCATION_COLUMN for
256         locations that are known to have column data.
257         (selftest::line_table_case): New struct.
258         (selftest::test_reading_source_line): Move tempfile handling
259         to class temp_source_file.
260         (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
261         (selftest::assert_token_loc_eq): New function.
262         (ASSERT_TOKEN_LOC_EQ): New macro.
263         (selftest::test_lexer): New function.
264         (selftest::boundary_locations): New array.
265         (selftest::input_c_tests): Call test_should_have_column_data_p.
266         Loop over a test matrix of interesting values of location and
267         default_range_bits, calling test_lexer on each case in the matrix.
268         Move call to test_accessing_ordinary_linemaps into the matrix.
269         * selftest.h (ASSERT_EQ): Reimplement in terms of...
270         (ASSERT_EQ_AT): New macro.
271
272 2016-07-11  H.J. Lu  <hongjiu.lu@intel.com>
273
274         PR target/71801
275         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
276         Don't convert TImode in debug insn.
277
278 2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
279
280         Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
281         * tree-core.h (tree_base::nothrow_flag): Adjust comment.
282         (tree_type_common::lang_flag_7): New.
283         (tree_type_common::spare): Reduce size.
284         * tree.h (TYPE_ALIGN_OK): Remove.
285         (TYPE_LANG_FLAG_7): New.
286         (get_inner_reference): Adjust header.
287         * print-tree.c (print_node): Adjust.
288         * expr.c (get_inner_reference): Remove parameter keep_aligning.
289         (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
290         calls to get_inner_reference.
291         (expand_expr_real_1): Adjust call to get_inner_reference.  Remove
292         handling of TYPE_ALIGN_OK.
293         * builtins.c (get_object_alignment_2): Adjust call to
294         get_inner_reference.  Remove handling of VIEW_CONVERT_EXPR.
295         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
296         TYPE_ALIGN_OK.
297         * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
298         * cfgexpand.c (expand_debug_expr): Likewise.
299         * dbxout.c (dbxout_expand_expr): Likewise.
300         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
301         loc_list_from_tree, fortran_common): Likewise.
302         * fold-const.c (optimize_bit_field_compare,
303         decode_field_reference, fold_unary_loc, fold_comparison,
304         split_address_to_core_and_offset): Likewise.
305         * gimple-laddress.c (execute): Likewise.
306         * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
307         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
308         * hsa-gen.c (gen_hsa_addr): Likewise.
309         * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
310         * tsan.c (instrument_expr): Likewise.
311         * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
312         * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
313         * tree-affine.c (tree_to_aff_combination,
314         get_inner_reference_aff): Adjust calls to get_inner_reference.
315         * tree-data-ref.c (split_constant_offset_1,
316         dr_analyze_innermost): Likewise.
317         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
318         * tree-sra.c (ipa_sra_check_caller): Likewise.
319         * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
320         * tree-ssa-math-opts.c (find_bswap_or_nop_load,
321         bswap_replace): Likewise.
322         * tree-vect-data-refs.c (vect_check_gather,
323         vect_analyze_data_refs): Likewise.
324         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
325         * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
326         TYPE_ALIGN_OK.
327
328 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
329
330         * Makefile.in (selftest-valgrind): New phony target.
331         * function-tests.c (selftest::build_cfg): Delete pass instances
332         created by the test.
333         (selftest::convert_to_ssa): Likewise.
334         (selftest::test_expansion_to_rtl): Likewise.
335         * tree-cfg.c (selftest::test_linear_chain): Release dominator
336         vectors.
337         (selftest::test_diamond): Likewise.
338
339 2016-07-11  Richard Biener  <rguenther@suse.de>
340
341         PR tree-optimization/71816
342         * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
343         than replacing all of its operands.
344
345 2016-07-11  Alan Modra  <amodra@gmail.com>
346
347         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
348         (ctr<mode>): Add unspec.
349         (ctr<mode>_internal*): Likewise.
350
351 2016-07-08  James Bowman  <james.bowman@ftdichip.com>
352
353         * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
354         * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
355
356 2016-07-08  Vladimir Makarov  <vmakarov@redhat.com>
357
358         PR rtl-optimization/71621
359         * lra-constraints.c (process_alt_operands): Check combination of
360         reg class and mode.
361
362 2016-07-08  Jason Merrill  <jason@redhat.com>
363             Richard Biener  <rguenther@suse.de>
364
365         P0145: Refining Expression Order for C++.
366         * gimplify.c (initial_rhs_predicate_for): New.
367         (gimplfy_modify_expr): Gimplify RHS before LHS.
368
369 2016-07-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
370
371         PR target/71297
372         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
373         Allow standard error handling to take over when a wrong number
374         of arguments is presented to __builtin_vec_ld () or
375         __builtin_vec_st ().
376
377 2016-07-08  Jiong Wang  <jiong.wang@arm.com>
378
379         * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
380         variants.
381         (smin): Likewise.
382         (fmax): New entry.
383         (fmin): Likewise.
384         * config/aarch64/arm_neon.h (vmaxnm_f32): Use
385         __builtin_aarch64_fmaxv2sf.
386         (vmaxnmq_f32): Likewise.
387         (vmaxnmq_f64): Likewise.
388         (vminnm_f32): Likewise.
389         (vminnmq_f32): Likewise.
390         (vminnmq_f64): Likewise.
391
392 2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
393
394         PR target/71806
395         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
396         enable -mfloat128-hardware by default.
397         (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
398         that IEEE 128-bit hardware support needs.
399         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
400         -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
401         Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
402         floating point requires.
403         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
404         -mfloat128 and -mfloat128-hardware changes.
405
406 2016-07-08  Alan Hayward  <alan.hayward@arm.com>
407
408         PR tree-optimization/71667
409         * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
410
411 2016-07-08  Martin Liska  <mliska@suse.cz>
412
413         PR middle-end/71606
414         * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
415         folding produces SAVE_EXPRs, thus return false for the type.
416
417 2016-07-07  Martin Liska  <mliska@suse.cz>
418
419         * file-find.c (remove_prefix): New function.
420         * file-find.h (remove_prefix): Declare the function.
421         * gcc-ar.c (main): Skip a folder of the wrapper if
422         a wrapped binary would point to the same file.
423
424 2016-07-07  Jan Hubicka  <jh@suse.cz>
425
426         * tree-scalar-evolution.c (iv_can_overflow_p): export.
427         * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
428         * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
429
430 2016-07-07  Ilya Enkovich  <ilya.enkovich@intel.com>
431
432         PR ipa/71624
433         * ipa-inline-analysis.c (compute_inline_parameters): Set
434         local.can_change_signature to false for intrumentation
435         thunk callees.
436
437 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
438
439         * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
440         with TARGET_HAVE_MOVT.
441         (TARGET_HAVE_MOVT): Define.
442         * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
443         availability with TARGET_HAVE_MOVT.
444         * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
445         availability.
446         (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
447         TARGET_THUMB2.
448         (symbol_refs movsi splitter): Remove TARGET_32BIT check.
449         (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
450         * config/arm/constraints.md (define_constraint "j"): Use
451         TARGET_HAVE_MOVT to check MOVT availability.
452
453 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
454
455         * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
456
457 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
458
459         * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
460         (armv8-m.main): Likewise.
461         (armv8-m.main+dsp): Likewise.
462         * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
463         (FL_FOR_ARCH8M_MAIN): Likewise.
464         * config/arm/arm-tables.opt: Regenerate.
465         * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
466         armv8-m.main+dsp to BE8_LINK_SPEC.
467         * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
468         (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
469         * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
470         Baseline and Mainline.
471         (arm_option_override_internal): Also disable arm_restrict_it when
472         !arm_arch_notm.  Update comment for -munaligned-access to also cover
473         ARMv8-M Baseline.
474         (arm_file_start): Increase buffer size for printing architecture name.
475         * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
476         and armv8-m.main+dsp.
477         (mno-unaligned-access): Clarify that this is disabled by default for
478         ARMv8-M Baseline architectures as well.
479
480 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
481
482         * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
483         decide whether to prevent some libgcc routines being included for some
484         multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
485         link between this condition and the one in
486         libgcc/config/arm/lib1func.S.
487
488 2016-07-07  Richard Biener  <rguenther@suse.de>
489
490         * tree-ssa-pre.c: Include alias.h.
491         (compute_avail): If we have multiple VN_REFERENCEs with the
492         same hashtable entry adjust that to make it a valid replacement
493         for all of them with respect to alignment and aliasing
494         when doing insertion.
495         * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
496         * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
497
498 2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>
499
500         PR target/70098
501         PR target/71763
502         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
503         *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
504         constraint.
505
506 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
507
508         * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
509         (adjust_mems): Adjust.
510         (adjust_insn): Likewise.
511         (prepare_call_arguments): Likewise.
512
513 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
514
515         * gcse.c (struct ls_expr): Make stores field a vector.
516         (ldst_entry): Adjust.
517         (free_ldst_entry): Likewise.
518         (print_ldst_list): Likewise.
519         (compute_ld_motion_mems): Likewise.
520         (update_ld_motion_stores): Likewise.
521
522 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
523
524         * gcse.c (struct ls_expr): Remove loads field.
525         (ldst_entry): Adjust.
526         (free_ldst_entry): Likewise.
527         (print_ldst_list): Likewise.
528         (compute_ld_motion_mems): Likewise.
529
530 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
531
532         * store-motion.c (struct st_expr): Make antic_stores a vector.
533         (st_expr_entry): Adjust.
534         (free_st_expr_entry): Likewise.
535         (print_store_motion_mems): Likewise.
536         (find_moveable_store): Likewise.
537         (compute_store_table): Likewise.
538         (remove_reachable_equiv_notes): Likewise.
539         (replace_store_insn): Likewise.
540         (build_store_vectors): Likewise.
541
542 2016-07-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
543
544         * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
545         cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
546
547 2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
548
549         PR tree-optimization/71518
550         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
551         misalign also for outer loops with negative step.
552
553 2016-07-06  Wilco Dijkstra  <wdijkstr@arm.com>
554
555         * config/arm/cortex-a53.md: Use final_presence_set for in-order.
556         (cortex_a53_shift): Add mov_shift.
557         (cortex_a53_shift_reg): Add new reservation for register shifts.
558         (cortex_a53_alu): Remove bfm.
559         (cortex_a53_alu_shift): Add bfm, remove mov_shift.
560         (cortex_a53_alu_extr): Add new reservation for EXTR.
561         (bypasses): Improve bypass modelling.
562
563 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
564
565         PR target/50739
566         * config/avr/avr.c (avr_asm_select_section): Strip off
567         SECTION_DECLARED from flags when calling get_section.
568
569 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
570
571         * tree-vectorizer.h (vect_memory_access_type): Add
572         VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
573         * tree-vect-stmts.c (compare_step_with_zero): New function.
574         (perm_mask_for_reverse): Move further up file.
575         (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
576         step is negative.
577         (get_negative_load_store_type): New function.
578         (get_load_store_type): Call it.  Add an ncopies argument.
579         (vectorizable_mask_load_store): Update call accordingly and
580         remove tests for negative steps.
581         (vectorizable_store, vectorizable_load): Likewise.  Handle new
582         memory_access_types.
583
584 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
585
586         * tree-vectorizer.h (vect_memory_access_type): New enum.
587         (_stmt_vec_info): Add a memory_access_type field.
588         (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
589         (vect_model_store_cost): Take an access type instead of a boolean.
590         (vect_model_load_cost): Likewise.
591         * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
592         vect_model_store_cost and vect_model_load_cost.
593         * tree-vect-stmts.c (vec_load_store_type): New enum.
594         (vect_model_store_cost): Take an access type instead of a
595         store_lanes_p boolean.  Simplify tests.
596         (vect_model_load_cost): Likewise, but for load_lanes_p.
597         (get_group_load_store_type, get_load_store_type): New functions.
598         (vectorizable_store): Use get_load_store_type.  Record the access
599         type in STMT_VINFO_MEMORY_ACCESS_TYPE.
600         (vectorizable_load): Likewise.
601         (vectorizable_mask_load_store): Likewise.  Replace is_store
602         variable with vls_type.
603
604 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
605
606         * tree-vectorizer.h (vect_grouped_load_supported): Add a
607         single_element_p parameter.
608         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
609         Check the PR65518 case here rather than in vectorizable_load.
610         * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
611         * tree-vect-stmts.c (vectorizable_load): Likewise.
612
613 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
614
615         * tree-vectorizer.h (gather_scatter_info): New structure.
616         (vect_check_gather_scatter): Return a bool rather than a decl.
617         Replace return-by-pointer arguments with a single
618         gather_scatter_info *.
619         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
620         (vect_analyze_data_refs): Update call accordingly.
621         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
622         (vectorizable_mask_load_store): Likewise.  Also record the
623         offset dt and vectype in the gather_scatter_info.
624         (vectorizable_store): Likewise.
625         (vectorizable_load): Likewise.
626
627 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
628
629         * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
630         strided groups, use the cost of N scalar accesses instead
631         of ncopies vector accesses.
632         (vect_model_load_cost): Likewise.
633
634 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
635
636         * tree-vect-stmts.c (vect_cost_group_size): Delete.
637         (vect_model_store_cost): Avoid calling it.  Use first_stmt_p
638         variable to indicate when once-per-group costs are being used.
639         (vect_model_load_cost): Likewise.  Fix comment and misindented code.
640
641 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
642
643         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
644         peeling-for-gaps condition.
645
646 2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
647
648         * config/s390/s390.c (s390_expand_vec_init): Force initializer
649         element to register if it doesn't match general_operand.
650
651 2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
652             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
653
654         * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
655         prototype.
656         * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
657         * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
658         (SIGNBIT): New mode iterator.
659         (Fsignbit): New mode attribute.
660         (signbit<mode>2): Change operand1 to match FLOAT128 instead of
661         IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
662         when direct moves are available.
663         (signbit<mode>2_dm): New define_insn_and_split).
664         (signbit<mode>2_dm2): New define_insn.
665
666 2016-07-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
667
668         PR rtl-optimization/71594
669         * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
670         into subregs of appropriate mode before trying to emit a conditional
671         move.
672
673 2016-07-05  Jan Hubicka  <jh@suse.cz>
674
675         * tree-scalar-evolution.c (iv_can_overflow_p): New function.
676         (simple_iv): Use it.
677
678 2016-07-05  Jan Hubicka  <jh@suse.cz>
679
680         * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
681
682 2016-07-05  Jiong Wang  <jiong.wang@arm.com>
683
684         * lra-constraints.c (process_alt_operands): Don't add spilling cost for
685         "offmemok".
686
687 2016-07-05  Jan Hubicka  <jh@suse.cz>
688
689         * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
690         IV can overflow.
691
692 2016-07-05  Richard Biener  <rguenther@suse.de>
693
694         * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
695         Handle empty else block.
696         (is_feasible_trace): Likewise.
697         (split_paths): Likewise.
698
699 2016-07-05  Richard Biener  <rguenther@suse.de>
700
701         * tree-loop-distribution.c (distribute_loop): Fix issue with
702         the cost model loop.
703
704 2016-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
705
706         * config/arm/neon-testgen.ml: Delete.
707         * config/arm/neon.ml: Delete.
708
709 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
710
711         PR c++/71739
712         * tree.c (attribute_value_equal): Use get_attribute_name instead of
713         directly using TREE_PURPOSE.
714
715 2016-07-04  Jiong Wang  <jiong.wang@arm.com>
716
717         * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
718         * config/aarch64/aarch64_neon.h: Likewise.
719         * config/aarch64/arm_neon.h: Likewise.
720         * config/aarch64/atomics.md: Likewise.
721         * config/aarch64/aarch64-simd-builtins.def: Likewise.
722         * doc/invoke.texi: Likewise.
723
724 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
725
726         * config/s390/s390.md: Add "z13" cpu_facility.
727         ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
728         * config/s390/predicates.md ("loc_operand"): New predicate for "load on
729         condition" type instructions.
730
731 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
732             Jeff Law  <law@redhat.com>
733
734         * explow.c (allocate_dynamic_stack_space): Simplify knowing that
735         MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
736
737 2016-07-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
738
739         * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
740         permutation for TARGET_AVX512F.
741         (ix86_expand_vec_one_operand_perm_avx512): New function.
742         (expand_vec_perm_1): Invoke introduced function.
743         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
744         it may be not valid after vectorization.
745
746 2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
747
748         PR target/63874
749         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
750         typo in comment.  Only force to memory if it is a weak
751         external reference.
752
753 2016-07-04  Matthew Wahab  <matthew.wahab@arm.com>
754             Jiong Wang  <jiong.wang@arm.com>
755
756         * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
757         * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
758         (AARCH64_FL_F16): New.
759         (AARCH64_FL_FOR_ARCH8_2): New.
760         (AARCH64_ISA_8_2): New.
761         (AARCH64_ISA_F16): New.
762         (TARGET_FP_F16INST): New.
763         (TARGET_SIMD_F16INST): New.
764         * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
765         ("fp"): Disabling "fp" also disables "fp16".
766         * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
767         Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
768         and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
769         * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
770
771 2016-07-04  Jan Beulich  <jbeulich@suse.com>
772
773         * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
774
775 2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
776
777         PR target/71720
778         * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
779         the insns, use an insn form that does not adjust the offset on
780         little endian systems.
781
782 2016-07-01  Jan Beulich  <jbeulich@suse.com>
783
784         * varasm.c (get_variable_section): Validate initializer in
785         named .bss-like sections.
786
787 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
788
789         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
790         Exchange the order of the second and third operands in the vpermr
791         instruction tmeplate.
792
793 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
794
795         PR target/71698
796         * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
797         Disallow TDmode values.
798
799 2016-07-01  Alan Modra  <amodra@gmail.com>
800
801         PR rtl-optimization/71709
802         * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
803         being set, not referenced.
804
805 2016-07-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
806
807         PR tree-optimization/70729
808         * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
809         of loop since it can be not valid after transformation.
810
811 2016-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
812
813         * config/arm/arm.c (thumb_reload_in_hi): Delete.
814         * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
815
816 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
817
818         * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
819         for NULL decl.
820
821 2016-06-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
822
823         PR target/71677
824         * config/rs6000/constraints.md (wY constraint): New constraint to
825         match the requirements for the LXSD and STXSD instructions.
826         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
827         predicate to match the requirements for the LXSD and STXSD
828         instructions.
829         * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
830         Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
831         to make sure that the bottom 2 bits of offset are 0, the address
832         form is offsettable, and no updating is done in the address mode.
833         (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
834         (movdi_internal32): Likewise
835         (movdi_internal64): Likewise.
836
837 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
838
839         PR tree-optimization/71707
840         * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
841         strinfo even for ADDR_EXPR ptr.
842
843 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
844
845         * config/rs6000/altivec.md (darn_32): Change the condition to
846         TARGET_P9_MISC instead of TARGET_MODULO.
847         (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
848         condition expression.
849         (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
850         condition expression.
851         * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
852         (DFP_TEST): New code iterator.
853         (dfptstsfi_<code>_mode>): New define_expand.
854         (*dfp_sgnfcnc_<mode>): New define_insn.
855         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
856         definition next to BU_P9_MISC_1 definition and change the MASK
857         value to RS6000_BTM_P9_MISC.
858         (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
859         (BU_P9_64BIT_MISC_0): Likewise.
860         (BU_P9_DFP_MISC_0): New macro definition.
861         (BU_P9_DFP_MISC_1): New macro definition.
862         (BU_P9_DFP_MISC_2): New macro definition.
863         (BU_P9_DFP_OVERLOAD_1): New macro definition.
864         (BU_P9_DFP_OVERLOAD_2): New macro definition.
865         (BU_P9_DFP_OVERLOAD_3): New macro definition.
866         (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
867         (TSTSFI_LT_TD): Likewise.
868         (TSTSFI_EQ_DD): Likewise.
869         (TSTSFI_EQ_TD): Likewise.
870         (TSTSFI_GT_DD): Likewise.
871         (TSTSFI_GT_TD): Likewise.
872         (TSTSFI_OV_DD): Likewise.
873         (TSTSFI_OV_TD): Likewise.
874         (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
875         (TSTSFI_LT_DD): Likewise.
876         (TSTSFI_LT_TD): Likewise.
877         (TSTSFI_EQ): Likewise.
878         (TSTSFI_EQ_DD): Likewise.
879         (TSTSFI_EQ_TD): Likewise.
880         (TSTSFI_GT): Likewise.
881         (TSTSFI_GT_DD): Likewise.
882         (TSTSFI_GT_TD): Likewise.
883         (TSTSFI_OV): Likewise.
884         (TSTSFI_OV_DD): Likewise.
885         (TSTSFI_OV_TD): Likewise.
886         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
887         overloaded test significance functions.
888         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
889         OPTION_MASK_P9_MISC into the representation of this mask.
890         (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
891         of this mask.
892         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
893         RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
894         non-zero.
895         (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
896         argument is a 6-bit unsigned literal value if the icode argument
897         represents a DFP test significance built-in call.
898         (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
899         flag used independently and in combination with the
900         RS6000_BTM_64BIT flag.
901         (rs6000_opt_masks): Add entry for power9-misc command-line option.
902         (rs6000_builtin_mask_names): Add entry for power9-misc
903         command-line option.
904         * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
905         HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
906         RS6000_BTM_P9_MISC macros.
907         * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
908         option and change the description of the -mpower9-vector option to
909         enable only vector instructions, removing its erroneously claimed
910         support for scalar instructions.
911         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
912         the ISA 3.0 digital floating point test significance built-in
913         functions.
914
915 2016-06-30  Wilco Dijkstra  <wdijkstr@arm.com>
916
917         * config/aarch64/aarch64.c (cortexa35_tunings):
918         Enable AES fusion.  Use cortexa57_branch_cost.
919         (cortexa53_tunings): Use cortexa57_branch_cost.
920         (cortexa72_tunings): Use cortexa57_branch_cost.
921         Use AUTOPREFETCHER_WEAK.
922         (cortexa73_tunings): Use cortexa57_branch_cost.
923
924 2016-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
925             James Greenhalgh  <james.greenhalgh@arm.com>
926
927         * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
928         vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
929         vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
930         vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
931         (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
932         vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
933         vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
934         vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
935         vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
936         vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
937         vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
938         vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
939         vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
940         New intrinsics.
941
942 2016-06-30  James Greenhalgh  <james.greenhalgh@arm.com>
943             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
944
945         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
946         New define_insn.
947         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
948
949 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
950
951         PR driver/71651
952         * gcc.c (driver::build_option_suggestions): Pass "option" to
953         add_misspelling_candidates.
954         * opts-common.c (add_misspelling_candidates): Add "option" param;
955         use it to avoid adding negated forms for options marked with
956         RejectNegative.
957         * opts.h (add_misspelling_candidates): Add "option" param.
958
959 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
960
961         PR middle-end/71693
962         * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
963         TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
964         first when permuting bitwise operation with rotate.  Cast
965         TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
966
967 2016-06-29  David Malcolm  <dmalcolm@redhat.com>
968
969         * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
970         for misspelled param names.
971         * params.c: Include spellcheck.h.
972         (find_param_fuzzy): New function.
973         * params.h (find_param_fuzzy): New prototype.
974         * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
975         * spellcheck.h (struct edit_distance_traits<const char *>):
976         ...here.
977
978 2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
979
980         * config/rs6000/predicates.md (const_0_to_7_operand): New
981         predicate, recognize 0..7.
982         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
983         support for doing extracts from V16QImode, V8HImode, V4SImode
984         under ISA 3.0.
985         * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
986         vector extract support.
987         (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
988         for ISA 3.0 vector extract.
989         (VSX_EX): Constraints to use for ISA 3.0 vector extract.
990         (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
991         extracts of a constant element number from small integer vectors
992         on 64-bit ISA 3.0 systems.
993         (vsx_extract_<mode>_di): Likewise.
994         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
995         say when we can do ISA 3.0 vector extracts.
996         * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
997         registers, using the stxsiwx instruction.
998
999 2016-06-29  Jim Wilson  <jim.wilson@linaro.org>
1000
1001         * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
1002         * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
1003         qdf24xx_regmove_cost, qdf24xx_tunings): New.
1004         * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
1005         * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
1006         * config/arm/arm.c (arm_qdf24xx_tune): New.
1007
1008 2016-06-29  Wilco Dijkstra  <wdijkstr@arm.com>
1009
1010         * config/aarch64/aarch64.c (cortexa53_tunings):
1011         Increase loop alignment to 8.  Set function alignment to 16.
1012         (cortexa35_tunings): Likewise.
1013         (cortexa57_tunings): Increase loop alignment to 8.
1014         (cortexa72_tunings): Likewise.
1015         (cortexa73_tunings): Likewise.
1016
1017 2016-06-29  Matthew Wahab  <matthew.wahab@arm.com>
1018
1019         * doc/sourcebuild.texi (Effective-Target keywords): Add entries
1020         for arm_fp16_ok and arm_fp16_hw.
1021         (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
1022         arm_fp16_alternative.
1023
1024 2016-06-29  Ilya Enkovich  <ilya.enkovich@intel.com>
1025
1026         PR tree-optimization/71655
1027         * tree-vect-stmts.c (vectorizable_comparison): Swap definition
1028         types when swapping operands.
1029
1030 2016-06-29  Martin Liska  <mliska@suse.cz>
1031
1032         PR middle-end/71585
1033         * common.opt (flag_stack_protect): Mark the flag as optimization flag.
1034         * ipa-inline-transform.c (inline_call): Remove unnecessary call
1035         of build_optimization_node.
1036
1037 2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
1038
1039         PR tree-optimization/70729
1040         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
1041         independent in loops having positive safelen value.
1042         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
1043         it may be not valid after vectorization.
1044
1045 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
1046
1047         PR tree-optimization/71625
1048         * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
1049         is sorted by ascending list->offset.  If PTR is non-NULL and there is
1050         previous strinfo, call get_stridx_plus_constant.
1051         (get_stridx): Pass exp as second argument to get_addr_stridx.
1052         (addr_stridxptr): Add missing list = list->next, so that there can be
1053         more than one entries in the list.  Bump limit from 16 to 32.  Ensure
1054         the list is sorted by ascending list->offset.
1055         (get_stridx_plus_constant): Adjust so that it can be also called with
1056         ADDR_EXPR instead of SSA_NAME as PTR.
1057         (handle_char_store): Pass NULL_TREE as second argument to
1058         get_addr_stridx.
1059
1060 2016-06-29  Richard Biener  <rguenther@suse.de>
1061
1062         PR rtl-optimization/68961
1063         * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
1064
1065 2016-06-29  Richard Biener  <rguenther@suse.de>
1066
1067         PR middle-end/71002
1068         * alias.c (component_uses_parent_alias_set_from): Handle
1069         type punning through union accesses by using the union alias set.
1070         * gimple.c (gimple_get_alias_set): Remove union type punning case.
1071
1072 2016-07-29  Richard Biener  <rguenther@suse.de>
1073
1074         * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
1075         precision not matching mode precision.
1076
1077 2016-06-28  John David Anglin  <danglin@gcc.gnu.org>
1078
1079         * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
1080         pa_output_arg_descriptor.
1081         (call_val_symref_64bit_post_reload): Likewise.
1082         (call_val_powf_64bit_post_reload): Likewise.
1083         (sibcall_internal_symref_64bit): Likewise.
1084         (sibcall_value_internal_symref_64bit): Likewise.
1085
1086 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
1087
1088         PR middle-end/71626
1089         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
1090         a constant, force its SUBREG_REG into memory or register instead
1091         of whole op1.
1092
1093 2016-06-28  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1094
1095         PR target/58655
1096         * config/avr/avr.opt (-mfract-convert-truncate): Update description.
1097         * doc/invoke.texi (AVR Options): Document it.
1098
1099 2016-06-28  Walter Lee  <walt@tilera.com>
1100
1101         * config/tilegx/linux.h: Do not include arch/icache.h
1102         (CLEAR_INSN_CACHE): Provide inlined definition directly.
1103         * config/tilepro/linux.h: Do not include arch/icache.h
1104         (CLEAR_INSN_CACHE): Provide inlined definition directly.
1105
1106 2016-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
1107
1108         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
1109         for big-endian BIT_FIELD_REF.
1110
1111 2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
1112
1113         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
1114         ('size' attribute): Add '128'.
1115         Include power9.md.
1116         (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
1117         *movdi_internal64, *movdf_update1): Set size attribute to '64'.
1118         (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
1119         copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
1120         *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
1121         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
1122         *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
1123         *trunc<mode>df2_odd): Set size attribute to '128'.
1124         (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
1125         * config/rs6000/power6.md (power6-fp): Include dfp type.
1126         * config/rs6000/power7.md (power7-fp): Likewise.
1127         * config/rs6000/power8.md (power8-fp): Likewise.
1128         * config/rs6000/power9.md: New file.
1129         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
1130         * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
1131         *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
1132         htmsimple.
1133         * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
1134         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1135         divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
1136         ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
1137         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
1138         dfp_dscri_<mode>): Change type attribute to dfp.
1139         * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
1140         attribute to vecsimple.
1141         * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
1142         and prefetch streams.
1143         (rs6000_option_override_internal): Remove temporary code setting
1144         tuning to power8.  Don't set rs6000_sched_groups for power9.
1145         (last_scheduled_insn): Change to rtx_insn *.
1146         (divide_cnt, vec_load_pendulum): New variables.
1147         (rs6000_adjust_cost): Add Power9 to test for store->load separation.
1148         (rs6000_issue_rate): Set issue rate for Power9.
1149         (is_power9_pairable_vec_type): New.
1150         (power9_sched_reorder2): New.
1151         (rs6000_sched_reorder2): Call new function for Power9 specific
1152         reordering.
1153         (insn_must_be_first_in_group): Remove Power9.
1154         (insn_must_be_last_in_group): Likewise.
1155         (force_new_group): Likewise.
1156         (rs6000_sched_init): Fix initialization of last_scheduled_insn.
1157         Initialize divide_cnt/vec_load_pendulum.
1158         (_rs6000_sched_context, rs6000_init_sched_context,
1159         rs6000_set_sched_context): Handle context save/restore of new
1160         variables.
1161
1162 2016-06-28  Richard Biener  <rguenther@suse.de>
1163
1164         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1165         Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
1166         COMPONENT_REF operand.
1167         (nonoverlapping_component_refs_p): Likewise.
1168         * stor-layout.c (start_bitfield_representative): Mark
1169         DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
1170
1171 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
1172
1173         * Makefile.in: Don't cat ../stage_current if it does not exist.
1174
1175         * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
1176         last argument is a bit-field.
1177
1178         PR rtl-optimization/71673
1179         * internal-fn.c (expand_arith_overflow_result_store): Use
1180         OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
1181         expand_simple_binop.
1182
1183         PR middle-end/66867
1184         * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
1185         expand_ifn_atomic_compare_exchange): New functions.
1186         * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
1187         * tree.h (build_call_expr_internal_loc): Rename to ...
1188         (build_call_expr_internal_loc_array): ... this.  Fix up type of
1189         last argument.
1190         * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
1191         * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
1192         ATOMIC_COMPARE_EXCHANGE result.
1193         * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
1194         * gimple-fold.h (optimize_atomic_compare_exchange_p,
1195         fold_builtin_atomic_compare_exchange): New prototypes.
1196         * gimple-fold.c (optimize_atomic_compare_exchange_p,
1197         fold_builtin_atomic_compare_exchange): New functions..
1198         * tree-ssa.c (execute_update_addresses_taken): If
1199         optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
1200         of call when finding addressable vars, and if such var becomes
1201         non-addressable, call fold_builtin_atomic_compare_exchange.
1202
1203 2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
1204
1205         PR target/71670
1206         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
1207         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
1208
1209 2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
1210
1211         * config/rs6000/rs6000.md ('type' attribute): Add
1212         veclogical,veccmpfx,vecexts,vecmove insn types.
1213         (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
1214         copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
1215         p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
1216         (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
1217         *nabs<mode>2_hw): Change type to vecmove.
1218         (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
1219         *boolcc<mode>3_internal, *eqv<mode>3_internal,
1220         *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
1221         *ieee_128bit_vsx_abs<mode>2_internal,
1222         *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
1223         *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
1224         *ieee128_mtvsrd_32bit): Change type to veclogical.
1225         (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
1226         *movdi_internal32, *movdi_internal64): Update insn types.
1227         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
1228         vsx_extract_<mode>): Change type to veclogical.
1229         (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
1230         (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
1231         *vsx_sign_extend_si_v2di): Change type to vecexts.
1232         * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
1233         type to veclogical.
1234         (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
1235         *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
1236         *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
1237         (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
1238         * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1239         negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
1240         * config/rs6000/40x.md (ppc405-float): Add fpsimple.
1241         * config/rs6000/440.md (ppc440-fp): Add fpsimple.
1242         * config/rs6000/476.md (ppc476-fp): Add fpsimple.
1243         * config/rs6000/601.md (ppc601-fp): Add fpsimple.
1244         * config/rs6000/603.md (ppc603-fp): Add fpsimple.
1245         * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
1246         * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
1247         (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
1248         * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
1249         (ppc7450-vecsimple): Add veclogical, vecmove.
1250         (ppc7450-veccmp): Add veccmpfx.
1251         * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
1252         vecmove.
1253         (ppc8540_vector_compare): Add veccmpfx.
1254         * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
1255         * config/rs6000/cell.md (cell-fp): Add fpsimple.
1256         (cell-vecsimple): Add veclogical, vecmove.
1257         (cell-veccmp): Add veccmpfx.
1258         * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
1259         * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
1260         veccmpfx.
1261         * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
1262         * config/rs6000/power4.md (power4-fp): Add fpsimple.
1263         (power4-vecsimple): Add veclogical, vecmove.
1264         (power4-veccmp): Add veccmpfx.
1265         * config/rs6000/power5.md (power5-fp): Add fpsimple.
1266         * config/rs6000/power6.md (power6-fp): Add fpsimple.
1267         (power6-vecsimple): Add veclogical, vecmove.
1268         (power6-veccmp): Add veccmpfx.
1269         * config/rs6000/power7.md (power7-fp): Add fpsimple.
1270         (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
1271         * config/rs6000/power8.md (power8-fp): Add fpsimple.
1272         (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
1273         * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
1274         * config/rs6000/titan.md (titan_fp): Add fpsimple.
1275         * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
1276         fpsimple.
1277         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
1278
1279 2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
1280
1281         PR target/71656
1282         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
1283         OPTION_MASK_P9_DFORM_VECTOR.
1284         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
1285         disable -mpower9-dform-vector when using reload.
1286         (quad_address_p): Remove 'gpr_p' argument and all associated code.
1287         New 'strict' argument.  Update all callers.  Add strict addressing
1288         support.
1289         (rs6000_legitimate_offset_address_p): Remove call to
1290         virtual_stack_registers_memory_p.
1291         (rs6000_legitimize_reload_address): Add quad address support.
1292         (rs6000_legitimate_address_p): Move call to quad_address_p above
1293         call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
1294         to account for new strict usage.
1295         (rs6000_output_move_128bit): Adjust quad_address_p args to account
1296         for new strict usage.
1297         * config/rs6000/predicates.md (quad_memory_operand): Likewise.
1298
1299 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
1300
1301         PR target/70902
1302         PR target/71453
1303         PR target/71555
1304         PR target/71596
1305         PR target/71657
1306         * config/i386/i386.c (ix86_spill_class): Disable condition to
1307         always return NO_REGS.
1308
1309 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
1310
1311         * predict.c: Include gimple-pretty-print.h
1312         (predicted_by_loop_heuristics_p): Check also
1313         PRED_LOOP_EXIT_WITH_RECURSION
1314         (predict_loops): Find self recursive calls and use special purpose
1315         predictors for them; dump log about decisions.
1316         (pass_profile::execute): Dump info about #of iterations.
1317         * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
1318         (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
1319
1320 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
1321
1322         * config/pa/pa.c (pa_output_indirect_call): Rework to combine
1323         output_asm_insn calls and shorten long lines.  Output .CALL
1324         argument descriptor using pa_output_arg_descriptor.  Add various
1325         inline $$dyncall and other optimizations.
1326         (pa_attr_length_indirect_call): Adjust ordering and lengths.
1327
1328 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
1329
1330         PR tree-optimization/71643
1331         * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
1332         EH preds.
1333
1334         * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
1335         leak a bitmap if dep_bb is NULL.
1336
1337         PR tree-optimization/71631
1338         * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
1339         to rewrite_expr_tree even if negate_result, move new_lhs var
1340         declaration and initialization earlier, for powi_result set afterwards
1341         new_lhs to lhs.  For negate_result, use new_lhs instead of tmp
1342         if new_lhs != lhs, and don't shadow gsi var.
1343
1344 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
1345
1346         * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
1347         Add in_loop parameter.
1348         (predict_loops): Add loop guard heuristics.
1349         * predict.def (PRED_LOOP_GUARD): New heuristics.
1350
1351 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
1352
1353         * predict.c: Include ipa-utils.h
1354         (tree_bb_level_prediction): Predict recursive calls.
1355         (tree_estimate_probability_bb): Skip inexpensive calls for call
1356         predictor.
1357         * predict.def (PRED_RECURSIVE_CALL): New.
1358
1359 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1360
1361         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
1362         (BU_FLOAT128_1): Likewise.
1363         (FABSQ): Likewise.
1364         (COPYSIGNQ): Likewise.
1365         (RS6000_BUILTIN_NANQ): Likewise.
1366         (RS6000_BUILTIN_NANSQ): Likewise.
1367         (RS6000_BUILTIN_INFQ): Likewise.
1368         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
1369         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
1370         (TARGET_FOLD_BUILTIN): New #define.
1371         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
1372         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
1373         (rs6000_fold_builtin): New target hook implementation, handling
1374         folding of 128-bit NaNs and infinities.
1375         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
1376         entries are filled in to avoid problems during bootstrap
1377         self-test; define builtins for 128-bit NaNs and infinities.
1378         (rs6000_opt_mask): Add entry for float128.
1379         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
1380         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
1381         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
1382         (const_str_type_node): New #define.
1383         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
1384         to a define_expand that dispatches to either copysign<mode>3_soft
1385         or copysign<mode>3_hard.
1386         (copysign<mode>3_hard): Rename from copysign<mode>3.
1387         (copysign<mode>3_soft): New define_insn.
1388         * doc/extend.texi: Document new builtins.
1389
1390 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1391
1392         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
1393         PRIu64 instead of lu.
1394
1395 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
1396
1397         PR debug/71642
1398         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
1399         copy the type name.
1400
1401 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1402
1403         PR tree-optimization/71647
1404         * omp-low.c (lower_rec_input_clauses): Convert
1405         omp_clause_aligned_alignment (c) to size_type_node for the
1406         last argument of __builtin_assume_aligned.
1407
1408 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1409
1410         * configure.ac (calling ___tls_get_addr via GOT): New
1411         assembler/linker check.
1412         (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
1413         assembler and linker supports calling ___tls_get_addr via GOT.
1414         Otherise, defined to 0.
1415         * config.in: Regenerated.
1416         * configure: Likewise.
1417         * config/i386/constraints.md (Yb): New constraint.
1418         * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
1419         (REG_CLASS_NAMES): Likewise.
1420         (REG_CLASS_CONTENTS): Likewise.
1421         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
1422         the b constraint with the Yb constraint.  Call ___tls_get_addr
1423         via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
1424         is 1.
1425         (*tls_local_dynamic_base_32_gnu): Likewise.
1426         (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
1427         GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
1428         (*tls_local_dynamic_base_64_<mode>): Likewise.
1429
1430 2016-06-24  Martin Liska  <mliska@suse.cz>
1431
1432         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
1433         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
1434         few functions.
1435         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
1436         argument to true if the expected number of iterations is
1437         loop-based.
1438
1439 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
1440
1441         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
1442         assemble for 32bit target.
1443         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
1444         and $ld_ix86_gld_32_opt to link for 32bit target.
1445         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
1446         * configure: Regenerate.
1447
1448 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1449
1450         * config/arm/arm.c (int_log2): Delete definition and prototype.
1451         (shift_op): Use exact_log2 instead of int_log2.
1452         (vfp3_const_double_for_fract_bits): Likewise.
1453
1454 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1455
1456         * internal-fn.c (expand_arith_set_overflow): New function.
1457         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
1458         Use it.
1459         (expand_arith_overflow_result_store): Likewise.  Handle precision
1460         smaller than mode precision.
1461         * tree-vrp.c (extract_range_basic): For imag part, handle
1462         properly signed 1-bit precision result.
1463         * doc/extend.texi (__builtin_add_overflow): Document that last
1464         argument can't be pointer to enumerated or boolean type.
1465         (__builtin_add_overflow_p): Document that last argument can't
1466         have enumerated or boolean type.
1467
1468 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1469             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1470
1471         * config/rs6000/predicates.md (splat_input_operand): Rework.
1472         Don't allow constants, since the insns that use this predicate
1473         don't support constants.  Constants are handled by other insns
1474         that are created via combine.  During and after register
1475         allocation, only allow indexed or indirect addresses, and not
1476         general addresses.  Only allow modes supported by the hardware.
1477         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
1478         comment.  Move check for using VSPLTIS<x> to a common location,
1479         instead of doing it in two different places.
1480
1481 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
1482
1483         * config/i386/driver-i386.c (host_detect_local_cpu): Set
1484         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
1485         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
1486         signature_CENTAUR_ebx.
1487
1488 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
1489
1490         PR target/66232
1491         PR target/67400
1492         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
1493         (as_ix86_gas_32_opt): This.
1494         (ld_ix86_tls_ldm_opt): Renamed to ...
1495         (ld_ix86_gld_32_opt): This.
1496         (R_386_TLS_LDM reloc): Updated.
1497         (R_386_GOT32X reloc): New assembler/linker check.
1498         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
1499         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
1500         defined to 0.
1501         * config.in: Regenerated.
1502         * configure: Likewise.
1503         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
1504         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
1505         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
1506         if ix86_force_load_from_GOT_p returns true.
1507         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
1508         ix86_force_load_from_GOT_p returns true.
1509         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
1510         the external function address via the GOT slot.
1511         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
1512         HAVE_AS_IX86_GOT32X before returning false.
1513         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
1514         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
1515
1516 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
1517
1518         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
1519
1520 2016-06-23  Andi Kleen  <ak@linux.intel.com>
1521
1522         * Makefile.in: Regenerate.
1523         * doc/install.texi: Document autoprofiledbootstrap.
1524
1525 2016-06-23  Andi Kleen  <ak@linux.intel.com>
1526
1527         * config/i386/gcc-auto-profile: New file.
1528
1529 2016-06-23  Martin Liska  <mliska@suse.cz>
1530
1531         PR middle-end/71619
1532         * predict.c (predict_loops): Revert the hunk that was removed
1533         in r237103.
1534
1535 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
1536
1537         * config.gcc: Add support for arm*-*-phoenix* targets.
1538         * config/arm/t-phoenix: New.
1539         * config/phoenix.h: New.
1540
1541 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
1542             H.J. Lu  <hongjiu.lu@intel.com>
1543
1544         PR target/67400
1545         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
1546         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
1547         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
1548         ix86_force_load_from_GOT_p returns true.
1549         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
1550         ix86_force_load_from_GOT_p returns true.
1551         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
1552         ix86_force_load_from_GOT_p returns true.
1553         (ix86_expand_move): Load the external function address via the
1554         GOT slot if ix86_force_load_from_GOT_p returns true.
1555         * config/i386/predicates.md (x86_64_immediate_operand): Return
1556         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
1557         (x86_64_zext_immediate_operand): Ditto.
1558
1559 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
1560
1561         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
1562
1563 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1564
1565         PR c/70339
1566         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
1567         * diagnostic.c (pedwarn_at_rich_loc): New function.
1568         * spellcheck.h (best_match::best_match): Add a
1569         "best_distance_so_far" optional parameter.
1570         (best_match::set_best_so_far): New method.
1571         (best_match::get_best_distance): New accessor.
1572         (best_match::get_best_candidate_length): New accessor.
1573
1574 2016-06-22  Nick Clifton  <nickc@redhat.com>
1575
1576         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
1577         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
1578         modes are accepted as well.
1579         (ucompare_loc_descriptor): Likewise.
1580         (minmax_loc_descriptor): Likewise.
1581         (clz_loc_descriptor): Likewise.
1582         (popcount_loc_descriptor): Likewise.
1583         (bswap_loc_descriptor): Likewise.
1584         (rotate_loc_descriptor): Likewise.
1585         (mem_loc_descriptor): Likewise.
1586         (loc_descriptor): Likewise.
1587
1588 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1589
1590         * common.opt (fdiagnostics-parseable-fixits): New option.
1591         * diagnostic.c: Include "selftest.h".
1592         (print_escaped_string): New function.
1593         (print_parseable_fixits): New function.
1594         (diagnostic_report_diagnostic): Call print_parseable_fixits.
1595         (selftest::assert_print_escaped_string): New function.
1596         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
1597         (selftest::test_print_escaped_string): New function.
1598         (selftest::test_print_parseable_fixits_none): New function.
1599         (selftest::test_print_parseable_fixits_insert): New function.
1600         (selftest::test_print_parseable_fixits_remove): New function.
1601         (selftest::test_print_parseable_fixits_replace): New function.
1602         (selftest::diagnostic_c_tests): New function.
1603         * diagnostic.h (struct diagnostic_context): Add field
1604         "parseable_fixits_p".
1605         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
1606         -fdiagnostics-parseable-fixits.
1607         (-fdiagnostics-parseable-fixits): New option.
1608         * opts.c (common_handle_option): Handle
1609         -fdiagnostics-parseable-fixits.
1610         * selftest-run-tests.c (selftest::run_tests): Call
1611         selftest::diagnostic_c_tests.
1612         * selftest.h (selftest::diagnostic_c_tests): New prototype.
1613
1614 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
1615
1616         PR tree-optimization/71488
1617         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
1618         comparison of boolean vectors.
1619         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
1620         of boolean vectors using bitwise operations.
1621
1622 2016-06-22  Andreas Schwab  <schwab@suse.de>
1623
1624         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
1625         Remove declaration.
1626
1627 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
1628
1629         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
1630
1631 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1632
1633         * config/i386/i386.c (print_reg): Emit an error message on attempt to
1634         print FLAGS_REG.
1635
1636 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1637
1638         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
1639         * config/arm/arm-cores.def (cortex-a73): New entry.
1640         (cortex-a73.cortex-a35): Likewise.
1641         (cortex-a73.cortex-a53): Likewise.
1642         * config/arm/arm-tables.opt: Regenerate.
1643         * config/arm/arm-tune.md: Likewise.
1644         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
1645         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
1646         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
1647         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
1648         * doc/invoke.texi (ARM Options): Document cortex-a73,
1649         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
1650
1651 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1652
1653         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
1654         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
1655         (cortex-a73.cortex-a35): Likewise.
1656         (cortex-a73.cortex-a53): Likewise.
1657         * config/aarch64/aarch64-tune.md: Regenerate.
1658         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
1659         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
1660         -mcpu and -mtune.
1661
1662 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1663
1664         * configure.ac (gcc_cv_as_compress_debug): Remove
1665         --compress-debug-sections as extra as switch.
1666         Handle gas --compress-debug-sections=type.
1667         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
1668         Handle gld --compress-debug-sections=type.
1669         * configure: Regenerate.
1670
1671 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
1672
1673         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
1674
1675 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
1676
1677         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
1678         (do_rewrite): likewise.
1679
1680 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1681
1682         * common/config/mep/mep-common.c: Remove.
1683         * config.gcc: Remove mep-* support.
1684         * config/mep/constraints.md: Remove.
1685         * config/mep/default.h: Remove.
1686         * config/mep/intrinsics.h: Remove.
1687         * config/mep/intrinsics.md: Remove.
1688         * config/mep/ivc2-template.h: Remove.
1689         * config/mep/mep-c5.cpu: Remove.
1690         * config/mep/mep-core.cpu: Remove.
1691         * config/mep/mep-default.cpu: Remove.
1692         * config/mep/mep-ext-cop.cpu: Remove.
1693         * config/mep/mep-intrin.h: Remove.
1694         * config/mep/mep-ivc2.cpu: Remove.
1695         * config/mep/mep-pragma.c: Remove.
1696         * config/mep/mep-protos.h: Remove.
1697         * config/mep/mep.c: Remove.
1698         * config/mep/mep.cpu: Remove.
1699         * config/mep/mep.h: Remove.
1700         * config/mep/mep.md: Remove.
1701         * config/mep/mep.opt: Remove.
1702         * config/mep/predicates.md: Remove.
1703         * config/mep/t-mep: Remove.
1704         * doc/install.texi: Remove mep-* documentation.
1705         * doc/md.texi: Likewise.
1706
1707 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1708
1709         * config.gcc: Remove support for avr-rtems.
1710         * config/avr/gen-avr-mmcu-specs.c: Likewise.
1711         * config/avr/rtems.h: Remove.
1712         * config/avr/t-rtems: Remove.
1713
1714 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1715
1716         * config.gcc: Remove m32r-rtems support.
1717         * config/m32r/rtems.h: Remove.
1718
1719 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1720
1721         * config.gcc: Remove h8300-rtems support.
1722         * config/h8300/rtems.h: Remove.
1723         * config/h8300/t-rtems: Remove.
1724
1725 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1726
1727         * config.gcc: Remove support for knetbsd.
1728         * configure.ac: Likewise.
1729         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
1730         * config/knetbsd-gnu.h: Remove.
1731         * configure: Regenerate.
1732
1733 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1734
1735         * config.gcc: Remove support for openbsd 2 and 3.
1736         * config/openbsd-oldgas.h: Remove.
1737
1738 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1739
1740         * config.gcc: Remove interix support.
1741         * config/i386/i386-interix.h: Remove.
1742         * config/i386/interix.opt: Remove.
1743         * config/i386/t-interix: Remove.
1744         * configure: Regenerate.
1745         * configure.ac: Remove interix support.
1746         * doc/install.texi: Remove interix documentation.
1747
1748 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1749
1750         * config/rs6000/rs6000.h: Add conditional preprocessing directives
1751         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
1752         not defined.
1753
1754 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1755
1756         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
1757         they are both PLACEHOLDER_EXPRs.
1758
1759 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1760
1761         * stor-layout.c (layout_type): Move setting complex MODE to
1762         layout_type, instead of setting it ahead of time by the caller.
1763         * tree.c (build_complex_type): Likewise.
1764
1765 2016-06-21  Martin Liska  <mliska@suse.cz>
1766
1767         * predict.c (force_edge_cold): Replace imposisble with
1768         impossible.
1769
1770 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
1771
1772         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
1773         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
1774
1775 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
1776
1777         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
1778
1779 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1780             Ilya Enkovich  <ilya.enkovich@intel.com>
1781
1782         PR target/71549
1783         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
1784         New member function to convert V1TImode register to SUBREG
1785         TImode in debug insn.
1786         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
1787         after changing register mode to V1TImode.
1788
1789 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
1790
1791         * config/aarch64/aarch64-cores.def (vulcan): New core.
1792         * config/aarch64/aarch64-tune.md: Regenerate.
1793         * doc/invoke.texi: Document vulcan as an available option.
1794
1795 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1796
1797         * cse.c (canon_asm_operands): New function extracted from...
1798         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
1799         either standalone or member of a PARALLEL.
1800
1801 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
1802
1803         PR target/30417
1804         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
1805         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
1806         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
1807
1808 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
1809
1810         PR target/71103
1811         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
1812         constant addresses if can_create_pseudo_p.
1813
1814 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
1815
1816         PR tree-optimization/71588
1817         * tree-ssa-strlen.c (valid_builtin_call): New function.
1818         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
1819         it.
1820
1821 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
1822
1823         PR middle-end/71581
1824         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
1825         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
1826         for conversion of scalar user var to complex type and use the
1827         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
1828         punt.
1829
1830         PR rtl-optimization/71591
1831         * toplev.c (toplev::run_self_tests): If no_backend, complain and
1832         don't run any tests.
1833
1834 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
1835
1836         PR target/71571
1837         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
1838         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
1839         space for PIC with non-v32 and the common non-PIC "jump".
1840
1841 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
1842
1843         PR target/71559
1844         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
1845         returned values and add UN*/LTGT/*ORDERED cases with values matching
1846         D operand modifier on vcmp for AVX.
1847
1848 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1849
1850         * config/aarch64/aarch64.opt
1851         (mpc-relative-literal-loads): Rename internal option name.
1852         * config/aarch64/aarch64.c
1853         (aarch64_nopcrelative_literal_loads): Rename to
1854         aarch64_pcrelative_literal_loads.
1855         (aarch64_expand_mov_immediate): Likewise.
1856         (aarch64_secondary_reload): Likewise.
1857         (aarch64_can_use_per_function_literal_pools_p): Likewise.
1858         (aarch64_override_options_after_change_1): Rename and simplify logic.
1859         (aarch64_classify_symbol): Merge large model checks into switch,
1860         remove pc-relative load check.
1861
1862 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1863
1864         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
1865         costs relative to the cost of a register move.
1866
1867 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1868
1869         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
1870         (vcvt_n_f64_u64): Likewise.
1871         (vcvt_n_s64_f64): Likewise.
1872         (vcvt_n_u64_f64): Likewise.
1873         (vcvt_f64_s64): Likewise.
1874         (vrecpe_f64): Likewise.
1875         (vcvt_f64_u64): Likewise.
1876         (vrecps_f64): Likewise.
1877
1878 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1879
1880         * config/aarch64/aarch64.md
1881         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
1882         iterators.
1883         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
1884         attributes.
1885         * config/aarch64/aarch64-builtins.c
1886         (aarch64_types_binop_uss_qualifiers): Delete.
1887         (TYPES_BINOP_USS): Likewise.
1888         (aarch64_types_binop_sus_qualifiers): Likewise.
1889         (TYPES_BINOP_SUS): Likewise.
1890         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
1891         (TYPES_FCVTIMM_SUS): Likewise.
1892         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
1893         rather than BINOP.
1894         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
1895         (fcvtzs): Use SHIFTIMM rather than BINOP.
1896         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
1897
1898 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
1899
1900         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
1901         costs relative to the cost of a register move.
1902
1903 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1904
1905         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
1906         Allow scalar/single vector modes to be tieable.
1907
1908 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
1909
1910         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
1911
1912 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1913
1914         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
1915         "alignement".
1916         * tree.h (TYPE_ALIGN): Likewise.
1917
1918 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
1919
1920         PR target/71103
1921         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
1922
1923 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
1924
1925         * config/avr/avr.c (avr_print_operand): Fix "format not a string
1926         literal" build warnings.
1927         (avr_print_operand_address): Dito.
1928
1929 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
1930
1931         PR target/71375
1932         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
1933         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
1934
1935 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
1936
1937         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
1938
1939 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
1940
1941         PR bootstrap/71435
1942         * reload1.c (reload): Pass 0 to finish_spills when called because
1943         update_eliminables_and_spill returns true and remove did_spill.
1944         (finish_spills): Adjust comment and document GLOBAL parameter.
1945
1946 2016-06-17  DJ Delorie  <dj@redhat.com>
1947
1948         PR target/71338
1949         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
1950         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
1951         (umulqihi3_virt): Likewise.
1952         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
1953         (umulqihi3_real): Likewise.
1954
1955 2016-06-17  Martin Liska  <mliska@suse.cz>
1956
1957         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
1958
1959 2016-06-17  Martin Liska  <mliska@suse.cz>
1960
1961         * predict.def: PRED_LOOP_EXIT from 92 to 85.
1962
1963 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
1964
1965         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
1966         __FAST_MATH__.
1967         (vaddq_f32): Likewise.
1968         (vmul_f32): Likewise.
1969         (vmulq_f32): Likewise.
1970         (vsub_f32): Likewise.
1971         (vsubq_f32): Likewise.
1972
1973 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
1974
1975         PR tree-optimization/71347
1976         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
1977         cost for all uses in group.
1978
1979 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
1980
1981         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
1982         insert gimple seq if it's not empty.
1983
1984 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
1985
1986         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
1987         member OFFSET.
1988         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
1989         rather than OFFSET.
1990         (comp_dr_with_seg_len_pair): Ditto.
1991         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
1992         struct dr_with_seg_len_pair against DR_OFFSET.
1993         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
1994         DR_OFFSET directly.
1995
1996 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1997
1998         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
1999
2000 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
2001
2002         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
2003         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
2004         (pa_output_millicode_call): Likewise.
2005         (pa_output_call): Likewise.
2006         (pa_output_indirect_call): Likewise.
2007         (pa_asm_output_mi_thunk): Likewise.
2008
2009 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2010
2011         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
2012
2013 2016-06-16  Martin Liska  <mliska@suse.cz>
2014
2015         * predict.c (combine_predictions_for_insn): When we find a first
2016         match predictor, we should consider just predictors with
2017         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
2018         DS theory predictor.
2019         (combine_predictions_for_bb): Likewise.
2020
2021 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
2022
2023         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
2024         with base of reference to struct.
2025
2026 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
2027
2028         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
2029
2030 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2031
2032         PR target/71151
2033         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
2034         progmem_swtable_section.
2035         (progmem_swtable_section): Remove.
2036         (avr_asm_function_rodata_section): Remove.
2037         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
2038         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
2039
2040 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
2041
2042         * config/i386/driver-i386.c (host_detect_local_cpu): Set
2043         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
2044         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
2045         signature_CENTAUR_ebx.
2046         * config/i386/i386.c (ix86_option_override_internal): Add
2047         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
2048         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
2049         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
2050
2051 2016-06-16  Martin Liska  <mliska@suse.cz>
2052
2053         * predict.def: Add fortran loop preheader predictor.
2054         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
2055         fold IFN_BUILTIN_EXPECT with a known constant argument.
2056
2057 2016-06-16  Martin Liska  <mliska@suse.cz>
2058
2059         * predict.def: Add 'Fortran' to display text of all
2060         PRED_FORTRAN_* predictors.
2061
2062 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
2063
2064         PR target/71242
2065         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
2066         [IA64_BUILTIN_NANSQ]: Ditto.
2067         (ia64_fold_builtin): New function.
2068         (TARGET_FOLD_BUILTIN): New define.
2069         (ia64_init_builtins) Declare const_string_type node.
2070         Add __builtin_nanq and __builtin_nansq builtin functions.
2071         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
2072
2073 2016-06-16  Nick Clifton  <nickc@redhat.com>
2074
2075         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
2076         MSP430_HWMULT_ prefix to enum values.
2077         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
2078         * config/msp430/msp430.c: Update use of enum values.
2079         * config/msp430/msp430.md: Likewise.
2080         * config/msp430/msp430.opt: Likewise.
2081
2082 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
2083
2084         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
2085         of comparsions in the last iteration.
2086
2087 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
2088             Joern Rennecke  <joern.rennecke@embecosm.com>
2089
2090         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
2091         addresses.
2092         (arc_needs_pcl_p): Add GOTOFFPC.
2093         (arc_legitimate_pic_addr_p): Likewise.
2094         (arc_output_pic_addr_const): Likewise.
2095         (arc_legitimize_pic_address): Generate a pc-relative address using
2096         GOTOFFPC.
2097         (arc_output_libcall): Use @pcl syntax.
2098         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
2099         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
2100         (*movsi_insn): Use @pcl syntax.
2101         (doloop_begin_i): Likewise.
2102
2103 2016-06-16  Martin Liska  <mliska@suse.cz>
2104
2105         * predict.def: Define a new predictor.
2106
2107 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
2108
2109         * config/arc/arc.opt (mtp-regno): Update text.
2110
2111 2016-06-16  Renlin Li  <renlin.li@arm.com>
2112
2113         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
2114
2115 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
2116
2117         PR target/71554
2118         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
2119         (setcc + and peephole2): Likewise.
2120
2121         PR rtl-optimization/71532
2122         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
2123         memory slots.
2124
2125 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
2126
2127         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
2128         DImode constants with XXSPLTIB in vector registers.
2129         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
2130         vsx_extract_<mode>_internal{1,2} into a single insn that handles
2131         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
2132         extraction of the element at the top of the register as a scalar
2133         value.
2134         (vsx_extract_<mode>_internal1): Likewise.
2135         (vsx_extract_<mode>_internal2): Likewise.
2136         * config/rs6000/constraints.md (wi constraint): Remove a comment
2137         about DImode not being allowed in Altivec registers.
2138         (wB constraint): New constraint for constants that can be
2139         generated in Altivec registers with VSPLTISW/VUPKHSW.
2140         * config/rs6000/predicates.md (xxspltib_constant_split): Update
2141         comments.
2142         (xxspltib_constant_nosplit): Likewise.
2143         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
2144         support for -mupper-regs-di to enable DImode to go into Altivec
2145         registers.
2146         (POWERPC_MASKS): Likewise.
2147         (power7 cpu): Likewise.
2148         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
2149         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
2150         for DImode being allowed in Altivec registers.  Update wi/wj
2151         constraints.  Set scalar_in_vmx_p flag.
2152         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
2153         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
2154         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
2155         (rs6000_opt_masks): Add -mupper-regs-di.
2156         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
2157         direct move to use wi and not wj.
2158         (lfiwzx): Likewise.
2159         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
2160         alternative.
2161         (floatunssi<mode>2_lfiwzx_mem): Likewise.
2162         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
2163         any VSX register, instead of just Altivec registers, to allow
2164         either operand to be an Altivec register or both.
2165         (fixuns_trunc<mode>di2_fctiduz): Likewise.
2166         (movdi_internal32): Add support for -mupper-regs-di.  Add support
2167         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
2168         the alternatives and attributes to be lined up to be easier to
2169         read.
2170         (movdi_internal64): Likewise.
2171         (64-bit DImode splitters): Change predicates to only split loading
2172         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
2173         load constants in ISA 3.0 or ISA 2.07 respectively.
2174         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2175         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
2176         mention -mcpu=power9 sets these options.
2177         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
2178         wB constraint.
2179
2180 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
2181
2182         PR target/67353
2183         * config/avr/avr.c (avr_set_current_function): Warn misspelled
2184         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
2185         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
2186         by default to warn misspelled interrupt/ signal handler.
2187         * doc/invoke.texi (AVR Options): Document it. Update description
2188         for -nodevicelib option.
2189
2190 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2191
2192         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
2193         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
2194         (aarch64_<sur>shll2_n<mode>): Likewise.
2195
2196 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
2197
2198         PR middle-end/71529
2199         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
2200         DECL_CONTEXT for copied arguments.
2201
2202 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
2203
2204         PR tree-optimization/71483
2205         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
2206         for slp
2207
2208 2016-06-15  Martin Liska  <mliska@suse.cz>
2209
2210         * predict.c (tree_predict_by_opcode): Call predict_edge_def
2211         instead of predict_edge w/o a probability.
2212
2213 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
2214
2215         PR tree-optimization/71439
2216         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
2217         live PHIs.
2218
2219 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2220
2221         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
2222         register subregs in SET_SRC.
2223
2224 2016-06-15  Richard Biener  <rguenther@suse.de>
2225
2226         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
2227         store restrictions.
2228
2229 2016-06-15  Richard Biener  <rguenther@suse.de>
2230
2231         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
2232         not consider dependences between accesses that belong to the
2233         same group.
2234         (vect_analyze_data_ref_dependences): Do not analyze read-read
2235         or self-dependences.
2236
2237 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2238
2239         * spellcheck-tree.c: Include spellcheck-tree.h rather than
2240         spellcheck.h.
2241         (find_closest_identifier): Reimplement in terms of
2242         best_match<tree,tree>.
2243         * spellcheck-tree.h: New file.
2244         * spellcheck.c (struct edit_distance_traits<const char *>): New
2245         struct.
2246         (find_closest_string): Reimplement in terms of
2247         best_match<const char *, const char *>.
2248         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
2249         overload to spellcheck-tree.h.
2250         (find_closest_identifier): Likewise.
2251         (struct edit_distance_traits<T>): New template.
2252         (class best_match): New class.
2253
2254 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2255
2256         * selftest-run-tests.c (selftest::run_tests): Call
2257         selftest::spellcheck_tree_c_tests.
2258         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
2259         * spellcheck-tree.c: Include selftest.h and stringpool.h.
2260         (selftest::test_find_closest_identifier): New function.
2261         (selftest::spellcheck_tree_c_tests): New function.
2262         * spellcheck.c (selftest::test_find_closest_string): Verify that
2263         the order of the vec does not affect the results for this case.
2264         (selftest::test_data): New array.
2265         (selftest::test_metric_conditions): New function.
2266         (selftest::spellcheck_c_tests): Add a test of case-comparison.
2267         Call selftest::test_metric_conditions.
2268
2269 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2270
2271         * config/rs6000/rs6000-builtin.def (commentary): Typo.
2272         (BU_P9_MISC_1): Likewise.
2273         (BU_P9_64BIT_MISC_0): Likewise.
2274         (BU_P9_MISC_0): Likewise.
2275
2276 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2277
2278         * gcc-rich-location.c
2279         (gcc_rich_location::add_fixit_misspelled_id): New method.
2280         * gcc-rich-location.h
2281         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
2282
2283 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
2284
2285         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
2286         FreeBSD 11 and above.
2287
2288 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
2289
2290         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
2291
2292 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2293
2294         * expmed.h: Close parenthesis in "at your option" in copyright
2295         boilerplate.
2296         * lower-subreg.h: Likewise.
2297
2298 2016-06-14  Richard Biener  <rguenther@suse.de>
2299
2300         PR middle-end/71526
2301         * genmatch.c (expr::gen_transform): Use in_type for comparisons
2302         if available.
2303
2304 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2305
2306         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
2307         New function.
2308         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
2309         mask+shift version.
2310         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
2311         New prototype.
2312         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
2313         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
2314
2315 2016-06-14  Richard Biener  <rguenther@suse.de>
2316
2317         PR tree-optimization/71522
2318         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
2319         copying into float copying.
2320
2321 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
2322
2323         PR tree-optimization/71520
2324         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
2325         (replace_block_by): Move user labels from bb1 to bb2.
2326
2327 2016-06-14  Richard Biener  <rguenther@suse.de>
2328
2329         PR middle-end/71310
2330         PR bootstrap/71510
2331         * expr.h (get_bit_range): Declare.
2332         * expr.c (get_bit_range): Export.
2333         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
2334         word_mode again to constrain the bitfield access.
2335
2336 2016-06-14  Richard Biener  <rguenther@suse.de>
2337
2338         PR tree-optimization/71521
2339         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
2340         division int_const_binop against zero divisor.
2341
2342 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2343
2344         * config/i386/i386.md (signbittf2): New expander.
2345         * config/i386/sse.md (ptesttf2): New insn pattern.
2346
2347 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2348
2349         PR bootstrap/71481
2350         * input.c (selftest::test_reading_source_line): Avoid reading from
2351         __FILE__ by creating a tempfile with known content and reading
2352         from that instead.
2353
2354 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2355
2356         * pretty-print.c (assert_pp_format_colored): Skip the test if
2357         GCC_COLORS is set.
2358         (test_pp_format): Remove comment about GCC_COLORS.
2359
2360 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2361
2362         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
2363         * pretty-print.c (assert_pp_format_va): Add location param and use
2364         it with ASSERT_STREQ_AT.
2365         (assert_pp_format): Add location param and pass it to
2366         assert_pp_format_va.
2367         (assert_pp_format_colored): Likewise.
2368         (ASSERT_PP_FORMAT_1): New.
2369         (ASSERT_PP_FORMAT_2): New.
2370         (ASSERT_PP_FORMAT_3): New.
2371         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
2372         explicitly, or implicitly via the above macros.
2373         * selftest.c (selftest::pass): Use a selftest::location rather
2374         than file and line.
2375         (selftest::fail): Likewise.  Print the function name.
2376         (selftest::fail_formatted): Likewise.
2377         (selftest::assert_streq): Use a selftest::location rather than
2378         file and line.
2379         * selftest.h (selftest::location): New struct.
2380         (SELFTEST_LOCATION): New macro.
2381         (selftest::pass): Accept a const location & rather than file
2382         and line.
2383         (selftest::fail): Likewise.
2384         (selftest::fail_formatted): Likewise.
2385         (selftest::assert_streq): Likewise.
2386         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
2387         (ASSERT_FALSE): Likewise.
2388         (ASSERT_EQ): Likewise.
2389         (ASSERT_NE): Likewise.
2390         (ASSERT_STREQ): Likewise.
2391         (ASSERT_PRED1): Likewise.
2392         (ASSERT_STREQ_AT): New macro.
2393
2394 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2395
2396         * selftest.c (selftest::fail_formatted): New function.
2397         (selftest::assert_streq): New function.
2398         * selftest.h (selftests::fail_formatted): New decl.
2399         (selftest::assert_streq): New decl.
2400         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
2401
2402 2016-06-13  Jeff Law  <law@redhat.com>
2403
2404         PR tree-optimization/71403
2405         * tree-ssa-threadbackward.c
2406         (convert_and_register_jump_thread_path): No longer accept reference
2407         to path.  Do not pop items off the path anymore.
2408         (fsm_find_control_statement_thread_paths): Do not allow threading
2409         to a deeper loop nest.  Pop the last item off the path here rather
2410         than in convert_and_register_jump_thread_path.
2411
2412 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2413             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
2414
2415         [AArch64] Emit division using the Newton series
2416
2417         * config/aarch64/aarch64-protos.h
2418         (cpu_approx_modes): Add new member "division".
2419         (aarch64_emit_approx_div): Declare new function.
2420         * config/aarch64/aarch64.c
2421         (generic_approx_modes): New member "division".
2422         (exynosm1_approx_modes): Likewise.
2423         (xgene1_approx_modes): Likewise.
2424         (aarch64_emit_approx_div): Define new function.
2425         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
2426         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
2427         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
2428         * doc/invoke.texi (-mlow-precision-div): Describe new option.
2429
2430 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2431             Wilco Dijkstra  <wilco.dijkstra@arm.com>
2432
2433         [AArch64] Emit square root using the Newton series
2434
2435         * config/aarch64/aarch64-protos.h
2436         (aarch64_emit_approx_rsqrt): Replace with new function
2437         "aarch64_emit_approx_sqrt".
2438         (cpu_approx_modes): New member "sqrt".
2439         * config/aarch64/aarch64.c
2440         (generic_approx_modes): New member "sqrt".
2441         (exynosm1_approx_modes): Likewise.
2442         (xgene1_approx_modes): Likewise.
2443         (aarch64_emit_approx_rsqrt): Replace with new function
2444         "aarch64_emit_approx_sqrt".
2445         (aarch64_override_options_after_change_1): Handle new option.
2446         * config/aarch64/aarch64-simd.md
2447         (rsqrt<mode>2): Use new function instead.
2448         (sqrt<mode>2): New expansion and insn definitions.
2449         * config/aarch64/aarch64.md: Likewise.
2450         * config/aarch64/aarch64.opt
2451         (mlow-precision-sqrt): Add new option description.
2452         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
2453
2454 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2455
2456         [AArch64] Add more choices for the reciprocal square root approximation
2457
2458         Allow a target to prefer such operation depending on the operation mode.
2459
2460         * config/aarch64/aarch64-protos.h
2461         (AARCH64_APPROX_MODE): New macro.
2462         (AARCH64_APPROX_{NONE,ALL}): Likewise.
2463         (cpu_approx_modes): New structure.
2464         (tune_params): New member "approx_modes".
2465         * config/aarch64/aarch64-tuning-flags.def
2466         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
2467         * config/aarch64/aarch64.c
2468         (generic_approx_modes): New core "cpu_approx_modes" structure.
2469         (exynosm1_approx_modes): Likewise.
2470         (xgene1_approx_modes): Likewise.
2471         (generic_tunings): New member "approx_modes".
2472         (cortexa35_tunings): Likewise.
2473         (cortexa53_tunings): Likewise.
2474         (cortexa57_tunings): Likewise.
2475         (cortexa72_tunings): Likewise.
2476         (exynosm1_tunings): Likewise.
2477         (thunderx_tunings): Likewise.
2478         (xgene1_tunings): Likewise.
2479         (use_rsqrt_p): New argument for the mode and use new member from
2480         "tune_params".
2481         (aarch64_builtin_reciprocal): Devise mode from builtin.
2482         (aarch64_optab_supported_p): New argument for the mode.
2483         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
2484
2485 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2486
2487         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
2488         RS6000_BTM_MODULO flag into the set of flags that are considered
2489         to be part of the common configuration.
2490
2491 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2492
2493         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
2494         difference unsigned.
2495         (vec_absdb): New macro for vector absolute difference unsigned
2496         byte.
2497         (vec_absdh): New macro for vector absolute difference unsigned
2498         half-word.
2499         (vec_absdw): New macro for vector absolute difference unsigned word.
2500         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
2501         (vadu<mode>3): New insn.
2502         (*p9_vadu<mode>3): New insn.
2503         * config/rs6000/rs6000-builtin.def (vadub): New built-in
2504         definition.
2505         (vaduh): New built-in definition.
2506         (vaduw): New built-in definition.
2507         (vadu): New overloaded built-in definition.
2508         (vadub): New overloaded built-in definition.
2509         (vaduh): New overloaded built-in definition.
2510         (vaduw): New overloaded built-in definition.
2511         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2512         overloaded vector absolute difference unsigned functions.
2513         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2514         the ISA 3.0 vector absolute difference unsigned built-in functions.
2515
2516 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
2517
2518         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
2519         update shared_lookup_references only once after changing operands.
2520
2521 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
2522
2523         PR middle-end/71373
2524         * tree-nested.c (convert_nonlocal_omp_clauses)
2525         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
2526
2527         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
2528         * tree.def (CASE_LABEL_EXPR): Likewise.
2529
2530 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2531
2532         PR bootstrap/71481
2533         * input.c (test_builtins): Fix an assertion.
2534
2535 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2536
2537         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
2538         (paritysi2): Ditto.
2539         (isinfxf2): Ditto.
2540         (isinf<mode>2): Ditto.
2541
2542 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2543
2544         * ggc-tests.c (test_finalization): Only test need_finalization_p
2545         for GCC_VERSION >= 4003.
2546
2547 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2548
2549         * config/s390/vecintrin.h: Fix file description in comment.
2550
2551 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2552
2553         * config/s390/s390-builtin-types.def: Change builtin type naming
2554         scheme to match builtin-types.def.
2555
2556 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
2557
2558         * fold-const.c (optimize_minmax_comparison): Remove.
2559         (fold_comparison): Remove call to the above.
2560         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
2561         New transformations.
2562
2563 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
2564
2565         PR tree-optimization/71416
2566         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
2567         multiple entries
2568
2569 2016-06-13  Martin Liska  <mliska@suse.cz>
2570
2571         * predict.c (enum predictor_reason): Prefix enum with REASON_.
2572         (combine_predictions_for_insn): Likewise.
2573         (prune_predictions_for_bb): Likewise.
2574         (combine_predictions_for_bb): Likewise.
2575
2576 2016-06-13  Richard Biener  <rguenther@suse.de>
2577
2578         PR tree-optimization/71505
2579         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
2580         assert match comment.
2581
2582 2016-06-13  Marek Polacek  <polacek@redhat.com>
2583
2584         PR middle-end/71476
2585         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
2586         gimplify_switch_expr.
2587         (warn_switch_unreachable_r): New function.
2588
2589 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2590
2591         PR target/71379
2592         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
2593         one.
2594
2595 2016-06-13  Richard Biener  <rguenther@suse.de>
2596
2597         PR middle-end/64516
2598         * fold-const.c (fold_unary_loc): Preserve alignment when
2599         folding a VIEW_CONVERT_EXPR into a MEM_REF.
2600
2601 2016-06-13  Martin Liska  <mliska@suse.cz>
2602
2603         PR sanitizer/71458
2604         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
2605         w/ -fsanitize=bounds.
2606
2607 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
2608
2609         * config/i386/i386.c (ix86_init_builtins): Calculate
2610         FLOAT128_FTYPE_CONST_STRING function type only once.
2611         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
2612         built-in functions are available for x86-32 and x86-64 targets.
2613
2614 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
2615
2616         PR target/71241
2617         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
2618         New primitive type.
2619         (FLOAT128_FTYPE_CONST_STRING): New function type.
2620         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
2621         [IX86_BUILTIN_NANSQ]: Ditto.
2622         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
2623         (ix86_init_builtin_types): Declare const_string_type_node.
2624         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
2625         builtin functions.
2626         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
2627         * doc/extend.texi (x86 Built-in Functions): Document
2628         __builtin_nanq and __builtin_nansq.
2629
2630 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
2631
2632         PR target/71061
2633         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
2634         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
2635         length for pop patterns.
2636         (arm_attr_length_push_multi): Update comments.
2637         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
2638         attribute.
2639         (*pop_multiple_with_writeback_and_return): Likewise.
2640         (*pop_multiple_with_return): Likewise.
2641
2642 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
2643
2644         PR middle-end/71310
2645         * fold-const.c (optimize_bit_field_compare): Don't try to use
2646         word_mode unconditionally for reading the bit field, look at
2647         DECL_BIT_FIELD_REPRESENTATIVE instead.
2648
2649 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
2650
2651         PR middle-end/71478
2652         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
2653         vector integer type.
2654
2655 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
2656
2657         PR middle-end/71494
2658         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
2659         without LABEL_DECL, set *handled_ops_p to false instead of true.
2660
2661 2016-06-10  Martin Sebor  <msebor@redhat.com>
2662
2663         PR c/71392
2664         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
2665         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
2666         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
2667         them.
2668         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
2669         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
2670         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
2671         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
2672         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
2673         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
2674         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
2675         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
2676
2677 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2678
2679         * config/arm/arm.h (pool_vector_label,
2680         return_used_this_function): Remove.
2681
2682 2016-06-10  Jeff Law  <law@redhat.com>
2683
2684         PR tree-optimization/71335
2685         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
2686         zero length paths here.
2687         (convert_and_register_jump_thread_path): Remove hacks related to
2688         duplicated blocks in the jump thread path.
2689         (fsm_find_control_statement_thread_paths): Avoid putting the same
2690         block on the thread path twice, but ensure the thread path is
2691         unchanged from the caller's point of view.
2692
2693 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
2694
2695         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
2696         * predict.def (PRED_LOOP_BRANCH): Remove.
2697
2698 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
2699
2700         * Makefile.in (OBJS): Add ggc-tests.o.
2701         (GTFILES): Add ggc-tests.c.
2702         * ggc-tests.c: New file.
2703         * selftest-run-tests.c (selftest::run_tests): Call
2704         selftest::ggc_tests_c_tests.
2705         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
2706
2707 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
2708
2709         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
2710
2711 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
2712
2713         PR sanitizer/71480
2714         * varasm.c (place_block_symbol): Adjust alignment for asan protected
2715         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
2716
2717 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
2718
2719         * profile.c: Include cfgloop.h.
2720         (branch_prob): Compute estimated number of iterations.
2721         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
2722         recompute estimate number of iterations from profile.
2723
2724 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2725
2726         PR inline-asm/68843
2727         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
2728         must be grouped on top of stack.  Don't force early clobber
2729         on ordinary reg outputs.
2730
2731 2016-06-10  Richard Biener  <rguenther@suse.de>
2732
2733         * targhooks.c (default_builtin_vectorization_cost): Adjust
2734         vec_construct cost.
2735
2736 2016-06-10  Richard Biener  <rguenther@suse.de>
2737
2738         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
2739         to fold the RHS to a constant if possible.
2740
2741 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
2742
2743         PR middle-end/71373
2744         * tree-nested.c (convert_nonlocal_omp_clauses)
2745         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
2746         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
2747         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
2748
2749         * gimplify.c (gimplify_adjust_omp_clauses): Discard
2750         OMP_CLAUSE_TILE.
2751         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
2752
2753         * omp-low.c (scan_sharing_clauses): Don't expect
2754         OMP_CLAUSE__CACHE_.
2755
2756 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
2757
2758         PR tree-optimization/71407
2759         PR tree-optimization/71416
2760         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
2761         BIT_FIELD_REF type.
2762
2763 2016-06-10  Richard Biener  <rguenther@suse.de>
2764
2765         PR middle-end/71477
2766         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
2767
2768 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2769
2770         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
2771
2772 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
2773             Jiong Wang  <jiong.wang@arm.com>
2774
2775         PR rtl-optimization/70751
2776         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
2777         spilled into memory.
2778
2779 2016-06-09  Jonathan Yong  <10walls@gmail.com>
2780
2781         Revert:
2782         2015-09-21  Jonathan Yong  <10walls@gmail.com>
2783
2784         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
2785         sysroot/usr/lib/32api for additional win32 libraries,
2786         fixes failing Cygwin bootstrapping.
2787
2788 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
2789
2790         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
2791         Delete.
2792
2793 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
2794
2795         PR bootstrap/71471
2796         * pretty-print.c (pp_indent): Specify that %p is printed in a
2797         host-dependent manner.
2798         (test_pp_format): Remove the test for %p.
2799
2800 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
2801
2802         * config/mips/mips.c (mips_output_jump): Fix formatting.
2803
2804 2016-06-09  Richard Biener  <rguenther@suse.de>
2805
2806         PR tree-optimization/71462
2807         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
2808         removed blocks.
2809
2810 2016-06-09  Martin Liska  <mliska@suse.cz>
2811
2812         * predict.c (dump_prediction): Add new argument.
2813         (enum predictor_reason): New enum.
2814         (struct predictor_hash): New struct.
2815         (predictor_hash::hash): New function.
2816         (predictor_hash::equal): Likewise.
2817         (not_removed_prediction_p): New function.
2818         (prune_predictions_for_bb): Likewise.
2819         (combine_predictions_for_bb): Prune predictions.
2820
2821 2016-06-09  Martin Liska  <mliska@suse.cz>
2822
2823         * predict.c (filter_predictions): New function.
2824         (remove_predictions_associated_with_edge): Use the filter
2825         function.
2826         (equal_edge_p): New function.
2827
2828 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
2829
2830         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
2831         Correct usage of @samp vs @option, add @samp where appropriate.
2832         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
2833         Add armv6s-m and document it, as it is no official ARM name.
2834
2835 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2836
2837         * ifcvt.c (struct noce_if_info): Add transform_name field.
2838         (noce_try_move): Set if_info->transform_name to the function name.
2839         (noce_try_ifelse_collapse): Likewise.
2840         (noce_try_store_flag): Likewise.
2841         (noce_try_inverse_constants): Likewise.
2842         (noce_try_store_flag_constants): Likewise.
2843         (noce_try_addcc): Likewise.
2844         (noce_try_store_flag_mask): Likewise.
2845         (noce_try_cmove): Likewise.
2846         (noce_try_cmove_arith): Likewise.
2847         (noce_try_minmax): Likewise.
2848         (noce_try_abs): Likewise.
2849         (noce_try_sign_mask): Likewise.
2850         (noce_try_bitop): Likewise.
2851         (noce_convert_multiple_sets): Likewise.
2852         (noce_process_if_block): Print if_info->transform_name to
2853         dump_file if transformation succeeded.
2854
2855 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2856
2857         * config/arm/cortex-a57.md (cortex_a57_alu):
2858         Handle csel type.
2859
2860 2016-06-08  Martin Sebor  <msebor@redhat.com>
2861             Jakub Jelinek  <jakub@redhat.com>
2862
2863         PR c++/70507
2864         PR c/68120
2865         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
2866         BUILT_IN_MUL_OVERFLOW_P): New builtins.
2867         * builtins.c: Include gimple-fold.h.
2868         (fold_builtin_arith_overflow): Handle
2869         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
2870         (fold_builtin_3): Likewise.
2871         * doc/extend.texi (Integer Overflow Builtins): Document
2872         __builtin_{add,sub,mul}_overflow_p.
2873
2874 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
2875
2876         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
2877         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
2878
2879 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
2880
2881         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
2882         Rewrite, looking one level down for records and arrays.
2883
2884 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
2885
2886         * pretty-print.c: Include "selftest.h".
2887         (pp_format): Fix comment.
2888         (identifier_to_locale): Likewise.
2889         (selftest::test_basic_printing): New function.
2890         (selftest::assert_pp_format): New function.
2891         (selftest::test_pp_format): New function.
2892         (selftest::pretty_print_c_tests): New function.
2893         * selftest-run-tests.c (selftest::run_tests): Call
2894         selftest::pretty_print_c_tests.
2895         * selftest.h (pretty_print_c_tests): New declaration.
2896
2897 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
2898
2899         * invoke.texi (max-loop-headers-insns): Document.
2900         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
2901         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
2902         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
2903
2904 2016-06-08  Richard Biener  <rguenther@suse.de>
2905
2906         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
2907         on strided SLP loads and fall back to scalar loads in case
2908         we can't chunk them.
2909
2910 2016-06-08  Richard Biener  <rguenther@suse.de>
2911
2912         PR tree-optimization/71452
2913         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
2914         type used for the SSA rewrite has enough precision to cover
2915         the dynamic type of the location.
2916
2917 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
2918             Richard Biener  <rguenther@suse.de>
2919
2920         PR c++/71448
2921         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
2922         the same as DECL_P (base0) for indirect_base0.  Use equality_code
2923         in one further place.
2924
2925 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
2926
2927         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
2928         to one word if the field is known to overlap other words.
2929         (extract_bit_field_1): Likewise.
2930         (store_split_bit_field): Remove compensating code.
2931         (extract_split_bit_field): Likewise.
2932
2933 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
2934
2935         PR debug/71432
2936         PR ada/71413
2937         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
2938
2939 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2940
2941         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
2942         VDQF.
2943         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
2944         (arch64_addpv4sf): Delete.
2945         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
2946         "gen_aarch64_addpv4sf".
2947         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
2948         builtin.
2949         (vpadds_f32): Likewise.
2950         (vpaddq_f32): Likewise.
2951         (vpaddq_f64): Likewise.
2952
2953 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2954
2955         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
2956         VALLF.
2957         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
2958         to VALLF.  Rename to "fabd<mode>3".
2959         "*fabd_scalar<mode>3): Delete.
2960         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
2961         Use builtin.
2962         (vabdd_f64): Likewise.
2963         (vabd_f32): Likewise.
2964         (vabd_f64): Likewise.
2965         (vabdq_f32): Likewise.
2966         (vabdq_f64): Likewise.
2967
2968 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2969
2970         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
2971         VALLF.
2972         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
2973         "aarch64_rsqrts<mode>".
2974         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
2975         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
2976         builtin.
2977         (vrsqrtsd_f64): Likewise.
2978         (vrsqrts_f32): Likewise.
2979         (vrsqrts_f64): Likewise.
2980         (vrsqrtsq_f32): Likewise.
2981         (vrsqrtsq_f64): Likewise.
2982
2983 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2984
2985         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
2986         VALLF.
2987         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
2988         "aarch64_rsqrte<mode>".
2989         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
2990         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
2991         builtin.
2992         (vrsqrted_f64): Likewise.
2993         (vrsqrte_f32): Likewise.
2994         (vrsqrte_f64): Likewise.
2995         (vrsqrteq_f32): Likewise.
2996         (vrsqrteq_f64): Likewise.
2997
2998 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
2999
3000         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
3001         (ucvtf): Likewise.
3002         (fcvtzs): Likewise.
3003         (fcvtzu): Likewise.
3004         * config/aarch64/aarch64-simd.md
3005         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
3006         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
3007         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
3008         Use builtin.
3009         (vcvt_n_f32_u32): Likewise.
3010         (vcvt_n_s32_f32): Likewise.
3011         (vcvt_n_u32_f32): Likewise.
3012         (vcvtq_n_f32_s32): Likewise.
3013         (vcvtq_n_f32_u32): Likewise.
3014         (vcvtq_n_f64_s64): Likewise.
3015         (vcvtq_n_f64_u64): Likewise.
3016         (vcvtq_n_s32_f32): Likewise.
3017         (vcvtq_n_s64_f64): Likewise.
3018         (vcvtq_n_u32_f32): Likewise.
3019         (vcvtq_n_u64_f64): Likewise.
3020         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
3021         (VSDQ_SDI): Likewise.
3022         (fcvt_target): Support V4DI, V4SI and V2SI.
3023         (FCVT_TARGET): Likewise.
3024
3025 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
3026
3027         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
3028         (TYPES_BINOP_SUS): Likewise.
3029         (aarch64_simd_builtin_data): Update include file name.
3030         (aarch64_builtins): Likewise.
3031         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
3032         for conversion between scalar float-point and fixed-point.
3033         (ucvtf): Likewise.
3034         (fcvtzs): Likewise.
3035         (fcvtzu): Likewise.
3036         * config/aarch64/aarch64.md
3037         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
3038         pattern for conversion between scalar float to fixed-pointer.
3039         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
3040         (UNSPEC_FCVTZS): New UNSPEC enumeration.
3041         (UNSPEC_FCVTZU): Likewise.
3042         (UNSPEC_SCVTF): Likewise.
3043         (UNSPEC_UCVTF): Likewise.
3044         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
3045         Use builtin.
3046         (vcvtd_n_f64_u64): Likewise.
3047         (vcvtd_n_s64_f64): Likewise.
3048         (vcvtd_n_u64_f64): Likewise.
3049         (vcvtd_n_f32_s32): Likewise.
3050         (vcvts_n_f32_u32): Likewise.
3051         (vcvtd_n_s32_f32): Likewise.
3052         (vcvts_n_u32_f32): Likewise.
3053         * config/aarch64/iterators.md (fcvt_target): Support integer to float
3054         mapping.
3055         (FCVT_TARGET): Likewise.
3056         (FCVT_FIXED2F): New iterator.
3057         (FCVT_F2FIXED): Likewise.
3058         (fcvt_fixed_insn): New define_int_attr.
3059
3060 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3061
3062         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
3063         some statements was removed.
3064
3065 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
3066
3067         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
3068         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
3069         (vect_can_advance_ivs_p): likewise.
3070         (vect_update_ivs_after_vectorizer): likewise.
3071         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
3072         (vect_analyze_scalar_cycles_1): likewise.
3073         (vect_analyze_loop_operations): likewise.
3074         (report_vect_op): likewise.
3075         (vect_is_slp_reduction): likewise.
3076         (vect_is_simple_reduction): likewise.
3077         (get_initial_def_for_induction): likewise.
3078         (vect_transform_loop): likewise.
3079         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
3080         (vect_recog_sad_pattern): likewise.
3081         (vect_recog_widen_sum_pattern): likewise.
3082         (vect_recog_widening_pattern): likewise.
3083         (vect_recog_divmod_pattern): likewise.
3084         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
3085         (vect_analyze_slp_instance): likewise.
3086         (vect_transform_slp_perm_load): likewise.
3087         (vect_schedule_slp_instance): likewise.
3088
3089 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3090
3091         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
3092         (return_prediction): PRED_CONST_RETURN predict return as not taken.
3093         * predict.def (PRED_CONTINUE): Change hitrate 50->67
3094         (PRED_LOOP_BRANCH): Document predictor as broken.
3095         (PRED_LOOP_EXIT): Change hitrate 91->92.
3096         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
3097         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
3098         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
3099         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
3100         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
3101         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
3102         (PRED_CALL): Chane hitrate 71->67.
3103         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
3104         (PRED_GOTO): Document as unused right now.
3105         (PRED_CONST_RETURN): Change hitrate 67->69
3106         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
3107         (PRED_NULL_RETURN): Change hitrate 91->90.
3108         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
3109         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
3110         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
3111
3112 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
3113
3114         * config/rs6000/altivec.h: Add __builtin_vec_mul.
3115         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
3116         special case Altivec builtin.
3117         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
3118         VSX_BUILTIN_VEC_MUL (replaced with special case code).
3119         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3120         code for ALTIVEC_BUILTIN_VEC_MUL.
3121         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3122         for __builtin_vec_mul.
3123
3124 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
3125
3126         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
3127         -mno-htm.
3128
3129 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
3130
3131         * spellcheck.c (selftest::test_find_closest_string): New function.
3132         (spellcheck_c_tests): Call the above.
3133
3134 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3135
3136         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
3137
3138 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
3139
3140         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
3141         Yv=Yv,C alternatives.
3142
3143 2016-06-07  Richard Biener  <rguenther@suse.de>
3144
3145         PR c/61564
3146         * common.opt (ffast-math): Make Optimization.
3147
3148 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
3149             Prachi Godbole  <prachi.godbole@imgtec.com>
3150
3151         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
3152         `fabs' and `fneg' type attributes.
3153         (p5600_fpu_fabs): Add `fmove' to the comment.
3154
3155 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3156
3157         * gimple.c: Include builtins.h
3158         (gimple_inexpensive_call_p): New function.
3159         * gimple.h (gimple_inexpensive_call_p): Declare.
3160         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
3161         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
3162         fix formatting.
3163
3164 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
3165
3166         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
3167         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
3168         warning_at_rich_loc, warning_n, pedwarn, permerror,
3169         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
3170         sorry, fatal_error, internal_error, internal_error_no_backtrace):
3171         Use the above.
3172
3173 2016-06-07  Richard Biener  <rguenther@suse.de>
3174
3175         PR tree-optimization/71428
3176         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
3177         BIT_FIELD_REF op vs. load.
3178
3179 2016-06-07  Richard Biener  <rguenther@suse.de>
3180
3181         PR middle-end/71423
3182         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
3183         for signed ops.
3184
3185 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
3186
3187         * config/pa/pa.md (call): Generate indirect long calls to non-local
3188         functions on TARGET_64BIT.
3189         (call_value): Likewise.
3190
3191 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
3192
3193         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
3194         pattern and subsequent splitters.
3195         (call_val_reg_64bit_post_reload): Likewise.
3196
3197 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
3198
3199         PR middle-end/71408
3200         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
3201         propagate_op_to_single_use.
3202
3203 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
3204
3205         PR middle-end/71281
3206         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
3207
3208 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
3209
3210         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
3211         (enum x86_dirflag_state): New enum.
3212         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
3213         (machine_function): Remove needs_cld.
3214         (ix86_current_function_needs_cld): Remove.
3215         * config/i386/i386.c (ix86_set_func_type): Set
3216         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
3217         (ix86_expand_prologue): Do not emit CLD here.
3218         (ix86_dirflag_mode_needed): New function.
3219         (ix86_dirflag_mode_entry): Ditto.
3220         (ix86_mode_needed): Handle X86_DIRFLAG entity.
3221         (ix86_mode_after): Ditto.
3222         (ix86_mode_entry): Ditto.
3223         (ix86_mode_exit): Ditto.
3224         (ix86_emit_mode_set): Ditto.
3225         * config/i386/i386.md (strmov_singleop): Set
3226         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
3227         Do not set ix86_current_function_needs_cld.
3228         (rep_mov): Ditto.
3229         (strset_singleop): Ditto.
3230         (rep_stos): Ditto.
3231         (cmpstrnqi_nz_1): Ditto.
3232         (cmpstrnqi_1): Ditto.
3233         (strlenqi_1): Ditto.
3234
3235 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
3236
3237         PR tree-optimization/71259
3238         * tree-vect-slp.c (vect_get_constant_vectors): For
3239         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
3240         one for constant op, and use COND_EXPR for non-constant.
3241
3242 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
3243
3244         * Makefile.in (OBJS): Add function-tests.o,
3245         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
3246         selftest-run-tests.o.
3247         (OBJS-libcommon): Add selftest.o.
3248         (OBJS-libcommon-target): Add selftest.o.
3249         (all.internal): Add "selftest".
3250         (all.cross): Likewise.
3251         (selftest): New phony target.
3252         (s-selftest): New target.
3253         (selftest-gdb): New phony target.
3254         (COLLECT2_OBJS): Add selftest.o.
3255         * bitmap.c: Include "selftest.h".
3256         (selftest::test_gc_alloc): New function.
3257         (selftest::test_set_range): New function.
3258         (selftest::test_clear_bit_in_middle): New function.
3259         (selftest::test_copying): New function.
3260         (selftest::test_bitmap_single_bit_set_p): New function.
3261         (selftest::bitmap_c_tests): New function.
3262         * common.opt (fself-test): New.
3263         * diagnostic-show-locus.c: Include "selftest.h".
3264         (make_range): New function.
3265         (test_range_contains_point_for_single_point): New function.
3266         (test_range_contains_point_for_single_line): New function.
3267         (test_range_contains_point_for_multiple_lines): New function.
3268         (assert_eq): New function.
3269         (test_get_line_width_without_trailing_whitespace): New function.
3270         (selftest::diagnostic_show_locus_c_tests): New function.
3271         * et-forest.c: Include "selftest.h".
3272         (selftest::test_single_node): New function.
3273         (selftest::test_simple_tree): New function.
3274         (selftest::test_disconnected_nodes): New function.
3275         (selftest::et_forest_c_tests): New function.
3276         * fold-const.c: Include "selftest.h".
3277         (selftest::assert_binop_folds_to_const): New function.
3278         (selftest::assert_binop_folds_to_nonlvalue): New function.
3279         (selftest::test_arithmetic_folding): New function.
3280         (selftest::fold_const_c_tests): New function.
3281         * function-tests.c: New file.
3282         * gimple.c: Include "selftest.h".
3283         Include "gimple-pretty-print.h".
3284         (selftest::verify_gimple_pp): New function.
3285         (selftest::test_assign_single): New function.
3286         (selftest::test_assign_binop): New function.
3287         (selftest::test_nop_stmt): New function.
3288         (selftest::test_return_stmt): New function.
3289         (selftest::test_return_without_value): New function.
3290         (selftest::gimple_c_tests): New function.
3291         * hash-map-tests.c: New file.
3292         * hash-set-tests.c: New file.
3293         * input.c: Include "selftest.h".
3294         (selftest::assert_loceq): New function.
3295         (selftest::test_accessing_ordinary_linemaps): New function.
3296         (selftest::test_unknown_location): New function.
3297         (selftest::test_builtins): New function.
3298         (selftest::test_reading_source_line): New function.
3299         (selftest::input_c_tests): New function.
3300         * rtl-tests.c: New file.
3301         * selftest-run-tests.c: New file.
3302         * selftest.c: New file.
3303         * selftest.h: New file.
3304         * spellcheck.c: Include "selftest.h".
3305         (selftest::levenshtein_distance_unit_test_oneway): New function,
3306         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
3307         (selftest::levenshtein_distance_unit_test): Likewise.
3308         (selftest::spellcheck_c_tests): Likewise.
3309         * toplev.c: Include selftest.h.
3310         (toplev::run_self_tests): New.
3311         (toplev::main): Handle -fself-test.
3312         * toplev.h (toplev::run_self_tests): New.
3313         * tree.c: Include "selftest.h".
3314         (selftest::test_integer_constants): New function.
3315         (selftest::test_identifiers): New function.
3316         (selftest::test_labels): New function.
3317         (selftest::tree_c_tests): New function.
3318         * tree-cfg.c: Include "selftest.h".
3319         (selftest::push_fndecl): New function.
3320         (selftest::test_linear_chain): New function.
3321         (selftest::test_diamond): New function.
3322         (selftest::test_fully_connected): New function.
3323         (selftest::tree_cfg_c_tests): New function.
3324         * vec.c: Include "selftest.h".
3325         (selftest::safe_push_range): New function.
3326         (selftest::test_quick_push): New function.
3327         (selftest::test_safe_push): New function.
3328         (selftest::test_truncate): New function.
3329         (selftest::test_safe_grow_cleared): New function.
3330         (selftest::test_pop): New function.
3331         (selftest::test_safe_insert): New function.
3332         (selftest::test_ordered_remove): New function.
3333         (selftest::test_unordered_remove): New function.
3334         (selftest::test_block_remove): New function.
3335         (selftest::reverse_cmp): New function.
3336         (selftest::test_qsort): New function.
3337         (selftest::vec_c_tests): New function.c.
3338         * wide-int.cc: Include selftest.h and wide-int-print.h.
3339         (selftest::from_int <wide_int>): New function.
3340         (selftest::from_int <offset_int>): New function.
3341         (selftest::from_int <widest_int>): New function.
3342         (selftest::assert_deceq): New function.
3343         (selftest::assert_hexeq): New function.
3344         (selftest::test_printing <VALUE_TYPE>): New function template.
3345         (selftest::test_ops <VALUE_TYPE>): New function template.
3346         (selftest::test_comparisons <VALUE_TYPE>): New function template.
3347         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
3348         template.
3349         (selftest::wide_int_cc_tests): New function.
3350
3351 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3352
3353         PR middle-end/37780
3354         * ifcvt.c (noce_try_ifelse_collapse): New function.
3355         Declare prototype.
3356         (noce_process_if_block): Call noce_try_ifelse_collapse.
3357         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
3358         (simplify_ternary_operation): Use the above to simplify
3359         conditional CLZ/CTZ expressions.
3360
3361 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3362
3363         PR middle-end/37780
3364         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
3365         define_insn_and_split.
3366
3367 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3368
3369         PR middle-end/37780
3370         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
3371
3372 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3373
3374         PR c/24414
3375         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
3376         Implicitly clobber memory for basic asm with non-empty assembler
3377         string.  Use targetm.md_asm_adjust also here.
3378         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
3379         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
3380         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
3381         non-empty assembler string.
3382         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
3383         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
3384         (decode_asm_operands): Handle basic asm in PARALLEL block.
3385         (extract_insn): Handle basic asm in PARALLEL block.
3386         * doc/extend.texi: Mention new behavior of basic asm.
3387         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
3388         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
3389         branch_needs_nop_p): Use asm_noperands.
3390
3391 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
3392
3393         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
3394         Include the M7 SPARC DFA scheduler.
3395         New attribute v3pipe.
3396         Annotate insns with v3pipe where appropriate.
3397         Define cpu_feature vis4.
3398         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
3399         Add (V8QI "8") to vbits.
3400         Add insns {add,sub}v8qi3
3401         Add insns ss{add,sub}v8qi3
3402         Add insns us{add,sub}{v8qi,v4hi}3
3403         Add insns {min,max}{v8qi,v4hi,v2si}3
3404         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
3405         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
3406         * config/sparc/niagara4.md: Add a comment explaining the
3407         discrepancy between the documented latenty numbers and the
3408         implemented ones.
3409         * config/sparc/niagara7.md: New file.
3410         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
3411         supports SPARC5 and VIS 4.0 instructions.
3412         * configure: Regenerate.
3413         * config.in: Likewise.
3414         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
3415         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
3416         TARGET_CPU_niagara7.
3417         (ASM_CPU64_DEFAULT_SPEC): Likewise.
3418         (CPP_CPU_SPEC): Handle niagara7.
3419         (ASM_CPU_SPEC): Likewise.
3420         * config/sparc/sparc-opts.h (processor_type): Add
3421         PROCESSOR_NIAGARA7.
3422         (mvis4): New option.
3423         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
3424         (AS_NIAGARA7_FLAG): Define.
3425         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
3426         (CPP_CPU64_DEFAULT_SPEC): Likewise.
3427         (CPP_CPU_SPEC): Handle niagara7.
3428         (ASM_CPU_SPEC): Likewise.
3429         * config/sparc/sparc.c (niagara7_costs): Define.
3430         (sparc_option_override): Handle niagara7 and adjust cache-related
3431         parameters with better values for niagara cpus.  Also support VIS4.
3432         (sparc32_initialize_trampoline): Likewise.
3433         (sparc_use_sched_lookahead): Likewise.
3434         (sparc_issue_rate): Likewise.
3435         (sparc_register_move_cost): Likewise.
3436         (dump_target_flag_bits): Support VIS4.
3437         (sparc_vis_init_builtins): Likewise.
3438         (sparc_builtins): Likewise.
3439         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
3440         VIS4 4.0.
3441         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
3442         UltraSparc M7.
3443         * config/sparc/sparc.opt (sparc_processor_type): New value
3444         niagara7.
3445         * config/sparc/visintrin.h (__attribute__): Prototypes for the
3446         VIS4 builtins.
3447         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
3448         -mvis4.
3449         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
3450         VIS4 builtins.
3451
3452 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
3453
3454         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
3455
3456 2016-06-06  Richard Biener  <rguenther@suse.de>
3457
3458         PR tree-optimization/71398
3459         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
3460         remove edges.
3461
3462 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
3463
3464         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
3465         ft32_expand_prolog, ft32_expand_epilogue):
3466         Handle pretend_args.
3467         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
3468         * config/ft32/ft32.md: Add pretend_returner.
3469
3470 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
3471
3472         PR target/71389
3473         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3474         Copy op1 RTX to avoid invalid sharing.
3475         (ix86_expand_vector_move_misalign): Ditto.
3476
3477 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
3478
3479         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
3480         ATTRIBUTE_UNUSED.
3481
3482 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
3483
3484         * predict.c (predicted_by_loop_heuristics_p): New function.
3485         (predict_iv_comparison): Use it.
3486         (predict_loops): Walk from innermost loops; do not predict edges
3487         leaving multiple loops multiple times; implement
3488         PRED_LOOP_ITERATIONS_MAX heuristics.
3489         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
3490
3491 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
3492
3493         * cfg.c (check_bb_profile): Do not report mismatched profiles when
3494         only edges out of BB are EH edges.
3495
3496 2016-06-04  Martin Sebor  <msebor@redhat.com>
3497             Marcin Baczyński  <marbacz@gmail.com>
3498
3499         PR c/48116
3500         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
3501         a void expression in a void function.
3502
3503 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
3504
3505         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
3506         aux; dump reasons of decisions.
3507         (should_duplicate_loop_header_p): Likewise.
3508         (do_while_loop_p): Likewise.
3509         (ch_base::copy_headers): Dump asi num insns duplicated.
3510
3511 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
3512
3513         PR tree-optimization/71405
3514         * tree-ssa.c (execute_update_addresses_taken): For clobber with
3515         incompatible type, build a new clobber with the right type instead
3516         of building a VIEW_CONVERT_EXPR around it.
3517
3518 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
3519
3520         PR tree-optimization/52171
3521         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
3522         by_pieces_ninsns instead of move_by_pieces_ninsns.
3523
3524 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
3525
3526         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
3527         for reg+reg addressing mode.
3528
3529 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3530
3531         * rs6000-c.c (c/c-tree.h): Add #include.
3532         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
3533         in C++ when found in the base position of vec_ld or vec_st.
3534
3535 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
3536
3537         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
3538         use of profile unless profile status is PROFILE_READ.
3539         * profile.c (compute_branch_probabilities): Set profile status
3540         only after reporting predictor hitrates.
3541
3542 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
3543
3544         PR target/71276
3545         PR target/71277
3546         * common.opt (ffp-int-builtin-inexact): New option.
3547         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
3548         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
3549         (ceil@var{m}2): Document dependence on this option.
3550         * ipa-inline-transform.c (inline_call): Handle
3551         flag_fp_int_builtin_inexact.
3552         * ipa-inline.c (can_inline_edge_p): Likewise.
3553         * config/i386/i386.md (rintxf2): Do not test
3554         flag_unsafe_math_optimizations.
3555         (rint<mode>2_frndint): New define_insn.
3556         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
3557         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
3558         for 387 instead of extending and truncating.
3559         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
3560         !flag_trapping_math instead of flag_unsafe_math_optimizations.
3561         Change to frndint<mode>2_<rounding>.
3562         (frndintxf2_<rounding>_i387): Likewise.  Change to
3563         frndint<mode>2_<rounding>_i387.
3564         (<rounding_insn>xf2): Likewise.
3565         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
3566         !flag_trapping_math instead of flag_unsafe_math_optimizations for
3567         x87.  Test TARGET_ROUND || !flag_trapping_math ||
3568         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
3569         SSE.  Use ROUND_NO_EXC in constant operand of
3570         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
3571         for 387 instead of extending and truncating.
3572
3573 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
3574             Julia Koval  <julia.koval@intel.com>
3575
3576         PR target/66960
3577         PR target/67630
3578         PR target/67634
3579         PR target/67841
3580         PR target/68037
3581         PR target/68618
3582         PR target/68661
3583         PR target/69575
3584         PR target/69596
3585         PR target/69734
3586         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
3587         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
3588         all registers, except for function return registers if there are
3589         no caller-saved registers.
3590         (ix86_set_func_type): New function.
3591         (ix86_set_current_function): Call ix86_set_func_type to set
3592         no_caller_saved_registers and func_type.  Call reinit_regs if
3593         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
3594         nor x87 instructions in interrupt handler nor function with
3595         no_caller_saved_registers attribute.
3596         (ix86_function_ok_for_sibcall): Return false if there are no
3597         caller-saved registers.
3598         (type_natural_mode): Don't warn ABI change for MMX in interrupt
3599         handler.
3600         (ix86_function_arg_advance): Skip for callee in interrupt handler.
3601         (ix86_function_arg): Return special arguments in interrupt handler.
3602         (ix86_promote_function_mode): Promote pointer to word_mode only
3603         for normal functions.
3604         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
3605         interrupt handler.
3606         (ix86_epilogue_uses): New function.
3607         (ix86_hard_regno_scratch_ok): Likewise.
3608         (ix86_save_reg): Preserve all registers in interrupt handler
3609         after reload.  Preserve all registers, except for function return
3610         registers, if there are no caller-saved registers after reload.
3611         (find_drap_reg): Always use callee-saved register if there are
3612         no caller-saved registers.
3613         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
3614         for interrupt handler.
3615         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
3616         Emit cld instruction if stringops are used in interrupt handler
3617         or interrupt handler isn't a leaf function.
3618         (ix86_expand_epilogue): Generate interrupt return for interrupt
3619         handler and pop the 'ERROR_CODE' off the stack before interrupt
3620         return in exception handler.
3621         (ix86_expand_call): Disallow calling interrupt handler directly.
3622         If there are no caller-saved registers, mark all registers that
3623         are clobbered by the call which returns as clobbered.
3624         (ix86_handle_no_caller_saved_registers_attribute): New function.
3625         (ix86_handle_interrupt_attribute): Likewise.
3626         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
3627         attributes.
3628         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
3629         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
3630         accumulation in interrupt function if stack may be realigned to
3631         avoid DRAP.
3632         (EPILOGUE_USES): New.
3633         (function_type): New enum.
3634         (machine_function): Add func_type and no_caller_saved_registers.
3635         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
3636         (interrupt_return): New pattern.
3637         * doc/extend.texi: Document x86 interrupt and
3638         no_caller_saved_registers attributes.
3639
3640 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
3641
3642         PR tree-optimization/52171
3643         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
3644         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
3645         Look for constant strings.  Move some code to emit_block_cmp_hints
3646         and use it.
3647         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
3648         * defaults.h (COMPARE_MAX_PIECES): New macro.
3649         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
3650         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
3651         (clear_by_pieces_1): Don't declare.  Move definition before use.
3652         (can_do_by_pieces): New static function.
3653         (can_move_by_pieces): Use it.  Return bool.
3654         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
3655         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
3656         (class pieces_addr); New.
3657         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
3658         pieces_addr::adjust, pieces_addr::increment_address,
3659         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
3660         functions for it.
3661         (class op_by_pieces_d): New.
3662         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
3663         functions for it.
3664         (class move_by_pieces_d, class compare_by_pieces_d,
3665         class store_by_pieces_d): New subclasses of op_by_pieces_d.
3666         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
3667         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
3668         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
3669         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
3670         compare_by_pieces_d::finish_mode): New member functions.
3671         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
3672         functions.
3673         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
3674         (emit_block_cmp_hints): New function.
3675         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
3676         use the newly defined classes.
3677         * expr.h (by_pieces_constfn): New typedef.
3678         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
3679         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
3680         (move_by_pieces_ninsns): Don't declare.
3681         (can_move_by_pieces): Change return value to bool.
3682         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
3683         (compare_by_pieces_branch_ratio): New hook.
3684         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
3685         (by_pieces_ninsns): Declare.
3686         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
3687         COMPARE_BY_PIECES.
3688         (default_compare_by_pieces_branch_ratio): New function.
3689         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
3690         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
3691         * doc/tm.texi: Regenerate.
3692         * tree-ssa-strlen.c: Include "builtins.h".
3693         (handle_builtin_memcmp): New static function.
3694         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
3695         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
3696
3697 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3698
3699         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
3700         relevant stmts which are simple and invariant.
3701         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
3702         instead of simple and invariant
3703
3704 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3705
3706         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
3707         (vectorizable_reduction): Check for new relevant state.
3708         (vectorizable_live_operation): vectorize live stmts using
3709         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
3710         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
3711         (vect_stmt_relevant_p): Check for stmts which are only used live.
3712         (process_use): Use of a stmt does not inherit it's live value.
3713         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
3714         (vect_analyze_stmt): Check for new relevant state.
3715         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
3716         outside the loop, but not inside it.
3717
3718 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3719
3720         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
3721         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
3722         (vect_get_vec_def_for_operand): Split out code.
3723
3724 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
3725
3726         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
3727
3728 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3729
3730         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
3731
3732 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3733
3734         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
3735
3736 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
3737
3738         PR middle-end/71387
3739         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
3740         to noreturn e->callee->decl that has void return type and void
3741         arguments, adjust gimple_call_fntype and remove lhs even if it had
3742         previously addressable type.
3743
3744 2016-06-02  Jeff Law  <law@redhat.com>
3745
3746         PR tree-optimization/71328
3747         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
3748         error when checking for a jump back onto the copied path.
3749
3750 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
3751
3752         * config/microblaze/microblaze.c (get_branch_target): Add return
3753         NULL_RTX for the non-CALL_P case.
3754         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
3755         (insert_wic): Remove unused local "j".
3756
3757 2016-06-02  Martin Liska  <mliska@suse.cz>
3758
3759         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
3760
3761 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
3762             Julia Koval  <julia.koval@intel.com>
3763
3764         * function.c (assign_parm_setup_stack): Force source into a
3765         register if needed.
3766         * target.def (function_incoming_arg): Update documentation to
3767         allow arbitrary address computation based on hard register.
3768         * doc/tm.texi: Regenerated.
3769
3770 2016-06-02  Martin Liska  <mliska@suse.cz>
3771
3772         * predict.c (combine_predictions_for_bb): Fix first match in
3773         cases where a first predictor contains more than one occurence
3774         in list of predictors.  Take the best value in such case.
3775
3776 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3777
3778         PR rtl-optimization/71295
3779         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
3780         offset would go over the size of the inner mode reject it.
3781
3782 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
3783
3784         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
3785         x=x,x and v=v,m instead of x=x,m.
3786
3787         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
3788         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
3789         alternative to v=rm,C.
3790
3791         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
3792         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
3793         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
3794         instead of vex for the last two above mentioned alternatives.
3795
3796 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3797
3798         PR target/70830
3799         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
3800
3801 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
3802
3803         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
3804
3805 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
3806
3807         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
3808         from int to unsigned.
3809
3810 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3811
3812         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
3813         alternatives, eliminating preferred register class.  Add support
3814         for the MTVSRDD instruction in ISA 3.0.
3815         (vsx_splat_v4si_internal): Use splat_input_operand instead of
3816         reg_or_indexed_operand.
3817         (vsx_splat_v4sf_internal): Likewise.
3818
3819 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3820
3821         PR target/71186
3822         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
3823         for loading up all 0's or all 1's.
3824
3825 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3826
3827         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
3828
3829 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
3830
3831         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
3832         extension.
3833         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
3834         * gcc.c (set_source_date_epoch_envvar): New function, sets
3835         the SOURCE_DATE_EPOCH environment variable to the current time.
3836
3837 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3838
3839         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
3840         the factor for live Phi nodes.
3841
3842 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
3843
3844         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
3845         * tree-parloops.c (parallelize_loops): likewise.
3846         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
3847         tree_unswitch_outer_loop): likewise.
3848
3849 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
3850
3851         PR middle-end/71371
3852         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
3853         around creation of the temporary.
3854
3855 2016-06-01  Richard Biener  <rguenther@suse.de>
3856
3857         PR tree-optimization/71366
3858         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
3859         (unloop_loops): Move removing edges here ...
3860         (try_unroll_loop_completely): ... from here.
3861         (try_peel_loop): ... and here.
3862         (tree_unroll_loops_completely_1): Track parent loops via
3863         bitmap of header BBs.
3864         (tree_unroll_loops_completely): Adjust for that.
3865
3866 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3867
3868         * config/rs6000/altivec.h (vec_slv): New macro.
3869         (vec_srv): New macro.
3870         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
3871         (UNSPEC_VSRV): New value.
3872         (vslv): New insn.
3873         (vsrv): New insn.
3874         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
3875         (vsrv): New builtin definition.
3876         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
3877         define argument types for new builtin.
3878         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
3879         new builtin.
3880         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
3881         functions.
3882
3883 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
3884             Jocelyn Mayer  <l_indien@magic.fr>
3885
3886         PR target/67310
3887         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
3888         detect processor family for signature_CENTAUR_ebx.
3889         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
3890         signature_CENTAUR_ebx.
3891         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
3892         <default>: Pass x86-64 for has_longmode.
3893
3894 2016-06-01  Nathan Sidwell  <nathan@acm.org>
3895
3896         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
3897         undefined weak.
3898
3899 2016-06-01  Richard Biener  <rguenther@suse.de>
3900
3901         PR tree-optimization/71261
3902         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
3903         of stmts successfully put in the bool pattern.  Remove
3904         single-use restriction.
3905         (adjust_bool_pattern_cast): Add cast at the use site via the
3906         pattern def sequence.
3907         (adjust_bool_pattern): Remove recursion, maintain a hash-map
3908         of patterned defs.  Use the pattern def seqence instead of
3909         multiple independent patterns.
3910         (sort_after_uid): New qsort compare function.
3911         (adjust_bool_stmts): New function to process stmts in the bool
3912         pattern in IL order.
3913         (vect_recog_bool_pattern): Adjust.
3914         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
3915         (ifcvt_walk_pattern_tree): Likewise.
3916         (stmt_is_root_of_bool_pattern): Likewise.
3917         (ifcvt_repair_bool_pattern): Likewise.
3918         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
3919
3920 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
3921
3922         * loop-unroll.c (decide_unroll_constant_iterations,
3923         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
3924         likely upper bounds.
3925         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
3926
3927 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
3928
3929         * tree-core.h (enum omp_clause_code): Remove
3930         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
3931
3932 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3933
3934         * config/arm/sync.md (arm_store_exclusive<mode>):
3935         Use 'H' output modifier on operands[2] rather than creating a new
3936         entry in out-of-bounds memory of the operands array.
3937         (arm_store_release_exclusivedi): Likewise.
3938
3939 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3940
3941         * config/arm/arm.c (arm_fusion_enabled_p): New function.
3942         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
3943         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
3944         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
3945
3946 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3947
3948         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
3949         into account live statements for mask producers.
3950
3951 2016-06-01  Richard Biener  <rguenther@suse.de>
3952
3953         PR tree-optimization/71311
3954         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
3955         restrict to non-INTEGER_CST @0.
3956
3957 2016-06-01  Richard Biener  <rguenther@suse.de>
3958
3959         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
3960         (relational patterns): Use :c to avoid pattern duplications.
3961
3962 2016-06-01  Richard Biener  <rguenther@suse.de>
3963
3964         * genmatch.c (comparison_code_p): New predicate.
3965         (swap_tree_comparison): New function.
3966         (commutate): Add for_vec parameter to append new for entries.
3967         Support commutating relational operators by swapping it alongside
3968         operands.
3969         (lower_commutative): Adjust.
3970         (dt_simplify::gen): Do not pass artificial operators to gen
3971         functions.
3972         (decision_tree::gen): Do not add artificial operators as parameters.
3973         (parser::parse_expr): Verify operator commutativity when :c is
3974         applied.  Allow :C to override this.
3975         * match.pd: Adjust patterns to use :C instead of :c where required.
3976
3977 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
3978
3979         PR tree-optimization/71077
3980         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
3981         the combining step, use boolean_false_node and boolean_true_node
3982         as the designated false/true return values.
3983
3984 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3985
3986         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
3987         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
3988         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
3989         PRED_LOOP_EXIT.
3990
3991 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
3992
3993         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
3994         of flags impliying the register renaming.
3995         * toplev.c (process_options): Do not imply flag_rename_registers with
3996         loop peeling.
3997
3998 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
3999
4000         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
4001         default implementation.
4002
4003 2016-05-31  Nathan Sidwell  <nathan@acm.org>
4004
4005         * dwarf2out.c (cur_line_info_table): Add GTY marker.
4006
4007 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
4008
4009         * config/sh/constraints.md (b): Remove constraint.
4010         * config/sh/predicates.md (arith_reg_operand): Remove
4011         TARGET_REGISTER_P.
4012         * config/sh/sh-modes.def (PDI): Remove.
4013         * config/sh/sh.c (sh_target_reg_class,
4014         sh_optimize_target_register_callee_saved): Remove functions.
4015         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
4016         (sh_expand_epilogue): Update comment.
4017         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
4018         sh_secondary_reload): Remove TARGET_REGS related code.
4019         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
4020         TARGET_REGISTER_P): Remove macros.
4021         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
4022         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
4023         TR1_REG, TR2_REG): Remove constants.
4024         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
4025
4026 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
4027
4028         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
4029         define_expand patterns.
4030         (adddi3_compact): Rename to adddi3.
4031         (subdi3_compact): Rename to subdi3.
4032         (*negdi2): Rename to negdi2.
4033         (*abs<mode>2): Rename to abs<mode>2.
4034
4035 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
4036
4037         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
4038         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
4039         (atomic_sub_fetchsi): ... this new pattern.
4040         (mvtc): Add CC_REG clobber.
4041
4042 2016-05-31  Marek Polacek  <polacek@redhat.com>
4043
4044         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
4045
4046 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4047
4048         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
4049         aarch64_fusion_enabled_p to check for fusion capabilities.
4050
4051 2016-05-31  Richard Biener  <rguenther@suse.de>
4052
4053         PR tree-optimization/71352
4054         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
4055         minus one and a negate.
4056
4057 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4058
4059         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
4060         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
4061         Delete prototype.
4062         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
4063         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
4064         Remove use of aarch64_simd_attr_length_move, set length attribute
4065         directly.
4066         (*aarch64_be_movoi): Likewise.
4067         (*aarch64_be_movci): Likewise.
4068         (*aarch64_be_movxi): Likewise.
4069
4070 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
4071
4072         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
4073         It no longer does that.
4074         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
4075
4076 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
4077
4078         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
4079         attribute __unused__.
4080
4081 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4082
4083         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
4084         * config/arm/arm.c (arm_arch_thumb1): Define.
4085         (arm_option_override): Initialize arm_arch_thumb1.
4086         * config/arm/arm.h (arm_arch_thumb1): Declare.
4087         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
4088         support Thumb-1 ISA.
4089
4090 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
4091
4092         PR target/71346
4093         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
4094         `Yv' for scalar operand.
4095
4096 2016-05-31  Tom de Vries  <tom@codesourcery.com>
4097
4098         PR tree-optimization/69068
4099         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
4100         phis with more than two args.
4101
4102 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
4103
4104         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
4105         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
4106         target.
4107
4108 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
4109
4110         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
4111         tune_64.
4112         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4113         support on SPARC.
4114         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
4115         cpu_32, cpu_64, tune_32 and tune_64.
4116         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
4117
4118 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
4119
4120         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
4121
4122 2016-05-30  Andi Kleen  <ak@linux.intel.com>
4123
4124         * auto-profile.c (read_profile): Replace asserts with errors
4125         when file does not exist.
4126         * gcov-io.c (gcov_read_words): Dito.
4127
4128 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4129
4130         * tree-cfg.c (print_loop): Print likely upper bounds.
4131
4132 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4133
4134         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
4135         * opts.c (default_options): Enable peel loops at -O3.
4136         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
4137         (try_peel_loop): Do not re-peel already peeled loops;
4138         use likely upper bounds; fix profile updating.
4139         (pass_complete_unroll::execute): Initialize peeled_loops.
4140
4141 2016-05-30  Martin Liska  <mliska@suse.cz>
4142
4143         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
4144         computed costs by frequency of BB they belong to.
4145         (get_scaled_computation_cost_at): New function.
4146
4147 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
4148             Marc Glisse  <marc.glisse@inria.fr>
4149
4150         PR tree-optimization/71289
4151         * match.pd (-1 / B < A, A > -1 / B): New transformations.
4152
4153 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4154
4155         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
4156
4157 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4158
4159         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
4160         for peeled copies; avoid underflow when updating estimates; correctly
4161         scale loop profile.
4162
4163 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4164
4165         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
4166         r236875. Corrected oe3 to oe2 as obvious.
4167
4168 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4169
4170         PR middle-end/71269
4171         PR middle-end/71252
4172         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
4173         that inserted stmt will not dominate stmts that defines its operand.
4174         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
4175         (rewrite_expr_tree_parallel): Likewise.
4176
4177 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4178
4179         PR middle-end/71252
4180         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
4181         all fields including stmt_to_insert are swapped.
4182
4183 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4184
4185         * predict.h (force_edge_cold): Declare.
4186         * predict.c (force_edge_cold): New function.
4187         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
4188         updating.
4189         (canonicalize_loop_induction_variables): Fix formating.
4190
4191 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4192
4193         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
4194         (visium_expand_copysign): Use gen_int_mode directly.
4195         (visium_compute_frame_size): Minor tweaks.
4196
4197 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4198
4199         * tree-vect-loop.c (vect_analyze_loop_2): Use
4200         likely_max_stmt_executions_int.
4201
4202 2016-05-30  Tom de Vries  <tom@codesourcery.com>
4203
4204         PR tree-optimization/69067
4205         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
4206
4207 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
4208
4209         PR target/71245
4210         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
4211         New peepholes to remove unneeded fild/fistp pairs.
4212         (define_peephole2 atomic_loaddi_fpu): Ditto.
4213
4214 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4215
4216         * predict.c (maybe_hot_frequency_p): Avoid division.
4217
4218 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
4219
4220         * doc/install.texi: Use https for shop.fsf.org.
4221
4222 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4223
4224         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
4225         likely_max_stmt_executions_int.
4226
4227 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4228
4229         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
4230         likely_max_stmt_executions_int.
4231
4232 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4233
4234         * profile.c (compute_branch_probabilities): Do not report hitrates
4235         here.
4236         (branch_prob): Report hitrates here.
4237         * predict.c (gimple_predict_edge): Do not assert profile status;
4238         fix formatting issues.
4239
4240 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4241
4242         * predict.c (edge_predicted_by_p): New function.
4243         (predict_paths_for_bb): Do not put multiple predictions of the same type
4244         on one edge.
4245
4246 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4247
4248         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
4249         commit.
4250
4251 2016-05-28  Alan Modra  <amodra@gmail.com>
4252
4253         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
4254
4255 2016-05-28  Alan Modra  <amodra@gmail.com>
4256
4257         PR rtl-optimization/71275
4258         * ira.c (ira): Free dominance info.
4259
4260 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
4261
4262         * doc/sourcebuild.texi: New address for upstream Go repository.
4263
4264 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4265
4266         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
4267         (TARGET_ARM_V7M): Likewise.
4268
4269 2016-05-26  Jeff Law  <law@redhat.com>
4270
4271         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
4272         (thread_across_edge): Remove calls to find_jump_threads_backwards.
4273         * passes.def: Add jump threading passes before DOM/VRP.
4274         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
4275         argument to a basic block from an edge.  Remove tests which are
4276         handled elsewhere.
4277         (pass_data_thread_jumps, class pass_thread_jumps): New.
4278         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
4279         (make_pass_thread_jumps): Likewise.
4280         * tree-pass.h (make_pass_thread_jumps): Declare.
4281
4282 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4283
4284         * config/visium/visium-protos.h (split_double_move): Rename into...
4285         (visium_split_double_move): ...this.
4286         (visium_split_double_add): Declare.
4287         * config/visium/visium.c (split_double_move): Rename into...
4288         (visium_split_double_move): ...this.
4289         (visium_split_double_add): New function.
4290         (visium_expand_copysign): Renumber operands for consistency.
4291         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
4292         (DFmode move splitter): Likewise.
4293         (*addi3_insn): Split by means of visium_split_double_add.
4294         (*adddi3_insn_flags): Delete.
4295         (*plus_plus_sltu<subst_arith>): New insn.
4296         (*subdi3_insn): Split by means of visium_split_double_add.
4297         (subdi3_insn_flags): Delete.
4298         (*minus_minus_sltu<subst_arith>): New insn.
4299         (*negdi2_insn): Split by means of visium_split_double_add.
4300         (*negdi2_insn_flags): Delete.
4301
4302 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
4303
4304         * configure.ac: Treat a --with-headers option without argument
4305         the same as the default (i.e. consult sys-include directory).
4306         * configure: Regenerate.
4307
4308 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4309
4310         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
4311         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
4312         prototype.
4313         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
4314         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
4315
4316 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
4317
4318         PR target/63596
4319         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
4320         tree-stdarg analysis results.
4321         (aarch64_setup_incoming_varargs): Likewise.
4322
4323 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
4324
4325         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
4326         va_list_gpr_counter_field and va_list_fpr_counter_field.
4327
4328 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
4329
4330         PR67609
4331         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
4332         * config/aarch64/aarch64.c
4333         (aarch64_cannot_change_mode_class): Remove function.
4334         * config/aarch64/aarch64-protos.h
4335         (aarch64_cannot_change_mode_class): Remove.
4336
4337 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4338
4339         * cfgloop.c (record_niter_bound): Record likely upper bounds.
4340         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
4341         get_likely_max_loop_iterations_int): New.
4342         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
4343         any_likely_upper_bound.
4344         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
4345         Declare.
4346         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
4347         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
4348         upper bound.
4349         (unroll_loop_constant_iterations): Likewise.
4350         (unroll_loop_runtime_iterations): Likewise.
4351         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
4352         * lto-streamer-out.c (output_cfg): Likewise.
4353         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
4354         bounds.
4355         (canonicalize_loop_induction_variables): Dump likely upper bounds.
4356         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
4357         (likely_max_loop_iterations): New.
4358         (likely_max_loop_iterations_int): New.
4359         (likely_max_stmt_executions): New.
4360         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
4361         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
4362         likely_max_stmt_executions): Declare.
4363
4364 2016-05-27  Marek Polacek  <polacek@redhat.com>
4365
4366         PR middle-end/71308
4367         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
4368
4369 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4370
4371         * config/s390/s390.md (2x risbg splitters): Use
4372         reg_overlap_mentioned_p instead of rtx_equal_p.
4373
4374 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4375
4376         * combine.c (make_compound_operation): Take known zero bits into
4377         account when checking for possible zero_extend.
4378
4379 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4380
4381         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
4382         Use const_int_operand for operand 2 predicate.  Simplify expand code
4383         as a result.
4384
4385 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
4386
4387         PR middle-end/71279
4388         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
4389         into comparison.
4390
4391 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4392
4393         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
4394         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
4395         that returns CC_SESWPmode and CC_ZESWPmode.
4396         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
4397         and CC_SESWPmode.
4398         (aarch64_rtx_costs): Likewise.
4399
4400 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4401
4402         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
4403         for ISA 3.0 min/max support.
4404         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
4405         conditional move support.
4406         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
4407         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
4408         available.
4409         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
4410         conditional moves where the comparison type is different from move
4411         type.
4412         (fp_minmax): New code iterator for smin/smax.
4413         (minmax): New code attributes for min/max.
4414         (SMINMAX): Likewise.
4415         (smax<mode>3): Combine min, max insns into one insn using the
4416         fp_minmax code iterator.  Add support for ISA 3.0 min/max
4417         instructions that don't need -ffast-math.
4418         (s<minmax><mode>3): Likewise.
4419         (smax<mode>3_vsx): Likewise.
4420         (smin<mode>3): Likewise.
4421         (s<minmax><mode>3_vsx): Likewise.
4422         (smin<mode>3_vsx): Likewise.
4423         (pre-VSX min/max splitters): Likewise.
4424         (s<minmax><mode>3_fpr): Likewise.
4425         (movsfcc): Rewrite floating point conditional moves to combine
4426         SFmode/DFmode into a single insn.
4427         (mov<mode>cc): Likewise.
4428         (movdfcc): Likewise.
4429         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
4430         SFDF2 iterators to handle all combinations.
4431         (fseldfsf4): Likewise.
4432         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
4433         (fseldfdf4): Likewise.
4434         (fselsfdf4): Likewise.
4435         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
4436         comparison instructions that set a 0/-1 mask, and use it for
4437         floating point conditional move via XXSEL.
4438         (fpmask<mode>): Likewise.
4439         (xxsel<mode>): Likewise.
4440         * config/rs6000/predicates.md (min_max_operator): Delete, no
4441         longer used.
4442         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
4443         instructions that generate a 0/-1 mask for use with XXSEL.
4444         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
4445         say whether floating point min/max is available, either through
4446         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
4447         (TARGET_MINMAX_DF): Likewise.
4448
4449 2016-05-27  Alan Modra  <amodra@gmail.com>
4450
4451         PR rtl-optimization/71275
4452         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
4453         for update_equiv_regs and combine_and_move_insns.
4454
4455 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
4456
4457         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
4458         if_then_else or cond RTXes to calculate attribute value.
4459         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
4460         <attr "length_immediate>: Ditto.
4461         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
4462         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
4463         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
4464         <attr "type">: Ditto.
4465         <attr "prefix_data16">: Ditto.
4466         <attr "prefix_extra">: Ditto.
4467         <attr "length_immediate">: Ditto.
4468         <attr "prefix">: Ditto.
4469         (vec_set<mode>_0) <attr "isa">: Ditto.
4470         <attr "prefix_extra">: Ditto.
4471         <attr "length_immediate">: Ditto.
4472         <attr "prefix">: Ditto.
4473         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
4474         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
4475         (sse2_storelpd) <attr "prefix_data16">: Ditto.
4476         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
4477         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
4478         <attr "length_immediate">: Ditto.
4479         <attr "prefix">: Ditto.
4480         (sse2_movsd) <attr "length_immediate">: Ditto.
4481         <attr "prefix">: Ditto.
4482         (vec_concatv2df)  <attr "isa">: Ditto.
4483         <attr "prefix">: Ditto.
4484         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
4485         (*vec_extractv2di_1) <attr "isa">: Ditto.
4486         <attr "type">: Ditto.
4487         <attr "length_immediate">: Ditto.
4488         <attr "prefix_rex">: Ditto.
4489         <attr "prefix_extra">: Ditto.
4490         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
4491         <attr "prefix_extra">: Ditto.
4492         <attr "length_immediate">: Ditto.
4493         (vec_concatv2di) <attr "isa">: Ditto.
4494         <attr "prefix_extra">: Ditto.
4495         <attr "length_immediate">: Ditto.
4496         <attr "prefix">: Ditto.
4497
4498 2016-05-26  Martin Liska  <mliska@suse.cz>
4499
4500         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
4501         function.
4502         (operator+): Likewise.
4503         (operator-): Likewise.
4504         (comp_cost::operator+=): Likewise.
4505         (comp_cost::operator-=): Likewise.
4506         (comp_cost::operator/=): Likewise.
4507         (comp_cost::operator*=): Likewise.
4508         (operator<): Likewise.
4509         (operator==): Likewise.
4510         (operator<=): Likewise.
4511         (new_cost): Remove.
4512         (infinite_cost_p): Likewise.
4513         (add_costs): Likewise.
4514         (sub_costs): Likewise.
4515         (compare_costs): Likewise.
4516         (set_group_iv_cost): Use the newly introduced functions.
4517         (get_address_cost): Likewise.
4518         (get_shiftadd_cost): Likewise.
4519         (force_expr_to_var_cost): Likewise.
4520         (split_address_cost): Likewise.
4521         (ptr_difference_cost): Likewise.
4522         (difference_cost): Likewise.
4523         (get_computation_cost_at): Likewise.
4524         (determine_group_iv_cost_generic): Likewise.
4525         (determine_group_iv_cost_address): Likewise.
4526         (determine_group_iv_cost_cond): Likewise.
4527         (autoinc_possible_for_pair): Likewise.
4528         (determine_group_iv_costs): Likewise.
4529         (cheaper_cost_pair): Likewise.
4530         (iv_ca_recount_cost): Likewise.
4531         (iv_ca_set_no_cp): Likewise.
4532         (iv_ca_set_cp): Likewise.
4533         (iv_ca_cost): Likewise.
4534         (iv_ca_new): Likewise.
4535         (iv_ca_dump): Likewise.
4536         (iv_ca_narrow): Likewise.
4537         (iv_ca_prune): Likewise.
4538         (iv_ca_replace): Likewise.
4539         (try_add_cand_for): Likewise.
4540         (try_improve_iv_set): Likewise.
4541         (find_optimal_iv_set): Likewise.
4542
4543 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
4544
4545         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
4546         that internal functions will clobber all caller-saved registers.
4547
4548 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
4549
4550         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
4551         Return a better case_values_threshold when optimizing.
4552
4553 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
4554
4555         * config/aarch64/aarch64-simd.md (aarch64_combinez):
4556         Add ? to integer variant.
4557         (aarch64_combinez_be): Likewise.
4558
4559 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
4560
4561         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
4562         instead of x constraint.
4563         (vcvtps2ph256<mask_name>): Likewise.
4564
4565         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
4566         alternative.  Formatting fix.
4567
4568         * config/i386/sse.md
4569         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
4570         to ...
4571         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
4572         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
4573         maybe_evex prefix instead of vex.
4574         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
4575         EXT_REX_SSE_REG_P (op0) case in the splitter.
4576
4577 2016-05-25  Jeff Law  <law@redhat.com>
4578
4579         PR tree-optimization/71272
4580         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
4581         Update comments.  Add test for empty path.
4582
4583 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
4584
4585         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
4586         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
4587         special case builtin.
4588         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4589         code for ALTIVEC_BUILTIN_VEC_CMPNE.
4590         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4591         for __builtin_vec_cmpne.
4592
4593 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4594
4595         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
4596         redundant test and bail out if the type of the new operand is not
4597         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
4598
4599 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
4600
4601         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
4602         (x_ix86_target_flags_explicit): Remove.
4603         * config/i386/i386.c (ix86_function_specific_save): Do not copy
4604         x_ix86_target_flags_explicit.
4605         (ix86_function_specific_restore): Ditto.
4606
4607 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
4608             H.J. Lu  <hongjiu.lu@intel.com>
4609
4610         PR target/70738
4611         * common/config/i386/i386-common.c
4612         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
4613         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
4614         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
4615         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
4616         (-mgeneral-regs-only): Add new option.
4617         * config/i386/i386.c (ix86_option_override_internal): Don't enable
4618         x87 instructions if only general registers are allowed.
4619         (ix86_target_string): Add ix86_flags argument. Handle additional
4620         flags options through ix86_flags argument.  Update all callers.
4621         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
4622
4623 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4624
4625         PR rtl-optimization/66940
4626         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
4627         decrementing desired_val will not overflow before performing these
4628         operations.
4629
4630 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
4631
4632         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
4633         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
4634         * config/i386/i386.c (enum ix86_builtins): Add
4635         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
4636         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
4637         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
4638         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
4639         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
4640         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
4641         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
4642         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
4643         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
4644         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
4645         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
4646         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
4647         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
4648         __builtin_ia32_cvtps2dq512_mask.
4649         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
4650         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
4651         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
4652         * config/i386/sse.md
4653         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
4654         Rename to ...
4655         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
4656         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
4657         to ...
4658         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
4659         (avx512f_vec_pack_sfix_v8df): New define_expand.
4660         (avx512f_roundpd512): Rename to ...
4661         (avx512f_round<castmode>512): ... this.  Change iterator.
4662         (avx512f_roundps512_sfix): New define_expand.
4663         (round<mode>2_sfix): Change iterator.
4664
4665 2016-05-25  Nick Clifton  <nickc@redhat.com>
4666
4667         * config/msp430/msp430.c (msp430_attr): Produce an error if a
4668         static interrupt handler is detected.
4669         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
4670         default linker script.
4671         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
4672         the low part of a symbolic pointer.
4673
4674 2016-05-25  Richard Biener  <rguenther@suse.de>
4675
4676         PR tree-optimization/71261
4677         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
4678         interesting stmt instead of immediate uses when looking
4679         for the use operand to replace.
4680
4681 2016-05-25  Martin Liska  <mliska@suse.cz>
4682
4683         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
4684
4685 2016-05-25  Richard Biener  <rguenther@suse.de>
4686
4687         PR tree-optimization/71264
4688         * tree-vect-stmts.c (vect_init_vector): Properly deal with
4689         vector type val.
4690
4691 2016-05-25  Martin Liska  <mliska@suse.cz>
4692
4693         PR tree-optimization/71239
4694         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
4695         if DECL_SIZE is NULL.
4696
4697 2016-05-25  Richard Biener  <rguenther@suse.de>
4698
4699         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
4700         * tree-if-conv.c (pass_data_if_conversion): Use it.
4701
4702 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4703
4704         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
4705         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
4706         * varpool.c (varpool_node::get_availability): Likewise.
4707
4708 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4709
4710         * config/rs6000/altivec.md (VNEG iterator): New iterator for
4711         VNEGW/VNEGD instructions.
4712         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
4713         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
4714         support for ISA 3.0 VNEGW/VNEGD instructions.
4715
4716 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
4717
4718         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
4719         pointers inside OACC_DATA regions.
4720         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
4721         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
4722         (gimplify_adjust_omp_clauses): Fix typo in comment.
4723
4724 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4725
4726         * config/rs6000/altivec.md (VParity): New mode iterator for vector
4727         parity built-in functions.
4728         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
4729         zeros.
4730         (p9v_parity<mode>2): Likewise.
4731         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
4732         parity.
4733         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
4734         (parity<mode>2): ISA 3.0 expander for vector parity.
4735         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
4736         power9 built-ins.
4737         (BU_P9_64BIT_MISC_0): Likewise.
4738         (BU_P9_MISC_0): Likewise.
4739         (BU_P9V_AV_1): Likewise.
4740         (BU_P9V_AV_2): Likewise.
4741         (BU_P9V_AV_3): Likewise.
4742         (BU_P9V_AV_P): Likewise.
4743         (BU_P9V_VSX_1): Likewise.
4744         (BU_P9V_OVERLOAD_1): Likewise.
4745         (BU_P9V_OVERLOAD_2): Likewise.
4746         (BU_P9V_OVERLOAD_3): Likewise.
4747         (VCTZB): Add vector count trailing zeros support.
4748         (VCTZH): Likewise.
4749         (VCTZW): Likewise.
4750         (VCTZD): Likewise.
4751         (VPRTYBD): Add vector parity support.
4752         (VPRTYBQ): Likewise.
4753         (VPRTYBW): Likewise.
4754         (VCTZ): Add overloaded vector count trailing zeros support.
4755         (VPRTYB): Add overloaded vector parity support.
4756         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4757         overloaded vector count trailing zeros and parity instructions.
4758         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
4759         vector parity support.
4760         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
4761         trailing zeros support.
4762         (vec_cntlz): Likewise.
4763         (vec_vctzb): Likewise.
4764         (vec_vctzd): Likewise.
4765         (vec_vctzh): Likewise.
4766         (vec_vctzw): Likewise.
4767         (vec_vprtyb): Add ISA 3.0 vector parity support.
4768         (vec_vprtybd): Likewise.
4769         (vec_vprtybw): Likewise.
4770         (vec_vprtybq): Likewise.
4771         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
4772         the ISA 3.0 vector count trailing zeros and vector parity built-in
4773         functions.
4774
4775 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4776
4777         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
4778         when there is stmt_to_insert.
4779
4780 2016-05-24  Martin Sebor  <msebor@redhat.com>
4781
4782         PR c++/71147
4783         * tree.h (complete_or_array_type_p): New inline function.
4784
4785 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4786
4787         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
4788         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
4789         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
4790
4791         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
4792         Limit 1st alternative to noavx isa, split 2nd alternative into one
4793         noavx and one avx alternative, use *x and Bm in the former and
4794         x and m in the latter.
4795
4796         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
4797         of sse4 for the first alternative, drop %v from the template
4798         and d operand modifier.  Split second alternative into one sse4_noavx
4799         and one avx alternative, use *x instead of *v in the former and v
4800         instead of *v in the latter.
4801         (*sse4_1_extractps): Use noavx isa instead of * for the first
4802         alternative, drop %v from the template.  Split second alternative into
4803         one noavx and one avx alternative, use *x instead of *v in the
4804         former and v instead of *v in the latter.
4805         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
4806         with noavx and the last one with avx.
4807         (sse4_1_phminposuw): Guard first alternative with noavx isa,
4808         split the second one into one noavx and one avx alternative,
4809         use *x and Bm in the former and x and m in the latter one.
4810         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
4811         alternatives.
4812
4813         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
4814         first two alternatives to noavx, use *x instead of *v in the second
4815         one, add avx alternative without *.
4816         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
4817         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
4818         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
4819
4820 2016-05-24  Jeff Law  <law@redhat.com>
4821
4822         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
4823         New function, extracted from...
4824         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
4825         Allow simple copies and constant initializations in the SSA chain.
4826
4827 2016-05-24  Marek Polacek  <polacek@redhat.com>
4828
4829         PR c/71249
4830         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
4831         scope.
4832
4833 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4834
4835         PR c++/71257
4836         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
4837         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
4838         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
4839         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
4840         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
4841
4842 2016-05-24  Richard Biener  <rguenther@suse.de>
4843
4844         PR tree-optimization/71240
4845         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
4846         has integral type.
4847
4848 2016-05-24  Richard Biener  <rguenther@suse.de>
4849
4850         PR tree-optimization/71230
4851         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
4852
4853 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4854
4855         * tree-vectorizer.h (vectorizable_comparison): Delete.
4856         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
4857         PURE_SLP_STMT check.
4858         * tree-vect-stmts.c (vectorizable_call): Likewise.
4859         (vectorizable_simd_clone_call): Likewise.
4860         (vectorizable_conversion): Likewise.
4861         (vectorizable_assignment): Likewise.
4862         (vectorizable_shift): Likewise.
4863         (vectorizable_operation): Likewise.
4864         (vectorizable_load): Likewise.
4865         (vectorizable_condition): Likewise.
4866         (vectorizable_store): Likewise.  Assert that we don't have
4867         hybrid SLP.
4868         (vectorizable_comparison): Make static.  Remove redundant
4869         PURE_SLP_STMT check.
4870         (vect_transform_stmt): Assert that we always have an slp_node
4871         if PURE_SLP_STMT.
4872
4873 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4874
4875         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
4876         operands[2] against 1 with comparison against CONST1_RTX.
4877         (<shift>di3_neon): Likewise.
4878         * config/arm/predicates.md (const0_operand): Replace with comparison
4879         against CONST0_RTX.
4880
4881 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4882
4883         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
4884         operands[2] against 1 with comparison against CONST1_RTX.
4885         (ashrdi3): Likewise.
4886         (lshrdi3): Likewise.
4887         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
4888         UINTVAL.
4889         (ashrsi3): Likewise.
4890         (lshrsi3): Likewise.
4891         (rotrsi3): Likewise.
4892         (define_split above *compareqi_eq0): Likewise.
4893         (define_split above "prologue"): Likewise.
4894         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
4895         * config/arm/predicates.md (shift_operator): Likewise.
4896         (shift_nomul_operator): Likewise.
4897         (sat_shift_operator): Likewise.
4898         (thumb1_cmp_operand): Likewise.
4899         (const_neon_scalar_shift_amount_operand): Replace manual range
4900         check with IN_RANGE.
4901         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
4902         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
4903
4904 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4905
4906         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
4907         with HOST_WIDE_INT_1.
4908         (insv): Likewise.
4909         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
4910         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
4911         (arm_canonicalize_comparison): Likewise.
4912         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
4913         HOST_WIDE_INT_1.
4914         (thumb1_size_rtx_costs): Likewise.
4915         (vfp_const_double_index): Replace cast of 1 to unsigned
4916         HOST_WIDE_INT with HOST_WIDE_INT_1U.
4917         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
4918         HOST_WIDE_INT_1.
4919         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
4920         HOST_WIDE_INT with HOST_WIDE_INT_1U.
4921         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
4922         HOST_WIDE_INT with HOST_WIDE_INT_1.
4923
4924 2016-05-24  Marek Polacek  <polacek@redhat.com>
4925
4926         * tree-cfg.h (should_remove_lhs_p): New predicate.
4927         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
4928         * gimplify.c (gimplify_modify_expr): Likewise.
4929         * tree-cfg.c (verify_gimple_call): Likewise.
4930         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
4931         * gimple-fold.c: Include "tree-cfg.h".
4932         (gimple_fold_call): Use should_remove_lhs_p.
4933
4934 2016-05-24  Richard Biener  <rguenther@suse.de>
4935
4936         PR tree-optimization/71253
4937         * cfganal.h (control_dependences): Make robust against edge
4938         and BB removal.
4939         (control_dependences::control_dependences): Remove edge_list argument.
4940         (control_dependences::get_edge): Remove.
4941         (control_dependences::get_edge_src): Add.
4942         (control_dependences::get_edge_dest): Likewise.
4943         (control_dependences::m_el): Make a vector of edge src/dest index.
4944         * cfganal.c (control_dependences::find_control_dependence): Adjust.
4945         (control_dependences::control_dependences): Likewise.
4946         (control_dependences::~control_dependence): Likewise.
4947         (control_dependences::get_edge): Remove.
4948         (control_dependences::get_edge_src): Add.
4949         (control_dependences::get_edge_dest): Likewise.
4950         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
4951         get_edge_src.
4952         (perform_tree_ssa_dce): Adjust.
4953         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
4954         get_edge_src.
4955         (pass_loop_distribution::execute): Adjust.  Do loop destroying
4956         conditional on changed.
4957
4958 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4959
4960         PR target/69857
4961         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
4962         return.  Reindent transformation comment and mention the ARM state
4963         behavior.
4964
4965 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4966
4967         PR middle-end/71252
4968         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
4969         after build_and_add_sum creates new use stmt.
4970
4971 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4972
4973         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
4974         load_lanes/grouped_load classification comes first.  Don't check
4975         whether the vectorization factor is a multiple of the group size
4976         for load_lanes.
4977
4978 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
4979
4980         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
4981         GROUP_GAP for single-element interleaving.
4982         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
4983         variable.
4984
4985 2016-05-24  Richard Biener  <rguenther@suse.de>
4986
4987         PR middle-end/70434
4988         PR c/69504
4989         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
4990         bases which are accessed with non-invariant indices.
4991         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
4992         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
4993
4994 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4995
4996         PR middle-end/71170
4997         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
4998         (add_to_ops_vec): Add stmt_to_insert.
4999         (add_repeat_to_ops_vec): Init stmt_to_insert.
5000         (insert_stmt_before_use): New.
5001         (transform_add_to_multiply): Remove mult_stmt insertion and add it
5002         to ops vector.
5003         (get_ops): Init stmt_to_insert.
5004         (maybe_optimize_range_tests): Likewise.
5005         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
5006         (rewrite_expr_tree_parallel): Likewise.
5007         (reassociate_bb): Likewise.
5008
5009 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5010
5011         PR target/71201
5012         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
5013         ISA 3.0 xxperm fusion alternative.
5014         (altivec_vperm_v8hiv16qi): Likewise.
5015         (altivec_vperm_<mode>_uns_internal): Likewise.
5016         (vperm_v8hiv4si): Likewise.
5017         (vperm_v16qiv8hi): Likewise.
5018
5019 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5020             Kelvin Nilsen  <kelvin@gcc.gnu.org>
5021
5022         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
5023         vpermr/xxpermr on ISA 3.0.
5024         (altivec_expand_vec_perm_le): Likewise.
5025         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
5026         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
5027         ISA 3.0.
5028
5029 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
5030
5031         * config/i386/i386.h (IS_STACK_MODE): Enable for
5032         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
5033         SSE_FLOAT_MODE_P macros.
5034         * config/i386/i386.c (ix86_preferred_reload_class): Use
5035         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
5036         Cleanup regclass processing for CONST_DOUBLE_P.
5037         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
5038         (ix86_rtx_costs): Remove redundant TARGET_80387 check
5039         with IS_STACK_MODE macro.
5040         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
5041         with TARGET_SSE2.
5042         (*movdf_internal): Use IS_STACK_MODE macro.
5043         (*movsf_internal): Ditto.
5044
5045 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
5046
5047         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
5048         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
5049
5050 2016-05-23  Jeff Law  <law@redhat.com>
5051
5052         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
5053         extracted from ...
5054         (fsm_find_control_statement_thread_paths): Call it.
5055
5056 2016-05-23  Martin Jambor  <mjambor@suse.cz>
5057
5058         PR ipa/71234
5059         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
5060         from_global_constant if t is not NULL.
5061
5062 2016-05-23  Marek Polacek  <polacek@redhat.com>
5063
5064         PR c/49859
5065         * common.opt (Wswitch-unreachable): New option.
5066         * doc/invoke.texi: Document -Wswitch-unreachable.
5067         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
5068         warning.
5069
5070 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
5071
5072         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
5073         TMR_INDEX is non-NULL.
5074
5075 2016-05-23  Richard Biener  <rguenther@suse.de>
5076
5077         PR tree-optimization/71230
5078         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
5079         (try_special_add_to_ops): ... here.  Always test for single-use.
5080
5081 2016-05-23  Martin Jambor  <mjambor@suse.cz>
5082
5083         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
5084         default block if a PHI node in the original one would be resized.
5085
5086 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5087
5088         PR tree-optimization/58135
5089         * tree-vect-slp.c: When group size is not multiple
5090         of vector size, allow splitting of store group at
5091         vector boundary.
5092
5093 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
5094
5095         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
5096
5097 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
5098
5099         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
5100         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
5101         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
5102         of 64x2.
5103
5104         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
5105         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
5106         v constraint instead of x and vinserti32x4 insn.
5107
5108         * config/i386/sse.md (i128vldq): New mode iterator.
5109         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
5110         avx512dq and avx512vl alternatives.
5111
5112         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
5113         constraint, use maybe_evex prefix instead of vex.
5114         (vec_dupv4sf): Use v constraint instead of x for output
5115         operand except for noavx alternative, use Yv constraint
5116         instead of x for input.  Use maybe_evex prefix instead of vex.
5117         (*vec_dupv4si): Likewise.
5118         (*vec_dupv2di): Likewise.
5119
5120 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
5121
5122         PR middle-end/40921
5123         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
5124         (linearize_expr_tree): Call try_special_add_to_ops.
5125         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
5126
5127 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5128
5129         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
5130         to computed stack_usage.
5131
5132 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
5133
5134         PR target/71103
5135         * config/avr/avr.md (define_expand "mov<mode>"): If the source
5136         operand is subreg (symbol_ref) then move the symbol ref to register.
5137
5138 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
5139
5140         * tree.c (array_at_struct_end_p): Look through MEM_REF.
5141
5142 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
5143
5144         PR middle-end/71179
5145         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
5146         VECTOR type.
5147
5148 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
5149
5150         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
5151         ranges by calling get_single_symbol and tidy up.  Look more closely
5152         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
5153
5154 2016-05-20  Jeff Law  <law@redhat.com>
5155
5156         * bitmap.c (bitmap_find_bit): Remove useless test.
5157
5158 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
5159
5160         * function.c (thread_prologue_and_epilogue_insns): Commit the
5161         insertion of the epilogue.
5162
5163 2016-05-20  Martin Jambor  <mjambor@suse.cz>
5164
5165         PR tree-optimization/70884
5166         * tree-sra.c (initialize_constant_pool_replacements): Do not check
5167         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
5168         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
5169         of constant pool data as a reason for scalarization.
5170
5171 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
5172
5173         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
5174         for naked functions.
5175         (thumb1_expand_prologue): Likewise.
5176
5177 2016-05-20  Nathan Sidwell  <nathan@acm.org>
5178
5179         * config/nvptx/nptx.c (nvptx_option_override): Only set
5180         flag_toplevel_reorder, if not explicitly specified.  Set
5181         flag_no_common, unless explicitly specified.
5182
5183 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5184
5185         * calls.c (can_implement_as_sibling_call_p): Mark param
5186         reg_parm_stack_space with ATTRIBUTE_UNUSED.
5187
5188 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
5189
5190         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
5191         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
5192         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
5193         constants.
5194         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
5195         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
5196         and CASE_CONST_ANY.
5197
5198 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
5199
5200         * config/nvptx/nvptx.md (sincossf3): New pattern.
5201
5202 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5203
5204         * calls.c (maybe_complain_about_tail_call): New function.
5205         (initialize_argument_information): Call
5206         maybe_complain_about_tail_call when clearing *may_tailcall.
5207         (can_implement_as_sibling_call_p): Call
5208         maybe_complain_about_tail_call when returning false.
5209         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
5210         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
5211         if tail-call optimization fails.
5212         * cfgexpand.c (expand_call_stmt): Initialize
5213         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
5214         * gimple-pretty-print.c (dump_gimple_call): Dump
5215         gimple_call_must_tail_p.
5216         * gimple.c (gimple_build_call_from_tree): Call
5217         gimple_call_set_must_tail with the value of
5218         CALL_EXPR_MUST_TAIL_CALL.
5219         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
5220         (gimple_call_set_must_tail): New function.
5221         (gimple_call_must_tail_p): New function.
5222         * print-tree.c (print_node): Update printing of TREE_STATIC
5223         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
5224         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
5225         trailing comment listing applicable flags.
5226         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
5227
5228 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5229
5230         * calls.c (expand_call): Move "Rest of purposes for tail call
5231         optimizations to fail" to...
5232         (can_implement_as_sibling_call_p): ...this new function, and
5233         split into multiple "if" statements.
5234
5235 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5236
5237         * cfgloop.h (expected_loop_iterations_unbounded,
5238         expected_loop_iterations): Unconstify.
5239         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
5240         profile with known upper bound; return 3 when profile is absent.
5241         (expected_loop_iterations): Update.
5242
5243 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5244
5245         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
5246         and get_max_loop_iterations_int.
5247
5248 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5249
5250         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
5251         realistic upper bounds here.
5252
5253 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
5254
5255         PR c++/71210
5256         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
5257         calls if the LHS is variable length or has addressable type.
5258         If targets[0]->decl is a noreturn call with void return type and
5259         zero arguments, adjust fntype and remove lhs in that case.
5260
5261 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
5262
5263         PR tree-optimization/71079
5264         PR tree-optimization/71206
5265         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
5266
5267 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5268
5269         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
5270         (get_vec_alignment_for_array_decl): Likewise.
5271         (get_vec_alignment_for_record_decl): Likewise.
5272         (increase_alignment::execute): Move code to find alignment to
5273         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
5274         (type_align_map): New hash_map.
5275
5276 2016-05-20  Richard Guenther  <rguenther@suse.de>
5277
5278         PR tree-optimization/29756
5279         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
5280         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
5281         * fold-const.c (operand_equal_p): Likewise.
5282         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
5283         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
5284         * tree-inline.c (estimate_operator_cost): Likewise.
5285         * tree-pretty-print.c (dump_generic_node): Likewise.
5286         * tree-ssa-operands.c (get_expr_operands): Likewise.
5287         * cfgexpand.c (expand_debug_expr): Likewise.
5288         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5289         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
5290         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
5291         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
5292         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
5293         (execute_update_addresses_taken): Do it.
5294
5295 2016-05-20  Richard Biener  <rguenther@suse.de>
5296
5297         PR tree-optimization/71185
5298         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
5299         register operations.
5300
5301 2016-05-20  Richard Biener  <rguenther@suse.de>
5302
5303         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
5304         gimple_seq_add_seq_without_update.
5305         (release_bb_predicate): Assert we have no operands to free.
5306         (if_convertible_loop_p_1): Calculate post dominators later.
5307         Do not free BB predicates here.
5308         (combine_blocks): Do not recompute BB predicates.
5309         (version_loop_for_if_conversion): Save BB predicates around
5310         loop versioning.
5311
5312 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
5313
5314         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
5315         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
5316         code.  Ignore sibcalls on EDGE_IGNORE edges.
5317         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
5318         on edges for sibcalls that run without prologue.  The rest of the
5319         function is combined from...
5320         (fix_fake_fallthrough_edge): ... this, and ...
5321         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
5322         function argument, make it a local variable.
5323
5324 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
5325
5326         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
5327         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
5328         for 32-bit mode and SEH for 64-bit.
5329         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
5330         TARGET_64BIT_DEFAULT.
5331
5332 2016-05-19  Ryan Burn  <contact@rnburn.com>
5333
5334         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
5335         * gengtype.c (open_base_files): Add cilk.h to ifiles.
5336
5337 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
5338
5339         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
5340         force pending loads from memory.
5341
5342 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5343
5344         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
5345         (UNSPEC_DARN_32): New unspec constant.
5346         (UNSPEC_DARN_RAW): New unspec constant.
5347         (darn_32): New instruction.
5348         (darn_raw): New instruction.
5349         (darn): New instruction.
5350         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
5351         support and documentation for this macro.
5352         (BU_P9_MISC_1): New macro definition.
5353         (BU_P9_64BIT_MISC_0): New macro definition.
5354         (BU_P9_MISC_0): New macro definition.
5355         (darn_32): New builtin definition.
5356         (darn_raw): New builtin definition.
5357         (darn): New builtin definition.
5358         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
5359         RS6000_BUILTIN_0 directives to surround each occurrence of
5360         #include "rs6000-builtin.def".
5361         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
5362         RS6000_BTM_64BIT flags to the returned mask, depending on
5363         configuration.
5364         (def_builtin): Correct an error in the assignments made to the
5365         debugging variable attr_string.
5366         (rs6000_expand_builtin): Add support for no-operand built-in
5367         functions.
5368         (builtin_function_type): Remove fatal_error assertion that is no
5369         longer valid.
5370         (rs6000_common_init_builtins): Add support for no-operand built-in
5371         functions.
5372         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
5373         definition.
5374         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
5375         definition.
5376         (RS6000_BTM_64BIT): New macro definition.
5377         * doc/extend.texi: Document __builtin_darn (void),
5378         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
5379         functions.
5380
5381 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
5382
5383         * tree-vect-loop.c (vect_analyze_loop_2): Use also
5384         max_loop_iterations_int.
5385
5386 2016-05-19  Marek Polacek  <polacek@redhat.com>
5387
5388         PR tree-optimization/71031
5389         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
5390         condition and adjust the code a bit.
5391
5392 2016-05-19  Martin Liska  <mliska@suse.cz>
5393
5394         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
5395         auto_vec instead of vec.
5396
5397 2016-05-19  Martin Liska  <mliska@suse.cz>
5398
5399         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
5400
5401 2016-05-19  Martin Liska  <mliska@suse.cz>
5402
5403         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
5404
5405 2016-05-19  Martin Liska  <mliska@suse.cz>
5406
5407         * ipa-pure-const.c (set_function_state): Remove an existing
5408         funct_state.
5409         (remove_node_data): Do not free it as it's released
5410         in set_function_state.
5411
5412 2016-05-19  Martin Liska  <mliska@suse.cz>
5413
5414         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
5415         bitmap.
5416
5417 2016-05-19  Martin Liska  <mliska@suse.cz>
5418
5419         * omp-simd-clone.c (simd_clone_adjust): Release vector.
5420
5421 2016-05-19  Martin Liska  <mliska@suse.cz>
5422
5423         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
5424         an auto_vec instead of re-creating it.
5425
5426 2016-05-19  Martin Liska  <mliska@suse.cz>
5427
5428         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
5429         auto_vec instead of vec.
5430
5431 2016-05-19  Martin Liska  <mliska@suse.cz>
5432
5433         * lto-section-in.c (lto_get_section_data): Call
5434         lto_check_version with additional argument.
5435         * lto-streamer.c (lto_check_version): Add new argument.
5436         * lto-streamer.h (lto_check_version): Likewise.
5437
5438 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5439
5440         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
5441         Don't add cost of inner memory when handling sign-extended loads.
5442
5443 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
5444
5445         PR rtl-optimization/71148
5446         * cse.c (cse_main): Free dominance info.
5447         (rest_of_handle_cse): Don't free dominance info.
5448         (rest_of_handle_cse2): Likewise.
5449         (rest_of_handle_cse_after_global_opts): Likewise.
5450
5451 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5452
5453         PR target/71056
5454         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
5455         NULL_TREE early if NEON is not available.  Remove now redundant check
5456         in ARM_CHECK_BUILTIN_MODE.
5457
5458 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
5459
5460         PR sanitizer/64354
5461         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
5462         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
5463         * doc/cpp.texi: Document new macros.
5464
5465 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
5466
5467         PR tree-optimization/69848
5468         * tree-vect-loop.c (vectorizable_reduction): Don't factor
5469         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
5470
5471 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
5472
5473         * function.c (thread_prologue_and_epilogue_insn): Move the
5474         "goto epilogue_done" one block later.
5475
5476 2016-05-19  Richard Biener  <rguenther@suse.de>
5477
5478         PR tree-optimization/70729
5479         * passes.def: Move LIM pass before PRE.  Remove no longer
5480         required copyprop and move first DCE out of the loop pipeline.
5481
5482 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
5483
5484         PR driver/69265
5485         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
5486         (OBJS-libcommon-target): ...here.
5487         * opts-common.c: Include spellcheck.h.
5488         (cmdline_handle_error): Build a vec of valid options and use it
5489         to suggest provide hints for misspelled arguments.
5490
5491 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
5492
5493         PR c++/71100
5494         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
5495         lhs if it has TREE_ADDRESSABLE type.
5496
5497 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
5498
5499         PR target/71145
5500         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
5501         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
5502
5503 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5504
5505         PR ipa/69708
5506         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
5507         input for NOP_EXPR pass-through functions.
5508         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
5509         aggregate global constant VAR_DECLs in constant jump functions.
5510
5511 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5512
5513         PR ipa/69708
5514         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
5515         from TREE_READONLY parameters.
5516
5517 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5518
5519         PR ipa/69708
5520         * cgraph.h (cgraph_indirect_call_info): New field
5521         guaranteed_unmodified.
5522         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
5523         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
5524         appropriate.
5525         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
5526         pass the parameter value to ipa_find_agg_cst_for_param.
5527         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
5528         guaranteed_unmodified, store AA results there instead of bailing out
5529         if present.
5530         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
5531         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
5532         (find_constructor_constant_at_offset): New function.
5533         (ipa_find_agg_cst_from_init): Likewise.
5534         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
5535         static initializers of contants, report back through a new paameter
5536         from_global_constant if that was the case.
5537         (try_make_edge_direct_simple_call): Also pass parameter value to
5538         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
5539         appropriate.
5540         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
5541         (ipa_read_indirect_edge_info): Likewise.
5542         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
5543         (ipa_load_from_parm_agg): Likewise.
5544
5545 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
5546
5547         PR rtl-optimization/71150
5548         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
5549         check.
5550
5551 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5552
5553         PR target/70915
5554         * config/rs6000/constraints.md (wE constraint): New constraint
5555         for a vector constant that can be loaded with XXSPLTIB.
5556         (wM constraint): New constraint for a vector constant of a 1's.
5557         (wS constraint): New constraint for a vector constant that can be
5558         loaded with XXSPLTIB and a vector sign extend instruction.
5559         * config/rs6000/predicates.md (xxspltib_constant_split): New
5560         predicates for wE/wS constraints.
5561         (xxspltib_constant_nosplit): Likewise.
5562         (easy_vector_constant): Add support for constants that can be
5563         loaded via XXSPLTIB.
5564         (all_ones_constant): New predicate for vector constant with all
5565         1's set.
5566         (splat_input_operand): Add support for ISA 3.0 word splat operations.
5567         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
5568         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
5569         instruction and possibly with a sign extension.
5570         (output_vec_const_move): Add support for XXSPLTIB. If we are
5571         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
5572         instead of XXLXOR/XXLORC.
5573         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
5574         operations.
5575         (rs6000_legitimize_reload_address): Likewise.
5576         (rs6000_output_move_128bit): Use output_vec_const_move to emit
5577         constants.
5578         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
5579         combine VSX_M and VSX_M2 into one iterator.
5580         (VSX_M2): Likewise.
5581         (VSINT_84): New iterators for loading constants with XXSPLTIB.
5582         (VSINT_842): Likewise.
5583         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
5584         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
5585         XXSPLTIB instruction.
5586         (xxspltib_<mode>_nosplit): Likewise.
5587         (xxspltib_<mode>_split): New insn to load up constants with
5588         XXSPLTIB and a sign extend instruction.
5589         (vsx_mov<mode>): Replace single move that handled all vector types
5590         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
5591         moves (when -mvsx-timode is in effect) into the main vector
5592         moves.  Eliminate separate moves for <VSr> <VSa>, where the
5593         preferred register class (<VSr>) is listed first, and the
5594         secondary register class (<VSa>) is listed second with a '?' to
5595         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
5596         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
5597         that if the register was involved in a slow operation, the
5598         clear/set operation does not wait for the slow operation to
5599         finish.  Adjust the length attributes for 32-bit mode.  Use
5600         rs6000_output_move_128bit and drop the use of the string
5601         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
5602         spacing so that the alternatives and attributes don't generate
5603         long lines, and put things in columns, so that it is easier to
5604         match up the operands and attributes with the insn alternatives.
5605         (vsx_mov<mode>_64bit): Likewise.
5606         (vsx_mov<mode>_32bit): Likewise.
5607         (vsx_movti_64bit): Fold movti into normal vector moves.
5608         (vsx_movti_32bit): Likewise.
5609         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
5610         splat instructions.
5611         (vsx_splat_v4si_internal): Likewise.
5612         (vsx_splat_v4sf_internal): Likewise.
5613         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
5614         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
5615         extend vector elements.
5616         (vsx_sign_extend_hi_<mode>): Likewise.
5617         (vsx_sign_extend_si_v2di): Likewise.
5618         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
5619         declaration.
5620         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
5621         constraints.  Add trailing period to wL documentation.
5622
5623 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
5624
5625         PR middle-end/71020
5626         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
5627         * tree-dfa.c (replace_abnormal_ssa_names): New function.
5628         * tree-call-cdce.c: Include tree-dfa.h.
5629         (can_guard_call_p): New function, extracted from...
5630         (can_use_internal_fn): ...here.
5631         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
5632         and return void.
5633         (shrink_wrap_one_built_in_call): Likewise.
5634         (use_internal_fn): Likewise.
5635         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
5636         and return void.  Call replace_abnormal_ssa_names.
5637         (pass_call_cdce::execute): Check can_guard_call_p during the
5638         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
5639         will always change something.
5640
5641 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5642
5643         PR ipa/70646
5644         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
5645         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
5646
5647 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5648
5649         PR ipa/70646
5650         * ipa-inline.h (condition): New field size.
5651         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
5652         for comaprison and store it into the new condition.
5653         (evaluate_conditions_for_known_args): Use condition size to check
5654         access sizes for all but CHANGED conditions.
5655         (unmodified_parm_1): New parameter size_p, store access size into it.
5656         (unmodified_parm): Likewise.
5657         (unmodified_parm_or_parm_agg_item): Likewise.
5658         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
5659         (set_cond_stmt_execution_predicate): Extract access sizes and store
5660         them to conditions.
5661         (set_switch_stmt_execution_predicate): Likewise.
5662         (will_be_nonconstant_expr_predicate): Likewise.
5663         (will_be_nonconstant_predicate): Likewise.
5664         (inline_read_section): Stream condition size.
5665         (inline_write_summary): Likewise.
5666
5667 2016-05-18  Richard Biener  <rguenther@suse.de>
5668
5669         * tree-ssa-loop-im.c (determine_max_movement): Properly add
5670         condition cost to PHI cost instead of total_cost.
5671
5672 2016-05-18  Martin Liska  <mliska@suse.cz>
5673
5674         PR fortran/70856
5675         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
5676         merged variables.
5677
5678 2016-05-18  Richard Biener  <rguenther@suse.de>
5679
5680         * lto-streamer.h (LTO_major_version): Bump to 6.
5681
5682 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
5683
5684         * function.c (make_split_prologue_seq, make_prologue_seq,
5685         make_epilogue_seq): New functions, factored out from...
5686         (thread_prologue_and_epilogue_insns): Here.
5687
5688 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
5689
5690         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5691         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
5692         of before.  Add a comment.
5693
5694 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
5695
5696         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
5697         expression pointer, not pointer to the pointer.
5698
5699 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
5700
5701         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
5702         (avx2_pbroadcast<mode>): Add another alternative with v instead
5703         of x constraints in it, using <pbroadcast_evex_isa> isa.
5704         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
5705
5706         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
5707         constraint x instead of v in second alternative, add avx512bw
5708         alternative.
5709
5710         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
5711         constraint x instead of v in second alternative, add avx512bw
5712         alternative.
5713
5714         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
5715         constraint x instead of v in second alternative, add avx512bw
5716         alternative.
5717
5718         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
5719         avx512bw alternative.
5720
5721 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5722
5723         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
5724         array to 128 chars.
5725         (define_insn "*andnottf3"): Ditto.
5726         (define_insn "*<code><mode>3"/any_logic): Ditto.
5727         (define_insn "*<code>tf3"/any_logic): Ditto.
5728         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
5729         operand to block AVX-512VL insn variant emit when it is not enabled.
5730
5731 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5732
5733         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
5734         constraint fot SF mode.
5735
5736 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
5737             Kirill Yukhin  <kirill.yukhin@intel.com>
5738
5739         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
5740         modifiers.
5741         (define_insn "rsqrt14<mode>"): Ditto.
5742         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
5743         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
5744         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
5745         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
5746         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
5747         Ditto.
5748         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
5749         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
5750         * config/i386/i386.c (ix86_print_operand): Expand check for size
5751         override codes for Intel syntax.
5752
5753 2016-05-18  Richard Biener  <rguenther@suse.de>
5754
5755         PR tree-optimization/71168
5756         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
5757         initialization earlier.
5758
5759 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
5760
5761         * config/aarch64/aarch64-simd.md
5762         (aarch64_reduc_plus_internal<mode>): Rename to...
5763         (reduc_plus_scal): ...This, and remove previous implementation.
5764
5765 2016-05-18  Richard Biener  <rguenther@suse.de>
5766
5767         * passes.def: Put late dse and cd_dce in canonical order.
5768
5769 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
5770
5771         * ipa-inline-transform.c (preserve_function_body_p): Look for
5772         first non-thunk clone.
5773         (save_function_body): Save into first non-thunk.
5774         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
5775         up call stmt id.
5776         (lto_output_node): Inline thunks don't need body in every
5777         partition.
5778         * lto-streamer-in.c: Do not fixup thunk clones.
5779         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
5780         thunks.
5781         * tree-inline.c (copy_bb): Be prepared for target node to be new after
5782         folding suceeds.
5783
5784 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5785
5786         PR middle-end/63586
5787         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
5788         (reassociate_bb): Call transform_add_to_multiply.
5789
5790 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5791
5792         * config/aarch64/aarch64.c (all_extensions): Removed unused
5793         static variable.
5794
5795 2016-05-17  Nathan Sidwell  <nathan@acm.org>
5796
5797         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
5798         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
5799
5800 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
5801
5802         PR tree-optimization/54579
5803         PR middle-end/55299
5804         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
5805
5806 2016-05-17  Marek Polacek  <polacek@redhat.com>
5807
5808         PR ipa/71146
5809         * tree-inline.c (expand_call_inline): Call
5810         maybe_remove_unused_call_args.
5811
5812 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
5813
5814         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
5815         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
5816         * doc/md.texi (fmin@var{m}3): Likewise.
5817
5818 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5819
5820         * match.pd (X & C): New transformation.
5821
5822 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5823
5824         * match.pd (~X & Y): New transformation.
5825
5826 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5827
5828         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
5829         information for new SSA_NAME.
5830         (simplify_conversion_using_ranges): Get range through get_range_info
5831         instead of get_value_range.
5832
5833 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5834
5835         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
5836         Remove inline assembly.
5837         (vmvn_s16): Likewise.
5838         (vmvn_s32): Likewise.
5839         (vmvn_u8): Likewise.
5840         (vmvn_u16): Likewise.
5841         (vmvn_u32): Likewise.
5842         (vmvnq_s8): Likewise.
5843         (vmvnq_s16): Likewise.
5844         (vmvnq_s32): Likewise.
5845         (vmvnq_u8): Likewise.
5846         (vmvnq_u16): Likewise.
5847         (vmvnq_u32): Likewise.
5848         (vmvn_p8): Likewise.
5849         (vmvnq_p16): Likewise.
5850
5851 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5852
5853         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
5854         Use builtin.
5855         (vmul_n_s16): Likewise.
5856         (vmul_n_s32): Likewise.
5857         (vmul_n_u16): Likewise.
5858         (vmul_n_u32): Likewise.
5859         (vmulq_n_f32): Likewise.
5860         (vmulq_n_f64): Likewise.
5861         (vmulq_n_s16): Likewise.
5862         (vmulq_n_s32): Likewise.
5863         (vmulq_n_u16): Likewise.
5864         (vmulq_n_u32): Likewise.
5865
5866 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5867
5868         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
5869         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
5870
5871 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
5872
5873         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
5874         to *aarch64_fma4_elt_from_dup<mode>.
5875         (*aarch64_fnma4_elt_to_128df): Rename to
5876         *aarch64_fnma4_elt_from_dup<mode>.
5877         * config/aarch64/arm_neon.h (vfma_n_f64): New.
5878         (vfms_n_f32): Likewise.
5879         (vfms_n_f64): Likewise.
5880         (vfmsq_n_f32): Likewise.
5881         (vfmsq_n_f64): Likewise.
5882
5883 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
5884
5885         * wide-int.h: Change fixed_wide_int_storage from class to struct.
5886
5887 2016-05-17  Richard Biener  <rguenther@suse.de>
5888
5889         PR tree-optimization/71132
5890         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
5891         Only add control dependences for blocks in the loop.
5892         (build_rdg): Adjust.
5893         (generate_code_for_partition): Return whether loop should
5894         be destroyed and delay that.
5895         (distribute_loop): Likewise.
5896         (pass_loop_distribution::execute): Record loops to be destroyed
5897         and perform delayed destroying of loops.
5898
5899 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5900
5901         PR target/70809
5902         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
5903
5904 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5905
5906         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
5907
5908 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
5909
5910         PR target/71114
5911         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
5912         insertion point for instructions generated by validize_mem.
5913
5914 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5915
5916         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
5917         in brackets.
5918
5919 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
5920
5921         * config/aarch64/aarch64.c
5922         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
5923         rather than a macro.
5924
5925 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5926
5927         * doc/invoke.texi (AArch64 Options): Various updates.
5928
5929 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
5930
5931         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
5932         into instrumentation thunks.
5933         * cif-code.def (CIF_CHKP): New.
5934
5935 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
5936
5937         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
5938
5939 2016-05-16  Martin Jambor  <mjambor@suse.cz>
5940
5941         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
5942         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
5943
5944 2016-05-16  Marek Polacek  <polacek@redhat.com>
5945
5946         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
5947         commentary.
5948
5949 2016-05-16  Martin Jambor  <mjambor@suse.cz>
5950
5951         PR hsa/70857
5952         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
5953         the outlined kernel function.
5954
5955 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
5956
5957         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
5958         (ISA_HAS_DLSA): Ditto.
5959
5960 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
5961
5962         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
5963
5964 2016-05-16  Nathan Sidwell  <nathan@acm.org>
5965
5966         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
5967         (nvptx_name_replacement): Restore.  Add comment.
5968         (write_fn_proto, write_fn_proto_from_insn,
5969         nvptx_output_call_insn): Restore
5970         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
5971
5972 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5973
5974         * config/aarch64/aarch64.md
5975         (add<mode>3_compareC_cconly_imm): Remove use of %w.
5976         (add<mode>3_compareC_imm): Likewise.
5977         (<optab>si3_uxtw): Split into register and immediate variants.
5978         (andsi3_compare0_uxtw): Likewise.
5979         (and<mode>3_compare0): Likewise.
5980         (and<mode>3nr_compare0): Likewise.
5981         (stack_protect_test_<mode>): Don't use %x for memory operands.
5982
5983 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
5984
5985         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
5986
5987 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
5988
5989         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
5990         Split integer shifts into shift_reg and bfm.
5991         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
5992         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
5993         (ror<mode>3_insn): Likewise.
5994         (<optab>si3_insn_uxtw): Likewise.
5995         (<optab><mode>3_insn): Change to rotate_imm.
5996         (extr<mode>5_insn_alt): Likewise.
5997         (extrsi5_insn_uxtw): Likewise.
5998         (extrsi5_insn_uxtw_alt): Likewise.
5999
6000 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
6001
6002         * doc/tm.texi: Regenerate.
6003         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
6004         (TARGET_INVALID_RETURN_TYPE): Remove.
6005         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
6006         TARGET_INVALID_RETURN_TYPE.
6007         * target.def (invalid_parameter_type): Remove.
6008         (invalid_return_type): Remove.
6009
6010 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6011
6012         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
6013         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
6014         calls from thunk.
6015         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
6016         gimple body.
6017         (preserve_function_body_p): No need to preserve function body
6018         * cif-codes.def (CIF_THUNK): Remove.
6019         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
6020
6021 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6022
6023         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
6024
6025 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6026
6027         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
6028         for thunks.
6029
6030 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6031
6032         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
6033         (inline_small_functions): Do not look for function symbol when
6034         resetting caches.
6035
6036 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6037
6038         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
6039         of inline thunks
6040
6041 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
6042             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6043             Jiong Wang  <jiong.wang@arm.com>
6044
6045         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
6046         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
6047         Define __ARM_FP16_ARGS when appropriate.
6048         * config/arm/arm.c (arm_invalid_parameter_type): Remove
6049         declaration.
6050         (arm_invalid_return_type): Likewise.
6051         (TARGET_INVALID_PARAMETER_TYPE): Remove.
6052         (TARGET_INVALID_RETURN_TYPE): Remove.
6053         (aapcs_vfp_sub_candidate): Allow HFmode.
6054         (aapcs_vfp_allocate): Add comment.  Support HFmode.
6055         (aapcs_vfp_allocate_return_reg): Likewise.
6056         (struct aapcs_cp_arg_layout): Slightly reword comments for
6057         is_return_candidate and allocate_return_reg.
6058         (output_mov_vfp): Update assert.
6059         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
6060         condition.
6061         (arm_invalid_parameter_type): Remove.
6062         (amr_invalid_return_type): Remove.
6063         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
6064         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
6065         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
6066
6067 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
6068
6069         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
6070         * config/aarch64/arch64-protos.h
6071         (aarch64_legitimize_reload_address): Remove.
6072         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
6073         Remove.
6074
6075 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
6076
6077         * configure.ac: Add ACX_NONCANONICAL_HOST.
6078         * configure: Regenerate.
6079         * Makefile.in: Set host_noncanonical.
6080
6081 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
6082
6083         PR target/71097
6084         * config/i386/i386.md (*movtf_internal): Before register allocation,
6085         do not allow FP constants for CM_MEDIUM memory model, allow only
6086         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
6087         (*movxf_internal): Ditto.
6088         (*movdf_internal): Ditto.
6089         (*movsf_internal): Ditto.
6090
6091 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
6092
6093         PR rtl-optimization/67483
6094         * combine.c (make_compound_operation): Don't call extract_left_shift
6095         with negative shift amounts.
6096
6097 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
6098
6099         PR bootstrap/71071
6100         * fold-const.c (fold_checksum_tree): Allow modification
6101         of TYPE_ALIAS_SET during folding.
6102
6103         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
6104         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
6105         (ix86_split_to_parts): Likewise.  Fix up formatting.
6106
6107 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
6108
6109         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
6110         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
6111         printf format.
6112
6113 2016-05-13  Nathan Sidwell  <nathan@acm.org>
6114
6115         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
6116         (nvptx_name_replacement): Delete.
6117         (write_fn_proto, write_fn_proto_from_insn,
6118         nvptx_output_call_insn): Remove nvptx_name_replacement call.
6119         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
6120         * langhooks.c (add_builtin_funcction_common): Call
6121         targetm.mangle_decl_assembler_name.
6122
6123         * config/nvptx/nvptx.c (write_fn_proto): Handle
6124         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
6125
6126 2016-05-13  Martin Liska  <mliska@suse.cz>
6127
6128         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
6129         and PRIu64 in printf format.
6130
6131 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6132
6133         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
6134         comment.
6135
6136 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6137
6138         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
6139         Change --param max-completely-peeled-times to
6140         --param max-completely-peel-times in dump file printing.
6141
6142 2016-05-13  Richard Biener  <rguenther@suse.de>
6143
6144         PR tree-optimization/42587
6145         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
6146         (find_bswap_or_nop_1): Likewise.
6147         (bswap_replace): Likewise.
6148
6149 2016-05-13  Martin Liska  <mliska@suse.cz>
6150
6151         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
6152         Initialize a variable with default value.
6153
6154 2016-05-13  Martin Liska  <mliska@suse.cz>
6155
6156         * doc/invoke.texi: Enhance explanation of error recovery
6157         of sanitizers.
6158
6159 2016-05-13  Martin Liska  <mliska@suse.cz>
6160
6161         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
6162         (struct cost_pair): Change inv_expr_id (int) to inv_expr
6163         (iv_inv_expr_ent *).
6164         (struct iv_inv_expr_ent): Comment struct fields.
6165         (sort_iv_inv_expr_ent): New function.
6166         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
6167         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
6168         a hash_map between iv_inv_expr_ent and number of usages.
6169         (niter_for_exit): Fix coding style.
6170         (tree_ssa_iv_optimize_init): Use renamed variable.
6171         (determine_base_object): Fix coding style.
6172         (alloc_iv): Likewise.
6173         (find_interesting_uses_outside): Likewise.
6174         (add_candidate_1): Likewise.
6175         (add_standard_iv_candidates): Likewise.
6176         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
6177         (prepare_decl_rtl): Fix coding style.
6178         (get_address_cost): Likewise.
6179         (get_shiftadd_cost): Likewise.
6180         (force_expr_to_var_cost): Likewise.
6181         (compare_aff_trees): Likewise.
6182         (get_expr_id): Restructure the function.
6183         (get_loop_invariant_expr_id): Renamed to
6184         get_loop_invariant_expr.
6185         (get_computation_cost_at): Replace usage of inv_expr_id with
6186         inv_expr.
6187         (get_computation_cost): Likewise.
6188         (determine_group_iv_cost_generic): Likewise.
6189         (determine_group_iv_cost_address): Likewise.
6190         (iv_period): Fix coding style.
6191         (iv_elimination_compare_lt): Likewise.
6192         (may_eliminate_iv): Likewise.
6193         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
6194         inv_expr.
6195         (determine_group_iv_costs): Dump invariant expressions.
6196         (iv_ca_recount_cost): Use the newly added hash_map.
6197         (iv_ca_set_remove_invariants): Fix coding style.
6198         (iv_ca_set_add_invariants): Fix coding style.
6199         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
6200         invariants.
6201         (iv_ca_set_cp): Likewise.
6202         (iv_ca_new): Initialize the newly added hash_map and remove
6203         initialization of fields.
6204         (iv_ca_free): Delete the hash_map.
6205         (iv_ca_dump): Dump invariant expressions.
6206         (iv_ca_extend): Fix coding style.
6207         (try_add_cand_for): Likewise.
6208         (create_new_ivs): Dump information about # of avg iterations and
6209         # of used invariant expressions.
6210         (rewrite_use_compare): Fix coding style.
6211         (free_loop_data): Set default value for max_inv_expr_id.
6212
6213 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
6214
6215         * cse.c (rest_of_handle_cse): Use cleanup_cfg
6216         returned value cse_cfg_altered computation.
6217         (rest_of_handle_cse2): Likewise.
6218         (rest_of_handle_cse_after_global_opts): Likewise.
6219
6220 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6221
6222         PR target/53440
6223         * config/arm/arm.c (arm32_output_mi_thunk): New.
6224         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
6225         to split Thumb1 vs TARGET_32BIT functionality.
6226         (arm_thumb1_mi_thunk): New.
6227
6228 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6229
6230         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
6231         to true.
6232
6233 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6234
6235         PR target/71080
6236         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
6237
6238 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
6239
6240         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
6241         (expand_builtin_trap): Emit a regular call.
6242         (set_builtin_user_assembler_name): Remove obsolete cases.
6243         * dse.c (scan_insn): Adjust.
6244         * except.c: Include calls.h.
6245         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
6246         emit a regular call to setjmp.
6247         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
6248         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
6249         (emit_block_move_via_libcall): Delete.
6250         (block_move_fn): Delete.
6251         (init_block_move_fn): Likewise.
6252         (emit_block_move_libcall_fn): Likewise.
6253         (emit_block_op_via_libcall): New function.
6254         (set_storage_via_libcall): Tidy up and use memset builtin.
6255         (block_clear_fn): Delete.
6256         (init_block_clear_fn): Likewise.
6257         (clear_storage_libcall_fn): Likewise.
6258         (expand_assignment): Call emit_block_move_via_libcall.
6259         Do not include gt-expr.h.
6260         * expr.h (emit_block_op_via_libcall): Declare.
6261         (emit_block_copy_via_libcall): New inline function.
6262         (emit_block_move_via_libcall): Likewise.
6263         (emit_block_comp_via_libcall): Likewise.
6264         (block_clear_fn): Delete.
6265         (init_block_move_fn): Likewise.
6266         (init_block_clear_fn): Likewise.
6267         (emit_block_move_via_libcall): Likewise.
6268         (set_storage_via_libcall): Add default parameter value.
6269         * libfuncs.h (enum libfunc_index): Remove obsolete values.
6270         (abort_libfunc): Delete.
6271         (memcpy_libfunc): Likewise.
6272         (memmove_libfunc): Likewise.
6273         (memcmp_libfunc): Likewise.
6274         (memset_libfunc): Likewise.
6275         (setbits_libfunc): Likewise.
6276         (setjmp_libfunc): Likewise.
6277         (longjmp_libfunc): Likewise.
6278         (profile_function_entry_libfunc): Likewise.
6279         (profile_function_exit_libfunc): Likewise.
6280         (gcov_flush_libfunc): Likewise.
6281         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
6282         and DECL_VISIBILITY on the declaration.
6283         (init_optabs): Do not initialize obsolete libfuncs.
6284         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
6285         * tree-core.h (ECF_RET1): Define.
6286         (ECF_TM_PURE): Adjust.
6287         (ECF_TM_BUILTIN): Likewise.
6288         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
6289         (build_common_builtin_nodes): Initialize abort builtin.
6290         Add ECF_RET1 on memcpy, memmove and memset builtins.
6291         Pass final flags for alloca and alloca_with_align builtins.
6292         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
6293         obsolete builtins.
6294         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
6295         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
6296         set_storage_via_libcall and call emit_block_copy_via_libcall.
6297
6298 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
6299
6300         * config/i386/i386.md (*call_got_x32): Change operand 0 to
6301         DImode before it is passed to ix86_output_call_operand.
6302         (*call_value_got_x32): Ditto for operand 1.
6303
6304 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
6305
6306         PR rtl-optimization/70904
6307         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
6308         reload for wide mode.
6309
6310 2016-05-12  Marek Polacek  <polacek@redhat.com>
6311
6312         PR c/70756
6313         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
6314         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
6315         * langhooks.h (incomplete_type_error): Likewise.
6316         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
6317         parameter, pass it down to incomplete_type_error.
6318         * tree.h (size_in_bytes): New inline overload.
6319         (size_in_bytes_loc): Renamed from size_in_bytes.
6320
6321 2016-05-12  Richard Biener  <rguenther@suse.de>
6322
6323         PR tree-optimization/71059
6324         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
6325         nary before looking up or entering the expression into the VN
6326         hashes.
6327         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
6328         Make sure to re-use NARYs without result as inserted by
6329         phi-translation.
6330
6331 2016-05-12  Richard Biener  <rguenther@suse.de>
6332
6333         PR tree-optimization/71062
6334         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
6335         field.
6336         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6337         vars_contains_restrict if the var is a restrict tag.
6338         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
6339         do not disambiguate pointers against it.
6340         (dump_points_to_solution): Re-structure and adjust for new
6341         vars_contains_restrict flag.
6342         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
6343
6344 2016-05-12  Martin Liska  <mliska@suse.cz>
6345
6346         * doc/invoke.texi: Explain connection between
6347         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
6348
6349 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
6350
6351         PR tree-optimization/71006
6352         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
6353         consider COND_EXPR as a mask producer.
6354
6355 2016-05-12  Marek Polacek  <polacek@redhat.com>
6356
6357         PR driver/71063
6358         * opts.c (common_handle_option): Detect missing argument for --help^.
6359
6360 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6361
6362         PR target/70830
6363         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
6364         when popping the PC and within an interrupt handler routine.
6365         Add missing tab to output of "ldmfd".
6366         (output_return_instruction): Output LDMFD with SP update rather
6367         than POP when returning from interrupt handler.
6368
6369 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
6370
6371         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
6372         TARGET_64BIT && TARGET_AVX512DQ.
6373         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
6374         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
6375         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
6376         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
6377         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
6378         (*vec_extractv4si_zext): Add avx512dq alternative.
6379         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
6380         use v instead of x constraint in other alternatives where possible.
6381
6382         * config/i386/sse.md (sse2_loadld): Use v instead of x
6383         constraint in alternatives 0,1,4.
6384
6385         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
6386         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
6387         v constraints instead of x and <pinsr_evex_isa> isa attribute.
6388
6389         PR target/71019
6390         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
6391         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
6392         is not emitted unless TARGET_AVX512BW.
6393         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
6394         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
6395         for the result operand.
6396
6397         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
6398         constraint instead of x in avx alternatives.  Use maybe_evex instead
6399         of vex prefix.
6400
6401         * config/i386/constraints.md (Yv): New constraint.
6402         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
6403         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
6404         * config/i386/i386.md (avx512fvecmode): New mode attr.
6405         (*pushtf): Use v constraint instead of x.
6406         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
6407         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
6408         (*absneg<mode>2): Use Yv constraint instead of x constraint.
6409         (*absnegtf2_sse): Likewise.
6410         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
6411         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
6412         avx512f alternatives.
6413         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
6414
6415 2016-05-12  Richard Biener  <rguenther@suse.de>
6416
6417         PR tree-optimization/71060
6418         * tree-data-ref.c (initialize_data_dependence_relation): Do not
6419         require exact match of DR_BASE_OBJECT but only matching address and
6420         type.
6421
6422 2016-05-12  Richard Biener  <rguenther@suse.de>
6423
6424         PR tree-optimization/70986
6425         * cfganal.c: Include cfgloop.h.
6426         (dfs_find_deadend): Prefer to take edges exiting loops.
6427
6428 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6429
6430         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
6431         compile and run time.
6432
6433 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
6434
6435         PR c/43651
6436         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
6437
6438 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
6439
6440         * config/i386/i386.c (legitimize_pic_address): Use
6441         copy_to_suggested_reg instead of gen_movsi.
6442
6443 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6444
6445         * config/rs6000/predicates.md (quad_memory_operand): Move most of
6446         the code into quad_address_p and call it to share code with
6447         vsx_quad_dform_memory_operand.
6448         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
6449         d-form support.
6450         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
6451         bit instead of being a separate word.  Split -mpower9-dform into
6452         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
6453         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
6454         for the register class supporting 128-bit quad word memory offsets.
6455         (mode_supports_vsx_dform_quad): Helper function to return if the
6456         register class uses quad word memory offsets.
6457         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
6458         (rs6000_debug_reg_global): Always print if we are using LRA or not.
6459         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
6460         instructions are enabled, set up the appropriate addr_masks for
6461         128-bit types.
6462         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
6463         -mpower9-dform-scalar, instead of -mpower9-dform.
6464         (rs6000_option_override_internal): Split -mpower9-dform into two
6465         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
6466         -mpower9-dform switch sets or clears both.  If we are not using
6467         the LRA register allocator, do not enable -mpower9-dform-vector by
6468         default.  If we are using LRA, enable -mpower9-dform-vector and
6469         -mvsx-timode if it is appropriate.  Issue a warning if either
6470         -mpower9-dform-vector or -mvsx-timode are explicitly used without
6471         enabling LRA.
6472         (quad_address_offset_p): New helper function to return if the
6473         offset is legal for quad word memory instructions.
6474         (quad_address_p): New function to determin if GPR or vector
6475         register quad word memory addresses are legal.
6476         (mem_operand_gpr): Validate quad word address offsets.
6477         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
6478         d-form (register + offset) instructions.
6479         (offsettable_ok_by_alignment): Likewise.
6480         (rs6000_legitimate_offset_address_p): Likewise.
6481         (legitimate_lo_sum_address_p): Likewise.
6482         (rs6000_legitimize_address): Likewise.
6483         (rs6000_legitimize_reload_address): Add more debug statements for
6484         -mdebug=addr.
6485         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
6486         d-form instructions.
6487         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
6488         d-form instructions.  Distinguish different cases in debug
6489         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
6490         d-form instructions.
6491         (rs6000_preferred_reload_class): Likewise.
6492         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
6493         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
6494         of the ISA 2.06 indexed memory instructions.
6495         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
6496         use them to save/restore the saved vector registers instead of
6497         using Altivec instructions.
6498         (rs6000_emit_epilogue): Likewise.
6499         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
6500         (rs6000_opt_masks): Split -mpower9-dform into
6501         -mpower9-dform-scalar and -mpower9-dform-vector.
6502         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
6503         was not selected.
6504         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
6505         ISA 3.0 vector indexed memory instructions, and fold the code into
6506         the normal mov<mode> patterns.
6507         (p9_vecstore_<mode>): Likewise.
6508         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
6509         instructions.
6510         (vsx_movti_64bit): Likewise.
6511         (vsx_movti_32bit): Likewise.
6512         * config/rs6000/constraints.md (wO constraint): New constraint for
6513         ISA 3.0 vector d-form support.
6514         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
6515         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
6516         include -mpower9-dform-vector until we switch over to LRA.
6517         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
6518         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
6519         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
6520         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6521         for -mpower9-dform and -mlra.
6522         * doc/md.texi (wO constraint): Document wO constraint.
6523
6524 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
6525
6526         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
6527         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
6528         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
6529         Move handling of non-insn arguments inline into the sole user:
6530         (output_trans_func): ...here.
6531         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
6532         in emitted function prototype.
6533         (output_internal_insn_latency_func): Ditto.  Simplify.
6534         (output_internal_maximal_insn_latency_func): Ditto.  Delete
6535         always-unused argument.
6536         (output_insn_latency_func): Ditto.
6537         (output_maximal_insn_latency_func): Ditto.
6538
6539 2016-05-11  Richard Biener  <rguenther@suse.de>
6540
6541         PR tree-optimization/71055
6542         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
6543         sth with precision not equal to access size verify we don't chop
6544         off bits.
6545
6546 2016-05-11  Richard Biener  <rguenther@suse.de>
6547
6548         PR debug/71057
6549         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
6550         (dwarf2out_finish): Move retry_incomplete_types call ...
6551         (dwarf2out_early_finish): ... here.
6552
6553 2016-05-11  Richard Biener  <rguenther@suse.de>
6554
6555         PR middle-end/71002
6556         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
6557         if the langhook insists on it.
6558         * fold-const.c (make_bit_field_ref): Add arg for the original
6559         reference and preserve its alias-set.
6560         (decode_field_reference): Take exp by reference and adjust it
6561         to the original memory reference.
6562         (optimize_bit_field_compare): Adjust callers.
6563         (fold_truth_andor_1): Likewise.
6564         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
6565
6566 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
6567
6568         PR middle-end/70807
6569         * cfgrtl.h (delete_insn_and_edges): Now return bool.
6570         * cfgrtl.c (delete_insn_and_edges): Likewise.
6571         * config/i386/i386.c (convert_scalars_to_vector): Remove
6572         redundant code.
6573         * cse.c (cse_insn): Compute cse_cfg_altered.
6574         (delete_trivially_dead_insns): Likewise.
6575         (cse_cc_succs): Likewise.
6576         (rest_of_handle_cse): Free dominance info if required.
6577         (rest_of_handle_cse2): Likewise.
6578         (rest_of_handle_cse_after_global_opts): Likewise.
6579
6580 2016-05-11  Alan Modra  <amodra@gmail.com>
6581
6582         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
6583         abi_v4_pass_in_fpr): New functions.
6584         (rs6000_function_arg_boundary): Exclude complex IBM long double
6585         from 64-bit alignment when ABI_V4.
6586         (rs6000_function_arg, rs6000_function_arg_advance_1,
6587         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
6588
6589 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
6590
6591         PR rtl-optimization/71028
6592         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
6593         jump with just a return in the fallthrough block if the branch
6594         block contains just a return as well.
6595
6596 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
6597
6598         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
6599         * match.pd ((X & Y) ^ Y): ... this.
6600         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
6601         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
6602
6603 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
6604
6605         * read-md.c (require_char_ws): New function.
6606         (read_string): Simplify using require_char_ws.
6607         (handle_constants): Likewise.
6608         (handle_enum): Likewise.
6609         (handle_file): Likewise.
6610         * read-md.h (require_char_ws): New declaration.
6611         * read-rtl.c (read_conditions): Simplify using require_char_ws.
6612         (read_mapping): Likewise.
6613         (read_rtx_code): Likewise.
6614         (read_nested_rtx): Likewise.
6615
6616 2016-05-10  James Norris  <jnorris@codesourcery.com>
6617
6618         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
6619         if offloading is enabled and -fopenacc or -fopenmp is specified.
6620         (CRTOFFLOADEND): Likewise.
6621         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
6622         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
6623
6624 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
6625
6626         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
6627         gotoff_operand code paths.  Use copy_to_suggested_regs and
6628         expand_simple_binop where appropriate.  Cleanup.
6629
6630 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6631
6632         PR target/70799
6633         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
6634         integer constants.
6635         (dimode_scalar_chain::vector_const_cost): New.
6636         (dimode_scalar_chain::compute_convert_gain): Handle constants.
6637         (dimode_scalar_chain::convert_op): Likewise.
6638         (dimode_scalar_chain::convert_insn): Likewise.
6639
6640 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
6641
6642         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
6643         unary operation, not a binary one.
6644
6645 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6646
6647         PR middle-end/70877
6648         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
6649         calls with type casted fndecl.
6650
6651 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6652
6653         PR tree-optimization/70786
6654         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
6655         * calls.c (initialize_argument_information): Bind bounds
6656         with corresponding args passed by reference.
6657
6658 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
6659
6660         PR target/70927
6661         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
6662         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
6663         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
6664         accordingly.
6665
6666 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6667
6668         PR target/70963
6669         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
6670         code for a zero scale factor.
6671         (vsx_xvcvdpuxds_scale): Likewise.
6672
6673 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
6674
6675         * diagnostic-show-locus.c (layout::layout): Call show_ruler
6676         if show_ruler_p was set on the context.
6677         (layout::show_ruler): New method.
6678         * diagnostic.h (struct diagnostic_context): Add field
6679         "show_ruler_p".
6680
6681 2016-05-10  Richard Biener  <rguenther@suse.de>
6682
6683         PR tree-optimization/71039
6684         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
6685         (chk_uses): New function.
6686         (propagate_with_phi): Verify we can safely replicate the lhs of an
6687         aggregate assignment on all incoming edges.
6688
6689 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
6690
6691         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
6692         Forward declare.
6693         (rx_atomic_sequence): New class.
6694         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
6695         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
6696         non-inline.
6697         (rx_atomic_sequence::rx_atomic_sequence,
6698         rx_atomic_sequence::~rx_atomic_sequence): New functions.
6699         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
6700         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
6701         CTRLREG_INTB): New constants.
6702         (FETCHOP): New code iterator.
6703         (fethcop_name, fetchop_name2): New iterator code attributes.
6704         (QIHI): New mode iterator.
6705         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
6706         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
6707         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
6708
6709 2016-05-10  Martin Liska  <mliska@suse.cz>
6710
6711         * tree-inline.c (remap_dependence_clique): Do not remap
6712         debugging statements.
6713
6714 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6715
6716         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
6717         ("*fixuns_truncdfdi2_z13")
6718         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
6719         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
6720         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
6721
6722 2016-05-10  Richard Biener  <rguenther@suse.de>
6723
6724         PR tree-optimization/70497
6725         PR tree-optimization/28367
6726         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
6727         split out from ...
6728         (visit_reference_op_load): ... here.
6729         (vn_reference_lookup_3): Use it to handle subreg-like accesses
6730         with simplified BIT_FIELD_REFs.
6731         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
6732         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
6733         correctly.
6734
6735 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
6736
6737         * dwarf2out.c (add_abstract_origin_attribute): Adjust
6738         documentation comment.  For BLOCK nodes, add a
6739         DW_AT_abstract_origin attribute that points to the DIE generated
6740         for the origin BLOCK.
6741         (gen_lexical_block_die): Call add_abstract_origin_attribute for
6742         blocks from inlined functions.
6743
6744 2016-05-10  Alan Modra  <amodra@gmail.com>
6745
6746         PR target/70947
6747         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
6748         regrename modifying insns saving lr before __morestack call.
6749         * config/rs6000/rs6000.md (split_stack_return): Similarly for
6750         insns restoring lr after __morestack call.
6751
6752 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
6753
6754         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
6755         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
6756         expanders.
6757         * config/i386/sse.md (vec_interleave_high<mode>,
6758         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
6759         <avx512>_vpermt2var<mode>3_maskz): Likewise.
6760
6761 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6762
6763         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
6764         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
6765         parallel reassociation for power8 and forward.
6766
6767 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
6768
6769         * config/i386/i386.md (absneg splitters with general regs): Use
6770         general_reg_operand predicate.
6771         (btsq peephole2): Use x86_64_immediate_operand to check if new
6772         value is suitable for immediate operand.  Generate emitted insn
6773         using RTL expressions.
6774         (btcq peephole2): Ditto.
6775         (btrq peephole2): Ditto.  Generate correct immediate operand
6776         for AND masking.
6777
6778 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
6779
6780         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
6781         bitpos.
6782
6783 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
6784
6785         * tree-affine.c (wide_int_constant_multiple_p): Add missing
6786         pointer dereference.
6787
6788 2016-05-09  Richard Biener  <rguenther@suse.de>
6789
6790         PR tree-optimization/70985
6791         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
6792         op0 isn't a gimple register.
6793
6794 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
6795
6796         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
6797         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
6798         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
6799         (i6400_fpu_mult): New cpu units.
6800         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
6801         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
6802         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
6803         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
6804         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
6805         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
6806         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
6807         (i6400_msa_long_float4, i6400_msa_long_float5)
6808         (i6400_msa_long_float8, i6400_msa_fdiv_df)
6809         (i6400_msa_fdiv_sf): New reservations.
6810         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
6811         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
6812         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
6813         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
6814         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
6815         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
6816         (msa_short_cmp, msa_short_float2, msa_short_logic3)
6817         (msa_short_store4, msa_long_load, msa_short_store)
6818         (msa_long_logic, msa_long_float2, msa_long_float4)
6819         (msa_long_float5, msa_long_float8, msa_long_mult)
6820         (msa_long_fdiv, msa_long_div): New reservations.
6821
6822 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
6823             Sameera Deshpande  <sameera.deshpande@imgtec.com>
6824             Matthew Fortune  <matthew.fortune@imgtec.com>
6825             Graham Stott  <graham.stott@imgtec.com>
6826             Chao-ying Fu  <chao-ying.fu@imgtec.com>
6827
6828         * config.gcc: Add MSA header file for mips*-*-* target.
6829         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
6830         (Ubv8i, Urv8):  New constraints.
6831         * config/mips/mips-ftypes.def: Add function types for MSA
6832         builtins.
6833         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
6834         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
6835         * config/mips/mips-msa.md: New file.
6836         * config/mips/mips-protos.h
6837         (mips_split_128bit_const_insns): New prototype.
6838         (mips_msa_idiv_insns): Likewise.
6839         (mips_split_128bit_move): Likewise.
6840         (mips_split_128bit_move_p): Likewise.
6841         (mips_split_msa_copy_d): Likewise.
6842         (mips_split_msa_insert_d): Likewise.
6843         (mips_split_msa_fill_d): Likewise.
6844         (mips_expand_msa_branch): Likewise.
6845         (mips_const_vector_same_val_p): Likewise.
6846         (mips_const_vector_same_bytes_p): Likewise.
6847         (mips_const_vector_same_int_p): Likewise.
6848         (mips_const_vector_shuffle_set_p): Likewise.
6849         (mips_const_vector_bitimm_set_p): Likewise.
6850         (mips_const_vector_bitimm_clr_p): Likewise.
6851         (mips_msa_vec_parallel_const_half): Likewise.
6852         (mips_msa_output_division): Likewise.
6853         (mips_ldst_scaled_shift): Likewise.
6854         (mips_expand_vec_cond_expr): Likewise.
6855         * config/mips/mips.c (enum mips_builtin_type): Add
6856         MIPS_BUILTIN_MSA_TEST_BRANCH.
6857         (mips_gen_const_int_vector_shuffle): New prototype.
6858         (mips_const_vector_bitimm_set_p): New function.
6859         (mips_const_vector_bitimm_clr_p): Likewise.
6860         (mips_const_vector_same_val_p): Likewise.
6861         (mips_const_vector_same_bytes_p): Likewise.
6862         (mips_const_vector_same_int_p): Likewise.
6863         (mips_const_vector_shuffle_set_p): Likewise.
6864         (mips_symbol_insns): Forbid loading symbols via immediate for
6865         MSA.
6866         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
6867         stores.
6868         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
6869         MSA.
6870         (mips_lx_address_p): Add support load indexed address for MSA.
6871         (mips_address_insns): Add calculation of instructions needed for
6872         stores and loads for MSA.
6873         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
6874         CONST_VECTOR for MSA and let it fall through.
6875         (mips_ldst_scaled_shift): New function.
6876         (mips_subword_at_byte): Likewise.
6877         (mips_msa_idiv_insns): Likewise.
6878         (mips_legitimize_move): Validate MSA moves.
6879         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
6880         calculation of costs for MSA division.
6881         (mips_split_move_p): Check if MSA moves need splitting.
6882         (mips_split_move): Split MSA moves if necessary.
6883         (mips_split_128bit_move_p): New function.
6884         (mips_split_128bit_move): Likewise.
6885         (mips_split_msa_copy_d): Likewise.
6886         (mips_split_msa_insert_d): Likewise.
6887         (mips_split_msa_fill_d): Likewise.
6888         (mips_output_move): Handle MSA moves.
6889         (mips_expand_msa_branch): New function.
6890         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
6891         Reinstate 'y' modifier.
6892         (mips_file_start): Add MSA .gnu_attribute.
6893         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
6894         FPRs.
6895         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
6896         (mips_class_max_nregs): Add register size for MSA supported mode.
6897         (mips_cannot_change_mode_class): Allow conversion between MSA
6898         vector modes and TImode.
6899         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
6900         instruction.
6901         (mips_secondary_reload_class): Force MSA loads/stores via memory.
6902         (mips_preferred_simd_mode): Add preffered modes for MSA.
6903         (mips_vector_mode_supported_p): Add MSA supported modes.
6904         (mips_autovectorize_vector_sizes): New function.
6905         (mips_msa_output_division): Likewise.
6906         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
6907         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
6908         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
6909         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
6910         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
6911         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
6912         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
6913         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
6914         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
6915         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
6916         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
6917         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
6918         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
6919         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
6920         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
6921         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
6922         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
6923         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
6924         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
6925         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
6926         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
6927         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
6928         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
6929         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
6930         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
6931         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
6932         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
6933         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
6934         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
6935         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
6936         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
6937         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
6938         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
6939         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
6940         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
6941         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
6942         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
6943         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
6944         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
6945         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
6946         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
6947         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
6948         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
6949         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
6950         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
6951         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
6952         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
6953         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
6954         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
6955         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
6956         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
6957         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
6958         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
6959         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
6960         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
6961         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
6962         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
6963         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
6964         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
6965         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
6966         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
6967         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
6968         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
6969         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
6970         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
6971         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
6972         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
6973         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
6974         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
6975         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
6976         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
6977         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
6978         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
6979         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
6980         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
6981         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
6982         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
6983         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
6984         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
6985         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
6986         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
6987         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
6988         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
6989         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
6990         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
6991         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
6992         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
6993         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
6994         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
6995         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
6996         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
6997         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
6998         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
6999         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
7000         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
7001         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
7002         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
7003         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
7004         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
7005         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
7006         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
7007         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
7008         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
7009         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
7010         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
7011         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
7012         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
7013         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
7014         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
7015         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
7016         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
7017         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
7018         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
7019         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
7020         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
7021         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
7022         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
7023         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
7024         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
7025         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
7026         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
7027         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
7028         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
7029         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
7030         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
7031         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
7032         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
7033         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
7034         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
7035         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
7036         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
7037         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
7038         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
7039         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
7040         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
7041         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
7042         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
7043         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
7044         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
7045         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
7046         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
7047         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
7048         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
7049         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
7050         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
7051         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
7052         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
7053         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
7054         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
7055         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
7056         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
7057         move_v builtins.
7058         (mips_get_builtin_decl_index): New array.
7059         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
7060         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
7061         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
7062         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
7063         (mips_init_builtins): Initialize mips_get_builtin_decl_index
7064         array.
7065         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
7066         hook.
7067         (mips_expand_builtin_insn): Prepare operands for
7068         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
7069         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
7070         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
7071         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
7072         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
7073         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
7074         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
7075         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
7076         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
7077         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
7078         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
7079         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
7080         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
7081         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
7082         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
7083         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
7084         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
7085         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
7086         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
7087         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
7088         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
7089         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
7090         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
7091         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
7092         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
7093         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
7094         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
7095         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
7096         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
7097         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
7098         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
7099         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
7100         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
7101         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
7102         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
7103         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
7104         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
7105         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
7106         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
7107         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
7108         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
7109         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
7110         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
7111         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
7112         These are set implicitly and an error is reported if overridden.
7113         (mips_expand_builtin_msa_test_branch): New function.
7114         (mips_expand_msa_shuffle): Likewise.
7115         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
7116         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
7117         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
7118         (mips_expand_vec_unpack): Add support for MSA.
7119         (mips_expand_vector_init): Likewise.
7120         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
7121         instead of const0_rtx.
7122         (mips_msa_vec_parallel_const_half): New function.
7123         (mips_gen_const_int_vector): Likewise.
7124         (mips_gen_const_int_vector_shuffle): Likewise.
7125         (mips_expand_msa_cmp): Likewise.
7126         (mips_expand_vec_cond_expr): Likewise.
7127         * config/mips/mips.h
7128         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
7129         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
7130         specified.
7131         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
7132         (ISA_HAS_MSA): New macro.
7133         (UNITS_PER_MSA_REG): Likewise.
7134         (BITS_PER_MSA_REG): Likewise.
7135         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
7136         (MSA_REG_FIRST): New macro.
7137         (MSA_REG_LAST): Likewise.
7138         (MSA_REG_NUM): Likewise.
7139         (MSA_REG_P): Likewise.
7140         (MSA_REG_RTX_P): Likewise.
7141         (MSA_SUPPORTED_MODE_P): Likewise.
7142         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
7143         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
7144         * config/mips/mips.md: Include mips-msa.md.
7145         (alu_type): Add simd_add.
7146         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
7147         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
7148         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
7149         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
7150         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
7151         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
7152         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
7153         simd_move, simd_load, simd_store.  Choose "multi" for moves
7154         for "qword_mode".
7155         (qword_mode): New attribute.
7156         (insn_count): Add instruction count for quad moves.
7157         Increase the count for MIPS SIMD division.
7158         (UNITMODE): Add UNITMODEs for vector types.
7159         (addsub): New code iterator.
7160         * config/mips/mips.opt (mmsa): New option.
7161         * config/mips/msa.h: New file.
7162         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
7163         specified.
7164         * config/mips/mti-linux.h: Likewise.
7165         * config/mips/predicates.md
7166         (const_msa_branch_operand): New constraint.
7167         (const_uimm3_operand): Likewise.
7168         (const_uimm4_operand): Likewise.
7169         (const_uimm5_operand): Likewise.
7170         (const_uimm8_operand): Likewise.
7171         (const_imm5_operand): Likewise.
7172         (aq10b_operand): Likewise.
7173         (aq10h_operand): Likewise.
7174         (aq10w_operand): Likewise.
7175         (aq10d_operand): Likewise.
7176         (const_m1_operand): Likewise.
7177         (reg_or_m1_operand): Likewise.
7178         (const_exp_2_operand): Likewise.
7179         (const_exp_4_operand): Likewise.
7180         (const_exp_8_operand): Likewise.
7181         (const_exp_16_operand): Likewise.
7182         (const_vector_same_val_operand): Likewise.
7183         (const_vector_same_simm5_operand): Likewise.
7184         (const_vector_same_uimm5_operand): Likewise.
7185         (const_vector_same_uimm6_operand): Likewise.
7186         (const_vector_same_uimm8_operand): Likewise.
7187         (par_const_vector_shf_set_operand): Likewise.
7188         (reg_or_vector_same_val_operand): Likewise.
7189         (reg_or_vector_same_simm5_operand): Likewise.
7190         (reg_or_vector_same_uimm6_operand): Likewise.
7191         * doc/extend.texi (MIPS SIMD Architecture Functions): New
7192         section.
7193         * doc/invoke.texi (-mmsa): Document new option.
7194
7195 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7196
7197         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
7198         * configure: Regenerate.
7199         * config.in: Regenerate.
7200         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
7201         on -fvtable-verify.
7202         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
7203         (ENDFILE_VTV_SPEC): Define.
7204
7205 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
7206
7207         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
7208         registers in all interrupt handlers if necessary.
7209         (rl78_option_override): Add warning.
7210         (MUST_SAVE_MDUC_REGISTERS): New macro.
7211         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
7212         * config/rl78/rl78.c (check_mduc_usage): New function.
7213         (mduc_regs): New structure to hold MDUC register data.
7214         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
7215         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
7216         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
7217         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
7218         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
7219         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
7220
7221 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
7222
7223         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
7224         (tree-ssa-loop-niter.h): Ditto.
7225         (idx_within_array_bound, ref_within_array_bound): New functions.
7226         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
7227         Factor out check on writable base object to ...
7228         (base_object_writable): ... here.
7229
7230 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7231
7232         * config/arm/arm.md (probe_stack): Add modes to set source
7233         and destination.
7234
7235 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
7236
7237         * regrename.c (base_reg_class_for_rename): New static function.
7238         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
7239
7240 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
7241
7242         * cgraph.c (thunk_adjust): Export.
7243         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
7244         * cgraphunit.c (thunk_adjust): Export.
7245         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
7246         thunks.
7247         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
7248         inlinable.
7249         * tree-inline.c (expand_call_inline): Expand thunks inline.
7250
7251 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
7252
7253         PR target/70998
7254         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
7255         (*sse2_vd_cvtss2sd): Ditto.
7256         * config/i386/i386.md
7257         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
7258         Generate *sse2_vd_cvtsd2ss pattern.
7259         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
7260         Generate *sse2_vd_cvtss2sd pattern.
7261
7262 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
7263
7264         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
7265         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
7266         users.
7267
7268 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
7269
7270         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
7271         * config/sh/sh.c: Define and declare variables on first use throughout
7272         the file.
7273         (current_function_interrupt): Change to bool type.
7274         (frame_insn): Rename to emit_frame_insn and update users.
7275         (push_regs): Use bool for 'interrupt_handler' argument.
7276         (save_schedule_s): Remove.
7277         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
7278         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
7279         targetm.asm_out.unaligned_op.di.
7280         (gen_far_branch): Remove redundant forward declaration.
7281         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
7282         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
7283         (sh_set_return_address, sh_function_ok_for_sibcall,
7284         scavenge_reg): Update comments.
7285         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
7286         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
7287         (sh_attr_renesas_p): Remove unnecessary parentheses.
7288         (branch_dest): Simplify.
7289         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
7290         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
7291         (CUMULATIVE_ARGS): Change macro to typedef.
7292         (current_function_interrupt): Change to bool type.
7293         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
7294         Surround with __cplusplus ifdef.
7295         (sh_compare_op0, sh_compare_op1): Remove.
7296         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
7297
7298 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
7299
7300         * config/arm/arm.md: (arch): Add neon.
7301         (arch_enabled): Return yes for arch neon when TARGET_NEON.
7302         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
7303         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
7304         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
7305         attributes for alt renumbering.  Mark alt 3 as non-predicable.
7306         (thumb2_movdf_vfp): Likewise.
7307
7308 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
7309
7310         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
7311         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
7312         (*andqi_1): Add preferred_for_speed attribute to disparage
7313         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
7314         (*<code>qi_1): Ditto.
7315         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
7316         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
7317         (*ashlqi3_1): Ditto.
7318         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
7319         Add preferred_for_size attribute to disparage alternative 0 and
7320         preferred_for_speed attribute to disparage alternative 1 for
7321         TARGET_PARTIAL_REG_STALL targets.
7322
7323 2016-05-07  Tom de Vries  <tom@codesourcery.com>
7324
7325         PR tree-optimization/70956
7326         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
7327         def.
7328
7329 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
7330
7331         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
7332         * config/sh/sh.c (sh_cbranch_distance): Implement it.
7333         * config/sh/sh.md (branch_zero): Remove define_attr.
7334         (define_delay): Disable delay slot if branch distance is one insn.
7335
7336 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7337
7338         * config/i386/i386.md (LEAMODE): New mode attribute.
7339         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
7340         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
7341         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
7342         operand 2 predicate.
7343         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
7344         (*lea<mode>_general_3): Ditto.
7345         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
7346
7347 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
7348
7349         * genmddump.c (main): Convert argv from char ** to const char **.
7350
7351 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7352
7353         * coretypes.h (OVERRIDE): New macro.
7354         (FINAL): New macro.
7355
7356 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
7357
7358         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
7359         allow coalescing if the types are compatible.
7360
7361 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7362
7363         * pass_manager.h (pass_manager::register_pass_name): New method.
7364         (pass_manager::get_pass_by_name): New method.
7365         (pass_manager::create_pass_tab): New method.
7366         (pass_manager::m_name_to_pass_map): New field.
7367         * passes.c (name_to_pass_map): Delete global in favor of field
7368         "m_name_to_pass_map" of pass_manager.
7369         (register_pass_name): Rename from a function to...
7370         (pass_manager::register_pass_name): ...this method, updating
7371         for renaming of global "name_to_pass_map" to field
7372         "m_name_to_pass_map".
7373         (create_pass_tab): Rename from a function to...
7374         (pass_manager::create_pass_tab): ...this method, updating
7375         for renaming of global "name_to_pass_map" to field.
7376         (get_pass_by_name): Rename from a function to...
7377         (pass_manager::get_pass_by_name): ...this method.
7378         (enable_disable_pass): Convert use of get_pass_by_name to
7379         a method call, locating the pass_manager singleton.
7380
7381 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7382
7383         * genattr-common.c (main): Convert argv from char ** to const char **.
7384         * genattr.c (main): Likewise.
7385         * genattrtab.c (main): Likewise.
7386         * genautomata.c (initiate_automaton_gen): Likewise.
7387         (main): Likewise.
7388         * gencodes.c (main): Likewise.
7389         * genconditions.c (main): Likewise.
7390         * genconfig.c (main): Likewise.
7391         * genconstants.c (main): Likewise.
7392         * genemit.c (main): Likewise.
7393         * genenums.c (main): Likewise.
7394         * genextract.c (main): Likewise.
7395         * genflags.c (main): Likewise.
7396         * genmddeps.c (main): Likewise.
7397         * genopinit.c (main): Likewise.
7398         * genoutput.c (main): Likewise.
7399         * genpeep.c (main): Likewise.
7400         * genpreds.c (main): Likewise.
7401         * genrecog.c (main): Likewise.
7402         * gensupport.c (init_rtx_reader_args_cb): Likewise.
7403         (init_rtx_reader_args): Likewise.
7404         * gensupport.h (init_rtx_reader_args_cb): Likewise.
7405         (init_rtx_reader_args): Likewise.
7406         * gentarget-def.c (main): Likewise.
7407         * read-md.c (read_md_files): Likewise.
7408         * read-md.h (read_md_files): Likewise.
7409
7410 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7411
7412         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
7413         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
7414         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
7415         Remove unused predicate.
7416         (register_and_not_fp_reg_operand): Ditto.
7417
7418 2016-05-06  Martin Liska  <mliska@suse.cz>
7419
7420         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
7421         instead of vec as the vector is local to the function.
7422
7423 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
7424
7425         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
7426         avx512bw alternative.
7427
7428         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
7429         before the ashr<mode>3 pattern.
7430
7431         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
7432         v instead of x in vex or maybe_vex alternatives, use
7433         maybe_evex instead of vex in prefix.
7434
7435         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
7436         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
7437         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
7438         in vex or maybe_vex alternatives, use maybe_evex instead of vex
7439         in prefix.
7440
7441         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
7442         v instead of x in vex or maybe_vex alternatives, use
7443         maybe_evex instead of vex in prefix.
7444
7445         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
7446         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
7447         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
7448         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
7449         alternatives, use maybe_evex instead of vex in prefix.
7450
7451         * config/i386/sse.md (vec_interleave_lowv4sf,
7452         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
7453         v instead of x in vex or maybe_vex alternatives, use
7454         maybe_evex instead of vex in prefix.
7455
7456         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
7457         v instead of x in vex or maybe_vex alternatives, use
7458         maybe_evex instead of vex in prefix.
7459
7460         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
7461         v constraint instead of x.
7462
7463 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
7464
7465         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
7466         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
7467         equality first.
7468
7469 2016-05-06  Richard Biener  <rguenther@suse.de>
7470
7471         PR tree-optimization/70948
7472         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7473         Properly clobber all fields of va_list for __builtin_va_start.
7474
7475 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
7476
7477         PR debug/70935
7478         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
7479         loop latch destination.
7480
7481 2016-05-06  Martin Liska  <mliska@suse.cz>
7482
7483         * tree-ssa-uninit.c: Apply manual changes
7484         to the GNU coding style.
7485         (prune_uninit_phi_opnds): Rename from
7486         prune_uninit_phi_opnds_in_unrealizable_paths.
7487
7488 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7489
7490         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
7491         mspace): Remove deprecated options.
7492         * doc/invoke.texi (SH options): Remove -mspace.
7493
7494 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7495
7496         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
7497
7498 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7499
7500         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
7501         corresponding combine split pattern.
7502
7503 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7504
7505         PR target/58219
7506         * config/sh/predicates.md (long_displacement_mem_operand): New.
7507         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
7508         Add movi20, movi20s alternatives.  Adjust length attribute for
7509         alternatives.
7510         (movsi_ie): Allow for any FPU.  Adjust length attribute for
7511         alternatives.
7512         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
7513         attribute for alternatives.
7514         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
7515         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
7516         length attribute for alternatives.
7517
7518 2016-05-06  Richard Biener  <rguenther@suse.de>
7519
7520         PR tree-optimization/70960
7521         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
7522
7523 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7524
7525         PR target/52933
7526         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
7527         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
7528
7529 2016-05-06  Marek Polacek  <polacek@redhat.com>
7530
7531         PR sanitizer/70875
7532         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
7533
7534 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7535
7536         PR target/54089
7537         * config/sh/sh.md (*rotcr): Add another variant.
7538
7539 2016-05-06  Richard Biener  <rguenther@suse.de>
7540
7541         PR middle-end/70931
7542         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
7543
7544 2016-05-06  Richard Biener  <rguenther@suse.de>
7545
7546         PR middle-end/70941
7547         * fold-const.c (split_tree): Always convert to the original type
7548         before negating.
7549
7550 2016-05-06  Richard Biener  <rguenther@suse.de>
7551
7552         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
7553         (fwprop_addr): Likewise.
7554
7555 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7556
7557         PR target/70873
7558         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
7559         New prototype.
7560         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
7561         * config/i386/i386.md (push mem splitter): Use find_constant_src in
7562         the splitter condition.
7563         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
7564         the splitter condition.
7565         (FP float_extend load splitter): Ditto.
7566
7567 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
7568
7569         * config/i386/i386.md (peehole2 patterns): Change true_regnum
7570         to REGNO in all peephole2 patterns.
7571         (post-reload splitters): Change true_regnum to REGNO in
7572         post-reload splitters.
7573         (zero_extend splitters): Use general_reg_operand and
7574         nonimmediate_gr_operand predicates.
7575
7576 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
7577
7578         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
7579         v constraint instead of x.
7580
7581 2016-05-05  Alan Modra  <amodra@gmail.com>
7582
7583         PR target/68662
7584         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
7585         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
7586         TARGET_NO_FP_IN_TOC for -mrelocatable.
7587         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
7588         TARGET_RELOCATABLE test.
7589         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7590         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7591         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7592         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7593         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7594         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7595         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7596         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7597         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
7598         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
7599         Likewise.
7600         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
7601         (rs6000_stack_info): Likewise.
7602         (rs6000_elf_asm_out_constructor): Likewise.
7603         (rs6000_elf_asm_out_destructor): Likewise.
7604         (rs6000_elf_declare_function_name): Likewise.
7605         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
7606         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
7607         Don't define.
7608
7609 2016-05-05  Alan Modra  <amodra@gmail.com>
7610
7611         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
7612
7613 2016-05-05  Alan Modra  <amodra@gmail.com>
7614
7615         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
7616         out-of-line gpr restore for one or two regs if that would add
7617         a save of lr.
7618
7619 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
7620
7621         PR target/70873
7622         * config/i386/i386.md
7623         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
7624         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
7625         as operand 0 predicate.
7626         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
7627         Ditto.
7628         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
7629         Ditto.  Emit the pattern using RTX.
7630
7631         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
7632         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
7633         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
7634         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
7635         Ditto.
7636         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
7637         sse_reg_operand as operand 0 predicate.
7638
7639         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
7640         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
7641         instead of gen_rtx_REG.
7642         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
7643         Ditto.
7644
7645 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7646
7647         * function.c (emit_use_return_register_into_block): Delete.
7648         (gen_return_pattern): Delete.
7649         (emit_return_into_block): Delete.
7650         (active_insn_between): Delete.
7651         (convert_jumps_to_returns): Delete.
7652         (emit_return_for_exit): Delete.
7653         (thread_prologue_and_epilogue_insns): Delete all code dealing with
7654         simple_return for shrink-wrapped blocks.
7655         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
7656         end of blocks that need one.
7657         (get_unconverted_simple_return): Delete.
7658         (convert_to_simple_return): Delete.
7659         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
7660         (convert_to_simple_return): Ditto.
7661
7662 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7663
7664         * cfgcleanup.c (bb_is_just_return): New function.
7665         (try_optimize_cfg): Simplify jumps to return, branches to return,
7666         and branches around return.
7667
7668 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7669
7670         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
7671         branch to a return.
7672
7673 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
7674
7675         PR c++/70906
7676         PR c++/70933
7677         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
7678         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
7679         assert flags & OEP_HASH_CHECK, instead of asserting it
7680         never happens.  Handle TARGET_EXPR.
7681         * fold-const.c (operand_equal_p): For hash verification,
7682         or in OEP_HASH_CHECK into flags.
7683
7684 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7685
7686         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
7687         comment.
7688         (compute_samebase_partition_bases): Fix typo.
7689
7690 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
7691
7692         * config/i386/sse.md (vec_interleave_highv8sf,
7693         vec_interleave_lowv8sf, vec_interleave_highv4df,
7694         vec_interleave_lowv4df): Remove constraints from expanders.
7695
7696         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
7697
7698 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
7699
7700         * tree-inline.c (expand_call_inline): Fix path dealing with
7701         making lhs of call statement undefined.
7702
7703 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
7704
7705         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
7706         Check availability on NODE, too.
7707         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
7708         (cgraph_node::call_for_symbol_and_aliases): Likewise.
7709         (varpool_node::call_for_symbol_and_aliase): Likewise.
7710         * ipa-pure-const.c (add_new_function): Analyze all bodies.
7711         (propagate_pure_const): Propagate across interposable functions, too.
7712         (skip_function_for_local_pure_const): Do not skip interposable bodies
7713         with aliases.
7714         (pass_local_pure_const::execute): Update.
7715
7716 2016-05-04  Marek Polacek  <polacek@redhat.com>
7717
7718         * doc/invoke.texi: Document -Wdangling-else.
7719
7720 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7721
7722         * config.gcc: Error out when conflicting multilib is detected.  Do not
7723         loop over multilibs since no combination is legal.
7724
7725 2016-05-04  Alan Modra  <amodra@gmail.com>
7726
7727         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
7728         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
7729         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
7730         Align .toc.
7731
7732 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
7733
7734         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
7735         Clean up p5600 comments.
7736
7737 2016-05-04  Richard Biener  <rguenther@suse.de>
7738
7739         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
7740         constructor simplifications.
7741         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
7742
7743 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
7744
7745         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
7746         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
7747         result.set_rtx is null instead of aborting.
7748         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
7749         Always enable.
7750         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
7751         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
7752         *mov<mode>_store_postinc): New patterns.
7753
7754 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
7755
7756         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
7757         as commutative.  Check both conversions are NOP.
7758         ((A & B) OP (C & B)): Remove.
7759
7760 2016-05-04  Alan Modra  <amodra@gmail.com>
7761
7762         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
7763
7764 2016-05-04  Alan Modra  <amodra@gmail.com>
7765
7766         PR target/70866
7767         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
7768         when cr2,3,4 are all fixed regs.
7769
7770 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
7771
7772         PR rtl-optimization/57193
7773         * opts.c (default_options_table): Revert OPT_frename_registers change.
7774         * doc/invoke.texi (-frename-registers, -O2): Likewise.
7775
7776 2016-05-03  Martin Sebor  <msebor@redhat.com>
7777
7778         PR c++/66561
7779         * builtins.c (fold_builtin_FILE): New function.
7780         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
7781         (fold_builtin_0): Call them.
7782         * gimplify.c (gimplify_call_expr): Remove the handling of
7783         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
7784
7785         PR c++/66561
7786         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
7787         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
7788         constants.
7789
7790         PR c++/66639
7791         * doc/extend.texi (Function Names as Strings): Update __func__,
7792         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
7793         constants.
7794
7795 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7796             Richard Biener  <rguenther@suse.de>
7797
7798         PR tree-optimization/70916
7799         * tree-if-conv.c: Include cfganal.h.
7800         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
7801         and remove_fake_exit_edges around the optimization pass.
7802
7803 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
7804
7805         * cgraph.c (symbol_table::create_edge): Set inline_failed.
7806         (cgraph_edge::make_direct): Likewise.
7807         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
7808         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
7809         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
7810         (CIF_THUNK): New code.
7811         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
7812         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
7813         (compute_inline_parameters): Set inline_failed for thunks.
7814         (inline_analyze_function): Cleanup.
7815         * ipa-inline.c (can_inline_edge_p): Do not deal with
7816         call_stmt_cannot_inline_p.
7817         (can_early_inline_edge_p): Likewise.
7818         (early_inliner): Initialize inline_failed.
7819         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
7820
7821 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
7822
7823         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
7824         from nonimm_ssenomem_operand.
7825         (nonimm_ssenomem_operand): New predicate.
7826         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
7827         as operand 0 predicate.
7828         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
7829         Disable unsupported alternatives using "enabled" attribute.
7830         Use register_ssemem_operand as operand 0 predicate.
7831         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
7832
7833 2016-05-03  Marek Polacek  <polacek@redhat.com>
7834
7835         PR c/70859
7836         * input.c (expansion_point_location): New function.
7837         * input.h (expansion_point_location): Declare.
7838
7839 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
7840
7841         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
7842         occurence with frame_offset_ ones.
7843
7844 2016-05-03  Alan Modra  <amodra@gmail.com>
7845
7846         PR rtl-optimization/70890
7847         * ira.c (combine_and_move_insns): When moving def_insn, remove
7848         equivs on use_insn.
7849
7850 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7851
7852         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
7853         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
7854         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
7855         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
7856
7857 2016-05-03  Alan Modra  <amodra@gmail.com>
7858
7859         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
7860         for SAVE_MULTIPLE/STORE_MULTIPLE.
7861
7862 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7863
7864         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
7865         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
7866
7867 2016-05-03  Richard Biener  <rguenther@suse.de>
7868
7869         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
7870         default true.
7871         (gimplify_arg): Likewise.
7872         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
7873         re-writing the result to a decl if required.
7874         (internal_get_tmp_var): Add allow_ssa parameter
7875         and override into_ssa with it.
7876         (get_formal_tmp_var): Adjust.
7877         (get_initialized_tmp_var): Add allow_ssa parameter.
7878         (gimplify_arg): Add allow_ssa parameter and avoid generating
7879         SSA names for the result false.
7880         (gimplify_call_expr): If the call may return twice do not
7881         gimplify parameters into SSA.
7882         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
7883         (gimplify_modify_expr): Adjust assert.  For noreturn calls
7884         with a SSA name LHS adjust its def.
7885         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
7886         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
7887         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
7888         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
7889         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
7890         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
7891         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
7892         (optimize_target_teams): Do not allow SSA names for clause operands.
7893         (gimplify_expr): Likewise for where we mark the result addressable.
7894         * passes.def (pass_init_datastructures): Remove.
7895         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
7896         (rewrite_stmt): Likewise.
7897         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
7898         (replace_locals_op): Replace SSA names.
7899         (copy_gimple_seq_and_replace_locals): Init src_cfun.
7900         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
7901         * cgraph.c (release_function_body): Free CFG annotations only
7902         when we have a CFG.  Simplify.
7903         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
7904         force_gimple_operand instead of get_initialized_tmp_var.
7905         * tree-pass.h (make_pass_init_datastructures): Remove.
7906         * tree-ssa.c (execute_init_datastructures): Remove.
7907         (pass_data_init_datastructures): Likewise.
7908         (class pass_init_datastructures): Likewise.
7909         (make_pass_init_datastructures): Likewise.
7910         * omp-low.c (create_omp_child_function): Init SSA data structures.
7911         (grid_expand_target_grid_body): Likewise.
7912         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
7913         name before adding it to names_to_release.
7914         (remove_bb): Always release SSA defs.
7915         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
7916         before dereferencing it.
7917         * cgraphunit.c (init_lowered_empty_function): Always
7918         int SSA data structures.
7919         * tree-ssanames.c (release_defs): Remove assert that we are in
7920         SSA form.
7921         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
7922
7923 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7924             Uros Bizjak  <ubizjak@gmail.com>
7925
7926         PR rtl-optimization/70467
7927         * config/i386/predicates.md (x86_64_hilo_int_operand,
7928         x86_64_hilo_general_operand): New predicates.
7929         * config/i386/constraints.md (Wd): New constraint.
7930         * config/i386/i386.md (mode attr di): Use Wd instead of e.
7931         (general_hilo_operand): New mode attr.
7932         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
7933         instead of <general_operand>.
7934         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
7935         x86_64_hilo_general_operand instead of <general_operand>.
7936
7937 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7938
7939         PR tree-optimization/70916
7940         * tree-if-conv.c (constant_or_ssa_name): Removed.
7941         (fold_build_cond_expr): Use is_gimple_val instead of
7942         constant_or_ssa_name.
7943
7944         PR tree-optimization/70916
7945         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
7946         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
7947
7948         PR target/49244
7949         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
7950         (optimize_atomic_bit_test_and): New function.
7951         (pass_fold_builtins::execute): Use it.
7952         * optabs.def (atomic_bit_test_and_set_optab,
7953         atomic_bit_test_and_complement_optab,
7954         atomic_bit_test_and_reset_optab): New optabs.
7955         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
7956         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
7957         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
7958         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
7959         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
7960         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
7961         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
7962         * doc/md.texi (atomic_bit_test_and_set@var{mode},
7963         atomic_bit_test_and_complement@var{mode},
7964         atomic_bit_test_and_reset@var{mode}): Document.
7965         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
7966         atomic_bit_test_and_complement<mode>,
7967         atomic_bit_test_and_reset<mode>): New expanders.
7968         (atomic_bit_test_and_set<mode>_1,
7969         atomic_bit_test_and_complement<mode>_1,
7970         atomic_bit_test_and_reset<mode>_1): New insns.
7971
7972 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
7973
7974         PR rtl-optimization/70687
7975         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
7976         instead of unsigned HOST_WIDE_INT.
7977
7978 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
7979
7980         PR rtl-optimization/44281
7981         * hard-reg-set.h (struct target_hard_regs): New field
7982         x_fixed_nonglobal_reg_set.
7983         (fixed_nonglobal_reg_set): New macro.
7984         * reginfo.c (init_reg_sets_1): Initialize it.
7985         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
7986         of fixed_reg_set.
7987         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
7988
7989 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
7990
7991         PR tree-optimization/56541
7992         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
7993         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
7994         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
7995         (any_complicated_phi): new static variable.
7996         (aggressive_if_conv): delete.
7997         (if_convertible_phi_p): support phis with more than two arguments.
7998         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
7999         critical pred edges.
8000         (ifcvt_split_critical_edges): support phis with more than two
8001         arguments by checking new parameter.  only split critical edges
8002         if needed.
8003         (tree_if_conversion): handle simd pragma marked loop using new
8004         local variable aggressive_if_conv.  check any_complicated_phi.
8005
8006 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
8007
8008         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
8009         before using it.
8010
8011 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
8012
8013         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
8014         cbase.
8015
8016 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
8017
8018         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
8019         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
8020         define_insn_and_split.
8021         (mulsi3_i): New define_insn_and_split.
8022         (mulsi3_call): Convert to define_insn.
8023         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
8024         Remove constraints.
8025
8026 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
8027
8028         * machmode.h (mode_complex): Add support to give the complex mode
8029         for a given mode.
8030         (GET_MODE_COMPLEX_MODE): Likewise.
8031         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
8032         stored by build_complex_type and gfc_build_complex_type instead of
8033         trying to figure out the appropriate mode based on the size. Raise
8034         an assertion error, if the type was not set.
8035         * genmodes.c (struct mode_data): Add field for the complex type of
8036         the given type.
8037         (blank_mode): Likewise.
8038         (make_complex_modes): Remember the complex mode created in the
8039         base type.
8040         (emit_mode_complex): Write out the mode_complex array to map a
8041         type mode to the complex version.
8042         (emit_insn_modes_c): Likewise.
8043         * tree.c (build_complex_type): Set the complex type to use before
8044         calling layout_type.
8045         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
8046         support for __float128 complex datatypes.
8047         (rs6000_hard_regno_mode_ok): Likewise.
8048         (rs6000_setup_reg_addr_masks): Likewise.
8049         (rs6000_complex_function_value): Likewise.
8050         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
8051         __float128 and __ibm128 complex.
8052         (FLOAT128_IBM_P): Likewise.
8053         (ALTIVEC_ARG_MAX_RETURN): Likewise.
8054         * doc/extend.texi (Additional Floating Types): Document that
8055         -mfloat128 must be used to enable __float128.  Document complex
8056         __float128 and __ibm128 support.
8057
8058 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
8059
8060         PR target/49244
8061         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
8062         char/short arguments promoted to int because of promote_prototypes.
8063
8064 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
8065
8066         * config/i386/predicates.md (register_ssemem_operand): New predicate.
8067         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
8068         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
8069         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
8070         alternatives using "enabled" attribute.  Use register_ssemem_operand
8071         as operand 1 predicate.
8072         (*cmpi<unord>xf_i387): Split XFmode pattern from
8073         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
8074         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
8075         *absneg<mode>2_i387.  Disable unsupported alternatives using
8076         "enabled" attribute.
8077         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
8078
8079 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
8080
8081         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
8082         marker.
8083         (oacc_loop_process): Check mask for loop termination.
8084
8085 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
8086
8087         * cif-code.def (CIF_THUNK): Add.
8088         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
8089         accidental change.
8090
8091 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
8092
8093         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
8094         (dump_inline_summary): Dump it.
8095         (fp_expression_p): New predicate.
8096         (estimate_function_body_sizes): Use it.
8097         (inline_merge_summary): Merge fp_expressions.
8098         (inline_read_section): Read fp_expressions.
8099         (inline_write_summary): Write fp_expressions.
8100         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
8101         codegen boundary if either caller or callee is !fp_expressions.
8102         * ipa-inline.h (inline_summary): Add fp_expressions.
8103         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
8104         to fp_expressions be sure the fp generation flags are updated.
8105
8106 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
8107
8108         PR rtl-optimization/70467
8109         * cse.c (cse_insn): Handle no-op MEM moves after folding.
8110
8111         PR rtl-optimization/70467
8112         * ipa-pure-const.c (check_call): Handle internal calls even in
8113         ipa mode like in local mode.
8114
8115 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8116
8117         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
8118
8119 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
8120
8121         * match.pd (X u< X, X u> X): New transformations.
8122
8123 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
8124
8125         * flag-types.h (enum warn_strict_overflow_code): Move ...
8126         * coretypes.h: ... here.
8127         * fold-const.h (fold_overflow_warning): Declare.
8128         * fold-const.c (fold_overflow_warning): Make non-static.
8129         (fold_comparison): Move the transformation of X +- C1 CMP C2
8130         into X CMP C2 -+ C1 ...
8131         * match.pd: ... here.
8132         * gimple-fold.c (fold_stmt_1): Protect with
8133         fold_defer_overflow_warnings.
8134
8135 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
8136
8137         * omp-low.c (struct oacc_loop): Add 'inner' field.
8138         (new_oacc_loop_raw): Initialize it to zero.
8139         (oacc_loop_fixed_partitions): Initialize it.
8140         (oacc_loop_auto_partitions): Partition outermost loop to outermost
8141         available partitioning.
8142
8143 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8144
8145         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
8146         register_operand.
8147         (umulsidi3): Likewise.
8148         (indirect_jump): Fix jump instruction assembly patterns.
8149
8150 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
8151
8152         PR target/70860
8153         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
8154         (nvptx_function_value): Assert non-NULL cfun.
8155
8156 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
8157
8158         PR rtl-optimization/70886
8159         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
8160
8161         * cselib.h (rtx_equal_for_cselib_1): Declare.
8162         (rtx_equal_for_cselib_p: New inline function.
8163         * cselib.c (rtx_equal_for_cselib_p): Delete.
8164         (rtx_equal_for_cselib_1): Make public.
8165
8166 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
8167
8168         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
8169         (register_mixssei387nonimm_operand): Remove predicate.
8170         * config/i386/i386.md (*fop_<mode>_comm): Merge from
8171         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
8172         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
8173         for TARGET_MIX_SSE_I387 alternatives.
8174         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
8175         Disable unsupported alternatives using "enabled" attribute.  Use
8176         nonimm_ssenomem_operand as operand 1 predicate.  Also check
8177         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
8178
8179 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8180
8181         * tree.c (cst_and_fits_in_hwi): Simplify.
8182
8183 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8184
8185         * tree.h (wi::to_wide): New function.
8186         * expr.c (expand_expr_real_1): Use wi::to_wide.
8187         * fold-const.c (int_const_binop_1): Likewise.
8188         (extract_muldiv_1): Likewise.
8189
8190 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8191
8192         * wide-int.h: Update offset_int and widest_int documentation.
8193         (WI_SIGNED_SHIFT_RESULT): New macro.
8194         (wi::binary_shift): Define signed_shift_result_type for
8195         shifts on offset_int- and widest_int-like types.
8196         (generic_wide_int): Support <<= and >>= if << and >> are supported.
8197         * tree.h (int_bit_position): Use shift operators instead of wi::
8198          shifts.
8199         * alias.c (adjust_offset_for_component_ref): Likewise.
8200         * expr.c (get_inner_reference): Likewise.
8201         * fold-const.c (fold_comparison): Likewise.
8202         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
8203         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
8204         * tree-dfa.c (get_ref_base_and_extent): Likewise.
8205         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
8206         (stmt_kills_ref_p): Likewise.
8207         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
8208         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
8209         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8210         (ao_ref_init_from_vn_reference): Likewise.
8211
8212 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8213
8214         * wide-int.h: Update offset_int and widest_int documentation.
8215         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
8216         (wi::binary_traits): Allow ordered comparisons between offset_int and
8217         offset_int, between widest_int and widest_int, and between either
8218         of these types and basic C types.
8219         (operator <, <=, >, >=): Define for the same combinations.
8220         * tree.h (tree_int_cst_lt): Use comparison operators instead
8221         of wi:: comparisons.
8222         (tree_int_cst_le): Likewise.
8223         * gimple-fold.c (fold_array_ctor_reference): Likewise.
8224         (fold_nonarray_ctor_reference): Likewise.
8225         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
8226         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
8227         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
8228         * tree-sra.c (completely_scalarize): Likewise.
8229         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
8230         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
8231         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
8232         (check_for_binary_op_overflow): Likewise.
8233         (search_for_addr_array): Likewise.
8234         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
8235
8236 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8237
8238         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
8239         (arc_save_restore): Likewise.
8240         (arc_dwarf_register_span): Likewise.
8241         (arc_output_pic_addr_const): Initialize suffix variable.
8242
8243 2016-05-02  Martin Liska  <mliska@suse.cz>
8244
8245         * symbol-summary.h (function_summary::function_summary):
8246         Remove checking assert for all cgraph nodes.
8247         (function_summary::get): Check summary_uid.
8248         (symtab_insertion): Check summary_uid.
8249
8250 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8251
8252         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
8253         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
8254         bmaskn instruction.
8255         (arc_dwarf_register_span): Remove enum keyword.
8256         (compact_memory_operand_p): New function.
8257         * config/arc/arc.h (reg_class): Add code density register classes.
8258         (REG_CLASS_NAMES): Likewise.
8259         (REG_CLASS_CONTENTS): Likewise.
8260         * config/arc/arc.md (*movqi_insn): Add code density instructions.
8261         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
8262         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
8263         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
8264         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
8265         constraints.
8266         (h, Rcd, Rsd, Rzd): New register constraints.
8267         (T): Use compact_memory_operand_p function.
8268         * config/arc/predicates.md (compact_load_memory_operand): Remove.
8269
8270 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
8271
8272         * config/sh/sh.md (*negnegt, *movtt): Remove.
8273
8274 2016-05-02  Marek Polacek  <polacek@redhat.com>
8275             Tom de Vries  <tom@codesourcery.com>
8276
8277         PR tree-optimization/70700
8278         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
8279         bigger than FIRST_REF_NODE.
8280
8281 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
8282
8283         PR target/52898
8284         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
8285         TARGET_CMPEQDI_T.
8286         (prepare_cbranch_operands): Don't use scratch register.  Assume that
8287         function is used when pseudos can be created.
8288         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
8289         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
8290         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
8291         define_expand.  Allow it only when pseudos can be created.
8292         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
8293
8294 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
8295
8296         * config/i386/constraints.md (BC): Only allow -1 operands.
8297         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
8298         Add "enabled" attribute.  Update XI mode attribute calculation.
8299         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
8300         (*movoi_internal_avx): Update XI mode attribute calculation.
8301         (*movti_internal): Ditto.
8302
8303 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8304
8305         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
8306         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
8307
8308 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
8309
8310         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
8311         statement on instruction code.  Remove trailing spaces.
8312         (altivec_expand_stv_builtin): Likewise.
8313
8314 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8315
8316         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
8317         (TARGET_FPU_DOUBLE): Simplify.
8318         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
8319         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
8320         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
8321         with 'TARGET_FPU_DOUBLE'.
8322         * config/sh/sh.md: Likewise.
8323
8324 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
8325
8326         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
8327         SH_DIV_STR_FOR_SIZE): Remove.
8328         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
8329         SH_DIV_STR_FOR_SIZE): Remove.
8330
8331 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8332
8333         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
8334         logical_reg_operand): Delete.
8335         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
8336         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
8337         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
8338         match_operand and match_test.
8339         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
8340         variables on their first use.  Return bool values.
8341         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
8342         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
8343         arith_reg_operand for input operand.  Remove empty constraints.
8344         (xorsi3): Delete.
8345         (*xorsi3_compact): Rename to xorsi3.
8346         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
8347         (*zero_extend<mode>si2_disp_mem): Update comment.
8348         (mov_nop): Delete.
8349
8350 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
8351
8352         * config/sh/t-sh: Remove SH5 support.
8353         * config.gcc: Likewise.
8354         * configure: Likewise.
8355
8356 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8357
8358         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
8359
8360 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
8361
8362         * config/sh/sh.c (register_sh_passes, sh_option_override,
8363         sh_print_operand, prepare_move_operands,
8364         sh_can_follow_jump): Remove TARGET_SH1 checks.
8365         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
8366         PROMOTE_MODE): Likewise.
8367         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
8368         movdi): Likewise.
8369
8370 2016-04-30  Alan Modra  <amodra@gmail.com>
8371
8372         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
8373         restoring when fixed_reg_p, but allow out-of-line or stmw save.
8374         Check for user regs later to avoid unnecessary looping over regs.
8375         Merge user reg check with non-saved reg check.  Don't force
8376         inline VR restore when static chain used.
8377         (rs6000_frame_related): Omit eh_frame info for user regs when
8378         saving.
8379         (fixed_regs_p): Delete.
8380
8381 2016-04-30  Alan Modra  <amodra@gmail.com>
8382
8383         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
8384         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
8385         Update all uses.
8386
8387 2016-04-30  Alan Modra  <amodra@gmail.com>
8388
8389         PR target/69645
8390         * config/rs6000/rs6000.c (fixed_reg_p): New function.
8391         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
8392         Update all uses.
8393
8394 2016-04-30  Alan Modra  <amodra@gmail.com>
8395
8396         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
8397         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
8398         flag_pic test for Darwin.
8399
8400 2016-04-30  Alan Modra  <amodra@gmail.com>
8401
8402         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
8403         throw_calls_crossed.
8404         (REG_FREQ_CALLS_CROSSED): Delete.
8405         (REG_N_THROWING_CALLS_CROSSED): Delete.
8406         * regstat.c (regstat_bb_compute_ri): Don't calculate
8407         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
8408         (dump_reg_info): Don't print call cross frequency.
8409         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
8410         and REG_N_THROWING_CALLS_CROSSED.
8411
8412 2016-04-30  Alan Modra  <amodra@gmail.com>
8413
8414         * regs.h (struct reg_info_t): Delete live_length.
8415         (REG_LIVE_LENGTH): Delete macro.
8416         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
8417         local_live, local_processed and local_live_last_luid params.
8418         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
8419         Formatting fixes.
8420         (regstat_compute_ri): Adjust for above.  Don't set
8421         REG_LIVE_LENGTH.
8422         (dump_reg_info): Don't print live length.
8423         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
8424         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
8425         Localize loop_depth var.
8426
8427 2016-04-30  Alan Modra  <amodra@gmail.com>
8428
8429         * ira.c (enum valid_equiv): New.
8430         (validate_equiv_mem): Return enum.
8431         (update_equiv_mem): Create replacement in more cases.
8432         (add_store_equivs): Update validate_equiv_mem call.
8433
8434 2016-04-30  Alan Modra  <amodra@gmail.com>
8435
8436         * ira.c (combine_and_move_insns): Rather than scanning insns,
8437         use DF infrastucture to find use and def insns.
8438
8439 2016-04-30  Alan Modra  <amodra@gmail.com>
8440
8441         ira.c (combine_and_move_insns): Move invariant conditions..
8442         (ira.c): ..to here.  Call combine_and_move_insns before
8443         add_store_equivs.  Call grow_reg_equivs later.  Allocate
8444         req_equiv later using max_reg_num() rather than global max_regno.
8445         (contains_replace_regs): Delete.
8446         (add_store_equivs): Remove contains_replace_regs test.
8447
8448 2016-04-30  Alan Modra  <amodra@gmail.com>
8449
8450         * ira.c (struct equiv_mem_data): New.
8451         (equiv_mem, equiv_mem_modified): Delete static vars.
8452         (validate_equiv_mem_from_store): Use "data" param to communicate..
8453         (validate_equiv_mem): ..from here.
8454
8455 2016-04-30  Alan Modra  <amodra@gmail.com>
8456
8457         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
8458         split out from..
8459         (update_reg_equivs): ..here.  Move allocation and freeing of
8460         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
8461         end_alias_analysis to..
8462         (ira): ..here.
8463
8464 2016-04-30  Alan Modra  <amodra@gmail.com>
8465
8466         * ira.c (pdx_subregs): Delete.
8467         (struct equivalence): Add pdx_subregs field.
8468         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
8469         pdx_subregs access.
8470         (update_equiv_regs): Don't create or free pdx_subregs.  Update
8471         pdx_subregs access.
8472
8473 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8474
8475         * config/rs6000/altivec.h: Change definitions of vec_xl and
8476         vec_xst.
8477         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
8478         (LD_ELEMREV_V2DI): New.
8479         (LD_ELEMREV_V4SF): New.
8480         (LD_ELEMREV_V4SI): New.
8481         (LD_ELEMREV_V8HI): New.
8482         (LD_ELEMREV_V16QI): New.
8483         (ST_ELEMREV_V2DF): New.
8484         (ST_ELEMREV_V2DI): New.
8485         (ST_ELEMREV_V4SF): New.
8486         (ST_ELEMREV_V4SI): New.
8487         (ST_ELEMREV_V8HI): New.
8488         (ST_ELEMREV_V16QI): New.
8489         (XL): New.
8490         (XST): New.
8491         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8492         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
8493         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
8494         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
8495         (altivec_expand_builtin): Add handling for
8496         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
8497         (rs6000_invalid_builtin): Add error-checking for
8498         RS6000_BTM_P9_VECTOR.
8499         (altivec_init_builtins): Define builtins used to implement vec_xl
8500         and vec_xst.
8501         (rs6000_builtin_mask_names): Define power9-vector.
8502         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
8503         (RS6000_BTM_P9_VECTOR): Define.
8504         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
8505         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
8506         (vsx_ld_elemrev_v2df): Likewise.
8507         (vsx_ld_elemrev_v4sf): Likewise.
8508         (vsx_ld_elemrev_v4si): Likewise.
8509         (vsx_ld_elemrev_v8hi): Likewise.
8510         (vsx_ld_elemrev_v16qi): Likewise.
8511         (vsx_st_elemrev_v2df): Likewise.
8512         (vsx_st_elemrev_v2di): Likewise.
8513         (vsx_st_elemrev_v4sf): Likewise.
8514         (vsx_st_elemrev_v4si): Likewise.
8515         (vsx_st_elemrev_v8hi): Likewise.
8516         (vsx_st_elemrev_v16qi): Likewise.
8517         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
8518         grammar.
8519
8520 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
8521
8522         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
8523         out into ...
8524         (simplify_control_stmt_condition_1): ... here.  Recurse into
8525         BIT_AND_EXPRs and BIT_IOR_EXPRs.
8526
8527 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
8528
8529         PR target/69810
8530         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
8531         (zero_extendqi<mode>2_dot): Revert earlier conversion from
8532         define_insn_and_split to define_insn.
8533         (zero_extendqi<mode>2_dot2): Same.
8534         (extendqi<mode>2_dot): Same.
8535         (extendqi<mode>2_dot2): Same.
8536
8537 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8538
8539         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
8540         (probe_stack): New expander.
8541         (probe_stack_<mode>): New insn pattern.
8542
8543 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8544
8545         * config/i386/i386.md
8546         (operations with memory inputs setting flags peephole2):
8547         Remove uneeded REG_P checks.  Cleanup pattern generation.
8548
8549 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
8550
8551         * tree-vect-loop.c (vect_transform_loop): Fix
8552         nb_iterations_upper_bound computation for vectorized loop.
8553
8554 2016-04-29  Marek Polacek  <polacek@redhat.com>
8555             Jakub Jelinek  <jakub@redhat.com>
8556
8557         PR sanitizer/70342
8558         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
8559         TARGET_EXPR_SLOT as a base.
8560
8561 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
8562
8563         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
8564         with 'rCm2' constraints to limit possible immediate size.
8565         (*load_zeroextendqisi_update): Likewise.
8566         (*load_signextendqisi_update): Likewise.
8567         (*loadhi_update): Likewise.
8568         (*load_zeroextendhisi_update): Likewise.
8569         (*load_signextendhisi_update): Likewise.
8570         (*loadsi_update): Likewise.
8571         (*loadsf_update): Likewise.
8572
8573 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8574
8575         * config/i386/predicates.md (constm1_operand): Fix comparison.
8576
8577 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
8578
8579         * testsuite/gcc.target/arc/ieee_eq.c: New test.
8580
8581 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
8582
8583         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
8584         remaining SH5 related settings.
8585         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
8586         shmedia_prepare_call_address): Delete.
8587         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
8588         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
8589         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
8590         UNSUPPORTED_SH2A): Remove m5 checks.
8591         (sh_divide_strategy_e): Remove SH5 division strategies.
8592         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
8593         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
8594
8595 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8596
8597         * config/s390/s390.c (s390_rtx_costs): Update documentation.
8598
8599 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8600
8601         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
8602         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
8603         Change lder to ldr.
8604         * config/s390/vector.md ("mov<mode>"): Likewise.
8605
8606 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
8607
8608         * config/s390/constraints.md ("U", "W"): Invoke
8609         s390_mem_constraint with "ZR" and "ZT".
8610         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
8611         addresses when using LRA.  Accept also short displacements for S
8612         and T constraints.  Do not check for long displacement target for
8613         S and T constraints.
8614         (s390_mem_constraint): Remove handling of U and W constraints.
8615         * config/s390/s390.md (various patterns): Remove the short
8616         displacement constraints (Q and R) if a long displacement
8617         constraint is present.  Add longdisp as required CPU capability.
8618         * config/s390/vector.md: Likewise.
8619         * config/s390/vx-builtins.md: Likewise.
8620
8621 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8622
8623         PR target/60040
8624         * reload1.c (reload): Call finish_spills before
8625         restarting reload loop. Skip select_reload_regs
8626         if update_eliminables_and_spill returns true.
8627
8628 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
8629
8630         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
8631         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
8632         (umulhisi3_imm): Update predicates and constraint letters.
8633         (umulhisi3_reg): Declare instruction as commutative.
8634         * config/arc/constraints.md (J12, J16): New constraints.
8635         * config/arc/predicates.md (short_unsigned_const_operand): New
8636         predicate.
8637         (arc_short_operand): Likewise.
8638         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
8639
8640 2016-04-29  Richard Biener  <rguenther@suse.de>
8641
8642         PR tree-optimization/13962
8643         PR tree-optimization/65686
8644         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
8645         * tree-ssa-alias.c (ptrs_compare_unequal): New function
8646         using PTA to compare pointers.
8647         * match.pd: Add pattern for pointer equality compare simplification
8648         using ptrs_compare_unequal.
8649
8650 2016-04-29  Richard Biener  <rguenther@suse.de>
8651
8652         * stor-layout.c (layout_type): Do not build a pointer-to-element
8653         type for arrays.
8654
8655 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8656
8657         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
8658         Use SWI mode iterator.  Use general_reg_operand predicate.
8659         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
8660         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
8661         predicates.
8662
8663 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
8664
8665         PR middle-end/70843
8666         * fold-const.c (operand_equal_p): Don't verify hash value equality
8667         if arg0 == arg1.
8668         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
8669         and OMP_CLAUSE.
8670
8671 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8672
8673         PR target/70858
8674         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
8675         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
8676         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
8677         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
8678         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
8679
8680 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8681
8682         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
8683         to info.  Don't initialize separate fields to 0.  Clean up
8684         formatting a bit.
8685
8686 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8687
8688         * config/i386/i386.md (peephole2s for operations with memory inputs):
8689         Use SWI mode iterator.
8690         (peephole2s for operations with memory outputs): Ditto.
8691         Do not check for stack checking probe.
8692
8693         (probe_stack): Remove expander.
8694
8695 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8696             Andrew Burgess  <andrew.burgess@embecosm.com>
8697
8698         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
8699         operands as 32-bits.
8700
8701 2016-04-28  Jason Merrill  <jason@redhat.com>
8702
8703         * gdbinit.in: Skip line-map.h.
8704
8705 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8706             Andrew Burgess  <andrew.burgess@embecosm.com>
8707
8708         * config/arc/arc.c (arc_conditional_register_usage): Take
8709         TARGET_RRQ_CLASS into account.
8710         (arc_print_operand): Support printing 'p' and 's' operands.
8711         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
8712         as 0.
8713         (TARGET_RRQ_CLASS): Define.
8714         (IS_POWEROF2_OR_0_P): Define.
8715         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
8716         alternatives.
8717         (*tst_movb): New define_insn.
8718         (*tst): Avoid recognition if it could prevent '*tst_movb'
8719         combination; replace c/CnL with c/Chs alternative.
8720         (*tst_bitfield_tst): New define_insn.
8721         (*tst_bitfield_asr): New define_insn.
8722         (*tst_bitfield): New define_insn.
8723         (andsi3_i): Add Rrq variant.
8724         (extzv): New define_expand.
8725         (insv): New define_expand.
8726         (*insv_i): New define_insn.
8727         (*movb): New define_insn.
8728         (*movb_signed): New define_insn.
8729         (*movb_high): New define_insn.
8730         (*movb_high_signed): New define_insn.
8731         (*movb_high_signed + 1): New define_split pattern.
8732         (*mrgb): New define_insn.
8733         (*mrgb + 1): New define_peephole2 pattern.
8734         (*mrgb + 2): New define_peephole2 pattern.
8735         * config/arc/arc.opt (mbitops): New option for nps400, uses
8736         TARGET_NPS_BITOPS_DEFAULT.
8737         * config/arc/constraints.md (q): Make register class conditional.
8738         (Rrq): New register constraint.
8739         (Chs): New constraint.
8740         (Clo): New constraint.
8741         (Chi): New constraint.
8742         (Cbf): New constraint.
8743         (Cbn): New constraint.
8744         (C18): New constraint.
8745         (Cbi): New constraint.
8746
8747 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8748
8749         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
8750         dst->popcount.
8751         (bitmap_intersection_of_preds): Ditto.
8752         (bitmap_union_of_succs): Ditto.
8753         (bitmap_union_of_preds): Ditto.
8754         * sbitmap.c (do_popcount): Delete.
8755         (BITMAP_DEBUGGING): Delete.
8756         (sbitmap_verify_popcount): Delete.
8757         (sbitmap_alloc): Don't initialize the popcount field.
8758         (sbitmap_alloc_with_popcount): Delete.
8759         (sbitmap_resize): Don't resize the popcount array.
8760         (sbitmap_vector_alloc): Don't initialize the popcount field.
8761         (bitmap_copy): Don't copy the popcount array.
8762         (bitmap_clear): Don't clear the popcount array.
8763         (bitmap_clear): Delete the popcount array handling.
8764         (bitmap_ior_and_compl): Delete the popcount assert.
8765         (bitmap_not): Ditto.
8766         (bitmap_and_compl): Ditto.
8767         (bitmap_and): Delete the popcount array handling.
8768         (bitmap_xor): Ditto.
8769         (bitmap_ior): Ditto.
8770         (bitmap_or_and): Delete the popcount assert.
8771         (bitmap_and_or): Ditto.
8772         (popcount_table): Delete.
8773         (sbitmap_elt_popcount): Delete.
8774         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
8775         (bitmap_set_bit): Delete the popcount assert.
8776         (bitmap_clear_bit): Ditto.
8777         (sbitmap_free): Don't free the popcount array.
8778         (sbitmap_alloc_with_popcount): Delete declaration.
8779         (sbitmap_popcount): Ditto.
8780
8781 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8782             Andrew Burgess  <andrew.burgess@embecosm.com>
8783
8784         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
8785         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
8786         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
8787         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
8788         * config/arc/arc.opt (mcmem): New option.
8789         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
8790         supply length for r/m alternative.
8791         (*extendqisi2_ac): Likewise.
8792         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
8793         r/Uex alternative.
8794         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
8795         (movhi_insn): Likewise.
8796         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
8797         (*zero_extendqihi2_i): Add r/Ucm alternative.
8798         (*zero_extendqisi2_ac): Likewise.
8799         (*zero_extendhisi2_i): Likewise.
8800         * config/arc/constraints.md (Uex): New memory constraint.
8801         (Ucm): New define_constraint.
8802         * config/arc/predicates.md (long_immediate_loadstore_operand):
8803         Return 0 for MEM with cmem_address address.
8804         (cmem_address_0): New predicates.
8805         (cmem_address_1): Likewise.
8806         (cmem_address_2): Likewise.
8807         (cmem_address): Likewise.
8808
8809 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8810
8811         * config/rs6000/rs6000.c (machine_function): Rename
8812         insn_chain_scanned_p to spe_insn_chain_scanned_p.
8813         (rs6000_stack_info): Adjust.
8814
8815 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8816             Andrew Burgess  <andrew.burgess@embecosm.com>
8817
8818         * config/arc/constraints.md (Usd): Convert to define_constraint.
8819         (Us<): Likewise.
8820         (Us>): Likewise.
8821
8822 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8823
8824         PR target/70821
8825         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
8826         Add new peephole2 where the first insn is *mov<mode>_or instead of
8827         *mov<mode>_internal.
8828
8829 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
8830
8831         * tracer.c (bb_seen): Make static.
8832
8833 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
8834
8835         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
8836         support, setup defaults.
8837         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
8838         * config/arc/arc.c (arc_init): Add NPS400 support.
8839         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
8840         (TARGET_ARC700): NPS400 is also an ARC700.
8841         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
8842
8843 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8844
8845         PR target/70668
8846         * config/nds32/nds32.md (casesi): Don't access the operands array
8847         out of bounds.
8848
8849 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8850
8851         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
8852         (or $-1,reg peephole2): Ditto.
8853         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
8854
8855 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
8856
8857         * doc/extend.texi (Common Function Attributes) [optimize]:
8858         Discourage use of the optimize attribute.
8859
8860 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
8861
8862         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
8863         special case builtin.
8864         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
8865         ALTIVEC_BUILTIN_VEC_ADDE.
8866         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
8867         support for ALTIVEC_BUILTIN_VEC_ADDE.
8868         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
8869         for __builtin_vec_adde.
8870
8871 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8872
8873         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
8874         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
8875
8876 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8877
8878         PR testsuite/70595
8879         * doc/sourcebuild.texi (Effective-Target Keywords, Other
8880         attributes): Document cilkplus_runtime.
8881
8882 2016-04-28  Martin Jambor  <mjambor@suse.cz>
8883
8884         * tree-cfg.c (verify_expr): Verify that local declarations belong to
8885         this function.  Call verify_expr on MEM_REFs and bases of other
8886         handled_components.
8887
8888 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8889
8890         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
8891         for WORD_REGISTER_OPERATIONS to runtime check.
8892
8893 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8894
8895         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
8896
8897 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8898
8899         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
8900         big-endian compilation.
8901         * config/arc/arc.md (addf3): Likewise.
8902         (subdf3): Likewise.
8903         (muldf3): Likewise.
8904
8905 2016-04-28  Richard Biener  <rguenther@suse.de>
8906
8907         PR tree-optimization/70840
8908         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
8909         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
8910         Mark x * pow(x,c) -> pow(x,c+1) commutative.
8911         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
8912
8913 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8914
8915         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
8916         and explain why in a comment.
8917
8918 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8919
8920         * config/arc/arc.md (cpu_facility): Add fpx variant.
8921         (subdf3): Prohibit use reverse sub when assist operations option
8922         is enabled.
8923         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
8924         instructions only when FPX is enabled.
8925         * testsuite/gcc.target/arc/trsub.c: New test.
8926
8927 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8928
8929         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
8930         mult_operator when calculating "type" attribute.
8931         (*fop_<mode>_1_i387): Ditto.
8932         (*fop_xf_1_i387): Ditto.
8933         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
8934         Use std::swap to swap operands.  Use RTL expressions to generate
8935         converted pattern.
8936
8937 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8938             Joern Rennecke  <joern.rennecke@embecosm.com>
8939
8940         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
8941         declaration.
8942         (emit_pic_move): Remove.
8943         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
8944         * config/arc/arc.c (emit_pic_move): Removed.
8945         (TARGET_HAVE_TLS): Define.
8946         (arc_conditional_register_usage): Test for arc_tp_regno.
8947         (arc_print_operand, arc_print_operand_address): Handle TLS
8948         unspecs.
8949         (arc_needs_pcl_p): New function.
8950         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
8951         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
8952         (arc_raw_symbolic_reference_mentioned_p): Likewise.
8953         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
8954         (arc_legitimize_tls_address): Likewise.
8955         (DTPOFF_ZERO_SYM): Define.
8956         (arc_legitimize_pic_address): Make it static, handle TLS cases.
8957         (arc_output_pic_addr_const): Print TLS unspecs.
8958         (prepare_pic_move): New function, replaces emit_pic_move.
8959         (arc_legitimate_constant_p): Handle TLS unspecs.
8960         (arc_legitimate_address_p): Likewise.
8961         (arc_rewrite_small_data_p): Use assert for TLS constants.
8962         (prepare_move_operands): Use prepare_pic_move.
8963         (arc_legitimize_address): Legitimize tls addresses.
8964         (arc_epilogue_uses): Check for arc_tp_regno.
8965         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
8966         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
8967         Define.
8968         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
8969         Likewise.
8970         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
8971         %(arc_tls_extra_start_spec).
8972         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
8973         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
8974         (EH_USES): Define.
8975         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
8976         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
8977         (UNSPEC_TLS_OFF): Add.
8978         (R10_REG): Define.
8979         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
8980         (get_thread_pointersi): New patterns.
8981         * config/arc/arc.opt (mtp-regno): New option.
8982         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
8983         (move_dest_operand): Likewise.
8984         * configure: Regenerate.
8985         * configure.ac: Add arc*-*-* case to test for tls.
8986         * doc/invoke.texi (ARC options): Document mtp-regno.
8987
8988 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
8989
8990         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
8991         the new ARC HS SIMD instructions.
8992         (arc_preferred_simd_mode): New function.
8993         (arc_autovectorize_vector_sizes): Likewise.
8994         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
8995         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8996         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
8997         (arc_init_builtins): Add new SIMD builtin types.
8998         (arc_split_move): Handle 64 bit vector moves.
8999         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
9000         (TARGET_PLUS_QMACW): Define.
9001         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
9002         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
9003         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
9004         (VSUBADD4H): New builtins.
9005         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
9006         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
9007
9008 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
9009             Matthias Klose  <doko@debian.org>
9010
9011         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
9012
9013 2016-04-28  Richard Biener  <rguenther@suse.de>
9014
9015         PR middle-end/70777
9016         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
9017         canonicalization.
9018
9019 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
9020
9021         * common/config/sh/sh-common.c: Remove SH5 support.
9022         * config/sh/constraints.md: Likewise.
9023         * config/sh/config/sh/elf.h: Likewise.
9024         * config/sh/linux.h: Likewise.
9025         * config/sh/netbsd-elf.h: Likewise.
9026         * config/sh/predicates.md: Likewise.
9027         * config/sh/sh-c.c: Likewise.
9028         * config/sh/sh-protos.h: Likewise.
9029         * config/sh/sh.c: Likewise.
9030         * config/sh/sh.h: Likewise.
9031         * config/sh/sh.md: Likewise.
9032         * config/sh/sh.opt: Likewise.
9033         * config/sh/sync.md: Likewise.
9034         * config/sh/sh64.h: Delete.
9035         * config/sh/shmedia.h: Likewise.
9036         * config/sh/shmedia.md: Likewise.
9037         * config/sh/sshmedia.h: Likewise.
9038         * config/sh/t-netbsd-sh5-64: Likewise.
9039         * config/sh/t-sh64: Likewise.
9040         * config/sh/ushmedia.h: Likewise.
9041
9042 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
9043
9044         * config/i386/i386.md (sign_extend to memory peephole2s): Use
9045         general_reg_operand instead of register_operand predicate.
9046
9047 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9048
9049         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
9050
9051 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
9052
9053         * match.pd (A - B > A, A + B < A): New transformations.
9054
9055 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
9056
9057         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
9058         which defaults to true.  Emit an outer pair of parentheses only if
9059         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
9060         don't emit parentheses for the right-hand operand.
9061
9062 2016-04-27  Jeff Law  <law@redhat.com>
9063
9064         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
9065
9066 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9067
9068         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
9069         (altivec_lvx_<mode>_internal): Document.
9070         (altivec_lvx_<mode>_2op): New define_insn.
9071         (altivec_lvx_<mode>_1op): Likewise.
9072         (altivec_lvx_<mode>_2op_si): Likewise.
9073         (altivec_lvx_<mode>_1op_si): Likewise.
9074         (altivec_stvx_<mode>): Remove.
9075         (altivec_stvx_<mode>_internal): Document.
9076         (altivec_stvx_<mode>_2op): New define_insn.
9077         (altivec_stvx_<mode>_1op): Likewise.
9078         (altivec_stvx_<mode>_2op_si): Likewise.
9079         (altivec_stvx_<mode>_1op_si): Likewise.
9080         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9081         Expand vec_ld and vec_st during parsing.
9082         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
9083         changes.
9084         (altivec_expand_stvx_be): Likewise.
9085         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
9086         address-masking behavior in RTL.
9087         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
9088         address-masking behavior in RTL.
9089         (altivec_expand_builtin): Change builtin code arguments for calls
9090         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
9091         (insn_is_swappable_p): Avoid incorrect swap optimization in the
9092         presence of lvx/stvx patterns.
9093         (alignment_with_canonical_addr): New function.
9094         (alignment_mask): Likewise.
9095         (find_alignment_op): Likewise.
9096         (recombine_lvx_pattern): Likewise.
9097         (recombine_stvx_pattern): Likewise.
9098         (recombine_lvx_stvx_patterns): Likewise.
9099         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
9100         stvx patterns from expand.
9101         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
9102         expansions.
9103         (vector_altivec_store_<mode>): Likewise.
9104
9105 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
9106
9107         * config/aarch64/aarch64.md
9108         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
9109         remove the "fp" attributes.
9110         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
9111         add the "simd" attributes.
9112         (*movdf_aarch64): Likewise.
9113         (*movtf_aarch64): Remove the "fp" attributes.
9114         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
9115         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
9116
9117 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9118
9119         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
9120         rtx to rtx_code_label *.
9121         * rtl.h (maybe_set_first_label_num): Likewise.
9122
9123 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9124
9125         * df-core.c (df_add_problem): Make the problem param be const.
9126         (df_remove_problem): Make local "problem" be const.
9127         * df-problems.c (problem_RD): Make const.
9128         (problem_LR): Likewise.
9129         (problem_LIVE): Likewise.
9130         (problem_MIR): Likewise.
9131         (problem_CHAIN): Likewise.
9132         (problem_WORD_LR): Likewise.
9133         (problem_NOTE): Likewise.
9134         (problem_MD): Likewise.
9135         * df-scan.c (problem_SCAN): Likewise.
9136         * df.h (struct df_problem): Make field "dependent_problem" be
9137         const.
9138         (struct dataflow): Likewise for field "problem".
9139         (df_add_problem): Make param const.
9140
9141 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
9142
9143         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
9144         inter-unit moves to/from vector registers are enabled.  Do not disable
9145         for TARGET_MMX.
9146
9147 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9148
9149         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
9150         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
9151         #define to...
9152         (enum df_problem_id): ...this new enum.
9153         (struct df_problem): Convert field "id" from "int" to
9154         enum df_problem_id.
9155
9156 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9157
9158         * rtl.def: Update comment for "things in the instruction chain" to
9159         reflect the removal of the leading "i" field for INSN_UID in
9160         r210360.  Fix bogus apostrophe.
9161
9162 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
9163
9164         * config/i386/i386.md
9165         (lea arith with mem operand + setcc peephole2): Set operator mode.
9166
9167 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
9168
9169         PR target/70155
9170         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
9171         (dimode_scalar_to_vector_candidate_p): This.
9172         (timode_scalar_to_vector_candidate_p): New function.
9173         (scalar_to_vector_candidate_p): Likewise.
9174         (timode_check_non_convertible_regs): Likewise.
9175         (timode_remove_non_convertible_regs): Likewise.
9176         (remove_non_convertible_regs): Likewise.
9177         (remove_non_convertible_regs): Renamed to ...
9178         (dimode_remove_non_convertible_regs): This.
9179         (scalar_chain::~scalar_chain): Make it virtual.
9180         (scalar_chain::compute_convert_gain): Make it pure virtual.
9181         (scalar_chain::mark_dual_mode_def): Likewise.
9182         (scalar_chain::convert_insn): Likewise.
9183         (scalar_chain::convert_registers): Likewise.
9184         (scalar_chain::add_to_queue): Make it protected.
9185         (scalar_chain::emit_conversion_insns): Likewise.
9186         (scalar_chain::replace_with_subreg): Likewise.
9187         (scalar_chain::replace_with_subreg_in_insn): Likewise.
9188         (scalar_chain::convert_op): Likewise.
9189         (scalar_chain::convert_reg): Likewise.
9190         (scalar_chain::make_vector_copies): Likewise.
9191         (scalar_chain::convert_registers): New pure virtual function.
9192         (class dimode_scalar_chain): New class.
9193         (class timode_scalar_chain): Likewise.
9194         (scalar_chain::mark_dual_mode_def): Renamed to ...
9195         (dimode_scalar_chain::mark_dual_mode_def): This.
9196         (timode_scalar_chain::mark_dual_mode_def): New function.
9197         (timode_scalar_chain::convert_insn): Likewise.
9198         (dimode_scalar_chain::convert_registers): Likewise.
9199         (scalar_chain::compute_convert_gain): Renamed to ...
9200         (dimode_scalar_chain::compute_convert_gain): This.
9201         (scalar_chain::replace_with_subreg): Renamed to ...
9202         (dimode_scalar_chain::replace_with_subreg): This.
9203         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
9204         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
9205         (scalar_chain::make_vector_copies): Renamed to ...
9206         (dimode_scalar_chain::make_vector_copies): This.
9207         (scalar_chain::convert_reg): Renamed to ...
9208         (dimode_scalar_chain::convert_reg ): This.
9209         (scalar_chain::convert_op): Renamed to ...
9210         (dimode_scalar_chain::convert_op): This.
9211         (scalar_chain::convert_insn): Renamed to ...
9212         (dimode_scalar_chain::convert_insn): This.
9213         (scalar_chain::convert): Call convert_registers.
9214         (convert_scalars_to_vector): Change to scalar_chain pointer to
9215         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
9216         in 32-bit mode.  Delete scalar_chain pointer.  Call
9217         free_dominance_info in 64-bit mode.
9218         (pass_stv::gate): Remove TARGET_64BIT check.
9219         (ix86_option_override): Put the 64-bit STV pass before the CSE
9220         pass.
9221
9222 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
9223
9224         * dwarf2out.h (struct dw_loc_descr_node): Remove the
9225         dw_loc_frame_offset field.
9226         * dwarf2out.c (new_loc_descr): Likewise.
9227         (resolve_args_picking_1): Turn the VISITED hash set into a
9228         FRAME_OFFSET hash map. Use it to associate a frame offset to
9229         visited nodes. Remove uses of the CHECKING_P macro.
9230         (resolve_args_picking): Update call to resolve_args_picking_1.
9231
9232 2016-04-27  Martin Liska  <mliska@suse.cz>
9233
9234         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
9235         (free_loop_data): Release vuses of groups.
9236
9237 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
9238
9239         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
9240         instead of redundant use_id and boolean have_use_for.
9241         (struct iv_use): Change sub_id into group_id.  Remove field next.
9242         Move fields: related_cands, n_map_members, cost_map and selected
9243         to ...
9244         (struct iv_group): ... here.  New structure.
9245         (struct iv_common_cand): Use structure declaration directly.
9246         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
9247         (MAX_CONSIDERED_USES): Rename macro to ...
9248         (MAX_CONSIDERED_GROUPS): ... here.
9249         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
9250         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
9251         (dump_uses): Rename to ...
9252         (dump_groups): ... here.  Update all uses.
9253         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
9254         (find_induction_variables): Refactor format of dump information.
9255         (record_sub_use): Delete.
9256         (record_use): Update all uses.
9257         (record_group): New function.
9258         (record_group_use, find_interesting_uses_op): Call above functions.
9259         Update all uses.
9260         (find_interesting_uses_cond): Ditto.
9261         (group_compare_offset): New function.
9262         (split_all_small_groups): Rename to ...
9263         (split_small_address_groups_p): ... here.  Update all uses.
9264         (split_address_groups):  Update all uses.
9265         (find_interesting_uses): Refactor format of dump information.
9266         (add_candidate_1): Update all uses.  Remove redundant check on iv,
9267         base and step.
9268         (add_candidate, record_common_cand): Remove redundant assert.
9269         (add_iv_candidate_for_biv): Update use.
9270         (add_iv_candidate_derived_from_uses): Update all uses.
9271         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
9272         (alloc_use_cost_map): Ditto.
9273         (set_use_iv_cost, get_use_iv_cost): Rename to ...
9274         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
9275         (determine_use_iv_cost_generic): Ditto.
9276         (determine_group_iv_cost_generic): Ditto.
9277         (determine_use_iv_cost_address): Ditto.
9278         (determine_group_iv_cost_address): Ditto.
9279         (determine_use_iv_cost_condition): Ditto.
9280         (determine_group_iv_cost_cond): Ditto.
9281         (determine_use_iv_cost): Ditto.
9282         (determine_group_iv_cost): Ditto.
9283         (set_autoinc_for_original_candidates): Update all uses.
9284         (find_iv_candidates): Update all uses.  Refactor dump information.
9285         (determine_use_iv_costs): Ditto.
9286         (determine_iv_costs): Ditto.
9287         (iv_ca_cand_for_use): Rename to ...
9288         (iv_ca_cand_for_group): ... here.  Update all uses.
9289         (iv_ca_add_use, iv_ca_add_group): Ditto.
9290         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
9291         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
9292         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
9293         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
9294         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
9295         (create_new_iv, adjust_iv_update_pos): Ditto.
9296         (rewrite_use_address): Delete.
9297         (rewrite_use_address_1): Rename to ...
9298         (rewrite_use_address): ... here.
9299         (rewrite_use_compare): Update all uses.
9300         (rewrite_use): Delete.
9301         (rewrite_uses): Rename to ...
9302         (rewrite_groups): ... here.  Update all uses.
9303         (remove_unused_ivs, free_loop_data): Update all uses.
9304         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
9305
9306 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9307
9308         * rtlanal.c (nonzero_bits1): Convert preprocessor check
9309         for WORD_REGISTER_OPERATIONS to runtime check.
9310
9311 2016-04-27  Richard Biener  <rguenther@suse.de>
9312
9313         PR ipa/70760
9314         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
9315         aggregate_value_p to determine if a function result is
9316         returned by reference.
9317         (ipa_pta_execute): Functions having their address taken are
9318         not automatically nonlocal.
9319
9320 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
9321
9322         PR sanitizer/70683
9323         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
9324         * fold-const.c (operand_equal_p): If flag_checking and
9325         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
9326         and if it returns non-zero, assert iterative_hash_expr on both
9327         args is the same.
9328
9329 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
9330
9331         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
9332
9333 2016-04-27  Nick Clifton  <nickc@redhat.com>
9334
9335         PR middle-end/49889
9336         * varasm.c (merge_weak): Generate an error if an attempt is made
9337         to convert a non-weak static function into a weak, public function.
9338
9339 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9340
9341         * params.def (MAX_PARTITION_SIZE): New param.
9342         * doc/invoke.texi: Document lto-max-partition.
9343
9344 2016-04-27  Richard Biener  <rguenther@suse.de>
9345
9346         PR ipa/70785
9347         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
9348         function cummulating used_from_other_partition, externally_visible
9349         and force_output from aliases.
9350         (refered_from_nonlocal_var): Likewise.
9351         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
9352         node flags properly.
9353
9354 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
9355
9356         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
9357         (-Wmemset-elt-size): New item.
9358
9359 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
9360
9361         PR ada/70759
9362         * stor-layout.h (internal_reference_types): Delete.
9363         * stor-layout.c (reference_types_internal): Likewise.
9364         (internal_reference_types): Likewise.
9365         (layout_type) <REFERENCE_TYPE>: Adjust.
9366
9367 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
9368
9369         PR sanitizer/70683
9370         * tree.h (inchash::add_expr): Add FLAGS argument.
9371         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
9372         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
9373         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
9374         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
9375         if swap_tree_comparison (code) is smaller than code, hash that
9376         and arguments in the other order.  Hash CONVERT_EXPR the same
9377         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
9378         of ADDR_EXPR of decl as the decl itself.  Add or remove
9379         OEP_ADDRESS_OF from recursive flags as needed.  For
9380         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
9381         operands commutatively and only the third one normally.
9382         For internal CALL_EXPR hash in CALL_EXPR_IFN.
9383
9384 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9385
9386         * config/rtems.h (LIB_SPEC): Add -latomic.
9387
9388 2016-04-27  Joel Sherrill  <joel@rtems.org>
9389
9390         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
9391         xilink.ld and flags not relevant to RTEMS.
9392
9393 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
9394
9395         * toplev.c (backend_init_target): Avoid calling init_reload when using
9396         LRA.
9397
9398 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
9399
9400         * reorg.c (try_merge_delay_insns): Declare i and j inside the
9401         for loops rather than one for the whole function.
9402
9403 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
9404
9405         * match.pd (X + CST CMP X): New transformation.
9406
9407 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
9408
9409         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
9410         * fold-const.c (fold_binary_loc): Remove 2 transformations
9411         superseded by match.pd.
9412         * match.pd (x+x -> x*2): Generalize to integers.
9413
9414 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
9415
9416         * config/i386/i386.md (operation on memory peephole): Duplicate an
9417         existing peephole and adapt it to match lea rather than an operation
9418         that clobbers CC.
9419
9420         PR rtl-optimization/57193
9421         * opts.c (default_options_table): Add OPT_frename_registers at -O2
9422         and above.
9423         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
9424
9425 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
9426
9427         * tree-if-conv.c (any_pred_load_store): New static variable.
9428         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
9429         any_pred_load_store instead of and_mask_load_store.
9430         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
9431         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
9432         (combine_blocks, tree_if_conversion): Ditto.
9433
9434 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
9435
9436         PR tree-optimization/70771
9437         PR tree-optimization/70775
9438         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
9439         virtual PHI nodes.  Delete parameter.
9440         (if_convertible_loop_p_1): Delete argument to above function.
9441         (predicate_all_scalar_phis): Delete code handling single-argument
9442         PHIs.
9443         (tree_if_conversion): Mark and update virtual SSA.
9444
9445 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9446
9447         PR target/61821
9448         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
9449         (x86_elf_aligned_common): Rename to ...
9450         (x86_elf_aligned_decl_common): ... this.
9451         Add decl arg.  Switch to .lbss for largecomm object.  Use
9452         LARGECOMM_SECTION_ASM_OP.
9453         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
9454         renaming.
9455         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
9456         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
9457         Pass new decl arg.
9458         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
9459         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
9460
9461 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9462
9463         PR target/59407
9464         * config/i386/i386.c (SECTION_LARGE): Define.
9465         (x86_64_elf_select_section): Set it for large data/bss sections.
9466         Only clear SECTION_WRITE for .lrodata.
9467         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
9468         data/bss sections.
9469         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
9470         * varasm.c (default_elf_asm_named_section): Grow flagchars.
9471         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
9472         SECTION_MACH_DEP.
9473         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
9474         * doc/tm.texi: Regenerate.
9475
9476 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
9477
9478         PR bootstrap/70704
9479         * configure.ac (--enable-checking): Document extra flag, for
9480         non-release builds default to --enable-checking=yes,extra.
9481         If misc checking and extra checking, define CHECKING_P to 2 instead
9482         of 1.
9483         * common.opt (fchecking=): Add.
9484         * doc/invoke.texi (-fchecking=): Document.
9485         * doc/install.texi: Document --enable-checking changes.
9486         * configure: Regenerated.
9487         * config.in: Regenerated.
9488
9489 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9490
9491         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
9492         attribute instead of which_alternative.
9493         * config/i386/sse.md (*mov<mode>_internal): Ditto.
9494         Use EXT_REX_SSE_REG_P where appropriate.
9495
9496 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9497
9498         * config/i386/predicates.md (const0_operand): Do not match
9499         const_wide_int code.
9500         (const1_operand): Ditto.
9501
9502 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9503
9504         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
9505         for SSE constm1 operands and TARGET_AVX512VL.
9506         (*movti_internal): Ditto.
9507         (*mov<mode>_or): Use constm1_operand predicate.
9508         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
9509         for SSE vector_all_ones operands and TARGET_AVX512VL.
9510         * config/i386/predicates.md (constm1_operand): New predicate.
9511         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
9512         emission of constant -1 load.
9513
9514 2016-04-25  Jason Merrill  <jason@redhat.com>
9515
9516         * gdbinit.in: Skip is-a.h.
9517
9518         * attribs.c (register_scoped_attributes): Fix logic.
9519         * attribs.h: Declare register_scoped_attributes.
9520
9521 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9522
9523         * config/rs6000/rs6000-builtin.def: Correct pasto error for
9524         stxvd2x and stxvw4x built-in functions.
9525
9526 2016-04-25  DJ Delorie  <dj@redhat.com>
9527
9528         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
9529         (ashrhi3): Likewise.
9530         (lshrhi3): Likewise.
9531
9532 2016-04-25  Richard Biener  <rguenther@suse.de>
9533
9534         PR tree-optimization/70780
9535         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
9536         wasn't visited yet.
9537         (compute_antic): Mark blocks with abnormal preds as visited as
9538         they have a final empty antic-in solution already.
9539
9540 2016-04-25  Michael Collison  <michael.collison@linaro.org>
9541
9542         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
9543
9544 2016-04-25  Michael Collison  <michael.collison@linaro.org>
9545
9546         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
9547         mode is VQI to improve mixed mode vectorization.
9548         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
9549         define_insn to match low half of signed vaddw.
9550         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
9551         define_insn to match high half of signed vaddw.
9552         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
9553         define_insn to match low half of unsigned vaddw.
9554         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
9555         define_insn to match high half of unsigned vaddw.
9556         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
9557         (arm_simd_check_vect_par_cnst_half_p): Likewise.
9558         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
9559         for new function.
9560         (arm_simd_check_vect_par_cnst_half_p): Likewise.
9561         * config/arm/predicates.md (vect_par_constant_high): Support
9562         big endian and simplify by calling
9563         arm_simd_check_vect_par_cnst_half
9564         (vect_par_constant_low): Likewise.
9565
9566 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9567
9568         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
9569         predicate for operand 2.
9570
9571 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
9572             H.J. Lu  <hongjiu.lu@intel.com>
9573
9574         * config/i386/i386-protos.h (standard_sse_constant_p): Add
9575         machine_mode argument.
9576         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
9577         constm1_rtx operands.  For VOIDmode constants, get mode from
9578         pred_mode.  Check mode size if the mode is supported by ABI.
9579         (standard_sse_constant_opcode): Do not use standard_constant_p.
9580         Strictly check ABI support for all-ones operands.
9581         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
9582         immediates. Update calls to standard_sse_constant_p.
9583         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
9584         (ix86_rtx_costs): Ditto.
9585         * config/i386/i386.md (*movxi_internal_avx512f): Use
9586         nonimmediate_or_sse_const_operand instead of vector_move_operand.
9587         Use (v,BC) alternative instead of (v,C). Use register_operand
9588         checks instead of MEM_P.
9589         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
9590         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
9591         isa attribute.  Use register_operand checks instead of MEM_P.
9592         (*movti_internal): Use nonimmediate_or_sse_const_operand for
9593         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
9594         alternative and corresponding sse2 isa attribute.
9595         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
9596         to standard_sse_constant_p.
9597         (FP constant splitters): Ditto.
9598         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
9599         (C): Ditto.
9600         * config/i386/predicates.md (constm1_operand): Remove.
9601         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
9602         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
9603         vector_all_ones_operand instead of constm1_operand.
9604
9605 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9606
9607         * print-rtl.c (print_rtx_insn_vec): New function.
9608         * print-rtl.h: New prototype.
9609         * store-motion.c (struct st_expr): Make avail_stores a vector.
9610         (st_expr_entry): Adjust.
9611         (free_st_expr_entry): Likewise.
9612         (print_store_motion_mems): Likewise.
9613         (find_moveable_store): Likewise.
9614         (compute_store_table): Likewise.
9615         (delete_store): Likewise.
9616         (build_store_vectors): Likewise.
9617
9618 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9619
9620         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
9621
9622 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9623
9624         * vec.h (vec_safe_contains): New function.
9625         (vec::contains): Likewise.
9626         (vec::begin): Likewise.
9627         (vec::end): Likewise.
9628
9629 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
9630
9631         PR sanitizer/70712
9632         * cfgexpand.c (expand_stack_vars): Fix typo.
9633
9634 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9635
9636         * system.h (list, map, set, vector): Include conditionally.
9637         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
9638         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
9639         * ipa-icf.c (INCLUDE_LIST): Define.
9640         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
9641         * config/sh/sh.c (INCLUDE_VECTOR): Define.
9642         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
9643         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
9644         * cp/logic.cc (INCLUDE_LIST): Define.
9645         * fortran/trans-common.c (INCLUDE_MAP): Define.
9646
9647 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9648
9649         * auto-profile.c: Remove <string.h> include.
9650         * ipa-icf-gimple.c: Remove <list> include.
9651         * diagnostic.c: Remove <new> include.
9652         * genmatch.c: Likewise.
9653         * pretty-print.c: Likewise.
9654         * toplev.c: Likewise
9655         * c/c-objc-common.c: Likewise.
9656         * cp/error.c: Likewise.
9657         * fortran/error.c: Likewise.
9658
9659 2016-04-22  Richard Biener  <rguenther@suse.de>
9660
9661         * lto-streamer-in.c (input_ssa_names): Do not allocate
9662         GIMPLE_NOP for all SSA names.
9663         * lto-streamer-out.c (output_ssa_names): Do not output
9664         SSA names that should have been released.
9665
9666 2016-04-22  Richard Biener  <rguenther@suse.de>
9667
9668         PR tree-optimization/70740
9669         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
9670         VDEF.
9671
9672 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
9673
9674         PR target/70750
9675         * config/i386/predicates.md (call_insn_operand): Replace
9676         sibcall_memory_operand with memory_operand.
9677
9678 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
9679
9680         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
9681         has_single_use() tests.
9682         (register_edge_assert_for_1): Likewise.
9683         (find_assert_locations_1): Check the liveness bitmap instead of
9684         checking has_single_use().
9685
9686 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
9687
9688         PR target/70728
9689         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
9690         Extract AVX-512BW constraint from AVX.
9691
9692 2016-04-21  Richard Biener  <rguenther@suse.de>
9693
9694         PR tree-optimization/70725
9695         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
9696         for phi_convertible_by_degenerating_args.
9697         (predicate_all_scalar_phis): Handle single-argument PHIs.
9698
9699 2016-04-21  Richard Biener  <rguenther@suse.de>
9700
9701         PR middle-end/70747
9702         * fold-const.c (fold_comparison): Return properly typed
9703         constant boolean.
9704
9705 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
9706
9707         PR tree-optimization/70715
9708         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
9709         after expanding BASE using expand_simple_operations.
9710
9711 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
9712
9713         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
9714         New transformations.
9715
9716 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
9717
9718         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
9719
9720 2016-04-20  Jan Hubicka  <jh@suse.cz>
9721
9722         * ipa-inline.c (can_inline_edge_p): Pass caller info to
9723         ultiimate_alias_target.
9724         (update_callee_keys): Likewise.
9725         (lookup_recursive_calls): Likewise.
9726         (speculation_useful_p): Likewise.
9727
9728 2016-04-20  Jan Hubicka  <jh@suse.cz>
9729
9730         PR ipa/70018
9731         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
9732         (set_nothrow_flag_1): ... this; handle interposition correctly;
9733         recurse on aliases and thunks.
9734         (cgraph_node::set_nothrow_flag): New.
9735         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
9736         functions compiled with non-call exceptions that binds to current
9737         def.
9738         (propagate_nothrow): Be safe WRT interposition.
9739         * cgraph.h (set_nothrow_flag): Update prototype.
9740
9741 2016-04-18  Jan Hubicka  <jh@suse.cz>
9742
9743         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9744         max_loop_iterations_int.
9745         (tree_unswitch_outer_loop): Likewise.
9746
9747 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9748
9749         PR tree-optimization/69489
9750         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
9751         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
9752         Revise dump message.
9753         (if_convertible_bb_p): Remove check on edge count of basic block's
9754         predecessors.
9755
9756 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9757
9758         PR tree-optimization/56625
9759         PR tree-optimization/69489
9760         * tree-data-ref.h (DR_INNERMOST): New macro.
9761         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
9762         hashing struct innermost_loop_behavior.
9763         (ref_DR_map): Remove.
9764         (innermost_DR_map): New map.
9765         (baseref_DR_map): Revise comment.
9766         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
9767         to innermost_DR_map accroding to its innermost loop behavior.
9768         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
9769         to its innermost loop behavior.
9770         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
9771         Add initialization for innermost_DR_map.  Record memory reference
9772         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
9773         have innermost loop behavior.
9774         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
9775         innermost_DR_map.
9776
9777 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
9778
9779         * config/i386/i386.md (*lea<mode>_general_1): Rename from
9780         *lea_general_1.  Use explicit SWI12 mode interator.
9781         (*lea<mode>_general_2): Rename from *lea_general_2.
9782         Use explicit SWI12 mode interator.
9783         (*lea<mode>_general_3): Rename from *lea_general_3.
9784         Use explicit SWI12 mode interator.
9785         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
9786         Use explicit SWI12 mode interator.
9787         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
9788         Use explicit SWI48 mode interator.
9789
9790 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9791
9792         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
9793         Short-cut unaligned load and store cases.  Handle all integer
9794         vector modes.
9795         (ix86_expand_vector_move_misalign): Short-cut unaligned load
9796         and store cases.  Call ix86_avx256_split_vector_move_misalign
9797         directly without checking mode class.
9798
9799 2016-04-20  Andrew Pinski  <apinski@cavium.com>
9800             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9801
9802         PR target/64971
9803         * config/aarch64/aarch64.md (sibcall): Force call
9804         address to be DImode for ILP32.
9805         (sibcall_value): Likewise.
9806
9807 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9808
9809         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
9810
9811 2016-04-20  Richard Biener  <rguenther@suse.de>
9812
9813         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
9814         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
9815         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
9816         (maybe_push_res_to_seq): Adjust.
9817         * gimple-fold.c (maybe_build_generic_op): Likewise.
9818
9819 2016-04-20  Marek Polacek  <polacek@redhat.com>
9820
9821         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
9822         rather than true.
9823
9824 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
9825
9826         * config/i386/sse.md (vec_unpacks_lo_hi): Always
9827         use kmovw to support AVX512F target.
9828
9829 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9830
9831         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
9832
9833 2016-04-20  Marek Polacek  <polacek@redhat.com>
9834
9835         PR tree-optimization/70725
9836         * tree-if-conv.c (is_false_predicate): New function.
9837         (predicate_mem_writes): Use it.
9838
9839 2016-04-20  Richard Biener  <rguenther@suse.de>
9840
9841         PR tree-optimization/70726
9842         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
9843         shift amounts from a pattern stmt operand.
9844
9845 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9846
9847         PR target/70674
9848         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
9849         stack_restore_from_fpr pattern when restoring r15.
9850         (s390_optimize_prologue): Strip away the memory barrier in the
9851         parallel when trying to get rid of restore insns.
9852         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
9853         definition for loading the stack pointer from an FPR.  Compared to
9854         the normal move insn this pattern includes a full memory barrier.
9855
9856 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
9857
9858         PR middle-end/70680
9859         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
9860         implicitly linear or lastprivate iterator on the outer context.
9861
9862 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9863
9864         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
9865         alignment check.
9866         * config/i386/i386.md (ssememalign): Removed.
9867         * config/i386/sse.md: Remove ssememalign attribute from patterns.
9868
9869 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
9870
9871         PR target/69201
9872         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
9873         const short * to __builtin_ia32_loaddquhi512_mask.
9874         (_mm512_maskz_loadu_epi16): Likewise.
9875         (_mm512_mask_storeu_epi16): Pass short * to
9876         __builtin_ia32_storedquhi512_mask.
9877         (_mm512_mask_loadu_epi8): Pass const char * to
9878         __builtin_ia32_loaddquqi512_mask.
9879         (_mm512_maskz_loadu_epi8): Likewise.
9880         (_mm512_mask_storeu_epi8): Pass char * to
9881         __builtin_ia32_storedquqi512_mask.
9882         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
9883         const double * to __builtin_ia32_loadupd512_mask.
9884         (_mm512_mask_loadu_pd): Likewise.
9885         (_mm512_maskz_loadu_pd): Likewise.
9886         (_mm512_storeu_pd): Pass double * to
9887         __builtin_ia32_storeupd512_mask.
9888         (_mm512_mask_storeu_pd): Likewise.
9889         (_mm512_loadu_ps): Pass const float * to
9890         __builtin_ia32_loadups512_mask.
9891         (_mm512_mask_loadu_ps): Likewise.
9892         (_mm512_maskz_loadu_ps): Likewise.
9893         (_mm512_storeu_ps): Pass float * to
9894         __builtin_ia32_storeups512_mask.
9895         (_mm512_mask_storeu_ps): Likewise.
9896         (_mm512_mask_loadu_epi64): Pass const long long * to
9897         __builtin_ia32_loaddqudi512_mask.
9898         (_mm512_maskz_loadu_epi64): Likewise.
9899         (_mm512_mask_storeu_epi64): Pass long long *
9900         to __builtin_ia32_storedqudi512_mask.
9901         (_mm512_loadu_si512): Pass const int * to
9902         __builtin_ia32_loaddqusi512_mask.
9903         (_mm512_mask_loadu_epi32): Likewise.
9904         (_mm512_maskz_loadu_epi32): Likewise.
9905         (_mm512_storeu_si512): Pass int * to
9906         __builtin_ia32_storedqusi512_mask.
9907         (_mm512_mask_storeu_epi32): Likewise.
9908         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
9909         char * to __builtin_ia32_storedquqi256_mask.
9910         (_mm_mask_storeu_epi8): Likewise.
9911         (_mm256_mask_loadu_epi16): Pass const short * to
9912         __builtin_ia32_loaddquhi256_mask.
9913         (_mm256_maskz_loadu_epi16): Likewise.
9914         (_mm_mask_loadu_epi16): Pass const short * to
9915         __builtin_ia32_loaddquhi128_mask.
9916         (_mm_maskz_loadu_epi16): Likewise.
9917         (_mm256_mask_loadu_epi8): Pass const char * to
9918         __builtin_ia32_loaddquqi256_mask.
9919         (_mm256_maskz_loadu_epi8): Likewise.
9920         (_mm_mask_loadu_epi8): Pass const char * to
9921         __builtin_ia32_loaddquqi128_mask.
9922         (_mm_maskz_loadu_epi8): Likewise.
9923         (_mm256_mask_storeu_epi16): Pass short * to.
9924         __builtin_ia32_storedquhi256_mask.
9925         (_mm_mask_storeu_epi16): Pass short * to.
9926         __builtin_ia32_storedquhi128_mask.
9927         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
9928         const double * to __builtin_ia32_loadupd256_mask.
9929         (_mm256_maskz_loadu_pd): Likewise.
9930         (_mm_mask_loadu_pd): Pass onst double * to
9931         __builtin_ia32_loadupd128_mask.
9932         (_mm_maskz_loadu_pd): Likewise.
9933         (_mm256_mask_storeu_pd): Pass double * to
9934         __builtin_ia32_storeupd256_mask.
9935         (_mm_mask_storeu_pd): Pass double * to
9936         __builtin_ia32_storeupd128_mask.
9937         (_mm256_mask_loadu_ps): Pass const float * to
9938         __builtin_ia32_loadups256_mask.
9939         (_mm256_maskz_loadu_ps): Likewise.
9940         (_mm_mask_loadu_ps): Pass const float * to
9941         __builtin_ia32_loadups128_mask.
9942         (_mm_maskz_loadu_ps): Likewise.
9943         (_mm256_mask_storeu_ps): Pass float * to
9944         __builtin_ia32_storeups256_mask.
9945         (_mm_mask_storeu_ps): ass float * to
9946         __builtin_ia32_storeups128_mask.
9947         (_mm256_mask_loadu_epi64): Pass const long long * to
9948         __builtin_ia32_loaddqudi256_mask.
9949         (_mm256_maskz_loadu_epi64): Likewise.
9950         (_mm_mask_loadu_epi64): Pass const long long * to
9951         __builtin_ia32_loaddqudi128_mask.
9952         (_mm_maskz_loadu_epi64): Likewise.
9953         (_mm256_mask_storeu_epi64): Pass long long * to
9954         __builtin_ia32_storedqudi256_mask.
9955         (_mm_mask_storeu_epi64): Pass long long * to
9956         __builtin_ia32_storedqudi128_mask.
9957         (_mm256_mask_loadu_epi32): Pass const int * to
9958         __builtin_ia32_loaddqusi256_mask.
9959         (_mm256_maskz_loadu_epi32): Likewise.
9960         (_mm_mask_loadu_epi32): Pass const int * to
9961         __builtin_ia32_loaddqusi128_mask.
9962         (_mm_maskz_loadu_epi32): Likewise.
9963         (_mm256_mask_storeu_epi32): Pass int * to
9964         __builtin_ia32_storedqusi256_mask.
9965         (_mm_mask_storeu_epi32): Pass int * to
9966         __builtin_ia32_storedqusi128_mask.
9967         * config/i386/i386-builtin-types.def (PCSHORT): New.
9968         (PINT64): Likewise.
9969         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
9970         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
9971         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
9972         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
9973         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
9974         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
9975         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
9976         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
9977         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
9978         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
9979         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
9980         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
9981         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
9982         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
9983         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
9984         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
9985         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
9986         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
9987         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
9988         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
9989         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
9990         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
9991         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
9992         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
9993         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
9994         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
9995         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
9996         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
9997         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
9998         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
9999         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
10000         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
10001         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
10002         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
10003         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
10004         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
10005         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
10006         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
10007         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
10008         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
10009         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
10010         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
10011         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
10012         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
10013         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
10014         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
10015         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
10016         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
10017         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
10018         use UNSPEC_STOREU.
10019         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
10020         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
10021         load nor store.
10022         (ix86_expand_vector_move_misalign): Likewise.
10023         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
10024         to scalar function prototype for unaligned load/store builtins.
10025         (ix86_expand_special_args_builtin): Updated.
10026         * config/i386/sse.md (UNSPEC_LOADU): Removed.
10027         (UNSPEC_STOREU): Likewise.
10028         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
10029         (VI_ULOADSTORE_F_AVX512VL): Likewise.
10030         (ssescalarsize): Handle V4TI, V2TI and V1TI.
10031         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
10032         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
10033         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
10034         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
10035         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
10036         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
10037         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
10038         (<avx512>_storedqu<mode>_mask): Likewise.
10039         (*sse4_2_pcmpestr_unaligned): Likewise.
10040         (*sse4_2_pcmpistr_unaligned): Likewise.
10041         (*mov<mode>_internal): Renamed to ...
10042         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
10043         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
10044         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
10045         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
10046
10047 2016-04-19  Richard Biener  <rguenther@suse.de>
10048
10049         PR tree-optimization/70171
10050         * tree-ssa-phiprop.c: Include stor-layout.h.
10051         (phiprop_insert_phi): Handle the aggregate copy case.
10052         (propagate_with_phi): Likewise.
10053
10054 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
10055
10056         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
10057         instead of simplify_gen_subreg (... , 0).
10058         (ix86_delegitimize_address): Ditto.
10059         (ix86_split_divmod): Ditto.
10060         (ix86_split_copysign_const): Ditto.
10061         (ix86_split_copysign_var): Ditto.
10062         (ix86_expand_args_builtin): Ditto.
10063         (ix86_expand_round_builtin): Ditto.
10064         (ix86_expand_special_args_builtin): Ditto.
10065         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
10066         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
10067         (udivmodqi4): Ditto.
10068         (absneg splitters): Ditto.
10069         (*jcc_bt<mode>_1): Ditto.
10070
10071 2016-04-19  Richard Biener  <rguenther@suse.de>
10072
10073         PR tree-optimization/70724
10074         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
10075         restoring out from ...
10076         (free_scc_vn): ... here.
10077         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
10078         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
10079         tail merging.
10080         (pass_fre::execute): Restore SSA info.
10081
10082 2016-04-19  Richard Biener  <rguenther@suse.de>
10083
10084         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
10085         * gimple-walk.c (walk_gimple_op): Initialize it.
10086         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
10087         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
10088         remapping SSA names of defs.
10089         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
10090         adjustment.
10091
10092 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
10093
10094         PR middle-end/70689
10095         * lra-constraints.c (equiv_substition_p): New.
10096         (process_alt_operands): Use it.
10097         (swap_operands): Swap it.
10098         (curr_insn_transform): Update it.
10099
10100 2016-04-18  Michael Matz  <matz@suse.de>
10101
10102         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
10103         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
10104         * tree-core.h (tree_type_common.align): Use bit-field.
10105         (tree_type_common.spare): New.
10106         (tree_decl_common.off_align): Make smaller.
10107         (tree_decl_common.align): Use bit-field.
10108
10109         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
10110         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
10111         (scan_sharing_clauses): Ditto.
10112         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
10113         (omp_finish_file): Ditto.
10114         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
10115         (layout_decl): Ditto.
10116         (relayout_decl): Ditto.
10117         (finalize_record_size): Use SET_TYPE_ALIGN.
10118         (finalize_type_size): Ditto.
10119         (finish_builtin_struct): Ditto.
10120         (layout_type): Ditto.
10121         (initialize_sizetypes): Ditto.
10122         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
10123         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
10124         (lookup_field_for_decl): Use SET_DECL_ALIGN.
10125         (get_chain_field): Ditto.
10126         (get_trampoline_type): Ditto.
10127         (get_nl_goto_field): Ditto.
10128         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
10129         SET_DECL_ALIGN.
10130         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
10131         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
10132         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
10133         (build_qualified_type): Use SET_TYPE_ALIGN.
10134         (build_aligned_type, build_range_type_1): Ditto.
10135         (build_atomic_base): Ditto.
10136         (build_common_tree_nodes): Ditto.
10137         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
10138         (expand_one_stack_var_at): Ditto.
10139         * coverage.c (build_var): Use SET_DECL_ALIGN.
10140         * except.c (init_eh): Ditto.
10141         * function.c (assign_parm_setup_block): Ditto.
10142         * symtab.c (increase_alignment_1): Ditto.
10143         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
10144         * tree-vect-stmts.c (ensure_base_align): Ditto.
10145         * varasm.c (align_variable): Ditto.
10146         (assemble_variable): Ditto.
10147         (build_constant_desc): Ditto.
10148         (output_constant_def_contents): Ditto.
10149
10150         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
10151         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
10152         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
10153         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
10154         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
10155
10156 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
10157
10158         PR target/70708
10159         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
10160         replace %vmovsd with "%vmovq".
10161         (vec_concatv2df): Likewise.
10162
10163 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
10164
10165         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
10166         (*vec_extractv2si_0): Ditto.
10167         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
10168         (zero_extended_scalar_load_operand splitters): Ditto.
10169         (vec_extract splitters): Ditto.
10170         (*vec_extractv4si_0_zext): Ditto.
10171         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
10172         and lowpart_subreg.
10173         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
10174         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
10175         (*sse4_1_extractps): Use lowpart_subreg.
10176         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
10177
10178 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10179
10180         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
10181         gld requirements.
10182         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
10183         Mention Solaris 11 packaging changes.
10184         Update gas and gld requirements.
10185         Remove reference to pre-Solaris 10 bug.
10186         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
10187         systems and bugs.
10188         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
10189         with cc.
10190
10191 2016-04-17  Jan Hubicka  <jh@suse.cz>
10192
10193         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
10194         max_loop_iterations_int.
10195
10196 2016-04-18  Richard Biener  <rguenther@suse.de>
10197
10198         PR tree-optimization/43434
10199         * tree-ssa-structalias.c (struct vls_data): New.
10200         (visit_loadstore): Handle all pointer-based accesses.
10201         (compute_dependence_clique): Compute a bitmap of restrict tags
10202         assigned bases and pass it to visit_loadstore.
10203
10204 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
10205
10206         PR target/70711
10207         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
10208         armv8.1-a and armv8.1-a+crc.
10209
10210 2016-04-18  Richard Biener  <rguenther@suse.de>
10211
10212         PR tree-optimization/70701
10213         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
10214         references after translating through a memcpy.
10215
10216 2016-04-18  Richard Biener  <rguenther@suse.de>
10217
10218         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
10219         (compute_antic): ... here.  For partial antic use regular
10220         postorder and scrap iteration.
10221         (compute_partial_antic_aux): Remove unused return value.
10222         (init_pre): Do not allocate postorder.
10223         (fini_pre): Do not free postorder.
10224
10225 2016-04-18  Richard Biener  <rguenther@suse.de>
10226
10227         PR middle-end/37870
10228         * expmed.c (extract_bit_field_1): Remove broken case
10229         using a wider MODE_INT mode.
10230
10231 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
10232
10233         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
10234         unless compiling with at least GCC-4.8.
10235
10236 2016-04-17  Jan Hubicka  <jh@suse.cz>
10237
10238         PR bootstrap/70706
10239         * graphite.c (graphite_finalize): Update call to
10240         tree_estimate_probability.
10241         * predict.h (tree_estimate_probability): Update prototype.
10242
10243 2016-04-17  Jan Hubicka  <jh@suse.cz>
10244
10245         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
10246         (tree_estimate_probability): Likewise.
10247         (pass_profile::execute): Update.
10248         (report_predictor_hitrates): New function.
10249         * profile.c (compute_branch_probabilities): Use it.
10250         * predict.h (report_predictor_hitrates): Declare.
10251
10252 2016-04-17  Jan Hubicka  <jh@suse.cz>
10253
10254         PR ipa/70018
10255         * cgraph.h (cgraph_node::set_const_flag,
10256         cgraph_node::set_pure_flag): Update prototype to return bool;
10257         update comment.
10258         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
10259         of interposable symbol are interposable, too.
10260         (cgraph_set_const_flag_1): Rename to ...
10261         (set_const_flag_1): ... this one; change to self recursive function
10262         instead of call_for_symbol_thunks_and_aliases. Handle correctly
10263         clearnig the flag in all variants and also virtual thunks of const
10264         functions are pure; track if any change was done.
10265         (cgraph_node::set_const_flag): Update.
10266         (struct set_pure_flag_info): New struct.
10267         (cgraph_set_pure_flag_1): Rename to ...
10268         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
10269         rather than pointer encoded flags; track if any changes was done;
10270         handle correctly clearning flag and setting flag of aliases already
10271         declared const.
10272         (cgraph_node::set_pure_flag): Update.
10273         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
10274
10275 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10276
10277         PR other/70433
10278         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
10279         backslash in label.
10280
10281 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10282
10283         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
10284         '{}<> ' as escape-for-record.
10285
10286 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10287
10288         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
10289         structure.
10290
10291 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10292
10293         PR other/70185
10294         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
10295         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
10296         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
10297         * passes.c (finish_optimization_passes): Only call
10298         finish_graph_dump_file if dfi->graph_dump_initialized.
10299         (execute_function_dump, pass_init_dump_file): Use
10300         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
10301
10302 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10303
10304         PR tree-optimization/70256
10305         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
10306         (debug_varmap): New function.
10307
10308 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10309
10310         PR other/70183
10311         * passes.c (pass_manager::register_pass): Propagate pflags.
10312
10313 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10314
10315         PR other/68875
10316         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
10317         * passes.c (pass_manager::pass_manager): Declare and init p_start in
10318         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
10319         check if it's equal to p_start.
10320         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
10321
10322 2016-04-15  Jan Hubicka  <jh@suse.cz>
10323
10324         PR ipa/70018
10325         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
10326         function does not bind to current def.
10327         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
10328         handle conservatively calls to functions that does not need to bind
10329         to current def.
10330         (check_call): Update call of worse_state.
10331         (ignore_edge_for_nothrow): Update.
10332         (ignore_edge_for_pure_const): Likewise.
10333         (propagate_pure_const): Update calls to worse_state.
10334         (skip_function_for_local_pure_const): Reformat comments.
10335
10336 2016-04-15  Jan Hubicka  <jh@suse.cz>
10337
10338         PR ipa/70018
10339         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
10340         (cgraph_node::function_symbol): Likewise.
10341         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
10342         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
10343         (symtab_node::ultimate_alias_target): Add REF parameter.
10344         (symtab_node::binds_to_current_def_p): Declare.
10345         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
10346         (cgraph_node::function_symbol): Likewise.
10347         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
10348         (cgraph_node::get_availability): Likewise.
10349         (cgraph_edge::binds_to_current_def_p): New inline function.
10350         (varpool_node::get_availability): Add REF parameter.
10351         (varpool_node::ultimate_alias_target): Likewise.
10352         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
10353         (symtab_node::binds_to_current_def_p): Likewise.
10354         * varpool.c (varpool_node::get_availability): Likewise.
10355
10356 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
10357
10358         PR target/70662
10359         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
10360         Fix mode size check.
10361
10362 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
10363
10364         * BASE-VER: Set to 7.0.0.
10365
10366 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
10367
10368         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
10369
10370 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10371
10372         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
10373         architecture revisions.
10374
10375 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
10376
10377         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
10378         * config/i386/i386.c (ix86_using_red_zone): No longer static.
10379         * config/i386/i386.md (stack decrement to push peepholes): Guard
10380         with !x86_using_red_zone ().
10381
10382 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
10383
10384         PR c++/70675
10385         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
10386         to dump_generic_node.
10387         (NIY): Pass also flags to do_niy.
10388
10389 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
10390
10391         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
10392         (simd_clone_vector_of_formal_parm_types)
10393         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
10394         (simd_clone_mangle, simd_clone_create)
10395         (simd_clone_adjust_return_type, create_tmp_simd_array)
10396         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
10397         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
10398         (ipa_simd_modify_function_body, simd_clone_linear_addend)
10399         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
10400         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
10401         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
10402         * omp-simd-clone.c: ... this new file.
10403         (simd_clone_vector_of_formal_parm_types): Make it static.
10404         * Makefile.in (OBJS): Add omp-simd-clone.o.
10405
10406 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
10407
10408         PR target/70662
10409         * config/i386/sse.md: Use proper memory operand modifiers.
10410
10411
10412 2016-04-15  Richard Biener  <rguenther@suse.de>
10413         Alan Modra  <amodra@gmail.com>
10414
10415         PR tree-optimization/70130
10416         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
10417         when alignment stays not the same and no not use the realign
10418         scheme then.
10419
10420 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10421
10422         PR target/70669
10423         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
10424         direct move handlers for KFmode. Change TFmode handlers test from
10425         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
10426
10427 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
10428
10429         PR c++/70594
10430         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
10431         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
10432         (inlined_polymorphic_ctor_dtor_block_p): Use it.
10433         * tree-ssa-live.c (remove_unused_scope_block_p): When
10434         in_ctor_dtor_block, avoid discarding not just BLOCKs with
10435         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
10436         block_ultimate_origin is FUNCTION_DECL.
10437         (remove_unused_locals): If current_function_decl is
10438         polymorphic_ctor_dtor_p, pass initial true to
10439         remove_unused_scope_block_p' is_ctor_dtor_block.
10440
10441 2016-04-14  Martin Sebor  <msebor@redhat.com>
10442
10443         PR c++/69517
10444         PR c++/70019
10445         PR c++/70588
10446         * doc/extend.texi (Variable Length): Revert.
10447
10448 2016-04-14  Marek Polacek  <polacek@redhat.com>
10449             Jan Hubicka  <hubicka@ucw.cz>
10450
10451         PR c++/70029
10452         * tree.c (verify_type): Disable the canonical type of main variant
10453         check.
10454
10455 2016-04-14  Jason Merrill  <jason@redhat.com>
10456
10457         * cfgexpand.c, expr.c: Revert previous change.
10458
10459 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
10460
10461         PR middle-end/70643
10462         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
10463         when building a mem ref for the incoming reduction variable.
10464
10465 2016-04-14  Richard Biener  <rguenther@suse.de>
10466
10467         PR tree-optimization/70614
10468         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
10469         loop if the evolution dropped to chrec_dont_know.
10470         (interpret_condition_phi): Likewise.
10471
10472 2016-04-14  Richard Biener  <rguenther@suse.de>
10473
10474         PR tree-optimization/70623
10475         * tree-ssa-pre.c (changed_blocks): Make global ...
10476         (compute_antic): ... local here.  Move and fix worklist
10477         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
10478         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
10479         worklist handling, dump when ANTIC_IN changed.
10480         (compute_partial_antic_aux): Remove worklist handling.
10481         (init_pre): Do not compute post dominators.  Add a comment about
10482         the CFG order chosen.
10483         (fini_pre): Do not free post dominators.
10484
10485 2016-04-13  Martin Sebor  <msebor@redhat.com>
10486
10487         PR c++/69517
10488         PR c++/70019
10489         PR c++/70588
10490         * doc/extend.texi (Variable Length): Document C++ specifics.
10491
10492 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
10493
10494         PR c++/70641
10495         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
10496         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
10497         eh edges have been purged.
10498
10499         PR c++/70594
10500         * tree-sra.c (create_access_replacement,
10501         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
10502         gets fancy name.
10503         * tree-pretty-print.c (dump_fancy_name): New function.
10504         (dump_decl_name, dump_generic_node): Use it.
10505
10506 2016-04-13  Jason Merrill  <jason@redhat.com>
10507
10508         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
10509         * expr.c (expand_expr_real_1): Likewise.
10510
10511 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10512
10513         * config/i386/i386.md (kunpckhi): Swap operands.
10514         (kunpcksi): Likewise.
10515         (kunpckdi): Likewise.
10516         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
10517         (vec_pack_trunc_<mode>): Likewise.
10518
10519 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
10520
10521         PR debug/70628
10522         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
10523
10524         PR middle-end/70633
10525         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
10526         gimplification turns some element into non-constant.
10527
10528         PR debug/70628
10529         * rtl.h (convert_memory_address_addr_space_1): New prototype.
10530         * explow.c (convert_memory_address_addr_space_1): No longer static,
10531         add NO_EMIT argument and don't call convert_modes if true, pass
10532         it down recursively, remove break after return.
10533         (convert_memory_address_addr_space): Adjust caller.
10534         * simplify-rtx.c (simplify_unary_operation_1): Call
10535         convert_memory_address_addr_space_1 instead of convert_memory_address,
10536         if it returns NULL, don't simplify.
10537
10538 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10539
10540         PR target/70630
10541         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
10542
10543 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10544
10545         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10546         Bump the upper SIMDLEN limits, so that if the return type or
10547         characteristic type if the return type is void can be passed in
10548         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
10549         allowed.
10550
10551 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
10552
10553         PR target/70640
10554         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
10555         Do not use "=" constraint on an input constraint.
10556         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
10557         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
10558         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
10559         generates (neg (abs ...)) instead of (abs ...).
10560
10561 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10562
10563         PR rtl-optimization/70596
10564         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
10565         just invalidate LRA data and reset them.  Adjust dump wording.
10566
10567 2016-04-12  Martin Liska  <mliska@suse.cz>
10568
10569         Revert
10570         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10571
10572         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
10573         estimates here.
10574         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
10575         max_loop_iterations_int.
10576         (tree_unswitch_outer_loop): Likewise.
10577         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
10578         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
10579
10580 2016-04-12  Tom de Vries  <tom@codesourcery.com>
10581
10582         PR tree-optimization/68756
10583         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
10584         instead of new_name.
10585
10586 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10587
10588         PR tree-optimization/70602
10589         * tree-sra.c (generate_subtree_copies): Don't write anything into
10590         constant pool decls.
10591
10592         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
10593         regardless whether there are depend clauses or not.
10594
10595 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10596
10597         PR target/70381
10598         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
10599         target attribute and pragma from changing the -mfloat128
10600         and -mfloat128-hardware options.
10601
10602         * doc/extend.texi (Additional Floating Types): Document PowerPC
10603         __float128 restrictions.
10604
10605 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10606
10607         PR target/70133
10608         * config/aarch64/driver-aarch64.c
10609         (aarch64_get_extension_string_for_isa_flags): New.
10610         (arch_extension): Rename to...
10611         (aarch64_arch_extension): ...This.
10612         (ext_to_feat_string): Rename to...
10613         (aarch64_extensions): ...This.
10614         (aarch64_core_data): Keep track of architecture extension flags.
10615         (cpu_data): Rename to...
10616         (aarch64_cpu_data): ...This.
10617         (aarch64_arch_driver_info): Keep track of architecture extension
10618         flags.
10619         (get_arch_name_from_id): Rename to...
10620         (get_arch_from_id): ...This, change return type.
10621         (host_detect_local_cpu): Update and reformat for renames, handle
10622         extensions through common infrastructure.
10623
10624 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10625
10626         PR target/70133
10627         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
10628         track of a canonical flag name.
10629         (all_extensions): Likewise.
10630         (arch_to_arch_name): Also track extension flags enabled by the arch.
10631         (all_architectures): Likewise.
10632         (aarch64_parse_extension): Move to here.
10633         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
10634         rework.
10635         (aarch64_rewrite_selected_cpu): Update for above change.
10636         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
10637         are handled, such that the single explicit value enabled by an
10638         extension is kept seperate from the implicit values it also enables.
10639         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
10640         to here.
10641         (aarch64_parse_extension): New.
10642         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
10643         here to config/aarch64/aarch64-protos.h.
10644         (aarch64_parse_extension): Move from here to
10645         common/config/aarch64/aarch64-common.c.
10646         (aarch64_option_print): Update.
10647         (aarch64_declare_function_name): Likewise.
10648         (aarch64_start_file): Likewise.
10649         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
10650         the canonical flag for extensions.
10651         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
10652         flags.
10653
10654 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10655
10656         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
10657         AARCH64_FL_CRC.
10658
10659 2016-04-09  Tom de Vries  <tom@codesourcery.com>
10660
10661         PR tree-optimization/68953
10662         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
10663         first to last subscript.
10664
10665 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
10666
10667         PR tree-optimization/70586
10668         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
10669         for any calls.
10670
10671 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
10672
10673         PR lto/70289
10674         PR ipa/70348
10675         PR tree-optimization/70373
10676         PR middle-end/70533
10677         PR middle-end/70534
10678         PR middle-end/70535
10679         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
10680         clauses for acc parallel reductions as necessary.  Error on those
10681         that are private.
10682         * omp-low.c (scan_sharing_clauses): Don't install variables which
10683         are used in acc parallel reductions.
10684         (lower_rec_input_clauses): Remove dead code.
10685         (lower_oacc_reductions): Add support for reference reductions.
10686         (lower_reduction_clauses): Remove dead code.
10687         (lower_omp_target): Don't remap variables appearing in acc parallel
10688         reductions.
10689         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
10690
10691 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
10692
10693         PR middle-end/70593
10694         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
10695         with multiple SSA_NAME defs, force the outputs other than first
10696         to be live before calling live_track_process_def on each output.
10697
10698         PR rtl-optimization/70574
10699         * fwprop.c (forward_propagate_and_simplify): Don't add
10700         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
10701         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
10702         paradoxical subregs within *loc.
10703
10704 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
10705
10706         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
10707         -ftree-parallelize-loops={0,1}.
10708         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
10709         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
10710         * config/ia64/hpux.h (LIB_SPEC): Likewise.
10711         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
10712         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
10713
10714 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
10715
10716         PR sanitizer/70541
10717         * asan.c (instrument_derefs): If we get unknown location, extract it
10718         with EXPR_LOCATION.
10719         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
10720
10721 2016-04-08  Tom de Vries  <tom@codesourcery.com>
10722
10723         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
10724         implicit firstprivate clause.
10725
10726 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10727
10728         PR target/70566
10729         * config/arm/thumb2.md (tst + branch-> lsls + branch
10730         peephole below *orsi_not_shiftsi_si): Require that condition
10731         register is dead after the peephole.
10732         (second peephole after the above): Likewise.
10733
10734 2016-04-08  Alan Modra  <amodra@gmail.com>
10735
10736         PR target/70117
10737         * builtins.c (fold_builtin_classify): For IBM extended precision,
10738         look at just the high-order double to test for NaN.
10739         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
10740         test just the high double for Inf but both doubles for subnormal
10741         limit.
10742
10743 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
10744
10745         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
10746         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
10747         node->simdclone->mask_mode != VOIDmode masks.
10748         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
10749         earlier, use it instead of node->simdclone.
10750         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10751         Set clonei->mask_mode.
10752
10753 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
10754
10755         PR c/70436
10756         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
10757         Pass it through to cp_parser_already_scoped_statement.
10758         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
10759         it through to cp_parser_statement.
10760         (cp_parser_statement): Pass IF_P through to
10761         cp_parser_iteration_statement.
10762         (cp_parser_pragma): Adjust call to
10763         cp_parser_iteration_statement.
10764
10765 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
10766
10767         PR c/70436
10768         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
10769         resolve a future -Wparentheses warning.
10770         * omp-low.c (scan_sharing_clauses): Likewise.
10771         * tree-parloops.c (eliminate_local_variables): Likewise.
10772
10773 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
10774
10775         PR rtl-optimization/70398
10776         * lra-constraints.c (process_address_1): Check zero scale and code
10777         for reloading with zero scale.
10778
10779 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
10780
10781         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
10782         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
10783
10784 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
10785
10786         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10787         Add support for AVX512F clones, include them by default for
10788         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
10789         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
10790         up to 128.
10791
10792         PR middle-end/70550
10793         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
10794         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
10795         firstprivate clauses.
10796         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
10797         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
10798         (lower_omp_target): Set TREE_NO_WARNING for
10799         non-addressable possibly uninitialized vars which are copied into
10800         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
10801
10802 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
10803
10804         * config/pa/predicates.md (integer_store_memory_operand): Accept
10805         REG+D operands with a large offset when reload_in_progress is true.
10806         (floating_point_store_memory_operand): Likewise.
10807
10808 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10809
10810         PR c++/70336
10811         * match.pd (nested int casts): Limit to GIMPLE.
10812
10813 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
10814
10815         PR ipa/66223
10816         * ipa-devirt.c (maybe_record_node): Fix comment; use
10817         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
10818
10819 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10820
10821         PR rtl-optimization/70542
10822         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
10823         if there are any uses other than insn or debug insns.
10824
10825 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
10826             Jakub Jelinek  <jakub@redhat.com>
10827
10828         PR tree-optimization/70509
10829         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
10830         Shift HOST_WIDE_INT_1U instead of 1.
10831
10832 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
10833
10834         PR tree-optimization/70509
10835         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
10836         of the vector base type for index.
10837
10838 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
10839
10840         PR target/70510
10841         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
10842
10843 2016-04-05  Richard Biener  <rguenther@suse.de>
10844
10845         PR tree-optimization/70526
10846         * tree-sra.c (build_ref_for_offset): Use prev_base to
10847         extract the alias pointer type.
10848
10849 2016-04-05  Richard Biener  <rguenther@suse.de>
10850
10851         * dse.c (struct store_info): Remove alias_set member.
10852         (struct read_info_type): Likewise.
10853         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
10854         spill_deleted, clear_alias_set_lookup): Remove.
10855         (get_group_info): Remove dead base == NULL_RTX case.
10856         (dse_step0): Remove initialization of removed variables.
10857         (delete_dead_store_insn): Reomve alias set dumping.
10858         (free_read_records): Remove alias_set handling.
10859         (canon_address): Remove alias_set_out parameter.
10860         (record_store): Remove spill_alias_set, it's always zero.
10861         (check_mem_read_rtx): Likewise.
10862         (dse_step2): Rename from ...
10863         (dse_step2_nospill): ... this.  Adjust.
10864         (scan_stores): Rename from ...
10865         (scan_stores_nospill): ... this.
10866         (scan_reads): Rename from ...
10867         (scan_reads_nospill): ... this.
10868         (scan_stores_spill, scan_reads_spill): Remove.
10869         (dse_step3_scan): Remove for_spills argument which is always false.
10870         (dse_step3): Likewise.
10871         (dse_step5): Rename from ...
10872         (dse_step5_nospill): ... this.  Remove alias_set handling.
10873         (rest_of_handle_dse): Adjust.
10874
10875 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10876
10877         PR target/70525
10878         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
10879         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
10880         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
10881         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
10882
10883 2016-04-05  Richard Biener  <rguenther@suse.de>
10884
10885         PR middle-end/70499
10886         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
10887         non-register type temporaries into SSA.
10888
10889 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
10890
10891         PR ipa/66223
10892         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
10893         calls when sanitizing.
10894         (possible_polymorphic_call_target_p): Fix formatting.
10895
10896 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10897             Jakub Jelinek <jakub@redhat.com>
10898
10899         PR middle-end/70457
10900         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
10901         to ensure a call statement is compatible with a built-in's
10902         prototype.
10903         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
10904         Likewise.
10905
10906 2016-04-04  Richard Biener  <rguenther@suse.de>
10907
10908         PR rtl-optimization/70484
10909         * rtl.h (canon_output_dependence): Declare.
10910         * alias.c (canon_output_dependence): New function.
10911         * dse.c (record_store): Use canon_output_dependence rather
10912         than canon_true_dependence.
10913
10914 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10915
10916         PR ipa/68881
10917         * cgraph.h (symtab_node::copy_visibility_from): New function.
10918         * symtab.c (symtab_node::copy_visibility_from): New function.
10919         * ipa-visibility.c (optimize_weakref): New function.
10920         (function_and_variable_visibility): Use it.
10921
10922 2016-04-04  Martin Liska  <mliska@suse.cz>
10923
10924         PR hsa/70402
10925         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
10926         value that is really in range handled by SBR instruction.
10927         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
10928         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
10929         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
10930
10931 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
10932
10933         PR target/70416
10934         PR target/67391
10935         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
10936         set, but not for SP_REG operands.
10937
10938 2016-04-02  Martin Sebor  <msebor@redhat.com>
10939
10940         PR c++/67376
10941         * fold-const.c (maybe_nonzero_address): New function.
10942         (fold_comparison): Call it.  Fold equality and relational
10943         expressions involving null pointers.
10944         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
10945
10946 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
10947
10948         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
10949         the "Y" constraint (scalar FP 0.0 immediate).
10950
10951         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
10952         Add the "const_double" to the list of operand constraints.
10953
10954 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
10955
10956         PR rtl-optimization/70467
10957         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
10958         If low word of the last operand is 0, just emit addition/subtraction
10959         for the high word.
10960
10961 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10962
10963         PR target/70404
10964         * config/s390/s390.c (s390_expand_insv): Check for everything
10965         constant instead of just VOIDmode stuff.
10966
10967 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10968
10969         PR target/70496
10970         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
10971
10972 2016-04-01  Nathan Sidwell  <nathan@acm.org>
10973
10974         * tree.def (TRY_CATCH_EXPR): Correct documentation.
10975
10976 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
10977
10978         PR rtl-optimization/70461
10979         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
10980         is necessary.
10981
10982 2016-03-31  Martin Liska  <mliska@suse.cz>
10983
10984         PR hsa/70399
10985         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
10986         a tree value or an immediate integer value to a buffer
10987         that is eventually copied to a BRIG section.
10988         (emit_immediate_operand): Call the function here.
10989         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
10990         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
10991         of class' fields that are removed.
10992         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
10993         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
10994         m_brig_repr_size fields.
10995
10996 2016-03-31  Martin Liska  <mliska@suse.cz>
10997
10998         PR hsa/70391
10999         * hsa-gen.c (hsa_function_representation::update_dominance): New
11000         function.
11001         (convert_addr_to_flat_segment): Likewise.
11002         (gen_hsa_memory_set): New alignment argument.
11003         (gen_hsa_ctor_assignment): Likewise.
11004         (gen_hsa_insns_for_single_assignment): Provide alignment
11005         to gen_hsa_ctor_assignment.
11006         (gen_hsa_insns_for_direct_call): Add new argument.
11007         (expand_lhs_of_string_op): New function.
11008         (expand_string_operation_builtin): Likewise.
11009         (expand_memory_copy): New function.
11010         (expand_memory_set): New function.
11011         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
11012         (convert_switch_statements): Change signature.
11013         (generate_hsa): Use a return value of the function.
11014         (pass_gen_hsail::execute): Do not call
11015         convert_switch_statements here.
11016         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
11017         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
11018         (hsa_function_representation::update_dominance): New function.
11019
11020 2016-03-31  Martin Liska  <mliska@suse.cz>
11021
11022         PR hsa/70391
11023         * hsa-brig.c (emit_directive_variable): Emit alignment
11024         according to hsa_symbol::m_align.
11025         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
11026         (dump_hsa_symbol): Dump alignment of HSA symbols.
11027         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
11028         (gen_hsa_addr_with_align): New function.
11029         (hsa_bitmemref_alignment): Use newly added function.
11030         (gen_hsa_insns_for_load): Likewise.
11031         (gen_hsa_insns_for_store): Likewise.
11032         (gen_hsa_memory_copy): New argument added.
11033         (gen_hsa_insns_for_single_assignment): Respect
11034         alignment for assignments processed via gen_hsa_memory_copy.
11035         (gen_hsa_insns_for_direct_call): Likewise.
11036         (gen_hsa_insns_for_return): Likewise.
11037         (gen_function_def_parameters): Set default alignment.
11038         * hsa.c (hsa_object_alignment): New function.
11039         (hsa_byte_alignment): Pasted function.
11040         * hsa.h (hsa_symbol::m_align): New field.
11041
11042 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
11043
11044         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
11045         scratch field for goto case.
11046
11047 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
11048
11049         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
11050
11051 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
11052
11053         PR target/70442
11054         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
11055         (scalar_chain::convert_insn): Call convert_op for reg
11056         moves to handle undefined registers.
11057
11058 2016-03-31  Nathan Sidwell  <nathan@acm.org>
11059
11060         PR c++/70393
11061         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
11062         Assert we don't want to move backwards.
11063
11064 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
11065
11066         PR target/70453
11067         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
11068
11069 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
11070
11071         PR rtl-optimization/70460
11072         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
11073         with operand from REG_LABEL_OPERAND, instead substitute
11074         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
11075         Don't do anything for REG_NON_LOCAL_GOTO jumps.
11076
11077 2016-03-31  Martin Liska  <mliska@suse.cz>
11078
11079         * passes.c (execute_one_pass): Do not call
11080         todo_after for a discarded function.
11081
11082 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
11083
11084         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
11085         (no_cost, infinite_cost): Initialize the new field.
11086         (get_computation_cost_at): Record setup cost.
11087         (determine_use_iv_cost_address): Skip cost computation for sub
11088         uses if we can estimate it without losing accuracy.
11089
11090 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
11091
11092         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
11093         estimates here.
11094         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
11095         max_loop_iterations_int.
11096         (tree_unswitch_outer_loop): Likewise.
11097         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
11098         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
11099
11100 2016-03-30  Richard Biener  <rguenther@suse.de>
11101
11102         PR middle-end/70450
11103         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
11104
11105 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
11106
11107         PR target/70421
11108         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
11109         in gen_blendm expander.
11110
11111 2016-03-30  Nick Clifton  <nickc@redhat.com>
11112
11113         PR target/62254
11114         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
11115         case where we are already provided with an SImode SUBREG.
11116
11117 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
11118
11119         PR target/70439
11120         * config/i386/i386.c (ix86_expand_epilogue): Properly check
11121         conflict between DRAP register and __builtin_eh_return.
11122
11123 2016-03-30  Michael Matz  <matz@suse.de>
11124             Richard Biener  <rguenther@suse.de>
11125
11126         PR ipa/12392
11127         * ipa-polymorphic-call.c (struct type_change_info): Change
11128         speculative to an unsigned allowing to limit the work we do.
11129         (csftc_abort_walking_p): New inline function..
11130         (check_stmt_for_type_change): Limit the number of may-defs
11131         skipped for speculative devirtualization to
11132         max-speculative-devirt-maydefs.
11133         * params.def (max-speculative-devirt-maydefs): New param.
11134         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
11135
11136 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
11137
11138         PR target/63890
11139         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
11140         and TARGET_MACHO.
11141
11142 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
11143
11144         PR tree-optimization/59124
11145         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
11146         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
11147
11148 2016-03-29  Jeff Law  <law@redhat.com>
11149
11150         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
11151
11152 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11153
11154         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
11155         to HOST_WIDE_INT.
11156
11157 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
11158
11159         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
11160         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
11161         gcrt0.o if linking dynamically.
11162
11163 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11164
11165         PR ipa/70283
11166         * ipa-devirt.c (methods_equal_p): New function.
11167         (compare_virtual_tables): Use it.
11168         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
11169         * cgraphclones.c (clone_function_name_1): Use
11170         symbol_table::symbol_suffix_separator.
11171         * coverage.c (build_var): Likewise.
11172         * symtab.c (symbol_table::symbol_suffix_separator): New.
11173
11174 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
11175
11176         PR rtl-optimization/70429
11177         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
11178         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
11179         mode != result_mode.
11180
11181         PR c++/70353
11182         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
11183
11184         PR tree-optimization/70405
11185         * ssa-iterators.h (num_imm_uses): Add missing braces.
11186
11187 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
11188
11189         PR rtl-optimization/68695
11190         * ira-color.c (allocno_copy_cost_saving): New.
11191         (improve_allocation): Use it.
11192
11193 2016-03-29  Richard Henderson  <rth@redhat.com>
11194
11195         PR middle-end/70355
11196         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
11197
11198 2016-03-29  Richard Biener  <rguenther@suse.de>
11199
11200         PR middle-end/70424
11201         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
11202         use alignment returned by get_pointer_alignment_1 if it is
11203         bigger than BITS_PER_UNIT.
11204         * builtins.c (get_pointer_alignment_1): Do not return true
11205         for alignment extracted from SSA info.
11206
11207 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
11208
11209         * config/ft32/ft32.opt (mnodiv): New.
11210         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
11211         * doc/invoke.texi (FT32 Options -mnodiv): New.
11212
11213 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
11214
11215         PR target/70406
11216         * config/i386/i386.md (define_split, andn): Fix modes.
11217
11218 2016-03-26  Richard Biener  <rguenther@suse.de>
11219             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11220
11221         PR ipa/70366
11222         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
11223         instead of
11224         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
11225         as 2nd argument to cl_optimization_restore().
11226
11227 2016-03-25  Richard Henderson  <rth@redhat.com>
11228
11229         PR target/70120
11230         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
11231         * config/aarch64/aarch64-protos.h: Declare it.
11232         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
11233
11234 2016-03-25  Alan Modra  <amodra@gmail.com>
11235
11236         PR target/70052
11237         * config/rs6000/constraints.md (j): Simplify.
11238         * config/rs6000/predicates.md (easy_fp_constant): Exclude
11239         decimal float 0.D.
11240         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
11241         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
11242          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
11243         in all constraint alternatives.
11244         (movtd_64bit_nodm): Delete "j" constraint alternative.
11245
11246 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
11247
11248         * tree-ssa-propagate.c: Enhance docs for
11249         SSA_PROP_NOT_INTERESTING.
11250
11251 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
11252
11253         * doc/extend.texi: Fix typo in documentation to pure attribute.
11254
11255 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
11256
11257         PR target/70319
11258         * config/pa/pa.md (bswapdi2): Use a scratch register.
11259
11260 2016-03-24  Richard Henderson  <rth@redhat.com>
11261
11262         PR middle-end/69845
11263         * fold-const.c (extract_muldiv_1): Correct test for multiplication
11264         overflow.
11265
11266 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
11267
11268         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
11269         using ix86_expand_binary_operator instead of gen_andsi3.
11270
11271 2016-03-24  Richard Biener  <rguenther@suse.de>
11272
11273         PR tree-optimization/70396
11274         * tree-vect-stmts.c (vectorizable_comparison): Use
11275         get_vectype_for_scalar_type.
11276
11277 2016-03-24  Richard Biener  <rguenther@suse.de>
11278
11279         PR middle-end/70370
11280         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
11281         with register bases.
11282
11283 2016-03-24  Richard Biener  <rguenther@suse.de>
11284
11285         PR tree-optimization/70372
11286         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
11287         build_all_ones_cst to also handle vector types correctly.
11288
11289 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
11290
11291         PR target/70381
11292         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
11293         -mfloat128 here.
11294
11295 2016-03-23  Marek Polacek  <polacek@redhat.com>
11296
11297         PR c++/69884
11298         * doc/invoke.texi: Document -Wignored-attributes.
11299
11300 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
11301
11302         PR tree-optimization/69042
11303         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
11304         parameter from 30 to 40.
11305
11306 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
11307
11308         PR tree-optimization/69042
11309         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
11310         for use with constant offset stripped in base.
11311
11312 2016-03-23  Richard Biener  <rguenther@suse.de>
11313
11314         PR middle-end/70251
11315         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
11316         mode compatibility check.
11317         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11318
11319 2016-03-23  Jeff Law  <law@redhat.com>
11320
11321         PR tree-optimization/64058
11322         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
11323         CONFLICT_COUNT.
11324         (struct ssa_conflicts): Move up earlier in the file.
11325         (conflicts_, var_map_): New static variables.
11326         (initialize_conflict_count): New function to initialize the
11327         CONFLICT_COUNT field for each conflict pair.
11328         (compare_pairs): Lazily initialize the conflict count and use it
11329         as the first tie-breaker.
11330         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
11331         and wipe conflicts_ and map_ around the call to qsort.  Remove
11332         special case for 2 coalesce pairs.
11333         * bitmap.c (bitmap_count_unique_bits): New function.
11334         (bitmap_count_bits_in_word): New function, extracted from
11335         bitmap_count_bits.
11336         (bitmap_count_bits): Use bitmap_count_bits_in_word.
11337         * bitmap.h (bitmap_count_unique_bits): Declare it.
11338
11339 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
11340
11341         PR target/69917
11342         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
11343         transparent alias chain for decl assembler name.
11344         * config/sol2.c (solaris_assemble_visibility): Likewise.
11345
11346 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11347
11348         * config/arm/arm1020e.md (1020call_op): Reduce reservation
11349         duration.
11350         (v10_fdivs): Likewise.
11351         (v10_fdivd): Likewise.
11352
11353 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11354
11355         PR driver/70132
11356         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
11357         to not call fclose twice on file.
11358
11359 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
11360
11361         PR tree-optimization/70354
11362         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
11363         oprnd0 is wider than oprnd1 and there is a cast from the wider
11364         type to oprnd1, mask it with the mask of the narrower type.
11365
11366         PR target/70321
11367         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
11368         Optimize TARGET_STV splitters, if high or low word of last argument
11369         is 0 or -1.
11370
11371 2016-03-22  Jeff Law  <law@redhat.com>
11372
11373         PR target/70232
11374         tree-ssa-threadbackward.c
11375         (fsm_find_control_statement_thread_paths): Correctly distinguish
11376         between old style jump threads vs FSM jump threads.
11377
11378 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
11379
11380         PR target/70302
11381         * config/i386/i386.c (scalar_chain::convert_op): Support
11382         uninitialized register usage case.
11383
11384 2016-03-22  Richard Biener  <rguenther@suse.de>
11385
11386         PR middle-end/70251
11387         * genmatch.c (gen_transform): Adjust last parameter to a three-state
11388         int...
11389         (capture::gen_transform): ... to change behavior when substituting
11390         a condition into cond or not-cond expr context.
11391         (dt_simplify::gen_1): Adjust.
11392         * gimple-match-head.c: Include gimplify.h for unshare_expr.
11393         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
11394         last change and instead change to
11395         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
11396         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11397
11398 2016-03-22  Anthony Green  <green@moxielogic.com>
11399
11400         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
11401         issue for moxiebox targets.
11402         (CC1PLUS_SPEC): Ditto.
11403
11404 2016-03-22  Richard Biener  <rguenther@suse.de>
11405
11406         PR middle-end/70333
11407         * fold-const.c (extract_muldiv_1): Properly perform multiplication
11408         in the wide type.
11409
11410 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11411
11412         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
11413
11414 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11415
11416         PR target/70325
11417         * config/i386/i386.c (def_builtin): Handle
11418         OPTION_MASK_ISA_AVX512VL to be and-ed with other
11419         bits.
11420         (const struct builtin_description bdesc_special_args[]):
11421         Remove duplicate ISA bits.
11422
11423 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
11424
11425         PR target/70329
11426         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
11427         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
11428         in a way that works also for AVX512BW.
11429
11430         PR target/70300
11431         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
11432         instead of source if operands[1] is xmm16 and above and
11433         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
11434         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
11435
11436         PR c++/70295
11437         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
11438         on assign if (*from_p) is a comparison, set it to
11439         TREE_NO_WARNING (*from_p).
11440
11441 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
11442
11443         PR middle-end/70326
11444         * lra.c (restore_scratches): Ignore deleted insns.
11445
11446 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
11447             Jakub Jelinek  <jakub@redhat.com>
11448
11449         PR tree-optimization/70317
11450         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
11451         to HONOR_NANS.
11452
11453 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
11454
11455         PR target/70327
11456         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
11457         of ix86_expand_move.
11458         (movoi): Ditto.
11459         (movti): Use general_operand for operand 1 predicate.
11460
11461 2016-03-21  Martin Liska  <mliska@suse.cz>
11462
11463         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
11464         insns.
11465         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
11466
11467 2016-03-21  Martin Liska  <mliska@suse.cz>
11468
11469         PR ipa/70306
11470         * ipa-icf.c (sem_function::parse): Skip static
11471         constructors and destructors.
11472
11473 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
11474
11475         PR target/70296
11476         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
11477         function-like macro, peek following token(s) if it is followed
11478         by CPP_OPEN_PAREN token with optional padding in between, and
11479         if not, don't treat it like a macro.
11480
11481 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
11482             Alexander Monakov  <amonakov@ispras.ru>
11483
11484         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
11485         for the stabs debug format.
11486
11487 2016-03-21  Richard Biener  <rguenther@suse.de>
11488
11489         PR tree-optimization/70310
11490         * tree-vect-generic.c (expand_vector_condition): Fold the built
11491         condition.
11492
11493 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
11494
11495         PR target/70293
11496         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
11497         Block third alternative for AVX-512VL target,
11498
11499 2016-03-21  Martin Liska  <mliska@suse.cz>
11500
11501         PR hsa/70234
11502         * hsa-brig.c (emit_function_directives): Mark unemitted
11503         global variables for emission.
11504         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
11505         (get_symbol_for_decl): Likewise.
11506         * hsa.h (struct hsa_symbol): New flag.
11507
11508 2016-03-21  Richard Biener  <rguenther@suse.de>
11509
11510         PR tree-optimization/70288
11511         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
11512         we do not estimate unsimplified all-constant conditionals or
11513         switches as optimized away.
11514
11515 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
11516
11517         PR rtl-optimization/69102
11518         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
11519         when we have a readonly dependency context.
11520
11521 2016-03-18  Jeff Law  <law@redhat.com>
11522
11523         PR rtl-optimization/70263
11524         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
11525         (update_equiv_regs): When trying to move a store to after the insn
11526         that sets the source of the store, make sure the store occurs after
11527         the insn that sets the source of the store.  When successful note
11528         the REG_EQUIV note created in the dump file.
11529
11530 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
11531             Bernd Schmidt  <bschmidt@redhat.com>
11532
11533         * doc/extend.texi: Document more potential problems with basic asms.
11534
11535 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
11536
11537         PR rtl-optimization/70278
11538         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
11539         VOIDmode.
11540
11541 2016-03-18  Jason Merrill  <jason@redhat.com>
11542
11543         * calls.c (load_register_parameters): Fix zero size sibcall logic.
11544
11545 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
11546
11547         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
11548         values to 128b regs.
11549
11550 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
11551
11552         PR tree-optimization/70252
11553         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
11554         boolean vector has a proper number of elements.
11555         (supportable_narrowing_operation): Likewise.
11556
11557 2016-03-18  Tom de Vries  <tom@codesourcery.com>
11558
11559         PR ipa/70269
11560         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
11561
11562 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
11563
11564         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
11565         instead of replace_rtx for DEBUG_INSNs.
11566
11567 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11568
11569         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
11570         load type reservations.
11571
11572 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
11573
11574         PR target/70188
11575         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
11576         define_constraint for "Q" and "T" constraints.
11577
11578 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
11579
11580         Tweak the pipeline model for Exynos M1
11581
11582         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
11583         model.
11584
11585 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
11586
11587         PR c/70264
11588         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
11589         where one or both locations aren't within a line_map.
11590
11591 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11592
11593         PR driver/70192
11594         * opts.c (finish_options): Don't set flag_pie to the default if
11595         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
11596         if it is -1.
11597
11598 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
11599
11600         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
11601         true as ALL_REGS argument to replace_rtx.
11602
11603 2016-03-17  Richard Biener  <rguenther@suse.de>
11604
11605         PR debug/70271
11606         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
11607         last.
11608
11609 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
11610
11611         PR target/70245
11612         * rtl.h (replace_rtx): Add ALL_REGS argument.
11613         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
11614         equality and assert mode is the same, instead of just rtx pointer
11615         equality.
11616         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
11617         true as ALL_REGS argument to replace_rtx.
11618
11619 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
11620
11621         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
11622         for boolean vector with vector mode only.
11623         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11624
11625 2016-03-17  Nick Clifton  <nickc@redhat.com>
11626
11627         PR target/70162
11628         * config/rx/rx.c (rx_print_integer): Print negative constants in
11629         decimal.
11630
11631 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
11632
11633         PR target/70261
11634         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
11635
11636 2016-03-16  Richard Henderson  <rth@redhat.com>
11637             Richard Biener  <rguenth@suse.de>
11638
11639         PR middle-end/70240
11640         PR middle-end/68215
11641         PR tree-opt/68714
11642         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
11643         first operand as is_gimple_condexpr.
11644
11645         PR middle-end/70240
11646         PR middle-end/68215
11647         Revert r231575
11648         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
11649         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
11650         Do not gimplify the result.
11651         (do_unop): Adjust call to tree_vec_extract.
11652         (do_binop): Likewise.
11653         (do_compare): Likewise.
11654         (do_plus_minus): Likewise.
11655         (do_negate): Likewise.
11656         (expand_vector_condition): Likewise.
11657         (do_cond): Likewise.
11658
11659 2016-03-16  Richard Henderson  <rth@redhat.com>
11660
11661         PR target/70048
11662         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
11663         (aarch64_classify_address): Use it.
11664         (aarch64_legitimize_address): Force all subexpressions of PLUS
11665         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
11666
11667 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
11668             Richard Biener  <rguenth@suse.de>
11669
11670         PR target/70245
11671         * rtlanal.c (replace_rtx): For REG, if from is a REG,
11672         return to even if only REGNO is equal, and assert
11673         mode is the same.
11674
11675 2016-03-11  Jeff Law  <law@redhat.com>
11676
11677         PR rtl-optimization/70224
11678         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
11679
11680 2016-03-16  Richard Henderson  <rth@redhat.com>
11681
11682         PR middle-end/70199
11683         * function.h (struct function): Add has_forced_label_in_static.
11684         * gimplify.c (force_labels_r): Set it.
11685         * lto-streamer-in.c (input_struct_function_base): Read it.
11686         * lto-streamer-out.c (output_struct_function_base): Write it.
11687         * tree-inline.c (has_label_address_in_static_1): Remove.
11688         (copy_forbidden): Remove fndecl parameter; test
11689         has_forced_label_in_static.
11690         (inline_forbidden_p): Update call to copy_forbidden.
11691         (tree_versionable_function_p): Likewise.
11692         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
11693         (chkp_versioning): Likewise.
11694         * tree-inline.h (copy_forbidden): Update decl.
11695
11696 2016-03-16  Marek Polacek  <polacek@redhat.com>
11697
11698         PR c/70093
11699         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
11700         function being thunked if the result type doesn't have fixed size.
11701         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
11702         doesn't have fixed size.
11703
11704 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
11705
11706         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
11707         reporting malformed loop nest.
11708
11709 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11710
11711         PR lto/70187
11712         * ipa-devirt.c (possible_polymorphic_call_targets): Move
11713         nodes.length () == 1 test to before first nodes[0] access.
11714
11715 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11716
11717         PR tree-optimization/68715
11718         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
11719         single_pred_p test.
11720
11721 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11722
11723         PR tree-optimization/68809
11724         * graphite-scop-detection.c (same_close_phi_node): Test if result types
11725         are the same.
11726
11727 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
11728             Sandra Loosemore  <sandra@codesourcery.com>
11729
11730         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
11731         on leaf attribute. Mention ELF interposition problems.
11732
11733 2016-03-16  Alan Modra  <amodra@gmail.com>
11734
11735         PR rtl-optimization/69195
11736         PR rtl-optimization/47992
11737         * ira.c (indirect_jump_optimize): Ignore artificial defs.
11738         Add comments.
11739
11740 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
11741
11742         PR bootstrap/69513
11743         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
11744
11745 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
11746
11747         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
11748
11749 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
11750
11751         PR rtl-optimization/70222
11752         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
11753         optimization if mode is different from result_mode, queue up masking
11754         of the result in outer_op.  Formatting fix.
11755
11756         PR middle-end/70239
11757         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
11758         of safe_grow.
11759
11760 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11761
11762         PR rtl-optimization/69032
11763         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
11764         looping backwards over basic block insns.
11765
11766 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11767
11768         PR target/66660
11769         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
11770         to non-speculative when propagating trap bits.
11771
11772 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11773
11774         PR rtl-optimization/63384
11775         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
11776         DEBUG_INSN_P insns.
11777
11778 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11779
11780         PR target/64411
11781         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
11782         factored out from ...
11783         (sched_analyze_insn): ... here.
11784         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
11785         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
11786         get_implicit_reg_pending_clobbers in it.
11787         (setup_id_reg_sets): Use setup_id_implicit_regs.
11788         (deps_init_id): Ditto.
11789
11790 2016-03-15  Tom de Vries  <tom@codesourcery.com>
11791
11792         PR ipa/70161
11793         * cgraph.c (cgraph_node::get_body): Save, reset and restore
11794         dump_file_name.
11795         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
11796         execute_function_dump.
11797         (execute_one_pass): Don't dump function if it will be dumped after ipa
11798         transform.
11799
11800 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
11801
11802         * genrecog.c (match_pattern_2): If pred is NULL don't call
11803         safe_predicate_mode on it.
11804
11805 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
11806
11807         PR middle-end/70219
11808         * lra-constraints.c (delete_move_and_clobber): Change assertion
11809         to also allow dregno == 0.
11810
11811 2016-03-14  Richard Henderson  <rth@redhat.com>
11812
11813         PR tree-opt/68714
11814         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
11815         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
11816         (reassociate_bb): Use optimize_vec_cond_expr; avoid
11817         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
11818         on vectors.
11819
11820 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
11821
11822         PR target/70083
11823         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
11824         regs.
11825         (lra_create_live_ranges_1): initialize hard register biggest_mode to
11826         VOIDmode.
11827         * lra-constraints.c (split_reg): For hard regs, try to find the
11828         biggest single-register mode used in the function.
11829
11830 2016-03-14  Richard Biener  <rguenther@suse.de>
11831
11832         PR tree-optimization/56365
11833         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
11834         constants to compare against.
11835
11836 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
11837
11838         PR target/70098
11839         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
11840         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
11841         (define_split for the GPR case): Use int_reg_operand instead of
11842         gpc_reg_operand for the output.
11843
11844 2016-03-14  Tom de Vries  <tom@codesourcery.com>
11845
11846         PR tree-optimization/70045
11847         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
11848         create_empty_if_region_on_edge argument.
11849
11850 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
11851
11852         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
11853         (STACK_CHECK_PROTECT): Likewise.
11854         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
11855         (STACK_CHECK_PROTECT): Likewise.
11856         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
11857         (STACK_CHECK_PROTECT): Likewise.
11858         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
11859         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11860         (STACK_CHECK_PROTECT): Likewise.
11861
11862 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
11863
11864         PR rtl-optimization/69307
11865         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
11866         registers in modes that span more than one register.
11867
11868 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
11869
11870         PR target/69614
11871         * lra-constraints.c (delete_move_and_clobber): New.
11872         (remove_inheritance_pseudos): Use it.
11873
11874 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
11875
11876         PR ada/70017
11877         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
11878         the libcall is LCT_THROW.
11879         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
11880         for the checking routine.
11881
11882 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
11883
11884         PR target/70131
11885         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
11886         optimization if we have direct move.
11887         (roundu32<mode>2_fprs): Likewise.
11888
11889 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
11890
11891         PR target/70123
11892         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
11893         be rematerialized.
11894         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
11895         Arguments swapped.  All callers changed.  Take reg_renumber into
11896         account, and Calculate and compare register ranges for hard regs.
11897
11898 2016-03-11  Jeff Law  <law@redhat.com>
11899
11900         PR tree-optimization/70190
11901         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11902         Handle cases where we can not extract the taken edge, even though we
11903         found a constant value.
11904
11905         PR tree-optimization/64058
11906         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
11907         (num_coalesce_pairs): Move up earlier in file.
11908         (find_coalesce_pair): Initialize the INDEX field for each pair
11909         discovered.
11910         (compare_pairs): No longer sort on the elements in each pair.
11911         Instead break ties with the index of the coalesce pair.
11912
11913 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11914
11915         PR target/70002
11916         * config/aarch64/aarch64-protos.h
11917         (aarch64_save_restore_target_globals): New prototype.
11918         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
11919         Call the above when popping pragma.
11920         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
11921         New function.
11922         (aarch64_set_current_function): Rewrite using the above.
11923
11924 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
11925
11926         PR tree-optimization/70177
11927         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
11928         (extract_ops_from_tree): ... this.  In the 2 argument
11929         overload remove _1 suffix.
11930         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
11931         (extract_ops_from_tree): ... this.
11932         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
11933         Adjust callers.
11934         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
11935         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
11936         extract_ops_from_tree instead of 2 operand one.
11937
11938 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
11939
11940         PR tree-optimization/70013
11941         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
11942         for constant-pool entries.
11943
11944 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
11945
11946         PR rtl-optimization/70174
11947         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
11948         followed by gen_lowpart on force_reg instead of just gen_lowpart.
11949
11950         PR tree-optimization/70169
11951         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
11952         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
11953         for unknown codes.
11954
11955 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11956             Jakub Jelinek  <jakub@redhat.com>
11957
11958         PR target/70160
11959         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
11960         of uninitialized values.
11961
11962 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11963
11964         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
11965         define_expand.
11966         ("*trunctddd2"): New pattern definition.
11967         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
11968         TD->DD truncation.
11969
11970 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11971
11972         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
11973         definitions for BFP and DFP rounding modes.
11974         ("fixuns_truncdddi2", "fixuns_trunctddi2")
11975         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
11976         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
11977         ("fix_trunctf<mode>2"): Use the new constants instead of magic
11978         numbers.
11979
11980 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11981
11982         * config/s390/constraints.md: Adjust comment.
11983         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
11984         s390_decompose_addrstyle_without_index.
11985         * config/s390/predicates.md (shift_count_or_setmem_operand):
11986         Rename to setmem_operand.
11987         * config/s390/s390-protos.h
11988         (s390_decompose_shift_count): Rename to
11989         s390_decompose_addrstyle_without_index.
11990         * config/s390/s390.c (s390_decompose_shift_count)
11991         (s390_mem_constraint, print_shift_count_operand)
11992         (print_operand_address, print_operand): Rename
11993         s390_decompose_shift_count to
11994         s390_decompose_addrstyle_without_index and rename
11995         print_shift_count_operand to print_addrstyle_operand troughout the
11996         file.
11997         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
11998         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
11999         Rename shift_count_or_setmem_operand to setmem_operand.
12000         * config/s390/vx-builtins.md ("vec_insert<mode>")
12001         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
12002         nonmemory_operand.
12003
12004 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12005
12006         PR target/70168
12007         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
12008         Handle overlapping retval and newval.
12009
12010 2016-03-10  Nick Clifton  <nickc@redhat.com>
12011
12012         PR target/7044
12013         * config/aarch64/aarch64.c
12014         (aarch64_override_options_after_change_1): When forcing
12015         flag_omit_frame_pointer to be true, use a special value that can
12016         be detected if this function is called again, thus preventing
12017         flag_omit_leaf_frame_pointer from being forced to be false.
12018
12019 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12020
12021         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
12022         Set x_flag_omit_leaf_frame_pointer when handling
12023         -momit-leaf-frame-pointer.
12024
12025 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12026
12027         PR lto/69589
12028         * cgraph.c (cgraph_node::dump): Dump split_part and
12029         indirect_call_target.
12030         * cgraph.h (cgraph_node): Add indirect_call_target flag.
12031         * ipa.c (has_addr_references_p): Cleanup.
12032         (is_indirect_call_target_p): New.
12033         (walk_polymorphic_call_targets): Do not mark virtuals that may be
12034         called indirectly as local.
12035         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
12036
12037 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12038
12039         PR ipa/69630
12040         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
12041         on cxa_pure_virtual.
12042
12043 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12044
12045         PR lto/69589
12046         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
12047
12048 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12049
12050         PR lto/69589
12051         * tree.c (need_assembler_name_p): Only record main variant type names.
12052
12053 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
12054
12055         PR target/70113.
12056         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
12057         Always define to 0 or 1.
12058         (TARGET_FIX_ERR_A53_843419): New macro.
12059         * config/aarch64/aarch64-elf-raw.h
12060         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
12061         * config/aarch64/aarch64-linux.h: Likewise.
12062         * config/aarch64/aarch64.c
12063         (aarch64_override_options_after_change_1): Do not default
12064         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
12065         843419 is on.
12066         (aarch64_attributes): Handle fix-cortex-a53-843419.
12067         (aarch64_can_inline_p): Likewise.
12068         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
12069
12070 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
12071         Jakub Jelinek <jakub@redhat.com>
12072
12073         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
12074         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
12075         DECL_COMMONS if flag_unconstrained_commons is set.
12076         * tree-dfa.c (get_ref_base_and_extent): Likewise.
12077         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
12078         (funconstrained-commons): Document.
12079
12080 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
12081
12082         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
12083         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
12084
12085 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
12086
12087         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
12088         has a proper number of elements.
12089
12090 2016-03-10  Alan Modra  <amodra@gmail.com>
12091
12092         PR rtl-optimization/69195
12093         PR rtl-optimization/47992
12094         * ira.c (recorded_label_ref): Delete.
12095         (update_equiv_regs): Return void.
12096         (indirect_jump_optimize): New function.
12097         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
12098         before regstat_compute_ri.  Don't rebuild_jump_labels here.
12099         Delete update_regstat.
12100
12101 2016-03-10  Richard Biener  <rguenther@suse.de>
12102
12103         PR tree-optimization/70128
12104         * tree-ssa-structalias.c (set_uids_in_ptset): Set
12105         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
12106
12107 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
12108
12109         PR tree-optimization/70152
12110         * tree-sra.c (replace_removed_params_ssa_names): Copy over
12111         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
12112
12113         PR target/70086
12114         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
12115         instead of gen_sse2_loadlpd.
12116         * config/i386/sse.md (*vec_concatv2df): Rename to...
12117         (vec_concatv2df): ... this.
12118
12119         PR tree-optimization/70127
12120         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
12121
12122 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
12123
12124         PR c/68473
12125         PR c++/70105
12126         * diagnostic-show-locus.c (compatible_locations_p): New function.
12127         (layout::layout): Sanitize ranges using compatible_locations_p.
12128
12129 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
12130
12131         PR c/68473
12132         PR c++/70105
12133         * diagnostic-show-locus.c (layout_range::layout_range): Replace
12134         location_range param with three const expanded_locations * and a
12135         bool.
12136         (layout::layout): Replace call to
12137         rich_location::lazily_expand_location with get_expanded_location.
12138         Extract the range and perform location expansion here, passing
12139         the results to the layout_range ctor.
12140         * diagnostic.c (source_range::debug): Delete.
12141         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
12142         of rich_location::get_expanded_location.
12143         * gcc-rich-location.c (get_range_for_expr): Delete.
12144         (gcc_rich_location::add_expr): Reimplement to avoid the
12145         rich_location::add_range overload that took a location_range,
12146         passing a location_t instead.
12147
12148 2016-03-09  Richard Biener  <rguenther@suse.de>
12149         Jakub Jelinek  <jakub@redhat.com>
12150
12151         PR tree-optimization/70138
12152         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
12153         Also skip vect_double_reduction_def.
12154
12155 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
12156
12157         PR target/70049
12158         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
12159         if the operand is "m".
12160
12161 2016-03-09  Nathan Sidwell  <nathan@acm.org>
12162
12163         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
12164
12165 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12166
12167         * config/i386/i386.c (processor_target_table): Fix cost table
12168         intialization order for znver1.
12169
12170 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
12171
12172         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
12173         - becuase -> because.
12174         * ipa-reference.c (ignore_module_statics): Likewise.
12175         * cgraph.c (cgraph_node::get_body): Likewise.
12176         * ipa-inline.c (early_inliner): Likewise.
12177         * ipa-devirt.c (types_same_for_odr): Likewise.
12178         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
12179         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
12180
12181 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12182
12183         * tree-ssa-math-opts.c: Fix typo in comment.
12184
12185 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
12186
12187         PR target/70110
12188         * config/i386/i386.c (scalar_chain::make_vector_copies,
12189         scalar_chain::convert_reg): Call end_sequence in between
12190         get_insns and emit_conversion_insns rather than after both
12191         calls.
12192
12193 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
12194
12195         PR target/70064
12196         * config/i386/i386.h (machine_function): Add
12197         pc_thunk_call_expanded flag.
12198         (ix86_pc_thunk_call_expanded): New define.
12199         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
12200         (*set_got): Rename insn pattern from set_got.
12201         (*set_got_labelled): Rename inst pattern from set_got_labelled.
12202         * config/i386/i386.c (ix86_compute_frame_layout): Use
12203         ix86_pc_thunk_call_expanded to prevent red-zone.
12204
12205 2016-03-07  Martin Jambor  <mjambor@suse.cz>
12206
12207         * hsa.h (hsa_get_ctor_statements): Declare.
12208         (hsa_get_dtor_statements): Likewise.
12209         (hsa_get_kernel_dispatch_type): Likewise.
12210         * hsa.c (hsa_get_ctor_statements): New function.
12211         (hsa_get_dtor_statements): Likewise.
12212         (hsa_get_kernel_dispatch_type): Likewise.
12213         * hsa-brig.c (hsa_cdtor_statements): Removed.
12214         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
12215         hsa_get_dtor_statements.
12216         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
12217         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
12218
12219 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12220
12221         * config/arm/arm-cores.def (cortex-r8): New.
12222         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
12223         * config/arm/arm-tune.md: Likewise.
12224         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
12225
12226 2016-03-07  Martin Sebor  <msebor@redhat.com>
12227
12228         PR rtl-optimization/19705
12229         * doc/invoke.texi (Options That Control Optimization): Clarify
12230         -fno-branch-count-reg.
12231
12232 2016-02-26  Richard Biener  <rguenther@suse.de>
12233             Jeff Law  <law@redhat.com>
12234
12235         PR tree-optimization/69740
12236         * cfghooks.c (remove_edge): Request loop fixups if we delete
12237         an edge that might turn an irreducible loop into a natural
12238         loop.
12239         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
12240         Move after definition of loops_state_clear.
12241
12242 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
12243
12244         PR rtl-optimization/69052
12245         * rtlanal.c (commutative_operand_precedence): Set higher precedence
12246         to CONST_WIDE_INT.
12247
12248 2016-03-07  Tom de Vries  <tom@codesourcery.com>
12249
12250         PR tree-optimization/70116
12251         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
12252         is_tm_ending stmts and ubsan/asan internal functions.
12253         (find_duplicate): Use it.  Don't test is_tm_ending here.
12254
12255 2016-03-07  Richard Biener  <rguenther@suse.de>
12256
12257         PR tree-optimization/70115
12258         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
12259         (propagate_constants_for_unrolling): Use replace_uses_by.
12260
12261 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
12262
12263         PR middle-end/69916
12264         * omp-low.c (struct oacc_loop): Add ifns.
12265         (new_oacc_loop_raw): Initialize it.
12266         (finish_oacc_loop): Clear mask & flags if no ifns.
12267         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
12268         (oacc_loop_xform_loop): Add ifns arg & adjust.
12269         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
12270
12271 2016-03-07  Richard Henderson  <rth@redhat.com>
12272
12273         PR rtl-opt/70061
12274         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
12275         (insert_value_copy_on_edge): Likewise.
12276
12277 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12278
12279         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
12280
12281 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12282
12283         PR target/62281
12284         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
12285
12286 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
12287
12288         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
12289
12290 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
12291
12292         Fix sseimul type attribute.
12293         * config/i386/znver1.md
12294         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
12295         znver1_sseimul_avx256_load) : Fix the type attribute.
12296         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
12297         pipe usage and latency.
12298
12299 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
12300
12301         PR c++/70084
12302         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
12303         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
12304         to the right type.
12305
12306 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
12307
12308         PR c/69973
12309         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
12310
12311         PR rtl-optimization/69941
12312         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
12313         the reg share its mode.
12314
12315 2016-03-04  Jeff Law  <law@redhat.com>
12316
12317         PR tree-optimization/69196
12318         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12319         If the both SSA_NAMEs are anonymous, then consider them unassociated
12320         and include the PHI in the statement count.
12321
12322 2016-03-05  Tom de Vries  <tom@codesourcery.com>
12323
12324         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
12325         construct in oacc routine.  Check for oacc region in oacc routine.
12326
12327 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
12328
12329         PR target/70062
12330         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
12331         2016-02-22 changes, instead don't recurse if RECUR is already true.
12332         Don't change *dynamic_check if RECUR.  Adjust recursive caller
12333         to pass true to the new argument.
12334         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
12335
12336         PR target/70059
12337         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
12338         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
12339         fixes.
12340         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
12341
12342 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
12343
12344         PR rtl-optimization/57676
12345         * lra-assigns.c (lra_assign): Guard test for maximum iterations
12346         with flag_checking.
12347
12348 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
12349
12350         * tree-vect-patterns.c (search_type_for_mask): Handle
12351         comparison of booleans.
12352
12353 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
12354
12355         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
12356         Fix @xref usage.
12357
12358         PR debug/69947
12359         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
12360         all other ops that have dw_val_class_die_ref operands,
12361         and DW_OP_GNU_entry_value.
12362
12363 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12364
12365         PR rtl-optimization/69904
12366         * config/arm/arm.c (arm_cannot_copy_insn_p):
12367         Return true for load-exclusive instructions.
12368
12369 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
12370
12371         PR target/70021
12372         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
12373         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
12374         the pattern no matter if it is used just by non-pattern, pattern
12375         or mix thereof.
12376         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
12377         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
12378         oprnd1 def_stmt is in pattern, don't look through it.
12379
12380 2016-03-03  Marek Polacek  <polacek@redhat.com>
12381
12382         PR middle-end/70050
12383         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
12384
12385 2016-03-03  Martin Liska  <mliska@suse.cz>
12386
12387         PR tree-optimization/70043
12388         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
12389         previous statement if we see a debug statement.
12390
12391 2016-03-03  Richard Biener  <rguenther@suse.de>
12392
12393         PR tree-optimization/55936
12394         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
12395         parameter and guard unsafe equivalence use.
12396         (vrp_evaluate_conditional_warnv_with_ops): Always use
12397         safe equivalences but not via the quadratic compare_names
12398         helper.
12399
12400 2016-03-03  Michael Collison  <michael.collison@linaro.org>
12401
12402         PR target/70014
12403         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
12404         for operand 1 to s_register_operand. Change predicate for operand
12405         2 to arm_not_immediate_operand.
12406
12407 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
12408
12409         * doc/tm.texi: Regenerated.
12410
12411 2016-03-02  Richard Henderson  <rth@redhat.com>
12412
12413         PR rtl-opt/67145
12414         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
12415         simplification when all args are positive non-fixed registers.
12416
12417 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12418
12419         * target.def (lra_p): Specify that new ports should use LRA.
12420
12421 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
12422
12423         PR libgomp/69555
12424         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
12425         gimplify_type_sizes the type they refer to.
12426         (omp_notice_variable): Handle reference vars to VLAs.
12427         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
12428         reference to VLA decls in the second pass instead of first pass.
12429
12430 2016-03-02  Tom de Vries  <tom@codesourcery.com>
12431
12432         PR tree-optimization/68659
12433         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
12434         new_expr == NULL_TREE.
12435         (get_new_name): Handle ADDR_EXPR.
12436
12437 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
12438
12439         PR rtl-optimization/69052
12440         * loop-invariant.c (canonicalize_address): New function.
12441         (inv_can_prop_to_addr_use): Check validity of address expression
12442         which is canonicalized by above function.
12443
12444 2016-03-02  Alan Modra  <amodra@gmail.com>
12445
12446         PR ipa/69990
12447         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
12448         larger alignment.
12449
12450 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
12451
12452         PR target/70028
12453         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
12454         (*movhi_internal): Put mask moves from and to memory separately
12455         from moves from/to GPRs.
12456
12457 2016-03-02  Richard Biener  <rguenther@suse.de>
12458
12459         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
12460         GENERIC expressions in GIMPLE.
12461
12462 2016-03-02  Richard Biener  <rguenther@suse.de>
12463
12464         * config/i386/i386.c (type_natural_mode): Fix typo.
12465
12466 2016-03-02  Nick Clifton  <nickc@redhat.com>
12467
12468         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
12469
12470 2016-03-02  Richard Biener  <rguenther@suse.de>
12471             Uros Bizjak  <ubizjak@gmail.com>
12472
12473         PR target/67278
12474         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
12475
12476 2016-03-02  Richard Biener  <rguenther@suse.de>
12477
12478         PR middle-end/67278
12479         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
12480
12481 2016-03-02  Marek Polacek  <polacek@redhat.com>
12482
12483         PR c/67854
12484         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
12485         "is promoted to" warning.
12486
12487 2016-03-01  DJ Delorie  <dj@redhat.com>
12488
12489         * config.gcc: Deprecate mep-*.
12490
12491 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
12492
12493         PR middle-end/70025
12494         * lra-constraints.c (regno_val_use_in): New.
12495         (match_reload): Use it instead of regno_use_in.
12496
12497 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
12498
12499         PR rtl-optimization/70007
12500         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
12501         references present in REG_EQUAL notes attached to non-SET patterns.
12502
12503 2016-03-01  Jeff Law  <law@redhat.com>
12504
12505         PR tree-optimization/69196
12506         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12507         Appropriately clamp the number of statements to copy when the
12508         thread path does not traverse a loop backedge.
12509
12510         PR tree-optimization/69196
12511         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12512         Do count some PHIs in the thread path against the insn count.  Decrease
12513         final statement count by one as the control statement in the last
12514         block will get removed.  Remove special cased code for handling PHIs
12515         in the last block.
12516
12517 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
12518
12519         PR target/70027
12520         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
12521         asm dialect alternatives to explicit GOTPCREL calls.
12522
12523 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
12524
12525         PR ada/70017
12526         * ira.c (do_reload): Issue warning for generic stack checking here...
12527         * reload1.c (reload): ...instead of here and streamline it.
12528
12529 2016-03-01  Nick Clifton  <nickc@redhat.com>
12530
12531         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
12532
12533 2016-03-01  Richard Biener  <rguenther@suse.de>
12534
12535         PR tree-optimization/69983
12536         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
12537         types and fall back to operand_equal_p.
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         * config/s390/constraints.md ("jm8"): New constraint.
12545         * config/s390/predicates.md ("const_int_8bitset_operand"): New
12546         predicate.
12547         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
12548         into ...
12549         ("*setmem_long<setmem_and>"): New pattern.
12550         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
12551         into ...
12552         ("*setmem_long_31z<setmem_and>"): New pattern.
12553         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
12554         New substitution rules with the required attributes.
12555
12556
12557 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12558
12559         Revert
12560         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12561
12562         * gensupport.c (process_substs_on_one_elem): Split loop to
12563         complete mark_operands_used_in_match_dup on all expressions in the
12564         vector first.
12565         (adjust_operands_numbers): Inline into process_substs_on_one_elem
12566         and remove function.
12567
12568 2016-03-01  Richard Biener  <rguenther@suse.de>
12569
12570         PR middle-end/70022
12571         * fold-const.c (fold_indirect_ref_1): Fix range checking for
12572         vector BIT_FIELD_REF extract.
12573
12574 2016-03-01  Richard Biener  <rguenther@suse.de>
12575
12576         PR tree-optimization/69994
12577         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
12578
12579 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
12580
12581         PR tree-optimization/69956
12582         * tree-vect-stmts.c (supportable_widening_operation): Support
12583         multi-step conversion of boolean vectors.
12584         (supportable_narrowing_operation): Likewise.
12585
12586 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12587
12588         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
12589         anymore.
12590
12591 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12592
12593         * config/s390/subst.md (DSI_VI): New mode iterator.
12594         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
12595         * config/s390/vector.md ("vec_set<mode>"): Move expander before
12596         the insn definition.
12597         ("*vec_set<mode>"): Change predicate and add alternative to
12598         support only either register or const_int operands as element
12599         selector.
12600         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
12601         operands.
12602         ("vec_extract<mode>"): New expander.
12603         ("*vec_extract<mode>"): New insn definition supporting reg and
12604         const_int element selectors.
12605         ("*vec_extract<mode>_plus"): New insn definition supporting
12606         reg+const_int element selectors.
12607         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
12608         following expander+insn definition.
12609         ("<vec_shifts_name><mode>3"): New expander.
12610         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
12611
12612 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12613
12614         * config/s390/s390.md ("*tabort_1"): Change predicate to
12615         nonmemory_operand.  Add a second alternative to cover
12616         register as well as const int operands.
12617         ("*tabort_1_plus"): New pattern definition.
12618
12619 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12620
12621         * config/s390/s390.md ("*ashrdi3_cc_31")
12622         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
12623         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
12624         Merge insn definitions into ...
12625         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
12626         New pattern definition.
12627         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
12628         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
12629         ("*ashr<mode>3_and"): Merge insn definitions into ...
12630         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
12631         New pattern definition.
12632         * config/s390/subst.md ("addr_style_op_cc_subst")
12633         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
12634         substitutions patterns plus attributes.
12635         Add ashiftrt to SUBST iterator.
12636
12637 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12638
12639         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
12640         op2 to nonmemory_operand.
12641         ("*<shift>di3_31", "*<shift>di3_31_and"):
12642         Merge into single pattern definition ...
12643         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
12644         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
12645         pattern definition ...
12646         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
12647         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
12648         iterator.
12649
12650 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12651
12652         * config/s390/predicates.md (const_int_6bitset_operand): New
12653         predicate.
12654         * config/s390/s390.md: Include subst.md.
12655         ("rotl<mode>3"): New expander.
12656         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
12657         ...
12658         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
12659         * config/s390/subst.md: New file.
12660
12661 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12662
12663         * config/s390/s390.md ("op_type", "atype", "length" attributes):
12664         Remove RRR type.  It doesn't really exist.
12665         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
12666         attributes.
12667         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
12668         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
12669         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
12670         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
12671         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
12672         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
12673         `enabled' attribute.
12674
12675 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12676
12677         * gensupport.c (process_substs_on_one_elem): Split loop to
12678         complete mark_operands_used_in_match_dup on all expressions in the
12679         vector first.
12680         (adjust_operands_numbers): Inline into process_substs_on_one_elem
12681         and remove function.
12682
12683 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
12684
12685         PR target/69706
12686         * config/sparc/sparc.c (NWORDS_UP): Rename to...
12687         (CEIL_NWORDS): ...this.  Use CEIL macro.
12688         (compute_fp_layout): Adjust to above renaming.
12689         (function_arg_union_value): Likewise.
12690         (sparc_arg_partial_bytes): Likewise.
12691         (sparc_function_arg_advance): Likewise.
12692
12693 2016-02-29  Jeff Law  <law@redhat.com>
12694
12695         PR tree-optimization/70005
12696         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
12697         where an object with a boolean range is compared against a value
12698         outside [0..1].
12699
12700         PR tree-optimization/69999
12701         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
12702         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
12703         loop cleanups.
12704
12705 2016-02-29  Richard Biener  <rguenther@suse.de>
12706
12707         PR tree-optimization/69994
12708         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
12709         (get_unary_op): Look through nop conversions.
12710         (ops_equal_values_p): New function, look for equality diregarding
12711         nop conversions.
12712         (eliminate_plus_minus_pair): Use ops_equal_values_p
12713         (repropagate_negates): Do not use get_unary_op here.
12714
12715 2016-02-29  Martin Liska  <mliska@suse.cz>
12716
12717         * system.h: Poison ENABLE_CHECKING macro.
12718
12719 2016-02-29  Martin Liska  <mliska@suse.cz>
12720
12721         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
12722         is presented in dump flags.
12723         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
12724         (hsa_regalloc): Likewise.
12725
12726 2016-02-19  Richard Biener  <rguenther@suse.de>
12727
12728         PR tree-optimization/69980
12729         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
12730         permutation of those we need to keep.
12731
12732 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
12733
12734         PR target/69706
12735         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
12736         (NWORDS_UP): ...this
12737         (init_cumulative_args): Minor tweaks.
12738         (sparc_promote_function_mode): Likewise.
12739         (scan_record_type): Delete.
12740         (traverse_record_type): New function template.
12741         (classify_data_t): New structure type.
12742         (classify_registers): New inline function.
12743         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
12744         exhausted.  Instantiate traverse_record_type on classify_registers and
12745         deal with the case of a structure passed in slot #15 with no FP field
12746         in the first word.
12747         (assign_data_t): New structure type.
12748         (compute_int_layout): New static function.
12749         (compute_fp_layout): Likewise.
12750         (count_registers): New inline function.
12751         (assign_int_registers): New static function.
12752         (assign_fp_registers): Likewise.
12753         (assign_registers): New inline function.
12754         (function_arg_record_value_1): Delete.
12755         (function_arg_record_value_2): Likewise.
12756         (function_arg_record_value_3): Likewise.
12757         (function_arg_record_value): Adjust to above changes.  Instantiate
12758         traverse_record_type on count_registers to first count the number of
12759         registers to be used and then on assign_registers to assign them.
12760         (function_arg_union_value): Adjust to above renaming.
12761         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
12762         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
12763         case of a structure passed in slot #15
12764         (sparc_function_arg_advance): Likewise.
12765         (function_arg_padding): Minor tweak.
12766
12767 2016-02-29  Richard Biener  <rguenther@suse.de>
12768
12769         PR tree-optimization/69720
12770         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
12771         the adjustment_def path for possibly vectorized defs.
12772         (vect_create_epilog_for_reduction): Handle vectorized initial
12773         defs properly.
12774
12775 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
12776
12777         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
12778
12779 2016-02-27  Jeff Law  <law@redhat.com>
12780
12781         Revert
12782         2016-02-26  Richard Biener  <rguenther@suse.de>
12783                     Jeff Law  <law@redhat.com>
12784
12785         PR tree-optimization/69740
12786         * cfghooks.c (remove_edge): Request loop fixups if we delete
12787         an edge that might turn an irreducible loop into a natural
12788         loop.
12789
12790 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
12791
12792         PR rtl-optimization/69896
12793         * tree-vect-generic.c (get_compute_type): Avoid single element
12794         vector types.
12795
12796 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
12797
12798         Rename the AArch64 tuning option and related functions to enable the
12799         Newton series for the reciprocal square root to reflect its
12800         approximative characteristic.
12801
12802         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
12803         function to "aarch64_emit_approx_rsqrt".
12804         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
12805         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
12806         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
12807         (xgene1_tunings): Likewise.
12808         (use_rsqrt_p): Likewise.
12809         (aarch64_emit_swrsqrt): Use new function name.
12810         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
12811         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
12812         text explaining this option.
12813         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
12814
12815 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
12816
12817         PR target/69969
12818         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12819         complain about -mallow-movmisalign without -mvsx if
12820         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
12821
12822 2016-02-26  Joel Sherrill  <joel@rtems.org>
12823
12824         * config.gcc: Add x86_64-*-rtems*.
12825         * config/i386/rtems-64.h: New file.
12826
12827 2016-02-26  Joel Sherrill  <joel@rtems.org>
12828
12829         * config.gcc: Add aarch64-*-rtems*.
12830         * config/aarch64/rtems.h: New file.
12831
12832 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
12833
12834         PR target/69946
12835         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
12836         shift amount using %h.  Add comment.
12837
12838 2016-02-26  Richard Biener  <rguenther@suse.de>
12839             Jeff Law  <law@redhat.com>
12840
12841         PR tree-optimization/69740
12842         * cfghooks.c (remove_edge): Request loop fixups if we delete
12843         an edge that might turn an irreducible loop into a natural
12844         loop.
12845
12846 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12847
12848         PR middle-end/69920
12849         * tree-sra.c (sra_modify_assign): Do not remove loads of
12850         uninitialized aggregates to SSA_NAMEs.
12851
12852 2016-02-26  Richard Henderson  <rth@redhat.com>
12853
12854         PR target/69709
12855         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
12856         pseudo in case the target rtx matches the source of the left
12857         shift.
12858
12859 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12860
12861         PR hsa/69568
12862         * hsa.h (hsa_type_packed_p): Declare.
12863         * hsa.c (hsa_type_packed_p): New function.
12864         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
12865         loads.
12866         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
12867         * hsa-brig.c (emit_basic_insn): Likewise.
12868
12869 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12870
12871         pr hsa/69674
12872         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
12873         pointers.
12874         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
12875
12876 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12877
12878         * hsa.h (is_a_helper): New overload for hsa_op_immed for
12879         hsa_op_with_type operands.
12880         (hsa_unsigned_type_for_type): Declare.
12881         * hsa.c (hsa_unsigned_type_for_type): New function.
12882         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
12883         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
12884         the finalizer.  Do not emit extra move.
12885
12886 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12887
12888         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
12889         atomic operations in private segment.
12890
12891 2016-02-26  Martin Jambor  <mjambor@suse.cz>
12892
12893         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
12894         statements to wi->info.  Also disallow omp simd constructs.
12895         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
12896         for not gridifying.  Dump special string for omp_for.
12897
12898 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12899
12900         PR target/69245
12901         * config/aarch64/aarch64.c (aarch64_set_current_function):
12902         Save/restore target globals when switching to
12903         target_option_default_node.
12904
12905 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12906
12907         PR target/69613
12908         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
12909         Return 0 if !SHIFT_COUNT_TRUNCATED.
12910
12911 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
12912             Eric Botcazou  <ebotcazou@adacore.com>
12913
12914         PR rtl-optimization/69891
12915         * dse.c (scan_insn): If we can't figure out memset arguments
12916         or they are non-constant, call clear_rhs_from_active_local_stores.
12917
12918 2016-02-26  Martin Liska  <mliska@suse.cz>
12919
12920         * doc/extend.texi: Mention clog10, clog10f an clog10l
12921         in Builtins section.
12922
12923 2016-02-26  Martin Liska  <mliska@suse.cz>
12924
12925         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
12926         CHECKING_P.
12927         (resolve_args_picking_1): Likewise.
12928         * dwarf2out.h (struct GTY): Likewise.
12929
12930 2016-02-26  Martin Liska  <mliska@suse.cz>
12931
12932         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
12933         with flag_checking.
12934         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
12935
12936 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
12937             Martin Liska  <mliska@suse.cz>
12938
12939         * doc/install.texi: Mention --enable-valgrind-annotations.
12940
12941 2016-02-26  Richard Biener  <rguenther@suse.de>
12942
12943         PR tree-optimization/69551
12944         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
12945         looking through aliases adjust DECL_PT_UID to refer to the
12946         ultimate alias target.
12947
12948 2016-02-25  Martin Liska  <mliska@suse.cz>
12949
12950         PR middle-end/69919
12951         * alloc-pool.c (after_memory_report): New variable.
12952         * alloc-pool.h (base_pool_allocator ::release): Do not use
12953         the infrastructure if after_memory_report.
12954         * toplev.c (toplev::main): Mark after memory report.
12955
12956 2016-02-25  Richard Biener  <rguenther@suse.de>
12957
12958         PR tree-optimization/48795
12959         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
12960
12961 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
12962
12963         PR driver/68463
12964         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
12965         offloading is enabled and -fopenacc or -fopenmp is specified.
12966         (CRTOFFLOADEND): Likewise.
12967         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
12968         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
12969         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
12970         (offload_objects_file_name): New static var.
12971         (tool_cleanup): Remove offload_objects_file_name file.
12972         (find_offloadbeginend): Replace with ...
12973         (find_crtoffloadtable): ... this.
12974         (run_gcc): Remove offload_argc and offload_argv.
12975         Get offload_objects_file_name from -foffload-objects=... option.
12976         Read names of object files with offload from this file, pass them to
12977         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
12978         don't pass offloadbegin and offloadend to the linker.  Don't pass
12979         offload non-LTO files to the linker, because now they're not claimed.
12980
12981 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
12982
12983         PR ipa/69630
12984         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
12985         on builtin_unreachable.
12986
12987 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
12988
12989         PR rtl-optimization/69896
12990         * regcprop.c: Include cfgrtl.h.
12991         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
12992         than remembered mode, either delete it (if noop_move_p), or
12993         treat like copy_p but not noop_p instruction.
12994
12995 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
12996
12997         PR debug/69705
12998         * dwarf2out.c (gen_variable_die): Work around buggy LTO
12999         - allow NULL decl for Fortran DW_TAG_common_block variables.
13000
13001 2016-02-24  Jason Merrill  <jason@redhat.com>
13002
13003         * common.opt (flifetime-dse): Add -flifetime-dse=1.
13004
13005 2016-02-24  Richard Biener  <rguenther@suse.de>
13006             Jakub Jelinek  <jakub@redhat.com>
13007
13008         PR middle-end/69760
13009         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
13010         conditionally executed ops to well-defined overflow behavior.
13011
13012 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
13013
13014         PR middle-end/69915
13015         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
13016         elements.
13017
13018 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13019
13020         PR rtl-optimization/69886
13021         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
13022         argument.  Use it when checking validity of set instructions.
13023         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
13024         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
13025         callsite.
13026         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
13027         * store-motion.c (find_moveable_store): Update
13028         can_assign_to_reg_without_clobbers_p callsite.
13029
13030 2016-02-24  Richard Biener  <rguenther@suse.de>
13031
13032         PR middle-end/68963
13033         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
13034         bogus check.
13035         (record_nonwrapping_iv): Do not fall back to the low/high bound
13036         for non-constant IV bases if the stmt is not always executed.
13037
13038 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13039
13040         * config/arm/arm-cores.def (cortex-a32): New entry.
13041         * config/arm/arm-tables.opt: Regenerate.
13042         * config/arm/arm-tune.md: Regenerate.
13043         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
13044         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
13045         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
13046         for -mcpu and -mtune.
13047
13048 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13049
13050         PR target/69875
13051         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
13052         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
13053         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
13054         (atomic_loaddi_1): Delete.
13055         (atomic_loaddi): Rewrite expander using the above changes.
13056
13057 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
13058
13059         PR c/69918
13060         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
13061         2 to 3.
13062
13063 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
13064             Richard Biener  <rguenth@suse.de>
13065
13066         PR middle-end/69909
13067         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
13068         set_mem_attributes if tem is SSA_NAME which got expanded
13069         as a MEM.
13070
13071 2016-02-24  Richard Biener  <rguenther@suse.de>
13072
13073         PR tree-optimization/69907
13074         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
13075         end of permutations for BB vectorization.
13076
13077 2016-02-24  Christian Bruel  <christian.bruel@st.com>
13078
13079         * config/arm/arm-c.c (arm_option_override): Initialize
13080         target_option_current_node.
13081         * config/arm/arm.c (arm_pragma_target_parse): Replace
13082         build_target_option_node call by target_option_current_node.
13083         Set target_option_current_node.
13084         Fix comments.
13085
13086 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
13087
13088         PR target/69810
13089         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
13090         define_insn_and_split to define_insn.
13091         (zero_extendqi<mode>2_dot2): Same.
13092         (extendqi<mode>2_dot): Same.
13093         (extendqi<mode>2_dot2): Same.
13094
13095 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
13096
13097         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
13098         and add bypass for AES{D,E} and AESMC pairs.
13099         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
13100         and AESMC pairs.
13101
13102 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
13103
13104         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
13105         series for reciprocal square root in Exynos M1.
13106
13107 2016-02-23  Martin Sebor  <msebor@redhat.com>
13108
13109         PR c/69759
13110         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
13111         __builtin_alloca_with_align.
13112
13113 2016-02-23  Richard Henderson  <rth@redhat.com>
13114
13115         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
13116         (ix86_register_pragmas): Remove __seg_tls.
13117         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
13118         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
13119         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
13120         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
13121         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
13122         * doc/extend.texi (__seg_tls): Remove item.
13123
13124 2016-02-23  Richard Biener  <rguenther@suse.de>
13125
13126         * alloc-pool.h (struct allocation_object): Make id member
13127         conditional on CHECKING_P again.
13128         (get_instance): Adjust.
13129         (base_pool_allocator): Likewise.
13130
13131 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
13132
13133         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
13134         (parallelize_loops): In OpenACC kernels mode, set n_threads to
13135         zero.
13136         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
13137         flag_openacc.
13138         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
13139
13140 2016-02-23  Richard Biener  <rguenther@suse.de>
13141
13142         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
13143         * bitmap.h (struct bitmap_usage): Likewise.
13144         (bitmap_move): Declare.
13145         * bitmap.c (register_overhead): Take size_t argument.
13146         (bitmap_move): New function.
13147         * df-problems.c (df_rd_transfer_function): Use bitmap_move
13148         to properly account overhead.
13149         * tree.c (free_node): Use tree_size.
13150
13151 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
13152
13153         PR c++/69902
13154         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
13155         when inverting comparison.
13156
13157         PR c/69900
13158         * common.opt (Wunreachable-code): Add Warning flag.
13159
13160 2016-02-23  Mark Wielaard  <mjw@redhat.com>
13161             Jakub Jelinek  <jakub@redhat.com>
13162
13163         PR c/69911
13164         * cgraphunit.c (check_global_declaration): Check main_input_filename
13165         and DECL_SOURCE_FILE are not NULL.
13166
13167 2016-02-23  Martin Jambor  <mjambor@suse.cz>
13168
13169         PR tree-optimization/69666
13170         * tree-sra.c (sra_modify_assign): Do not attempt to create
13171         default_def replacements for unscalarizable regions.
13172
13173 2016-02-20  Mark Wielaard  <mjw@redhat.com>
13174
13175         PR c/28901
13176         * cgraphunit.c (check_global_declaration): Check level of
13177         warn_unused_const_variable and main_input_filename.
13178         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
13179         (-Wunused-variable): For C implies -Wunused-const-variable=1.
13180         (-Wunused-const-variable): Explain levels 1 and 2.
13181
13182 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
13183
13184         PR target/69888
13185         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
13186         identical arguments.  Formatting and spelling fixes.
13187
13188         PR target/69885
13189         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
13190         be specified.
13191
13192         PR target/69894
13193         PR target/69895
13194         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
13195         and m68k-devices.def.
13196         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
13197         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
13198
13199 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
13200
13201         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
13202         and HImode registers.
13203
13204 2016-02-22  Richard Biener  <rguenther@suse.de>
13205
13206         PR tree-optimization/69882
13207         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
13208         preserve permutations present because of gaps.
13209         (vect_supported_load_permutation_p): Always continue checking
13210         permutations after vect_attempt_slp_rearrange_stmts.
13211
13212 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
13213
13214         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
13215         min_profitable_estimate, rather than min_profitable_iters.
13216
13217 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
13218
13219         PR target/69885
13220         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
13221         SImode for last match_operand.
13222
13223 2016-02-22  Martin Liska  <mliska@suse.cz>
13224
13225         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
13226         return bitsize - 1 as the return value.
13227
13228 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
13229
13230         PR target/69806
13231         PR target/54089
13232         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
13233         Handle negative shift counts.
13234         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
13235         force_reg on the shift constant.
13236         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
13237         (lshrsi3_d): Handle negative shift counts.
13238
13239 2016-02-22  Richard Biener  <rguenther@suse.de>
13240             Tom de Vries  <tom@codesourcery.com>
13241
13242         * graph.c: Include dumpfile.h.
13243         (print_graph_cfg): Split into three overloads.
13244         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
13245
13246 2016-02-22  Tom de Vries  <tom@codesourcery.com>
13247
13248         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
13249         dump-fn.
13250
13251 2016-02-22  Richard Biener  <rguenther@suse.de>
13252
13253         PR ipa/37448
13254         * ipa-inline-transform.c (inline_call): When not updating
13255         overall summaries adjust self size by the growth estimate.
13256         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
13257         hash-set, do not update overall summaries here.  Renamed from ...
13258         (inline_to_all_callers): ... this which is now wrapping the
13259         above and performing delayed overall summary update.
13260         (early_inline_small_functions): Delay updating of the overall
13261         summary.
13262
13263 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
13264
13265         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
13266         variable.
13267
13268 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
13269
13270         PR driver/69805
13271         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
13272         :%* in %:gt() argument.
13273         (greater_than_spec_func): Adjust for expecting only numbers,
13274         if there are more than two numbers, compare the last two.
13275
13276 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
13277
13278         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
13279         -Wnarrowing with -std.
13280
13281 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
13282
13283         PR c++/69851
13284         * expr.c (store_field): Don't use bit-field path if exp is
13285         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
13286         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
13287         and the assignment can be performed by bitwise copy.  Formatting
13288         fix.
13289
13290         PR middle-end/69838
13291         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
13292         call copy_reg_eh_region_note_forward on before and/or after sequences
13293         and remove note from insn if it no longer can throw.
13294
13295         PR target/69820
13296         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
13297         if TARGET_AVX512BW.
13298
13299 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13300
13301         * config/s390/vector.md: Add missing commutative operand markers
13302         to the patterns which qualify for one.
13303         * config/s390/vx-builtins.md: Likewise.
13304
13305 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13306
13307         * config/s390/vector.md (VI, VI_QHS): Add single element vector
13308         types to mode iterators.
13309         (vec_double): ... and mode attribute.
13310         * config/s390/vx-builtins.md (non_vec_int): Likewise.
13311
13312 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13313
13314         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
13315         Change the predicate of op2 from nonimmediate to general and let
13316         reload fix it if necessary.
13317
13318 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13319
13320         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
13321
13322 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13323
13324         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
13325         mode.
13326
13327 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13328
13329         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
13330         * config/s390/s390.c (s390_expand_vec_movstr): New function.
13331         * config/s390/s390.md ("movstr<P:mode>"): Call
13332         s390_expand_vec_movstr.
13333
13334 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13335
13336         * config/s390/s390.md: Add missing output modifier for operand 1
13337         to print it as address properly.
13338
13339 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13340
13341         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
13342         * config/s390/2964.md: New file.
13343         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
13344         of insn grouping attributes depending on the CPU level.
13345         (s390_get_unit_mask): New function.
13346         (s390_sched_score): Remove the OOO from the scheduling macros.
13347         Add loop to calculate a score for the instruction mix.
13348         (s390_sched_reorder): Likewise plus improve debug output.
13349         (s390_sched_variable_issue): Rename macros as above.  Calculate
13350         the unit distances after actually scheduling an insn.  Improve
13351         debug output.
13352         (s390_sched_init): Clear last_scheduled_unit_distance array.
13353         * config/s390/s390.md: Include 2964.md.
13354
13355 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
13356
13357         PR target/69671
13358         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
13359         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
13360         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
13361         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
13362         *avx512f_<code>v8div16qi2_mask_1): New insns.
13363
13364 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
13365
13366         PR target/68404
13367         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
13368         2016-02-09 change.
13369
13370         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
13371         earlyclobber from target.  Use wF constraint for fused memory
13372         address.
13373         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
13374
13375 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
13376             Martin Liska  <mliska@suse.cz>
13377
13378         PR sanitizer/69863
13379         * cfgexpand.c (asan_sanitize_stack_p): New function.
13380         (partition_stack_vars): Use the function.
13381         (expand_stack_vars): Likewise.
13382         (defer_stack_allocation): Likewise.
13383         (expand_used_vars): Likewise.
13384
13385 2016-02-18  Richard Biener  <rguenther@suse.de>
13386
13387         PR middle-end/69553
13388         * fold-const.c (operand_equal_p): Properly compare offsets for
13389         IMAGPART_EXPR and ARRAY_REF.
13390
13391 2016-02-18  Nick Clifton  <nickc@redhat.com>
13392
13393         PR target/62254
13394         PR target/69610
13395         * config/arm/arm.c (arm_option_override_internal): Disable
13396         interworking if the target does not support thumb instructions.
13397         (arm_reload_in_hi): Handle the case where a register to register
13398         move needs reloading because there is no simple pattern to handle
13399         it.
13400         (arm_reload_out_hi): Likewise.
13401
13402 2016-02-18  Richard Biener  <rguenther@suse.de>
13403
13404         PR middle-end/69854
13405         * match.pd: Don't use fold_binary or fold_unary for folding
13406         constants.
13407
13408 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
13409
13410         PR c++/69850
13411         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
13412         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
13413         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
13414         warn on gimple_no_warning_p statements.
13415
13416 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
13417
13418         * doc/extend.texi (C++ Attributes): Correct description of
13419         warn_unused type attribute.
13420
13421 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13422
13423         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
13424         correct instruction.
13425
13426 2016-02-17  Richard Biener  <rguenther@suse.de>
13427
13428         PR rtl-optimization/69609
13429         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
13430         (find_traces_1_round): When ending a trace update cached priority
13431         of successors.
13432         (bb_to_key): Use cached priority when available.
13433         (copy_bb): Initialize cached priority.
13434         (reorder_basic_blocks_software_trace_cache): Likewise.
13435
13436 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13437
13438         PR target/69161
13439         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
13440         New predicate.
13441         (aarch64_comparison_operator): Break overly long line into two.
13442         (aarch64_comparison_operation): Likewise.
13443         * config/aarch64/aarch64.md (cstorecc4): Use
13444         aarch64_comparison_operator_mode instead of
13445         aarch64_comparison_operator.
13446         (cstore<mode>4): Likewise.
13447         (aarch64_cstore<mode>): Likewise.
13448         (*cstoresi_insn_uxtw): Likewise.
13449         (cstore<mode>_neg): Likewise.
13450         (*cstoresi_neg_uxtw): Likewise.
13451
13452 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13453
13454         PR target/69161
13455         * config/arm/predicates.md (arm_comparison_operator_mode):
13456         New predicate.
13457         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
13458         instead of arm_comparison_operator.
13459         (*mov_negscc): Likewise.
13460         (*mov_notscc): Likewise.
13461         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
13462         (*thumb2_mov_negscc): Likewise.
13463         (*thumb2_mov_negscc_strict_it): Likewise.
13464         (*thumb2_mov_notscc): Likewise.
13465         (*thumb2_mov_notscc_strict_it): Likewise.
13466
13467 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
13468
13469         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
13470         Add missing return.
13471
13472 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
13473
13474         * config/visium/visium.c (machine_libfunc_index): New enum.
13475         (machine_libfuncs): New structure.
13476         (visium_libfuncs): New static variable.
13477         (TARGET_INIT_LIBFUNCS): Define to...
13478         (visium_init_libfuncs): ...this.  New function.
13479         (expand_block_move_4): Use the appropriate libfunc.
13480         (expand_block_move_2): Likewise.
13481         (expand_block_move_1): Likewise.
13482         (expand_block_set_4): Likewise.
13483         (expand_block_set_2): Likewise.
13484         (expand_block_set_1): Likewise.
13485         (visium_trampoline_init): Likewise.
13486
13487 2016-02-17  Nick Clifton  <nickc@redhat.com>
13488
13489         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
13490         TI's devices.csv file as of March 2016.
13491
13492 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13493
13494         PR Target/48344
13495         * opts-global.c (handle_common_deferred_options): Introduce and
13496         initialize two global variables to remember command-line options
13497         specifying a stack-limiting register.
13498         * opts.h: Add extern declarations of the two new global variables.
13499         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
13500         variable based on the values of the two new global variables.
13501
13502 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13503
13504         PR c/69835
13505         * common.opt (Wnonnull-compare): New warning.
13506         * doc/invoke.texi (-Wnonnull): Remove text about comparison
13507         of arguments against NULL.
13508         (-Wnonnull-compare): Document.
13509         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
13510         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
13511         * passes.def (pass_warn_nonnull_compare): Add.
13512         * gimple-ssa-nonnull-compare.c: New file.
13513
13514 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13515
13516         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
13517         AARCH64_EXTRA_TUNE_RECIP_SQRT.
13518
13519 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13520
13521         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
13522         reciprocal sqrt for -mlow-precision-recip-sqrt.
13523
13524 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13525             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13526
13527         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
13528         always use lane loads to construct non-constant vectors.
13529
13530 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13531
13532         * config/aarch64/aarch64.md
13533         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
13534         constraints for operand 3.
13535         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
13536
13537 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13538             Richard Biener  <rguenther@suse.de>
13539
13540         PR tree-optimization/69820
13541         * tree-vect-patterns.c (type_conversion_p): Return false if
13542         *orig_type is unsigned single precision or boolean.
13543         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
13544         Formatting fix.
13545
13546 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13547
13548         PR rtl-optimization/69764
13549         PR rtl-optimization/69771
13550         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
13551         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
13552
13553 2016-02-16  Richard Biener  <rguenther@suse.de>
13554
13555         PR tree-optimization/69776
13556         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
13557         sets from caller.
13558         (indirect_refs_may_alias_p): Likewise.
13559         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
13560         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
13561         according to tbaa_p.
13562         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
13563         (optimize_stmt): For redundant store discovery do not allow tbaa.
13564
13565 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
13566
13567         PR tree-optimization/69714
13568         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
13569         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
13570
13571 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
13572
13573         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
13574         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
13575         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
13576         * config/arc/arc.c (arc_init): Check FPU options.
13577         (get_arc_condition_code): Handle new CC_FPU* modes.
13578         (arc_select_cc_mode): Likewise.
13579         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
13580         register pair only. Allow access for ARCv2 accumulator.
13581         (gen_compare_reg): Whenever we have FPU support use FPU compare
13582         instructions.
13583         (arc_reorg): Don't generate brcc insns when FPU compare
13584         instructions are involved.
13585         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
13586         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
13587         floating point emulation.
13588         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
13589         (REVERSE_CONDITION): Add new CC_FPU* modes.
13590         (TARGET_FP_SP_BASE): Define.
13591         (TARGET_FP_DP_BASE): Likewise.
13592         (TARGET_FP_SP_FUSED): Likewise.
13593         (TARGET_FP_DP_FUSED): Likewise.
13594         (TARGET_FP_SP_CONV): Likewise.
13595         (TARGET_FP_DP_CONV): Likewise.
13596         (TARGET_FP_SP_SQRT): Likewise.
13597         (TARGET_FP_DP_SQRT): Likewise.
13598         (TARGET_FP_DP_AX): Likewise.
13599         * config/arc/arc.md (ARCV2_ACC): New constant.
13600         (type): New fpu type attribute.
13601         (SDF): Conditional iterator.
13602         (cstore<mode>, cbranch<mode>): Change expand condition.
13603         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
13604         handles FPU/FPX cases as well.
13605         * config/arc/arc.opt (mfpu): New option.
13606         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
13607         Renamed.
13608         (adddf3, muldf3, subdf3): Removed.
13609         * config/arc/predicates.md (proper_comparison_operator): Recognize
13610         CC_FPU* modes.
13611         * config/arc/fpu.md: New file.
13612         * doc/invoke.texi (ARC Options): Document mfpu option.
13613
13614 2016-02-16  Richard Biener  <rguenther@suse.de>
13615
13616         PR rtl-optimization/69291
13617         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
13618         noce_operand_ok check.
13619
13620 2016-02-16  Tom de Vries  <tom@codesourcery.com>
13621
13622         PR lto/67709
13623         * omp-low.c (simd_clone_create): Remove call to
13624         symtab->call_cgraph_insertion_hooks.
13625
13626 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13627
13628         PR tree-optimization/69802
13629         * tree-ssa-reassoc.c (update_range_test): If op is
13630         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
13631         op == 1 test of precision 1 integral op, otherwise handle
13632         that case as op itself.  Fix up formatting.
13633         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
13634         up formatting.
13635
13636 2016-02-16  Richard Biener  <rguenther@suse.de>
13637
13638         PR tree-optimization/69586
13639         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
13640         types for conversion sources.
13641
13642 2016-02-16  Richard Biener  <rguenther@suse.de>
13643
13644         PR middle-end/69801
13645         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
13646         mask OEP_ADDRESS_OF.
13647
13648 2016-02-16  Alan Modra  <amodra@gmail.com>
13649
13650         PR target/68973
13651         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
13652         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
13653         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
13654         (p8_mtvsrwz): New.
13655         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
13656         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
13657         (p8_fmrgow_<mode>): Likewise.
13658         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
13659         changes.
13660         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
13661         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
13662         to use movdi_internal64.  Remove op0_di.
13663         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
13664
13665 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
13666
13667         Add support for the FCCMP insn types
13668
13669         * config/aarch64/aarch64.md (fccmp): Change insn type.
13670         (fccmpe): Likewise.
13671         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
13672         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
13673         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
13674         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
13675         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
13676         * config/arm/types.md (fccmps): Add new insn type.
13677         (fccmpd): Likewise.
13678
13679 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13680
13681         * alias.c (get_alias_set): Fix a typo in comment.
13682
13683 2016-02-15  Richard Biener  <rguenther@suse.de>
13684
13685         PR tree-optimization/69595
13686         * match.pd: Complete range test simplification to true.
13687
13688 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
13689
13690         PR rtl-optimization/69648
13691         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
13692         pic_offset_table_rtx.
13693
13694         PR rtl-optimization/69752
13695         * ira.c (update_equiv_regs): When looking for more than a single SET,
13696         also take other side effects into account.
13697
13698 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
13699
13700         * config/s390/s390.c (s390_function_profiler): Add a new sequence
13701         for z900+ CPUs in 31-bit mode.
13702
13703 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
13704
13705         * common/config/s390/s390-common.c (s390_supports_split_stack):
13706         New function.
13707         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
13708         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
13709         * config/s390/s390.c (struct machine_function): New field
13710         split_stack_varargs_pointer.
13711         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
13712         in s390_emit_prologue.
13713         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
13714         vararg pointer.
13715         (morestack_ref): New global.
13716         (SPLIT_STACK_AVAILABLE): New macro.
13717         (s390_expand_split_stack_prologue): New function.
13718         (s390_live_on_entry): New function.
13719         (s390_va_start): Use split-stack vararg pointer if appropriate.
13720         (s390_asm_file_end): Emit the split-stack note sections.
13721         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
13722         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
13723         (UNSPECV_SPLIT_STACK_CALL): New unspec.
13724         (UNSPECV_SPLIT_STACK_DATA): New unspec.
13725         (split_stack_prologue): New expand.
13726         (split_stack_space_check): New expand.
13727         (split_stack_data): New insn.
13728         (split_stack_call): New expand.
13729         (split_stack_call_*): New insn.
13730         (split_stack_cond_call): New expand.
13731         (split_stack_cond_call_*): New insn.
13732
13733 2016-02-15  Richard Biener  <rguenther@suse.de>
13734
13735         PR tree-optimization/69783
13736         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13737         Add trivially correct cases.
13738
13739 2016-02-15  Tom de Vries  <tom@codesourcery.com>
13740
13741         PR lto/69655
13742         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
13743         do_force_output.
13744         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
13745
13746 2016-02-15  Richard Biener  <rguenther@suse.de>
13747
13748         PR tree-optimization/69776
13749         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
13750         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
13751         indicate whether we can use TBAA to disambiguate against stores.
13752         Use alias-set zero if not.
13753         (visit_reference_op_store): Do not use TBAA when looking up
13754         redundant stores.
13755         * tree-ssa-pre.c (compute_avail): Use TBAA here.
13756         (eliminate_dom_walker::before_dom_children): But not when looking
13757         up redundant stores.
13758
13759 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
13760
13761         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
13762
13763 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
13764
13765         *  config/i386/znver1.md
13766         (znver1_pop, znver1_pop_mem,
13767         znver1_load_imov_double_store,
13768         znver1_load_imov_direct_store,
13769         znver1_load_imov_direct_load,
13770         znver1_load_imov_double_load): Add new.
13771         (znver1_insn, znver1_insn_load): Add icmov type.
13772         (znver1_sseavx_fma,
13773         znver1_sseavx_fma_load,
13774         znver1_avx256_fma,
13775         znver1_avx256_fma_load): Fix pipe usage.
13776
13777 2016-02-14  Alan Modra  <amodra@gmail.com>
13778
13779         PR target/68973
13780         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
13781         with an invalid hard reg, reload just the reg not the entire
13782         pre/post-inc/dec address expression.
13783
13784 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
13785
13786         PR target/67260
13787         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
13788         fixed R1_REG scratch reg.
13789         (sibcall_value_pcrel_fdpic): Likewise.
13790
13791 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
13792
13793         PR target/67636
13794         PR target/64345
13795         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
13796
13797 2016-02-12  Walter Lee  <walt@tilera.com>
13798
13799         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
13800         * config/tilegx/t-tilegx: Likewise.
13801
13802 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13803
13804         PR other/69554
13805         * diagnostic-show-locus.c (struct line_span): New struct.
13806         (layout::get_first_line): Delete.
13807         (layout::get_last_line): Delete.
13808         (layout::get_num_line_spans): New member function.
13809         (layout::get_line_span): Likewise.
13810         (layout::print_heading_for_line_span_index_p): Likewise.
13811         (layout::get_expanded_location): Likewise.
13812         (layout::calculate_line_spans): Likewise.
13813         (layout::m_first_line): Delete.
13814         (layout::m_last_line): Delete.
13815         (layout::m_line_spans): New field.
13816         (layout::layout): Update comment.  Replace m_first_line and
13817         m_last_line with m_line_spans, replacing their initialization
13818         with a call to calculate_line_spans.
13819         (diagnostic_show_locus): When printing source lines and
13820         annotations, rather than looping over a single span
13821         of lines, instead loop over each line_span within
13822         the layout, with an inner loop over the lines within them.
13823         Call the context's start_span callback when changing line spans.
13824         * diagnostic.c (diagnostic_initialize): Initialize start_span.
13825         (diagnostic_build_prefix): Break out the building of the location
13826         part of the string into...
13827         (diagnostic_get_location_text): ...this new function, rewriting
13828         it from nested ternary expressions to a sequence of "if"
13829         statements.
13830         (default_diagnostic_start_span_fn): New function.
13831         * diagnostic.h (diagnostic_start_span_fn): New typedef.
13832         (diagnostic_context::start_span): New field.
13833         (default_diagnostic_start_span_fn): New prototype.
13834
13835 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13836
13837         PR driver/69779
13838         * gcc.c (driver::finalize): Fix cleanup of "specs".
13839
13840 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13841
13842         PR driver/69265
13843         PR driver/69453
13844         * gcc.c (driver::driver): Initialize m_option_suggestions.
13845         (driver::~driver): Clean up m_option_suggestions.
13846         (suggest_option): Convert to...
13847         (driver::suggest_option): ...this, and split out into
13848         driver::build_option_suggestions and find_closest_string.
13849         (driver::build_option_suggestions): New function, from
13850         first half of suggest_option.  Special-case
13851         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
13852         the sanitizer_opts array.  For options of enum types, add the
13853         various enum values to the candidate strings.
13854         (driver::handle_unrecognized_options): Remove "const".
13855         * gcc.h (driver::handle_unrecognized_options): Likewise.
13856         (driver::build_option_suggestions): New decl.
13857         (driver::suggest_option): New decl.
13858         (driver::m_option_suggestions): New field.
13859         * opts-common.c (add_misspelling_candidates): New function.
13860         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
13861         and make non-static.
13862         * opts.h (sanitizer_opts): New array decl.
13863         (add_misspelling_candidates): New function decl.
13864         * spellcheck.c (find_closest_string): New function.
13865         * spellcheck.h (find_closest_string): New function decl.
13866
13867 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13868
13869         PR rtl-optimization/69764
13870         PR rtl-optimization/69771
13871         * optabs.c (expand_binop_directly): For shift_optab_p, force
13872         convert_modes with VOIDmode if xop1 has VOIDmode.
13873
13874 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
13875
13876         PR target/69729
13877         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
13878         to correctly determine instrumentation thunks.
13879
13880 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13881
13882         PR ipa/69241
13883         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
13884         type by reference, force lhs on the call.
13885
13886         PR ipa/68672
13887         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
13888         Compute retval and retbnd early in all cases if split_part_return_p
13889         and return_bb is not EXIT.  Remove all clobber stmts and reset
13890         all debug stmts that refer to SSA_NAMEs defined in split part,
13891         except if it is retval, in that case replace the old retval with the
13892         lhs of the call to the split part.
13893
13894 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13895
13896         revert:
13897         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13898
13899         PR middle-end/66726
13900         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
13901         whose result is used in PHI.
13902         (maybe_optimize_range_tests): Likewise.
13903         (final_range_test_p): Likweise.
13904
13905 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13906
13907         PR middle-end/66726
13908         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
13909         whose result is used in PHI.
13910         (maybe_optimize_range_tests): Likewise.
13911         (final_range_test_p): Likweise.
13912
13913 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
13914
13915         * cgraph.c: Spelling fixes - behaviour -> behavior and
13916         neighbour -> neighbor.
13917         * target.def: Likewise.
13918         * sel-sched.c: Likewise.
13919         * config/mips/mips.c: Likewise.
13920         * config/arc/arc.md: Likewise.
13921         * config/arm/cortex-a57.md: Likewise.
13922         * config/arm/arm.c: Likewise.
13923         * config/arm/neon.md: Likewise.
13924         * config/arm/arm-c.c: Likewise.
13925         * config/vms/vms-c.c: Likewise.
13926         * config/s390/s390.c: Likewise.
13927         * config/i386/znver1.md: Likewise.
13928         * config/i386/i386.c: Likewise.
13929         * config/ia64/hpux-unix2003.h: Likewise.
13930         * config/msp430/msp430.md: Likewise.
13931         * config/rx/rx.c: Likewise.
13932         * config/rx/rx.md: Likewise.
13933         * config/aarch64/aarch64-simd.md: Likewise.
13934         * config/aarch64/aarch64.c: Likewise.
13935         * config/nvptx/nvptx.c: Likewise.
13936         * config/bfin/bfin.c: Likewise.
13937         * config/cris/cris.opt: Likewise.
13938         * config/rs6000/rs6000.c: Likewise.
13939         * target.h: Likewise.
13940         * spellcheck.c: Likewise.
13941         * ira-build.c: Likewise.
13942         * tree-inline.c: Likewise.
13943         * builtins.c: Likewise.
13944         * lra-constraints.c: Likewise.
13945         * explow.c: Likewise.
13946         * hwint.h: Likewise.
13947         * targhooks.c: Likewise.
13948         * tree-vect-data-refs.c: Likewise.
13949         * expr.c: Likewise.
13950         * doc/tm.texi: Likewise.
13951         * doc/extend.texi: Likewise.
13952         * doc/install.texi: Likewise.
13953         * doc/md.texi: Likewise.
13954         * tree-ssa-tail-merge.c: Likewise.
13955         * sched-int.h: Likewise.
13956         * match.pd: Likewise.
13957         * sched-ebb.c: Likewise.
13958         * target.def (omit_struct_return_reg): Likewise.
13959         * gimple-ssa-isolate-paths.c: Likewise.
13960         (find_implicit_erroneous_behaviour): Renamed to...
13961         (find_implicit_erroneous_behavior): ... this.
13962         (find_explicit_erroneous_behaviour): Renamed to...
13963         (find_explicit_erroneous_behavior): ... this.
13964         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
13965
13966 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
13967
13968         PR rtl-optimization/64682
13969         PR rtl-optimization/69567
13970         PR rtl-optimization/69737
13971         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
13972         in I2 as well, just lose it.
13973
13974 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13975
13976         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
13977         New variable.
13978         (aarch64_last_printed_tune_string): Likewise.
13979         (aarch64_declare_function_name): Only output .arch assembler
13980         directive if it will be different from the previously output
13981         directive.  Same for .tune comment but only if -dA is set.
13982         (aarch64_start_file): New function.
13983         (TARGET_ASM_FILE_START): Define.
13984
13985 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
13986
13987         PR plugins/69758
13988         * Makefile.in (PLUGIN_HEADERS): Add params.list.
13989
13990 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
13991
13992         PR target/65313
13993         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
13994         -Wmaybe-uninitialized warning.
13995
13996 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
13997
13998         PR target/69713
13999         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
14000
14001 2016-02-11  Richard Biener  <rguenther@suse.de>
14002
14003         PR rtl-optimization/69291
14004         * ifcvt.c (noce_try_store_flag_constants): Do not allow
14005         subexpressions affected by changing the result.
14006
14007 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
14008
14009         PR target/69148
14010         * lra-constraints.c (curr_insn_transform): Find in/out operands
14011         for secondary memory moves.  Update dups.
14012
14013 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
14014
14015         PR tree-optimization/69652
14016         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
14017         to nested loop, did source re-formatting, skip debug statements,
14018         add check on statement with volatile operand, remove dead scalar
14019         statements.
14020
14021 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
14022             Patrick Palka  <ppalka@gcc.gnu.org>
14023
14024         PR ipa/69241
14025         PR c++/69649
14026         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
14027         calls if the return type is TREE_ADDRESSABLE.
14028         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
14029         * ipa-split.c (split_function): Fix doubled "we" in comment.
14030         Use void return type for the split part even if
14031         !split_point->split_part_set_retval.
14032
14033 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
14034
14035         PR tree-optimization/68021
14036         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
14037         when computing the value of biv cand by itself.
14038
14039 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
14040
14041         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
14042         (cortexa57_tunings): Likewise.
14043         (cortexa72_tunings): Likewise.
14044         (arch_macro_fusion_pair_p): Add support for AES fusion.
14045         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
14046         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
14047         Allow virtual registers before reload so early scheduling works.
14048         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
14049         correct latency and pipeline.
14050         (cortex_a57_crypto_complex): Likewise.
14051         (cortex_a57_crypto_xor): Likewise.
14052         (define_bypass): Add AES bypass.
14053
14054 2016-02-10  Richard Biener  <rguenther@suse.de>
14055
14056         PR tree-optimization/69726
14057         * passes.def: Add DCE pass before late uninit.
14058         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
14059         really fixup if-conversions job.
14060
14061 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
14062
14063         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
14064         (arm_cortex_a57_tune): Likewise.
14065         (aarch_macro_fusion_pair_p): Add support for AES fusion.
14066         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
14067
14068 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
14069
14070         * timevar.def (TV_PHASE_DBGINFO): Delete.
14071         (TV_PHASE_CHECK_DBGINFO): Likewise.
14072         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
14073
14074 2016-02-10  Richard Biener  <rguenther@suse.de>
14075
14076         PR tree-optimization/69719
14077         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14078         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
14079
14080 2016-02-09  Andrew Pinski  <apinski@cavium.com>
14081
14082         PR tree-opt/69282
14083         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
14084         get_vcond_mask_icode returns false.
14085
14086 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
14087
14088         PR target/68404
14089         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
14090         an ADDIS that adds a pointer to a large constant that sets the
14091         upper16 bits with a load operation.
14092
14093 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
14094
14095         PR target/68532
14096         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
14097         order.
14098         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
14099         endian.
14100         (vzipq_s16): Likewise.
14101         (vzipq_s32): Likewise.
14102         (vzipq_f32): Likewise.
14103         (vzipq_u8): Likewise.
14104         (vzipq_u16): Likewise.
14105         (vzipq_u32): Likewise.
14106         (vzipq_p8): Likewise.
14107         (vzipq_p16): Likewise.
14108
14109 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
14110
14111         PR target/68532
14112         * config/arm/arm.c (neon_endian_lane_map): New function.
14113         (neon_vector_pair_endian_lane_map): New function.
14114         (arm_evpc_neon_vuzp): Allow for big endian lane order.
14115         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
14116         endian.
14117         (vuzpq_s16): Likewise.
14118         (vuzpq_s32): Likewise.
14119         (vuzpq_f32): Likewise.
14120         (vuzpq_u8): Likewise.
14121         (vuzpq_u16): Likewise.
14122         (vuzpq_u32): Likewise.
14123         (vuzpq_p8): Likewise.
14124         (vuzpq_p16): Likewise.
14125
14126 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
14127
14128         PR target/69634
14129         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
14130         debug insns.
14131
14132 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
14133
14134         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
14135         truncate const_int operand 1 to QImode.
14136
14137 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
14138
14139         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
14140         corresponding to an abnormal edge.
14141
14142 2016-02-09  Tom de Vries  <tom@codesourcery.com>
14143
14144         PR tree-optimization/69599
14145         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
14146         function.
14147         (find_func_aliases_for_builtin_call, find_func_clobbers)
14148         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
14149         partition.
14150
14151 2016-02-09  Richard Biener  <rguenther@suse.de>
14152
14153         PR tree-optimization/69715
14154         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
14155         LHS on calls as non-rewritable.
14156
14157 2016-02-09  Tom de Vries  <tom@codesourcery.com>
14158
14159         PR lto/69707
14160         * lto-wrapper.c (append_diag_options): New function.
14161         (compile_offload_image): Call append_diag_options.
14162
14163 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
14164
14165         PR other/69722
14166         * doc/extend.texi (Flag Output Operands): Correct sectioning.
14167         Minor copy-edit to fix verb tenses.
14168
14169 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
14170
14171         PR tree-optimization/69209
14172         * ipa-split.c (split_function): If split part is not
14173         returning retval, retval has gimple type but is not
14174         gimple value, force it into a SSA_NAME first.
14175
14176 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
14177
14178         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
14179         outdated section.
14180
14181 2016-02-08  Jason Merrill  <jason@redhat.com>
14182
14183         PR c++/69631
14184         * convert.c (convert_to_integer_1): Check dofold on truncation
14185         distribution.
14186         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
14187         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
14188         Rename from *_nofold.
14189         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
14190         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
14191
14192 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
14193
14194         PR target/60410
14195         * tree.c (build_common_tree_nodes): Remove short_double argument.
14196         All callers changed.
14197         * tree.h (build_common_tree_nodes): Adjust declaration.
14198         * doc/invoke.texi (-fshort-double): Remove documentation.
14199         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
14200         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
14201         * lto-wrapper.c (merge_and_complain, append_compiler_options)
14202         (append_linker_options): Don't handle OPT_fshort_double.
14203
14204         PR rtl-optimization/68730
14205         * lra-remat.c (insn_to_cand_activation): New static variable.
14206         (lra_remat): Allocate and free it.
14207         (create_cand): New arg activation. Initialize a field in
14208         insn_to_cand_activation if it is nonnull.
14209         (create_cands): Pass the activation insn to create_cand when making
14210         a candidate involving an output reload.  Reorganize code a little.
14211         (do_remat): Keep track of active status of candidates in a separate
14212         bitmap.
14213
14214 2016-02-08  Richard Biener  <rguenther@suse.de>
14215
14216         PR tree-optimization/69719
14217         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14218         Properly use absolute of the difference of the two offsets to
14219         compare or adjust the segment length.
14220
14221 2016-02-08  Richard Biener  <rguenther@suse.de>
14222             Jeff Law  <law@redhat.com>
14223
14224         PR target/68273
14225         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
14226         types for anonymous SSA names.
14227
14228 2016-02-08   Richard Biener  <rguenther@suse.de>
14229
14230         PR rtl-optimization/69274
14231         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
14232
14233 2016-02-08  Jeff Law  <law@redhat.com>
14234
14235         PR tree-optimization/65917
14236         * tree-ssa-dom.c (record_temporary_equivalences): Record both
14237         equivalences from if (x == y) style conditionals.
14238         (loop_depth_of_name): Remove.
14239         (record_equality): Remove loop depth check.
14240         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
14241         (const_and_copies::record_const_or_copy_raw): New member function.
14242         * tree-ssa-scopedtables.c
14243         (const_and_copies::record_const_or_copy_raw): New, factored out of
14244         (const_and_copies::record_const_or_copy): Call new member function.
14245
14246 2016-02-05  Jeff Law  <law@redhat.com>
14247
14248         PR tree-optimization/68541
14249         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
14250         (count_stmts_in_block): New function.
14251         (poor_ifcvt_candidate_code): Likewise.
14252         (is_feasible_trace): Add some heuristics to determine when path
14253         splitting is profitable.
14254         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
14255         is a diamond with a single exit.
14256
14257 2016-02-05  Martin Sebor  <msebor@redhat.com>
14258
14259         PR c++/69662
14260         * doc/invoke.texi: Update -Wplacement-new to take an optional
14261         argument.
14262
14263 2016-02-06  Richard Henderson  <rth@redhat.com>
14264
14265         PR c/69643
14266         * tree.c (tree_nop_conversion_p): Do not strip casts into or
14267         out of non-standard address spaces.
14268
14269 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
14270
14271         PR rtl-optimization/69691
14272         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
14273
14274 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
14275
14276         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
14277         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
14278         (*ieee128_mfvsrd_64bit): Likewise.
14279         (*ieee128_mfvsrd_32bit): Likewise.
14280
14281 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
14282
14283         PR target/69369
14284         Revert r232560:
14285         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14286
14287         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
14288         instrumented_version.
14289
14290 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
14291
14292         * doc/invoke.texi (Optimize Options): In table of --param options
14293         rename second occurrence of tracer-min-branch-ratio to
14294         tracer-min-branch-probability, rename
14295         tracer-min-branch-ratio-feedback to
14296         tracer-min-branch-probability-feedback and clarify description,
14297         rename sched-spec-state-edge-prob-cutoff to
14298         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
14299         to selsched-insns-to-rename, rename lto-minpartition to
14300         lto-min-partition, delete reorder-blocks-duplicate and
14301         reorder-blocks-duplicate-feedback.
14302
14303 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14304
14305         * config/s390/s390.c (s390_register_info_set_ranges): Remove
14306         superfluous loops.
14307
14308 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14309
14310         * doc/extend.texi: S/390: Correct some typos.
14311
14312 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14313
14314         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
14315
14316 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14317
14318         PR target/69625
14319         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
14320         (s390_register_info_gprtofpr): Use new macros above.
14321         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
14322         its name.
14323         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
14324         its name.  Adjust restore and save gpr ranges.
14325         (s390_register_info_set_ranges): New function.
14326         (s390_register_info): Use new macros above.  Call
14327         s390_register_info_set_ranges.
14328         (s390_optimize_register_info): Likewise.
14329         (s390_hard_regno_rename_ok): Use new macros.
14330         (s390_hard_regno_scratch_ok): Likewise.
14331         (s390_emit_epilogue): Likewise.
14332         (s390_can_use_return_insn): Likewise.
14333         (s390_optimize_prologue): Likewise.
14334         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
14335
14336 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
14337
14338         PR bootstrap/69677
14339         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
14340         alignment fixes.
14341         (ix86_option_override_internal): Disable TARGET_STV even for
14342         -m{incoming,preferred}-stack-boundary=3.
14343
14344 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14345
14346         * config.gcc: Mark deprecated rtems targets as obsolete.
14347
14348 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
14349
14350         PR rtl-optimization/64682
14351         PR rtl-optimization/69567
14352         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
14353         before I2 only if the register is both used and set in I2.
14354
14355 2016-02-04  DJ Delorie  <dj@redhat.com>
14356
14357         * config/msp430/msp430.c (msp430_start_function): Add function type.
14358
14359 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
14360
14361         PR fortran/69368
14362         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
14363
14364 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
14365
14366         PR rtl-optimization/69577
14367         Revert:
14368         2015-10-29  Richard Henderson  <rth@redhat.com>
14369
14370         PR target/68124
14371         PR rtl-opt/67609
14372         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
14373         sse check to the exact conditions of PR 67609.
14374
14375 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
14376
14377         PR target/69667
14378         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
14379         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
14380         not allowed into the traditional Altivec registers.
14381         (movtd_64bit_nodm): Likewise.
14382         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
14383
14384 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
14385
14386         * config/aarch64/cortex-a57-fma-steering.c
14387         (aarch64_register_fma_steering): Remove "static" from arguments
14388         to register_pass.
14389
14390 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
14391
14392         PR target/69619
14393         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
14394         twice when complex.
14395
14396 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
14397
14398         * doc/invoke.texi: Delete -mno-fma4.
14399
14400 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
14401
14402         PR rtl-optimization/69577
14403         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
14404         (find_subregs_of_mode): Update accordingly.  Iterate over partial
14405         definitions.
14406
14407 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
14408
14409         * config/arm/arm-protos.h (neon_reinterpret): Remove.
14410         * config/arm/arm.c (neon_reinterpret): Remove.
14411         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
14412         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
14413         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
14414         vreinterpretti): Remove.
14415         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
14416         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
14417         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
14418         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
14419         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
14420         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
14421         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
14422         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
14423         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
14424         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
14425         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
14426         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
14427         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
14428         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
14429         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
14430         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
14431         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
14432         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
14433         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
14434         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
14435         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
14436         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
14437         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
14438         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
14439         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
14440         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
14441         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
14442         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
14443         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
14444         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
14445         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
14446         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
14447         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
14448         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
14449         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
14450         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
14451         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
14452         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
14453         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
14454         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
14455         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
14456         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
14457         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
14458         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
14459         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
14460         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
14461         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
14462         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
14463         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
14464         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
14465         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
14466         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
14467         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
14468         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
14469         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
14470         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
14471         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
14472         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
14473         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
14474         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
14475         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
14476         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
14477         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
14478         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
14479         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
14480         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
14481         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
14482         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
14483         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
14484         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
14485         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
14486         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
14487         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
14488         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
14489         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
14490         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
14491         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
14492         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
14493         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
14494         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
14495         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
14496         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
14497         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
14498         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
14499         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
14500         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
14501         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
14502         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
14503         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
14504         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
14505         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
14506         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
14507         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
14508         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
14509         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
14510         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
14511         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
14512         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
14513         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
14514         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
14515         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
14516         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
14517         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
14518
14519 2016-02-04  Martin Liska  <mliska@suse.cz>
14520
14521         PR sanitizer/69276
14522         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
14523         that are gimple_store_p.
14524         (maybe_instrument_call): Likewise.
14525
14526 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
14527
14528         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
14529         register scaling out of memory reference and comment why.
14530
14531 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14532
14533         PR target/65932
14534         PR target/67714
14535         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
14536         folding the source of a SET.
14537
14538 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14539
14540         PR target/65932
14541         PR target/67714
14542         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
14543         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
14544
14545 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
14546
14547         PR target/65932
14548         PR target/67714
14549         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
14550         HImode.
14551
14552 2016-02-04  Christian Bruel  <christian.bruel@st.com>
14553
14554         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
14555         * config/arm/arm.c (arm_set_current_function): Likewise.
14556
14557 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
14558             Ilya Enkovich  <enkovich.gnu@gmail.com>
14559             H.J. Lu  <hongjiu.lu@intel.com>
14560
14561         PR target/69454
14562         * config/i386/i386.c (convert_scalars_to_vector): Remove
14563         stack alignment fixes.
14564         (ix86_option_override_internal): Disable TARGET_STV if stack
14565         might not be aligned enough.
14566         (ix86_minimum_alignment): Assert that TARGET_STV is false.
14567
14568 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
14569
14570         * config/i386/x86-tune.def: Disable default prefetching
14571         for -march=znver1.
14572
14573 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
14574             Vladimir Makarov  <vmakarov@redhat.com>
14575
14576         PR target/69461
14577         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
14578         in validating fused toc addresses.
14579
14580 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
14581
14582         PR c/69627
14583         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
14584         range->m_caret fields if range->m_show_caret_p is false.
14585
14586         PR target/69644
14587         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
14588         Force oldval into register if it does not satisfy reg_or_short_operand
14589         predicate.  Fix up formatting.
14590
14591 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
14592             Alexandre Oliva  <aoliva@redhat.com>
14593
14594         PR target/69461
14595         * lra-constraints.c (simplify_operand_subreg): Check additionally
14596         address validity after potential reloading.
14597         (process_address_1): Check insns validity.  In case of failure do
14598         nothing.
14599
14600 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
14601
14602         PR target/69118
14603         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
14604         Fix target.
14605
14606 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
14607
14608         * wide-int.cc (canonize_uhwi): New function.
14609         (wi::divmod_internal): Use it.
14610
14611 2016-02-02  James Norris  <jnorris@codesourcery.com
14612
14613         * gimplify.c (omp_notice_variable): Add usage check.
14614
14615 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
14616
14617         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
14618         like LE, GE, LT, GT when emitting relational operator.
14619
14620 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
14621
14622         * ira-costs.c (find_costs_and_classes): Add extra argument.
14623         * target.def (ira_change_pseudo_allocno_class): Add parameter.
14624         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
14625         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
14626         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
14627         Add best_class parameter, and return it if not ALL_REGS.
14628         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
14629         Add parameter.
14630         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
14631         Update target hook.
14632
14633 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
14634
14635         * config/aarch64/aarch64.c
14636         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
14637         (aarch64_ira_change_pseudo_allocno_class): New function.
14638
14639 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
14640
14641         PR target/67032
14642         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
14643
14644 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14645
14646         * config/avr/avr.c (avr_option_override): Set
14647         PARAM_ALLOW_STORE_DATA_RACES to 1.
14648
14649 2016-02-02  Richard Biener  <rguenther@suse.de>
14650
14651         PR tree-optimization/69595
14652         * match.pd: Add range test simplifications to true/false.
14653
14654 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
14655
14656         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
14657         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
14658         instead.
14659
14660 2016-02-02  Richard Biener  <rguenther@suse.de>
14661
14662         PR tree-optimization/69606
14663         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
14664         info on the result before moving a stmt.
14665
14666 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
14667
14668         PR middle-end/68542
14669         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
14670         branch with vector comparison.
14671         * config/i386/sse.md (VI48_AVX): New mode iterator.
14672         (define_expand "cbranch<mode>4): Add support for conditional branch
14673         with vector comparison.
14674         * tree-vect-loop.c (optimize_mask_stores): New function.
14675         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
14676         has_mask_store field of vect_info.
14677         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
14678         vectorized loops having masked stores after vec_info destroy.
14679         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
14680         correspondent macros.
14681         (optimize_mask_stores): Add prototype.
14682
14683 2016-02-02  Alan Modra  <amodra@gmail.com>
14684
14685         PR target/69548
14686         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
14687         allow subregs.
14688
14689 2016-02-02  Alan Modra  <amodra@gmail.com>
14690
14691         PR target/68662
14692         * config/rs6000/rs6000.c (need_toc_init): New var, set it
14693         whenever toc_label_name used.
14694         (rs6000_file_start): Don't set up toc section here,
14695         (rs6000_output_function_epilogue): do so here instead,
14696         (rs6000_xcoff_file_start): and here.
14697         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
14698         (load_toc_aix_di): Likewise.
14699
14700 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14701
14702         PR rtl-optimization/69592
14703         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
14704         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
14705         (num_sign_bit_copies_binary_arith_p): New inline function.
14706         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
14707
14708 2016-02-01  Jeff Law  <law@redhat.com>
14709
14710         PR tree-optimization/69580
14711         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
14712         * tree-ssa-threadbackward.c
14713         (fsm_find_control_statement_thread_paths): Do not try to walk
14714         through large PHI nodes.
14715
14716 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14717
14718         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
14719         when count is incremented above limit, don't analyze further
14720         insns afterwards.
14721
14722         * omp-low.c (oacc_parse_default_dims): Avoid
14723         -Wsign-compare warning, make sure value fits into int
14724         rather than just unsigned int.
14725
14726 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
14727
14728         PR tree-optimization/67921
14729         * fold-const.c (split_tree): New parameters.  Convert pointer
14730         type variable part to proper type before negating.
14731         (fold_binary_loc): Pass new arguments to split_tree.
14732
14733 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
14734
14735         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
14736         (nvptx_goacc_validate_dims): Extend to handle global defaults.
14737         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
14738         * doc/tm.texti: Rebuilt.
14739         * doc/invoke.texi (fopenacc-dim): Document.
14740         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
14741         (append_compiler_options): Likewise.
14742         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
14743         (oacc_parse_default_dims): New.
14744         (oacc_validate_dims): Add USED arg.  Select non-unity default when
14745         possible.
14746         (oacc_loop_fixed_partitions): Return mask of used partitions.
14747         (oacc_loop_auto_partitions): Emit dump info.
14748         (oacc_loop_partition): Return mask of used partitions.
14749         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
14750         loop partitioning and validation calls.
14751
14752 2016-02-01  Richard Biener  <rguenther@suse.de>
14753
14754         PR middle-end/69556
14755         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
14756
14757 2016-02-01  Richard Biener  <rguenther@suse.de>
14758
14759         PR tree-optimization/69574
14760         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
14761         of asserting return chrec_dont_know.
14762
14763 2016-02-01  Martin Liska  <mliska@suse.cz>
14764
14765         * mem-stats-traits.h: Add copyright header.
14766         * mem-stats.h: Likewise.
14767
14768 2016-02-01  Richard Biener  <rguenther@suse.de>
14769
14770         PR tree-optimization/69579
14771         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
14772         Do not propagate through abnormal PHI results.
14773
14774 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
14775
14776         * postreload.c (reload_cse_simplify): Remove dead code.
14777
14778 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14779
14780         PR rtl-optimization/69570
14781         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
14782         if there is more than one set, not if there is a single set.
14783
14784 2016-02-01  Richard Henderson  <rth@redhat.com>
14785
14786         PR rtl-opt/69535
14787         * combine.c (make_compound_operation): When looking through a
14788         subreg, make sure to re-extend to the width of the outer mode.
14789
14790 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
14791
14792         PR tree-optimization/69546
14793         * wide-int.cc (wi::divmod_internal): For unsigned division
14794         where both operands fit into uhwi, if o1 is 1 and o0 has
14795         msb set, if divident_prec is larger than bits per hwi,
14796         clear another quotient word and return 2 instead of 1.
14797         Similarly for remainder with msb in HWI set, if dividend_prec
14798         is larger than bits per hwi.
14799
14800 2016-01-29  Martin Jambor  <mjambor@suse.cz>
14801
14802         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
14803         Use short lowercase names.
14804         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
14805         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
14806         acq_rel one.  Protect warning agains segfaults if
14807         get_memory_order_name returns NULL.
14808         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
14809         with release semantics.  Do not warn if get_memory_order already did.
14810         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
14811         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
14812         if get_memory_order already did.
14813
14814 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
14815
14816         * doc/install.texi: Document that isl-0.16 is supported.
14817
14818 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
14819
14820         PR target/69299
14821         * config/i386/constraints.md (Bm): Describe as special memory
14822         constraint.
14823         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
14824         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14825         * genpreds.c (struct constraint_data): Add is_special_memory.
14826         (have_special_memory_constraints, special_memory_start): New
14827         static vars.
14828         (special_memory_end): Ditto.
14829         (add_constraint): Add new arg is_special_memory.  Add code to
14830         process its true value.  Update have_special_memory_constraints.
14831         (process_define_constraint): Pass the new arg.
14832         (process_define_register_constraint): Ditto.
14833         (choose_enum_order): Process special memory.
14834         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
14835         function insn_extra_special_memory_constraint.
14836         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14837         * gensupport.c (process_rtx): Process
14838         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14839         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
14840         * ira-lives.c (single_reg_class): Use
14841         insn_extra_special_memory_constraint.
14842         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
14843         * lra-constraints.c (process_alt_operands): Ditto.
14844         (curr_insn_transform): Use insn_extra_special_memory_constraint.
14845         * recog.c (asm_operand_ok, preprocess_constraints): Process
14846         CT_SPECIAL_MEMORY.
14847         * reload.c (find_reloads): Ditto.
14848         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
14849         * stmt.c (parse_input_constraint): Use
14850         insn_extra_special_memory_constraint.
14851
14852 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14853
14854         PR target/69530
14855         * lra-splill.c (lra_final_code_change): Revert r229087 by
14856         removing all sub-registers.
14857
14858 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
14859
14860         PR target/65604
14861         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
14862
14863 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
14864
14865         PR target/69551
14866         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
14867         SSE1, copy target into the temporary reg first before recursing
14868         on it.
14869
14870 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14871
14872         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
14873         with vm.
14874
14875 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
14876
14877         * ginclude/stdarg.h: Test __cplusplus instead of
14878         __GXX_EXPERIMENTAL_CXX0X__.
14879
14880 2016-01-29  Richard Biener  <rguenther@suse.de>
14881
14882         PR tree-optimization/69547
14883         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
14884         Do not mark clobbers necessary.
14885         (mark_all_reaching_defs_necessary_1): Likewise.
14886
14887 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14888
14889         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
14890         declaration name with %qs and print it in both error messages.
14891         Also fix indentation.
14892
14893 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14894
14895         PR other/69006
14896         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
14897         trailing blank line from error message.
14898
14899 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
14900
14901         PR c++/69462
14902         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
14903         for C++-11.
14904
14905 2016-01-29  Richard Biener  <rguenther@suse.de>
14906
14907         PR middle-end/69537
14908         * match.pd: Allow all integral types when simplifying a
14909         widening or sign-changing conversion.
14910
14911 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14912
14913         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
14914         back to setting codegen_error to fail codegen.
14915
14916 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
14917
14918         PR target/69459
14919         * config/i386/constraints.md (C): Only accept constant zero operand.
14920         (BC): New constraint.
14921         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
14922         instead of C constraint.
14923         * doc/md.texi (Machine Constraints): Update description
14924         of C constraint.
14925
14926 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
14927
14928         PR target/68400
14929         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
14930
14931 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
14932
14933         PR middle-end/69542
14934         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
14935         non-debug insns.
14936
14937 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
14938
14939         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
14940         branches if using guessed profile.
14941
14942 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
14943
14944         * graphite-optimize-isl.c (optimize_isl): Fix dump.
14945
14946 2016-01-28  Richard Henderson  <rth@redhat.com>
14947
14948         PR target/69305
14949         * config/aarch64/aarch64-modes.def (CC_Cmode): New
14950         * config/aarch64/aarch64-protos.h: Update.
14951         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
14952         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
14953         (aarch64_get_condition_code_1): Handle CC_Cmode.
14954         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
14955         (*add<mode>3_compareC_cconly_imm): New.
14956         (*add<mode>3_compareC_cconly): New.
14957         (*add<mode>3_compareC_imm): New.
14958         (add<mode>3_compareC): New.
14959         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
14960         to be first.  Use aarch64_carry_operation.
14961         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
14962         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
14963         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
14964         (subti3): Use subdi3_compare1.
14965         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
14966         (sub<mode>3_compare1): New.
14967         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
14968         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
14969         (*subsi3_carryin_uxtw): Likewise.
14970         (*ngc<mode>, *ngcsi_uxtw): Likewise.
14971         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
14972         * config/aarch64/iterators.md (DWI): New.
14973         * config/aarch64/predicates.md (aarch64_carry_operation): New.
14974         (aarch64_borrow_operation): New.
14975
14976 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
14977
14978         * graphite-optimize-isl.c (optimize_isl): Print a different debug
14979         message when isl does not return a valid schedule.
14980
14981 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14982
14983         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
14984         Remove comments from class declarations: they are already in the code
14985         close by the defs.
14986
14987 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
14988
14989         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
14990         codegen_error_p.
14991         (ternary_op_to_tree): Same.
14992         (unary_op_to_tree): Same.
14993         (nary_op_to_tree): Same.
14994         (gcc_expression_from_isl_expr_op): Same.
14995         (gcc_expression_from_isl_expression): Same.
14996         (graphite_create_new_loop): Same.
14997         (graphite_create_new_loop_guard): Same.
14998         (build_iv_mapping): Same.
14999         (graphite_create_new_guard): Same.
15000         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
15001         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
15002
15003 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
15004
15005         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
15006         instead of setting codegen_error to fail codegen.
15007
15008 2016-01-28  Jason Merrill  <jason@redhat.com>
15009
15010         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
15011
15012 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
15013
15014         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
15015         Remove CONST_INT_P check in CCMP cost calculation.
15016
15017 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
15018
15019         * config/aarch64/aarch64.c (generic_vector_cost):
15020         Set vec_permute_cost.
15021         (cortexa57_vector_cost): Likewise.
15022         (exynosm1_vector_cost): Likewise.
15023         (xgene1_vector_cost): Likewise.
15024         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
15025         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
15026         Add vec_permute_cost entry.
15027
15028 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
15029
15030         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
15031         immediate as %1.
15032         (add<mode>3_compare0): Likewise.
15033         (addsi3_compare0_uxtw): Likewise.
15034         (add<mode>3nr_compare0): Likewise.
15035         (compare_neg<mode>): Likewise.
15036         (<optab><mode>3): Likewise.
15037
15038 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
15039
15040         * tree-vect-stmts.c (vectorizable_comparison): Add
15041         NULL check for vectype.
15042
15043 2016-01-28  Richard Biener  <rguenther@suse.de>
15044
15045         PR tree-optimization/69466
15046         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
15047         Account for PHIs we couldn't duplicate.
15048
15049 2016-01-28  Martin Liska  <mliska@suse.cz>
15050
15051         PR pch/68758
15052         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
15053         instead of ENABLE_VALGRIND_CHECKING.
15054
15055 2016-01-27  Richard Henderson  <rth@redhat.com>
15056
15057         PR rtl-opt/69447
15058         * lra-remat.c (subreg_regs): New.
15059         (dump_candidates_and_remat_bb_data): Dump it.
15060         (operand_to_remat): Reject if operand in subreg_regs.
15061         (set_bb_regs): Collect subreg_regs.
15062         (lra_remat): Init and free subreg_regs.  Compute
15063         calculate_local_reg_remat_bb_data before create_cands.
15064
15065 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
15066
15067         PR target/68986
15068         * config/i386/i386.c (ix86_update_stack_boundary): Don't
15069         change stack_alignment_needed for __tls_get_addr call.
15070
15071 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
15072
15073         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
15074
15075 2016-01-27  Jeff Law  <law@redhat.com>
15076
15077         PR tree-optimization/68398
15078         PR tree-optimization/69196
15079         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
15080         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
15081         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
15082         Only count PHIs in the last block in the path.  The others will
15083         const/copy propagate away.  Add heuristic to allow more irreducible
15084         subloops to be created when it is likely profitable to do so.
15085
15086         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
15087         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
15088         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
15089
15090 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
15091
15092         PR lto/69254
15093         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
15094         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
15095         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
15096         * tree-streamer-in.c: Include asan.h.
15097         (streamer_get_builtin_tree): For builtins in sanitizer
15098         range call initialize_sanitizer_builtins and retry.
15099
15100 2016-01-27  Ian Lance Taylor  <iant@google.com>
15101
15102         * common.opt (fkeep-gc-roots-live): New undocumented option.
15103         * tree-ssa-loop-ivopts.c (add_candidate_1): If
15104         -fkeep-gc-roots-live, skip pointers.
15105         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
15106         NULL.
15107
15108 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
15109
15110         PR target/69512
15111         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
15112         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
15113
15114 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
15115
15116         PR target/68380
15117         * configure.ac: NetBSD provides SSP in its C library.
15118         * configure: Updated.
15119
15120 2016-01-27  Richard Biener  <rguenther@suse.de>
15121
15122         PR tree-optimization/69166
15123         * tree-vect-loop.c (vect_is_simple_reduction): Always check
15124         reduction code for commutativity / associativity.
15125
15126 2016-01-27  Martin Jambor  <mjambor@suse.cz>
15127
15128         PR tree-optimization/69355
15129         * tree-sra.c (analyze_access_subtree): Correct hole detection when
15130         total_scalarization fails.
15131
15132 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
15133
15134         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
15135         power9.
15136
15137 2016-01-27  Christian Bruel  <christian.bruel@st.com>
15138
15139         PR target/69245
15140         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
15141         Move arm_reset_previous_fndecl and set_target_option_current_node in
15142         the conditional part.  Call save_restore_target_globals.
15143         * config/arm/arm.c (arm_set_current_function):
15144         Refactor to better support #pragma target and attribute mix.
15145         Call save_restore_target_globals.
15146         * config/arm/arm-protos.h (save_restore_target_globals): New function.
15147
15148 2016-01-27  Martin Liska  <mliska@suse.cz>
15149
15150         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
15151         reference for an HSA kernel and its host function.
15152
15153 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
15154
15155         PR tree-optimization/69399
15156         * wide-int.h (wi::lrshift): For larger precisions, only
15157         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
15158
15159 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
15160
15161         * config/arc/predicates.md (proper_comparison_operator): Reject
15162         constant-constant comparison.
15163
15164 2016-01-26  Tom de Vries  <tom@codesourcery.com>
15165
15166         PR tree-optimization/69110
15167         * tree-data-ref.c (initialize_data_dependence_relation): Handle
15168         DR_NUM_DIMENSIONS == 0.
15169
15170 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
15171             Sebastian Pop  <s.pop@samsung.com>
15172
15173         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
15174         isl_ast_op_cond and isl_ast_op_select.
15175         (gcc_expression_from_isl_expr_op): Same.
15176
15177 2016-01-26  Jason Merrill  <jason@redhat.com>
15178
15179         PR c++/68782
15180         * tree.c (recompute_constructor_flags): Split out from
15181         build_constructor.
15182         (verify_constructor_flags): New.
15183         * tree.h: Declare them.
15184
15185 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
15186
15187         PR rtl-optimization/69217
15188         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
15189         are no TYPE_FIELDS set for the record type.
15190
15191 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15192
15193         PR target/68662
15194         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
15195         toc_label_name unconditionally.
15196         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
15197         SYMBOL_REF string.  Use toc_label_name instead of constructing
15198         LCTOC1.
15199         (rs6000_elf_declare_function_name): Use toc_label_name instead of
15200         constructing LCTOC1.
15201
15202 2016-01-26  Martin Sebor  <msebor@redhat.com>
15203
15204         PR other/69477
15205         * doc/extend.texi (Common Type Attributes): Move text that talks about
15206         attribute packed from attribute aligned to the section discussing
15207         the former attribute for clarity.
15208
15209 2016-01-26  Richard Henderson  <rth@redhat.com>
15210
15211         PR middle-end/60908
15212         * trans-mem.c (tm_region_init): Mark entry block as visited.
15213
15214 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
15215
15216         PR other/69006
15217         * diagnostic-show-locus.c (layout::print_source_line): Replace
15218         call to pp_newline with call to layout::print_newline.
15219         (layout::print_annotation_line): Likewise.
15220         (layout::move_to_column): Likewise.
15221         (layout::print_any_fixits): After printing any fixits, print a
15222         trailing newline, if necessary.
15223         (layout::print_newline): New method, resetting any colorization
15224         before a newline.
15225         (diagnostic_show_locus): Move the pp_newline to before the
15226         early bailout.  Remove dummy block enclosing the layout instance.
15227         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
15228         of pp_newline_and_flush with pp_flush.
15229         (diagnostic_append_note): Delete use of pp_newline.
15230         (diagnostic_append_note_at_rich_loc): Delete.
15231         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
15232         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
15233         when newline characters are added to the buffer.
15234
15235 2016-01-26  Michael Matz  <matz@suse.de>
15236
15237         * configure.ac (ac_cv_std_swap_in_utility): New test.
15238         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
15239         * configure: Regenerate.
15240         * config.in: Regenerate.
15241
15242 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
15243
15244         * config/arc/arc.md (cstoresi4): Force operand into register.
15245         (arcset<code>): Fix predicate.
15246         (arcsetltu): Likewise.
15247         (arcsetgeu): Likewise.
15248         (arcsethi): Likewise.
15249         (arcsetls): Likewise.
15250
15251 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15252
15253         PR tree-optimization/69483
15254         * gimple-fold.c (canonicalize_constructor_val): Return NULL
15255         if base has error_mark_node type.
15256
15257 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
15258
15259         PR target/68620
15260         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
15261         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
15262         New helper macros.
15263         (vget_lane_f16): Handle big-endian.
15264         (vgetq_lane_f16): Likewise.
15265         (vset_lane_f16): Likewise.
15266         (vsetq_lane_f16): Likewise.
15267         * config/arm/iterators.md (VQXMOV): Add V8HF.
15268         (VDQ): Add V4HF and V8HF.
15269         (V_reg): Handle V4HF and V8HF.
15270         (Is_float_mode): Likewise.
15271         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
15272         neon_vdup_nv8hf): New patterns.
15273         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
15274         Use VD_LANE iterator.
15275         (neon_vld1_dup<mode>): Use VQ2 iterator.
15276
15277 2016-01-26  Nathan Sidwell  <nathan@acm.org>
15278
15279         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
15280         (set_oacc_fn_attrib): Add IS_KERNEL arg.
15281         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
15282         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
15283         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
15284         (oacc_validate_dims): Add LEVEL arg, don't return level.
15285         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
15286         oacc_validate_dims.
15287         (execute_oacc_device_lower): Adjust, add more dump output.
15288         * tree-ssa-loop.c (gate_oacc_kernels): Use
15289         oacc_fn_attrib_kernels_p.
15290         * tree-parloops.c (create_parallel_loop): Adjust
15291         set_oacc_fn_attrib call.
15292
15293 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15294
15295         PR lto/69254
15296         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
15297         (append_compiler_options): Handle -fcilkplus.
15298         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
15299
15300 2016-01-26  Nick Clifton  <nickc@redhat.com>
15301
15302         PR target/66655
15303         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
15304         been marked as DECL_ONE_ONLY but we do not the means to make it
15305         so, then do not allow it to bind locally.
15306
15307 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15308
15309         PR lto/69254
15310         * opts.h (parse_sanitizer_options): New prototype.
15311         * opts.c (sanitizer_opts): New array.
15312         (parse_sanitizer_options): New function.
15313         (common_handle_option): Use parse_sanitizer_options.
15314
15315 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
15316
15317         PR target/68986
15318         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
15319         alignment adjustment to ...
15320         (ix86_update_stack_boundary): Here.  Don't over-align stack for
15321         __tls_get_addr.
15322         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
15323         if __tls_get_addr is called.
15324
15325 2016-01-26  Christian Bruel  <christian.bruel@st.com>
15326
15327         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
15328
15329 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
15330
15331         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
15332
15333 2016-01-26  Richard Biener  <rguenther@suse.de>
15334
15335         PR middle-end/69467
15336         * match.pd: Guard X * CST CMP 0 pattern with single_use.
15337
15338 2016-01-26  Richard Biener  <rguenther@suse.de>
15339
15340         PR tree-optimization/69452
15341         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
15342         (move_computations_dom_walker::before_dom_children): Rename
15343         to ...
15344         (move_computations_worker): This.
15345         (move_computations): Perform an RPO rather than a DOM walk.
15346
15347 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15348
15349         PR target/69442
15350         * combine.c (combine_instructions): For REG_EQUAL note with
15351         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
15352         to the underlying register.
15353         * doc/rtl.texi (REG_EQUAL): Document the behavior of
15354         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
15355
15356 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
15357
15358         PR target/67896
15359         * config/aarch64/aarch64-builtins.c
15360         (aarch64_init_simd_builtin_types): Do not set structural
15361         equality to __Poly{8,16,64,128}_t types.
15362
15363 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
15364
15365         PR tree-optimization/69400
15366         * wide-int.cc (wi_pack): Take the precision as argument and
15367         perform canonicalization here rather than in the callers.
15368         Use the main loop to handle all full-width HWIs.  Add a
15369         zero HWI if in_len isn't a full result.
15370         (wi::divmod_internal): Update accordingly.
15371         (wi::mul_internal): Likewise.  Simplify.
15372
15373 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
15374             Sebastian Pop  <s.pop@samsung.com>
15375
15376         * graphite-poly.c (apply_poly_transforms): Simplify.
15377         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
15378         (print_isl_map): Same.
15379         (print_isl_union_map): Same.
15380         (print_isl_schedule): New.
15381         (debug_isl_schedule): New.
15382         * graphite-dependences.c (scop_get_reads): Do not call
15383         isl_union_map_add_map that is undocumented isl functionality.
15384         (scop_get_must_writes): Same.
15385         (scop_get_may_writes): Same.
15386         (scop_get_original_schedule): Remove.
15387         (scop_get_dependences): Do not call isl_union_map_compute_flow that
15388         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
15389         (compute_deps): Remove.
15390         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
15391         (debug_schedule_ast): New.
15392         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
15393         set_separate_option.
15394         (graphite_regenerate_ast_isl): Add dump.
15395         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
15396         from scop->transformed_schedule.
15397         (graphite_regenerate_ast_isl): Add more dump.
15398         * graphite-optimize-isl.c (optimize_isl): Set
15399         scop->transformed_schedule.  Check whether schedules are equal.
15400         (apply_poly_transforms): Move here.
15401         * graphite-poly.c (apply_poly_transforms): ... from here.
15402         (free_poly_bb): Static.
15403         (free_scop): Static.
15404         (pbb_number_of_iterations_at_time): Remove.
15405         (print_isl_ast): New.
15406         (debug_isl_ast): New.
15407         (debug_scop_pbb): New.
15408         * graphite-scop-detection.c (print_edge): Move.
15409         (print_sese): Move.
15410         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
15411         (build_scop_scattering): Remove.
15412         (create_pw_aff_from_tree): Assert instead of bailing out.
15413         (add_condition_to_pbb): Remove unused code, do not fail.
15414         (add_conditions_to_domain): Same.
15415         (add_conditions_to_constraints): Remove.
15416         (build_scop_context): New.
15417         (add_iter_domain_dimension): New.
15418         (build_iteration_domains): Initialize pbb->iterators.
15419         Call add_conditions_to_domain.
15420         (nested_in): New.
15421         (loop_at): New.
15422         (index_outermost_in_loop): New.
15423         (index_pbb_in_loop): New.
15424         (outermost_pbb_in): New.
15425         (add_in_sequence): New.
15426         (add_outer_projection): New.
15427         (outer_projection_mupa): New.
15428         (add_loop_schedule): New.
15429         (build_schedule_pbb): New.
15430         (build_schedule_loop): New.
15431         (embed_in_surrounding_loops): New.
15432         (build_schedule_loop_nest): New.
15433         (build_original_schedule): New.
15434         (build_poly_scop): Call build_original_schedule.
15435         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
15436         (free_poly_dr): Remove.
15437         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
15438         (free_poly_bb): Remove.
15439         (debug_loop_vec): Remove.
15440         (print_isl_ast): Declare.
15441         (debug_isl_ast): Declare.
15442         (scop_do_interchange): Remove.
15443         (scop_do_strip_mine): Remove.
15444         (scop_do_block): Remove.
15445         (flatten_all_loops): Remove.
15446         (optimize_isl): Remove.
15447         (pbb_number_of_iterations_at_time): Remove.
15448         (debug_scop_pbb): Declare.
15449         (print_schedule_ast): Declare.
15450         (debug_schedule_ast): Declare.
15451         (struct scop): Remove schedule.  Add original_schedule,
15452         transformed_schedule.
15453         (free_gimple_poly_bb): Remove.
15454         (print_generated_program): Remove.
15455         (debug_generated_program): Remove.
15456         (unify_scattering_dimensions): Remove.
15457         * sese.c (print_edge): ... here.
15458         (print_sese): ... here.
15459         (debug_edge): ... here.
15460         (debug_sese): ... here.
15461         * sese.h (print_edge): Declare.
15462         (print_sese): Declare.
15463         (dump_edge): Declare.
15464         (dump_sese): Declare.
15465
15466 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
15467             Sebastian Pop  <s.pop@samsung.com>
15468
15469         * Makefile.in: Set ISLVER in site.exp.
15470
15471 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
15472
15473         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
15474         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
15475         through DECL_VALUE_EXPR for expansion.
15476
15477 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15478
15479         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
15480         the frame info after reload completed.
15481
15482 2016-01-25  Jeff Law  <law@redhat.com>
15483
15484         PR tree-optimization/69196
15485         PR tree-optimization/68398
15486         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
15487         tree-ssa-threadupdate.c.
15488         (determine_bb_domination_status): Prototype
15489         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
15490         (determine_bb_domination_status): No longer static.
15491         (valid_jump_thread_path): Remove code to detect characteristics
15492         of the jump thread path not associated with correctness.
15493         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
15494         Correct test for thread path length.  Count PHIs for real operands as
15495         statements that need to be copied.  Do not count ASSERT_EXPRs.
15496         Look at all the blocks in the thread path.  Compute and selectively
15497         filter thread paths based on threading through the latch, threading
15498         a multiway branch or crossing a multiway branch.
15499
15500 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15501
15502         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
15503         decl with __attribute__ ((unused)) annotation.
15504
15505 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
15506
15507         PR target/69421
15508         * tree-vect-stmts.c (vectorizable_condition): Check vectype
15509         of operands is compatible with a statement vectype.
15510
15511 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
15512
15513         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
15514         improve wording for mixed storage order support.
15515
15516 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
15517
15518         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
15519         (vcvt_u64_f64): Likewise.
15520         (vcvta_s64_f64): Likewise.
15521         (vcvta_u64_f64): Likewise.
15522         (vcvtm_s64_f64): Likewise.
15523         (vcvtm_u64_f64): Likewise.
15524         (vcvtn_s64_f64): Likewise.
15525         (vcvtn_u64_f64): Likewise.
15526         (vcvtp_s64_f64): Likewise.
15527         (vcvtp_u64_f64): Likewise.
15528
15529 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
15530
15531         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
15532         (arc_init): Check validity mll64 option.
15533         (arc_save_restore): Use double load/store instruction.
15534         (arc_expand_movmem): Likewise.
15535         (arc_split_move): Don't split if we have double load/store
15536         instructions. Returns a boolean.
15537         (arc_process_double_reg_moves): Change function to return boolean
15538         instead of a sequence of instructions.
15539         (arc_dwarf_register_span): New function.
15540         * config/arc/arc-protos.h (arc_split_move): Change prototype.
15541         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
15542         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
15543         (*movdf_insn): Likewise.
15544         * config/arc/arc.opt (mll64): New option.
15545         * config/arc/predicates.md (even_register_operand): New predicate.
15546         * doc/invoke.texi (ARC Options): Add mll64 documentation.
15547
15548 2016-01-25  Richard Biener  <rguenther@suse.de>
15549
15550         PR lto/69393
15551         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
15552         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
15553         DECL_NAMELESS.
15554         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
15555
15556 2016-01-25  Richard Biener  <rguenther@suse.de>
15557
15558         PR tree-optimization/69376
15559         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
15560         flag.
15561         (VN_INFO_ANTI_RANGE_P): New inline.
15562         (VN_INFO_RANGE_TYPE): Likewise.
15563         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
15564         SSA_NAME_ANTI_RANGE_P.
15565         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
15566         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15567         Properly query VN_INFO_RANGE_TYPE.
15568
15569 2016-01-25  Nick Clifton  <nickc@redhat.com>
15570
15571         PR target/66655
15572         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
15573
15574 2016-01-23  Tom de Vries  <tom@codesourcery.com>
15575
15576         PR tree-optimization/69426
15577         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
15578         removed clobber.
15579
15580 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
15581
15582         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
15583         "the the" with "the" in the comments.
15584         * ipa-devirt.c (build_type_inheritance_graph,
15585         update_type_inheritance_graph): Likewise.
15586         * tree.c (build_function_type_list_1): Likewise.
15587         * cfgloopmanip.c (scale_loop_profile): Likewise.
15588         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
15589         * gimple-ssa-split-paths.c
15590         (find_block_to_duplicate_for_splitting_paths): Likewise.
15591         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
15592         * expr.c (convert_move): Likewise.
15593         * var-tracking.c (vt_stack_adjustments): Likewise.
15594         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
15595         * tree-vrp.c (test_for_singularity): Likewise.
15596
15597         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
15598         directly instead of building a temporary tree.
15599
15600         PR bootstrap/69434
15601         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
15602         remove <algorithm> include.
15603
15604 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
15605
15606         PR target/69432
15607         * config/i386/i386.c: Include dojump.h.
15608         (expand_small_movmem_or_setmem,
15609         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
15610         fixes.
15611         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
15612         if dynamic_check != -1.
15613
15614 2016-01-21  Jeff Law  <law@redhat.com>
15615
15616         PR middle-end/69347
15617         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
15618         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
15619         into dominated_by_p.
15620         (cprop_into_successor_phis): Avoid unnecessary tests.
15621
15622 2016-01-22  Richard Henderson  <rth@redhat.com>
15623
15624         PR target/69416
15625         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
15626         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
15627
15628 2016-01-22  Michael Matz  <matz@suse.de>
15629
15630         * system.h (string, algorithm): Include only conditionally.
15631         (new): Include always under C++.
15632         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
15633         * final.c (toplevel): Ditto.
15634         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
15635         * genconditions.c (write_header): Make gencondmd.c define
15636         INCLUDE_STRING.
15637         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
15638
15639         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
15640         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
15641
15642 2016-01-22  Christian Bruel  <christian.bruel@st.com>
15643
15644         PR target/68674
15645         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
15646
15647 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15648
15649         PR target/69403
15650         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
15651         define_insn_and_split.  Ensure operands[1] and operands[0] do not
15652         get assigned the same register.
15653
15654 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
15655
15656         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
15657
15658 2016-01-22  Christian Bruel  <christian.bruel@st.com>
15659
15660         * config/arm/arm-c.c (arm_pragma_target_parse):
15661         Remove warn_builtin_macro_redefined overwrite.
15662
15663 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15664
15665         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
15666         flag_non_call_exceptions compatibility.
15667
15668 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
15669
15670         PR debug/66668
15671         * dwarf2out.c (add_child_die_after): New function.
15672         (dwarf_qual_info_t): New type.
15673         (dwarf_qual_info): New variable.
15674         (qualified_die_p): New function.
15675         (modified_type_die): For -fdebug-types-section, ensure
15676         canonical order of qualifiers.  Put qualified DIEs adjacent
15677         to the corresponding non-qualified type DIE and search there
15678         for existing qualified DIEs.
15679
15680 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15681
15682         * doc/extend.texi (scalar_storage_order type attribute): Document
15683         restriction on type punning and aliasing, and remove future tense.
15684
15685 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
15686
15687         PR target/69252
15688         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
15689         first stage.
15690
15691 2016-01-21  Jeff Law  <law@redhat.com>
15692
15693         PR middle-end/69347
15694         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
15695         useless call to record_temporary_equivalences.
15696         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
15697         allocate 10 slots in the bb_path vector and let it grow as needed.
15698         (fsm_find_control_statement_thread_paths): Similarly for the next_path
15699         vector.
15700
15701 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
15702
15703         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
15704         Detangle.
15705         * configure: Regenerate.
15706
15707 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
15708
15709         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
15710         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
15711
15712 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
15713
15714         PR middle-end/66178
15715         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
15716         drop EXPAND_INITIALIZER.
15717         * rtl.h (contains_symbolic_reference_p): Declare.
15718         * rtlanal.c (contains_symbolic_reference_p): New function.
15719         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
15720         a subtraction into a NOT if symbolic constants are involved.
15721
15722 2016-01-21  Anton Blanchard  <anton@samba.org>
15723             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15724
15725         PR target/63354
15726         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
15727         #define.
15728         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
15729         function.
15730
15731 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
15732
15733         * config/microblaze/microblaze.c
15734         (get_branch_target): New.
15735         (insert_wic_for_ilb_runout): New.
15736         (insert_wic): New.
15737         (microblaze_machine_dependent_reorg): New.
15738         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
15739         * config/microblaze/microblaze.md
15740         (UNSPEC_IPREFETCH): Define.
15741         (iprefetch): New pattern
15742         * config/microblaze/microblaze.opt
15743         (mxl-prefetch): New flag.
15744
15745 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
15746
15747         * config/microblaze/microblaze.h
15748         (FIXED_REGISTERS): Update in macro.
15749         (CALL_USED_REGISTERS): Update in macro.
15750
15751 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
15752
15753         PR rtl-optimization/68920
15754         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
15755         moves.
15756
15757 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
15758
15759         PR rtl-optimization/68990
15760         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
15761         pseudo instead of inheritance ones.
15762
15763 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15764             Nick Clifton  <nickc@redhat.com>
15765
15766         PR target/69129
15767         PR target/69012
15768         * config/mips/mips.c (mips_compute_frame_info): Initialise
15769         args_size and hard_frame_pointer_offset fields of the frame
15770         structure before calling mips_global_pointer.
15771
15772 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
15773
15774         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
15775         label reference.
15776         * configure: Regenerate.
15777
15778 2016-01-21  Richard Biener  <rguenther@suse.de>
15779
15780         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
15781
15782 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
15783
15784         * config/s390/s390.c (s390_asm_declare_function_size): Add code
15785         to actually emit the .size directive.
15786
15787 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
15788              Jakub Jelinek  <jakub@redhat.com>
15789
15790         PR target/69187
15791         PR target/65624
15792         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
15793         args array size by one to avoid buffer overflow.
15794
15795 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
15796
15797         * config/s390/s390.md (pool_section_start): Use switch_to_section
15798         to select proper read-only data section instead of hardcoding
15799         .rodata.
15800         (pool_section_end): Use switch_to_section to match the above.
15801
15802 2016-01-21  Richard Biener  <rguenther@suse.de>
15803
15804         PR tree-optimization/69378
15805         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
15806         (set_ssa_val_to): Use it for dominance checks taking into
15807         account not executable edges.
15808
15809 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
15810
15811         PR c++/69355
15812         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
15813         for bitsize instead of GET_MODE_PRECISION (mode).
15814
15815 2016-01-20  Martin Sebor  <msebor@redhat.com>
15816
15817         PR c/52291
15818         * extend.texi (__sync Builtins): Clarify the semantics of
15819         __sync_fetch_and_OP built-ins on pointers.
15820         (__atomic Builtins): Same.
15821
15822 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15823             Sebastian Pop  <s.pop@samsung.com>
15824
15825         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
15826         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
15827         (is_valid_rename): Same.
15828         (translate_isl_ast_to_gimple::get_rename): Same.
15829         (translate_isl_ast_to_gimple::rename_all_uses): Same.
15830         (translate_isl_ast_to_gimple::rename_uses): Same.
15831         (get_new_name): Check for close_phi nodes.
15832         (copy_loop_phi_args): Use phi_node_kind.
15833         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
15834         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
15835
15836 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15837             Sebastian Pop  <s.pop@samsung.com>
15838
15839         Revert commit r229783.
15840         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
15841         Remove use of parameter_rename_map.
15842         (copy_def): Remove.
15843         (copy_internal_parameters): Remove.
15844         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
15845         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
15846         (free_sese_info): Do not free parameter_rename_map.
15847         (set_rename): Do not use parameter_rename_map.
15848         (rename_uses): Update call to set_rename.
15849         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
15850         * sese.h (parameter_rename_map_t): Remove.
15851         (struct sese_info_t): Remove field parameter_rename_map.
15852
15853 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15854             Sebastian Pop  <s.pop@samsung.com>
15855
15856         * graphite-isl-ast-to-gimple.c: Fix comment.
15857         * graphite-scop-detection.c (defined_in_loop_p): New.
15858         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
15859         names defined in loop.
15860
15861 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15862             Sebastian Pop  <s.pop@samsung.com>
15863
15864         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
15865         Discard unstructured if-then-else regions.
15866
15867 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15868             Sebastian Pop  <s.pop@samsung.com>
15869
15870         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
15871         (cleanup_loop_iter_dom): Remove.
15872         (build_loop_iteration_domains): Remove.
15873         (build_scop_context): Remove.
15874         (build_scop_iteration_domain): Remove.
15875         (add_loop_constraints): New.
15876         (build_iteration_domains): New.
15877         (build_poly_scop): Call build_iteration_domains.
15878
15879 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15880             Sebastian Pop  <s.pop@samsung.com>
15881
15882         * graphite-scop-detection.c
15883         (scop_detection::harmful_loop_in_region): Free dom and loops.
15884         (scop_detection::loop_body_is_valid_scop): Free bbs.
15885
15886 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15887             Sebastian Pop  <s.pop@samsung.com>
15888
15889         * graphite-scop-detection.c (record_loop_in_sese): New.
15890         (gather_bbs::before_dom_children): Call record_loop_in_sese.
15891         (build_scops): Remove call to build_sese_loop_nests.
15892         * sese.c (sese_record_loop): Remove.
15893         (build_sese_loop_nests): Remove.
15894         (new_sese_info): Remove region->loops.
15895         (free_sese_info): Same.
15896         * sese.h (sese_contains_loop): Same.
15897         (build_sese_loop_nests): Remove.
15898         (sese_contains_loop): Remove.
15899
15900 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15901             Sebastian Pop  <s.pop@samsung.com>
15902
15903         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
15904         loop_is_valid_in_scop.
15905         (scop_detection::harmful_stmt_in_region): Renamed
15906         harmful_loop_in_region.
15907         Call loop_is_valid_in_scop.
15908
15909 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15910             Sebastian Pop  <s.pop@samsung.com>
15911
15912         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
15913         isl_ast_node_mark.
15914
15915 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15916             Sebastian Pop  <s.pop@samsung.com>
15917
15918         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
15919         * graphite.h (struct poly_bb): Remove field is_reduction.
15920         (PBB_IS_REDUCTION): Remove.
15921
15922 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15923             Sebastian Pop  <s.pop@samsung.com>
15924
15925         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
15926         (add_pdr_constraints): Same.
15927         (scop_get_reads): Same.
15928         (scop_get_must_writes): Same.
15929         (scop_get_may_writes): Same.
15930         (scop_get_original_schedule): Same.
15931         (extend_schedule): Same.
15932         (apply_schedule_on_deps): Same.
15933         (carries_deps): Same.
15934         (compute_deps): Same.
15935         (scop_get_dependences): Same.
15936         * graphite-isl-ast-to-gimple.c
15937         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
15938         * graphite-optimize-isl.c (get_schedule_for_band): Same.
15939         (get_schedule_for_band_list): Same.
15940         (get_schedule_map): Same.
15941         (apply_schedule_map_to_scop): Same.
15942         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
15943         (build_loop_iteration_domains): Same.
15944         (add_condition_to_pbb): Same.
15945         (add_param_constraints): Same.
15946         (pdr_add_memory_accesses): Same.
15947         (pdr_add_data_dimensions): Same.
15948
15949 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
15950
15951         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
15952         requirements.
15953
15954 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
15955
15956         * common.opt (feliminate-dwarf2-dups): Replace references to
15957         "DWARF 2" with just "DWARF".
15958         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
15959         * doc/extend.texi: Likewise.
15960         * doc/cpp.texi: Likewise.
15961         * doc/invoke.texi: Likewise.
15962         (Option Summary): Add -gdwarf to list of Debugging Options.
15963         (Debugging Options): Document -gdwarf.
15964         * doc/contrib.texi: Spell "DWARF" like that.
15965
15966 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
15967
15968         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
15969         warning.  Fix up formatting.
15970
15971         PR middle-end/67653
15972         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
15973         attempt to mark memory input operand addressable and
15974         call prepare_gimple_addressable in that case.  Don't adjust
15975         input_location for diagnostics, use error_at instead.
15976
15977 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
15978
15979         * config/rs6000/ppc-auxv.h: New file.
15980         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
15981         (cpu_is): Likewise.
15982         (cpu_supports): Likewise.
15983         * config/rs6000/rs6000.c: include "ppc-auxv.h".
15984         (cpu_is_info): New variable.
15985         (cpu_supports_info): Likewise.
15986         (tcb_verification_symbol): Likewise.
15987         (cpu_builtin_p): Likewise.
15988         (cpu_expand_builtin): New function.
15989         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
15990         (rs6000_init_builtins): Likewise.
15991         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
15992         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
15993         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
15994         * configure: Regenerate.
15995         * config.in: Likewise.
15996         * doc/extend.texi (PowerPC Built-in Functions): Document
15997         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
15998
15999 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
16000
16001         PR target/68609
16002         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
16003         domain check.
16004         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
16005         for V4SFmode.
16006
16007 2016-01-20  Richard Henderson  <rth@redhat.com>
16008
16009         PR bootstrap/69343
16010         PR bootstrap/69339
16011         PR tree-opt/68964
16012         Revert:
16013         * tree.c (tm_define_builtin): New.
16014         (find_tm_vector_type): New.
16015         (build_tm_vector_builtins): New.
16016         (build_common_builtin_nodes): Call it.
16017
16018 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
16019
16020         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
16021         (arm_fp_ok): Likewise.
16022         (arm_fp): Likewise.
16023         (arm_crypto): Likewise.
16024
16025 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
16026             Richard Biener  <rguenther@suse.de>
16027
16028         PR tree-optimization/69328
16029         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
16030         vectors have same number of elements.
16031         (vectorizable_condition): Fix masked version recognition.
16032
16033 2016-01-20  Richard Biener  <rguenther@suse.de>
16034
16035         PR tree-optimization/69345
16036         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
16037         (VN_INFO_PTR_INFO): Likewise.
16038         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
16039         info when it is equal between non-dominating SSA names.
16040         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16041         Make sure to look at original SSA infos.
16042
16043 2016-01-20  Jeff Law  <law@redhat.com>
16044
16045         PR target/25114
16046         * config/m68k/predicates.md (pow2_m1_operand): New predicate
16047         extracted from ...
16048         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
16049         (pc_or_label_operand): New predicate.
16050         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
16051         tests for small integers that are 2^n - 1.
16052
16053 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
16054
16055         * doc/invoke.texi (Options Summary): Add '.' after @xref.
16056
16057 2016-01-19  Jeff Law  <law@redhat.com>
16058
16059         PR middle-end/69347
16060         * tree-ssa-threadbackwards.c
16061         (fsm_find_control_statement_thread_paths): Do not try to lookup
16062         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
16063
16064 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
16065
16066         * doc/lto.texi: Remove text that says only Gold has linker plugin
16067         support.
16068
16069 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
16070
16071         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
16072         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
16073         the DIE accordingly.
16074         (modified_type_die): Add REVERSE parameter and pass it recursively,
16075         as well as to base_type_die.  Adjust presence check accordingly.
16076         (base_type_for_mode): Adjust call to modified_type_die.
16077         (add_type_attribute): Add REVERSE parameter and pass it to
16078         modified_type_die.
16079         (generic_parameter_die): Adjust call to add_type_attribute.
16080         (add_scalar_info): Likewise.
16081         (add_subscript_info): Likewise.
16082         (gen_array_type_die): Likewise.
16083         (gen_descr_array_type_die): Likewise.
16084         (gen_entry_point_die): Likewise.
16085         (gen_enumeration_type_die): Likewise.
16086         (gen_formal_parameter_die): Likewise.
16087         (gen_subprogram_die): Likewise.
16088         (gen_variable_die ): Likewise.
16089         (gen_const_die): Likewise.
16090         (gen_field_die): Likewise.
16091         (gen_pointer_type_die): Likewise.
16092         (gen_reference_type_die): Likewise.
16093         (gen_ptr_to_mbr_type_die): Likewise.
16094         (gen_inheritance_die): Likewise.
16095         (gen_subroutine_type_die): Likewise.
16096         (gen_typedef_die): Likewise.
16097         (force_type_die): Adjust call to modified_type_die.
16098
16099 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
16100
16101         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
16102         flow throughout the file.  Fix broken link to Objective-C 2.0
16103         documentation.
16104         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
16105         errors.
16106
16107 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16108
16109         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
16110
16111 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16112
16113         PR ipa/66223
16114         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
16115         (maybe_record_node): Record cxa_pure_virtual as the only possible
16116         target if there are not ohter candidates.
16117         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
16118
16119 2016-01-19  Richard Biener  <rguenther@suse.de>
16120
16121         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
16122         (get_memory_order): Likewise.
16123
16124 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
16125
16126         * tree-vect-stmts.c (vectorizable_store): Check
16127         rhs vectype.
16128
16129 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
16130
16131         PR jit/68446
16132         * gcc.c (driver::decode_argv): Add call to
16133         init_opts_obstack before init_options_struct.
16134         * opts.c (init_opts_obstack): Remove idempotency.
16135         (init_options_struct): Replace call to init_opts_obstack
16136         with a gcc_assert to verify that it has already been called.
16137         * toplev.c (toplev::main): Add call to init_opts_obstack before
16138         calls to init_options_struct.
16139         (toplev::finalize): Move cleanup of opts_obstack next to
16140         cleanup of save_decoded_options, clearing the latter, and
16141         save_decoded_options_count.
16142
16143 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16144
16145         PR target/69135
16146         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
16147         attribute to unconditional.  Remove %? from output template.
16148
16149 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16150             Jiong Wang  <jiong.wang@arm.com>
16151
16152         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
16153         generated from different expand order.
16154
16155 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16156
16157         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
16158         Add support for CCMP costing.
16159
16160 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16161
16162         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
16163         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
16164         (fccmpe<mode>): Likewise.
16165         (fcmp): Rename to fcmp and globalize pattern.
16166         (fcmpe): Likewise.
16167         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
16168         (aarch64_gen_ccmp_next): Add FP support.
16169
16170 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16171
16172         * target.def (gen_ccmp_first): Update documentation.
16173         (gen_ccmp_next): Likewise.
16174         * doc/tm.texi (gen_ccmp_first): Update documentation.
16175         (gen_ccmp_next): Likewise.
16176         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
16177         expand_ccmp_expr_1.  Improve comments.
16178         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
16179         (ccmp_ior<mode>): Remove pattern.
16180         (cmp<mode>): Remove expand.
16181         (cmp): Globalize pattern.
16182         (cstorecc4): Use cc_register.
16183         (mov<mode>cc): Remove ccmp_cc_register check.
16184         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
16185         Simplify after removal of CC_DNE/* modes.
16186         (aarch64_ccmp_mode_to_code): Remove.
16187         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
16188         In 'k' case use integer as condition.
16189         (aarch64_nzcv_codes): Remove inverted cases.
16190         (aarch64_code_to_ccmode): Remove.
16191         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
16192         comparison with CC register to be used in folowing CCMP/branch/CSEL.
16193         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
16194         pattern.  Return the comparison with CC register.  Invert conditions
16195         when bitcode is OR.
16196         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
16197         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
16198
16199 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16200
16201         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
16202         instrumented_version.
16203
16204 2016-01-19  Richard Biener  <rguenther@suse.de>
16205
16206         PR tree-optimization/69336
16207         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
16208         handled components with get_ref_base_and_extent.
16209         (equal_mem_array_ref_p): Adjust.
16210
16211 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
16212
16213         PR debug/65779
16214         * shrink-wrap.c: Include valtrack.h.
16215         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
16216         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
16217         in between insn and where it will be moved to.  Call
16218         dead_debug_insert_temp.
16219         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
16220         first and dead_debug_local_finish at the end.
16221         For uses and defs bitmap, handle all regs in between REGNO and
16222         END_REGNO, not just the first one.
16223
16224 2016-01-19  Richard Biener  <rguenther@suse.de>
16225
16226         PR tree-optimization/69352
16227         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
16228         (equal_mem_array_ref_p): Constrain size and max size properly.
16229         Compare the reverse flag.
16230
16231 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
16232
16233         * ira.c (ira): Update regstat data if we deleted insns.
16234
16235 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
16236
16237         PR rtl-optimization/68955
16238         PR rtl-optimization/64557
16239         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
16240         here.  Fix up formatting.
16241         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
16242
16243 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16244
16245         PR lto/69133
16246         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
16247         assume that the node has body.
16248         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
16249         check.
16250
16251 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16252
16253         * lto-streamer-out.c (lto_output): Do not stream instrumentation
16254         thunks.
16255
16256 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16257
16258         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
16259         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
16260
16261 2016-01-19  Martin Jambor  <mjambor@suse.cz>
16262             Martin Liska  <mliska@suse.cz>
16263             Michael Matz  <matz@suse.de>
16264
16265         * Makefile.in (OBJS): Add new source files.
16266         (GTFILES): Add hsa.c.
16267         * common.opt (disable_hsa): New variable.
16268         (-Whsa): New warning.
16269         * config.in (ENABLE_HSA): New.
16270         * configure.ac: Treat hsa differently from other accelerators.
16271         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
16272         $enable_offloading.
16273         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
16274         * doc/install.texi (Configuration): Document --with-hsa-runtime,
16275         --with-hsa-runtime-include, --with-hsa-runtime-lib and
16276         --with-hsa-kmt-lib.
16277         * doc/invoke.texi (-Whsa): Document.
16278         (hsa-gen-debug-stores): Likewise.
16279         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
16280         to invoke offload compiler for hsa acclerator.
16281         * opts.c (common_handle_option): Determine whether HSA offloading
16282         should be performed.
16283         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
16284         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
16285         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
16286         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
16287         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
16288         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
16289         GF_OMP_FOR_KIND_GRID_LOOP.
16290         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
16291         (pp_gimple_stmt_1): Likewise.
16292         * gimple-walk.c (walk_gimple_stmt): Likewise.
16293         * gimple.c (gimple_build_omp_grid_body): New function.
16294         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
16295         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
16296         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
16297         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
16298         GF_OMP_TEAMS_GRID_PHONY.
16299         (gimple_statement_omp_single_layout): Updated comments.
16300         (gimple_build_omp_grid_body): New function.
16301         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
16302         (gimple_omp_for_grid_phony): New function.
16303         (gimple_omp_for_set_grid_phony): Likewise.
16304         (gimple_omp_parallel_grid_phony): Likewise.
16305         (gimple_omp_parallel_set_grid_phony): Likewise.
16306         (gimple_omp_teams_grid_phony): Likewise.
16307         (gimple_omp_teams_set_grid_phony): Likewise.
16308         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
16309         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
16310         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
16311         (BUILT_IN_GOMP_TARGET): Updated type.
16312         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
16313         (adjust_for_condition): New function.
16314         (get_omp_for_step_from_incr): Likewise.
16315         (extract_omp_for_data): Moved parts to adjust_for_condition and
16316         get_omp_for_step_from_incr.
16317         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
16318         (fixup_child_record_type): Bail out if receiver_decl is NULL.
16319         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
16320         (scan_omp_parallel): Do not create child functions for phony
16321         constructs.
16322         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
16323         (scan_omp_1_op): Checking assert we are not remapping to
16324         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
16325         (parallel_needs_hsa_kernel_p): New function.
16326         (expand_parallel_call): Register apprpriate parallel child
16327         functions as HSA kernels.
16328         (grid_launch_attributes_trees): New type.
16329         (grid_attr_trees): New variable.
16330         (grid_create_kernel_launch_attr_types): New function.
16331         (grid_insert_store_range_dim): Likewise.
16332         (grid_get_kernel_launch_attributes): Likewise.
16333         (get_target_argument_identifier_1): Likewise.
16334         (get_target_argument_identifier): Likewise.
16335         (get_target_argument_value): Likewise.
16336         (push_target_argument_according_to_value): Likewise.
16337         (get_target_arguments): Likewise.
16338         (expand_omp_target): Call get_target_arguments instead of looking
16339         up for teams and thread limit.
16340         (grid_expand_omp_for_loop): New function.
16341         (grid_arg_decl_map): New type.
16342         (grid_remap_kernel_arg_accesses): New function.
16343         (grid_expand_target_kernel_body): New function.
16344         (expand_omp): Call it.
16345         (lower_omp_for): Do not emit phony constructs.
16346         (lower_omp_taskreg): Do not emit phony constructs but create for them
16347         a temporary variable receiver_decl.
16348         (lower_omp_taskreg): Do not emit phony constructs.
16349         (lower_omp_teams): Likewise.
16350         (lower_omp_grid_body): New function.
16351         (lower_omp_1): Call it.
16352         (grid_reg_assignment_to_local_var_p): New function.
16353         (grid_seq_only_contains_local_assignments): Likewise.
16354         (grid_find_single_omp_among_assignments_1): Likewise.
16355         (grid_find_single_omp_among_assignments): Likewise.
16356         (grid_find_ungridifiable_statement): Likewise.
16357         (grid_target_follows_gridifiable_pattern): Likewise.
16358         (grid_remap_prebody_decls): Likewise.
16359         (grid_copy_leading_local_assignments): Likewise.
16360         (grid_process_kernel_body_copy): Likewise.
16361         (grid_attempt_target_gridification): Likewise.
16362         (grid_gridify_all_targets_stmt): Likewise.
16363         (grid_gridify_all_targets): Likewise.
16364         (execute_lower_omp): Call grid_gridify_all_targets.
16365         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
16366         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
16367         (tree_omp_clause): Added union field dimension.
16368         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
16369         * tree.c (omp_clause_num_ops): Added number of arguments of
16370         OMP_CLAUSE__GRIDDIM_.
16371         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
16372         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
16373         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
16374         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
16375         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
16376         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
16377         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
16378         * tree-pass.h (make_pass_gen_hsail): Declare.
16379         (make_pass_ipa_hsa): Likewise.
16380         * ipa-hsa.c: New file.
16381         * lto-section-in.c (lto_section_name): Add hsa section name.
16382         * lto-streamer.h (lto_section_type): Add hsa section.
16383         * timevar.def (TV_IPA_HSA): New.
16384         * hsa-brig-format.h: New file.
16385         * hsa-brig.c: New file.
16386         * hsa-dump.c: Likewise.
16387         * hsa-gen.c: Likewise.
16388         * hsa.c: Likewise.
16389         * hsa.h: Likewise.
16390         * toplev.c (compile_file): Call hsa_output_brig.
16391         * hsa-regalloc.c: New file.
16392
16393 2016-01-18  Jeff Law  <law@redhat.com>
16394
16395         PR tree-optimization/69320
16396         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
16397         ranged object, do nothing if the RHS constant is not [0..1].
16398         (optimize_stmt): Comparing a boolean ranged object against a
16399         constant outside [0..1] results in a compile-time constant.
16400
16401         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
16402         test.
16403
16404 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
16405
16406         * doc/invoke.texi (Invoking GCC): Add new section to menu.
16407         (Option Summary): Update to reflect new section and moved options.
16408         (C++ Dialect Options): Move -fstats to new section.
16409         (Debugging Options): Move all dump, statistics, and other GCC
16410         developer options to new section.  Rewrite section introduction
16411         and re-order remaining options to put the more basic ones first.
16412         (Optimization Options): Move -fira-verbose and -flto-report* to
16413         new section.
16414         (Developer Options): New section incorporating moved options.
16415         * doc/cppopts.texi (-dM): Update cross-reference.
16416
16417 2016-01-18  Richard Henderson  <rth@redhat.com>
16418
16419         PR target/69176
16420         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
16421         operands to pseudo only if CSE is expected.  Split long immediate
16422         operands only after reload, and for the stack pointer.
16423         (*add<GPI>3_pluslong): Remove.
16424         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
16425         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
16426         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
16427         (*add<GPI>3 peepholes): New.
16428         (*add<GPI>3 splitters): New.
16429         * config/aarch64/constraints.md (Upl): New.
16430         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
16431
16432 2016-01-18  Richard Biener  <rguenther@suse.de>
16433
16434         PR tree-optimization/69297
16435         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
16436         stmt at most once.
16437         (vect_bb_vectorization_profitable_p): Clear visited flag again.
16438
16439 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
16440
16441         PR middle-end/68542
16442         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
16443         of mixind vector and scalar types.
16444         (fold_relational_const): Add handling of vector
16445         comparison with boolean result.
16446         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
16447         comparison of vector operands with boolean result for EQ/NE only.
16448         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
16449         (verify_gimple_cond): Likewise.
16450         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
16451         valid type of VAL.
16452
16453 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
16454
16455         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
16456         !TARGET_OCTEON.
16457
16458 2016-01-18  Richard Biener  <rguenther@suse.de>
16459
16460         PR middle-end/69308
16461         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
16462
16463 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16464
16465         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
16466
16467 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16468
16469         * omp-low.c (set_oacc_fn_attrib): Make extern.
16470         * omp-low.h (set_oacc_fn_attrib): Declare.
16471         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
16472         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
16473         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
16474         Add and handle function parameter oacc_kernels_p.
16475         (find_reduc_addr, get_omp_data_i_param): New function.
16476         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
16477         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
16478         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
16479         Calculate dominance info.  Skip loops that are not in a kernels region
16480         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
16481         (pass_parallelize_loops::execute): Call parallelize_loops with
16482         oacc_kernels_p argument.
16483         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
16484         New member function.
16485         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
16486         * passes.def: Add argument to pass_parallelize_loops instantation.
16487
16488 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16489
16490         * tree-parloops.c (pass_parallelize_loops::execute): Allow
16491         pass_parallelize_loops to be run outside the loop pipeline.
16492
16493 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16494
16495         * tree-scalar-evolution.c (follow_copies_to_constant): New.
16496         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
16497
16498 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16499
16500         PR target/63679
16501         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
16502         using get_ref_base_and_extent.
16503         (equal_mem_array_ref_p): New.
16504         (hashable_expr_equal_p): Add call to previous.
16505
16506 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16507
16508         PR target/63679
16509         * tree-sra.c (disqualified_constants, constant_decl_p): New.
16510         (sra_initialize): Allocate disqualified_constants.
16511         (sra_deinitialize): Free disqualified_constants.
16512         (disqualify_candidate): Update disqualified_constants when appropriate.
16513         (create_access): Scan for constant-pool entries as we go along.
16514         (scalarizable_type_p): Add check against type_contains_placeholder_p.
16515         (maybe_add_sra_candidate): Allow constant-pool entries.
16516         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
16517         (initialize_constant_pool_replacements): New.
16518         (sra_modify_assign): Avoid mangling assignments created by previous,
16519         and don't generate writes into constant pool.
16520         (sra_modify_function_body): Call initialize_constant_pool_replacements.
16521
16522 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16523
16524         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
16525         andnot instruction.
16526         (scalar_chain::convert_op): Likewise.
16527         * config/i386/i386.md (*andndi3_doubleword): New.
16528
16529 2016-01-18  Richard Biener  <rguenther@suse.de>
16530
16531         PR tree-optimization/69170
16532         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
16533         building a vector from scalar results of a pattern stmt.
16534
16535 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
16536
16537         * haifa-sched.c (autopref_multipass_init): Work around
16538         -Wmaybe-uninitialized warning.
16539
16540 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16541
16542         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
16543         against the constant 0.
16544
16545 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16546
16547         PR tree-optimization/68799
16548         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
16549         look up phi candidates in the statement-candidate map.
16550         (phi_add_costs): Likewise.
16551         (record_phi_increments): Likewise.
16552         (phi_incr_cost): Likewise.
16553         (ncd_with_phi): Likewise.
16554         (all_phi_incrs_profitable): Likewise.
16555
16556 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
16557
16558         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
16559         -Wmaybe-uninitialized warning.
16560
16561 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
16562
16563         * doc/invoke.texi (Invoking GCC): Add new section to menu.
16564         (Option Summary): Update to reflect new section and moved options.
16565         (C++ Dialect Options): Move -fvtable-verify and related options.
16566         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
16567         and profiling-related options.
16568         (Optimization Options): Move profile generation options and
16569         -fstack-protector and related options.
16570         (Instrumentation Options): New section incorporating moved options.
16571         (Code Generation Options): Move -finstrument-functions and
16572         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
16573
16574 2016-01-16  Tom de Vries  <tom@codesourcery.com>
16575
16576         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
16577
16578 2016-01-16  Tom de Vries  <tom@codesourcery.com>
16579
16580         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
16581
16582 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
16583
16584         * hash-table.h (hash_table::empty): Turn into an inline wrapper
16585         that checks whether the table is already empty.  Rename the
16586         original implementation to...
16587         (hash_table::empty_slot): ...this new private function.
16588
16589 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
16590
16591         PR diagnostic/68899
16592         * diagnostic-show-locus.c (layout::print_source_line): Move x
16593         offset of line until after call to
16594         get_line_width_without_trailing_whitespace.
16595
16596 2016-01-15  Jeff Law  <law@redhat.com>
16597
16598         PR tree-optimization/69270
16599         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
16600         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
16601         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
16602         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
16603         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
16604         ssa_name_has_boolean_range and constant_boolean_node.
16605
16606 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
16607
16608         PR rtl-optimization/69030
16609         * lra-spills.c (remove_pseudos): Check nrefs and make the function
16610         returning bool.
16611         (spill_pseudos): Delete debug insn for dead pseudo.
16612         (lra_spill): Initiate spill_hard_reg and slots memory separately.
16613
16614 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
16615
16616         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
16617         New.
16618         (TYPES_UNOPUS): Likewise.
16619         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
16620         builtin type, from UNOP to UNOPUS.
16621         (lbtruncuv4sf): Likewise.
16622         (lbtruncuv2df): Likewise.
16623         (lrounduv2sf): Likewise.
16624         (lrounduv4sf): Likewise.
16625         (lrounduv2df): Likewise.
16626         (lroundusf): Likewise.
16627         (lroundusf): Likewise.
16628         (lceiluv2sf): Likewise.
16629         (lceiluv4sf): Likewise.
16630         (lceiluv2df): Likewise.
16631         (lceilusf): Likewise.
16632         (lceiludf): Likewise.
16633         (lflooruv2sf): Likewise.
16634         (lflooruv4sf): Likewise.
16635         (lflooruv2df): Likewise.
16636         (lfloorusf): Likewise.
16637         (lfloorudf): Likewise.
16638         (lfrintnuv2sf): Likewise.
16639         (lfrintnuv4sf): Likewise.
16640         (lfrintnuv2df): Likewise.
16641         (lfrintnusf): Likewise.
16642         (lfrintnudf): Likewise.
16643         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
16644         conversion.
16645         (vcvtq_u32_f32): Likewise.
16646         (vcvtq_u64_f64): Likewise.
16647         (vcvta_u32_f32): Likewise.
16648         (vcvtaq_u32_f32): Likewise.
16649         (vcvtaq_u64_f64): Likewise.
16650         (vcvtm_u32_f32): Likewise.
16651         (vcvtmq_u32_f32): Likewise.
16652         (vcvtmq_u64_f64): Likewise.
16653         (vcvtn_u32_f32): Likwise.
16654         (vcvtnq_u32_f32): Likewise.
16655         (vcvtnq_u64_f64): Likewise.
16656         (vcvtp_u32_f32): Likewise.
16657         (vcvtpq_u32_f32): Likewise.
16658         (vcvtpq_u64_f64): Likewise.
16659         (vcvtmd_u64_f64): Likewise.
16660         (vcvtms_u32_f32): Likewise.
16661         (vcvtad_u64_f64): Likewise.
16662         (vcvtas_u32_f32): Likewise.
16663         (vcvtnd_u64_f64): Likewise.
16664         (vcvtns_u32_f32): Likewise.
16665         (vcvtpd_u64_f64): Likewise.
16666         (vcvtps_u32_f32): Likewise.
16667
16668 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16669
16670         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
16671         CSEL of zero_extended registers.
16672
16673 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16674
16675         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
16676         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
16677
16678 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16679
16680         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
16681         false when argument string is not found in the attributes table
16682         at all.
16683
16684 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
16685
16686         PR target/68609
16687         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
16688         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
16689         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
16690         precision estimate.
16691
16692 2016-01-15  Richard Biener  <rguenther@suse.de>
16693
16694         PR tree-optimization/66856
16695         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
16696         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
16697         (vect_create_new_slp_node): Increment stmt reference count.
16698         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
16699         an SLP tree before swapping operands.
16700         (vect_build_slp_tree): Likewise.
16701         (destroy_bb_vec_info): Free stmt info after SLP instances.
16702         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
16703         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
16704         (STMT_VINFO_NUM_SLP_USES): New macro.
16705
16706 2016-01-15  Richard Biener  <rguenther@suse.de>
16707
16708         PR debug/69137
16709         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
16710         (add_linkage_name): ... here.
16711         (gen_typedef_die): Use add_linkage_name_raw instead of
16712         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
16713         if necessary.
16714
16715 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
16716
16717         * gimplify.c (oacc_default_clause): Decode reference and pointer
16718         types for both kernels and parallel regions.
16719
16720 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
16721
16722         PR middle-end/69246
16723         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
16724
16725 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
16726
16727         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
16728         (convert_scalars_to_vector): Likewise.
16729
16730 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
16731
16732         * doc/extend.texi (Type Traits): Fix grammar.
16733
16734 2016-01-15  Martin Jambor  <mjambor@suse.cz>
16735
16736         * tree-inline.c (remap_decl): Use existing dclarations if
16737         remapping a type and prevent_decl_creation_for_types.
16738         (replace_locals_stmt): Do an initial remapping of non-VLA typed
16739         decls first.  Do real remapping with
16740         prevent_decl_creation_for_types set.
16741         * tree-inline.h (copy_body_data): New field
16742         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
16743         padding.
16744
16745 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16746
16747         * config/s390/s390.opt (mmvcle): More verbose help text.
16748
16749 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16750
16751         * config/s390/s390.opt: Add period to -mzvector option text.
16752
16753 2016-01-15  Richard Biener  <rguenther@suse.de>
16754
16755         PR tree-optimization/68961
16756         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
16757         of invariants in stores again.
16758
16759 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16760
16761         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
16762
16763 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
16764
16765         * config/i386/i386.c (ix86_expand_branch): Don't split
16766         DI mode xor instruction to SI mode.
16767
16768 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
16769
16770         PR ipa/68148
16771         * ipa-icf.c (sem_function::merge): Virtual functions may become
16772         reachable even if they address is not taken and there are no
16773         idrect calls.
16774
16775 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
16776
16777         * lto-streamer-out.c (subtract_estimated_size): New function.
16778         (get_symbol_initial_value): Use it.
16779
16780 2016-01-15  Christian Bruel  <christian.bruel@st.com>
16781
16782         PR target/65837
16783         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
16784         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
16785         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
16786         use add_builtin_function_ext_scope instead of add_builtin_function.
16787         (neon_set_p, neon_crypto_set_p): Remove.
16788         (arm_init_builtins): Always call arm_init_neon_builtins and
16789         arm_init_crypto_builtins.
16790         (arm_expand_builtin): Check that builtins are allowed for the arch.
16791         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
16792         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
16793         arm_init_neon_builtins call.
16794
16795 2016-01-15  Richard Biener  <rguenther@suse.de>
16796
16797         PR tree-optimization/69117
16798         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
16799         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
16800         of the leader conservatively.
16801         (free_scc_vn): Restore original SSA name infos.
16802
16803 2016-01-14  Jeff Law  <law@redhat.com>
16804
16805         PR tree-optimization/69270
16806         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
16807         single bit of precision, verify it's also unsigned.
16808         (record_edge_info): Use constant_boolean_node rather than fold_convert
16809         to convert boolean_true/boolean_false to the right type.
16810
16811 2016-01-14  Richard Henderson  <rth@redhat.com>
16812
16813         PR rtl-opt/69014
16814         * loop-doloop.c (record_reg_sets): New.
16815         (doloop_optimize): Reject the transform if the sequence
16816         clobbers registers live at the end of the loop block.
16817         (doloop_optimize_loops): Enable df_live if needed.
16818
16819 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16820
16821         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
16822         * config/rs6000/rs6000.c: Likewise.
16823         * config/rs6000/rs6000.h: Likewise.
16824         * config/rs6000/rs6000.md: Likewise.
16825         * doc/extend.texi: Likewsie.
16826
16827 2016-01-14  Jeff Law  <law@redhat.com>
16828
16829         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
16830         typo.
16831
16832 2016-01-14  Richard Henderson  <rth@redhat.com>
16833
16834         PR c/69272
16835         PR tree-opt/68964
16836         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
16837         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
16838         instead of builtin_decl_declared_p to test for declaration.
16839
16840 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
16841
16842         * doc/loop.texi (Loop Analysis and Representation): Document
16843         loop_depth function.
16844
16845 2016-01-14  Tom de Vries  <tom@codesourcery.com>
16846
16847         PR tree-optimization/68773
16848         * omp-low.c (expand_omp_target): Don't set force_output.
16849         * varpool.c (varpool_node::get_create): Same.
16850         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
16851         offload_funcs with force_output.
16852
16853 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16854
16855         PR debug/69244
16856         * lra-eliminations.c (move_plus_up): Don't change anything if either
16857         the outer or inner subreg mode is not MODE_INT.
16858         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
16859         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
16860
16861 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
16862
16863         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
16864         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
16865         reduc_uplus_@var{m}): Remove.
16866         * expr.c (expand_expr_real_2): Remove expansion path for
16867         reduc_[us](min|max|plus) optabs.
16868         * optabs-tree.c (scalar_reduc_to_vector): Remove.
16869         * optabs-tree.h (scalar_reduc_to_vector): Remove.
16870         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
16871         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
16872         * tree-vect-loop.c (vectorizable_reduction): Remove test for
16873         reduc_[us](min|max|plus) optabs.
16874
16875 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
16876
16877         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
16878         (reduc_plus_scal_v2sf): New.
16879         (reduc_smax_v2sf): Rename to...
16880         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
16881         (reduc_smin_v2sf): Rename to...
16882         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
16883
16884 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
16885
16886         * alias.c (compare_base_symbol_refs): New function.
16887         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
16888         it.
16889
16890 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16891
16892         PR middle-end/68146
16893         PR tree-optimization/69155
16894         * tree-complex.c: Include cfganal.h.
16895         (phis_to_revisit): New variable.
16896         (extract_component): Add phiarg_p argument.  Assert that returned
16897         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
16898         (update_phi_components): Partly rewrite to use loop over real/imag
16899         components instead of code duplication.  If extract_component returns
16900         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
16901         create_tmp_reg into the PHI node instead, and mention the phi triplet
16902         in phis_to_revisit.
16903         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
16904         in phis_to_revisit at the end.
16905
16906 2016-01-14  Richard Biener  <rguenther@suse.de>
16907
16908         PR tree-optimization/68060
16909         * tree-vect-loop.c (vect_is_simple_reduction): Check the
16910         outer loop reduction is only used in the inner loop before
16911         detecting a double reduction.
16912
16913 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
16914
16915         PR target/68269
16916         * combine.c (expand_field_assignment): Punt if compute_mode is
16917         unsupported scalar mode.
16918
16919 2016-01-14  Richard Biener  <rguenther@suse.de>
16920
16921         PR tree-optimization/66856
16922         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
16923         SLP node only if it built successfully.
16924         (vect_analyze_slp_instance): Adjust.
16925
16926 2016-01-14  Jeff Law  <law@redhat.com>
16927
16928         PR tree-optimization/69270
16929         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
16930         (record_edge_info): Use it.  Convert boolean_{true,false}_node
16931         to the type of op0.
16932
16933 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
16934
16935         PR ipa/66487
16936         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
16937         use block_ultimate_origin
16938         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
16939
16940 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
16941
16942         * doc/invoke.texi (Submodel Options): Rename section to
16943         "Machine-Dependent Options" to better reflect its content.
16944         Rewrite introductory text to remove archaic CPU names.
16945         Update references.
16946
16947 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
16948
16949         * doc/invoke.texi (Code Gen Options): Move section up in file,
16950         before target-specific options.  Update menu and option summary
16951         to reflect the new section ordering.
16952
16953 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
16954
16955         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
16956         (C++ Dialect Options): Add cross-reference to -std option.
16957         * doc/standards.texi (C++ Language): Document C++14 support.
16958
16959 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
16960
16961         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
16962         for pack/unpack functions for __ibm128.
16963         (PACK_IF): Likewise.
16964         (UNPACK_IF): Likewise.
16965
16966         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
16967         support for __ibm128 pack/unpack functions.
16968         (rs6000_invalid_builtin): Likewise.
16969         (rs6000_init_builtins): Likewise.
16970         (rs6000_opt_masks): Likewise.
16971
16972         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
16973         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
16974         functions
16975         (RS6000_BTM_COMMON): Likewise.
16976
16977         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
16978         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
16979         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
16980         128-bit floating point.  Add support for the double values to be
16981         in Altivec registers for TF/IF packing and unpacking, but restrict
16982         TD packing sub-fields to be FPR registers.  Don't allow overlapped
16983         register support for packing.  Allow pack inputs to be memory
16984         locations.  Don't build generator functions for unpack<mode>_dm
16985         and unpack<mode>_nodm.
16986         (unpack<mode>_dm): Likewise.
16987         (unpack<mode>_nodm): Likewise.
16988         (pack<mode>): Likewise.
16989
16990         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
16991         built-in functions to pack/unpack explicit __ibm128 values.
16992         (__builtin_unpack_ibm128): Likewise.
16993
16994         * doc/extend.texi (PowerPC Built-in Functions): Document
16995         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
16996
16997 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
16998
16999         PR c/66208
17000         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
17001         Add new arg loc and pass it down as context.
17002         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
17003         to the location to use for the warning.
17004         (check_function_arguments): New arg loc.  All callers changed.  Pass
17005         it to check_function_nonnull.
17006         * c-common.h (check_function_arguments): Adjust declaration.
17007
17008 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
17009
17010         PR tree-optimization/69156
17011         * gimple.c (validate_type): Removed.
17012         (gimple_builtin_call_types_compatible_p): Use
17013         useless_type_conversion_p instead of validate_type.
17014         * value-prof.c (gimple_stringop_fixed_value): Fold
17015         icall_size to correct type.
17016
17017 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
17018
17019         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
17020         effects.
17021
17022 2016-01-13  Richard Henderson  <rth@redhat.com>
17023
17024         PR tree-opt/68964
17025         * target.def (builtin_tm_load, builtin_tm_store): Remove.
17026         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
17027         (ix86_builtin_tm_store): Remove.
17028         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
17029         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
17030         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
17031         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
17032         * doc/tm.texi: Rebuild.
17033
17034         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
17035         (BUILT_IN_TM_MEMCPY_RTWN): New.
17036         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
17037         fallback from vector to integer helpers.
17038         (build_tm_load): Handle vector types directly, instead of
17039         via target hook.
17040         (build_tm_store): Likewise.
17041         (expand_assign_tm): Prepare for register types not handled by
17042         the above.  Copy them to memory and use memcpy.
17043         * tree.c (tm_define_builtin): New.
17044         (find_tm_vector_type): New.
17045         (build_tm_vector_builtins): New.
17046         (build_common_builtin_nodes): Call it.
17047
17048 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
17049
17050         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
17051         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
17052
17053 2016-01-13  Tom de Vries  <tom@codesourcery.com>
17054
17055         PR tree-optimization/69169
17056         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
17057         handled_struct_type param.
17058         (create_variable_info_for, intra_create_variable_infos): Call
17059         create_variable_info_for_1 with extra arg.
17060
17061 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
17062
17063         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
17064         and "armv8.1-a+crc" entries.
17065
17066 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
17067
17068         PR target/69228
17069         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
17070         Change first operand predicate from register_or_constm1_operand
17071         to register_operand.
17072         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
17073         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
17074         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
17075         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
17076         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
17077         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
17078         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
17079         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
17080         comparison with constm1_rtx from vec_prefetch_gen part.
17081
17082 2016-01-13  Richard Biener  <rguenther@suse.de>
17083
17084         PR tree-optimization/69013
17085         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
17086         Exchange assert for a test.
17087
17088 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17089
17090         PR target/69247
17091         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
17092
17093 2016-01-13  Richard Biener  <rguenther@suse.de>
17094
17095         PR tree-optimization/69242
17096         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
17097         assert with a check.
17098
17099 2016-01-13  Richard Biener  <rguenther@suse.de>
17100
17101         PR tree-optimization/69186
17102         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
17103         Properly guard vect_update_misalignment_for_peel call.
17104
17105 2016-01-12  Jeff Law  <law@redhat.com>
17106
17107         PR tree-optimization/pr67755
17108         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
17109         "need_profile_correction".
17110         (thread_block_1): Initialize new field to false by default.  If we
17111         have multiple thread paths through a common joiner to different
17112         final targets, then set new field to true.
17113         (compute_path_counts): Only do count adjustment when it's really
17114         needed.
17115
17116 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17117
17118         * doc/invoke.texi (Spec Files): Move section down in file, past
17119         all command-line option descriptions.
17120
17121 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17122
17123         PR middle-end/54809
17124         * doc/gty.texi: Remove documentation of mark_hook.
17125         * gengtype.c (struct write_types_data): Remove code to support
17126         mark_hook attribute.
17127         (walk_type): Likewise.
17128         (write_func_for_structure): Likewise.
17129
17130 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17131
17132         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
17133         Directory Options, and -specs= to Overall Options.
17134         (Overall Options): Adjust similarly.  Reorder to group related
17135         options together.  Make -specs= cross-reference the spec file details.
17136         (Directory Options): Adjust similarly.
17137
17138 2016-01-12  Jeff Law  <law@redhat.com>
17139
17140         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
17141
17142 2016-01-12  Olivier Hainque  <hainque@adacore.com>
17143
17144         * gcc.c (spec_undefvar_allowed): New global.
17145         (process_command): Set to true when running for --version or --help,
17146         alone or together.
17147         (getenv_spec_function): When the variable is not defined, use the
17148         variable name as the variable value if we're allowed not to issue
17149         a fatal error.
17150
17151 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
17152
17153         PR tree-optimization/68911
17154         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
17155         information computed for expression "init + nit * step".
17156
17157 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17158
17159         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
17160         about name of GCC executable.  Remove deleted node from menu.
17161         (Directory Options) <-B>: Remove cross-reference to deleted node.
17162         (Target Options): Delete section.
17163
17164 2016-01-12  Christian Bruel  <christian.bruel@st.com>
17165
17166         PR target/69180
17167         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
17168         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
17169
17170 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
17171
17172         PR target/69198
17173         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
17174         aligned_mem is properly set for AVX512-VL floating point masked
17175         stores.
17176
17177         PR target/69175
17178         * ifcvt.c (cond_exec_process_if_block): When removing the last
17179         insn from then_bb, remove also any possible barriers that follow it.
17180
17181 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
17182
17183         PR target/68456
17184         PR target/69226
17185         * config/i386/iamcu.h (SIZE_TYPE): New macro.
17186         (PTRDIFF_TYPE): Likewise.
17187         (WCHAR_TYPE): Likewise.
17188         (WCHAR_TYPE_SIZE): Likewise.
17189         (STDINT_LONG32): Likewise.
17190
17191 2016-01-12  Richard Biener  <rguenther@suse.de>
17192
17193         PR tree-optimization/69053
17194         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
17195         convert initial value for cond reductions.
17196
17197 2016-01-12  Richard Biener  <rguenther@suse.de>
17198
17199         PR tree-optimization/69007
17200         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
17201         widen_sum after dot_prod and sad.
17202
17203 2016-01-12  Richard Biener  <rguenther@suse.de>
17204
17205         PR tree-optimization/69168
17206         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
17207         pattern stmt SLP type.
17208         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
17209         end up unused so cope with that case.
17210
17211 2016-01-12  Richard Biener  <rguenther@suse.de>
17212
17213         PR tree-optimization/69157
17214         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
17215         stmts def type only during analyze phase.
17216         (vectorizable_call): Likewise.
17217         (vectorizable_simd_clone_call): Likewise.
17218         (vectorizable_conversion): Likewise.
17219         (vectorizable_assignment): Likewise.
17220         (vectorizable_shift): Likewise.
17221         (vectorizable_operation): Likewise.
17222         (vectorizable_store): Likewise.
17223         (vectorizable_load): Likewise.
17224
17225 2016-01-12  Richard Biener  <rguenther@suse.de>
17226
17227         PR tree-optimization/69174
17228         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
17229         space.
17230         (vectorizable_load): Properly compute the number of loads needed
17231         for permuted strided SLP loads and do not spuriously assign
17232         to SLP_TREE_VEC_STMTS.
17233
17234 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
17235
17236         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
17237         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
17238         (MD_EXEC_PREFIX): Remove.
17239         (MD_STARTFILE_PREFIX) Removee.
17240         (FILE_NAME_ABSOLUTE_P): Remove.
17241         (CPP_SPEC): Do not read macros from sys/version.h.
17242         (LINK_COMMAND_SPEC): Remove.
17243         (LOCAL_INCLUDE_DIR): Remove.
17244         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
17245         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
17246         (POST_LINK_SPEC): Define to invoke stubify after linker
17247         (LIBSTDCXX): Remove define
17248         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
17249         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
17250         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
17251         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
17252         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
17253         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
17254         (i386_djgpp_asm_named_section): Add propotype of new procedure
17255
17256         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
17257         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
17258         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
17259         in config/i386/djgpp.h).
17260         (STANDARD_STARTFILE_PREFIX_2): Define identical to
17261         STANDARD_STARTFILE_PREFIX_1.
17262         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
17263         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
17264         installation errors.
17265         (MAX_OFILE_ALIGNMENT): Define to 128.
17266         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
17267
17268         * config/i386/djgpp.c: New file. Add implementation of
17269         i386_djgpp_asm_named_section.
17270
17271         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
17272
17273         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
17274         Add rule for building djgpp.o.
17275
17276 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17277
17278         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
17279         (rtx_is_swappable_p): Reductions are swappable.
17280         (insn_is_swappable_p): V2DF reductions are swappable.
17281
17282 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
17283
17284         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
17285         reloads for other unsupported memory operands.
17286
17287 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
17288             Jim Wilson  <jim.wilson@linaro.org>
17289
17290         PR target/69194
17291         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
17292         copy_to_mode_reg instead of force_reg.
17293
17294 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
17295
17296         PR target/69225
17297         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
17298         TARGET_80387 is true.
17299
17300 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
17301
17302         PR target/69071
17303         * lra-eliminations.c (move_plus_up): Only move plus up
17304         if subreg of the constant can be simplified into constant
17305         and use the simplified subreg of the constant instead of
17306         the original constant.
17307
17308         * fold-const.c (fold_convertible_p): Don't return true
17309         for conversion of VECTOR_TYPE to same sized integral type.
17310         (fold_convert_loc): Fix up formatting.  Fold conversion of
17311         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
17312         instead of NOP_EXPR.
17313
17314         PR tree-optimization/69214
17315         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
17316         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17317         Formatting fix.
17318
17319         PR tree-optimization/69207
17320         * tree-vect-slp.c (vect_get_constant_vectors): For
17321         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
17322         fold_convertible_p to vector_type's element type, and always
17323         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
17324
17325 2016-01-11  Richard Biener  <rguenther@suse.de>
17326
17327         PR tree-optimization/69173
17328         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
17329         fixup the cycle if all stmts are in a pattern.
17330
17331 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
17332
17333         PR middle-end/68999
17334         * alias.c (base_alias_check): Move check for addresses with
17335         alignment ANDs before the call for compare_base_decls.
17336         (memrefs_conflict_p): Return -1 for different decls
17337         that went through alignment adjustments.
17338
17339 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17340
17341         PR rtl-optimization/68796
17342         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
17343         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
17344         and QImode comparisons against zero with CC_NZmode.
17345         * config/aarch64/iterators.md (short_mask): New mode_attr.
17346
17347 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
17348
17349         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
17350         (<avx512>_store<mode>_mask): Likewise.
17351
17352 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
17353             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17354
17355         PR rtl-optimization/68841
17356         * ifcvt.c (struct noce_if_info): Add orig_x field.
17357         (bbs_ok_for_cmove_arith): Add to_rename parameter.
17358         Don't record conflicts on to_rename if it's present.
17359         Allow memory destinations in sets.
17360         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
17361         blocks, passing orig_x to the checks.
17362         (noce_process_if_block): Set if_info->orig_x appropriately.
17363
17364 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17365
17366         PR tree-optimization/69069
17367         * tree-parloops.c (create_parallel_loop): Add missing phi args.
17368
17369 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
17370
17371         PR rtl-optimization/68920
17372         * config/i386/i386.c (ix86_option_override_internal): Restrict number
17373         of conditional moves for  RTL if-conversion to 1 for
17374         TARGET_ONE_IF_CONV_INSN.
17375         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
17376         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
17377         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
17378         parameter to restirct number of conditional moves for
17379         RTL if-conversion.
17380         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
17381         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
17382         conditionl moves.
17383
17384 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
17385
17386         PR bootstrap/69123
17387         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
17388         onepart vars.  Fix typo in comment.  Fix reversed condition in
17389         unshare test.
17390         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
17391
17392         PR bootstrap/69123
17393         * var-tracking.c (dump_onepart_variable_differences): New.
17394         (dataflow_set_different): If a detailed dump is requested,
17395         delay early returns and dump differences between onepart
17396         variables present before and after, and added variables.
17397
17398 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
17399
17400         PR target/69010
17401         * expr.c (expand_expr_real_1): For boolean vector constants
17402         with a scalar mode use const_scalar_mask_from_tree.
17403         (const_scalar_mask_from_tree): New.
17404         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
17405         assigned to a mask type to handle constants.
17406
17407 2016-01-11  Martin Jambor  <mjambor@suse.cz>
17408
17409         PR ipa/69044
17410         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
17411         useless parameters if we cannot change function signature.
17412
17413 2016-01-11  Martin Jambor  <mjambor@suse.cz>
17414
17415         PR ipa/66616
17416         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
17417         flag.
17418
17419 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17420
17421         PR tree-optimization/69109
17422         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
17423         latch with phi.
17424
17425 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17426
17427         PR tree-optimization/69108
17428         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
17429         res is not used in a phi.
17430
17431 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
17432
17433         PR 67425
17434         * common.opt (frandom-seed): Fix parameter name.
17435         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
17436
17437 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17438
17439         PR tree-optimization/69058
17440         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
17441         not supported.
17442
17443 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
17444
17445         * config/arc/arc.opt (mdiv-rem): Add period to the end.
17446         (mcode-density): Likewise.
17447
17448 2016-01-10  Tom de Vries  <tom@codesourcery.com>
17449
17450         PR tree-optimization/69062
17451         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
17452         (parallelize_loops): Don't paralelize loop that has phi with address
17453         arg.
17454
17455 2016-01-10  Tom de Vries  <tom@codesourcery.com>
17456
17457         PR tree-optimization/69039
17458         * tree-parloops.c (try_create_reduction_list): Only allow single exit
17459         phi for reduction.
17460
17461 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
17462
17463         PR middle-end/68743
17464         * match.pd: Require target has function_c99_misc before doing
17465         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
17466
17467 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
17468
17469         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
17470         use GMPINC.
17471         * configure: Regenerate.
17472
17473 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
17474
17475         PR middle-end/50865
17476         PR tree-optimization/69097
17477         * fold-const.h (expr_not_equal_to): New prototype.
17478         * fold-const.c: Include stringpool.h and tree-ssanames.h.
17479         (expr_not_equal_to): New function.
17480         * match.pd (X % -Y is the same as X % Y): Don't optimize
17481         unless X is known not to be equal to minimum or Y is known
17482         not to be equal to -1.
17483         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
17484         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
17485         (simplify_stmt_using_ranges): Adjust caller.
17486         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
17487         substitute_and_fold.
17488
17489 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
17490
17491         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
17492         w/o DECL_NAME.
17493
17494 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17495
17496         PR tree-optimization/69167
17497         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
17498         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
17499         ops[0] comparison.
17500         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
17501
17502 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
17503             Richard Biener  <rguenther@suse.de>
17504
17505         PR tree-optimization/68707
17506         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
17507         instances that can be handled via vect_load_lanes.
17508
17509 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
17510
17511         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
17512         if we can't determine address equivalence.
17513         * alias.c (compare_base_decl): Update for changed return value of
17514         symtab_node::equal_address_to.
17515
17516 2016-01-08  Jason Merrill  <jason@redhat.com>
17517
17518         PR c++/68983
17519         PR c++/67557
17520         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
17521         * expr.c (store_field): Not here.
17522         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
17523         call with TREE_ADDRESSABLE type.
17524         * tree-cfg.c (verify_gimple_call): Adjust.
17525
17526 2016-01-08  Olivier Hainque  <hainque@adacore.com>
17527
17528         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
17529         libc_internal.
17530
17531 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
17532
17533         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
17534         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
17535         (reduc_smin_v2sf): Rename to...
17536         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
17537         (reduc_splus_v2sf): Rename to...
17538         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
17539
17540 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17541
17542         PR tree-optimization/69162
17543         * gimplify.c (gimplify_va_arg_expr): Encode original type of
17544         valist argument in another argument.
17545         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
17546         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
17547         to determine the va_list type, build a MEM_REF instead of
17548         build_fold_indirect_ref.
17549
17550         PR tree-optimization/69172
17551         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
17552         gimple_build.
17553
17554 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17555
17556         PR tree-optimization/67781
17557         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
17558         and cmpnop in two steps: first the ones not accessed in original
17559         gimple expression in a endian independent way and then the ones not
17560         accessed in the final result in an endian-specific way.
17561
17562 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17563
17564         PR tree-optimization/69083
17565         * tree-vect-slp.c (vect_get_constant_vectors): For
17566         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
17567         element type.  If op is fold_convertible_p to vector_type's element
17568         type, use NOP_EXPR instead of VCE.
17569
17570 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
17571
17572         PR rtl-optimization/67778
17573         PR rtl-optimization/68634
17574         PR rtl-optimization/68909
17575         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
17576         block from the stack until done with it.  Remove a superfluous
17577         bitmap set.  Remove a superfluous bitmap test.
17578
17579 2016-01-07  Martin Sebor  <msebor@redhat.com>
17580
17581         PR c/68966
17582         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
17583         constraint on the type of arguments.
17584
17585 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
17586
17587         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
17588         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
17589         unaligned_access on the gcc_options set.
17590         * config/arm/arm.c (arm_option_override_internal): Use
17591         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
17592
17593 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
17594
17595         PR target/69140
17596         * config/i386/i386.c (ix86_frame_pointer_required): Enable
17597         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
17598
17599 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
17600
17601         Revert
17602         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
17603
17604         PR target/69140
17605         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
17606         depending on frame_pointer_needed before remaining integer and SSE
17607         registers are saved.
17608
17609 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
17610
17611         PR 1078
17612         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
17613
17614 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
17615
17616         PR target/69171
17617         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
17618         Use the "xBm" constraint.
17619         (float<sseintvecmodelower><mode>2<mask_name><round_name):
17620         Likewise.
17621         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
17622         (sse_cvtsi2ssq<round_name>): Likewise.
17623         (sse_cvtss2si<round_name>): Likewise.
17624         (sse_cvtss2siq<round_name>): Likewise.
17625         (sse2_cvtsi2sdq<round_name>): Likewise.
17626         (sse2_cvtsd2si<round_name>): Likewise.
17627         (sse2_cvtsd2siq<round_name>): Likewise.
17628         * config/i386/subst.md (round_nimm_scalar_predicate): New
17629         predicate.
17630
17631 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
17632
17633         PR middle-end/67639
17634         * varasm.c (make_decl_rtl): Mark invalid register vars as
17635         DECL_EXTERNAL.
17636
17637         PR rtl-optimization/66206
17638         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
17639         All callers changed.
17640
17641 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
17642
17643         PR tree-optimization/69141
17644         * tree-ssa-pre.c: Include langhooks.h.
17645         (eliminate_dom_walker::before_dom_children): Use
17646         lang_hooks.decl_printable_name instead of
17647         cgraph_node::get ()->name ().
17648
17649         PR middle-end/68960
17650         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
17651         it and DECL_ALIGN too.
17652
17653 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
17654
17655         * config/mips/mips-ftypes.def: Sort to lexicographical order.
17656
17657 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
17658
17659         PR target/69140
17660         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
17661         depending on frame_pointer_needed before remaining integer and SSE
17662         registers are saved.
17663
17664 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17665
17666         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
17667         mode iterator with VSX_M2.
17668         (*p9_vecstore_<mode>): Likewise.
17669         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
17670         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
17671         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
17672         (define_split for VSX_LE128 stores): Likewise.
17673         (define_peephole2 for TImode LE swaps): Likewise.
17674         (define_split for VSX_LE128 post-reload stores): Likewise.
17675
17676 2016-01-06  Marek Polacek  <polacek@redhat.com>
17677
17678         PR sanitizer/69099
17679         * convert.c (convert_to_integer_1): Adjust call to
17680         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
17681         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
17682         EXPR instead of ARG.
17683         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
17684
17685 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17686
17687         PR 1078
17688         * doc/extend.texi (RL78 Variable Attributes): New section.
17689
17690 2016-01-05  Marek Polacek  <polacek@redhat.com>
17691
17692         PR c/69104
17693         * builtins.c (get_memmodel): Use expansion point location rather than
17694         the input location.  Call warning_at rather than warning.
17695         (expand_builtin_atomic_compare_exchange): Likewise.
17696         (expand_builtin_atomic_load): Likewise.
17697         (expand_builtin_atomic_store): Likewise.
17698         (expand_builtin_atomic_clear): Likewise.
17699
17700 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17701
17702         PR target/68991
17703         * config/i386/i386.c (ix86_expand_vector_logical_operator):
17704         Replace nonimmediate_operand with vector_operand.
17705         * config/i386/predicates.md (vector_operand): New predicate.
17706         (general_vector_operand): Replace nonimmediate_operand with
17707         vector_operand.
17708         * config/i386/sse.md: Replace nonimmediate_operand with
17709         vector_operand and m constraint with Bm constraint on SSE
17710         patterns with 16-byte memory operand.
17711         * config/i386/subst.md (round_nimm_predicate): Replace
17712         nonimmediate_operand with vector_operand.
17713         (round_saeonly_nimm_predicate): Likewise.
17714         (round_saeonly_nimm_scalar_predicate): New.
17715
17716 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17717
17718         PR target/68991
17719         * config/i386/constraints.md (Bm): New constraint.
17720         * config/i386/predicates.md (vector_memory_operand): New
17721         predicate.
17722         * config/i386/sse.md: Replace xm with xBm in plusminus and
17723         any_logic patterns.
17724
17725 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17726
17727         PR 1078
17728         * doc/extend.texi (V850 Function Attributes): New section.
17729         (V850 Variable Attributes): New section.
17730
17731 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17732
17733         PR 1078
17734         * doc/extend.texi (MicroBlaze Function Attributes): Document
17735         interrupt_handler and fast_interrupt attributes.
17736
17737 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
17738
17739         PR other/60465
17740         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
17741         for local symbolic operands.
17742         * config/ia64/predicates.md (local_symbolic_operand64): New
17743         predicate.
17744
17745 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17746
17747         PR rtl-optimization/68651
17748         * combine.c (combine_simplify_rtx): Canonicalize x + x into
17749         x << 1.
17750
17751 2016-01-05  Nathan Sidwell  <nathan@acm.org>
17752
17753         * alias.c (compare_base_decls): Use symtab_node::get.
17754
17755 2016-01-05  Nick Clifton  <nickc@redhat.com>
17756
17757         PR target/68770
17758         * ira-costs.c (copy_cost): Initialise the t_icode field of the
17759         secondary_reload_info structure.
17760
17761         PR target/66655
17762         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
17763         decls if weak support is available.
17764
17765 2016-01-04  Martin Sebor  <msebor@redhat.com>
17766
17767         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
17768
17769 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
17770
17771         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
17772         OPTION_MASK_P9_DFORM.
17773
17774         * config/rs6000/constraints.md (wo constraint): New constraint for
17775         ISA 3.0 (power9).
17776
17777         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
17778         for wo constraint.
17779         (rs6000_init_hard_regno_mode_ok): Likewise.
17780
17781         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
17782         wo constraint.
17783
17784         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
17785         expanders not to have constraints.  Add support for ISA 3.0 xxperm
17786         instruction.  Add support for fusing xxlor with xxperm.
17787         (altivec_vperm_<mode>_internal): Likewise.
17788         (altivec_vperm_v8hiv16qi): Likewise.
17789         (altivec_vperm_<mode>v16q): Likewise.
17790         (altivec_vperm_<mode>_uns): Likewise.
17791         (vperm_v8hiv4si): Likewise.
17792         (vperm_v16qiv8hi): Likewise.
17793
17794         * doc/md.texi (RS/6000 constraints): Document wo constraint.
17795
17796 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
17797
17798         Update copyright years.
17799
17800         * gcc.c (process_command): Update copyright notice dates.
17801         * gcov-dump.c (print_version): Ditto.
17802         * gcov.c (print_version): Ditto.
17803         * gcov-tool.c (print_version): Ditto.
17804         * gengtype.c (create_file): Ditto.
17805         * doc/cpp.texi: Bump @copying's copyright year.
17806         * doc/cppinternals.texi: Ditto.
17807         * doc/gcc.texi: Ditto.
17808         * doc/gccint.texi: Ditto.
17809         * doc/gcov.texi: Ditto.
17810         * doc/install.texi: Ditto.
17811         * doc/invoke.texi: Ditto.
17812
17813 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17814
17815         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
17816         modes larger than TImode as TImode if NEON is not enabled.
17817
17818 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17819
17820         PR target/69100
17821         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
17822         mode for %f0-%f31 only if TARGET_FPU.
17823
17824 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17825
17826         PR target/69072
17827         * config/sparc/sparc.c (scan_record_type): Take into account subfields
17828         to compute the PACKED_P predicate.
17829         (function_arg_record_value): Minor tweaks.
17830
17831 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17832
17833         * doc/install.texi (--with-multilib-list): Describe the meaning of the
17834         option for arm*-*-* targets.
17835
17836 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
17837
17838         * doc/extend.texi (Common Function Attributes): Move docs for
17839         MSP430-specific attributes to....
17840         (MSP430 Function Attributes): ...here.  Delete the redundant
17841         entries and copy-edit the remaining text.
17842         (MSP430 Variable Attributes): Use uniform format for index
17843         entries and add a cross-reference to the corresponding function
17844         attribute docs.
17845
17846 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
17847
17848         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
17849         -finite-math typo.
17850         (x86 Options): Likewise.
17851
17852 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
17853
17854         PR 1078
17855
17856         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
17857         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
17858         to corresponding attribute.
17859
17860 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
17861
17862         * doc/extend.texi (Common Function Attributes) <noplt>: Move
17863         to correct alphabetization of table.  Copy-edit and correct
17864         markup.
17865         <stack_protect>: Likewise.
17866         <target_clones>: Likewise.
17867         <simd>: Likewise.
17868         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
17869         Correct punctuation.
17870         (Code Gen Options) <-fno-plt>: Copy-edit.
17871
17872 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17873
17874         PR target/68917
17875         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
17876         SI values.  Explicitly convert SI to DI and vice-versa.
17877
17878 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
17879
17880         PR tree-optimization/69070
17881         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
17882         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
17883
17884         PR sanitizer/69055
17885         * ubsan.c (ubsan_instrument_float_cast): Call
17886         initialize_sanitizer_builtins.
17887
17888         PR target/69015
17889         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
17890 \f
17891 Copyright (C) 2016 Free Software Foundation, Inc.
17892
17893 Copying and distribution of this file, with or without modification,
17894 are permitted in any medium without royalty provided the copyright
17895 notice and this notice are preserved.