predicates.md (const_m255_to_m1_operand): New.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-07-15  Georg-Johann Lay  <avr@gjlay.de>
2
3         * config/avr/predicates.md (const_m255_to_m1_operand): New.
4         * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
5         * config/avr/avr.md (add<mode>3) <ALL1>: Make "r,0,r" more
6         expensive.
7         (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
8         (*usum_widenqihi3, *udiff_widenqihi3)
9         (*addhi3_zero_extend.const): New combiner insns.
10         (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
11         just 1 bit is affected.
12         * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
13         (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
14
15 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
16
17         * omp-low.c (lower_omp_target): Mark data clauses with
18         GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
19         zero-length subarrays.
20
21 2016-07-15  Richard Biener  <rguenther@suse.de>
22
23         PR tree-optimization/71881
24         * tree-loop-distribution.c (destroy_loop): Remove blocks in
25         reverse DOM order to make debug temp generation happy.
26
27 2016-07-15  Richard Biener  <rguenther@suse.de>
28
29         PR tree-optimization/71887
30         * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
31         verify it is not zero for division / modulo handling.
32         (value_replacement): Adjust.
33
34 2016-07-15  Virendra Pathak  <virendra.pathak@broadcom.com>
35             Julian Brown  <julian@codesourcery.com>
36
37         * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
38         * config/aarch64/aarch64-cost-tables.h
39         (vulcan_extra_costs): New variable.
40         * config/aarch64/aarch64.c
41         (vulcan_addrcost_table): Likewise.
42         (vulcan_regmove_cost): Likewise.
43         (vulcan_vector_cost): Likewise.
44         (vulcan_branch_cost): Likewise.
45         (vulcan_tunings): Likewise.
46
47 2016-07-15  Alexander Monakov  <amonakov@ispras.ru>
48
49         * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
50         (output_in_order): Loop over undefined variables too.  Output them
51         via assemble_undefined_decl.  Skip variables that correspond to hard
52         registers or have value-exprs.
53         * varpool.c (symbol_table::output_variables): Handle undefined
54         variables together with defined ones.
55
56 2016-07-15  Richard Biener  <rguenther@suse.de>
57
58         * tree-ssa-pre.c (get_representative_for): Make sure to return
59         the value number of SSA names.
60         (phi_translate_1): get_representative_for cannot return NULL.
61         (do_pre_regular_insertion): Remove redundant call to
62         fully_constant_expression.
63         (do_pre_partial_partial_insertion): Likewise.
64
65 2016-07-15  Bin Cheng  <bin.cheng@arm.com>
66
67         * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
68         (derive_simple_iv_with_niters): New function.
69         (simple_iv): Rewrite using simple_iv_with_niters.
70         * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
71         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
72         function.
73         (number_of_iterations_exit): Rewrite using above function.
74         * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
75         Decl.
76
77 2016-07-15  Richard Biener  <rguenther@suse.de>
78
79         * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
80         vec_construct cost.
81
82 2016-07-14  Jakub Jelinek  <jakub@redhat.com>
83
84         PR tree-optimization/71872
85         * tree-data-ref.c (get_references_in_stmt): Ignore references
86         with is_gimple_constant get_base_address.
87
88 2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
89
90         * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
91         (TARGET_HAVE_LDACQD): New macro.
92         * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
93         than TARGET_HAVE_LDACQ.
94         (arm_load_acquire_exclusivedi): Likewise.
95         (arm_store_release_exclusivedi): Likewise.
96
97 2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
98
99         PR rtl-optimization/71878
100         * lra-constraints.c (match_reload): Pass information about other
101         output operands.  Create new unique register value if matching input
102         operand shares same register value as output operand being considered.
103         (curr_insn_transform): Record output operands already processed.
104
105 2016-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
106
107         PR target/65951
108         PR tree-optimization/70923
109         * tree-vect-patterns.c: Include mult-synthesis.h.
110         (target_supports_mult_synth_alg): New function.
111         (synth_lshift_by_additions): Likewise.
112         (apply_binop_and_append_stmt): Likewise.
113         (vect_synth_mult_by_constant): Likewise.
114         (target_has_vecop_for_code): Likewise.
115         (vect_recog_mult_pattern): Use above functions to synthesize vector
116         multiplication by integer constants.
117
118 2016-07-14  Alan Modra  <amodra@gmail.com>
119
120         * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
121         gpr alternatives.  Correct '*' placement on Y,r alternative.
122         Add '*' on operand 1 of r,r alternative.
123
124 2016-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
125
126         * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
127         * expmed.h: ... Here.
128
129 2016-07-14  Jan Hubicka  <hubicka@ucw.cz>
130
131         * gimple.h (stmt_can_terminate_bb_p): New function.
132         * tree-cfg.c (need_fake_edge_p): Rename to ...
133         (stmt_can_terminate_bb_p): ... this; return true if stmt can
134         throw external; handle const and pure calls.
135         * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
136
137 2016-07-14  Richard Biener  <rguenther@suse.de>
138
139         PR tree-optimization/71866
140         * tree-ssa-pre.c (get_constant_for_value_id): Remove.
141         (do_hoist_insertion): Avoid endless recursion when we
142         didn't insert anything because we managed to simplify
143         things down to a constant or SSA name.
144         (fully_constant_expression): Re-write in terms of ...
145         * tree-ssa-sccvn.h (vn_nary_simplify): ... this.  Declare.
146         * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
147         vn_nary_build_or_lookup_1.
148         (vn_nary_build_or_lookup_1): Added flag and renamed from ...
149         (vn_nary_build_or_lookup): ... this which now wraps it.
150
151 2016-07-14  Alan Modra  <amodra@gmail.com>
152
153         PR target/71733
154         * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
155         with p9_vector override before power9-dform override.
156
157 2016-07-13  Andi Kleen  <ak@linux.intel.com>
158
159         * value-prof.c (gimple_value_profile_transformations): Don't run
160         when auto_profile is on.
161
162 2016-07-13  Andi Kleen  <ak@linux.intel.com>
163
164         * auto-profile.c (update_inlined_ind_target,
165         afdo_indirect_call): Print information to dump file.
166
167 2016-07-13  Andrew Burgess  <andrew.burgess@embecosm.com>
168
169         * genrecog.c (special_predicate_operand_p): New function.
170         (predicate_name): Move function.
171         (validate_pattern): Don't warn about missing mode for all
172         define_special_predicate predicates.
173
174 2016-07-13  Bin Cheng  <bin.cheng@arm.com>
175
176         * tree-vect-data-refs.c (vect_no_alias_p): New function.
177         (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
178         resolve alias checks which are known at compilation time.
179         Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
180         alias checks are resolved.  Move dump info for too many runtime
181         alias checks to here...
182         * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
183
184 2016-07-13  Richard Biener  <rguenther@suse.de>
185
186         PR tree-optimization/24574
187         * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
188         position and add shift, rotate, divison and modulo support
189         for left zero.
190         (value_replacement): Pass in argument position to absorbing_element_p.
191
192 2016-07-13  Ilya Enkovich  <ilya.enkovich@intel.com>
193
194         PR ipa/71633
195         * ipa-inline-transform.c (inline_call): Support
196         instrumented thunks.
197
198 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
199
200         * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
201         (TARGET_IDIV): Set for all Thumb targets provided they have hardware
202         divide feature.
203         * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
204         Baseline.  Make initial alternative TARGET_32BIT only.
205         (udivsi3): Likewise.
206         * config/arm/thumb1.md (thumb1_cbz): New define_insn.
207         * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
208         target.
209
210 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
211
212         * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
213         * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
214         availability with TARGET_HAVE_MOVT.
215         (thumb_legitimate_constant_p): Strip the high part of a label_ref.
216         (thumb1_rtx_costs): Also return 0 if setting a half word constant and
217         MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
218         UINTVAL.
219         (thumb1_size_rtx_costs): Make set of half word constant also cost 1
220         extra instruction if MOVW is available.  Use a cost variable
221         incremented by COSTS_N_INSNS (1) when the condition match rather than
222         returning an arithmetic expression based on COSTS_N_INSNS.  Make
223         constant with bottom half word zero cost 2 instruction if MOVW is
224         available.
225         * config/arm/arm.md (define_attr "arch"): Add v8mb.
226         (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
227         target is ARMv8-M Baseline.
228         (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
229         (arm_movtas_ze): Likewise.
230         * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
231         alternative for constants satisfying j constraint.
232         (thumb1_movsi_insn): Likewise.
233         (movsi splitter for K alternative): Tighten condition to not trigger
234         if movt is available and j constraint is satisfied.
235         (Pe immediate splitter): Likewise.
236         (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
237         constant fitting in an halfword to use MOVW.
238         * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
239         effective target.
240
241 2016-07-13  Richard Biener  <rguenther@suse.de>
242
243         PR middle-end/71104
244         * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
245         gimplifying the LHS.  Make sure to gimplify a returning twice
246         call LHS without using SSA names.
247
248 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
249
250         * tree-data-ref.c (find_data_references_in_stmt): Remove
251         unnecessary call to vec::release.
252         (graphite_find_data_references_in_stmt): Likewise.
253         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
254         * tree-vect-stmts.c (vectorizable_condition): Likewise.
255
256 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
257
258         * cfgexpand.c (expand_used_vars): Make the type of a local variable auto_vec.
259         * genmatch.c (lower_for): Likewise.
260         * haifa-sched.c (haifa_sched_init): Likewise.
261         (add_to_speculative_block): Likewise.
262         (create_check_block_twin): Likewise.
263         * predict.c (handle_missing_profiles): Likewise.
264         * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
265         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
266         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise.
267         (maybe_lower_iteration_bound): Likewise.
268         * tree-ssa-sccvn.c (DFS): Likewise.
269         * tree-stdarg.c (reachable_at_most_once): Likewise.
270         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
271         (vectorizable_store): Likewise.
272
273 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
274
275         * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
276         (sccvn_dom_walker): make cond_stack an auto_vec.
277
278 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
279
280         * ree.c (struct ext_state): Make type of members auto_vec.
281         (find_and_remove_re): Adjust.
282
283 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
284
285         * cfgexpand.c (struct stack_vars_data): Make type of fields
286         auto_vec.
287         (expand_used_vars): Adjust.
288
289 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
290
291         * ipa.c (record_cdtor_fn): Adjust.
292         (build_cdtor_fns): Likewise.
293         (ipa_cdtor_merge): Make static_ctors and static_dtors local
294         variables.
295
296 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
297
298         * genextract.c (struct accum_extract): Add constructor and make
299         members auto_vec.
300         (gen_insn): Adjust.
301
302 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
303
304         * tree.c (struct free_lang_data_d): Add constructor and change
305         types of members to ones that automatically manage resources.
306         (fld_worklist_push): Adjust.
307         (find_decls_types): Likewise.
308         (find_decls_types_in_eh_region): Likewise.
309         (free_lang_data_in_cgraph): Stop manually creating and
310         destroying members of free_lang_data_d.
311
312 2016-07-13  Uros Bizjak  <ubizjak@gmail.com>
313
314         PR rtl-optimization/68961
315         * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
316         peephole variant.  Use sse_reg_operand predicates.
317
318 2016-07-12  Uros Bizjak  <ubizjak@gmail.com>
319
320         * config/i386/predicates.md (x86_64_immediate_operand)
321         <case CONST_INT>: Remove unneeded truncation to DImode.
322         <case CONST>: Ditto.
323         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
324
325 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
326
327         PR target/71805
328         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
329         The xxperm and xxpermr instructions require that the 2nd input
330         operand overlap with the output operand, and not the 1st.
331         (altivec_vperm_v8hiv16qi): Likewise.
332         (altivec_vperm_<mode>_uns_internal): Likewise.
333         (altivec_vpermr_<mode>_internal): Likewise.
334         (vperm_v8hiv4si): Likewise.
335         (vperm_v16qiv8hi): Likewise.
336
337 2016-07-12  Martin Liska  <mliska@suse.cz>
338
339         * params.def: Add avg-loop niter.
340         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
341         * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
342         * doc/invoke.texi: Document the new parameter.
343
344 2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
345
346         PR middle-end/71700
347         * expr.c (store_constructor): Mask sign-extended bits when widening
348         sub-word constructor element at the start of a word.
349
350 2016-07-12  Martin Liska  <mliska@suse.cz>
351
352         * Makefile.in: Append rule for params-options.h.
353         * params-options.h: New file.
354
355 2016-07-12  Martin Liska  <mliska@suse.cz>
356
357         * ira-build.c (mark_loops_for_removal): Properly iterate
358         loops.
359
360 2016-07-12  Steven Bosscher  <steven@gcc.gnu.org>
361             Richard Biener  <rguenther@suse.de>
362
363         PR tree-optimization/23286
364         PR tree-optimization/70159
365         * doc/invoke.texi: Document -fcode-hoisting.
366         * common.opt (fcode-hoisting): New flag.
367         * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
368         * tree-ssa-pre.c (pre_stats): Add hoist_insert.
369         (do_regular_insertion): Rename to ...
370         (do_pre_regular_insertion): ... this and amend general comments
371         on insertion strathegy.
372         (do_partial_partial_insertion): Rename to ...
373         (do_pre_partial_partial_insertion): ... this.
374         (do_hoist_insertion): New function.
375         (insert_aux): Take flags on whether to do PRE and/or hoist insertion
376         and call do_hoist_insertion properly.
377         (insert): Adjust.
378         (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
379         (pass_pre::execute): Register hoist_insert stats.
380
381 2016-07-12  Jakub Jelinek  <jakub@redhat.com>
382
383         PR middle-end/71716
384         * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
385         for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
386         is different from mode's bitsize.  Small cleanup.
387
388 2016-07-12  Richard Biener  <rguenther@suse.de>
389
390         PR rtl-optimization/68961
391         * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
392         to simplify to a non-constant.
393
394 2016-07-11  Jakub Jelinek  <jakub@redhat.com>
395
396         PR middle-end/71758
397         * omp-low.c (expand_omp_target): Gimplify device.
398
399         PR tree-optimization/71823
400         * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
401         to get vec_oprnds2 from op2.
402
403 2016-07-11  Uros Bizjak  <ubizjak@gmail.com>
404
405         * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
406         Hoist common subexpressions.
407         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
408
409 2016-07-11  Pat Haugen  <pthaugen@us.ibm.com>
410
411         PR target/71800
412         * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
413         prevent generation of 'stxsiwx' on pre Power8 hardware.
414
415 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
416
417         * input.c: Include cpplib.h.
418         (selftest::temp_source_file): New class.
419         (selftest::temp_source_file::temp_source_file): New ctor.
420         (selftest::temp_source_file::~temp_source_file): New dtor.
421         (selftest::should_have_column_data_p): New function.
422         (selftest::test_should_have_column_data_p): New function.
423         (selftest::temp_line_table): New class.
424         (selftest::temp_line_table::temp_line_table): New ctor.
425         (selftest::temp_line_table::~temp_line_table): New dtor.
426         (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
427         it to create a temp_line_table.
428         (selftest::assert_loceq): Only verify LOCATION_COLUMN for
429         locations that are known to have column data.
430         (selftest::line_table_case): New struct.
431         (selftest::test_reading_source_line): Move tempfile handling
432         to class temp_source_file.
433         (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
434         (selftest::assert_token_loc_eq): New function.
435         (ASSERT_TOKEN_LOC_EQ): New macro.
436         (selftest::test_lexer): New function.
437         (selftest::boundary_locations): New array.
438         (selftest::input_c_tests): Call test_should_have_column_data_p.
439         Loop over a test matrix of interesting values of location and
440         default_range_bits, calling test_lexer on each case in the matrix.
441         Move call to test_accessing_ordinary_linemaps into the matrix.
442         * selftest.h (ASSERT_EQ): Reimplement in terms of...
443         (ASSERT_EQ_AT): New macro.
444
445 2016-07-11  H.J. Lu  <hongjiu.lu@intel.com>
446
447         PR target/71801
448         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
449         Don't convert TImode in debug insn.
450
451 2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
452
453         Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
454         * tree-core.h (tree_base::nothrow_flag): Adjust comment.
455         (tree_type_common::lang_flag_7): New.
456         (tree_type_common::spare): Reduce size.
457         * tree.h (TYPE_ALIGN_OK): Remove.
458         (TYPE_LANG_FLAG_7): New.
459         (get_inner_reference): Adjust header.
460         * print-tree.c (print_node): Adjust.
461         * expr.c (get_inner_reference): Remove parameter keep_aligning.
462         (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
463         calls to get_inner_reference.
464         (expand_expr_real_1): Adjust call to get_inner_reference.  Remove
465         handling of TYPE_ALIGN_OK.
466         * builtins.c (get_object_alignment_2): Adjust call to
467         get_inner_reference.  Remove handling of VIEW_CONVERT_EXPR.
468         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
469         TYPE_ALIGN_OK.
470         * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
471         * cfgexpand.c (expand_debug_expr): Likewise.
472         * dbxout.c (dbxout_expand_expr): Likewise.
473         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
474         loc_list_from_tree, fortran_common): Likewise.
475         * fold-const.c (optimize_bit_field_compare,
476         decode_field_reference, fold_unary_loc, fold_comparison,
477         split_address_to_core_and_offset): Likewise.
478         * gimple-laddress.c (execute): Likewise.
479         * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
480         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
481         * hsa-gen.c (gen_hsa_addr): Likewise.
482         * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
483         * tsan.c (instrument_expr): Likewise.
484         * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
485         * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
486         * tree-affine.c (tree_to_aff_combination,
487         get_inner_reference_aff): Adjust calls to get_inner_reference.
488         * tree-data-ref.c (split_constant_offset_1,
489         dr_analyze_innermost): Likewise.
490         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
491         * tree-sra.c (ipa_sra_check_caller): Likewise.
492         * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
493         * tree-ssa-math-opts.c (find_bswap_or_nop_load,
494         bswap_replace): Likewise.
495         * tree-vect-data-refs.c (vect_check_gather,
496         vect_analyze_data_refs): Likewise.
497         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
498         * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
499         TYPE_ALIGN_OK.
500
501 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
502
503         * Makefile.in (selftest-valgrind): New phony target.
504         * function-tests.c (selftest::build_cfg): Delete pass instances
505         created by the test.
506         (selftest::convert_to_ssa): Likewise.
507         (selftest::test_expansion_to_rtl): Likewise.
508         * tree-cfg.c (selftest::test_linear_chain): Release dominator
509         vectors.
510         (selftest::test_diamond): Likewise.
511
512 2016-07-11  Richard Biener  <rguenther@suse.de>
513
514         PR tree-optimization/71816
515         * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
516         than replacing all of its operands.
517
518 2016-07-11  Alan Modra  <amodra@gmail.com>
519
520         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
521         (ctr<mode>): Add unspec.
522         (ctr<mode>_internal*): Likewise.
523
524 2016-07-08  James Bowman  <james.bowman@ftdichip.com>
525
526         * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
527         * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
528
529 2016-07-08  Vladimir Makarov  <vmakarov@redhat.com>
530
531         PR rtl-optimization/71621
532         * lra-constraints.c (process_alt_operands): Check combination of
533         reg class and mode.
534
535 2016-07-08  Jason Merrill  <jason@redhat.com>
536             Richard Biener  <rguenther@suse.de>
537
538         P0145: Refining Expression Order for C++.
539         * gimplify.c (initial_rhs_predicate_for): New.
540         (gimplfy_modify_expr): Gimplify RHS before LHS.
541
542 2016-07-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
543
544         PR target/71297
545         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
546         Allow standard error handling to take over when a wrong number
547         of arguments is presented to __builtin_vec_ld () or
548         __builtin_vec_st ().
549
550 2016-07-08  Jiong Wang  <jiong.wang@arm.com>
551
552         * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
553         variants.
554         (smin): Likewise.
555         (fmax): New entry.
556         (fmin): Likewise.
557         * config/aarch64/arm_neon.h (vmaxnm_f32): Use
558         __builtin_aarch64_fmaxv2sf.
559         (vmaxnmq_f32): Likewise.
560         (vmaxnmq_f64): Likewise.
561         (vminnm_f32): Likewise.
562         (vminnmq_f32): Likewise.
563         (vminnmq_f64): Likewise.
564
565 2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
566
567         PR target/71806
568         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
569         enable -mfloat128-hardware by default.
570         (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
571         that IEEE 128-bit hardware support needs.
572         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
573         -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
574         Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
575         floating point requires.
576         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
577         -mfloat128 and -mfloat128-hardware changes.
578
579 2016-07-08  Alan Hayward  <alan.hayward@arm.com>
580
581         PR tree-optimization/71667
582         * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
583
584 2016-07-08  Martin Liska  <mliska@suse.cz>
585
586         PR middle-end/71606
587         * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
588         folding produces SAVE_EXPRs, thus return false for the type.
589
590 2016-07-07  Martin Liska  <mliska@suse.cz>
591
592         * file-find.c (remove_prefix): New function.
593         * file-find.h (remove_prefix): Declare the function.
594         * gcc-ar.c (main): Skip a folder of the wrapper if
595         a wrapped binary would point to the same file.
596
597 2016-07-07  Jan Hubicka  <jh@suse.cz>
598
599         * tree-scalar-evolution.c (iv_can_overflow_p): export.
600         * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
601         * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
602
603 2016-07-07  Ilya Enkovich  <ilya.enkovich@intel.com>
604
605         PR ipa/71624
606         * ipa-inline-analysis.c (compute_inline_parameters): Set
607         local.can_change_signature to false for intrumentation
608         thunk callees.
609
610 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
611
612         * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
613         with TARGET_HAVE_MOVT.
614         (TARGET_HAVE_MOVT): Define.
615         * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
616         availability with TARGET_HAVE_MOVT.
617         * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
618         availability.
619         (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
620         TARGET_THUMB2.
621         (symbol_refs movsi splitter): Remove TARGET_32BIT check.
622         (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
623         * config/arm/constraints.md (define_constraint "j"): Use
624         TARGET_HAVE_MOVT to check MOVT availability.
625
626 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
627
628         * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
629
630 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
631
632         * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
633         (armv8-m.main): Likewise.
634         (armv8-m.main+dsp): Likewise.
635         * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
636         (FL_FOR_ARCH8M_MAIN): Likewise.
637         * config/arm/arm-tables.opt: Regenerate.
638         * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
639         armv8-m.main+dsp to BE8_LINK_SPEC.
640         * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
641         (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
642         * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
643         Baseline and Mainline.
644         (arm_option_override_internal): Also disable arm_restrict_it when
645         !arm_arch_notm.  Update comment for -munaligned-access to also cover
646         ARMv8-M Baseline.
647         (arm_file_start): Increase buffer size for printing architecture name.
648         * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
649         and armv8-m.main+dsp.
650         (mno-unaligned-access): Clarify that this is disabled by default for
651         ARMv8-M Baseline architectures as well.
652
653 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
654
655         * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
656         decide whether to prevent some libgcc routines being included for some
657         multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
658         link between this condition and the one in
659         libgcc/config/arm/lib1func.S.
660
661 2016-07-07  Richard Biener  <rguenther@suse.de>
662
663         * tree-ssa-pre.c: Include alias.h.
664         (compute_avail): If we have multiple VN_REFERENCEs with the
665         same hashtable entry adjust that to make it a valid replacement
666         for all of them with respect to alignment and aliasing
667         when doing insertion.
668         * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
669         * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
670
671 2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>
672
673         PR target/70098
674         PR target/71763
675         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
676         *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
677         constraint.
678
679 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
680
681         * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
682         (adjust_mems): Adjust.
683         (adjust_insn): Likewise.
684         (prepare_call_arguments): Likewise.
685
686 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
687
688         * gcse.c (struct ls_expr): Make stores field a vector.
689         (ldst_entry): Adjust.
690         (free_ldst_entry): Likewise.
691         (print_ldst_list): Likewise.
692         (compute_ld_motion_mems): Likewise.
693         (update_ld_motion_stores): Likewise.
694
695 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
696
697         * gcse.c (struct ls_expr): Remove loads field.
698         (ldst_entry): Adjust.
699         (free_ldst_entry): Likewise.
700         (print_ldst_list): Likewise.
701         (compute_ld_motion_mems): Likewise.
702
703 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
704
705         * store-motion.c (struct st_expr): Make antic_stores a vector.
706         (st_expr_entry): Adjust.
707         (free_st_expr_entry): Likewise.
708         (print_store_motion_mems): Likewise.
709         (find_moveable_store): Likewise.
710         (compute_store_table): Likewise.
711         (remove_reachable_equiv_notes): Likewise.
712         (replace_store_insn): Likewise.
713         (build_store_vectors): Likewise.
714
715 2016-07-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
716
717         * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
718         cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
719
720 2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
721
722         PR tree-optimization/71518
723         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
724         misalign also for outer loops with negative step.
725
726 2016-07-06  Wilco Dijkstra  <wdijkstr@arm.com>
727
728         * config/arm/cortex-a53.md: Use final_presence_set for in-order.
729         (cortex_a53_shift): Add mov_shift.
730         (cortex_a53_shift_reg): Add new reservation for register shifts.
731         (cortex_a53_alu): Remove bfm.
732         (cortex_a53_alu_shift): Add bfm, remove mov_shift.
733         (cortex_a53_alu_extr): Add new reservation for EXTR.
734         (bypasses): Improve bypass modelling.
735
736 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
737
738         PR target/50739
739         * config/avr/avr.c (avr_asm_select_section): Strip off
740         SECTION_DECLARED from flags when calling get_section.
741
742 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
743
744         * tree-vectorizer.h (vect_memory_access_type): Add
745         VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
746         * tree-vect-stmts.c (compare_step_with_zero): New function.
747         (perm_mask_for_reverse): Move further up file.
748         (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
749         step is negative.
750         (get_negative_load_store_type): New function.
751         (get_load_store_type): Call it.  Add an ncopies argument.
752         (vectorizable_mask_load_store): Update call accordingly and
753         remove tests for negative steps.
754         (vectorizable_store, vectorizable_load): Likewise.  Handle new
755         memory_access_types.
756
757 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
758
759         * tree-vectorizer.h (vect_memory_access_type): New enum.
760         (_stmt_vec_info): Add a memory_access_type field.
761         (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
762         (vect_model_store_cost): Take an access type instead of a boolean.
763         (vect_model_load_cost): Likewise.
764         * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
765         vect_model_store_cost and vect_model_load_cost.
766         * tree-vect-stmts.c (vec_load_store_type): New enum.
767         (vect_model_store_cost): Take an access type instead of a
768         store_lanes_p boolean.  Simplify tests.
769         (vect_model_load_cost): Likewise, but for load_lanes_p.
770         (get_group_load_store_type, get_load_store_type): New functions.
771         (vectorizable_store): Use get_load_store_type.  Record the access
772         type in STMT_VINFO_MEMORY_ACCESS_TYPE.
773         (vectorizable_load): Likewise.
774         (vectorizable_mask_load_store): Likewise.  Replace is_store
775         variable with vls_type.
776
777 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
778
779         * tree-vectorizer.h (vect_grouped_load_supported): Add a
780         single_element_p parameter.
781         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
782         Check the PR65518 case here rather than in vectorizable_load.
783         * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
784         * tree-vect-stmts.c (vectorizable_load): Likewise.
785
786 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
787
788         * tree-vectorizer.h (gather_scatter_info): New structure.
789         (vect_check_gather_scatter): Return a bool rather than a decl.
790         Replace return-by-pointer arguments with a single
791         gather_scatter_info *.
792         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
793         (vect_analyze_data_refs): Update call accordingly.
794         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
795         (vectorizable_mask_load_store): Likewise.  Also record the
796         offset dt and vectype in the gather_scatter_info.
797         (vectorizable_store): Likewise.
798         (vectorizable_load): Likewise.
799
800 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
801
802         * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
803         strided groups, use the cost of N scalar accesses instead
804         of ncopies vector accesses.
805         (vect_model_load_cost): Likewise.
806
807 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
808
809         * tree-vect-stmts.c (vect_cost_group_size): Delete.
810         (vect_model_store_cost): Avoid calling it.  Use first_stmt_p
811         variable to indicate when once-per-group costs are being used.
812         (vect_model_load_cost): Likewise.  Fix comment and misindented code.
813
814 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
815
816         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
817         peeling-for-gaps condition.
818
819 2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
820
821         * config/s390/s390.c (s390_expand_vec_init): Force initializer
822         element to register if it doesn't match general_operand.
823
824 2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
825             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
826
827         * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
828         prototype.
829         * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
830         * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
831         (SIGNBIT): New mode iterator.
832         (Fsignbit): New mode attribute.
833         (signbit<mode>2): Change operand1 to match FLOAT128 instead of
834         IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
835         when direct moves are available.
836         (signbit<mode>2_dm): New define_insn_and_split).
837         (signbit<mode>2_dm2): New define_insn.
838
839 2016-07-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
840
841         PR rtl-optimization/71594
842         * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
843         into subregs of appropriate mode before trying to emit a conditional
844         move.
845
846 2016-07-05  Jan Hubicka  <jh@suse.cz>
847
848         * tree-scalar-evolution.c (iv_can_overflow_p): New function.
849         (simple_iv): Use it.
850
851 2016-07-05  Jan Hubicka  <jh@suse.cz>
852
853         * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
854
855 2016-07-05  Jiong Wang  <jiong.wang@arm.com>
856
857         * lra-constraints.c (process_alt_operands): Don't add spilling cost for
858         "offmemok".
859
860 2016-07-05  Jan Hubicka  <jh@suse.cz>
861
862         * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
863         IV can overflow.
864
865 2016-07-05  Richard Biener  <rguenther@suse.de>
866
867         * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
868         Handle empty else block.
869         (is_feasible_trace): Likewise.
870         (split_paths): Likewise.
871
872 2016-07-05  Richard Biener  <rguenther@suse.de>
873
874         * tree-loop-distribution.c (distribute_loop): Fix issue with
875         the cost model loop.
876
877 2016-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
878
879         * config/arm/neon-testgen.ml: Delete.
880         * config/arm/neon.ml: Delete.
881
882 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
883
884         PR c++/71739
885         * tree.c (attribute_value_equal): Use get_attribute_name instead of
886         directly using TREE_PURPOSE.
887
888 2016-07-04  Jiong Wang  <jiong.wang@arm.com>
889
890         * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
891         * config/aarch64/aarch64_neon.h: Likewise.
892         * config/aarch64/arm_neon.h: Likewise.
893         * config/aarch64/atomics.md: Likewise.
894         * config/aarch64/aarch64-simd-builtins.def: Likewise.
895         * doc/invoke.texi: Likewise.
896
897 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
898
899         * config/s390/s390.md: Add "z13" cpu_facility.
900         ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
901         * config/s390/predicates.md ("loc_operand"): New predicate for "load on
902         condition" type instructions.
903
904 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
905             Jeff Law  <law@redhat.com>
906
907         * explow.c (allocate_dynamic_stack_space): Simplify knowing that
908         MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
909
910 2016-07-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
911
912         * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
913         permutation for TARGET_AVX512F.
914         (ix86_expand_vec_one_operand_perm_avx512): New function.
915         (expand_vec_perm_1): Invoke introduced function.
916         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
917         it may be not valid after vectorization.
918
919 2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
920
921         PR target/63874
922         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
923         typo in comment.  Only force to memory if it is a weak
924         external reference.
925
926 2016-07-04  Matthew Wahab  <matthew.wahab@arm.com>
927             Jiong Wang  <jiong.wang@arm.com>
928
929         * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
930         * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
931         (AARCH64_FL_F16): New.
932         (AARCH64_FL_FOR_ARCH8_2): New.
933         (AARCH64_ISA_8_2): New.
934         (AARCH64_ISA_F16): New.
935         (TARGET_FP_F16INST): New.
936         (TARGET_SIMD_F16INST): New.
937         * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
938         ("fp"): Disabling "fp" also disables "fp16".
939         * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
940         Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
941         and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
942         * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
943
944 2016-07-04  Jan Beulich  <jbeulich@suse.com>
945
946         * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
947
948 2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
949
950         PR target/71720
951         * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
952         the insns, use an insn form that does not adjust the offset on
953         little endian systems.
954
955 2016-07-01  Jan Beulich  <jbeulich@suse.com>
956
957         * varasm.c (get_variable_section): Validate initializer in
958         named .bss-like sections.
959
960 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
961
962         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
963         Exchange the order of the second and third operands in the vpermr
964         instruction tmeplate.
965
966 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
967
968         PR target/71698
969         * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
970         Disallow TDmode values.
971
972 2016-07-01  Alan Modra  <amodra@gmail.com>
973
974         PR rtl-optimization/71709
975         * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
976         being set, not referenced.
977
978 2016-07-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
979
980         PR tree-optimization/70729
981         * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
982         of loop since it can be not valid after transformation.
983
984 2016-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
985
986         * config/arm/arm.c (thumb_reload_in_hi): Delete.
987         * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
988
989 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
990
991         * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
992         for NULL decl.
993
994 2016-06-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
995
996         PR target/71677
997         * config/rs6000/constraints.md (wY constraint): New constraint to
998         match the requirements for the LXSD and STXSD instructions.
999         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
1000         predicate to match the requirements for the LXSD and STXSD
1001         instructions.
1002         * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
1003         Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
1004         to make sure that the bottom 2 bits of offset are 0, the address
1005         form is offsettable, and no updating is done in the address mode.
1006         (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
1007         (movdi_internal32): Likewise
1008         (movdi_internal64): Likewise.
1009
1010 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
1011
1012         PR tree-optimization/71707
1013         * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
1014         strinfo even for ADDR_EXPR ptr.
1015
1016 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1017
1018         * config/rs6000/altivec.md (darn_32): Change the condition to
1019         TARGET_P9_MISC instead of TARGET_MODULO.
1020         (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
1021         condition expression.
1022         (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
1023         condition expression.
1024         * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
1025         (DFP_TEST): New code iterator.
1026         (dfptstsfi_<code>_mode>): New define_expand.
1027         (*dfp_sgnfcnc_<mode>): New define_insn.
1028         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
1029         definition next to BU_P9_MISC_1 definition and change the MASK
1030         value to RS6000_BTM_P9_MISC.
1031         (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
1032         (BU_P9_64BIT_MISC_0): Likewise.
1033         (BU_P9_DFP_MISC_0): New macro definition.
1034         (BU_P9_DFP_MISC_1): New macro definition.
1035         (BU_P9_DFP_MISC_2): New macro definition.
1036         (BU_P9_DFP_OVERLOAD_1): New macro definition.
1037         (BU_P9_DFP_OVERLOAD_2): New macro definition.
1038         (BU_P9_DFP_OVERLOAD_3): New macro definition.
1039         (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
1040         (TSTSFI_LT_TD): Likewise.
1041         (TSTSFI_EQ_DD): Likewise.
1042         (TSTSFI_EQ_TD): Likewise.
1043         (TSTSFI_GT_DD): Likewise.
1044         (TSTSFI_GT_TD): Likewise.
1045         (TSTSFI_OV_DD): Likewise.
1046         (TSTSFI_OV_TD): Likewise.
1047         (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
1048         (TSTSFI_LT_DD): Likewise.
1049         (TSTSFI_LT_TD): Likewise.
1050         (TSTSFI_EQ): Likewise.
1051         (TSTSFI_EQ_DD): Likewise.
1052         (TSTSFI_EQ_TD): Likewise.
1053         (TSTSFI_GT): Likewise.
1054         (TSTSFI_GT_DD): Likewise.
1055         (TSTSFI_GT_TD): Likewise.
1056         (TSTSFI_OV): Likewise.
1057         (TSTSFI_OV_DD): Likewise.
1058         (TSTSFI_OV_TD): Likewise.
1059         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1060         overloaded test significance functions.
1061         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
1062         OPTION_MASK_P9_MISC into the representation of this mask.
1063         (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
1064         of this mask.
1065         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
1066         RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
1067         non-zero.
1068         (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
1069         argument is a 6-bit unsigned literal value if the icode argument
1070         represents a DFP test significance built-in call.
1071         (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
1072         flag used independently and in combination with the
1073         RS6000_BTM_64BIT flag.
1074         (rs6000_opt_masks): Add entry for power9-misc command-line option.
1075         (rs6000_builtin_mask_names): Add entry for power9-misc
1076         command-line option.
1077         * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
1078         HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
1079         RS6000_BTM_P9_MISC macros.
1080         * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
1081         option and change the description of the -mpower9-vector option to
1082         enable only vector instructions, removing its erroneously claimed
1083         support for scalar instructions.
1084         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1085         the ISA 3.0 digital floating point test significance built-in
1086         functions.
1087
1088 2016-06-30  Wilco Dijkstra  <wdijkstr@arm.com>
1089
1090         * config/aarch64/aarch64.c (cortexa35_tunings):
1091         Enable AES fusion.  Use cortexa57_branch_cost.
1092         (cortexa53_tunings): Use cortexa57_branch_cost.
1093         (cortexa72_tunings): Use cortexa57_branch_cost.
1094         Use AUTOPREFETCHER_WEAK.
1095         (cortexa73_tunings): Use cortexa57_branch_cost.
1096
1097 2016-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1098             James Greenhalgh  <james.greenhalgh@arm.com>
1099
1100         * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
1101         vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
1102         vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
1103         vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
1104         (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
1105         vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
1106         vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
1107         vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
1108         vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
1109         vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
1110         vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
1111         vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
1112         vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
1113         New intrinsics.
1114
1115 2016-06-30  James Greenhalgh  <james.greenhalgh@arm.com>
1116             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1117
1118         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
1119         New define_insn.
1120         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
1121
1122 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
1123
1124         PR driver/71651
1125         * gcc.c (driver::build_option_suggestions): Pass "option" to
1126         add_misspelling_candidates.
1127         * opts-common.c (add_misspelling_candidates): Add "option" param;
1128         use it to avoid adding negated forms for options marked with
1129         RejectNegative.
1130         * opts.h (add_misspelling_candidates): Add "option" param.
1131
1132 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
1133
1134         PR middle-end/71693
1135         * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
1136         TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
1137         first when permuting bitwise operation with rotate.  Cast
1138         TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
1139
1140 2016-06-29  David Malcolm  <dmalcolm@redhat.com>
1141
1142         * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
1143         for misspelled param names.
1144         * params.c: Include spellcheck.h.
1145         (find_param_fuzzy): New function.
1146         * params.h (find_param_fuzzy): New prototype.
1147         * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
1148         * spellcheck.h (struct edit_distance_traits<const char *>):
1149         ...here.
1150
1151 2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
1152
1153         * config/rs6000/predicates.md (const_0_to_7_operand): New
1154         predicate, recognize 0..7.
1155         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1156         support for doing extracts from V16QImode, V8HImode, V4SImode
1157         under ISA 3.0.
1158         * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
1159         vector extract support.
1160         (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
1161         for ISA 3.0 vector extract.
1162         (VSX_EX): Constraints to use for ISA 3.0 vector extract.
1163         (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
1164         extracts of a constant element number from small integer vectors
1165         on 64-bit ISA 3.0 systems.
1166         (vsx_extract_<mode>_di): Likewise.
1167         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
1168         say when we can do ISA 3.0 vector extracts.
1169         * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
1170         registers, using the stxsiwx instruction.
1171
1172 2016-06-29  Jim Wilson  <jim.wilson@linaro.org>
1173
1174         * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
1175         * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
1176         qdf24xx_regmove_cost, qdf24xx_tunings): New.
1177         * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
1178         * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
1179         * config/arm/arm.c (arm_qdf24xx_tune): New.
1180
1181 2016-06-29  Wilco Dijkstra  <wdijkstr@arm.com>
1182
1183         * config/aarch64/aarch64.c (cortexa53_tunings):
1184         Increase loop alignment to 8.  Set function alignment to 16.
1185         (cortexa35_tunings): Likewise.
1186         (cortexa57_tunings): Increase loop alignment to 8.
1187         (cortexa72_tunings): Likewise.
1188         (cortexa73_tunings): Likewise.
1189
1190 2016-06-29  Matthew Wahab  <matthew.wahab@arm.com>
1191
1192         * doc/sourcebuild.texi (Effective-Target keywords): Add entries
1193         for arm_fp16_ok and arm_fp16_hw.
1194         (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
1195         arm_fp16_alternative.
1196
1197 2016-06-29  Ilya Enkovich  <ilya.enkovich@intel.com>
1198
1199         PR tree-optimization/71655
1200         * tree-vect-stmts.c (vectorizable_comparison): Swap definition
1201         types when swapping operands.
1202
1203 2016-06-29  Martin Liska  <mliska@suse.cz>
1204
1205         PR middle-end/71585
1206         * common.opt (flag_stack_protect): Mark the flag as optimization flag.
1207         * ipa-inline-transform.c (inline_call): Remove unnecessary call
1208         of build_optimization_node.
1209
1210 2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
1211
1212         PR tree-optimization/70729
1213         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
1214         independent in loops having positive safelen value.
1215         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
1216         it may be not valid after vectorization.
1217
1218 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
1219
1220         PR tree-optimization/71625
1221         * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
1222         is sorted by ascending list->offset.  If PTR is non-NULL and there is
1223         previous strinfo, call get_stridx_plus_constant.
1224         (get_stridx): Pass exp as second argument to get_addr_stridx.
1225         (addr_stridxptr): Add missing list = list->next, so that there can be
1226         more than one entries in the list.  Bump limit from 16 to 32.  Ensure
1227         the list is sorted by ascending list->offset.
1228         (get_stridx_plus_constant): Adjust so that it can be also called with
1229         ADDR_EXPR instead of SSA_NAME as PTR.
1230         (handle_char_store): Pass NULL_TREE as second argument to
1231         get_addr_stridx.
1232
1233 2016-06-29  Richard Biener  <rguenther@suse.de>
1234
1235         PR rtl-optimization/68961
1236         * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
1237
1238 2016-06-29  Richard Biener  <rguenther@suse.de>
1239
1240         PR middle-end/71002
1241         * alias.c (component_uses_parent_alias_set_from): Handle
1242         type punning through union accesses by using the union alias set.
1243         * gimple.c (gimple_get_alias_set): Remove union type punning case.
1244
1245 2016-07-29  Richard Biener  <rguenther@suse.de>
1246
1247         * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
1248         precision not matching mode precision.
1249
1250 2016-06-28  John David Anglin  <danglin@gcc.gnu.org>
1251
1252         * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
1253         pa_output_arg_descriptor.
1254         (call_val_symref_64bit_post_reload): Likewise.
1255         (call_val_powf_64bit_post_reload): Likewise.
1256         (sibcall_internal_symref_64bit): Likewise.
1257         (sibcall_value_internal_symref_64bit): Likewise.
1258
1259 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
1260
1261         PR middle-end/71626
1262         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
1263         a constant, force its SUBREG_REG into memory or register instead
1264         of whole op1.
1265
1266 2016-06-28  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1267
1268         PR target/58655
1269         * config/avr/avr.opt (-mfract-convert-truncate): Update description.
1270         * doc/invoke.texi (AVR Options): Document it.
1271
1272 2016-06-28  Walter Lee  <walt@tilera.com>
1273
1274         * config/tilegx/linux.h: Do not include arch/icache.h
1275         (CLEAR_INSN_CACHE): Provide inlined definition directly.
1276         * config/tilepro/linux.h: Do not include arch/icache.h
1277         (CLEAR_INSN_CACHE): Provide inlined definition directly.
1278
1279 2016-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
1280
1281         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
1282         for big-endian BIT_FIELD_REF.
1283
1284 2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
1285
1286         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
1287         ('size' attribute): Add '128'.
1288         Include power9.md.
1289         (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
1290         *movdi_internal64, *movdf_update1): Set size attribute to '64'.
1291         (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
1292         copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
1293         *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
1294         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
1295         *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
1296         *trunc<mode>df2_odd): Set size attribute to '128'.
1297         (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
1298         * config/rs6000/power6.md (power6-fp): Include dfp type.
1299         * config/rs6000/power7.md (power7-fp): Likewise.
1300         * config/rs6000/power8.md (power8-fp): Likewise.
1301         * config/rs6000/power9.md: New file.
1302         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
1303         * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
1304         *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
1305         htmsimple.
1306         * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
1307         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1308         divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
1309         ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
1310         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
1311         dfp_dscri_<mode>): Change type attribute to dfp.
1312         * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
1313         attribute to vecsimple.
1314         * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
1315         and prefetch streams.
1316         (rs6000_option_override_internal): Remove temporary code setting
1317         tuning to power8.  Don't set rs6000_sched_groups for power9.
1318         (last_scheduled_insn): Change to rtx_insn *.
1319         (divide_cnt, vec_load_pendulum): New variables.
1320         (rs6000_adjust_cost): Add Power9 to test for store->load separation.
1321         (rs6000_issue_rate): Set issue rate for Power9.
1322         (is_power9_pairable_vec_type): New.
1323         (power9_sched_reorder2): New.
1324         (rs6000_sched_reorder2): Call new function for Power9 specific
1325         reordering.
1326         (insn_must_be_first_in_group): Remove Power9.
1327         (insn_must_be_last_in_group): Likewise.
1328         (force_new_group): Likewise.
1329         (rs6000_sched_init): Fix initialization of last_scheduled_insn.
1330         Initialize divide_cnt/vec_load_pendulum.
1331         (_rs6000_sched_context, rs6000_init_sched_context,
1332         rs6000_set_sched_context): Handle context save/restore of new
1333         variables.
1334
1335 2016-06-28  Richard Biener  <rguenther@suse.de>
1336
1337         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1338         Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
1339         COMPONENT_REF operand.
1340         (nonoverlapping_component_refs_p): Likewise.
1341         * stor-layout.c (start_bitfield_representative): Mark
1342         DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
1343
1344 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
1345
1346         * Makefile.in: Don't cat ../stage_current if it does not exist.
1347
1348         * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
1349         last argument is a bit-field.
1350
1351         PR rtl-optimization/71673
1352         * internal-fn.c (expand_arith_overflow_result_store): Use
1353         OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
1354         expand_simple_binop.
1355
1356         PR middle-end/66867
1357         * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
1358         expand_ifn_atomic_compare_exchange): New functions.
1359         * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
1360         * tree.h (build_call_expr_internal_loc): Rename to ...
1361         (build_call_expr_internal_loc_array): ... this.  Fix up type of
1362         last argument.
1363         * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
1364         * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
1365         ATOMIC_COMPARE_EXCHANGE result.
1366         * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
1367         * gimple-fold.h (optimize_atomic_compare_exchange_p,
1368         fold_builtin_atomic_compare_exchange): New prototypes.
1369         * gimple-fold.c (optimize_atomic_compare_exchange_p,
1370         fold_builtin_atomic_compare_exchange): New functions..
1371         * tree-ssa.c (execute_update_addresses_taken): If
1372         optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
1373         of call when finding addressable vars, and if such var becomes
1374         non-addressable, call fold_builtin_atomic_compare_exchange.
1375
1376 2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
1377
1378         PR target/71670
1379         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
1380         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
1381
1382 2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
1383
1384         * config/rs6000/rs6000.md ('type' attribute): Add
1385         veclogical,veccmpfx,vecexts,vecmove insn types.
1386         (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
1387         copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
1388         p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
1389         (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
1390         *nabs<mode>2_hw): Change type to vecmove.
1391         (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
1392         *boolcc<mode>3_internal, *eqv<mode>3_internal,
1393         *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
1394         *ieee_128bit_vsx_abs<mode>2_internal,
1395         *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
1396         *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
1397         *ieee128_mtvsrd_32bit): Change type to veclogical.
1398         (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
1399         *movdi_internal32, *movdi_internal64): Update insn types.
1400         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
1401         vsx_extract_<mode>): Change type to veclogical.
1402         (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
1403         (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
1404         *vsx_sign_extend_si_v2di): Change type to vecexts.
1405         * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
1406         type to veclogical.
1407         (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
1408         *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
1409         *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
1410         (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
1411         * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1412         negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
1413         * config/rs6000/40x.md (ppc405-float): Add fpsimple.
1414         * config/rs6000/440.md (ppc440-fp): Add fpsimple.
1415         * config/rs6000/476.md (ppc476-fp): Add fpsimple.
1416         * config/rs6000/601.md (ppc601-fp): Add fpsimple.
1417         * config/rs6000/603.md (ppc603-fp): Add fpsimple.
1418         * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
1419         * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
1420         (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
1421         * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
1422         (ppc7450-vecsimple): Add veclogical, vecmove.
1423         (ppc7450-veccmp): Add veccmpfx.
1424         * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
1425         vecmove.
1426         (ppc8540_vector_compare): Add veccmpfx.
1427         * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
1428         * config/rs6000/cell.md (cell-fp): Add fpsimple.
1429         (cell-vecsimple): Add veclogical, vecmove.
1430         (cell-veccmp): Add veccmpfx.
1431         * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
1432         * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
1433         veccmpfx.
1434         * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
1435         * config/rs6000/power4.md (power4-fp): Add fpsimple.
1436         (power4-vecsimple): Add veclogical, vecmove.
1437         (power4-veccmp): Add veccmpfx.
1438         * config/rs6000/power5.md (power5-fp): Add fpsimple.
1439         * config/rs6000/power6.md (power6-fp): Add fpsimple.
1440         (power6-vecsimple): Add veclogical, vecmove.
1441         (power6-veccmp): Add veccmpfx.
1442         * config/rs6000/power7.md (power7-fp): Add fpsimple.
1443         (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
1444         * config/rs6000/power8.md (power8-fp): Add fpsimple.
1445         (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
1446         * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
1447         * config/rs6000/titan.md (titan_fp): Add fpsimple.
1448         * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
1449         fpsimple.
1450         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
1451
1452 2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
1453
1454         PR target/71656
1455         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
1456         OPTION_MASK_P9_DFORM_VECTOR.
1457         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
1458         disable -mpower9-dform-vector when using reload.
1459         (quad_address_p): Remove 'gpr_p' argument and all associated code.
1460         New 'strict' argument.  Update all callers.  Add strict addressing
1461         support.
1462         (rs6000_legitimate_offset_address_p): Remove call to
1463         virtual_stack_registers_memory_p.
1464         (rs6000_legitimize_reload_address): Add quad address support.
1465         (rs6000_legitimate_address_p): Move call to quad_address_p above
1466         call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
1467         to account for new strict usage.
1468         (rs6000_output_move_128bit): Adjust quad_address_p args to account
1469         for new strict usage.
1470         * config/rs6000/predicates.md (quad_memory_operand): Likewise.
1471
1472 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
1473
1474         PR target/70902
1475         PR target/71453
1476         PR target/71555
1477         PR target/71596
1478         PR target/71657
1479         * config/i386/i386.c (ix86_spill_class): Disable condition to
1480         always return NO_REGS.
1481
1482 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
1483
1484         * predict.c: Include gimple-pretty-print.h
1485         (predicted_by_loop_heuristics_p): Check also
1486         PRED_LOOP_EXIT_WITH_RECURSION
1487         (predict_loops): Find self recursive calls and use special purpose
1488         predictors for them; dump log about decisions.
1489         (pass_profile::execute): Dump info about #of iterations.
1490         * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
1491         (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
1492
1493 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
1494
1495         * config/pa/pa.c (pa_output_indirect_call): Rework to combine
1496         output_asm_insn calls and shorten long lines.  Output .CALL
1497         argument descriptor using pa_output_arg_descriptor.  Add various
1498         inline $$dyncall and other optimizations.
1499         (pa_attr_length_indirect_call): Adjust ordering and lengths.
1500
1501 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
1502
1503         PR tree-optimization/71643
1504         * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
1505         EH preds.
1506
1507         * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
1508         leak a bitmap if dep_bb is NULL.
1509
1510         PR tree-optimization/71631
1511         * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
1512         to rewrite_expr_tree even if negate_result, move new_lhs var
1513         declaration and initialization earlier, for powi_result set afterwards
1514         new_lhs to lhs.  For negate_result, use new_lhs instead of tmp
1515         if new_lhs != lhs, and don't shadow gsi var.
1516
1517 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
1518
1519         * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
1520         Add in_loop parameter.
1521         (predict_loops): Add loop guard heuristics.
1522         * predict.def (PRED_LOOP_GUARD): New heuristics.
1523
1524 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
1525
1526         * predict.c: Include ipa-utils.h
1527         (tree_bb_level_prediction): Predict recursive calls.
1528         (tree_estimate_probability_bb): Skip inexpensive calls for call
1529         predictor.
1530         * predict.def (PRED_RECURSIVE_CALL): New.
1531
1532 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1533
1534         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
1535         (BU_FLOAT128_1): Likewise.
1536         (FABSQ): Likewise.
1537         (COPYSIGNQ): Likewise.
1538         (RS6000_BUILTIN_NANQ): Likewise.
1539         (RS6000_BUILTIN_NANSQ): Likewise.
1540         (RS6000_BUILTIN_INFQ): Likewise.
1541         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
1542         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
1543         (TARGET_FOLD_BUILTIN): New #define.
1544         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
1545         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
1546         (rs6000_fold_builtin): New target hook implementation, handling
1547         folding of 128-bit NaNs and infinities.
1548         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
1549         entries are filled in to avoid problems during bootstrap
1550         self-test; define builtins for 128-bit NaNs and infinities.
1551         (rs6000_opt_mask): Add entry for float128.
1552         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
1553         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
1554         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
1555         (const_str_type_node): New #define.
1556         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
1557         to a define_expand that dispatches to either copysign<mode>3_soft
1558         or copysign<mode>3_hard.
1559         (copysign<mode>3_hard): Rename from copysign<mode>3.
1560         (copysign<mode>3_soft): New define_insn.
1561         * doc/extend.texi: Document new builtins.
1562
1563 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1564
1565         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
1566         PRIu64 instead of lu.
1567
1568 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
1569
1570         PR debug/71642
1571         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
1572         copy the type name.
1573
1574 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1575
1576         PR tree-optimization/71647
1577         * omp-low.c (lower_rec_input_clauses): Convert
1578         omp_clause_aligned_alignment (c) to size_type_node for the
1579         last argument of __builtin_assume_aligned.
1580
1581 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1582
1583         * configure.ac (calling ___tls_get_addr via GOT): New
1584         assembler/linker check.
1585         (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
1586         assembler and linker supports calling ___tls_get_addr via GOT.
1587         Otherise, defined to 0.
1588         * config.in: Regenerated.
1589         * configure: Likewise.
1590         * config/i386/constraints.md (Yb): New constraint.
1591         * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
1592         (REG_CLASS_NAMES): Likewise.
1593         (REG_CLASS_CONTENTS): Likewise.
1594         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
1595         the b constraint with the Yb constraint.  Call ___tls_get_addr
1596         via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
1597         is 1.
1598         (*tls_local_dynamic_base_32_gnu): Likewise.
1599         (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
1600         GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
1601         (*tls_local_dynamic_base_64_<mode>): Likewise.
1602
1603 2016-06-24  Martin Liska  <mliska@suse.cz>
1604
1605         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
1606         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
1607         few functions.
1608         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
1609         argument to true if the expected number of iterations is
1610         loop-based.
1611
1612 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
1613
1614         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
1615         assemble for 32bit target.
1616         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
1617         and $ld_ix86_gld_32_opt to link for 32bit target.
1618         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
1619         * configure: Regenerate.
1620
1621 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1622
1623         * config/arm/arm.c (int_log2): Delete definition and prototype.
1624         (shift_op): Use exact_log2 instead of int_log2.
1625         (vfp3_const_double_for_fract_bits): Likewise.
1626
1627 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
1628
1629         * internal-fn.c (expand_arith_set_overflow): New function.
1630         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
1631         Use it.
1632         (expand_arith_overflow_result_store): Likewise.  Handle precision
1633         smaller than mode precision.
1634         * tree-vrp.c (extract_range_basic): For imag part, handle
1635         properly signed 1-bit precision result.
1636         * doc/extend.texi (__builtin_add_overflow): Document that last
1637         argument can't be pointer to enumerated or boolean type.
1638         (__builtin_add_overflow_p): Document that last argument can't
1639         have enumerated or boolean type.
1640
1641 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1642             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1643
1644         * config/rs6000/predicates.md (splat_input_operand): Rework.
1645         Don't allow constants, since the insns that use this predicate
1646         don't support constants.  Constants are handled by other insns
1647         that are created via combine.  During and after register
1648         allocation, only allow indexed or indirect addresses, and not
1649         general addresses.  Only allow modes supported by the hardware.
1650         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
1651         comment.  Move check for using VSPLTIS<x> to a common location,
1652         instead of doing it in two different places.
1653
1654 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
1655
1656         * config/i386/driver-i386.c (host_detect_local_cpu): Set
1657         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
1658         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
1659         signature_CENTAUR_ebx.
1660
1661 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
1662
1663         PR target/66232
1664         PR target/67400
1665         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
1666         (as_ix86_gas_32_opt): This.
1667         (ld_ix86_tls_ldm_opt): Renamed to ...
1668         (ld_ix86_gld_32_opt): This.
1669         (R_386_TLS_LDM reloc): Updated.
1670         (R_386_GOT32X reloc): New assembler/linker check.
1671         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
1672         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
1673         defined to 0.
1674         * config.in: Regenerated.
1675         * configure: Likewise.
1676         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
1677         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
1678         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
1679         if ix86_force_load_from_GOT_p returns true.
1680         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
1681         ix86_force_load_from_GOT_p returns true.
1682         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
1683         the external function address via the GOT slot.
1684         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
1685         HAVE_AS_IX86_GOT32X before returning false.
1686         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
1687         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
1688
1689 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
1690
1691         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
1692
1693 2016-06-23  Andi Kleen  <ak@linux.intel.com>
1694
1695         * Makefile.in: Regenerate.
1696         * doc/install.texi: Document autoprofiledbootstrap.
1697
1698 2016-06-23  Andi Kleen  <ak@linux.intel.com>
1699
1700         * config/i386/gcc-auto-profile: New file.
1701
1702 2016-06-23  Martin Liska  <mliska@suse.cz>
1703
1704         PR middle-end/71619
1705         * predict.c (predict_loops): Revert the hunk that was removed
1706         in r237103.
1707
1708 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
1709
1710         * config.gcc: Add support for arm*-*-phoenix* targets.
1711         * config/arm/t-phoenix: New.
1712         * config/phoenix.h: New.
1713
1714 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
1715             H.J. Lu  <hongjiu.lu@intel.com>
1716
1717         PR target/67400
1718         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
1719         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
1720         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
1721         ix86_force_load_from_GOT_p returns true.
1722         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
1723         ix86_force_load_from_GOT_p returns true.
1724         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
1725         ix86_force_load_from_GOT_p returns true.
1726         (ix86_expand_move): Load the external function address via the
1727         GOT slot if ix86_force_load_from_GOT_p returns true.
1728         * config/i386/predicates.md (x86_64_immediate_operand): Return
1729         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
1730         (x86_64_zext_immediate_operand): Ditto.
1731
1732 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
1733
1734         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
1735
1736 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1737
1738         PR c/70339
1739         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
1740         * diagnostic.c (pedwarn_at_rich_loc): New function.
1741         * spellcheck.h (best_match::best_match): Add a
1742         "best_distance_so_far" optional parameter.
1743         (best_match::set_best_so_far): New method.
1744         (best_match::get_best_distance): New accessor.
1745         (best_match::get_best_candidate_length): New accessor.
1746
1747 2016-06-22  Nick Clifton  <nickc@redhat.com>
1748
1749         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
1750         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
1751         modes are accepted as well.
1752         (ucompare_loc_descriptor): Likewise.
1753         (minmax_loc_descriptor): Likewise.
1754         (clz_loc_descriptor): Likewise.
1755         (popcount_loc_descriptor): Likewise.
1756         (bswap_loc_descriptor): Likewise.
1757         (rotate_loc_descriptor): Likewise.
1758         (mem_loc_descriptor): Likewise.
1759         (loc_descriptor): Likewise.
1760
1761 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
1762
1763         * common.opt (fdiagnostics-parseable-fixits): New option.
1764         * diagnostic.c: Include "selftest.h".
1765         (print_escaped_string): New function.
1766         (print_parseable_fixits): New function.
1767         (diagnostic_report_diagnostic): Call print_parseable_fixits.
1768         (selftest::assert_print_escaped_string): New function.
1769         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
1770         (selftest::test_print_escaped_string): New function.
1771         (selftest::test_print_parseable_fixits_none): New function.
1772         (selftest::test_print_parseable_fixits_insert): New function.
1773         (selftest::test_print_parseable_fixits_remove): New function.
1774         (selftest::test_print_parseable_fixits_replace): New function.
1775         (selftest::diagnostic_c_tests): New function.
1776         * diagnostic.h (struct diagnostic_context): Add field
1777         "parseable_fixits_p".
1778         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
1779         -fdiagnostics-parseable-fixits.
1780         (-fdiagnostics-parseable-fixits): New option.
1781         * opts.c (common_handle_option): Handle
1782         -fdiagnostics-parseable-fixits.
1783         * selftest-run-tests.c (selftest::run_tests): Call
1784         selftest::diagnostic_c_tests.
1785         * selftest.h (selftest::diagnostic_c_tests): New prototype.
1786
1787 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
1788
1789         PR tree-optimization/71488
1790         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
1791         comparison of boolean vectors.
1792         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
1793         of boolean vectors using bitwise operations.
1794
1795 2016-06-22  Andreas Schwab  <schwab@suse.de>
1796
1797         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
1798         Remove declaration.
1799
1800 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
1801
1802         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
1803
1804 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1805
1806         * config/i386/i386.c (print_reg): Emit an error message on attempt to
1807         print FLAGS_REG.
1808
1809 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1810
1811         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
1812         * config/arm/arm-cores.def (cortex-a73): New entry.
1813         (cortex-a73.cortex-a35): Likewise.
1814         (cortex-a73.cortex-a53): Likewise.
1815         * config/arm/arm-tables.opt: Regenerate.
1816         * config/arm/arm-tune.md: Likewise.
1817         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
1818         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
1819         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
1820         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
1821         * doc/invoke.texi (ARM Options): Document cortex-a73,
1822         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
1823
1824 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1825
1826         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
1827         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
1828         (cortex-a73.cortex-a35): Likewise.
1829         (cortex-a73.cortex-a53): Likewise.
1830         * config/aarch64/aarch64-tune.md: Regenerate.
1831         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
1832         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
1833         -mcpu and -mtune.
1834
1835 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1836
1837         * configure.ac (gcc_cv_as_compress_debug): Remove
1838         --compress-debug-sections as extra as switch.
1839         Handle gas --compress-debug-sections=type.
1840         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
1841         Handle gld --compress-debug-sections=type.
1842         * configure: Regenerate.
1843
1844 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
1845
1846         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
1847
1848 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
1849
1850         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
1851         (do_rewrite): likewise.
1852
1853 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1854
1855         * common/config/mep/mep-common.c: Remove.
1856         * config.gcc: Remove mep-* support.
1857         * config/mep/constraints.md: Remove.
1858         * config/mep/default.h: Remove.
1859         * config/mep/intrinsics.h: Remove.
1860         * config/mep/intrinsics.md: Remove.
1861         * config/mep/ivc2-template.h: Remove.
1862         * config/mep/mep-c5.cpu: Remove.
1863         * config/mep/mep-core.cpu: Remove.
1864         * config/mep/mep-default.cpu: Remove.
1865         * config/mep/mep-ext-cop.cpu: Remove.
1866         * config/mep/mep-intrin.h: Remove.
1867         * config/mep/mep-ivc2.cpu: Remove.
1868         * config/mep/mep-pragma.c: Remove.
1869         * config/mep/mep-protos.h: Remove.
1870         * config/mep/mep.c: Remove.
1871         * config/mep/mep.cpu: Remove.
1872         * config/mep/mep.h: Remove.
1873         * config/mep/mep.md: Remove.
1874         * config/mep/mep.opt: Remove.
1875         * config/mep/predicates.md: Remove.
1876         * config/mep/t-mep: Remove.
1877         * doc/install.texi: Remove mep-* documentation.
1878         * doc/md.texi: Likewise.
1879
1880 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1881
1882         * config.gcc: Remove support for avr-rtems.
1883         * config/avr/gen-avr-mmcu-specs.c: Likewise.
1884         * config/avr/rtems.h: Remove.
1885         * config/avr/t-rtems: Remove.
1886
1887 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1888
1889         * config.gcc: Remove m32r-rtems support.
1890         * config/m32r/rtems.h: Remove.
1891
1892 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1893
1894         * config.gcc: Remove h8300-rtems support.
1895         * config/h8300/rtems.h: Remove.
1896         * config/h8300/t-rtems: Remove.
1897
1898 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1899
1900         * config.gcc: Remove support for knetbsd.
1901         * configure.ac: Likewise.
1902         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
1903         * config/knetbsd-gnu.h: Remove.
1904         * configure: Regenerate.
1905
1906 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1907
1908         * config.gcc: Remove support for openbsd 2 and 3.
1909         * config/openbsd-oldgas.h: Remove.
1910
1911 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1912
1913         * config.gcc: Remove interix support.
1914         * config/i386/i386-interix.h: Remove.
1915         * config/i386/interix.opt: Remove.
1916         * config/i386/t-interix: Remove.
1917         * configure: Regenerate.
1918         * configure.ac: Remove interix support.
1919         * doc/install.texi: Remove interix documentation.
1920
1921 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1922
1923         * config/rs6000/rs6000.h: Add conditional preprocessing directives
1924         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
1925         not defined.
1926
1927 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1928
1929         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
1930         they are both PLACEHOLDER_EXPRs.
1931
1932 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1933
1934         * stor-layout.c (layout_type): Move setting complex MODE to
1935         layout_type, instead of setting it ahead of time by the caller.
1936         * tree.c (build_complex_type): Likewise.
1937
1938 2016-06-21  Martin Liska  <mliska@suse.cz>
1939
1940         * predict.c (force_edge_cold): Replace imposisble with
1941         impossible.
1942
1943 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
1944
1945         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
1946         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
1947
1948 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
1949
1950         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
1951
1952 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1953             Ilya Enkovich  <ilya.enkovich@intel.com>
1954
1955         PR target/71549
1956         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
1957         New member function to convert V1TImode register to SUBREG
1958         TImode in debug insn.
1959         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
1960         after changing register mode to V1TImode.
1961
1962 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
1963
1964         * config/aarch64/aarch64-cores.def (vulcan): New core.
1965         * config/aarch64/aarch64-tune.md: Regenerate.
1966         * doc/invoke.texi: Document vulcan as an available option.
1967
1968 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1969
1970         * cse.c (canon_asm_operands): New function extracted from...
1971         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
1972         either standalone or member of a PARALLEL.
1973
1974 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
1975
1976         PR target/30417
1977         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
1978         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
1979         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
1980
1981 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
1982
1983         PR target/71103
1984         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
1985         constant addresses if can_create_pseudo_p.
1986
1987 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
1988
1989         PR tree-optimization/71588
1990         * tree-ssa-strlen.c (valid_builtin_call): New function.
1991         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
1992         it.
1993
1994 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
1995
1996         PR middle-end/71581
1997         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
1998         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
1999         for conversion of scalar user var to complex type and use the
2000         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
2001         punt.
2002
2003         PR rtl-optimization/71591
2004         * toplev.c (toplev::run_self_tests): If no_backend, complain and
2005         don't run any tests.
2006
2007 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
2008
2009         PR target/71571
2010         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
2011         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
2012         space for PIC with non-v32 and the common non-PIC "jump".
2013
2014 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
2015
2016         PR target/71559
2017         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
2018         returned values and add UN*/LTGT/*ORDERED cases with values matching
2019         D operand modifier on vcmp for AVX.
2020
2021 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
2022
2023         * config/aarch64/aarch64.opt
2024         (mpc-relative-literal-loads): Rename internal option name.
2025         * config/aarch64/aarch64.c
2026         (aarch64_nopcrelative_literal_loads): Rename to
2027         aarch64_pcrelative_literal_loads.
2028         (aarch64_expand_mov_immediate): Likewise.
2029         (aarch64_secondary_reload): Likewise.
2030         (aarch64_can_use_per_function_literal_pools_p): Likewise.
2031         (aarch64_override_options_after_change_1): Rename and simplify logic.
2032         (aarch64_classify_symbol): Merge large model checks into switch,
2033         remove pc-relative load check.
2034
2035 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
2036
2037         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
2038         costs relative to the cost of a register move.
2039
2040 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
2041
2042         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
2043         (vcvt_n_f64_u64): Likewise.
2044         (vcvt_n_s64_f64): Likewise.
2045         (vcvt_n_u64_f64): Likewise.
2046         (vcvt_f64_s64): Likewise.
2047         (vrecpe_f64): Likewise.
2048         (vcvt_f64_u64): Likewise.
2049         (vrecps_f64): Likewise.
2050
2051 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
2052
2053         * config/aarch64/aarch64.md
2054         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
2055         iterators.
2056         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
2057         attributes.
2058         * config/aarch64/aarch64-builtins.c
2059         (aarch64_types_binop_uss_qualifiers): Delete.
2060         (TYPES_BINOP_USS): Likewise.
2061         (aarch64_types_binop_sus_qualifiers): Likewise.
2062         (TYPES_BINOP_SUS): Likewise.
2063         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
2064         (TYPES_FCVTIMM_SUS): Likewise.
2065         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
2066         rather than BINOP.
2067         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
2068         (fcvtzs): Use SHIFTIMM rather than BINOP.
2069         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
2070
2071 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
2072
2073         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
2074         costs relative to the cost of a register move.
2075
2076 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
2077
2078         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
2079         Allow scalar/single vector modes to be tieable.
2080
2081 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
2082
2083         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
2084
2085 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2086
2087         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
2088         "alignement".
2089         * tree.h (TYPE_ALIGN): Likewise.
2090
2091 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
2092
2093         PR target/71103
2094         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
2095
2096 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
2097
2098         * config/avr/avr.c (avr_print_operand): Fix "format not a string
2099         literal" build warnings.
2100         (avr_print_operand_address): Dito.
2101
2102 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
2103
2104         PR target/71375
2105         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
2106         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
2107
2108 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
2109
2110         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
2111
2112 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
2113
2114         PR bootstrap/71435
2115         * reload1.c (reload): Pass 0 to finish_spills when called because
2116         update_eliminables_and_spill returns true and remove did_spill.
2117         (finish_spills): Adjust comment and document GLOBAL parameter.
2118
2119 2016-06-17  DJ Delorie  <dj@redhat.com>
2120
2121         PR target/71338
2122         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
2123         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
2124         (umulqihi3_virt): Likewise.
2125         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
2126         (umulqihi3_real): Likewise.
2127
2128 2016-06-17  Martin Liska  <mliska@suse.cz>
2129
2130         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
2131
2132 2016-06-17  Martin Liska  <mliska@suse.cz>
2133
2134         * predict.def: PRED_LOOP_EXIT from 92 to 85.
2135
2136 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
2137
2138         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
2139         __FAST_MATH__.
2140         (vaddq_f32): Likewise.
2141         (vmul_f32): Likewise.
2142         (vmulq_f32): Likewise.
2143         (vsub_f32): Likewise.
2144         (vsubq_f32): Likewise.
2145
2146 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
2147
2148         PR tree-optimization/71347
2149         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
2150         cost for all uses in group.
2151
2152 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
2153
2154         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
2155         insert gimple seq if it's not empty.
2156
2157 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
2158
2159         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
2160         member OFFSET.
2161         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
2162         rather than OFFSET.
2163         (comp_dr_with_seg_len_pair): Ditto.
2164         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
2165         struct dr_with_seg_len_pair against DR_OFFSET.
2166         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
2167         DR_OFFSET directly.
2168
2169 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2170
2171         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
2172
2173 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
2174
2175         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
2176         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
2177         (pa_output_millicode_call): Likewise.
2178         (pa_output_call): Likewise.
2179         (pa_output_indirect_call): Likewise.
2180         (pa_asm_output_mi_thunk): Likewise.
2181
2182 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2183
2184         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
2185
2186 2016-06-16  Martin Liska  <mliska@suse.cz>
2187
2188         * predict.c (combine_predictions_for_insn): When we find a first
2189         match predictor, we should consider just predictors with
2190         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
2191         DS theory predictor.
2192         (combine_predictions_for_bb): Likewise.
2193
2194 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
2195
2196         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
2197         with base of reference to struct.
2198
2199 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
2200
2201         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
2202
2203 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2204
2205         PR target/71151
2206         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
2207         progmem_swtable_section.
2208         (progmem_swtable_section): Remove.
2209         (avr_asm_function_rodata_section): Remove.
2210         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
2211         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
2212
2213 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
2214
2215         * config/i386/driver-i386.c (host_detect_local_cpu): Set
2216         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
2217         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
2218         signature_CENTAUR_ebx.
2219         * config/i386/i386.c (ix86_option_override_internal): Add
2220         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
2221         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
2222         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
2223
2224 2016-06-16  Martin Liska  <mliska@suse.cz>
2225
2226         * predict.def: Add fortran loop preheader predictor.
2227         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
2228         fold IFN_BUILTIN_EXPECT with a known constant argument.
2229
2230 2016-06-16  Martin Liska  <mliska@suse.cz>
2231
2232         * predict.def: Add 'Fortran' to display text of all
2233         PRED_FORTRAN_* predictors.
2234
2235 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
2236
2237         PR target/71242
2238         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
2239         [IA64_BUILTIN_NANSQ]: Ditto.
2240         (ia64_fold_builtin): New function.
2241         (TARGET_FOLD_BUILTIN): New define.
2242         (ia64_init_builtins) Declare const_string_type node.
2243         Add __builtin_nanq and __builtin_nansq builtin functions.
2244         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
2245
2246 2016-06-16  Nick Clifton  <nickc@redhat.com>
2247
2248         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
2249         MSP430_HWMULT_ prefix to enum values.
2250         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
2251         * config/msp430/msp430.c: Update use of enum values.
2252         * config/msp430/msp430.md: Likewise.
2253         * config/msp430/msp430.opt: Likewise.
2254
2255 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
2256
2257         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
2258         of comparsions in the last iteration.
2259
2260 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
2261             Joern Rennecke  <joern.rennecke@embecosm.com>
2262
2263         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
2264         addresses.
2265         (arc_needs_pcl_p): Add GOTOFFPC.
2266         (arc_legitimate_pic_addr_p): Likewise.
2267         (arc_output_pic_addr_const): Likewise.
2268         (arc_legitimize_pic_address): Generate a pc-relative address using
2269         GOTOFFPC.
2270         (arc_output_libcall): Use @pcl syntax.
2271         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
2272         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
2273         (*movsi_insn): Use @pcl syntax.
2274         (doloop_begin_i): Likewise.
2275
2276 2016-06-16  Martin Liska  <mliska@suse.cz>
2277
2278         * predict.def: Define a new predictor.
2279
2280 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
2281
2282         * config/arc/arc.opt (mtp-regno): Update text.
2283
2284 2016-06-16  Renlin Li  <renlin.li@arm.com>
2285
2286         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
2287
2288 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
2289
2290         PR target/71554
2291         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
2292         (setcc + and peephole2): Likewise.
2293
2294         PR rtl-optimization/71532
2295         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
2296         memory slots.
2297
2298 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
2299
2300         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
2301         DImode constants with XXSPLTIB in vector registers.
2302         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
2303         vsx_extract_<mode>_internal{1,2} into a single insn that handles
2304         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
2305         extraction of the element at the top of the register as a scalar
2306         value.
2307         (vsx_extract_<mode>_internal1): Likewise.
2308         (vsx_extract_<mode>_internal2): Likewise.
2309         * config/rs6000/constraints.md (wi constraint): Remove a comment
2310         about DImode not being allowed in Altivec registers.
2311         (wB constraint): New constraint for constants that can be
2312         generated in Altivec registers with VSPLTISW/VUPKHSW.
2313         * config/rs6000/predicates.md (xxspltib_constant_split): Update
2314         comments.
2315         (xxspltib_constant_nosplit): Likewise.
2316         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
2317         support for -mupper-regs-di to enable DImode to go into Altivec
2318         registers.
2319         (POWERPC_MASKS): Likewise.
2320         (power7 cpu): Likewise.
2321         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
2322         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
2323         for DImode being allowed in Altivec registers.  Update wi/wj
2324         constraints.  Set scalar_in_vmx_p flag.
2325         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
2326         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
2327         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
2328         (rs6000_opt_masks): Add -mupper-regs-di.
2329         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
2330         direct move to use wi and not wj.
2331         (lfiwzx): Likewise.
2332         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
2333         alternative.
2334         (floatunssi<mode>2_lfiwzx_mem): Likewise.
2335         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
2336         any VSX register, instead of just Altivec registers, to allow
2337         either operand to be an Altivec register or both.
2338         (fixuns_trunc<mode>di2_fctiduz): Likewise.
2339         (movdi_internal32): Add support for -mupper-regs-di.  Add support
2340         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
2341         the alternatives and attributes to be lined up to be easier to
2342         read.
2343         (movdi_internal64): Likewise.
2344         (64-bit DImode splitters): Change predicates to only split loading
2345         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
2346         load constants in ISA 3.0 or ISA 2.07 respectively.
2347         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2348         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
2349         mention -mcpu=power9 sets these options.
2350         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
2351         wB constraint.
2352
2353 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
2354
2355         PR target/67353
2356         * config/avr/avr.c (avr_set_current_function): Warn misspelled
2357         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
2358         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
2359         by default to warn misspelled interrupt/ signal handler.
2360         * doc/invoke.texi (AVR Options): Document it. Update description
2361         for -nodevicelib option.
2362
2363 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2364
2365         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
2366         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
2367         (aarch64_<sur>shll2_n<mode>): Likewise.
2368
2369 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
2370
2371         PR middle-end/71529
2372         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
2373         DECL_CONTEXT for copied arguments.
2374
2375 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
2376
2377         PR tree-optimization/71483
2378         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
2379         for slp
2380
2381 2016-06-15  Martin Liska  <mliska@suse.cz>
2382
2383         * predict.c (tree_predict_by_opcode): Call predict_edge_def
2384         instead of predict_edge w/o a probability.
2385
2386 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
2387
2388         PR tree-optimization/71439
2389         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
2390         live PHIs.
2391
2392 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2393
2394         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
2395         register subregs in SET_SRC.
2396
2397 2016-06-15  Richard Biener  <rguenther@suse.de>
2398
2399         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
2400         store restrictions.
2401
2402 2016-06-15  Richard Biener  <rguenther@suse.de>
2403
2404         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
2405         not consider dependences between accesses that belong to the
2406         same group.
2407         (vect_analyze_data_ref_dependences): Do not analyze read-read
2408         or self-dependences.
2409
2410 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2411
2412         * spellcheck-tree.c: Include spellcheck-tree.h rather than
2413         spellcheck.h.
2414         (find_closest_identifier): Reimplement in terms of
2415         best_match<tree,tree>.
2416         * spellcheck-tree.h: New file.
2417         * spellcheck.c (struct edit_distance_traits<const char *>): New
2418         struct.
2419         (find_closest_string): Reimplement in terms of
2420         best_match<const char *, const char *>.
2421         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
2422         overload to spellcheck-tree.h.
2423         (find_closest_identifier): Likewise.
2424         (struct edit_distance_traits<T>): New template.
2425         (class best_match): New class.
2426
2427 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2428
2429         * selftest-run-tests.c (selftest::run_tests): Call
2430         selftest::spellcheck_tree_c_tests.
2431         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
2432         * spellcheck-tree.c: Include selftest.h and stringpool.h.
2433         (selftest::test_find_closest_identifier): New function.
2434         (selftest::spellcheck_tree_c_tests): New function.
2435         * spellcheck.c (selftest::test_find_closest_string): Verify that
2436         the order of the vec does not affect the results for this case.
2437         (selftest::test_data): New array.
2438         (selftest::test_metric_conditions): New function.
2439         (selftest::spellcheck_c_tests): Add a test of case-comparison.
2440         Call selftest::test_metric_conditions.
2441
2442 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2443
2444         * config/rs6000/rs6000-builtin.def (commentary): Typo.
2445         (BU_P9_MISC_1): Likewise.
2446         (BU_P9_64BIT_MISC_0): Likewise.
2447         (BU_P9_MISC_0): Likewise.
2448
2449 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
2450
2451         * gcc-rich-location.c
2452         (gcc_rich_location::add_fixit_misspelled_id): New method.
2453         * gcc-rich-location.h
2454         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
2455
2456 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
2457
2458         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
2459         FreeBSD 11 and above.
2460
2461 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
2462
2463         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
2464
2465 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2466
2467         * expmed.h: Close parenthesis in "at your option" in copyright
2468         boilerplate.
2469         * lower-subreg.h: Likewise.
2470
2471 2016-06-14  Richard Biener  <rguenther@suse.de>
2472
2473         PR middle-end/71526
2474         * genmatch.c (expr::gen_transform): Use in_type for comparisons
2475         if available.
2476
2477 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2478
2479         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
2480         New function.
2481         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
2482         mask+shift version.
2483         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
2484         New prototype.
2485         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
2486         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
2487
2488 2016-06-14  Richard Biener  <rguenther@suse.de>
2489
2490         PR tree-optimization/71522
2491         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
2492         copying into float copying.
2493
2494 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
2495
2496         PR tree-optimization/71520
2497         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
2498         (replace_block_by): Move user labels from bb1 to bb2.
2499
2500 2016-06-14  Richard Biener  <rguenther@suse.de>
2501
2502         PR middle-end/71310
2503         PR bootstrap/71510
2504         * expr.h (get_bit_range): Declare.
2505         * expr.c (get_bit_range): Export.
2506         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
2507         word_mode again to constrain the bitfield access.
2508
2509 2016-06-14  Richard Biener  <rguenther@suse.de>
2510
2511         PR tree-optimization/71521
2512         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
2513         division int_const_binop against zero divisor.
2514
2515 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2516
2517         * config/i386/i386.md (signbittf2): New expander.
2518         * config/i386/sse.md (ptesttf2): New insn pattern.
2519
2520 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2521
2522         PR bootstrap/71481
2523         * input.c (selftest::test_reading_source_line): Avoid reading from
2524         __FILE__ by creating a tempfile with known content and reading
2525         from that instead.
2526
2527 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2528
2529         * pretty-print.c (assert_pp_format_colored): Skip the test if
2530         GCC_COLORS is set.
2531         (test_pp_format): Remove comment about GCC_COLORS.
2532
2533 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2534
2535         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
2536         * pretty-print.c (assert_pp_format_va): Add location param and use
2537         it with ASSERT_STREQ_AT.
2538         (assert_pp_format): Add location param and pass it to
2539         assert_pp_format_va.
2540         (assert_pp_format_colored): Likewise.
2541         (ASSERT_PP_FORMAT_1): New.
2542         (ASSERT_PP_FORMAT_2): New.
2543         (ASSERT_PP_FORMAT_3): New.
2544         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
2545         explicitly, or implicitly via the above macros.
2546         * selftest.c (selftest::pass): Use a selftest::location rather
2547         than file and line.
2548         (selftest::fail): Likewise.  Print the function name.
2549         (selftest::fail_formatted): Likewise.
2550         (selftest::assert_streq): Use a selftest::location rather than
2551         file and line.
2552         * selftest.h (selftest::location): New struct.
2553         (SELFTEST_LOCATION): New macro.
2554         (selftest::pass): Accept a const location & rather than file
2555         and line.
2556         (selftest::fail): Likewise.
2557         (selftest::fail_formatted): Likewise.
2558         (selftest::assert_streq): Likewise.
2559         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
2560         (ASSERT_FALSE): Likewise.
2561         (ASSERT_EQ): Likewise.
2562         (ASSERT_NE): Likewise.
2563         (ASSERT_STREQ): Likewise.
2564         (ASSERT_PRED1): Likewise.
2565         (ASSERT_STREQ_AT): New macro.
2566
2567 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
2568
2569         * selftest.c (selftest::fail_formatted): New function.
2570         (selftest::assert_streq): New function.
2571         * selftest.h (selftests::fail_formatted): New decl.
2572         (selftest::assert_streq): New decl.
2573         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
2574
2575 2016-06-13  Jeff Law  <law@redhat.com>
2576
2577         PR tree-optimization/71403
2578         * tree-ssa-threadbackward.c
2579         (convert_and_register_jump_thread_path): No longer accept reference
2580         to path.  Do not pop items off the path anymore.
2581         (fsm_find_control_statement_thread_paths): Do not allow threading
2582         to a deeper loop nest.  Pop the last item off the path here rather
2583         than in convert_and_register_jump_thread_path.
2584
2585 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2586             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
2587
2588         [AArch64] Emit division using the Newton series
2589
2590         * config/aarch64/aarch64-protos.h
2591         (cpu_approx_modes): Add new member "division".
2592         (aarch64_emit_approx_div): Declare new function.
2593         * config/aarch64/aarch64.c
2594         (generic_approx_modes): New member "division".
2595         (exynosm1_approx_modes): Likewise.
2596         (xgene1_approx_modes): Likewise.
2597         (aarch64_emit_approx_div): Define new function.
2598         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
2599         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
2600         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
2601         * doc/invoke.texi (-mlow-precision-div): Describe new option.
2602
2603 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2604             Wilco Dijkstra  <wilco.dijkstra@arm.com>
2605
2606         [AArch64] Emit square root using the Newton series
2607
2608         * config/aarch64/aarch64-protos.h
2609         (aarch64_emit_approx_rsqrt): Replace with new function
2610         "aarch64_emit_approx_sqrt".
2611         (cpu_approx_modes): New member "sqrt".
2612         * config/aarch64/aarch64.c
2613         (generic_approx_modes): New member "sqrt".
2614         (exynosm1_approx_modes): Likewise.
2615         (xgene1_approx_modes): Likewise.
2616         (aarch64_emit_approx_rsqrt): Replace with new function
2617         "aarch64_emit_approx_sqrt".
2618         (aarch64_override_options_after_change_1): Handle new option.
2619         * config/aarch64/aarch64-simd.md
2620         (rsqrt<mode>2): Use new function instead.
2621         (sqrt<mode>2): New expansion and insn definitions.
2622         * config/aarch64/aarch64.md: Likewise.
2623         * config/aarch64/aarch64.opt
2624         (mlow-precision-sqrt): Add new option description.
2625         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
2626
2627 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
2628
2629         [AArch64] Add more choices for the reciprocal square root approximation
2630
2631         Allow a target to prefer such operation depending on the operation mode.
2632
2633         * config/aarch64/aarch64-protos.h
2634         (AARCH64_APPROX_MODE): New macro.
2635         (AARCH64_APPROX_{NONE,ALL}): Likewise.
2636         (cpu_approx_modes): New structure.
2637         (tune_params): New member "approx_modes".
2638         * config/aarch64/aarch64-tuning-flags.def
2639         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
2640         * config/aarch64/aarch64.c
2641         (generic_approx_modes): New core "cpu_approx_modes" structure.
2642         (exynosm1_approx_modes): Likewise.
2643         (xgene1_approx_modes): Likewise.
2644         (generic_tunings): New member "approx_modes".
2645         (cortexa35_tunings): Likewise.
2646         (cortexa53_tunings): Likewise.
2647         (cortexa57_tunings): Likewise.
2648         (cortexa72_tunings): Likewise.
2649         (exynosm1_tunings): Likewise.
2650         (thunderx_tunings): Likewise.
2651         (xgene1_tunings): Likewise.
2652         (use_rsqrt_p): New argument for the mode and use new member from
2653         "tune_params".
2654         (aarch64_builtin_reciprocal): Devise mode from builtin.
2655         (aarch64_optab_supported_p): New argument for the mode.
2656         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
2657
2658 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2659
2660         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
2661         RS6000_BTM_MODULO flag into the set of flags that are considered
2662         to be part of the common configuration.
2663
2664 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2665
2666         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
2667         difference unsigned.
2668         (vec_absdb): New macro for vector absolute difference unsigned
2669         byte.
2670         (vec_absdh): New macro for vector absolute difference unsigned
2671         half-word.
2672         (vec_absdw): New macro for vector absolute difference unsigned word.
2673         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
2674         (vadu<mode>3): New insn.
2675         (*p9_vadu<mode>3): New insn.
2676         * config/rs6000/rs6000-builtin.def (vadub): New built-in
2677         definition.
2678         (vaduh): New built-in definition.
2679         (vaduw): New built-in definition.
2680         (vadu): New overloaded built-in definition.
2681         (vadub): New overloaded built-in definition.
2682         (vaduh): New overloaded built-in definition.
2683         (vaduw): New overloaded built-in definition.
2684         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2685         overloaded vector absolute difference unsigned functions.
2686         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2687         the ISA 3.0 vector absolute difference unsigned built-in functions.
2688
2689 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
2690
2691         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
2692         update shared_lookup_references only once after changing operands.
2693
2694 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
2695
2696         PR middle-end/71373
2697         * tree-nested.c (convert_nonlocal_omp_clauses)
2698         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
2699
2700         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
2701         * tree.def (CASE_LABEL_EXPR): Likewise.
2702
2703 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2704
2705         PR bootstrap/71481
2706         * input.c (test_builtins): Fix an assertion.
2707
2708 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2709
2710         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
2711         (paritysi2): Ditto.
2712         (isinfxf2): Ditto.
2713         (isinf<mode>2): Ditto.
2714
2715 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
2716
2717         * ggc-tests.c (test_finalization): Only test need_finalization_p
2718         for GCC_VERSION >= 4003.
2719
2720 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2721
2722         * config/s390/vecintrin.h: Fix file description in comment.
2723
2724 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2725
2726         * config/s390/s390-builtin-types.def: Change builtin type naming
2727         scheme to match builtin-types.def.
2728
2729 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
2730
2731         * fold-const.c (optimize_minmax_comparison): Remove.
2732         (fold_comparison): Remove call to the above.
2733         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
2734         New transformations.
2735
2736 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
2737
2738         PR tree-optimization/71416
2739         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
2740         multiple entries
2741
2742 2016-06-13  Martin Liska  <mliska@suse.cz>
2743
2744         * predict.c (enum predictor_reason): Prefix enum with REASON_.
2745         (combine_predictions_for_insn): Likewise.
2746         (prune_predictions_for_bb): Likewise.
2747         (combine_predictions_for_bb): Likewise.
2748
2749 2016-06-13  Richard Biener  <rguenther@suse.de>
2750
2751         PR tree-optimization/71505
2752         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
2753         assert match comment.
2754
2755 2016-06-13  Marek Polacek  <polacek@redhat.com>
2756
2757         PR middle-end/71476
2758         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
2759         gimplify_switch_expr.
2760         (warn_switch_unreachable_r): New function.
2761
2762 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2763
2764         PR target/71379
2765         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
2766         one.
2767
2768 2016-06-13  Richard Biener  <rguenther@suse.de>
2769
2770         PR middle-end/64516
2771         * fold-const.c (fold_unary_loc): Preserve alignment when
2772         folding a VIEW_CONVERT_EXPR into a MEM_REF.
2773
2774 2016-06-13  Martin Liska  <mliska@suse.cz>
2775
2776         PR sanitizer/71458
2777         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
2778         w/ -fsanitize=bounds.
2779
2780 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
2781
2782         * config/i386/i386.c (ix86_init_builtins): Calculate
2783         FLOAT128_FTYPE_CONST_STRING function type only once.
2784         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
2785         built-in functions are available for x86-32 and x86-64 targets.
2786
2787 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
2788
2789         PR target/71241
2790         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
2791         New primitive type.
2792         (FLOAT128_FTYPE_CONST_STRING): New function type.
2793         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
2794         [IX86_BUILTIN_NANSQ]: Ditto.
2795         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
2796         (ix86_init_builtin_types): Declare const_string_type_node.
2797         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
2798         builtin functions.
2799         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
2800         * doc/extend.texi (x86 Built-in Functions): Document
2801         __builtin_nanq and __builtin_nansq.
2802
2803 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
2804
2805         PR target/71061
2806         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
2807         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
2808         length for pop patterns.
2809         (arm_attr_length_push_multi): Update comments.
2810         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
2811         attribute.
2812         (*pop_multiple_with_writeback_and_return): Likewise.
2813         (*pop_multiple_with_return): Likewise.
2814
2815 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
2816
2817         PR middle-end/71310
2818         * fold-const.c (optimize_bit_field_compare): Don't try to use
2819         word_mode unconditionally for reading the bit field, look at
2820         DECL_BIT_FIELD_REPRESENTATIVE instead.
2821
2822 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
2823
2824         PR middle-end/71478
2825         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
2826         vector integer type.
2827
2828 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
2829
2830         PR middle-end/71494
2831         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
2832         without LABEL_DECL, set *handled_ops_p to false instead of true.
2833
2834 2016-06-10  Martin Sebor  <msebor@redhat.com>
2835
2836         PR c/71392
2837         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
2838         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
2839         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
2840         them.
2841         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
2842         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
2843         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
2844         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
2845         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
2846         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
2847         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
2848         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
2849
2850 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2851
2852         * config/arm/arm.h (pool_vector_label,
2853         return_used_this_function): Remove.
2854
2855 2016-06-10  Jeff Law  <law@redhat.com>
2856
2857         PR tree-optimization/71335
2858         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
2859         zero length paths here.
2860         (convert_and_register_jump_thread_path): Remove hacks related to
2861         duplicated blocks in the jump thread path.
2862         (fsm_find_control_statement_thread_paths): Avoid putting the same
2863         block on the thread path twice, but ensure the thread path is
2864         unchanged from the caller's point of view.
2865
2866 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
2867
2868         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
2869         * predict.def (PRED_LOOP_BRANCH): Remove.
2870
2871 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
2872
2873         * Makefile.in (OBJS): Add ggc-tests.o.
2874         (GTFILES): Add ggc-tests.c.
2875         * ggc-tests.c: New file.
2876         * selftest-run-tests.c (selftest::run_tests): Call
2877         selftest::ggc_tests_c_tests.
2878         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
2879
2880 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
2881
2882         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
2883
2884 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
2885
2886         PR sanitizer/71480
2887         * varasm.c (place_block_symbol): Adjust alignment for asan protected
2888         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
2889
2890 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
2891
2892         * profile.c: Include cfgloop.h.
2893         (branch_prob): Compute estimated number of iterations.
2894         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
2895         recompute estimate number of iterations from profile.
2896
2897 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2898
2899         PR inline-asm/68843
2900         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
2901         must be grouped on top of stack.  Don't force early clobber
2902         on ordinary reg outputs.
2903
2904 2016-06-10  Richard Biener  <rguenther@suse.de>
2905
2906         * targhooks.c (default_builtin_vectorization_cost): Adjust
2907         vec_construct cost.
2908
2909 2016-06-10  Richard Biener  <rguenther@suse.de>
2910
2911         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
2912         to fold the RHS to a constant if possible.
2913
2914 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
2915
2916         PR middle-end/71373
2917         * tree-nested.c (convert_nonlocal_omp_clauses)
2918         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
2919         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
2920         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
2921
2922         * gimplify.c (gimplify_adjust_omp_clauses): Discard
2923         OMP_CLAUSE_TILE.
2924         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
2925
2926         * omp-low.c (scan_sharing_clauses): Don't expect
2927         OMP_CLAUSE__CACHE_.
2928
2929 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
2930
2931         PR tree-optimization/71407
2932         PR tree-optimization/71416
2933         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
2934         BIT_FIELD_REF type.
2935
2936 2016-06-10  Richard Biener  <rguenther@suse.de>
2937
2938         PR middle-end/71477
2939         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
2940
2941 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2942
2943         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
2944
2945 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
2946             Jiong Wang  <jiong.wang@arm.com>
2947
2948         PR rtl-optimization/70751
2949         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
2950         spilled into memory.
2951
2952 2016-06-09  Jonathan Yong  <10walls@gmail.com>
2953
2954         Revert:
2955         2015-09-21  Jonathan Yong  <10walls@gmail.com>
2956
2957         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
2958         sysroot/usr/lib/32api for additional win32 libraries,
2959         fixes failing Cygwin bootstrapping.
2960
2961 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
2962
2963         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
2964         Delete.
2965
2966 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
2967
2968         PR bootstrap/71471
2969         * pretty-print.c (pp_indent): Specify that %p is printed in a
2970         host-dependent manner.
2971         (test_pp_format): Remove the test for %p.
2972
2973 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
2974
2975         * config/mips/mips.c (mips_output_jump): Fix formatting.
2976
2977 2016-06-09  Richard Biener  <rguenther@suse.de>
2978
2979         PR tree-optimization/71462
2980         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
2981         removed blocks.
2982
2983 2016-06-09  Martin Liska  <mliska@suse.cz>
2984
2985         * predict.c (dump_prediction): Add new argument.
2986         (enum predictor_reason): New enum.
2987         (struct predictor_hash): New struct.
2988         (predictor_hash::hash): New function.
2989         (predictor_hash::equal): Likewise.
2990         (not_removed_prediction_p): New function.
2991         (prune_predictions_for_bb): Likewise.
2992         (combine_predictions_for_bb): Prune predictions.
2993
2994 2016-06-09  Martin Liska  <mliska@suse.cz>
2995
2996         * predict.c (filter_predictions): New function.
2997         (remove_predictions_associated_with_edge): Use the filter
2998         function.
2999         (equal_edge_p): New function.
3000
3001 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
3002
3003         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
3004         Correct usage of @samp vs @option, add @samp where appropriate.
3005         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
3006         Add armv6s-m and document it, as it is no official ARM name.
3007
3008 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3009
3010         * ifcvt.c (struct noce_if_info): Add transform_name field.
3011         (noce_try_move): Set if_info->transform_name to the function name.
3012         (noce_try_ifelse_collapse): Likewise.
3013         (noce_try_store_flag): Likewise.
3014         (noce_try_inverse_constants): Likewise.
3015         (noce_try_store_flag_constants): Likewise.
3016         (noce_try_addcc): Likewise.
3017         (noce_try_store_flag_mask): Likewise.
3018         (noce_try_cmove): Likewise.
3019         (noce_try_cmove_arith): Likewise.
3020         (noce_try_minmax): Likewise.
3021         (noce_try_abs): Likewise.
3022         (noce_try_sign_mask): Likewise.
3023         (noce_try_bitop): Likewise.
3024         (noce_convert_multiple_sets): Likewise.
3025         (noce_process_if_block): Print if_info->transform_name to
3026         dump_file if transformation succeeded.
3027
3028 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3029
3030         * config/arm/cortex-a57.md (cortex_a57_alu):
3031         Handle csel type.
3032
3033 2016-06-08  Martin Sebor  <msebor@redhat.com>
3034             Jakub Jelinek  <jakub@redhat.com>
3035
3036         PR c++/70507
3037         PR c/68120
3038         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
3039         BUILT_IN_MUL_OVERFLOW_P): New builtins.
3040         * builtins.c: Include gimple-fold.h.
3041         (fold_builtin_arith_overflow): Handle
3042         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
3043         (fold_builtin_3): Likewise.
3044         * doc/extend.texi (Integer Overflow Builtins): Document
3045         __builtin_{add,sub,mul}_overflow_p.
3046
3047 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
3048
3049         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
3050         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
3051
3052 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
3053
3054         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
3055         Rewrite, looking one level down for records and arrays.
3056
3057 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
3058
3059         * pretty-print.c: Include "selftest.h".
3060         (pp_format): Fix comment.
3061         (identifier_to_locale): Likewise.
3062         (selftest::test_basic_printing): New function.
3063         (selftest::assert_pp_format): New function.
3064         (selftest::test_pp_format): New function.
3065         (selftest::pretty_print_c_tests): New function.
3066         * selftest-run-tests.c (selftest::run_tests): Call
3067         selftest::pretty_print_c_tests.
3068         * selftest.h (pretty_print_c_tests): New declaration.
3069
3070 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3071
3072         * invoke.texi (max-loop-headers-insns): Document.
3073         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
3074         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
3075         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
3076
3077 2016-06-08  Richard Biener  <rguenther@suse.de>
3078
3079         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
3080         on strided SLP loads and fall back to scalar loads in case
3081         we can't chunk them.
3082
3083 2016-06-08  Richard Biener  <rguenther@suse.de>
3084
3085         PR tree-optimization/71452
3086         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
3087         type used for the SSA rewrite has enough precision to cover
3088         the dynamic type of the location.
3089
3090 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
3091             Richard Biener  <rguenther@suse.de>
3092
3093         PR c++/71448
3094         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
3095         the same as DECL_P (base0) for indirect_base0.  Use equality_code
3096         in one further place.
3097
3098 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
3099
3100         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
3101         to one word if the field is known to overlap other words.
3102         (extract_bit_field_1): Likewise.
3103         (store_split_bit_field): Remove compensating code.
3104         (extract_split_bit_field): Likewise.
3105
3106 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
3107
3108         PR debug/71432
3109         PR ada/71413
3110         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
3111
3112 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
3113
3114         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
3115         VDQF.
3116         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
3117         (arch64_addpv4sf): Delete.
3118         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
3119         "gen_aarch64_addpv4sf".
3120         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
3121         builtin.
3122         (vpadds_f32): Likewise.
3123         (vpaddq_f32): Likewise.
3124         (vpaddq_f64): Likewise.
3125
3126 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
3127
3128         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
3129         VALLF.
3130         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
3131         to VALLF.  Rename to "fabd<mode>3".
3132         "*fabd_scalar<mode>3): Delete.
3133         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
3134         Use builtin.
3135         (vabdd_f64): Likewise.
3136         (vabd_f32): Likewise.
3137         (vabd_f64): Likewise.
3138         (vabdq_f32): Likewise.
3139         (vabdq_f64): Likewise.
3140
3141 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
3142
3143         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
3144         VALLF.
3145         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
3146         "aarch64_rsqrts<mode>".
3147         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
3148         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
3149         builtin.
3150         (vrsqrtsd_f64): Likewise.
3151         (vrsqrts_f32): Likewise.
3152         (vrsqrts_f64): Likewise.
3153         (vrsqrtsq_f32): Likewise.
3154         (vrsqrtsq_f64): Likewise.
3155
3156 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
3157
3158         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
3159         VALLF.
3160         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
3161         "aarch64_rsqrte<mode>".
3162         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
3163         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
3164         builtin.
3165         (vrsqrted_f64): Likewise.
3166         (vrsqrte_f32): Likewise.
3167         (vrsqrte_f64): Likewise.
3168         (vrsqrteq_f32): Likewise.
3169         (vrsqrteq_f64): Likewise.
3170
3171 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
3172
3173         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
3174         (ucvtf): Likewise.
3175         (fcvtzs): Likewise.
3176         (fcvtzu): Likewise.
3177         * config/aarch64/aarch64-simd.md
3178         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
3179         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
3180         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
3181         Use builtin.
3182         (vcvt_n_f32_u32): Likewise.
3183         (vcvt_n_s32_f32): Likewise.
3184         (vcvt_n_u32_f32): Likewise.
3185         (vcvtq_n_f32_s32): Likewise.
3186         (vcvtq_n_f32_u32): Likewise.
3187         (vcvtq_n_f64_s64): Likewise.
3188         (vcvtq_n_f64_u64): Likewise.
3189         (vcvtq_n_s32_f32): Likewise.
3190         (vcvtq_n_s64_f64): Likewise.
3191         (vcvtq_n_u32_f32): Likewise.
3192         (vcvtq_n_u64_f64): Likewise.
3193         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
3194         (VSDQ_SDI): Likewise.
3195         (fcvt_target): Support V4DI, V4SI and V2SI.
3196         (FCVT_TARGET): Likewise.
3197
3198 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
3199
3200         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
3201         (TYPES_BINOP_SUS): Likewise.
3202         (aarch64_simd_builtin_data): Update include file name.
3203         (aarch64_builtins): Likewise.
3204         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
3205         for conversion between scalar float-point and fixed-point.
3206         (ucvtf): Likewise.
3207         (fcvtzs): Likewise.
3208         (fcvtzu): Likewise.
3209         * config/aarch64/aarch64.md
3210         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
3211         pattern for conversion between scalar float to fixed-pointer.
3212         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
3213         (UNSPEC_FCVTZS): New UNSPEC enumeration.
3214         (UNSPEC_FCVTZU): Likewise.
3215         (UNSPEC_SCVTF): Likewise.
3216         (UNSPEC_UCVTF): Likewise.
3217         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
3218         Use builtin.
3219         (vcvtd_n_f64_u64): Likewise.
3220         (vcvtd_n_s64_f64): Likewise.
3221         (vcvtd_n_u64_f64): Likewise.
3222         (vcvtd_n_f32_s32): Likewise.
3223         (vcvts_n_f32_u32): Likewise.
3224         (vcvtd_n_s32_f32): Likewise.
3225         (vcvts_n_u32_f32): Likewise.
3226         * config/aarch64/iterators.md (fcvt_target): Support integer to float
3227         mapping.
3228         (FCVT_TARGET): Likewise.
3229         (FCVT_FIXED2F): New iterator.
3230         (FCVT_F2FIXED): Likewise.
3231         (fcvt_fixed_insn): New define_int_attr.
3232
3233 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3234
3235         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
3236         some statements was removed.
3237
3238 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
3239
3240         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
3241         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
3242         (vect_can_advance_ivs_p): likewise.
3243         (vect_update_ivs_after_vectorizer): likewise.
3244         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
3245         (vect_analyze_scalar_cycles_1): likewise.
3246         (vect_analyze_loop_operations): likewise.
3247         (report_vect_op): likewise.
3248         (vect_is_slp_reduction): likewise.
3249         (vect_is_simple_reduction): likewise.
3250         (get_initial_def_for_induction): likewise.
3251         (vect_transform_loop): likewise.
3252         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
3253         (vect_recog_sad_pattern): likewise.
3254         (vect_recog_widen_sum_pattern): likewise.
3255         (vect_recog_widening_pattern): likewise.
3256         (vect_recog_divmod_pattern): likewise.
3257         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
3258         (vect_analyze_slp_instance): likewise.
3259         (vect_transform_slp_perm_load): likewise.
3260         (vect_schedule_slp_instance): likewise.
3261
3262 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3263
3264         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
3265         (return_prediction): PRED_CONST_RETURN predict return as not taken.
3266         * predict.def (PRED_CONTINUE): Change hitrate 50->67
3267         (PRED_LOOP_BRANCH): Document predictor as broken.
3268         (PRED_LOOP_EXIT): Change hitrate 91->92.
3269         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
3270         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
3271         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
3272         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
3273         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
3274         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
3275         (PRED_CALL): Chane hitrate 71->67.
3276         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
3277         (PRED_GOTO): Document as unused right now.
3278         (PRED_CONST_RETURN): Change hitrate 67->69
3279         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
3280         (PRED_NULL_RETURN): Change hitrate 91->90.
3281         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
3282         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
3283         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
3284
3285 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
3286
3287         * config/rs6000/altivec.h: Add __builtin_vec_mul.
3288         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
3289         special case Altivec builtin.
3290         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
3291         VSX_BUILTIN_VEC_MUL (replaced with special case code).
3292         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3293         code for ALTIVEC_BUILTIN_VEC_MUL.
3294         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3295         for __builtin_vec_mul.
3296
3297 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
3298
3299         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
3300         -mno-htm.
3301
3302 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
3303
3304         * spellcheck.c (selftest::test_find_closest_string): New function.
3305         (spellcheck_c_tests): Call the above.
3306
3307 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3308
3309         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
3310
3311 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
3312
3313         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
3314         Yv=Yv,C alternatives.
3315
3316 2016-06-07  Richard Biener  <rguenther@suse.de>
3317
3318         PR c/61564
3319         * common.opt (ffast-math): Make Optimization.
3320
3321 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
3322             Prachi Godbole  <prachi.godbole@imgtec.com>
3323
3324         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
3325         `fabs' and `fneg' type attributes.
3326         (p5600_fpu_fabs): Add `fmove' to the comment.
3327
3328 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
3329
3330         * gimple.c: Include builtins.h
3331         (gimple_inexpensive_call_p): New function.
3332         * gimple.h (gimple_inexpensive_call_p): Declare.
3333         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
3334         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
3335         fix formatting.
3336
3337 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
3338
3339         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
3340         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
3341         warning_at_rich_loc, warning_n, pedwarn, permerror,
3342         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
3343         sorry, fatal_error, internal_error, internal_error_no_backtrace):
3344         Use the above.
3345
3346 2016-06-07  Richard Biener  <rguenther@suse.de>
3347
3348         PR tree-optimization/71428
3349         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
3350         BIT_FIELD_REF op vs. load.
3351
3352 2016-06-07  Richard Biener  <rguenther@suse.de>
3353
3354         PR middle-end/71423
3355         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
3356         for signed ops.
3357
3358 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
3359
3360         * config/pa/pa.md (call): Generate indirect long calls to non-local
3361         functions on TARGET_64BIT.
3362         (call_value): Likewise.
3363
3364 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
3365
3366         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
3367         pattern and subsequent splitters.
3368         (call_val_reg_64bit_post_reload): Likewise.
3369
3370 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
3371
3372         PR middle-end/71408
3373         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
3374         propagate_op_to_single_use.
3375
3376 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
3377
3378         PR middle-end/71281
3379         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
3380
3381 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
3382
3383         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
3384         (enum x86_dirflag_state): New enum.
3385         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
3386         (machine_function): Remove needs_cld.
3387         (ix86_current_function_needs_cld): Remove.
3388         * config/i386/i386.c (ix86_set_func_type): Set
3389         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
3390         (ix86_expand_prologue): Do not emit CLD here.
3391         (ix86_dirflag_mode_needed): New function.
3392         (ix86_dirflag_mode_entry): Ditto.
3393         (ix86_mode_needed): Handle X86_DIRFLAG entity.
3394         (ix86_mode_after): Ditto.
3395         (ix86_mode_entry): Ditto.
3396         (ix86_mode_exit): Ditto.
3397         (ix86_emit_mode_set): Ditto.
3398         * config/i386/i386.md (strmov_singleop): Set
3399         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
3400         Do not set ix86_current_function_needs_cld.
3401         (rep_mov): Ditto.
3402         (strset_singleop): Ditto.
3403         (rep_stos): Ditto.
3404         (cmpstrnqi_nz_1): Ditto.
3405         (cmpstrnqi_1): Ditto.
3406         (strlenqi_1): Ditto.
3407
3408 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
3409
3410         PR tree-optimization/71259
3411         * tree-vect-slp.c (vect_get_constant_vectors): For
3412         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
3413         one for constant op, and use COND_EXPR for non-constant.
3414
3415 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
3416
3417         * Makefile.in (OBJS): Add function-tests.o,
3418         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
3419         selftest-run-tests.o.
3420         (OBJS-libcommon): Add selftest.o.
3421         (OBJS-libcommon-target): Add selftest.o.
3422         (all.internal): Add "selftest".
3423         (all.cross): Likewise.
3424         (selftest): New phony target.
3425         (s-selftest): New target.
3426         (selftest-gdb): New phony target.
3427         (COLLECT2_OBJS): Add selftest.o.
3428         * bitmap.c: Include "selftest.h".
3429         (selftest::test_gc_alloc): New function.
3430         (selftest::test_set_range): New function.
3431         (selftest::test_clear_bit_in_middle): New function.
3432         (selftest::test_copying): New function.
3433         (selftest::test_bitmap_single_bit_set_p): New function.
3434         (selftest::bitmap_c_tests): New function.
3435         * common.opt (fself-test): New.
3436         * diagnostic-show-locus.c: Include "selftest.h".
3437         (make_range): New function.
3438         (test_range_contains_point_for_single_point): New function.
3439         (test_range_contains_point_for_single_line): New function.
3440         (test_range_contains_point_for_multiple_lines): New function.
3441         (assert_eq): New function.
3442         (test_get_line_width_without_trailing_whitespace): New function.
3443         (selftest::diagnostic_show_locus_c_tests): New function.
3444         * et-forest.c: Include "selftest.h".
3445         (selftest::test_single_node): New function.
3446         (selftest::test_simple_tree): New function.
3447         (selftest::test_disconnected_nodes): New function.
3448         (selftest::et_forest_c_tests): New function.
3449         * fold-const.c: Include "selftest.h".
3450         (selftest::assert_binop_folds_to_const): New function.
3451         (selftest::assert_binop_folds_to_nonlvalue): New function.
3452         (selftest::test_arithmetic_folding): New function.
3453         (selftest::fold_const_c_tests): New function.
3454         * function-tests.c: New file.
3455         * gimple.c: Include "selftest.h".
3456         Include "gimple-pretty-print.h".
3457         (selftest::verify_gimple_pp): New function.
3458         (selftest::test_assign_single): New function.
3459         (selftest::test_assign_binop): New function.
3460         (selftest::test_nop_stmt): New function.
3461         (selftest::test_return_stmt): New function.
3462         (selftest::test_return_without_value): New function.
3463         (selftest::gimple_c_tests): New function.
3464         * hash-map-tests.c: New file.
3465         * hash-set-tests.c: New file.
3466         * input.c: Include "selftest.h".
3467         (selftest::assert_loceq): New function.
3468         (selftest::test_accessing_ordinary_linemaps): New function.
3469         (selftest::test_unknown_location): New function.
3470         (selftest::test_builtins): New function.
3471         (selftest::test_reading_source_line): New function.
3472         (selftest::input_c_tests): New function.
3473         * rtl-tests.c: New file.
3474         * selftest-run-tests.c: New file.
3475         * selftest.c: New file.
3476         * selftest.h: New file.
3477         * spellcheck.c: Include "selftest.h".
3478         (selftest::levenshtein_distance_unit_test_oneway): New function,
3479         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
3480         (selftest::levenshtein_distance_unit_test): Likewise.
3481         (selftest::spellcheck_c_tests): Likewise.
3482         * toplev.c: Include selftest.h.
3483         (toplev::run_self_tests): New.
3484         (toplev::main): Handle -fself-test.
3485         * toplev.h (toplev::run_self_tests): New.
3486         * tree.c: Include "selftest.h".
3487         (selftest::test_integer_constants): New function.
3488         (selftest::test_identifiers): New function.
3489         (selftest::test_labels): New function.
3490         (selftest::tree_c_tests): New function.
3491         * tree-cfg.c: Include "selftest.h".
3492         (selftest::push_fndecl): New function.
3493         (selftest::test_linear_chain): New function.
3494         (selftest::test_diamond): New function.
3495         (selftest::test_fully_connected): New function.
3496         (selftest::tree_cfg_c_tests): New function.
3497         * vec.c: Include "selftest.h".
3498         (selftest::safe_push_range): New function.
3499         (selftest::test_quick_push): New function.
3500         (selftest::test_safe_push): New function.
3501         (selftest::test_truncate): New function.
3502         (selftest::test_safe_grow_cleared): New function.
3503         (selftest::test_pop): New function.
3504         (selftest::test_safe_insert): New function.
3505         (selftest::test_ordered_remove): New function.
3506         (selftest::test_unordered_remove): New function.
3507         (selftest::test_block_remove): New function.
3508         (selftest::reverse_cmp): New function.
3509         (selftest::test_qsort): New function.
3510         (selftest::vec_c_tests): New function.c.
3511         * wide-int.cc: Include selftest.h and wide-int-print.h.
3512         (selftest::from_int <wide_int>): New function.
3513         (selftest::from_int <offset_int>): New function.
3514         (selftest::from_int <widest_int>): New function.
3515         (selftest::assert_deceq): New function.
3516         (selftest::assert_hexeq): New function.
3517         (selftest::test_printing <VALUE_TYPE>): New function template.
3518         (selftest::test_ops <VALUE_TYPE>): New function template.
3519         (selftest::test_comparisons <VALUE_TYPE>): New function template.
3520         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
3521         template.
3522         (selftest::wide_int_cc_tests): New function.
3523
3524 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3525
3526         PR middle-end/37780
3527         * ifcvt.c (noce_try_ifelse_collapse): New function.
3528         Declare prototype.
3529         (noce_process_if_block): Call noce_try_ifelse_collapse.
3530         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
3531         (simplify_ternary_operation): Use the above to simplify
3532         conditional CLZ/CTZ expressions.
3533
3534 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3535
3536         PR middle-end/37780
3537         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
3538         define_insn_and_split.
3539
3540 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3541
3542         PR middle-end/37780
3543         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
3544
3545 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3546
3547         PR c/24414
3548         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
3549         Implicitly clobber memory for basic asm with non-empty assembler
3550         string.  Use targetm.md_asm_adjust also here.
3551         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
3552         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
3553         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
3554         non-empty assembler string.
3555         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
3556         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
3557         (decode_asm_operands): Handle basic asm in PARALLEL block.
3558         (extract_insn): Handle basic asm in PARALLEL block.
3559         * doc/extend.texi: Mention new behavior of basic asm.
3560         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
3561         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
3562         branch_needs_nop_p): Use asm_noperands.
3563
3564 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
3565
3566         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
3567         Include the M7 SPARC DFA scheduler.
3568         New attribute v3pipe.
3569         Annotate insns with v3pipe where appropriate.
3570         Define cpu_feature vis4.
3571         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
3572         Add (V8QI "8") to vbits.
3573         Add insns {add,sub}v8qi3
3574         Add insns ss{add,sub}v8qi3
3575         Add insns us{add,sub}{v8qi,v4hi}3
3576         Add insns {min,max}{v8qi,v4hi,v2si}3
3577         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
3578         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
3579         * config/sparc/niagara4.md: Add a comment explaining the
3580         discrepancy between the documented latenty numbers and the
3581         implemented ones.
3582         * config/sparc/niagara7.md: New file.
3583         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
3584         supports SPARC5 and VIS 4.0 instructions.
3585         * configure: Regenerate.
3586         * config.in: Likewise.
3587         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
3588         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
3589         TARGET_CPU_niagara7.
3590         (ASM_CPU64_DEFAULT_SPEC): Likewise.
3591         (CPP_CPU_SPEC): Handle niagara7.
3592         (ASM_CPU_SPEC): Likewise.
3593         * config/sparc/sparc-opts.h (processor_type): Add
3594         PROCESSOR_NIAGARA7.
3595         (mvis4): New option.
3596         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
3597         (AS_NIAGARA7_FLAG): Define.
3598         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
3599         (CPP_CPU64_DEFAULT_SPEC): Likewise.
3600         (CPP_CPU_SPEC): Handle niagara7.
3601         (ASM_CPU_SPEC): Likewise.
3602         * config/sparc/sparc.c (niagara7_costs): Define.
3603         (sparc_option_override): Handle niagara7 and adjust cache-related
3604         parameters with better values for niagara cpus.  Also support VIS4.
3605         (sparc32_initialize_trampoline): Likewise.
3606         (sparc_use_sched_lookahead): Likewise.
3607         (sparc_issue_rate): Likewise.
3608         (sparc_register_move_cost): Likewise.
3609         (dump_target_flag_bits): Support VIS4.
3610         (sparc_vis_init_builtins): Likewise.
3611         (sparc_builtins): Likewise.
3612         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
3613         VIS4 4.0.
3614         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
3615         UltraSparc M7.
3616         * config/sparc/sparc.opt (sparc_processor_type): New value
3617         niagara7.
3618         * config/sparc/visintrin.h (__attribute__): Prototypes for the
3619         VIS4 builtins.
3620         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
3621         -mvis4.
3622         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
3623         VIS4 builtins.
3624
3625 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
3626
3627         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
3628
3629 2016-06-06  Richard Biener  <rguenther@suse.de>
3630
3631         PR tree-optimization/71398
3632         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
3633         remove edges.
3634
3635 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
3636
3637         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
3638         ft32_expand_prolog, ft32_expand_epilogue):
3639         Handle pretend_args.
3640         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
3641         * config/ft32/ft32.md: Add pretend_returner.
3642
3643 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
3644
3645         PR target/71389
3646         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3647         Copy op1 RTX to avoid invalid sharing.
3648         (ix86_expand_vector_move_misalign): Ditto.
3649
3650 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
3651
3652         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
3653         ATTRIBUTE_UNUSED.
3654
3655 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
3656
3657         * predict.c (predicted_by_loop_heuristics_p): New function.
3658         (predict_iv_comparison): Use it.
3659         (predict_loops): Walk from innermost loops; do not predict edges
3660         leaving multiple loops multiple times; implement
3661         PRED_LOOP_ITERATIONS_MAX heuristics.
3662         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
3663
3664 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
3665
3666         * cfg.c (check_bb_profile): Do not report mismatched profiles when
3667         only edges out of BB are EH edges.
3668
3669 2016-06-04  Martin Sebor  <msebor@redhat.com>
3670             Marcin Baczyński  <marbacz@gmail.com>
3671
3672         PR c/48116
3673         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
3674         a void expression in a void function.
3675
3676 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
3677
3678         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
3679         aux; dump reasons of decisions.
3680         (should_duplicate_loop_header_p): Likewise.
3681         (do_while_loop_p): Likewise.
3682         (ch_base::copy_headers): Dump asi num insns duplicated.
3683
3684 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
3685
3686         PR tree-optimization/71405
3687         * tree-ssa.c (execute_update_addresses_taken): For clobber with
3688         incompatible type, build a new clobber with the right type instead
3689         of building a VIEW_CONVERT_EXPR around it.
3690
3691 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
3692
3693         PR tree-optimization/52171
3694         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
3695         by_pieces_ninsns instead of move_by_pieces_ninsns.
3696
3697 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
3698
3699         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
3700         for reg+reg addressing mode.
3701
3702 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3703
3704         * rs6000-c.c (c/c-tree.h): Add #include.
3705         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
3706         in C++ when found in the base position of vec_ld or vec_st.
3707
3708 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
3709
3710         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
3711         use of profile unless profile status is PROFILE_READ.
3712         * profile.c (compute_branch_probabilities): Set profile status
3713         only after reporting predictor hitrates.
3714
3715 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
3716
3717         PR target/71276
3718         PR target/71277
3719         * common.opt (ffp-int-builtin-inexact): New option.
3720         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
3721         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
3722         (ceil@var{m}2): Document dependence on this option.
3723         * ipa-inline-transform.c (inline_call): Handle
3724         flag_fp_int_builtin_inexact.
3725         * ipa-inline.c (can_inline_edge_p): Likewise.
3726         * config/i386/i386.md (rintxf2): Do not test
3727         flag_unsafe_math_optimizations.
3728         (rint<mode>2_frndint): New define_insn.
3729         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
3730         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
3731         for 387 instead of extending and truncating.
3732         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
3733         !flag_trapping_math instead of flag_unsafe_math_optimizations.
3734         Change to frndint<mode>2_<rounding>.
3735         (frndintxf2_<rounding>_i387): Likewise.  Change to
3736         frndint<mode>2_<rounding>_i387.
3737         (<rounding_insn>xf2): Likewise.
3738         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
3739         !flag_trapping_math instead of flag_unsafe_math_optimizations for
3740         x87.  Test TARGET_ROUND || !flag_trapping_math ||
3741         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
3742         SSE.  Use ROUND_NO_EXC in constant operand of
3743         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
3744         for 387 instead of extending and truncating.
3745
3746 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
3747             Julia Koval  <julia.koval@intel.com>
3748
3749         PR target/66960
3750         PR target/67630
3751         PR target/67634
3752         PR target/67841
3753         PR target/68037
3754         PR target/68618
3755         PR target/68661
3756         PR target/69575
3757         PR target/69596
3758         PR target/69734
3759         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
3760         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
3761         all registers, except for function return registers if there are
3762         no caller-saved registers.
3763         (ix86_set_func_type): New function.
3764         (ix86_set_current_function): Call ix86_set_func_type to set
3765         no_caller_saved_registers and func_type.  Call reinit_regs if
3766         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
3767         nor x87 instructions in interrupt handler nor function with
3768         no_caller_saved_registers attribute.
3769         (ix86_function_ok_for_sibcall): Return false if there are no
3770         caller-saved registers.
3771         (type_natural_mode): Don't warn ABI change for MMX in interrupt
3772         handler.
3773         (ix86_function_arg_advance): Skip for callee in interrupt handler.
3774         (ix86_function_arg): Return special arguments in interrupt handler.
3775         (ix86_promote_function_mode): Promote pointer to word_mode only
3776         for normal functions.
3777         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
3778         interrupt handler.
3779         (ix86_epilogue_uses): New function.
3780         (ix86_hard_regno_scratch_ok): Likewise.
3781         (ix86_save_reg): Preserve all registers in interrupt handler
3782         after reload.  Preserve all registers, except for function return
3783         registers, if there are no caller-saved registers after reload.
3784         (find_drap_reg): Always use callee-saved register if there are
3785         no caller-saved registers.
3786         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
3787         for interrupt handler.
3788         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
3789         Emit cld instruction if stringops are used in interrupt handler
3790         or interrupt handler isn't a leaf function.
3791         (ix86_expand_epilogue): Generate interrupt return for interrupt
3792         handler and pop the 'ERROR_CODE' off the stack before interrupt
3793         return in exception handler.
3794         (ix86_expand_call): Disallow calling interrupt handler directly.
3795         If there are no caller-saved registers, mark all registers that
3796         are clobbered by the call which returns as clobbered.
3797         (ix86_handle_no_caller_saved_registers_attribute): New function.
3798         (ix86_handle_interrupt_attribute): Likewise.
3799         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
3800         attributes.
3801         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
3802         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
3803         accumulation in interrupt function if stack may be realigned to
3804         avoid DRAP.
3805         (EPILOGUE_USES): New.
3806         (function_type): New enum.
3807         (machine_function): Add func_type and no_caller_saved_registers.
3808         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
3809         (interrupt_return): New pattern.
3810         * doc/extend.texi: Document x86 interrupt and
3811         no_caller_saved_registers attributes.
3812
3813 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
3814
3815         PR tree-optimization/52171
3816         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
3817         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
3818         Look for constant strings.  Move some code to emit_block_cmp_hints
3819         and use it.
3820         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
3821         * defaults.h (COMPARE_MAX_PIECES): New macro.
3822         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
3823         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
3824         (clear_by_pieces_1): Don't declare.  Move definition before use.
3825         (can_do_by_pieces): New static function.
3826         (can_move_by_pieces): Use it.  Return bool.
3827         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
3828         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
3829         (class pieces_addr); New.
3830         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
3831         pieces_addr::adjust, pieces_addr::increment_address,
3832         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
3833         functions for it.
3834         (class op_by_pieces_d): New.
3835         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
3836         functions for it.
3837         (class move_by_pieces_d, class compare_by_pieces_d,
3838         class store_by_pieces_d): New subclasses of op_by_pieces_d.
3839         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
3840         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
3841         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
3842         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
3843         compare_by_pieces_d::finish_mode): New member functions.
3844         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
3845         functions.
3846         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
3847         (emit_block_cmp_hints): New function.
3848         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
3849         use the newly defined classes.
3850         * expr.h (by_pieces_constfn): New typedef.
3851         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
3852         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
3853         (move_by_pieces_ninsns): Don't declare.
3854         (can_move_by_pieces): Change return value to bool.
3855         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
3856         (compare_by_pieces_branch_ratio): New hook.
3857         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
3858         (by_pieces_ninsns): Declare.
3859         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
3860         COMPARE_BY_PIECES.
3861         (default_compare_by_pieces_branch_ratio): New function.
3862         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
3863         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
3864         * doc/tm.texi: Regenerate.
3865         * tree-ssa-strlen.c: Include "builtins.h".
3866         (handle_builtin_memcmp): New static function.
3867         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
3868         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
3869
3870 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3871
3872         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
3873         relevant stmts which are simple and invariant.
3874         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
3875         instead of simple and invariant
3876
3877 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3878
3879         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
3880         (vectorizable_reduction): Check for new relevant state.
3881         (vectorizable_live_operation): vectorize live stmts using
3882         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
3883         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
3884         (vect_stmt_relevant_p): Check for stmts which are only used live.
3885         (process_use): Use of a stmt does not inherit it's live value.
3886         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
3887         (vect_analyze_stmt): Check for new relevant state.
3888         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
3889         outside the loop, but not inside it.
3890
3891 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3892
3893         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
3894         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
3895         (vect_get_vec_def_for_operand): Split out code.
3896
3897 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
3898
3899         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
3900
3901 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
3902
3903         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
3904
3905 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3906
3907         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
3908
3909 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
3910
3911         PR middle-end/71387
3912         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
3913         to noreturn e->callee->decl that has void return type and void
3914         arguments, adjust gimple_call_fntype and remove lhs even if it had
3915         previously addressable type.
3916
3917 2016-06-02  Jeff Law  <law@redhat.com>
3918
3919         PR tree-optimization/71328
3920         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
3921         error when checking for a jump back onto the copied path.
3922
3923 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
3924
3925         * config/microblaze/microblaze.c (get_branch_target): Add return
3926         NULL_RTX for the non-CALL_P case.
3927         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
3928         (insert_wic): Remove unused local "j".
3929
3930 2016-06-02  Martin Liska  <mliska@suse.cz>
3931
3932         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
3933
3934 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
3935             Julia Koval  <julia.koval@intel.com>
3936
3937         * function.c (assign_parm_setup_stack): Force source into a
3938         register if needed.
3939         * target.def (function_incoming_arg): Update documentation to
3940         allow arbitrary address computation based on hard register.
3941         * doc/tm.texi: Regenerated.
3942
3943 2016-06-02  Martin Liska  <mliska@suse.cz>
3944
3945         * predict.c (combine_predictions_for_bb): Fix first match in
3946         cases where a first predictor contains more than one occurence
3947         in list of predictors.  Take the best value in such case.
3948
3949 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3950
3951         PR rtl-optimization/71295
3952         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
3953         offset would go over the size of the inner mode reject it.
3954
3955 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
3956
3957         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
3958         x=x,x and v=v,m instead of x=x,m.
3959
3960         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
3961         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
3962         alternative to v=rm,C.
3963
3964         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
3965         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
3966         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
3967         instead of vex for the last two above mentioned alternatives.
3968
3969 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3970
3971         PR target/70830
3972         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
3973
3974 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
3975
3976         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
3977
3978 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
3979
3980         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
3981         from int to unsigned.
3982
3983 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3984
3985         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
3986         alternatives, eliminating preferred register class.  Add support
3987         for the MTVSRDD instruction in ISA 3.0.
3988         (vsx_splat_v4si_internal): Use splat_input_operand instead of
3989         reg_or_indexed_operand.
3990         (vsx_splat_v4sf_internal): Likewise.
3991
3992 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3993
3994         PR target/71186
3995         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
3996         for loading up all 0's or all 1's.
3997
3998 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3999
4000         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
4001
4002 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
4003
4004         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
4005         extension.
4006         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
4007         * gcc.c (set_source_date_epoch_envvar): New function, sets
4008         the SOURCE_DATE_EPOCH environment variable to the current time.
4009
4010 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4011
4012         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
4013         the factor for live Phi nodes.
4014
4015 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
4016
4017         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
4018         * tree-parloops.c (parallelize_loops): likewise.
4019         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
4020         tree_unswitch_outer_loop): likewise.
4021
4022 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
4023
4024         PR middle-end/71371
4025         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
4026         around creation of the temporary.
4027
4028 2016-06-01  Richard Biener  <rguenther@suse.de>
4029
4030         PR tree-optimization/71366
4031         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
4032         (unloop_loops): Move removing edges here ...
4033         (try_unroll_loop_completely): ... from here.
4034         (try_peel_loop): ... and here.
4035         (tree_unroll_loops_completely_1): Track parent loops via
4036         bitmap of header BBs.
4037         (tree_unroll_loops_completely): Adjust for that.
4038
4039 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4040
4041         * config/rs6000/altivec.h (vec_slv): New macro.
4042         (vec_srv): New macro.
4043         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
4044         (UNSPEC_VSRV): New value.
4045         (vslv): New insn.
4046         (vsrv): New insn.
4047         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
4048         (vsrv): New builtin definition.
4049         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
4050         define argument types for new builtin.
4051         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
4052         new builtin.
4053         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
4054         functions.
4055
4056 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
4057             Jocelyn Mayer  <l_indien@magic.fr>
4058
4059         PR target/67310
4060         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
4061         detect processor family for signature_CENTAUR_ebx.
4062         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
4063         signature_CENTAUR_ebx.
4064         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
4065         <default>: Pass x86-64 for has_longmode.
4066
4067 2016-06-01  Nathan Sidwell  <nathan@acm.org>
4068
4069         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
4070         undefined weak.
4071
4072 2016-06-01  Richard Biener  <rguenther@suse.de>
4073
4074         PR tree-optimization/71261
4075         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
4076         of stmts successfully put in the bool pattern.  Remove
4077         single-use restriction.
4078         (adjust_bool_pattern_cast): Add cast at the use site via the
4079         pattern def sequence.
4080         (adjust_bool_pattern): Remove recursion, maintain a hash-map
4081         of patterned defs.  Use the pattern def seqence instead of
4082         multiple independent patterns.
4083         (sort_after_uid): New qsort compare function.
4084         (adjust_bool_stmts): New function to process stmts in the bool
4085         pattern in IL order.
4086         (vect_recog_bool_pattern): Adjust.
4087         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
4088         (ifcvt_walk_pattern_tree): Likewise.
4089         (stmt_is_root_of_bool_pattern): Likewise.
4090         (ifcvt_repair_bool_pattern): Likewise.
4091         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
4092
4093 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
4094
4095         * loop-unroll.c (decide_unroll_constant_iterations,
4096         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
4097         likely upper bounds.
4098         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
4099
4100 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
4101
4102         * tree-core.h (enum omp_clause_code): Remove
4103         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
4104
4105 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4106
4107         * config/arm/sync.md (arm_store_exclusive<mode>):
4108         Use 'H' output modifier on operands[2] rather than creating a new
4109         entry in out-of-bounds memory of the operands array.
4110         (arm_store_release_exclusivedi): Likewise.
4111
4112 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4113
4114         * config/arm/arm.c (arm_fusion_enabled_p): New function.
4115         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
4116         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
4117         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
4118
4119 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4120
4121         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
4122         into account live statements for mask producers.
4123
4124 2016-06-01  Richard Biener  <rguenther@suse.de>
4125
4126         PR tree-optimization/71311
4127         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
4128         restrict to non-INTEGER_CST @0.
4129
4130 2016-06-01  Richard Biener  <rguenther@suse.de>
4131
4132         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
4133         (relational patterns): Use :c to avoid pattern duplications.
4134
4135 2016-06-01  Richard Biener  <rguenther@suse.de>
4136
4137         * genmatch.c (comparison_code_p): New predicate.
4138         (swap_tree_comparison): New function.
4139         (commutate): Add for_vec parameter to append new for entries.
4140         Support commutating relational operators by swapping it alongside
4141         operands.
4142         (lower_commutative): Adjust.
4143         (dt_simplify::gen): Do not pass artificial operators to gen
4144         functions.
4145         (decision_tree::gen): Do not add artificial operators as parameters.
4146         (parser::parse_expr): Verify operator commutativity when :c is
4147         applied.  Allow :C to override this.
4148         * match.pd: Adjust patterns to use :C instead of :c where required.
4149
4150 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
4151
4152         PR tree-optimization/71077
4153         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
4154         the combining step, use boolean_false_node and boolean_true_node
4155         as the designated false/true return values.
4156
4157 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
4158
4159         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
4160         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
4161         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
4162         PRED_LOOP_EXIT.
4163
4164 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
4165
4166         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
4167         of flags impliying the register renaming.
4168         * toplev.c (process_options): Do not imply flag_rename_registers with
4169         loop peeling.
4170
4171 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
4172
4173         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
4174         default implementation.
4175
4176 2016-05-31  Nathan Sidwell  <nathan@acm.org>
4177
4178         * dwarf2out.c (cur_line_info_table): Add GTY marker.
4179
4180 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
4181
4182         * config/sh/constraints.md (b): Remove constraint.
4183         * config/sh/predicates.md (arith_reg_operand): Remove
4184         TARGET_REGISTER_P.
4185         * config/sh/sh-modes.def (PDI): Remove.
4186         * config/sh/sh.c (sh_target_reg_class,
4187         sh_optimize_target_register_callee_saved): Remove functions.
4188         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
4189         (sh_expand_epilogue): Update comment.
4190         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
4191         sh_secondary_reload): Remove TARGET_REGS related code.
4192         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
4193         TARGET_REGISTER_P): Remove macros.
4194         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
4195         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
4196         TR1_REG, TR2_REG): Remove constants.
4197         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
4198
4199 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
4200
4201         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
4202         define_expand patterns.
4203         (adddi3_compact): Rename to adddi3.
4204         (subdi3_compact): Rename to subdi3.
4205         (*negdi2): Rename to negdi2.
4206         (*abs<mode>2): Rename to abs<mode>2.
4207
4208 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
4209
4210         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
4211         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
4212         (atomic_sub_fetchsi): ... this new pattern.
4213         (mvtc): Add CC_REG clobber.
4214
4215 2016-05-31  Marek Polacek  <polacek@redhat.com>
4216
4217         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
4218
4219 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4220
4221         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
4222         aarch64_fusion_enabled_p to check for fusion capabilities.
4223
4224 2016-05-31  Richard Biener  <rguenther@suse.de>
4225
4226         PR tree-optimization/71352
4227         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
4228         minus one and a negate.
4229
4230 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4231
4232         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
4233         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
4234         Delete prototype.
4235         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
4236         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
4237         Remove use of aarch64_simd_attr_length_move, set length attribute
4238         directly.
4239         (*aarch64_be_movoi): Likewise.
4240         (*aarch64_be_movci): Likewise.
4241         (*aarch64_be_movxi): Likewise.
4242
4243 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
4244
4245         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
4246         It no longer does that.
4247         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
4248
4249 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
4250
4251         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
4252         attribute __unused__.
4253
4254 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4255
4256         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
4257         * config/arm/arm.c (arm_arch_thumb1): Define.
4258         (arm_option_override): Initialize arm_arch_thumb1.
4259         * config/arm/arm.h (arm_arch_thumb1): Declare.
4260         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
4261         support Thumb-1 ISA.
4262
4263 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
4264
4265         PR target/71346
4266         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
4267         `Yv' for scalar operand.
4268
4269 2016-05-31  Tom de Vries  <tom@codesourcery.com>
4270
4271         PR tree-optimization/69068
4272         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
4273         phis with more than two args.
4274
4275 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
4276
4277         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
4278         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
4279         target.
4280
4281 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
4282
4283         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
4284         tune_64.
4285         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4286         support on SPARC.
4287         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
4288         cpu_32, cpu_64, tune_32 and tune_64.
4289         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
4290
4291 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
4292
4293         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
4294
4295 2016-05-30  Andi Kleen  <ak@linux.intel.com>
4296
4297         * auto-profile.c (read_profile): Replace asserts with errors
4298         when file does not exist.
4299         * gcov-io.c (gcov_read_words): Dito.
4300
4301 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4302
4303         * tree-cfg.c (print_loop): Print likely upper bounds.
4304
4305 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4306
4307         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
4308         * opts.c (default_options): Enable peel loops at -O3.
4309         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
4310         (try_peel_loop): Do not re-peel already peeled loops;
4311         use likely upper bounds; fix profile updating.
4312         (pass_complete_unroll::execute): Initialize peeled_loops.
4313
4314 2016-05-30  Martin Liska  <mliska@suse.cz>
4315
4316         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
4317         computed costs by frequency of BB they belong to.
4318         (get_scaled_computation_cost_at): New function.
4319
4320 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
4321             Marc Glisse  <marc.glisse@inria.fr>
4322
4323         PR tree-optimization/71289
4324         * match.pd (-1 / B < A, A > -1 / B): New transformations.
4325
4326 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4327
4328         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
4329
4330 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4331
4332         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
4333         for peeled copies; avoid underflow when updating estimates; correctly
4334         scale loop profile.
4335
4336 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4337
4338         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
4339         r236875. Corrected oe3 to oe2 as obvious.
4340
4341 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4342
4343         PR middle-end/71269
4344         PR middle-end/71252
4345         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
4346         that inserted stmt will not dominate stmts that defines its operand.
4347         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
4348         (rewrite_expr_tree_parallel): Likewise.
4349
4350 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
4351
4352         PR middle-end/71252
4353         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
4354         all fields including stmt_to_insert are swapped.
4355
4356 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4357
4358         * predict.h (force_edge_cold): Declare.
4359         * predict.c (force_edge_cold): New function.
4360         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
4361         updating.
4362         (canonicalize_loop_induction_variables): Fix formating.
4363
4364 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4365
4366         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
4367         (visium_expand_copysign): Use gen_int_mode directly.
4368         (visium_compute_frame_size): Minor tweaks.
4369
4370 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
4371
4372         * tree-vect-loop.c (vect_analyze_loop_2): Use
4373         likely_max_stmt_executions_int.
4374
4375 2016-05-30  Tom de Vries  <tom@codesourcery.com>
4376
4377         PR tree-optimization/69067
4378         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
4379
4380 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
4381
4382         PR target/71245
4383         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
4384         New peepholes to remove unneeded fild/fistp pairs.
4385         (define_peephole2 atomic_loaddi_fpu): Ditto.
4386
4387 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4388
4389         * predict.c (maybe_hot_frequency_p): Avoid division.
4390
4391 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
4392
4393         * doc/install.texi: Use https for shop.fsf.org.
4394
4395 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4396
4397         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
4398         likely_max_stmt_executions_int.
4399
4400 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4401
4402         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
4403         likely_max_stmt_executions_int.
4404
4405 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4406
4407         * profile.c (compute_branch_probabilities): Do not report hitrates
4408         here.
4409         (branch_prob): Report hitrates here.
4410         * predict.c (gimple_predict_edge): Do not assert profile status;
4411         fix formatting issues.
4412
4413 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4414
4415         * predict.c (edge_predicted_by_p): New function.
4416         (predict_paths_for_bb): Do not put multiple predictions of the same type
4417         on one edge.
4418
4419 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4420
4421         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
4422         commit.
4423
4424 2016-05-28  Alan Modra  <amodra@gmail.com>
4425
4426         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
4427
4428 2016-05-28  Alan Modra  <amodra@gmail.com>
4429
4430         PR rtl-optimization/71275
4431         * ira.c (ira): Free dominance info.
4432
4433 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
4434
4435         * doc/sourcebuild.texi: New address for upstream Go repository.
4436
4437 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4438
4439         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
4440         (TARGET_ARM_V7M): Likewise.
4441
4442 2016-05-26  Jeff Law  <law@redhat.com>
4443
4444         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
4445         (thread_across_edge): Remove calls to find_jump_threads_backwards.
4446         * passes.def: Add jump threading passes before DOM/VRP.
4447         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
4448         argument to a basic block from an edge.  Remove tests which are
4449         handled elsewhere.
4450         (pass_data_thread_jumps, class pass_thread_jumps): New.
4451         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
4452         (make_pass_thread_jumps): Likewise.
4453         * tree-pass.h (make_pass_thread_jumps): Declare.
4454
4455 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4456
4457         * config/visium/visium-protos.h (split_double_move): Rename into...
4458         (visium_split_double_move): ...this.
4459         (visium_split_double_add): Declare.
4460         * config/visium/visium.c (split_double_move): Rename into...
4461         (visium_split_double_move): ...this.
4462         (visium_split_double_add): New function.
4463         (visium_expand_copysign): Renumber operands for consistency.
4464         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
4465         (DFmode move splitter): Likewise.
4466         (*addi3_insn): Split by means of visium_split_double_add.
4467         (*adddi3_insn_flags): Delete.
4468         (*plus_plus_sltu<subst_arith>): New insn.
4469         (*subdi3_insn): Split by means of visium_split_double_add.
4470         (subdi3_insn_flags): Delete.
4471         (*minus_minus_sltu<subst_arith>): New insn.
4472         (*negdi2_insn): Split by means of visium_split_double_add.
4473         (*negdi2_insn_flags): Delete.
4474
4475 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
4476
4477         * configure.ac: Treat a --with-headers option without argument
4478         the same as the default (i.e. consult sys-include directory).
4479         * configure: Regenerate.
4480
4481 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4482
4483         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
4484         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
4485         prototype.
4486         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
4487         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
4488
4489 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
4490
4491         PR target/63596
4492         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
4493         tree-stdarg analysis results.
4494         (aarch64_setup_incoming_varargs): Likewise.
4495
4496 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
4497
4498         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
4499         va_list_gpr_counter_field and va_list_fpr_counter_field.
4500
4501 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
4502
4503         PR67609
4504         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
4505         * config/aarch64/aarch64.c
4506         (aarch64_cannot_change_mode_class): Remove function.
4507         * config/aarch64/aarch64-protos.h
4508         (aarch64_cannot_change_mode_class): Remove.
4509
4510 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
4511
4512         * cfgloop.c (record_niter_bound): Record likely upper bounds.
4513         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
4514         get_likely_max_loop_iterations_int): New.
4515         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
4516         any_likely_upper_bound.
4517         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
4518         Declare.
4519         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
4520         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
4521         upper bound.
4522         (unroll_loop_constant_iterations): Likewise.
4523         (unroll_loop_runtime_iterations): Likewise.
4524         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
4525         * lto-streamer-out.c (output_cfg): Likewise.
4526         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
4527         bounds.
4528         (canonicalize_loop_induction_variables): Dump likely upper bounds.
4529         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
4530         (likely_max_loop_iterations): New.
4531         (likely_max_loop_iterations_int): New.
4532         (likely_max_stmt_executions): New.
4533         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
4534         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
4535         likely_max_stmt_executions): Declare.
4536
4537 2016-05-27  Marek Polacek  <polacek@redhat.com>
4538
4539         PR middle-end/71308
4540         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
4541
4542 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4543
4544         * config/s390/s390.md (2x risbg splitters): Use
4545         reg_overlap_mentioned_p instead of rtx_equal_p.
4546
4547 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4548
4549         * combine.c (make_compound_operation): Take known zero bits into
4550         account when checking for possible zero_extend.
4551
4552 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4553
4554         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
4555         Use const_int_operand for operand 2 predicate.  Simplify expand code
4556         as a result.
4557
4558 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
4559
4560         PR middle-end/71279
4561         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
4562         into comparison.
4563
4564 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4565
4566         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
4567         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
4568         that returns CC_SESWPmode and CC_ZESWPmode.
4569         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
4570         and CC_SESWPmode.
4571         (aarch64_rtx_costs): Likewise.
4572
4573 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4574
4575         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
4576         for ISA 3.0 min/max support.
4577         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
4578         conditional move support.
4579         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
4580         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
4581         available.
4582         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
4583         conditional moves where the comparison type is different from move
4584         type.
4585         (fp_minmax): New code iterator for smin/smax.
4586         (minmax): New code attributes for min/max.
4587         (SMINMAX): Likewise.
4588         (smax<mode>3): Combine min, max insns into one insn using the
4589         fp_minmax code iterator.  Add support for ISA 3.0 min/max
4590         instructions that don't need -ffast-math.
4591         (s<minmax><mode>3): Likewise.
4592         (smax<mode>3_vsx): Likewise.
4593         (smin<mode>3): Likewise.
4594         (s<minmax><mode>3_vsx): Likewise.
4595         (smin<mode>3_vsx): Likewise.
4596         (pre-VSX min/max splitters): Likewise.
4597         (s<minmax><mode>3_fpr): Likewise.
4598         (movsfcc): Rewrite floating point conditional moves to combine
4599         SFmode/DFmode into a single insn.
4600         (mov<mode>cc): Likewise.
4601         (movdfcc): Likewise.
4602         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
4603         SFDF2 iterators to handle all combinations.
4604         (fseldfsf4): Likewise.
4605         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
4606         (fseldfdf4): Likewise.
4607         (fselsfdf4): Likewise.
4608         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
4609         comparison instructions that set a 0/-1 mask, and use it for
4610         floating point conditional move via XXSEL.
4611         (fpmask<mode>): Likewise.
4612         (xxsel<mode>): Likewise.
4613         * config/rs6000/predicates.md (min_max_operator): Delete, no
4614         longer used.
4615         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
4616         instructions that generate a 0/-1 mask for use with XXSEL.
4617         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
4618         say whether floating point min/max is available, either through
4619         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
4620         (TARGET_MINMAX_DF): Likewise.
4621
4622 2016-05-27  Alan Modra  <amodra@gmail.com>
4623
4624         PR rtl-optimization/71275
4625         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
4626         for update_equiv_regs and combine_and_move_insns.
4627
4628 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
4629
4630         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
4631         if_then_else or cond RTXes to calculate attribute value.
4632         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
4633         <attr "length_immediate>: Ditto.
4634         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
4635         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
4636         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
4637         <attr "type">: Ditto.
4638         <attr "prefix_data16">: Ditto.
4639         <attr "prefix_extra">: Ditto.
4640         <attr "length_immediate">: Ditto.
4641         <attr "prefix">: Ditto.
4642         (vec_set<mode>_0) <attr "isa">: Ditto.
4643         <attr "prefix_extra">: Ditto.
4644         <attr "length_immediate">: Ditto.
4645         <attr "prefix">: Ditto.
4646         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
4647         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
4648         (sse2_storelpd) <attr "prefix_data16">: Ditto.
4649         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
4650         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
4651         <attr "length_immediate">: Ditto.
4652         <attr "prefix">: Ditto.
4653         (sse2_movsd) <attr "length_immediate">: Ditto.
4654         <attr "prefix">: Ditto.
4655         (vec_concatv2df)  <attr "isa">: Ditto.
4656         <attr "prefix">: Ditto.
4657         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
4658         (*vec_extractv2di_1) <attr "isa">: Ditto.
4659         <attr "type">: Ditto.
4660         <attr "length_immediate">: Ditto.
4661         <attr "prefix_rex">: Ditto.
4662         <attr "prefix_extra">: Ditto.
4663         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
4664         <attr "prefix_extra">: Ditto.
4665         <attr "length_immediate">: Ditto.
4666         (vec_concatv2di) <attr "isa">: Ditto.
4667         <attr "prefix_extra">: Ditto.
4668         <attr "length_immediate">: Ditto.
4669         <attr "prefix">: Ditto.
4670
4671 2016-05-26  Martin Liska  <mliska@suse.cz>
4672
4673         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
4674         function.
4675         (operator+): Likewise.
4676         (operator-): Likewise.
4677         (comp_cost::operator+=): Likewise.
4678         (comp_cost::operator-=): Likewise.
4679         (comp_cost::operator/=): Likewise.
4680         (comp_cost::operator*=): Likewise.
4681         (operator<): Likewise.
4682         (operator==): Likewise.
4683         (operator<=): Likewise.
4684         (new_cost): Remove.
4685         (infinite_cost_p): Likewise.
4686         (add_costs): Likewise.
4687         (sub_costs): Likewise.
4688         (compare_costs): Likewise.
4689         (set_group_iv_cost): Use the newly introduced functions.
4690         (get_address_cost): Likewise.
4691         (get_shiftadd_cost): Likewise.
4692         (force_expr_to_var_cost): Likewise.
4693         (split_address_cost): Likewise.
4694         (ptr_difference_cost): Likewise.
4695         (difference_cost): Likewise.
4696         (get_computation_cost_at): Likewise.
4697         (determine_group_iv_cost_generic): Likewise.
4698         (determine_group_iv_cost_address): Likewise.
4699         (determine_group_iv_cost_cond): Likewise.
4700         (autoinc_possible_for_pair): Likewise.
4701         (determine_group_iv_costs): Likewise.
4702         (cheaper_cost_pair): Likewise.
4703         (iv_ca_recount_cost): Likewise.
4704         (iv_ca_set_no_cp): Likewise.
4705         (iv_ca_set_cp): Likewise.
4706         (iv_ca_cost): Likewise.
4707         (iv_ca_new): Likewise.
4708         (iv_ca_dump): Likewise.
4709         (iv_ca_narrow): Likewise.
4710         (iv_ca_prune): Likewise.
4711         (iv_ca_replace): Likewise.
4712         (try_add_cand_for): Likewise.
4713         (try_improve_iv_set): Likewise.
4714         (find_optimal_iv_set): Likewise.
4715
4716 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
4717
4718         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
4719         that internal functions will clobber all caller-saved registers.
4720
4721 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
4722
4723         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
4724         Return a better case_values_threshold when optimizing.
4725
4726 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
4727
4728         * config/aarch64/aarch64-simd.md (aarch64_combinez):
4729         Add ? to integer variant.
4730         (aarch64_combinez_be): Likewise.
4731
4732 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
4733
4734         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
4735         instead of x constraint.
4736         (vcvtps2ph256<mask_name>): Likewise.
4737
4738         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
4739         alternative.  Formatting fix.
4740
4741         * config/i386/sse.md
4742         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
4743         to ...
4744         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
4745         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
4746         maybe_evex prefix instead of vex.
4747         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
4748         EXT_REX_SSE_REG_P (op0) case in the splitter.
4749
4750 2016-05-25  Jeff Law  <law@redhat.com>
4751
4752         PR tree-optimization/71272
4753         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
4754         Update comments.  Add test for empty path.
4755
4756 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
4757
4758         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
4759         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
4760         special case builtin.
4761         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4762         code for ALTIVEC_BUILTIN_VEC_CMPNE.
4763         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4764         for __builtin_vec_cmpne.
4765
4766 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4767
4768         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
4769         redundant test and bail out if the type of the new operand is not
4770         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
4771
4772 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
4773
4774         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
4775         (x_ix86_target_flags_explicit): Remove.
4776         * config/i386/i386.c (ix86_function_specific_save): Do not copy
4777         x_ix86_target_flags_explicit.
4778         (ix86_function_specific_restore): Ditto.
4779
4780 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
4781             H.J. Lu  <hongjiu.lu@intel.com>
4782
4783         PR target/70738
4784         * common/config/i386/i386-common.c
4785         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
4786         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
4787         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
4788         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
4789         (-mgeneral-regs-only): Add new option.
4790         * config/i386/i386.c (ix86_option_override_internal): Don't enable
4791         x87 instructions if only general registers are allowed.
4792         (ix86_target_string): Add ix86_flags argument. Handle additional
4793         flags options through ix86_flags argument.  Update all callers.
4794         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
4795
4796 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4797
4798         PR rtl-optimization/66940
4799         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
4800         decrementing desired_val will not overflow before performing these
4801         operations.
4802
4803 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
4804
4805         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
4806         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
4807         * config/i386/i386.c (enum ix86_builtins): Add
4808         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
4809         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
4810         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
4811         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
4812         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
4813         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
4814         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
4815         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
4816         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
4817         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
4818         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
4819         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
4820         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
4821         __builtin_ia32_cvtps2dq512_mask.
4822         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
4823         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
4824         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
4825         * config/i386/sse.md
4826         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
4827         Rename to ...
4828         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
4829         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
4830         to ...
4831         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
4832         (avx512f_vec_pack_sfix_v8df): New define_expand.
4833         (avx512f_roundpd512): Rename to ...
4834         (avx512f_round<castmode>512): ... this.  Change iterator.
4835         (avx512f_roundps512_sfix): New define_expand.
4836         (round<mode>2_sfix): Change iterator.
4837
4838 2016-05-25  Nick Clifton  <nickc@redhat.com>
4839
4840         * config/msp430/msp430.c (msp430_attr): Produce an error if a
4841         static interrupt handler is detected.
4842         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
4843         default linker script.
4844         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
4845         the low part of a symbolic pointer.
4846
4847 2016-05-25  Richard Biener  <rguenther@suse.de>
4848
4849         PR tree-optimization/71261
4850         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
4851         interesting stmt instead of immediate uses when looking
4852         for the use operand to replace.
4853
4854 2016-05-25  Martin Liska  <mliska@suse.cz>
4855
4856         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
4857
4858 2016-05-25  Richard Biener  <rguenther@suse.de>
4859
4860         PR tree-optimization/71264
4861         * tree-vect-stmts.c (vect_init_vector): Properly deal with
4862         vector type val.
4863
4864 2016-05-25  Martin Liska  <mliska@suse.cz>
4865
4866         PR tree-optimization/71239
4867         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
4868         if DECL_SIZE is NULL.
4869
4870 2016-05-25  Richard Biener  <rguenther@suse.de>
4871
4872         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
4873         * tree-if-conv.c (pass_data_if_conversion): Use it.
4874
4875 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4876
4877         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
4878         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
4879         * varpool.c (varpool_node::get_availability): Likewise.
4880
4881 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4882
4883         * config/rs6000/altivec.md (VNEG iterator): New iterator for
4884         VNEGW/VNEGD instructions.
4885         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
4886         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
4887         support for ISA 3.0 VNEGW/VNEGD instructions.
4888
4889 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
4890
4891         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
4892         pointers inside OACC_DATA regions.
4893         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
4894         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
4895         (gimplify_adjust_omp_clauses): Fix typo in comment.
4896
4897 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4898
4899         * config/rs6000/altivec.md (VParity): New mode iterator for vector
4900         parity built-in functions.
4901         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
4902         zeros.
4903         (p9v_parity<mode>2): Likewise.
4904         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
4905         parity.
4906         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
4907         (parity<mode>2): ISA 3.0 expander for vector parity.
4908         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
4909         power9 built-ins.
4910         (BU_P9_64BIT_MISC_0): Likewise.
4911         (BU_P9_MISC_0): Likewise.
4912         (BU_P9V_AV_1): Likewise.
4913         (BU_P9V_AV_2): Likewise.
4914         (BU_P9V_AV_3): Likewise.
4915         (BU_P9V_AV_P): Likewise.
4916         (BU_P9V_VSX_1): Likewise.
4917         (BU_P9V_OVERLOAD_1): Likewise.
4918         (BU_P9V_OVERLOAD_2): Likewise.
4919         (BU_P9V_OVERLOAD_3): Likewise.
4920         (VCTZB): Add vector count trailing zeros support.
4921         (VCTZH): Likewise.
4922         (VCTZW): Likewise.
4923         (VCTZD): Likewise.
4924         (VPRTYBD): Add vector parity support.
4925         (VPRTYBQ): Likewise.
4926         (VPRTYBW): Likewise.
4927         (VCTZ): Add overloaded vector count trailing zeros support.
4928         (VPRTYB): Add overloaded vector parity support.
4929         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4930         overloaded vector count trailing zeros and parity instructions.
4931         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
4932         vector parity support.
4933         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
4934         trailing zeros support.
4935         (vec_cntlz): Likewise.
4936         (vec_vctzb): Likewise.
4937         (vec_vctzd): Likewise.
4938         (vec_vctzh): Likewise.
4939         (vec_vctzw): Likewise.
4940         (vec_vprtyb): Add ISA 3.0 vector parity support.
4941         (vec_vprtybd): Likewise.
4942         (vec_vprtybw): Likewise.
4943         (vec_vprtybq): Likewise.
4944         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
4945         the ISA 3.0 vector count trailing zeros and vector parity built-in
4946         functions.
4947
4948 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4949
4950         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
4951         when there is stmt_to_insert.
4952
4953 2016-05-24  Martin Sebor  <msebor@redhat.com>
4954
4955         PR c++/71147
4956         * tree.h (complete_or_array_type_p): New inline function.
4957
4958 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4959
4960         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
4961         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
4962         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
4963
4964         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
4965         Limit 1st alternative to noavx isa, split 2nd alternative into one
4966         noavx and one avx alternative, use *x and Bm in the former and
4967         x and m in the latter.
4968
4969         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
4970         of sse4 for the first alternative, drop %v from the template
4971         and d operand modifier.  Split second alternative into one sse4_noavx
4972         and one avx alternative, use *x instead of *v in the former and v
4973         instead of *v in the latter.
4974         (*sse4_1_extractps): Use noavx isa instead of * for the first
4975         alternative, drop %v from the template.  Split second alternative into
4976         one noavx and one avx alternative, use *x instead of *v in the
4977         former and v instead of *v in the latter.
4978         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
4979         with noavx and the last one with avx.
4980         (sse4_1_phminposuw): Guard first alternative with noavx isa,
4981         split the second one into one noavx and one avx alternative,
4982         use *x and Bm in the former and x and m in the latter one.
4983         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
4984         alternatives.
4985
4986         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
4987         first two alternatives to noavx, use *x instead of *v in the second
4988         one, add avx alternative without *.
4989         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
4990         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
4991         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
4992
4993 2016-05-24  Jeff Law  <law@redhat.com>
4994
4995         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
4996         New function, extracted from...
4997         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
4998         Allow simple copies and constant initializations in the SSA chain.
4999
5000 2016-05-24  Marek Polacek  <polacek@redhat.com>
5001
5002         PR c/71249
5003         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
5004         scope.
5005
5006 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
5007
5008         PR c++/71257
5009         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
5010         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
5011         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
5012         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
5013         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
5014
5015 2016-05-24  Richard Biener  <rguenther@suse.de>
5016
5017         PR tree-optimization/71240
5018         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
5019         has integral type.
5020
5021 2016-05-24  Richard Biener  <rguenther@suse.de>
5022
5023         PR tree-optimization/71230
5024         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
5025
5026 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
5027
5028         * tree-vectorizer.h (vectorizable_comparison): Delete.
5029         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
5030         PURE_SLP_STMT check.
5031         * tree-vect-stmts.c (vectorizable_call): Likewise.
5032         (vectorizable_simd_clone_call): Likewise.
5033         (vectorizable_conversion): Likewise.
5034         (vectorizable_assignment): Likewise.
5035         (vectorizable_shift): Likewise.
5036         (vectorizable_operation): Likewise.
5037         (vectorizable_load): Likewise.
5038         (vectorizable_condition): Likewise.
5039         (vectorizable_store): Likewise.  Assert that we don't have
5040         hybrid SLP.
5041         (vectorizable_comparison): Make static.  Remove redundant
5042         PURE_SLP_STMT check.
5043         (vect_transform_stmt): Assert that we always have an slp_node
5044         if PURE_SLP_STMT.
5045
5046 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5047
5048         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
5049         operands[2] against 1 with comparison against CONST1_RTX.
5050         (<shift>di3_neon): Likewise.
5051         * config/arm/predicates.md (const0_operand): Replace with comparison
5052         against CONST0_RTX.
5053
5054 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5055
5056         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
5057         operands[2] against 1 with comparison against CONST1_RTX.
5058         (ashrdi3): Likewise.
5059         (lshrdi3): Likewise.
5060         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
5061         UINTVAL.
5062         (ashrsi3): Likewise.
5063         (lshrsi3): Likewise.
5064         (rotrsi3): Likewise.
5065         (define_split above *compareqi_eq0): Likewise.
5066         (define_split above "prologue"): Likewise.
5067         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
5068         * config/arm/predicates.md (shift_operator): Likewise.
5069         (shift_nomul_operator): Likewise.
5070         (sat_shift_operator): Likewise.
5071         (thumb1_cmp_operand): Likewise.
5072         (const_neon_scalar_shift_amount_operand): Replace manual range
5073         check with IN_RANGE.
5074         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
5075         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
5076
5077 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5078
5079         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
5080         with HOST_WIDE_INT_1.
5081         (insv): Likewise.
5082         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
5083         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
5084         (arm_canonicalize_comparison): Likewise.
5085         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
5086         HOST_WIDE_INT_1.
5087         (thumb1_size_rtx_costs): Likewise.
5088         (vfp_const_double_index): Replace cast of 1 to unsigned
5089         HOST_WIDE_INT with HOST_WIDE_INT_1U.
5090         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
5091         HOST_WIDE_INT_1.
5092         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
5093         HOST_WIDE_INT with HOST_WIDE_INT_1U.
5094         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
5095         HOST_WIDE_INT with HOST_WIDE_INT_1.
5096
5097 2016-05-24  Marek Polacek  <polacek@redhat.com>
5098
5099         * tree-cfg.h (should_remove_lhs_p): New predicate.
5100         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
5101         * gimplify.c (gimplify_modify_expr): Likewise.
5102         * tree-cfg.c (verify_gimple_call): Likewise.
5103         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
5104         * gimple-fold.c: Include "tree-cfg.h".
5105         (gimple_fold_call): Use should_remove_lhs_p.
5106
5107 2016-05-24  Richard Biener  <rguenther@suse.de>
5108
5109         PR tree-optimization/71253
5110         * cfganal.h (control_dependences): Make robust against edge
5111         and BB removal.
5112         (control_dependences::control_dependences): Remove edge_list argument.
5113         (control_dependences::get_edge): Remove.
5114         (control_dependences::get_edge_src): Add.
5115         (control_dependences::get_edge_dest): Likewise.
5116         (control_dependences::m_el): Make a vector of edge src/dest index.
5117         * cfganal.c (control_dependences::find_control_dependence): Adjust.
5118         (control_dependences::control_dependences): Likewise.
5119         (control_dependences::~control_dependence): Likewise.
5120         (control_dependences::get_edge): Remove.
5121         (control_dependences::get_edge_src): Add.
5122         (control_dependences::get_edge_dest): Likewise.
5123         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
5124         get_edge_src.
5125         (perform_tree_ssa_dce): Adjust.
5126         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
5127         get_edge_src.
5128         (pass_loop_distribution::execute): Adjust.  Do loop destroying
5129         conditional on changed.
5130
5131 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5132
5133         PR target/69857
5134         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
5135         return.  Reindent transformation comment and mention the ARM state
5136         behavior.
5137
5138 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
5139
5140         PR middle-end/71252
5141         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
5142         after build_and_add_sum creates new use stmt.
5143
5144 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
5145
5146         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
5147         load_lanes/grouped_load classification comes first.  Don't check
5148         whether the vectorization factor is a multiple of the group size
5149         for load_lanes.
5150
5151 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
5152
5153         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
5154         GROUP_GAP for single-element interleaving.
5155         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
5156         variable.
5157
5158 2016-05-24  Richard Biener  <rguenther@suse.de>
5159
5160         PR middle-end/70434
5161         PR c/69504
5162         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
5163         bases which are accessed with non-invariant indices.
5164         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
5165         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
5166
5167 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
5168
5169         PR middle-end/71170
5170         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
5171         (add_to_ops_vec): Add stmt_to_insert.
5172         (add_repeat_to_ops_vec): Init stmt_to_insert.
5173         (insert_stmt_before_use): New.
5174         (transform_add_to_multiply): Remove mult_stmt insertion and add it
5175         to ops vector.
5176         (get_ops): Init stmt_to_insert.
5177         (maybe_optimize_range_tests): Likewise.
5178         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
5179         (rewrite_expr_tree_parallel): Likewise.
5180         (reassociate_bb): Likewise.
5181
5182 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5183
5184         PR target/71201
5185         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
5186         ISA 3.0 xxperm fusion alternative.
5187         (altivec_vperm_v8hiv16qi): Likewise.
5188         (altivec_vperm_<mode>_uns_internal): Likewise.
5189         (vperm_v8hiv4si): Likewise.
5190         (vperm_v16qiv8hi): Likewise.
5191
5192 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5193             Kelvin Nilsen  <kelvin@gcc.gnu.org>
5194
5195         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
5196         vpermr/xxpermr on ISA 3.0.
5197         (altivec_expand_vec_perm_le): Likewise.
5198         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
5199         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
5200         ISA 3.0.
5201
5202 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
5203
5204         * config/i386/i386.h (IS_STACK_MODE): Enable for
5205         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
5206         SSE_FLOAT_MODE_P macros.
5207         * config/i386/i386.c (ix86_preferred_reload_class): Use
5208         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
5209         Cleanup regclass processing for CONST_DOUBLE_P.
5210         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
5211         (ix86_rtx_costs): Remove redundant TARGET_80387 check
5212         with IS_STACK_MODE macro.
5213         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
5214         with TARGET_SSE2.
5215         (*movdf_internal): Use IS_STACK_MODE macro.
5216         (*movsf_internal): Ditto.
5217
5218 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
5219
5220         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
5221         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
5222
5223 2016-05-23  Jeff Law  <law@redhat.com>
5224
5225         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
5226         extracted from ...
5227         (fsm_find_control_statement_thread_paths): Call it.
5228
5229 2016-05-23  Martin Jambor  <mjambor@suse.cz>
5230
5231         PR ipa/71234
5232         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
5233         from_global_constant if t is not NULL.
5234
5235 2016-05-23  Marek Polacek  <polacek@redhat.com>
5236
5237         PR c/49859
5238         * common.opt (Wswitch-unreachable): New option.
5239         * doc/invoke.texi: Document -Wswitch-unreachable.
5240         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
5241         warning.
5242
5243 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
5244
5245         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
5246         TMR_INDEX is non-NULL.
5247
5248 2016-05-23  Richard Biener  <rguenther@suse.de>
5249
5250         PR tree-optimization/71230
5251         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
5252         (try_special_add_to_ops): ... here.  Always test for single-use.
5253
5254 2016-05-23  Martin Jambor  <mjambor@suse.cz>
5255
5256         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
5257         default block if a PHI node in the original one would be resized.
5258
5259 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5260
5261         PR tree-optimization/58135
5262         * tree-vect-slp.c: When group size is not multiple
5263         of vector size, allow splitting of store group at
5264         vector boundary.
5265
5266 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
5267
5268         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
5269
5270 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
5271
5272         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
5273         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
5274         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
5275         of 64x2.
5276
5277         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
5278         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
5279         v constraint instead of x and vinserti32x4 insn.
5280
5281         * config/i386/sse.md (i128vldq): New mode iterator.
5282         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
5283         avx512dq and avx512vl alternatives.
5284
5285         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
5286         constraint, use maybe_evex prefix instead of vex.
5287         (vec_dupv4sf): Use v constraint instead of x for output
5288         operand except for noavx alternative, use Yv constraint
5289         instead of x for input.  Use maybe_evex prefix instead of vex.
5290         (*vec_dupv4si): Likewise.
5291         (*vec_dupv2di): Likewise.
5292
5293 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
5294
5295         PR middle-end/40921
5296         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
5297         (linearize_expr_tree): Call try_special_add_to_ops.
5298         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
5299
5300 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5301
5302         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
5303         to computed stack_usage.
5304
5305 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
5306
5307         PR target/71103
5308         * config/avr/avr.md (define_expand "mov<mode>"): If the source
5309         operand is subreg (symbol_ref) then move the symbol ref to register.
5310
5311 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
5312
5313         * tree.c (array_at_struct_end_p): Look through MEM_REF.
5314
5315 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
5316
5317         PR middle-end/71179
5318         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
5319         VECTOR type.
5320
5321 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
5322
5323         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
5324         ranges by calling get_single_symbol and tidy up.  Look more closely
5325         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
5326
5327 2016-05-20  Jeff Law  <law@redhat.com>
5328
5329         * bitmap.c (bitmap_find_bit): Remove useless test.
5330
5331 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
5332
5333         * function.c (thread_prologue_and_epilogue_insns): Commit the
5334         insertion of the epilogue.
5335
5336 2016-05-20  Martin Jambor  <mjambor@suse.cz>
5337
5338         PR tree-optimization/70884
5339         * tree-sra.c (initialize_constant_pool_replacements): Do not check
5340         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
5341         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
5342         of constant pool data as a reason for scalarization.
5343
5344 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
5345
5346         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
5347         for naked functions.
5348         (thumb1_expand_prologue): Likewise.
5349
5350 2016-05-20  Nathan Sidwell  <nathan@acm.org>
5351
5352         * config/nvptx/nptx.c (nvptx_option_override): Only set
5353         flag_toplevel_reorder, if not explicitly specified.  Set
5354         flag_no_common, unless explicitly specified.
5355
5356 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5357
5358         * calls.c (can_implement_as_sibling_call_p): Mark param
5359         reg_parm_stack_space with ATTRIBUTE_UNUSED.
5360
5361 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
5362
5363         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
5364         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
5365         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
5366         constants.
5367         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
5368         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
5369         and CASE_CONST_ANY.
5370
5371 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
5372
5373         * config/nvptx/nvptx.md (sincossf3): New pattern.
5374
5375 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5376
5377         * calls.c (maybe_complain_about_tail_call): New function.
5378         (initialize_argument_information): Call
5379         maybe_complain_about_tail_call when clearing *may_tailcall.
5380         (can_implement_as_sibling_call_p): Call
5381         maybe_complain_about_tail_call when returning false.
5382         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
5383         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
5384         if tail-call optimization fails.
5385         * cfgexpand.c (expand_call_stmt): Initialize
5386         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
5387         * gimple-pretty-print.c (dump_gimple_call): Dump
5388         gimple_call_must_tail_p.
5389         * gimple.c (gimple_build_call_from_tree): Call
5390         gimple_call_set_must_tail with the value of
5391         CALL_EXPR_MUST_TAIL_CALL.
5392         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
5393         (gimple_call_set_must_tail): New function.
5394         (gimple_call_must_tail_p): New function.
5395         * print-tree.c (print_node): Update printing of TREE_STATIC
5396         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
5397         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
5398         trailing comment listing applicable flags.
5399         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
5400
5401 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
5402
5403         * calls.c (expand_call): Move "Rest of purposes for tail call
5404         optimizations to fail" to...
5405         (can_implement_as_sibling_call_p): ...this new function, and
5406         split into multiple "if" statements.
5407
5408 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5409
5410         * cfgloop.h (expected_loop_iterations_unbounded,
5411         expected_loop_iterations): Unconstify.
5412         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
5413         profile with known upper bound; return 3 when profile is absent.
5414         (expected_loop_iterations): Update.
5415
5416 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5417
5418         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
5419         and get_max_loop_iterations_int.
5420
5421 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
5422
5423         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
5424         realistic upper bounds here.
5425
5426 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
5427
5428         PR c++/71210
5429         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
5430         calls if the LHS is variable length or has addressable type.
5431         If targets[0]->decl is a noreturn call with void return type and
5432         zero arguments, adjust fntype and remove lhs in that case.
5433
5434 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
5435
5436         PR tree-optimization/71079
5437         PR tree-optimization/71206
5438         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
5439
5440 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5441
5442         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
5443         (get_vec_alignment_for_array_decl): Likewise.
5444         (get_vec_alignment_for_record_decl): Likewise.
5445         (increase_alignment::execute): Move code to find alignment to
5446         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
5447         (type_align_map): New hash_map.
5448
5449 2016-05-20  Richard Guenther  <rguenther@suse.de>
5450
5451         PR tree-optimization/29756
5452         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
5453         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
5454         * fold-const.c (operand_equal_p): Likewise.
5455         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
5456         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
5457         * tree-inline.c (estimate_operator_cost): Likewise.
5458         * tree-pretty-print.c (dump_generic_node): Likewise.
5459         * tree-ssa-operands.c (get_expr_operands): Likewise.
5460         * cfgexpand.c (expand_debug_expr): Likewise.
5461         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5462         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
5463         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
5464         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
5465         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
5466         (execute_update_addresses_taken): Do it.
5467
5468 2016-05-20  Richard Biener  <rguenther@suse.de>
5469
5470         PR tree-optimization/71185
5471         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
5472         register operations.
5473
5474 2016-05-20  Richard Biener  <rguenther@suse.de>
5475
5476         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
5477         gimple_seq_add_seq_without_update.
5478         (release_bb_predicate): Assert we have no operands to free.
5479         (if_convertible_loop_p_1): Calculate post dominators later.
5480         Do not free BB predicates here.
5481         (combine_blocks): Do not recompute BB predicates.
5482         (version_loop_for_if_conversion): Save BB predicates around
5483         loop versioning.
5484
5485 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
5486
5487         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
5488         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
5489         code.  Ignore sibcalls on EDGE_IGNORE edges.
5490         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
5491         on edges for sibcalls that run without prologue.  The rest of the
5492         function is combined from...
5493         (fix_fake_fallthrough_edge): ... this, and ...
5494         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
5495         function argument, make it a local variable.
5496
5497 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
5498
5499         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
5500         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
5501         for 32-bit mode and SEH for 64-bit.
5502         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
5503         TARGET_64BIT_DEFAULT.
5504
5505 2016-05-19  Ryan Burn  <contact@rnburn.com>
5506
5507         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
5508         * gengtype.c (open_base_files): Add cilk.h to ifiles.
5509
5510 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
5511
5512         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
5513         force pending loads from memory.
5514
5515 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5516
5517         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
5518         (UNSPEC_DARN_32): New unspec constant.
5519         (UNSPEC_DARN_RAW): New unspec constant.
5520         (darn_32): New instruction.
5521         (darn_raw): New instruction.
5522         (darn): New instruction.
5523         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
5524         support and documentation for this macro.
5525         (BU_P9_MISC_1): New macro definition.
5526         (BU_P9_64BIT_MISC_0): New macro definition.
5527         (BU_P9_MISC_0): New macro definition.
5528         (darn_32): New builtin definition.
5529         (darn_raw): New builtin definition.
5530         (darn): New builtin definition.
5531         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
5532         RS6000_BUILTIN_0 directives to surround each occurrence of
5533         #include "rs6000-builtin.def".
5534         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
5535         RS6000_BTM_64BIT flags to the returned mask, depending on
5536         configuration.
5537         (def_builtin): Correct an error in the assignments made to the
5538         debugging variable attr_string.
5539         (rs6000_expand_builtin): Add support for no-operand built-in
5540         functions.
5541         (builtin_function_type): Remove fatal_error assertion that is no
5542         longer valid.
5543         (rs6000_common_init_builtins): Add support for no-operand built-in
5544         functions.
5545         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
5546         definition.
5547         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
5548         definition.
5549         (RS6000_BTM_64BIT): New macro definition.
5550         * doc/extend.texi: Document __builtin_darn (void),
5551         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
5552         functions.
5553
5554 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
5555
5556         * tree-vect-loop.c (vect_analyze_loop_2): Use also
5557         max_loop_iterations_int.
5558
5559 2016-05-19  Marek Polacek  <polacek@redhat.com>
5560
5561         PR tree-optimization/71031
5562         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
5563         condition and adjust the code a bit.
5564
5565 2016-05-19  Martin Liska  <mliska@suse.cz>
5566
5567         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
5568         auto_vec instead of vec.
5569
5570 2016-05-19  Martin Liska  <mliska@suse.cz>
5571
5572         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
5573
5574 2016-05-19  Martin Liska  <mliska@suse.cz>
5575
5576         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
5577
5578 2016-05-19  Martin Liska  <mliska@suse.cz>
5579
5580         * ipa-pure-const.c (set_function_state): Remove an existing
5581         funct_state.
5582         (remove_node_data): Do not free it as it's released
5583         in set_function_state.
5584
5585 2016-05-19  Martin Liska  <mliska@suse.cz>
5586
5587         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
5588         bitmap.
5589
5590 2016-05-19  Martin Liska  <mliska@suse.cz>
5591
5592         * omp-simd-clone.c (simd_clone_adjust): Release vector.
5593
5594 2016-05-19  Martin Liska  <mliska@suse.cz>
5595
5596         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
5597         an auto_vec instead of re-creating it.
5598
5599 2016-05-19  Martin Liska  <mliska@suse.cz>
5600
5601         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
5602         auto_vec instead of vec.
5603
5604 2016-05-19  Martin Liska  <mliska@suse.cz>
5605
5606         * lto-section-in.c (lto_get_section_data): Call
5607         lto_check_version with additional argument.
5608         * lto-streamer.c (lto_check_version): Add new argument.
5609         * lto-streamer.h (lto_check_version): Likewise.
5610
5611 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5612
5613         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
5614         Don't add cost of inner memory when handling sign-extended loads.
5615
5616 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
5617
5618         PR rtl-optimization/71148
5619         * cse.c (cse_main): Free dominance info.
5620         (rest_of_handle_cse): Don't free dominance info.
5621         (rest_of_handle_cse2): Likewise.
5622         (rest_of_handle_cse_after_global_opts): Likewise.
5623
5624 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5625
5626         PR target/71056
5627         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
5628         NULL_TREE early if NEON is not available.  Remove now redundant check
5629         in ARM_CHECK_BUILTIN_MODE.
5630
5631 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
5632
5633         PR sanitizer/64354
5634         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
5635         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
5636         * doc/cpp.texi: Document new macros.
5637
5638 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
5639
5640         PR tree-optimization/69848
5641         * tree-vect-loop.c (vectorizable_reduction): Don't factor
5642         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
5643
5644 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
5645
5646         * function.c (thread_prologue_and_epilogue_insn): Move the
5647         "goto epilogue_done" one block later.
5648
5649 2016-05-19  Richard Biener  <rguenther@suse.de>
5650
5651         PR tree-optimization/70729
5652         * passes.def: Move LIM pass before PRE.  Remove no longer
5653         required copyprop and move first DCE out of the loop pipeline.
5654
5655 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
5656
5657         PR driver/69265
5658         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
5659         (OBJS-libcommon-target): ...here.
5660         * opts-common.c: Include spellcheck.h.
5661         (cmdline_handle_error): Build a vec of valid options and use it
5662         to suggest provide hints for misspelled arguments.
5663
5664 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
5665
5666         PR c++/71100
5667         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
5668         lhs if it has TREE_ADDRESSABLE type.
5669
5670 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
5671
5672         PR target/71145
5673         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
5674         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
5675
5676 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5677
5678         PR ipa/69708
5679         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
5680         input for NOP_EXPR pass-through functions.
5681         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
5682         aggregate global constant VAR_DECLs in constant jump functions.
5683
5684 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5685
5686         PR ipa/69708
5687         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
5688         from TREE_READONLY parameters.
5689
5690 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5691
5692         PR ipa/69708
5693         * cgraph.h (cgraph_indirect_call_info): New field
5694         guaranteed_unmodified.
5695         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
5696         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
5697         appropriate.
5698         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
5699         pass the parameter value to ipa_find_agg_cst_for_param.
5700         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
5701         guaranteed_unmodified, store AA results there instead of bailing out
5702         if present.
5703         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
5704         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
5705         (find_constructor_constant_at_offset): New function.
5706         (ipa_find_agg_cst_from_init): Likewise.
5707         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
5708         static initializers of contants, report back through a new paameter
5709         from_global_constant if that was the case.
5710         (try_make_edge_direct_simple_call): Also pass parameter value to
5711         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
5712         appropriate.
5713         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
5714         (ipa_read_indirect_edge_info): Likewise.
5715         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
5716         (ipa_load_from_parm_agg): Likewise.
5717
5718 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
5719
5720         PR rtl-optimization/71150
5721         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
5722         check.
5723
5724 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5725
5726         PR target/70915
5727         * config/rs6000/constraints.md (wE constraint): New constraint
5728         for a vector constant that can be loaded with XXSPLTIB.
5729         (wM constraint): New constraint for a vector constant of a 1's.
5730         (wS constraint): New constraint for a vector constant that can be
5731         loaded with XXSPLTIB and a vector sign extend instruction.
5732         * config/rs6000/predicates.md (xxspltib_constant_split): New
5733         predicates for wE/wS constraints.
5734         (xxspltib_constant_nosplit): Likewise.
5735         (easy_vector_constant): Add support for constants that can be
5736         loaded via XXSPLTIB.
5737         (all_ones_constant): New predicate for vector constant with all
5738         1's set.
5739         (splat_input_operand): Add support for ISA 3.0 word splat operations.
5740         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
5741         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
5742         instruction and possibly with a sign extension.
5743         (output_vec_const_move): Add support for XXSPLTIB. If we are
5744         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
5745         instead of XXLXOR/XXLORC.
5746         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
5747         operations.
5748         (rs6000_legitimize_reload_address): Likewise.
5749         (rs6000_output_move_128bit): Use output_vec_const_move to emit
5750         constants.
5751         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
5752         combine VSX_M and VSX_M2 into one iterator.
5753         (VSX_M2): Likewise.
5754         (VSINT_84): New iterators for loading constants with XXSPLTIB.
5755         (VSINT_842): Likewise.
5756         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
5757         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
5758         XXSPLTIB instruction.
5759         (xxspltib_<mode>_nosplit): Likewise.
5760         (xxspltib_<mode>_split): New insn to load up constants with
5761         XXSPLTIB and a sign extend instruction.
5762         (vsx_mov<mode>): Replace single move that handled all vector types
5763         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
5764         moves (when -mvsx-timode is in effect) into the main vector
5765         moves.  Eliminate separate moves for <VSr> <VSa>, where the
5766         preferred register class (<VSr>) is listed first, and the
5767         secondary register class (<VSa>) is listed second with a '?' to
5768         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
5769         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
5770         that if the register was involved in a slow operation, the
5771         clear/set operation does not wait for the slow operation to
5772         finish.  Adjust the length attributes for 32-bit mode.  Use
5773         rs6000_output_move_128bit and drop the use of the string
5774         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
5775         spacing so that the alternatives and attributes don't generate
5776         long lines, and put things in columns, so that it is easier to
5777         match up the operands and attributes with the insn alternatives.
5778         (vsx_mov<mode>_64bit): Likewise.
5779         (vsx_mov<mode>_32bit): Likewise.
5780         (vsx_movti_64bit): Fold movti into normal vector moves.
5781         (vsx_movti_32bit): Likewise.
5782         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
5783         splat instructions.
5784         (vsx_splat_v4si_internal): Likewise.
5785         (vsx_splat_v4sf_internal): Likewise.
5786         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
5787         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
5788         extend vector elements.
5789         (vsx_sign_extend_hi_<mode>): Likewise.
5790         (vsx_sign_extend_si_v2di): Likewise.
5791         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
5792         declaration.
5793         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
5794         constraints.  Add trailing period to wL documentation.
5795
5796 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
5797
5798         PR middle-end/71020
5799         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
5800         * tree-dfa.c (replace_abnormal_ssa_names): New function.
5801         * tree-call-cdce.c: Include tree-dfa.h.
5802         (can_guard_call_p): New function, extracted from...
5803         (can_use_internal_fn): ...here.
5804         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
5805         and return void.
5806         (shrink_wrap_one_built_in_call): Likewise.
5807         (use_internal_fn): Likewise.
5808         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
5809         and return void.  Call replace_abnormal_ssa_names.
5810         (pass_call_cdce::execute): Check can_guard_call_p during the
5811         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
5812         will always change something.
5813
5814 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5815
5816         PR ipa/70646
5817         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
5818         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
5819
5820 2016-05-18  Martin Jambor  <mjambor@suse.cz>
5821
5822         PR ipa/70646
5823         * ipa-inline.h (condition): New field size.
5824         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
5825         for comaprison and store it into the new condition.
5826         (evaluate_conditions_for_known_args): Use condition size to check
5827         access sizes for all but CHANGED conditions.
5828         (unmodified_parm_1): New parameter size_p, store access size into it.
5829         (unmodified_parm): Likewise.
5830         (unmodified_parm_or_parm_agg_item): Likewise.
5831         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
5832         (set_cond_stmt_execution_predicate): Extract access sizes and store
5833         them to conditions.
5834         (set_switch_stmt_execution_predicate): Likewise.
5835         (will_be_nonconstant_expr_predicate): Likewise.
5836         (will_be_nonconstant_predicate): Likewise.
5837         (inline_read_section): Stream condition size.
5838         (inline_write_summary): Likewise.
5839
5840 2016-05-18  Richard Biener  <rguenther@suse.de>
5841
5842         * tree-ssa-loop-im.c (determine_max_movement): Properly add
5843         condition cost to PHI cost instead of total_cost.
5844
5845 2016-05-18  Martin Liska  <mliska@suse.cz>
5846
5847         PR fortran/70856
5848         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
5849         merged variables.
5850
5851 2016-05-18  Richard Biener  <rguenther@suse.de>
5852
5853         * lto-streamer.h (LTO_major_version): Bump to 6.
5854
5855 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
5856
5857         * function.c (make_split_prologue_seq, make_prologue_seq,
5858         make_epilogue_seq): New functions, factored out from...
5859         (thread_prologue_and_epilogue_insns): Here.
5860
5861 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
5862
5863         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5864         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
5865         of before.  Add a comment.
5866
5867 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
5868
5869         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
5870         expression pointer, not pointer to the pointer.
5871
5872 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
5873
5874         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
5875         (avx2_pbroadcast<mode>): Add another alternative with v instead
5876         of x constraints in it, using <pbroadcast_evex_isa> isa.
5877         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
5878
5879         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
5880         constraint x instead of v in second alternative, add avx512bw
5881         alternative.
5882
5883         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
5884         constraint x instead of v in second alternative, add avx512bw
5885         alternative.
5886
5887         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
5888         constraint x instead of v in second alternative, add avx512bw
5889         alternative.
5890
5891         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
5892         avx512bw alternative.
5893
5894 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5895
5896         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
5897         array to 128 chars.
5898         (define_insn "*andnottf3"): Ditto.
5899         (define_insn "*<code><mode>3"/any_logic): Ditto.
5900         (define_insn "*<code>tf3"/any_logic): Ditto.
5901         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
5902         operand to block AVX-512VL insn variant emit when it is not enabled.
5903
5904 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5905
5906         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
5907         constraint fot SF mode.
5908
5909 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
5910             Kirill Yukhin  <kirill.yukhin@intel.com>
5911
5912         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
5913         modifiers.
5914         (define_insn "rsqrt14<mode>"): Ditto.
5915         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
5916         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
5917         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
5918         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
5919         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
5920         Ditto.
5921         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
5922         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
5923         * config/i386/i386.c (ix86_print_operand): Expand check for size
5924         override codes for Intel syntax.
5925
5926 2016-05-18  Richard Biener  <rguenther@suse.de>
5927
5928         PR tree-optimization/71168
5929         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
5930         initialization earlier.
5931
5932 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
5933
5934         * config/aarch64/aarch64-simd.md
5935         (aarch64_reduc_plus_internal<mode>): Rename to...
5936         (reduc_plus_scal): ...This, and remove previous implementation.
5937
5938 2016-05-18  Richard Biener  <rguenther@suse.de>
5939
5940         * passes.def: Put late dse and cd_dce in canonical order.
5941
5942 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
5943
5944         * ipa-inline-transform.c (preserve_function_body_p): Look for
5945         first non-thunk clone.
5946         (save_function_body): Save into first non-thunk.
5947         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
5948         up call stmt id.
5949         (lto_output_node): Inline thunks don't need body in every
5950         partition.
5951         * lto-streamer-in.c: Do not fixup thunk clones.
5952         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
5953         thunks.
5954         * tree-inline.c (copy_bb): Be prepared for target node to be new after
5955         folding suceeds.
5956
5957 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5958
5959         PR middle-end/63586
5960         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
5961         (reassociate_bb): Call transform_add_to_multiply.
5962
5963 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
5964
5965         * config/aarch64/aarch64.c (all_extensions): Removed unused
5966         static variable.
5967
5968 2016-05-17  Nathan Sidwell  <nathan@acm.org>
5969
5970         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
5971         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
5972
5973 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
5974
5975         PR tree-optimization/54579
5976         PR middle-end/55299
5977         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
5978
5979 2016-05-17  Marek Polacek  <polacek@redhat.com>
5980
5981         PR ipa/71146
5982         * tree-inline.c (expand_call_inline): Call
5983         maybe_remove_unused_call_args.
5984
5985 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
5986
5987         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
5988         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
5989         * doc/md.texi (fmin@var{m}3): Likewise.
5990
5991 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5992
5993         * match.pd (X & C): New transformation.
5994
5995 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
5996
5997         * match.pd (~X & Y): New transformation.
5998
5999 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
6000
6001         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
6002         information for new SSA_NAME.
6003         (simplify_conversion_using_ranges): Get range through get_range_info
6004         instead of get_value_range.
6005
6006 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
6007
6008         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
6009         Remove inline assembly.
6010         (vmvn_s16): Likewise.
6011         (vmvn_s32): Likewise.
6012         (vmvn_u8): Likewise.
6013         (vmvn_u16): Likewise.
6014         (vmvn_u32): Likewise.
6015         (vmvnq_s8): Likewise.
6016         (vmvnq_s16): Likewise.
6017         (vmvnq_s32): Likewise.
6018         (vmvnq_u8): Likewise.
6019         (vmvnq_u16): Likewise.
6020         (vmvnq_u32): Likewise.
6021         (vmvn_p8): Likewise.
6022         (vmvnq_p16): Likewise.
6023
6024 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
6025
6026         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
6027         Use builtin.
6028         (vmul_n_s16): Likewise.
6029         (vmul_n_s32): Likewise.
6030         (vmul_n_u16): Likewise.
6031         (vmul_n_u32): Likewise.
6032         (vmulq_n_f32): Likewise.
6033         (vmulq_n_f64): Likewise.
6034         (vmulq_n_s16): Likewise.
6035         (vmulq_n_s32): Likewise.
6036         (vmulq_n_u16): Likewise.
6037         (vmulq_n_u32): Likewise.
6038
6039 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
6040
6041         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
6042         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
6043
6044 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
6045
6046         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
6047         to *aarch64_fma4_elt_from_dup<mode>.
6048         (*aarch64_fnma4_elt_to_128df): Rename to
6049         *aarch64_fnma4_elt_from_dup<mode>.
6050         * config/aarch64/arm_neon.h (vfma_n_f64): New.
6051         (vfms_n_f32): Likewise.
6052         (vfms_n_f64): Likewise.
6053         (vfmsq_n_f32): Likewise.
6054         (vfmsq_n_f64): Likewise.
6055
6056 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
6057
6058         * wide-int.h: Change fixed_wide_int_storage from class to struct.
6059
6060 2016-05-17  Richard Biener  <rguenther@suse.de>
6061
6062         PR tree-optimization/71132
6063         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
6064         Only add control dependences for blocks in the loop.
6065         (build_rdg): Adjust.
6066         (generate_code_for_partition): Return whether loop should
6067         be destroyed and delay that.
6068         (distribute_loop): Likewise.
6069         (pass_loop_distribution::execute): Record loops to be destroyed
6070         and perform delayed destroying of loops.
6071
6072 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6073
6074         PR target/70809
6075         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
6076
6077 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
6078
6079         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
6080
6081 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6082
6083         PR target/71114
6084         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
6085         insertion point for instructions generated by validize_mem.
6086
6087 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
6088
6089         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
6090         in brackets.
6091
6092 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
6093
6094         * config/aarch64/aarch64.c
6095         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
6096         rather than a macro.
6097
6098 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
6099
6100         * doc/invoke.texi (AArch64 Options): Various updates.
6101
6102 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6103
6104         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
6105         into instrumentation thunks.
6106         * cif-code.def (CIF_CHKP): New.
6107
6108 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
6109
6110         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
6111
6112 2016-05-16  Martin Jambor  <mjambor@suse.cz>
6113
6114         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
6115         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
6116
6117 2016-05-16  Marek Polacek  <polacek@redhat.com>
6118
6119         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
6120         commentary.
6121
6122 2016-05-16  Martin Jambor  <mjambor@suse.cz>
6123
6124         PR hsa/70857
6125         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
6126         the outlined kernel function.
6127
6128 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
6129
6130         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
6131         (ISA_HAS_DLSA): Ditto.
6132
6133 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
6134
6135         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
6136
6137 2016-05-16  Nathan Sidwell  <nathan@acm.org>
6138
6139         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
6140         (nvptx_name_replacement): Restore.  Add comment.
6141         (write_fn_proto, write_fn_proto_from_insn,
6142         nvptx_output_call_insn): Restore
6143         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
6144
6145 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
6146
6147         * config/aarch64/aarch64.md
6148         (add<mode>3_compareC_cconly_imm): Remove use of %w.
6149         (add<mode>3_compareC_imm): Likewise.
6150         (<optab>si3_uxtw): Split into register and immediate variants.
6151         (andsi3_compare0_uxtw): Likewise.
6152         (and<mode>3_compare0): Likewise.
6153         (and<mode>3nr_compare0): Likewise.
6154         (stack_protect_test_<mode>): Don't use %x for memory operands.
6155
6156 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
6157
6158         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
6159
6160 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
6161
6162         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
6163         Split integer shifts into shift_reg and bfm.
6164         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
6165         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
6166         (ror<mode>3_insn): Likewise.
6167         (<optab>si3_insn_uxtw): Likewise.
6168         (<optab><mode>3_insn): Change to rotate_imm.
6169         (extr<mode>5_insn_alt): Likewise.
6170         (extrsi5_insn_uxtw): Likewise.
6171         (extrsi5_insn_uxtw_alt): Likewise.
6172
6173 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
6174
6175         * doc/tm.texi: Regenerate.
6176         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
6177         (TARGET_INVALID_RETURN_TYPE): Remove.
6178         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
6179         TARGET_INVALID_RETURN_TYPE.
6180         * target.def (invalid_parameter_type): Remove.
6181         (invalid_return_type): Remove.
6182
6183 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6184
6185         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
6186         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
6187         calls from thunk.
6188         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
6189         gimple body.
6190         (preserve_function_body_p): No need to preserve function body
6191         * cif-codes.def (CIF_THUNK): Remove.
6192         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
6193
6194 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6195
6196         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
6197
6198 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6199
6200         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
6201         for thunks.
6202
6203 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6204
6205         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
6206         (inline_small_functions): Do not look for function symbol when
6207         resetting caches.
6208
6209 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
6210
6211         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
6212         of inline thunks
6213
6214 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
6215             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6216             Jiong Wang  <jiong.wang@arm.com>
6217
6218         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
6219         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
6220         Define __ARM_FP16_ARGS when appropriate.
6221         * config/arm/arm.c (arm_invalid_parameter_type): Remove
6222         declaration.
6223         (arm_invalid_return_type): Likewise.
6224         (TARGET_INVALID_PARAMETER_TYPE): Remove.
6225         (TARGET_INVALID_RETURN_TYPE): Remove.
6226         (aapcs_vfp_sub_candidate): Allow HFmode.
6227         (aapcs_vfp_allocate): Add comment.  Support HFmode.
6228         (aapcs_vfp_allocate_return_reg): Likewise.
6229         (struct aapcs_cp_arg_layout): Slightly reword comments for
6230         is_return_candidate and allocate_return_reg.
6231         (output_mov_vfp): Update assert.
6232         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
6233         condition.
6234         (arm_invalid_parameter_type): Remove.
6235         (amr_invalid_return_type): Remove.
6236         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
6237         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
6238         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
6239
6240 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
6241
6242         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
6243         * config/aarch64/arch64-protos.h
6244         (aarch64_legitimize_reload_address): Remove.
6245         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
6246         Remove.
6247
6248 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
6249
6250         * configure.ac: Add ACX_NONCANONICAL_HOST.
6251         * configure: Regenerate.
6252         * Makefile.in: Set host_noncanonical.
6253
6254 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
6255
6256         PR target/71097
6257         * config/i386/i386.md (*movtf_internal): Before register allocation,
6258         do not allow FP constants for CM_MEDIUM memory model, allow only
6259         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
6260         (*movxf_internal): Ditto.
6261         (*movdf_internal): Ditto.
6262         (*movsf_internal): Ditto.
6263
6264 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
6265
6266         PR rtl-optimization/67483
6267         * combine.c (make_compound_operation): Don't call extract_left_shift
6268         with negative shift amounts.
6269
6270 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
6271
6272         PR bootstrap/71071
6273         * fold-const.c (fold_checksum_tree): Allow modification
6274         of TYPE_ALIAS_SET during folding.
6275
6276         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
6277         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
6278         (ix86_split_to_parts): Likewise.  Fix up formatting.
6279
6280 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
6281
6282         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
6283         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
6284         printf format.
6285
6286 2016-05-13  Nathan Sidwell  <nathan@acm.org>
6287
6288         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
6289         (nvptx_name_replacement): Delete.
6290         (write_fn_proto, write_fn_proto_from_insn,
6291         nvptx_output_call_insn): Remove nvptx_name_replacement call.
6292         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
6293         * langhooks.c (add_builtin_funcction_common): Call
6294         targetm.mangle_decl_assembler_name.
6295
6296         * config/nvptx/nvptx.c (write_fn_proto): Handle
6297         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
6298
6299 2016-05-13  Martin Liska  <mliska@suse.cz>
6300
6301         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
6302         and PRIu64 in printf format.
6303
6304 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6305
6306         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
6307         comment.
6308
6309 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6310
6311         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
6312         Change --param max-completely-peeled-times to
6313         --param max-completely-peel-times in dump file printing.
6314
6315 2016-05-13  Richard Biener  <rguenther@suse.de>
6316
6317         PR tree-optimization/42587
6318         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
6319         (find_bswap_or_nop_1): Likewise.
6320         (bswap_replace): Likewise.
6321
6322 2016-05-13  Martin Liska  <mliska@suse.cz>
6323
6324         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
6325         Initialize a variable with default value.
6326
6327 2016-05-13  Martin Liska  <mliska@suse.cz>
6328
6329         * doc/invoke.texi: Enhance explanation of error recovery
6330         of sanitizers.
6331
6332 2016-05-13  Martin Liska  <mliska@suse.cz>
6333
6334         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
6335         (struct cost_pair): Change inv_expr_id (int) to inv_expr
6336         (iv_inv_expr_ent *).
6337         (struct iv_inv_expr_ent): Comment struct fields.
6338         (sort_iv_inv_expr_ent): New function.
6339         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
6340         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
6341         a hash_map between iv_inv_expr_ent and number of usages.
6342         (niter_for_exit): Fix coding style.
6343         (tree_ssa_iv_optimize_init): Use renamed variable.
6344         (determine_base_object): Fix coding style.
6345         (alloc_iv): Likewise.
6346         (find_interesting_uses_outside): Likewise.
6347         (add_candidate_1): Likewise.
6348         (add_standard_iv_candidates): Likewise.
6349         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
6350         (prepare_decl_rtl): Fix coding style.
6351         (get_address_cost): Likewise.
6352         (get_shiftadd_cost): Likewise.
6353         (force_expr_to_var_cost): Likewise.
6354         (compare_aff_trees): Likewise.
6355         (get_expr_id): Restructure the function.
6356         (get_loop_invariant_expr_id): Renamed to
6357         get_loop_invariant_expr.
6358         (get_computation_cost_at): Replace usage of inv_expr_id with
6359         inv_expr.
6360         (get_computation_cost): Likewise.
6361         (determine_group_iv_cost_generic): Likewise.
6362         (determine_group_iv_cost_address): Likewise.
6363         (iv_period): Fix coding style.
6364         (iv_elimination_compare_lt): Likewise.
6365         (may_eliminate_iv): Likewise.
6366         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
6367         inv_expr.
6368         (determine_group_iv_costs): Dump invariant expressions.
6369         (iv_ca_recount_cost): Use the newly added hash_map.
6370         (iv_ca_set_remove_invariants): Fix coding style.
6371         (iv_ca_set_add_invariants): Fix coding style.
6372         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
6373         invariants.
6374         (iv_ca_set_cp): Likewise.
6375         (iv_ca_new): Initialize the newly added hash_map and remove
6376         initialization of fields.
6377         (iv_ca_free): Delete the hash_map.
6378         (iv_ca_dump): Dump invariant expressions.
6379         (iv_ca_extend): Fix coding style.
6380         (try_add_cand_for): Likewise.
6381         (create_new_ivs): Dump information about # of avg iterations and
6382         # of used invariant expressions.
6383         (rewrite_use_compare): Fix coding style.
6384         (free_loop_data): Set default value for max_inv_expr_id.
6385
6386 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
6387
6388         * cse.c (rest_of_handle_cse): Use cleanup_cfg
6389         returned value cse_cfg_altered computation.
6390         (rest_of_handle_cse2): Likewise.
6391         (rest_of_handle_cse_after_global_opts): Likewise.
6392
6393 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6394
6395         PR target/53440
6396         * config/arm/arm.c (arm32_output_mi_thunk): New.
6397         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
6398         to split Thumb1 vs TARGET_32BIT functionality.
6399         (arm_thumb1_mi_thunk): New.
6400
6401 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6402
6403         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
6404         to true.
6405
6406 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6407
6408         PR target/71080
6409         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
6410
6411 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
6412
6413         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
6414         (expand_builtin_trap): Emit a regular call.
6415         (set_builtin_user_assembler_name): Remove obsolete cases.
6416         * dse.c (scan_insn): Adjust.
6417         * except.c: Include calls.h.
6418         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
6419         emit a regular call to setjmp.
6420         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
6421         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
6422         (emit_block_move_via_libcall): Delete.
6423         (block_move_fn): Delete.
6424         (init_block_move_fn): Likewise.
6425         (emit_block_move_libcall_fn): Likewise.
6426         (emit_block_op_via_libcall): New function.
6427         (set_storage_via_libcall): Tidy up and use memset builtin.
6428         (block_clear_fn): Delete.
6429         (init_block_clear_fn): Likewise.
6430         (clear_storage_libcall_fn): Likewise.
6431         (expand_assignment): Call emit_block_move_via_libcall.
6432         Do not include gt-expr.h.
6433         * expr.h (emit_block_op_via_libcall): Declare.
6434         (emit_block_copy_via_libcall): New inline function.
6435         (emit_block_move_via_libcall): Likewise.
6436         (emit_block_comp_via_libcall): Likewise.
6437         (block_clear_fn): Delete.
6438         (init_block_move_fn): Likewise.
6439         (init_block_clear_fn): Likewise.
6440         (emit_block_move_via_libcall): Likewise.
6441         (set_storage_via_libcall): Add default parameter value.
6442         * libfuncs.h (enum libfunc_index): Remove obsolete values.
6443         (abort_libfunc): Delete.
6444         (memcpy_libfunc): Likewise.
6445         (memmove_libfunc): Likewise.
6446         (memcmp_libfunc): Likewise.
6447         (memset_libfunc): Likewise.
6448         (setbits_libfunc): Likewise.
6449         (setjmp_libfunc): Likewise.
6450         (longjmp_libfunc): Likewise.
6451         (profile_function_entry_libfunc): Likewise.
6452         (profile_function_exit_libfunc): Likewise.
6453         (gcov_flush_libfunc): Likewise.
6454         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
6455         and DECL_VISIBILITY on the declaration.
6456         (init_optabs): Do not initialize obsolete libfuncs.
6457         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
6458         * tree-core.h (ECF_RET1): Define.
6459         (ECF_TM_PURE): Adjust.
6460         (ECF_TM_BUILTIN): Likewise.
6461         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
6462         (build_common_builtin_nodes): Initialize abort builtin.
6463         Add ECF_RET1 on memcpy, memmove and memset builtins.
6464         Pass final flags for alloca and alloca_with_align builtins.
6465         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
6466         obsolete builtins.
6467         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
6468         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
6469         set_storage_via_libcall and call emit_block_copy_via_libcall.
6470
6471 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
6472
6473         * config/i386/i386.md (*call_got_x32): Change operand 0 to
6474         DImode before it is passed to ix86_output_call_operand.
6475         (*call_value_got_x32): Ditto for operand 1.
6476
6477 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
6478
6479         PR rtl-optimization/70904
6480         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
6481         reload for wide mode.
6482
6483 2016-05-12  Marek Polacek  <polacek@redhat.com>
6484
6485         PR c/70756
6486         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
6487         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
6488         * langhooks.h (incomplete_type_error): Likewise.
6489         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
6490         parameter, pass it down to incomplete_type_error.
6491         * tree.h (size_in_bytes): New inline overload.
6492         (size_in_bytes_loc): Renamed from size_in_bytes.
6493
6494 2016-05-12  Richard Biener  <rguenther@suse.de>
6495
6496         PR tree-optimization/71059
6497         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
6498         nary before looking up or entering the expression into the VN
6499         hashes.
6500         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
6501         Make sure to re-use NARYs without result as inserted by
6502         phi-translation.
6503
6504 2016-05-12  Richard Biener  <rguenther@suse.de>
6505
6506         PR tree-optimization/71062
6507         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
6508         field.
6509         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6510         vars_contains_restrict if the var is a restrict tag.
6511         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
6512         do not disambiguate pointers against it.
6513         (dump_points_to_solution): Re-structure and adjust for new
6514         vars_contains_restrict flag.
6515         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
6516
6517 2016-05-12  Martin Liska  <mliska@suse.cz>
6518
6519         * doc/invoke.texi: Explain connection between
6520         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
6521
6522 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
6523
6524         PR tree-optimization/71006
6525         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
6526         consider COND_EXPR as a mask producer.
6527
6528 2016-05-12  Marek Polacek  <polacek@redhat.com>
6529
6530         PR driver/71063
6531         * opts.c (common_handle_option): Detect missing argument for --help^.
6532
6533 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6534
6535         PR target/70830
6536         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
6537         when popping the PC and within an interrupt handler routine.
6538         Add missing tab to output of "ldmfd".
6539         (output_return_instruction): Output LDMFD with SP update rather
6540         than POP when returning from interrupt handler.
6541
6542 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
6543
6544         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
6545         TARGET_64BIT && TARGET_AVX512DQ.
6546         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
6547         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
6548         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
6549         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
6550         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
6551         (*vec_extractv4si_zext): Add avx512dq alternative.
6552         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
6553         use v instead of x constraint in other alternatives where possible.
6554
6555         * config/i386/sse.md (sse2_loadld): Use v instead of x
6556         constraint in alternatives 0,1,4.
6557
6558         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
6559         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
6560         v constraints instead of x and <pinsr_evex_isa> isa attribute.
6561
6562         PR target/71019
6563         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
6564         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
6565         is not emitted unless TARGET_AVX512BW.
6566         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
6567         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
6568         for the result operand.
6569
6570         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
6571         constraint instead of x in avx alternatives.  Use maybe_evex instead
6572         of vex prefix.
6573
6574         * config/i386/constraints.md (Yv): New constraint.
6575         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
6576         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
6577         * config/i386/i386.md (avx512fvecmode): New mode attr.
6578         (*pushtf): Use v constraint instead of x.
6579         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
6580         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
6581         (*absneg<mode>2): Use Yv constraint instead of x constraint.
6582         (*absnegtf2_sse): Likewise.
6583         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
6584         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
6585         avx512f alternatives.
6586         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
6587
6588 2016-05-12  Richard Biener  <rguenther@suse.de>
6589
6590         PR tree-optimization/71060
6591         * tree-data-ref.c (initialize_data_dependence_relation): Do not
6592         require exact match of DR_BASE_OBJECT but only matching address and
6593         type.
6594
6595 2016-05-12  Richard Biener  <rguenther@suse.de>
6596
6597         PR tree-optimization/70986
6598         * cfganal.c: Include cfgloop.h.
6599         (dfs_find_deadend): Prefer to take edges exiting loops.
6600
6601 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6602
6603         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
6604         compile and run time.
6605
6606 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
6607
6608         PR c/43651
6609         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
6610
6611 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
6612
6613         * config/i386/i386.c (legitimize_pic_address): Use
6614         copy_to_suggested_reg instead of gen_movsi.
6615
6616 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6617
6618         * config/rs6000/predicates.md (quad_memory_operand): Move most of
6619         the code into quad_address_p and call it to share code with
6620         vsx_quad_dform_memory_operand.
6621         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
6622         d-form support.
6623         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
6624         bit instead of being a separate word.  Split -mpower9-dform into
6625         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
6626         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
6627         for the register class supporting 128-bit quad word memory offsets.
6628         (mode_supports_vsx_dform_quad): Helper function to return if the
6629         register class uses quad word memory offsets.
6630         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
6631         (rs6000_debug_reg_global): Always print if we are using LRA or not.
6632         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
6633         instructions are enabled, set up the appropriate addr_masks for
6634         128-bit types.
6635         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
6636         -mpower9-dform-scalar, instead of -mpower9-dform.
6637         (rs6000_option_override_internal): Split -mpower9-dform into two
6638         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
6639         -mpower9-dform switch sets or clears both.  If we are not using
6640         the LRA register allocator, do not enable -mpower9-dform-vector by
6641         default.  If we are using LRA, enable -mpower9-dform-vector and
6642         -mvsx-timode if it is appropriate.  Issue a warning if either
6643         -mpower9-dform-vector or -mvsx-timode are explicitly used without
6644         enabling LRA.
6645         (quad_address_offset_p): New helper function to return if the
6646         offset is legal for quad word memory instructions.
6647         (quad_address_p): New function to determin if GPR or vector
6648         register quad word memory addresses are legal.
6649         (mem_operand_gpr): Validate quad word address offsets.
6650         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
6651         d-form (register + offset) instructions.
6652         (offsettable_ok_by_alignment): Likewise.
6653         (rs6000_legitimate_offset_address_p): Likewise.
6654         (legitimate_lo_sum_address_p): Likewise.
6655         (rs6000_legitimize_address): Likewise.
6656         (rs6000_legitimize_reload_address): Add more debug statements for
6657         -mdebug=addr.
6658         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
6659         d-form instructions.
6660         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
6661         d-form instructions.  Distinguish different cases in debug
6662         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
6663         d-form instructions.
6664         (rs6000_preferred_reload_class): Likewise.
6665         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
6666         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
6667         of the ISA 2.06 indexed memory instructions.
6668         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
6669         use them to save/restore the saved vector registers instead of
6670         using Altivec instructions.
6671         (rs6000_emit_epilogue): Likewise.
6672         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
6673         (rs6000_opt_masks): Split -mpower9-dform into
6674         -mpower9-dform-scalar and -mpower9-dform-vector.
6675         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
6676         was not selected.
6677         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
6678         ISA 3.0 vector indexed memory instructions, and fold the code into
6679         the normal mov<mode> patterns.
6680         (p9_vecstore_<mode>): Likewise.
6681         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
6682         instructions.
6683         (vsx_movti_64bit): Likewise.
6684         (vsx_movti_32bit): Likewise.
6685         * config/rs6000/constraints.md (wO constraint): New constraint for
6686         ISA 3.0 vector d-form support.
6687         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
6688         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
6689         include -mpower9-dform-vector until we switch over to LRA.
6690         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
6691         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
6692         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
6693         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6694         for -mpower9-dform and -mlra.
6695         * doc/md.texi (wO constraint): Document wO constraint.
6696
6697 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
6698
6699         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
6700         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
6701         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
6702         Move handling of non-insn arguments inline into the sole user:
6703         (output_trans_func): ...here.
6704         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
6705         in emitted function prototype.
6706         (output_internal_insn_latency_func): Ditto.  Simplify.
6707         (output_internal_maximal_insn_latency_func): Ditto.  Delete
6708         always-unused argument.
6709         (output_insn_latency_func): Ditto.
6710         (output_maximal_insn_latency_func): Ditto.
6711
6712 2016-05-11  Richard Biener  <rguenther@suse.de>
6713
6714         PR tree-optimization/71055
6715         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
6716         sth with precision not equal to access size verify we don't chop
6717         off bits.
6718
6719 2016-05-11  Richard Biener  <rguenther@suse.de>
6720
6721         PR debug/71057
6722         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
6723         (dwarf2out_finish): Move retry_incomplete_types call ...
6724         (dwarf2out_early_finish): ... here.
6725
6726 2016-05-11  Richard Biener  <rguenther@suse.de>
6727
6728         PR middle-end/71002
6729         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
6730         if the langhook insists on it.
6731         * fold-const.c (make_bit_field_ref): Add arg for the original
6732         reference and preserve its alias-set.
6733         (decode_field_reference): Take exp by reference and adjust it
6734         to the original memory reference.
6735         (optimize_bit_field_compare): Adjust callers.
6736         (fold_truth_andor_1): Likewise.
6737         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
6738
6739 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
6740
6741         PR middle-end/70807
6742         * cfgrtl.h (delete_insn_and_edges): Now return bool.
6743         * cfgrtl.c (delete_insn_and_edges): Likewise.
6744         * config/i386/i386.c (convert_scalars_to_vector): Remove
6745         redundant code.
6746         * cse.c (cse_insn): Compute cse_cfg_altered.
6747         (delete_trivially_dead_insns): Likewise.
6748         (cse_cc_succs): Likewise.
6749         (rest_of_handle_cse): Free dominance info if required.
6750         (rest_of_handle_cse2): Likewise.
6751         (rest_of_handle_cse_after_global_opts): Likewise.
6752
6753 2016-05-11  Alan Modra  <amodra@gmail.com>
6754
6755         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
6756         abi_v4_pass_in_fpr): New functions.
6757         (rs6000_function_arg_boundary): Exclude complex IBM long double
6758         from 64-bit alignment when ABI_V4.
6759         (rs6000_function_arg, rs6000_function_arg_advance_1,
6760         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
6761
6762 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
6763
6764         PR rtl-optimization/71028
6765         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
6766         jump with just a return in the fallthrough block if the branch
6767         block contains just a return as well.
6768
6769 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
6770
6771         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
6772         * match.pd ((X & Y) ^ Y): ... this.
6773         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
6774         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
6775
6776 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
6777
6778         * read-md.c (require_char_ws): New function.
6779         (read_string): Simplify using require_char_ws.
6780         (handle_constants): Likewise.
6781         (handle_enum): Likewise.
6782         (handle_file): Likewise.
6783         * read-md.h (require_char_ws): New declaration.
6784         * read-rtl.c (read_conditions): Simplify using require_char_ws.
6785         (read_mapping): Likewise.
6786         (read_rtx_code): Likewise.
6787         (read_nested_rtx): Likewise.
6788
6789 2016-05-10  James Norris  <jnorris@codesourcery.com>
6790
6791         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
6792         if offloading is enabled and -fopenacc or -fopenmp is specified.
6793         (CRTOFFLOADEND): Likewise.
6794         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
6795         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
6796
6797 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
6798
6799         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
6800         gotoff_operand code paths.  Use copy_to_suggested_regs and
6801         expand_simple_binop where appropriate.  Cleanup.
6802
6803 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6804
6805         PR target/70799
6806         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
6807         integer constants.
6808         (dimode_scalar_chain::vector_const_cost): New.
6809         (dimode_scalar_chain::compute_convert_gain): Handle constants.
6810         (dimode_scalar_chain::convert_op): Likewise.
6811         (dimode_scalar_chain::convert_insn): Likewise.
6812
6813 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
6814
6815         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
6816         unary operation, not a binary one.
6817
6818 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6819
6820         PR middle-end/70877
6821         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
6822         calls with type casted fndecl.
6823
6824 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6825
6826         PR tree-optimization/70786
6827         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
6828         * calls.c (initialize_argument_information): Bind bounds
6829         with corresponding args passed by reference.
6830
6831 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
6832
6833         PR target/70927
6834         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
6835         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
6836         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
6837         accordingly.
6838
6839 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6840
6841         PR target/70963
6842         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
6843         code for a zero scale factor.
6844         (vsx_xvcvdpuxds_scale): Likewise.
6845
6846 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
6847
6848         * diagnostic-show-locus.c (layout::layout): Call show_ruler
6849         if show_ruler_p was set on the context.
6850         (layout::show_ruler): New method.
6851         * diagnostic.h (struct diagnostic_context): Add field
6852         "show_ruler_p".
6853
6854 2016-05-10  Richard Biener  <rguenther@suse.de>
6855
6856         PR tree-optimization/71039
6857         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
6858         (chk_uses): New function.
6859         (propagate_with_phi): Verify we can safely replicate the lhs of an
6860         aggregate assignment on all incoming edges.
6861
6862 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
6863
6864         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
6865         Forward declare.
6866         (rx_atomic_sequence): New class.
6867         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
6868         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
6869         non-inline.
6870         (rx_atomic_sequence::rx_atomic_sequence,
6871         rx_atomic_sequence::~rx_atomic_sequence): New functions.
6872         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
6873         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
6874         CTRLREG_INTB): New constants.
6875         (FETCHOP): New code iterator.
6876         (fethcop_name, fetchop_name2): New iterator code attributes.
6877         (QIHI): New mode iterator.
6878         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
6879         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
6880         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
6881
6882 2016-05-10  Martin Liska  <mliska@suse.cz>
6883
6884         * tree-inline.c (remap_dependence_clique): Do not remap
6885         debugging statements.
6886
6887 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6888
6889         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
6890         ("*fixuns_truncdfdi2_z13")
6891         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
6892         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
6893         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
6894
6895 2016-05-10  Richard Biener  <rguenther@suse.de>
6896
6897         PR tree-optimization/70497
6898         PR tree-optimization/28367
6899         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
6900         split out from ...
6901         (visit_reference_op_load): ... here.
6902         (vn_reference_lookup_3): Use it to handle subreg-like accesses
6903         with simplified BIT_FIELD_REFs.
6904         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
6905         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
6906         correctly.
6907
6908 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
6909
6910         * dwarf2out.c (add_abstract_origin_attribute): Adjust
6911         documentation comment.  For BLOCK nodes, add a
6912         DW_AT_abstract_origin attribute that points to the DIE generated
6913         for the origin BLOCK.
6914         (gen_lexical_block_die): Call add_abstract_origin_attribute for
6915         blocks from inlined functions.
6916
6917 2016-05-10  Alan Modra  <amodra@gmail.com>
6918
6919         PR target/70947
6920         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
6921         regrename modifying insns saving lr before __morestack call.
6922         * config/rs6000/rs6000.md (split_stack_return): Similarly for
6923         insns restoring lr after __morestack call.
6924
6925 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
6926
6927         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
6928         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
6929         expanders.
6930         * config/i386/sse.md (vec_interleave_high<mode>,
6931         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
6932         <avx512>_vpermt2var<mode>3_maskz): Likewise.
6933
6934 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6935
6936         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
6937         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
6938         parallel reassociation for power8 and forward.
6939
6940 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
6941
6942         * config/i386/i386.md (absneg splitters with general regs): Use
6943         general_reg_operand predicate.
6944         (btsq peephole2): Use x86_64_immediate_operand to check if new
6945         value is suitable for immediate operand.  Generate emitted insn
6946         using RTL expressions.
6947         (btcq peephole2): Ditto.
6948         (btrq peephole2): Ditto.  Generate correct immediate operand
6949         for AND masking.
6950
6951 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
6952
6953         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
6954         bitpos.
6955
6956 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
6957
6958         * tree-affine.c (wide_int_constant_multiple_p): Add missing
6959         pointer dereference.
6960
6961 2016-05-09  Richard Biener  <rguenther@suse.de>
6962
6963         PR tree-optimization/70985
6964         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
6965         op0 isn't a gimple register.
6966
6967 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
6968
6969         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
6970         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
6971         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
6972         (i6400_fpu_mult): New cpu units.
6973         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
6974         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
6975         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
6976         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
6977         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
6978         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
6979         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
6980         (i6400_msa_long_float4, i6400_msa_long_float5)
6981         (i6400_msa_long_float8, i6400_msa_fdiv_df)
6982         (i6400_msa_fdiv_sf): New reservations.
6983         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
6984         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
6985         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
6986         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
6987         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
6988         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
6989         (msa_short_cmp, msa_short_float2, msa_short_logic3)
6990         (msa_short_store4, msa_long_load, msa_short_store)
6991         (msa_long_logic, msa_long_float2, msa_long_float4)
6992         (msa_long_float5, msa_long_float8, msa_long_mult)
6993         (msa_long_fdiv, msa_long_div): New reservations.
6994
6995 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
6996             Sameera Deshpande  <sameera.deshpande@imgtec.com>
6997             Matthew Fortune  <matthew.fortune@imgtec.com>
6998             Graham Stott  <graham.stott@imgtec.com>
6999             Chao-ying Fu  <chao-ying.fu@imgtec.com>
7000
7001         * config.gcc: Add MSA header file for mips*-*-* target.
7002         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
7003         (Ubv8i, Urv8):  New constraints.
7004         * config/mips/mips-ftypes.def: Add function types for MSA
7005         builtins.
7006         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
7007         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
7008         * config/mips/mips-msa.md: New file.
7009         * config/mips/mips-protos.h
7010         (mips_split_128bit_const_insns): New prototype.
7011         (mips_msa_idiv_insns): Likewise.
7012         (mips_split_128bit_move): Likewise.
7013         (mips_split_128bit_move_p): Likewise.
7014         (mips_split_msa_copy_d): Likewise.
7015         (mips_split_msa_insert_d): Likewise.
7016         (mips_split_msa_fill_d): Likewise.
7017         (mips_expand_msa_branch): Likewise.
7018         (mips_const_vector_same_val_p): Likewise.
7019         (mips_const_vector_same_bytes_p): Likewise.
7020         (mips_const_vector_same_int_p): Likewise.
7021         (mips_const_vector_shuffle_set_p): Likewise.
7022         (mips_const_vector_bitimm_set_p): Likewise.
7023         (mips_const_vector_bitimm_clr_p): Likewise.
7024         (mips_msa_vec_parallel_const_half): Likewise.
7025         (mips_msa_output_division): Likewise.
7026         (mips_ldst_scaled_shift): Likewise.
7027         (mips_expand_vec_cond_expr): Likewise.
7028         * config/mips/mips.c (enum mips_builtin_type): Add
7029         MIPS_BUILTIN_MSA_TEST_BRANCH.
7030         (mips_gen_const_int_vector_shuffle): New prototype.
7031         (mips_const_vector_bitimm_set_p): New function.
7032         (mips_const_vector_bitimm_clr_p): Likewise.
7033         (mips_const_vector_same_val_p): Likewise.
7034         (mips_const_vector_same_bytes_p): Likewise.
7035         (mips_const_vector_same_int_p): Likewise.
7036         (mips_const_vector_shuffle_set_p): Likewise.
7037         (mips_symbol_insns): Forbid loading symbols via immediate for
7038         MSA.
7039         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
7040         stores.
7041         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
7042         MSA.
7043         (mips_lx_address_p): Add support load indexed address for MSA.
7044         (mips_address_insns): Add calculation of instructions needed for
7045         stores and loads for MSA.
7046         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
7047         CONST_VECTOR for MSA and let it fall through.
7048         (mips_ldst_scaled_shift): New function.
7049         (mips_subword_at_byte): Likewise.
7050         (mips_msa_idiv_insns): Likewise.
7051         (mips_legitimize_move): Validate MSA moves.
7052         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
7053         calculation of costs for MSA division.
7054         (mips_split_move_p): Check if MSA moves need splitting.
7055         (mips_split_move): Split MSA moves if necessary.
7056         (mips_split_128bit_move_p): New function.
7057         (mips_split_128bit_move): Likewise.
7058         (mips_split_msa_copy_d): Likewise.
7059         (mips_split_msa_insert_d): Likewise.
7060         (mips_split_msa_fill_d): Likewise.
7061         (mips_output_move): Handle MSA moves.
7062         (mips_expand_msa_branch): New function.
7063         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
7064         Reinstate 'y' modifier.
7065         (mips_file_start): Add MSA .gnu_attribute.
7066         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
7067         FPRs.
7068         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
7069         (mips_class_max_nregs): Add register size for MSA supported mode.
7070         (mips_cannot_change_mode_class): Allow conversion between MSA
7071         vector modes and TImode.
7072         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
7073         instruction.
7074         (mips_secondary_reload_class): Force MSA loads/stores via memory.
7075         (mips_preferred_simd_mode): Add preffered modes for MSA.
7076         (mips_vector_mode_supported_p): Add MSA supported modes.
7077         (mips_autovectorize_vector_sizes): New function.
7078         (mips_msa_output_division): Likewise.
7079         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
7080         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
7081         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
7082         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
7083         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
7084         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
7085         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
7086         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
7087         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
7088         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
7089         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
7090         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
7091         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
7092         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
7093         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
7094         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
7095         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
7096         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
7097         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
7098         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
7099         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
7100         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
7101         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
7102         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
7103         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
7104         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
7105         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
7106         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
7107         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
7108         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
7109         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
7110         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
7111         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
7112         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
7113         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
7114         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
7115         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
7116         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
7117         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
7118         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
7119         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
7120         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
7121         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
7122         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
7123         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
7124         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
7125         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
7126         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
7127         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
7128         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
7129         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
7130         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
7131         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
7132         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
7133         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
7134         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
7135         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
7136         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
7137         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
7138         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
7139         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
7140         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
7141         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
7142         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
7143         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
7144         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
7145         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
7146         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
7147         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
7148         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
7149         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
7150         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
7151         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
7152         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
7153         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
7154         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
7155         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
7156         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
7157         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
7158         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
7159         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
7160         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
7161         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
7162         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
7163         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
7164         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
7165         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
7166         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
7167         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
7168         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
7169         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
7170         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
7171         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
7172         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
7173         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
7174         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
7175         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
7176         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
7177         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
7178         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
7179         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
7180         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
7181         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
7182         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
7183         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
7184         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
7185         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
7186         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
7187         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
7188         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
7189         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
7190         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
7191         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
7192         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
7193         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
7194         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
7195         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
7196         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
7197         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
7198         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
7199         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
7200         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
7201         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
7202         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
7203         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
7204         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
7205         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
7206         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
7207         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
7208         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
7209         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
7210         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
7211         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
7212         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
7213         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
7214         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
7215         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
7216         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
7217         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
7218         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
7219         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
7220         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
7221         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
7222         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
7223         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
7224         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
7225         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
7226         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
7227         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
7228         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
7229         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
7230         move_v builtins.
7231         (mips_get_builtin_decl_index): New array.
7232         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
7233         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
7234         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
7235         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
7236         (mips_init_builtins): Initialize mips_get_builtin_decl_index
7237         array.
7238         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
7239         hook.
7240         (mips_expand_builtin_insn): Prepare operands for
7241         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
7242         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
7243         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
7244         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
7245         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
7246         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
7247         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
7248         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
7249         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
7250         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
7251         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
7252         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
7253         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
7254         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
7255         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
7256         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
7257         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
7258         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
7259         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
7260         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
7261         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
7262         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
7263         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
7264         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
7265         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
7266         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
7267         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
7268         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
7269         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
7270         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
7271         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
7272         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
7273         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
7274         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
7275         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
7276         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
7277         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
7278         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
7279         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
7280         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
7281         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
7282         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
7283         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
7284         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
7285         These are set implicitly and an error is reported if overridden.
7286         (mips_expand_builtin_msa_test_branch): New function.
7287         (mips_expand_msa_shuffle): Likewise.
7288         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
7289         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
7290         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
7291         (mips_expand_vec_unpack): Add support for MSA.
7292         (mips_expand_vector_init): Likewise.
7293         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
7294         instead of const0_rtx.
7295         (mips_msa_vec_parallel_const_half): New function.
7296         (mips_gen_const_int_vector): Likewise.
7297         (mips_gen_const_int_vector_shuffle): Likewise.
7298         (mips_expand_msa_cmp): Likewise.
7299         (mips_expand_vec_cond_expr): Likewise.
7300         * config/mips/mips.h
7301         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
7302         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
7303         specified.
7304         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
7305         (ISA_HAS_MSA): New macro.
7306         (UNITS_PER_MSA_REG): Likewise.
7307         (BITS_PER_MSA_REG): Likewise.
7308         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
7309         (MSA_REG_FIRST): New macro.
7310         (MSA_REG_LAST): Likewise.
7311         (MSA_REG_NUM): Likewise.
7312         (MSA_REG_P): Likewise.
7313         (MSA_REG_RTX_P): Likewise.
7314         (MSA_SUPPORTED_MODE_P): Likewise.
7315         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
7316         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
7317         * config/mips/mips.md: Include mips-msa.md.
7318         (alu_type): Add simd_add.
7319         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
7320         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
7321         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
7322         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
7323         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
7324         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
7325         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
7326         simd_move, simd_load, simd_store.  Choose "multi" for moves
7327         for "qword_mode".
7328         (qword_mode): New attribute.
7329         (insn_count): Add instruction count for quad moves.
7330         Increase the count for MIPS SIMD division.
7331         (UNITMODE): Add UNITMODEs for vector types.
7332         (addsub): New code iterator.
7333         * config/mips/mips.opt (mmsa): New option.
7334         * config/mips/msa.h: New file.
7335         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
7336         specified.
7337         * config/mips/mti-linux.h: Likewise.
7338         * config/mips/predicates.md
7339         (const_msa_branch_operand): New constraint.
7340         (const_uimm3_operand): Likewise.
7341         (const_uimm4_operand): Likewise.
7342         (const_uimm5_operand): Likewise.
7343         (const_uimm8_operand): Likewise.
7344         (const_imm5_operand): Likewise.
7345         (aq10b_operand): Likewise.
7346         (aq10h_operand): Likewise.
7347         (aq10w_operand): Likewise.
7348         (aq10d_operand): Likewise.
7349         (const_m1_operand): Likewise.
7350         (reg_or_m1_operand): Likewise.
7351         (const_exp_2_operand): Likewise.
7352         (const_exp_4_operand): Likewise.
7353         (const_exp_8_operand): Likewise.
7354         (const_exp_16_operand): Likewise.
7355         (const_vector_same_val_operand): Likewise.
7356         (const_vector_same_simm5_operand): Likewise.
7357         (const_vector_same_uimm5_operand): Likewise.
7358         (const_vector_same_uimm6_operand): Likewise.
7359         (const_vector_same_uimm8_operand): Likewise.
7360         (par_const_vector_shf_set_operand): Likewise.
7361         (reg_or_vector_same_val_operand): Likewise.
7362         (reg_or_vector_same_simm5_operand): Likewise.
7363         (reg_or_vector_same_uimm6_operand): Likewise.
7364         * doc/extend.texi (MIPS SIMD Architecture Functions): New
7365         section.
7366         * doc/invoke.texi (-mmsa): Document new option.
7367
7368 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7369
7370         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
7371         * configure: Regenerate.
7372         * config.in: Regenerate.
7373         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
7374         on -fvtable-verify.
7375         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
7376         (ENDFILE_VTV_SPEC): Define.
7377
7378 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
7379
7380         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
7381         registers in all interrupt handlers if necessary.
7382         (rl78_option_override): Add warning.
7383         (MUST_SAVE_MDUC_REGISTERS): New macro.
7384         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
7385         * config/rl78/rl78.c (check_mduc_usage): New function.
7386         (mduc_regs): New structure to hold MDUC register data.
7387         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
7388         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
7389         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
7390         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
7391         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
7392         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
7393
7394 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
7395
7396         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
7397         (tree-ssa-loop-niter.h): Ditto.
7398         (idx_within_array_bound, ref_within_array_bound): New functions.
7399         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
7400         Factor out check on writable base object to ...
7401         (base_object_writable): ... here.
7402
7403 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7404
7405         * config/arm/arm.md (probe_stack): Add modes to set source
7406         and destination.
7407
7408 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
7409
7410         * regrename.c (base_reg_class_for_rename): New static function.
7411         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
7412
7413 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
7414
7415         * cgraph.c (thunk_adjust): Export.
7416         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
7417         * cgraphunit.c (thunk_adjust): Export.
7418         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
7419         thunks.
7420         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
7421         inlinable.
7422         * tree-inline.c (expand_call_inline): Expand thunks inline.
7423
7424 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
7425
7426         PR target/70998
7427         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
7428         (*sse2_vd_cvtss2sd): Ditto.
7429         * config/i386/i386.md
7430         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
7431         Generate *sse2_vd_cvtsd2ss pattern.
7432         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
7433         Generate *sse2_vd_cvtss2sd pattern.
7434
7435 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
7436
7437         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
7438         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
7439         users.
7440
7441 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
7442
7443         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
7444         * config/sh/sh.c: Define and declare variables on first use throughout
7445         the file.
7446         (current_function_interrupt): Change to bool type.
7447         (frame_insn): Rename to emit_frame_insn and update users.
7448         (push_regs): Use bool for 'interrupt_handler' argument.
7449         (save_schedule_s): Remove.
7450         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
7451         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
7452         targetm.asm_out.unaligned_op.di.
7453         (gen_far_branch): Remove redundant forward declaration.
7454         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
7455         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
7456         (sh_set_return_address, sh_function_ok_for_sibcall,
7457         scavenge_reg): Update comments.
7458         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
7459         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
7460         (sh_attr_renesas_p): Remove unnecessary parentheses.
7461         (branch_dest): Simplify.
7462         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
7463         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
7464         (CUMULATIVE_ARGS): Change macro to typedef.
7465         (current_function_interrupt): Change to bool type.
7466         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
7467         Surround with __cplusplus ifdef.
7468         (sh_compare_op0, sh_compare_op1): Remove.
7469         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
7470
7471 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
7472
7473         * config/arm/arm.md: (arch): Add neon.
7474         (arch_enabled): Return yes for arch neon when TARGET_NEON.
7475         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
7476         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
7477         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
7478         attributes for alt renumbering.  Mark alt 3 as non-predicable.
7479         (thumb2_movdf_vfp): Likewise.
7480
7481 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
7482
7483         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
7484         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
7485         (*andqi_1): Add preferred_for_speed attribute to disparage
7486         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
7487         (*<code>qi_1): Ditto.
7488         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
7489         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
7490         (*ashlqi3_1): Ditto.
7491         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
7492         Add preferred_for_size attribute to disparage alternative 0 and
7493         preferred_for_speed attribute to disparage alternative 1 for
7494         TARGET_PARTIAL_REG_STALL targets.
7495
7496 2016-05-07  Tom de Vries  <tom@codesourcery.com>
7497
7498         PR tree-optimization/70956
7499         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
7500         def.
7501
7502 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
7503
7504         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
7505         * config/sh/sh.c (sh_cbranch_distance): Implement it.
7506         * config/sh/sh.md (branch_zero): Remove define_attr.
7507         (define_delay): Disable delay slot if branch distance is one insn.
7508
7509 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7510
7511         * config/i386/i386.md (LEAMODE): New mode attribute.
7512         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
7513         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
7514         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
7515         operand 2 predicate.
7516         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
7517         (*lea<mode>_general_3): Ditto.
7518         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
7519
7520 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
7521
7522         * genmddump.c (main): Convert argv from char ** to const char **.
7523
7524 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7525
7526         * coretypes.h (OVERRIDE): New macro.
7527         (FINAL): New macro.
7528
7529 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
7530
7531         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
7532         allow coalescing if the types are compatible.
7533
7534 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7535
7536         * pass_manager.h (pass_manager::register_pass_name): New method.
7537         (pass_manager::get_pass_by_name): New method.
7538         (pass_manager::create_pass_tab): New method.
7539         (pass_manager::m_name_to_pass_map): New field.
7540         * passes.c (name_to_pass_map): Delete global in favor of field
7541         "m_name_to_pass_map" of pass_manager.
7542         (register_pass_name): Rename from a function to...
7543         (pass_manager::register_pass_name): ...this method, updating
7544         for renaming of global "name_to_pass_map" to field
7545         "m_name_to_pass_map".
7546         (create_pass_tab): Rename from a function to...
7547         (pass_manager::create_pass_tab): ...this method, updating
7548         for renaming of global "name_to_pass_map" to field.
7549         (get_pass_by_name): Rename from a function to...
7550         (pass_manager::get_pass_by_name): ...this method.
7551         (enable_disable_pass): Convert use of get_pass_by_name to
7552         a method call, locating the pass_manager singleton.
7553
7554 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
7555
7556         * genattr-common.c (main): Convert argv from char ** to const char **.
7557         * genattr.c (main): Likewise.
7558         * genattrtab.c (main): Likewise.
7559         * genautomata.c (initiate_automaton_gen): Likewise.
7560         (main): Likewise.
7561         * gencodes.c (main): Likewise.
7562         * genconditions.c (main): Likewise.
7563         * genconfig.c (main): Likewise.
7564         * genconstants.c (main): Likewise.
7565         * genemit.c (main): Likewise.
7566         * genenums.c (main): Likewise.
7567         * genextract.c (main): Likewise.
7568         * genflags.c (main): Likewise.
7569         * genmddeps.c (main): Likewise.
7570         * genopinit.c (main): Likewise.
7571         * genoutput.c (main): Likewise.
7572         * genpeep.c (main): Likewise.
7573         * genpreds.c (main): Likewise.
7574         * genrecog.c (main): Likewise.
7575         * gensupport.c (init_rtx_reader_args_cb): Likewise.
7576         (init_rtx_reader_args): Likewise.
7577         * gensupport.h (init_rtx_reader_args_cb): Likewise.
7578         (init_rtx_reader_args): Likewise.
7579         * gentarget-def.c (main): Likewise.
7580         * read-md.c (read_md_files): Likewise.
7581         * read-md.h (read_md_files): Likewise.
7582
7583 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7584
7585         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
7586         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
7587         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
7588         Remove unused predicate.
7589         (register_and_not_fp_reg_operand): Ditto.
7590
7591 2016-05-06  Martin Liska  <mliska@suse.cz>
7592
7593         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
7594         instead of vec as the vector is local to the function.
7595
7596 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
7597
7598         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
7599         avx512bw alternative.
7600
7601         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
7602         before the ashr<mode>3 pattern.
7603
7604         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
7605         v instead of x in vex or maybe_vex alternatives, use
7606         maybe_evex instead of vex in prefix.
7607
7608         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
7609         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
7610         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
7611         in vex or maybe_vex alternatives, use maybe_evex instead of vex
7612         in prefix.
7613
7614         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
7615         v instead of x in vex or maybe_vex alternatives, use
7616         maybe_evex instead of vex in prefix.
7617
7618         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
7619         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
7620         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
7621         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
7622         alternatives, use maybe_evex instead of vex in prefix.
7623
7624         * config/i386/sse.md (vec_interleave_lowv4sf,
7625         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
7626         v instead of x in vex or maybe_vex alternatives, use
7627         maybe_evex instead of vex in prefix.
7628
7629         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
7630         v instead of x in vex or maybe_vex alternatives, use
7631         maybe_evex instead of vex in prefix.
7632
7633         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
7634         v constraint instead of x.
7635
7636 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
7637
7638         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
7639         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
7640         equality first.
7641
7642 2016-05-06  Richard Biener  <rguenther@suse.de>
7643
7644         PR tree-optimization/70948
7645         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7646         Properly clobber all fields of va_list for __builtin_va_start.
7647
7648 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
7649
7650         PR debug/70935
7651         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
7652         loop latch destination.
7653
7654 2016-05-06  Martin Liska  <mliska@suse.cz>
7655
7656         * tree-ssa-uninit.c: Apply manual changes
7657         to the GNU coding style.
7658         (prune_uninit_phi_opnds): Rename from
7659         prune_uninit_phi_opnds_in_unrealizable_paths.
7660
7661 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7662
7663         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
7664         mspace): Remove deprecated options.
7665         * doc/invoke.texi (SH options): Remove -mspace.
7666
7667 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7668
7669         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
7670
7671 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7672
7673         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
7674         corresponding combine split pattern.
7675
7676 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7677
7678         PR target/58219
7679         * config/sh/predicates.md (long_displacement_mem_operand): New.
7680         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
7681         Add movi20, movi20s alternatives.  Adjust length attribute for
7682         alternatives.
7683         (movsi_ie): Allow for any FPU.  Adjust length attribute for
7684         alternatives.
7685         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
7686         attribute for alternatives.
7687         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
7688         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
7689         length attribute for alternatives.
7690
7691 2016-05-06  Richard Biener  <rguenther@suse.de>
7692
7693         PR tree-optimization/70960
7694         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
7695
7696 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7697
7698         PR target/52933
7699         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
7700         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
7701
7702 2016-05-06  Marek Polacek  <polacek@redhat.com>
7703
7704         PR sanitizer/70875
7705         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
7706
7707 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
7708
7709         PR target/54089
7710         * config/sh/sh.md (*rotcr): Add another variant.
7711
7712 2016-05-06  Richard Biener  <rguenther@suse.de>
7713
7714         PR middle-end/70931
7715         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
7716
7717 2016-05-06  Richard Biener  <rguenther@suse.de>
7718
7719         PR middle-end/70941
7720         * fold-const.c (split_tree): Always convert to the original type
7721         before negating.
7722
7723 2016-05-06  Richard Biener  <rguenther@suse.de>
7724
7725         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
7726         (fwprop_addr): Likewise.
7727
7728 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
7729
7730         PR target/70873
7731         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
7732         New prototype.
7733         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
7734         * config/i386/i386.md (push mem splitter): Use find_constant_src in
7735         the splitter condition.
7736         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
7737         the splitter condition.
7738         (FP float_extend load splitter): Ditto.
7739
7740 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
7741
7742         * config/i386/i386.md (peehole2 patterns): Change true_regnum
7743         to REGNO in all peephole2 patterns.
7744         (post-reload splitters): Change true_regnum to REGNO in
7745         post-reload splitters.
7746         (zero_extend splitters): Use general_reg_operand and
7747         nonimmediate_gr_operand predicates.
7748
7749 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
7750
7751         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
7752         v constraint instead of x.
7753
7754 2016-05-05  Alan Modra  <amodra@gmail.com>
7755
7756         PR target/68662
7757         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
7758         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
7759         TARGET_NO_FP_IN_TOC for -mrelocatable.
7760         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
7761         TARGET_RELOCATABLE test.
7762         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7763         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7764         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7765         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7766         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7767         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
7768         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7769         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7770         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
7771         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
7772         Likewise.
7773         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
7774         (rs6000_stack_info): Likewise.
7775         (rs6000_elf_asm_out_constructor): Likewise.
7776         (rs6000_elf_asm_out_destructor): Likewise.
7777         (rs6000_elf_declare_function_name): Likewise.
7778         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
7779         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
7780         Don't define.
7781
7782 2016-05-05  Alan Modra  <amodra@gmail.com>
7783
7784         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
7785
7786 2016-05-05  Alan Modra  <amodra@gmail.com>
7787
7788         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
7789         out-of-line gpr restore for one or two regs if that would add
7790         a save of lr.
7791
7792 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
7793
7794         PR target/70873
7795         * config/i386/i386.md
7796         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
7797         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
7798         as operand 0 predicate.
7799         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
7800         Ditto.
7801         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
7802         Ditto.  Emit the pattern using RTX.
7803
7804         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
7805         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
7806         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
7807         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
7808         Ditto.
7809         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
7810         sse_reg_operand as operand 0 predicate.
7811
7812         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
7813         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
7814         instead of gen_rtx_REG.
7815         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
7816         Ditto.
7817
7818 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7819
7820         * function.c (emit_use_return_register_into_block): Delete.
7821         (gen_return_pattern): Delete.
7822         (emit_return_into_block): Delete.
7823         (active_insn_between): Delete.
7824         (convert_jumps_to_returns): Delete.
7825         (emit_return_for_exit): Delete.
7826         (thread_prologue_and_epilogue_insns): Delete all code dealing with
7827         simple_return for shrink-wrapped blocks.
7828         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
7829         end of blocks that need one.
7830         (get_unconverted_simple_return): Delete.
7831         (convert_to_simple_return): Delete.
7832         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
7833         (convert_to_simple_return): Ditto.
7834
7835 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7836
7837         * cfgcleanup.c (bb_is_just_return): New function.
7838         (try_optimize_cfg): Simplify jumps to return, branches to return,
7839         and branches around return.
7840
7841 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
7842
7843         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
7844         branch to a return.
7845
7846 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
7847
7848         PR c++/70906
7849         PR c++/70933
7850         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
7851         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
7852         assert flags & OEP_HASH_CHECK, instead of asserting it
7853         never happens.  Handle TARGET_EXPR.
7854         * fold-const.c (operand_equal_p): For hash verification,
7855         or in OEP_HASH_CHECK into flags.
7856
7857 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7858
7859         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
7860         comment.
7861         (compute_samebase_partition_bases): Fix typo.
7862
7863 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
7864
7865         * config/i386/sse.md (vec_interleave_highv8sf,
7866         vec_interleave_lowv8sf, vec_interleave_highv4df,
7867         vec_interleave_lowv4df): Remove constraints from expanders.
7868
7869         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
7870
7871 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
7872
7873         * tree-inline.c (expand_call_inline): Fix path dealing with
7874         making lhs of call statement undefined.
7875
7876 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
7877
7878         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
7879         Check availability on NODE, too.
7880         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
7881         (cgraph_node::call_for_symbol_and_aliases): Likewise.
7882         (varpool_node::call_for_symbol_and_aliase): Likewise.
7883         * ipa-pure-const.c (add_new_function): Analyze all bodies.
7884         (propagate_pure_const): Propagate across interposable functions, too.
7885         (skip_function_for_local_pure_const): Do not skip interposable bodies
7886         with aliases.
7887         (pass_local_pure_const::execute): Update.
7888
7889 2016-05-04  Marek Polacek  <polacek@redhat.com>
7890
7891         * doc/invoke.texi: Document -Wdangling-else.
7892
7893 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7894
7895         * config.gcc: Error out when conflicting multilib is detected.  Do not
7896         loop over multilibs since no combination is legal.
7897
7898 2016-05-04  Alan Modra  <amodra@gmail.com>
7899
7900         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
7901         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
7902         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
7903         Align .toc.
7904
7905 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
7906
7907         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
7908         Clean up p5600 comments.
7909
7910 2016-05-04  Richard Biener  <rguenther@suse.de>
7911
7912         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
7913         constructor simplifications.
7914         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
7915
7916 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
7917
7918         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
7919         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
7920         result.set_rtx is null instead of aborting.
7921         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
7922         Always enable.
7923         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
7924         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
7925         *mov<mode>_store_postinc): New patterns.
7926
7927 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
7928
7929         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
7930         as commutative.  Check both conversions are NOP.
7931         ((A & B) OP (C & B)): Remove.
7932
7933 2016-05-04  Alan Modra  <amodra@gmail.com>
7934
7935         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
7936
7937 2016-05-04  Alan Modra  <amodra@gmail.com>
7938
7939         PR target/70866
7940         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
7941         when cr2,3,4 are all fixed regs.
7942
7943 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
7944
7945         PR rtl-optimization/57193
7946         * opts.c (default_options_table): Revert OPT_frename_registers change.
7947         * doc/invoke.texi (-frename-registers, -O2): Likewise.
7948
7949 2016-05-03  Martin Sebor  <msebor@redhat.com>
7950
7951         PR c++/66561
7952         * builtins.c (fold_builtin_FILE): New function.
7953         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
7954         (fold_builtin_0): Call them.
7955         * gimplify.c (gimplify_call_expr): Remove the handling of
7956         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
7957
7958         PR c++/66561
7959         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
7960         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
7961         constants.
7962
7963         PR c++/66639
7964         * doc/extend.texi (Function Names as Strings): Update __func__,
7965         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
7966         constants.
7967
7968 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
7969             Richard Biener  <rguenther@suse.de>
7970
7971         PR tree-optimization/70916
7972         * tree-if-conv.c: Include cfganal.h.
7973         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
7974         and remove_fake_exit_edges around the optimization pass.
7975
7976 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
7977
7978         * cgraph.c (symbol_table::create_edge): Set inline_failed.
7979         (cgraph_edge::make_direct): Likewise.
7980         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
7981         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
7982         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
7983         (CIF_THUNK): New code.
7984         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
7985         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
7986         (compute_inline_parameters): Set inline_failed for thunks.
7987         (inline_analyze_function): Cleanup.
7988         * ipa-inline.c (can_inline_edge_p): Do not deal with
7989         call_stmt_cannot_inline_p.
7990         (can_early_inline_edge_p): Likewise.
7991         (early_inliner): Initialize inline_failed.
7992         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
7993
7994 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
7995
7996         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
7997         from nonimm_ssenomem_operand.
7998         (nonimm_ssenomem_operand): New predicate.
7999         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
8000         as operand 0 predicate.
8001         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
8002         Disable unsupported alternatives using "enabled" attribute.
8003         Use register_ssemem_operand as operand 0 predicate.
8004         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
8005
8006 2016-05-03  Marek Polacek  <polacek@redhat.com>
8007
8008         PR c/70859
8009         * input.c (expansion_point_location): New function.
8010         * input.h (expansion_point_location): Declare.
8011
8012 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
8013
8014         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
8015         occurence with frame_offset_ ones.
8016
8017 2016-05-03  Alan Modra  <amodra@gmail.com>
8018
8019         PR rtl-optimization/70890
8020         * ira.c (combine_and_move_insns): When moving def_insn, remove
8021         equivs on use_insn.
8022
8023 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8024
8025         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
8026         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
8027         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
8028         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
8029
8030 2016-05-03  Alan Modra  <amodra@gmail.com>
8031
8032         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
8033         for SAVE_MULTIPLE/STORE_MULTIPLE.
8034
8035 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
8036
8037         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
8038         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
8039
8040 2016-05-03  Richard Biener  <rguenther@suse.de>
8041
8042         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
8043         default true.
8044         (gimplify_arg): Likewise.
8045         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
8046         re-writing the result to a decl if required.
8047         (internal_get_tmp_var): Add allow_ssa parameter
8048         and override into_ssa with it.
8049         (get_formal_tmp_var): Adjust.
8050         (get_initialized_tmp_var): Add allow_ssa parameter.
8051         (gimplify_arg): Add allow_ssa parameter and avoid generating
8052         SSA names for the result false.
8053         (gimplify_call_expr): If the call may return twice do not
8054         gimplify parameters into SSA.
8055         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
8056         (gimplify_modify_expr): Adjust assert.  For noreturn calls
8057         with a SSA name LHS adjust its def.
8058         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
8059         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
8060         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
8061         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
8062         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
8063         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
8064         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
8065         (optimize_target_teams): Do not allow SSA names for clause operands.
8066         (gimplify_expr): Likewise for where we mark the result addressable.
8067         * passes.def (pass_init_datastructures): Remove.
8068         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
8069         (rewrite_stmt): Likewise.
8070         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
8071         (replace_locals_op): Replace SSA names.
8072         (copy_gimple_seq_and_replace_locals): Init src_cfun.
8073         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
8074         * cgraph.c (release_function_body): Free CFG annotations only
8075         when we have a CFG.  Simplify.
8076         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
8077         force_gimple_operand instead of get_initialized_tmp_var.
8078         * tree-pass.h (make_pass_init_datastructures): Remove.
8079         * tree-ssa.c (execute_init_datastructures): Remove.
8080         (pass_data_init_datastructures): Likewise.
8081         (class pass_init_datastructures): Likewise.
8082         (make_pass_init_datastructures): Likewise.
8083         * omp-low.c (create_omp_child_function): Init SSA data structures.
8084         (grid_expand_target_grid_body): Likewise.
8085         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
8086         name before adding it to names_to_release.
8087         (remove_bb): Always release SSA defs.
8088         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
8089         before dereferencing it.
8090         * cgraphunit.c (init_lowered_empty_function): Always
8091         int SSA data structures.
8092         * tree-ssanames.c (release_defs): Remove assert that we are in
8093         SSA form.
8094         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
8095
8096 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
8097             Uros Bizjak  <ubizjak@gmail.com>
8098
8099         PR rtl-optimization/70467
8100         * config/i386/predicates.md (x86_64_hilo_int_operand,
8101         x86_64_hilo_general_operand): New predicates.
8102         * config/i386/constraints.md (Wd): New constraint.
8103         * config/i386/i386.md (mode attr di): Use Wd instead of e.
8104         (general_hilo_operand): New mode attr.
8105         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
8106         instead of <general_operand>.
8107         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
8108         x86_64_hilo_general_operand instead of <general_operand>.
8109
8110 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
8111
8112         PR tree-optimization/70916
8113         * tree-if-conv.c (constant_or_ssa_name): Removed.
8114         (fold_build_cond_expr): Use is_gimple_val instead of
8115         constant_or_ssa_name.
8116
8117         PR tree-optimization/70916
8118         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
8119         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
8120
8121         PR target/49244
8122         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
8123         (optimize_atomic_bit_test_and): New function.
8124         (pass_fold_builtins::execute): Use it.
8125         * optabs.def (atomic_bit_test_and_set_optab,
8126         atomic_bit_test_and_complement_optab,
8127         atomic_bit_test_and_reset_optab): New optabs.
8128         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
8129         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
8130         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
8131         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
8132         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
8133         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
8134         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
8135         * doc/md.texi (atomic_bit_test_and_set@var{mode},
8136         atomic_bit_test_and_complement@var{mode},
8137         atomic_bit_test_and_reset@var{mode}): Document.
8138         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
8139         atomic_bit_test_and_complement<mode>,
8140         atomic_bit_test_and_reset<mode>): New expanders.
8141         (atomic_bit_test_and_set<mode>_1,
8142         atomic_bit_test_and_complement<mode>_1,
8143         atomic_bit_test_and_reset<mode>_1): New insns.
8144
8145 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
8146
8147         PR rtl-optimization/70687
8148         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
8149         instead of unsigned HOST_WIDE_INT.
8150
8151 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
8152
8153         PR rtl-optimization/44281
8154         * hard-reg-set.h (struct target_hard_regs): New field
8155         x_fixed_nonglobal_reg_set.
8156         (fixed_nonglobal_reg_set): New macro.
8157         * reginfo.c (init_reg_sets_1): Initialize it.
8158         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
8159         of fixed_reg_set.
8160         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
8161
8162 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
8163
8164         PR tree-optimization/56541
8165         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
8166         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
8167         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
8168         (any_complicated_phi): new static variable.
8169         (aggressive_if_conv): delete.
8170         (if_convertible_phi_p): support phis with more than two arguments.
8171         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
8172         critical pred edges.
8173         (ifcvt_split_critical_edges): support phis with more than two
8174         arguments by checking new parameter.  only split critical edges
8175         if needed.
8176         (tree_if_conversion): handle simd pragma marked loop using new
8177         local variable aggressive_if_conv.  check any_complicated_phi.
8178
8179 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
8180
8181         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
8182         before using it.
8183
8184 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
8185
8186         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
8187         cbase.
8188
8189 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
8190
8191         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
8192         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
8193         define_insn_and_split.
8194         (mulsi3_i): New define_insn_and_split.
8195         (mulsi3_call): Convert to define_insn.
8196         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
8197         Remove constraints.
8198
8199 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
8200
8201         * machmode.h (mode_complex): Add support to give the complex mode
8202         for a given mode.
8203         (GET_MODE_COMPLEX_MODE): Likewise.
8204         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
8205         stored by build_complex_type and gfc_build_complex_type instead of
8206         trying to figure out the appropriate mode based on the size. Raise
8207         an assertion error, if the type was not set.
8208         * genmodes.c (struct mode_data): Add field for the complex type of
8209         the given type.
8210         (blank_mode): Likewise.
8211         (make_complex_modes): Remember the complex mode created in the
8212         base type.
8213         (emit_mode_complex): Write out the mode_complex array to map a
8214         type mode to the complex version.
8215         (emit_insn_modes_c): Likewise.
8216         * tree.c (build_complex_type): Set the complex type to use before
8217         calling layout_type.
8218         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
8219         support for __float128 complex datatypes.
8220         (rs6000_hard_regno_mode_ok): Likewise.
8221         (rs6000_setup_reg_addr_masks): Likewise.
8222         (rs6000_complex_function_value): Likewise.
8223         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
8224         __float128 and __ibm128 complex.
8225         (FLOAT128_IBM_P): Likewise.
8226         (ALTIVEC_ARG_MAX_RETURN): Likewise.
8227         * doc/extend.texi (Additional Floating Types): Document that
8228         -mfloat128 must be used to enable __float128.  Document complex
8229         __float128 and __ibm128 support.
8230
8231 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
8232
8233         PR target/49244
8234         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
8235         char/short arguments promoted to int because of promote_prototypes.
8236
8237 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
8238
8239         * config/i386/predicates.md (register_ssemem_operand): New predicate.
8240         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
8241         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
8242         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
8243         alternatives using "enabled" attribute.  Use register_ssemem_operand
8244         as operand 1 predicate.
8245         (*cmpi<unord>xf_i387): Split XFmode pattern from
8246         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
8247         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
8248         *absneg<mode>2_i387.  Disable unsupported alternatives using
8249         "enabled" attribute.
8250         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
8251
8252 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
8253
8254         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
8255         marker.
8256         (oacc_loop_process): Check mask for loop termination.
8257
8258 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
8259
8260         * cif-code.def (CIF_THUNK): Add.
8261         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
8262         accidental change.
8263
8264 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
8265
8266         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
8267         (dump_inline_summary): Dump it.
8268         (fp_expression_p): New predicate.
8269         (estimate_function_body_sizes): Use it.
8270         (inline_merge_summary): Merge fp_expressions.
8271         (inline_read_section): Read fp_expressions.
8272         (inline_write_summary): Write fp_expressions.
8273         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
8274         codegen boundary if either caller or callee is !fp_expressions.
8275         * ipa-inline.h (inline_summary): Add fp_expressions.
8276         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
8277         to fp_expressions be sure the fp generation flags are updated.
8278
8279 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
8280
8281         PR rtl-optimization/70467
8282         * cse.c (cse_insn): Handle no-op MEM moves after folding.
8283
8284         PR rtl-optimization/70467
8285         * ipa-pure-const.c (check_call): Handle internal calls even in
8286         ipa mode like in local mode.
8287
8288 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8289
8290         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
8291
8292 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
8293
8294         * match.pd (X u< X, X u> X): New transformations.
8295
8296 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
8297
8298         * flag-types.h (enum warn_strict_overflow_code): Move ...
8299         * coretypes.h: ... here.
8300         * fold-const.h (fold_overflow_warning): Declare.
8301         * fold-const.c (fold_overflow_warning): Make non-static.
8302         (fold_comparison): Move the transformation of X +- C1 CMP C2
8303         into X CMP C2 -+ C1 ...
8304         * match.pd: ... here.
8305         * gimple-fold.c (fold_stmt_1): Protect with
8306         fold_defer_overflow_warnings.
8307
8308 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
8309
8310         * omp-low.c (struct oacc_loop): Add 'inner' field.
8311         (new_oacc_loop_raw): Initialize it to zero.
8312         (oacc_loop_fixed_partitions): Initialize it.
8313         (oacc_loop_auto_partitions): Partition outermost loop to outermost
8314         available partitioning.
8315
8316 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8317
8318         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
8319         register_operand.
8320         (umulsidi3): Likewise.
8321         (indirect_jump): Fix jump instruction assembly patterns.
8322
8323 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
8324
8325         PR target/70860
8326         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
8327         (nvptx_function_value): Assert non-NULL cfun.
8328
8329 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
8330
8331         PR rtl-optimization/70886
8332         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
8333
8334         * cselib.h (rtx_equal_for_cselib_1): Declare.
8335         (rtx_equal_for_cselib_p: New inline function.
8336         * cselib.c (rtx_equal_for_cselib_p): Delete.
8337         (rtx_equal_for_cselib_1): Make public.
8338
8339 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
8340
8341         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
8342         (register_mixssei387nonimm_operand): Remove predicate.
8343         * config/i386/i386.md (*fop_<mode>_comm): Merge from
8344         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
8345         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
8346         for TARGET_MIX_SSE_I387 alternatives.
8347         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
8348         Disable unsupported alternatives using "enabled" attribute.  Use
8349         nonimm_ssenomem_operand as operand 1 predicate.  Also check
8350         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
8351
8352 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8353
8354         * tree.c (cst_and_fits_in_hwi): Simplify.
8355
8356 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8357
8358         * tree.h (wi::to_wide): New function.
8359         * expr.c (expand_expr_real_1): Use wi::to_wide.
8360         * fold-const.c (int_const_binop_1): Likewise.
8361         (extract_muldiv_1): Likewise.
8362
8363 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8364
8365         * wide-int.h: Update offset_int and widest_int documentation.
8366         (WI_SIGNED_SHIFT_RESULT): New macro.
8367         (wi::binary_shift): Define signed_shift_result_type for
8368         shifts on offset_int- and widest_int-like types.
8369         (generic_wide_int): Support <<= and >>= if << and >> are supported.
8370         * tree.h (int_bit_position): Use shift operators instead of wi::
8371          shifts.
8372         * alias.c (adjust_offset_for_component_ref): Likewise.
8373         * expr.c (get_inner_reference): Likewise.
8374         * fold-const.c (fold_comparison): Likewise.
8375         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
8376         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
8377         * tree-dfa.c (get_ref_base_and_extent): Likewise.
8378         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
8379         (stmt_kills_ref_p): Likewise.
8380         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
8381         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
8382         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8383         (ao_ref_init_from_vn_reference): Likewise.
8384
8385 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
8386
8387         * wide-int.h: Update offset_int and widest_int documentation.
8388         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
8389         (wi::binary_traits): Allow ordered comparisons between offset_int and
8390         offset_int, between widest_int and widest_int, and between either
8391         of these types and basic C types.
8392         (operator <, <=, >, >=): Define for the same combinations.
8393         * tree.h (tree_int_cst_lt): Use comparison operators instead
8394         of wi:: comparisons.
8395         (tree_int_cst_le): Likewise.
8396         * gimple-fold.c (fold_array_ctor_reference): Likewise.
8397         (fold_nonarray_ctor_reference): Likewise.
8398         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
8399         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
8400         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
8401         * tree-sra.c (completely_scalarize): Likewise.
8402         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
8403         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
8404         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
8405         (check_for_binary_op_overflow): Likewise.
8406         (search_for_addr_array): Likewise.
8407         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
8408
8409 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8410
8411         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
8412         (arc_save_restore): Likewise.
8413         (arc_dwarf_register_span): Likewise.
8414         (arc_output_pic_addr_const): Initialize suffix variable.
8415
8416 2016-05-02  Martin Liska  <mliska@suse.cz>
8417
8418         * symbol-summary.h (function_summary::function_summary):
8419         Remove checking assert for all cgraph nodes.
8420         (function_summary::get): Check summary_uid.
8421         (symtab_insertion): Check summary_uid.
8422
8423 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
8424
8425         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
8426         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
8427         bmaskn instruction.
8428         (arc_dwarf_register_span): Remove enum keyword.
8429         (compact_memory_operand_p): New function.
8430         * config/arc/arc.h (reg_class): Add code density register classes.
8431         (REG_CLASS_NAMES): Likewise.
8432         (REG_CLASS_CONTENTS): Likewise.
8433         * config/arc/arc.md (*movqi_insn): Add code density instructions.
8434         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
8435         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
8436         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
8437         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
8438         constraints.
8439         (h, Rcd, Rsd, Rzd): New register constraints.
8440         (T): Use compact_memory_operand_p function.
8441         * config/arc/predicates.md (compact_load_memory_operand): Remove.
8442
8443 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
8444
8445         * config/sh/sh.md (*negnegt, *movtt): Remove.
8446
8447 2016-05-02  Marek Polacek  <polacek@redhat.com>
8448             Tom de Vries  <tom@codesourcery.com>
8449
8450         PR tree-optimization/70700
8451         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
8452         bigger than FIRST_REF_NODE.
8453
8454 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
8455
8456         PR target/52898
8457         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
8458         TARGET_CMPEQDI_T.
8459         (prepare_cbranch_operands): Don't use scratch register.  Assume that
8460         function is used when pseudos can be created.
8461         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
8462         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
8463         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
8464         define_expand.  Allow it only when pseudos can be created.
8465         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
8466
8467 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
8468
8469         * config/i386/constraints.md (BC): Only allow -1 operands.
8470         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
8471         Add "enabled" attribute.  Update XI mode attribute calculation.
8472         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
8473         (*movoi_internal_avx): Update XI mode attribute calculation.
8474         (*movti_internal): Ditto.
8475
8476 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8477
8478         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
8479         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
8480
8481 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
8482
8483         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
8484         statement on instruction code.  Remove trailing spaces.
8485         (altivec_expand_stv_builtin): Likewise.
8486
8487 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8488
8489         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
8490         (TARGET_FPU_DOUBLE): Simplify.
8491         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
8492         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
8493         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
8494         with 'TARGET_FPU_DOUBLE'.
8495         * config/sh/sh.md: Likewise.
8496
8497 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
8498
8499         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
8500         SH_DIV_STR_FOR_SIZE): Remove.
8501         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
8502         SH_DIV_STR_FOR_SIZE): Remove.
8503
8504 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
8505
8506         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
8507         logical_reg_operand): Delete.
8508         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
8509         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
8510         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
8511         match_operand and match_test.
8512         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
8513         variables on their first use.  Return bool values.
8514         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
8515         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
8516         arith_reg_operand for input operand.  Remove empty constraints.
8517         (xorsi3): Delete.
8518         (*xorsi3_compact): Rename to xorsi3.
8519         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
8520         (*zero_extend<mode>si2_disp_mem): Update comment.
8521         (mov_nop): Delete.
8522
8523 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
8524
8525         * config/sh/t-sh: Remove SH5 support.
8526         * config.gcc: Likewise.
8527         * configure: Likewise.
8528
8529 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8530
8531         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
8532
8533 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
8534
8535         * config/sh/sh.c (register_sh_passes, sh_option_override,
8536         sh_print_operand, prepare_move_operands,
8537         sh_can_follow_jump): Remove TARGET_SH1 checks.
8538         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
8539         PROMOTE_MODE): Likewise.
8540         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
8541         movdi): Likewise.
8542
8543 2016-04-30  Alan Modra  <amodra@gmail.com>
8544
8545         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
8546         restoring when fixed_reg_p, but allow out-of-line or stmw save.
8547         Check for user regs later to avoid unnecessary looping over regs.
8548         Merge user reg check with non-saved reg check.  Don't force
8549         inline VR restore when static chain used.
8550         (rs6000_frame_related): Omit eh_frame info for user regs when
8551         saving.
8552         (fixed_regs_p): Delete.
8553
8554 2016-04-30  Alan Modra  <amodra@gmail.com>
8555
8556         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
8557         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
8558         Update all uses.
8559
8560 2016-04-30  Alan Modra  <amodra@gmail.com>
8561
8562         PR target/69645
8563         * config/rs6000/rs6000.c (fixed_reg_p): New function.
8564         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
8565         Update all uses.
8566
8567 2016-04-30  Alan Modra  <amodra@gmail.com>
8568
8569         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
8570         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
8571         flag_pic test for Darwin.
8572
8573 2016-04-30  Alan Modra  <amodra@gmail.com>
8574
8575         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
8576         throw_calls_crossed.
8577         (REG_FREQ_CALLS_CROSSED): Delete.
8578         (REG_N_THROWING_CALLS_CROSSED): Delete.
8579         * regstat.c (regstat_bb_compute_ri): Don't calculate
8580         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
8581         (dump_reg_info): Don't print call cross frequency.
8582         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
8583         and REG_N_THROWING_CALLS_CROSSED.
8584
8585 2016-04-30  Alan Modra  <amodra@gmail.com>
8586
8587         * regs.h (struct reg_info_t): Delete live_length.
8588         (REG_LIVE_LENGTH): Delete macro.
8589         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
8590         local_live, local_processed and local_live_last_luid params.
8591         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
8592         Formatting fixes.
8593         (regstat_compute_ri): Adjust for above.  Don't set
8594         REG_LIVE_LENGTH.
8595         (dump_reg_info): Don't print live length.
8596         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
8597         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
8598         Localize loop_depth var.
8599
8600 2016-04-30  Alan Modra  <amodra@gmail.com>
8601
8602         * ira.c (enum valid_equiv): New.
8603         (validate_equiv_mem): Return enum.
8604         (update_equiv_mem): Create replacement in more cases.
8605         (add_store_equivs): Update validate_equiv_mem call.
8606
8607 2016-04-30  Alan Modra  <amodra@gmail.com>
8608
8609         * ira.c (combine_and_move_insns): Rather than scanning insns,
8610         use DF infrastucture to find use and def insns.
8611
8612 2016-04-30  Alan Modra  <amodra@gmail.com>
8613
8614         ira.c (combine_and_move_insns): Move invariant conditions..
8615         (ira.c): ..to here.  Call combine_and_move_insns before
8616         add_store_equivs.  Call grow_reg_equivs later.  Allocate
8617         req_equiv later using max_reg_num() rather than global max_regno.
8618         (contains_replace_regs): Delete.
8619         (add_store_equivs): Remove contains_replace_regs test.
8620
8621 2016-04-30  Alan Modra  <amodra@gmail.com>
8622
8623         * ira.c (struct equiv_mem_data): New.
8624         (equiv_mem, equiv_mem_modified): Delete static vars.
8625         (validate_equiv_mem_from_store): Use "data" param to communicate..
8626         (validate_equiv_mem): ..from here.
8627
8628 2016-04-30  Alan Modra  <amodra@gmail.com>
8629
8630         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
8631         split out from..
8632         (update_reg_equivs): ..here.  Move allocation and freeing of
8633         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
8634         end_alias_analysis to..
8635         (ira): ..here.
8636
8637 2016-04-30  Alan Modra  <amodra@gmail.com>
8638
8639         * ira.c (pdx_subregs): Delete.
8640         (struct equivalence): Add pdx_subregs field.
8641         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
8642         pdx_subregs access.
8643         (update_equiv_regs): Don't create or free pdx_subregs.  Update
8644         pdx_subregs access.
8645
8646 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8647
8648         * config/rs6000/altivec.h: Change definitions of vec_xl and
8649         vec_xst.
8650         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
8651         (LD_ELEMREV_V2DI): New.
8652         (LD_ELEMREV_V4SF): New.
8653         (LD_ELEMREV_V4SI): New.
8654         (LD_ELEMREV_V8HI): New.
8655         (LD_ELEMREV_V16QI): New.
8656         (ST_ELEMREV_V2DF): New.
8657         (ST_ELEMREV_V2DI): New.
8658         (ST_ELEMREV_V4SF): New.
8659         (ST_ELEMREV_V4SI): New.
8660         (ST_ELEMREV_V8HI): New.
8661         (ST_ELEMREV_V16QI): New.
8662         (XL): New.
8663         (XST): New.
8664         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8665         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
8666         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
8667         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
8668         (altivec_expand_builtin): Add handling for
8669         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
8670         (rs6000_invalid_builtin): Add error-checking for
8671         RS6000_BTM_P9_VECTOR.
8672         (altivec_init_builtins): Define builtins used to implement vec_xl
8673         and vec_xst.
8674         (rs6000_builtin_mask_names): Define power9-vector.
8675         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
8676         (RS6000_BTM_P9_VECTOR): Define.
8677         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
8678         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
8679         (vsx_ld_elemrev_v2df): Likewise.
8680         (vsx_ld_elemrev_v4sf): Likewise.
8681         (vsx_ld_elemrev_v4si): Likewise.
8682         (vsx_ld_elemrev_v8hi): Likewise.
8683         (vsx_ld_elemrev_v16qi): Likewise.
8684         (vsx_st_elemrev_v2df): Likewise.
8685         (vsx_st_elemrev_v2di): Likewise.
8686         (vsx_st_elemrev_v4sf): Likewise.
8687         (vsx_st_elemrev_v4si): Likewise.
8688         (vsx_st_elemrev_v8hi): Likewise.
8689         (vsx_st_elemrev_v16qi): Likewise.
8690         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
8691         grammar.
8692
8693 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
8694
8695         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
8696         out into ...
8697         (simplify_control_stmt_condition_1): ... here.  Recurse into
8698         BIT_AND_EXPRs and BIT_IOR_EXPRs.
8699
8700 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
8701
8702         PR target/69810
8703         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
8704         (zero_extendqi<mode>2_dot): Revert earlier conversion from
8705         define_insn_and_split to define_insn.
8706         (zero_extendqi<mode>2_dot2): Same.
8707         (extendqi<mode>2_dot): Same.
8708         (extendqi<mode>2_dot2): Same.
8709
8710 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8711
8712         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
8713         (probe_stack): New expander.
8714         (probe_stack_<mode>): New insn pattern.
8715
8716 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8717
8718         * config/i386/i386.md
8719         (operations with memory inputs setting flags peephole2):
8720         Remove uneeded REG_P checks.  Cleanup pattern generation.
8721
8722 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
8723
8724         * tree-vect-loop.c (vect_transform_loop): Fix
8725         nb_iterations_upper_bound computation for vectorized loop.
8726
8727 2016-04-29  Marek Polacek  <polacek@redhat.com>
8728             Jakub Jelinek  <jakub@redhat.com>
8729
8730         PR sanitizer/70342
8731         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
8732         TARGET_EXPR_SLOT as a base.
8733
8734 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
8735
8736         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
8737         with 'rCm2' constraints to limit possible immediate size.
8738         (*load_zeroextendqisi_update): Likewise.
8739         (*load_signextendqisi_update): Likewise.
8740         (*loadhi_update): Likewise.
8741         (*load_zeroextendhisi_update): Likewise.
8742         (*load_signextendhisi_update): Likewise.
8743         (*loadsi_update): Likewise.
8744         (*loadsf_update): Likewise.
8745
8746 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8747
8748         * config/i386/predicates.md (constm1_operand): Fix comparison.
8749
8750 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
8751
8752         * testsuite/gcc.target/arc/ieee_eq.c: New test.
8753
8754 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
8755
8756         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
8757         remaining SH5 related settings.
8758         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
8759         shmedia_prepare_call_address): Delete.
8760         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
8761         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
8762         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
8763         UNSUPPORTED_SH2A): Remove m5 checks.
8764         (sh_divide_strategy_e): Remove SH5 division strategies.
8765         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
8766         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
8767
8768 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8769
8770         * config/s390/s390.c (s390_rtx_costs): Update documentation.
8771
8772 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8773
8774         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
8775         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
8776         Change lder to ldr.
8777         * config/s390/vector.md ("mov<mode>"): Likewise.
8778
8779 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
8780
8781         * config/s390/constraints.md ("U", "W"): Invoke
8782         s390_mem_constraint with "ZR" and "ZT".
8783         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
8784         addresses when using LRA.  Accept also short displacements for S
8785         and T constraints.  Do not check for long displacement target for
8786         S and T constraints.
8787         (s390_mem_constraint): Remove handling of U and W constraints.
8788         * config/s390/s390.md (various patterns): Remove the short
8789         displacement constraints (Q and R) if a long displacement
8790         constraint is present.  Add longdisp as required CPU capability.
8791         * config/s390/vector.md: Likewise.
8792         * config/s390/vx-builtins.md: Likewise.
8793
8794 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8795
8796         PR target/60040
8797         * reload1.c (reload): Call finish_spills before
8798         restarting reload loop. Skip select_reload_regs
8799         if update_eliminables_and_spill returns true.
8800
8801 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
8802
8803         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
8804         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
8805         (umulhisi3_imm): Update predicates and constraint letters.
8806         (umulhisi3_reg): Declare instruction as commutative.
8807         * config/arc/constraints.md (J12, J16): New constraints.
8808         * config/arc/predicates.md (short_unsigned_const_operand): New
8809         predicate.
8810         (arc_short_operand): Likewise.
8811         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
8812
8813 2016-04-29  Richard Biener  <rguenther@suse.de>
8814
8815         PR tree-optimization/13962
8816         PR tree-optimization/65686
8817         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
8818         * tree-ssa-alias.c (ptrs_compare_unequal): New function
8819         using PTA to compare pointers.
8820         * match.pd: Add pattern for pointer equality compare simplification
8821         using ptrs_compare_unequal.
8822
8823 2016-04-29  Richard Biener  <rguenther@suse.de>
8824
8825         * stor-layout.c (layout_type): Do not build a pointer-to-element
8826         type for arrays.
8827
8828 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
8829
8830         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
8831         Use SWI mode iterator.  Use general_reg_operand predicate.
8832         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
8833         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
8834         predicates.
8835
8836 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
8837
8838         PR middle-end/70843
8839         * fold-const.c (operand_equal_p): Don't verify hash value equality
8840         if arg0 == arg1.
8841         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
8842         and OMP_CLAUSE.
8843
8844 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8845
8846         PR target/70858
8847         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
8848         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
8849         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
8850         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
8851         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
8852
8853 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8854
8855         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
8856         to info.  Don't initialize separate fields to 0.  Clean up
8857         formatting a bit.
8858
8859 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
8860
8861         * config/i386/i386.md (peephole2s for operations with memory inputs):
8862         Use SWI mode iterator.
8863         (peephole2s for operations with memory outputs): Ditto.
8864         Do not check for stack checking probe.
8865
8866         (probe_stack): Remove expander.
8867
8868 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8869             Andrew Burgess  <andrew.burgess@embecosm.com>
8870
8871         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
8872         operands as 32-bits.
8873
8874 2016-04-28  Jason Merrill  <jason@redhat.com>
8875
8876         * gdbinit.in: Skip line-map.h.
8877
8878 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8879             Andrew Burgess  <andrew.burgess@embecosm.com>
8880
8881         * config/arc/arc.c (arc_conditional_register_usage): Take
8882         TARGET_RRQ_CLASS into account.
8883         (arc_print_operand): Support printing 'p' and 's' operands.
8884         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
8885         as 0.
8886         (TARGET_RRQ_CLASS): Define.
8887         (IS_POWEROF2_OR_0_P): Define.
8888         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
8889         alternatives.
8890         (*tst_movb): New define_insn.
8891         (*tst): Avoid recognition if it could prevent '*tst_movb'
8892         combination; replace c/CnL with c/Chs alternative.
8893         (*tst_bitfield_tst): New define_insn.
8894         (*tst_bitfield_asr): New define_insn.
8895         (*tst_bitfield): New define_insn.
8896         (andsi3_i): Add Rrq variant.
8897         (extzv): New define_expand.
8898         (insv): New define_expand.
8899         (*insv_i): New define_insn.
8900         (*movb): New define_insn.
8901         (*movb_signed): New define_insn.
8902         (*movb_high): New define_insn.
8903         (*movb_high_signed): New define_insn.
8904         (*movb_high_signed + 1): New define_split pattern.
8905         (*mrgb): New define_insn.
8906         (*mrgb + 1): New define_peephole2 pattern.
8907         (*mrgb + 2): New define_peephole2 pattern.
8908         * config/arc/arc.opt (mbitops): New option for nps400, uses
8909         TARGET_NPS_BITOPS_DEFAULT.
8910         * config/arc/constraints.md (q): Make register class conditional.
8911         (Rrq): New register constraint.
8912         (Chs): New constraint.
8913         (Clo): New constraint.
8914         (Chi): New constraint.
8915         (Cbf): New constraint.
8916         (Cbn): New constraint.
8917         (C18): New constraint.
8918         (Cbi): New constraint.
8919
8920 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8921
8922         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
8923         dst->popcount.
8924         (bitmap_intersection_of_preds): Ditto.
8925         (bitmap_union_of_succs): Ditto.
8926         (bitmap_union_of_preds): Ditto.
8927         * sbitmap.c (do_popcount): Delete.
8928         (BITMAP_DEBUGGING): Delete.
8929         (sbitmap_verify_popcount): Delete.
8930         (sbitmap_alloc): Don't initialize the popcount field.
8931         (sbitmap_alloc_with_popcount): Delete.
8932         (sbitmap_resize): Don't resize the popcount array.
8933         (sbitmap_vector_alloc): Don't initialize the popcount field.
8934         (bitmap_copy): Don't copy the popcount array.
8935         (bitmap_clear): Don't clear the popcount array.
8936         (bitmap_clear): Delete the popcount array handling.
8937         (bitmap_ior_and_compl): Delete the popcount assert.
8938         (bitmap_not): Ditto.
8939         (bitmap_and_compl): Ditto.
8940         (bitmap_and): Delete the popcount array handling.
8941         (bitmap_xor): Ditto.
8942         (bitmap_ior): Ditto.
8943         (bitmap_or_and): Delete the popcount assert.
8944         (bitmap_and_or): Ditto.
8945         (popcount_table): Delete.
8946         (sbitmap_elt_popcount): Delete.
8947         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
8948         (bitmap_set_bit): Delete the popcount assert.
8949         (bitmap_clear_bit): Ditto.
8950         (sbitmap_free): Don't free the popcount array.
8951         (sbitmap_alloc_with_popcount): Delete declaration.
8952         (sbitmap_popcount): Ditto.
8953
8954 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8955             Andrew Burgess  <andrew.burgess@embecosm.com>
8956
8957         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
8958         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
8959         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
8960         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
8961         * config/arc/arc.opt (mcmem): New option.
8962         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
8963         supply length for r/m alternative.
8964         (*extendqisi2_ac): Likewise.
8965         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
8966         r/Uex alternative.
8967         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
8968         (movhi_insn): Likewise.
8969         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
8970         (*zero_extendqihi2_i): Add r/Ucm alternative.
8971         (*zero_extendqisi2_ac): Likewise.
8972         (*zero_extendhisi2_i): Likewise.
8973         * config/arc/constraints.md (Uex): New memory constraint.
8974         (Ucm): New define_constraint.
8975         * config/arc/predicates.md (long_immediate_loadstore_operand):
8976         Return 0 for MEM with cmem_address address.
8977         (cmem_address_0): New predicates.
8978         (cmem_address_1): Likewise.
8979         (cmem_address_2): Likewise.
8980         (cmem_address): Likewise.
8981
8982 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
8983
8984         * config/rs6000/rs6000.c (machine_function): Rename
8985         insn_chain_scanned_p to spe_insn_chain_scanned_p.
8986         (rs6000_stack_info): Adjust.
8987
8988 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
8989             Andrew Burgess  <andrew.burgess@embecosm.com>
8990
8991         * config/arc/constraints.md (Usd): Convert to define_constraint.
8992         (Us<): Likewise.
8993         (Us>): Likewise.
8994
8995 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
8996
8997         PR target/70821
8998         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
8999         Add new peephole2 where the first insn is *mov<mode>_or instead of
9000         *mov<mode>_internal.
9001
9002 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
9003
9004         * tracer.c (bb_seen): Make static.
9005
9006 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
9007
9008         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
9009         support, setup defaults.
9010         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
9011         * config/arc/arc.c (arc_init): Add NPS400 support.
9012         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
9013         (TARGET_ARC700): NPS400 is also an ARC700.
9014         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
9015
9016 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
9017
9018         PR target/70668
9019         * config/nds32/nds32.md (casesi): Don't access the operands array
9020         out of bounds.
9021
9022 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
9023
9024         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
9025         (or $-1,reg peephole2): Ditto.
9026         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
9027
9028 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
9029
9030         * doc/extend.texi (Common Function Attributes) [optimize]:
9031         Discourage use of the optimize attribute.
9032
9033 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
9034
9035         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
9036         special case builtin.
9037         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
9038         ALTIVEC_BUILTIN_VEC_ADDE.
9039         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
9040         support for ALTIVEC_BUILTIN_VEC_ADDE.
9041         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
9042         for __builtin_vec_adde.
9043
9044 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
9045
9046         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
9047         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
9048
9049 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9050
9051         PR testsuite/70595
9052         * doc/sourcebuild.texi (Effective-Target Keywords, Other
9053         attributes): Document cilkplus_runtime.
9054
9055 2016-04-28  Martin Jambor  <mjambor@suse.cz>
9056
9057         * tree-cfg.c (verify_expr): Verify that local declarations belong to
9058         this function.  Call verify_expr on MEM_REFs and bases of other
9059         handled_components.
9060
9061 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9062
9063         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
9064         for WORD_REGISTER_OPERATIONS to runtime check.
9065
9066 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
9067
9068         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
9069
9070 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
9071
9072         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
9073         big-endian compilation.
9074         * config/arc/arc.md (addf3): Likewise.
9075         (subdf3): Likewise.
9076         (muldf3): Likewise.
9077
9078 2016-04-28  Richard Biener  <rguenther@suse.de>
9079
9080         PR tree-optimization/70840
9081         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
9082         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
9083         Mark x * pow(x,c) -> pow(x,c+1) commutative.
9084         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
9085
9086 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9087
9088         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
9089         and explain why in a comment.
9090
9091 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
9092
9093         * config/arc/arc.md (cpu_facility): Add fpx variant.
9094         (subdf3): Prohibit use reverse sub when assist operations option
9095         is enabled.
9096         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
9097         instructions only when FPX is enabled.
9098         * testsuite/gcc.target/arc/trsub.c: New test.
9099
9100 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
9101
9102         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
9103         mult_operator when calculating "type" attribute.
9104         (*fop_<mode>_1_i387): Ditto.
9105         (*fop_xf_1_i387): Ditto.
9106         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
9107         Use std::swap to swap operands.  Use RTL expressions to generate
9108         converted pattern.
9109
9110 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
9111             Joern Rennecke  <joern.rennecke@embecosm.com>
9112
9113         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
9114         declaration.
9115         (emit_pic_move): Remove.
9116         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
9117         * config/arc/arc.c (emit_pic_move): Removed.
9118         (TARGET_HAVE_TLS): Define.
9119         (arc_conditional_register_usage): Test for arc_tp_regno.
9120         (arc_print_operand, arc_print_operand_address): Handle TLS
9121         unspecs.
9122         (arc_needs_pcl_p): New function.
9123         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
9124         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
9125         (arc_raw_symbolic_reference_mentioned_p): Likewise.
9126         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
9127         (arc_legitimize_tls_address): Likewise.
9128         (DTPOFF_ZERO_SYM): Define.
9129         (arc_legitimize_pic_address): Make it static, handle TLS cases.
9130         (arc_output_pic_addr_const): Print TLS unspecs.
9131         (prepare_pic_move): New function, replaces emit_pic_move.
9132         (arc_legitimate_constant_p): Handle TLS unspecs.
9133         (arc_legitimate_address_p): Likewise.
9134         (arc_rewrite_small_data_p): Use assert for TLS constants.
9135         (prepare_move_operands): Use prepare_pic_move.
9136         (arc_legitimize_address): Legitimize tls addresses.
9137         (arc_epilogue_uses): Check for arc_tp_regno.
9138         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
9139         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
9140         Define.
9141         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
9142         Likewise.
9143         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
9144         %(arc_tls_extra_start_spec).
9145         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
9146         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
9147         (EH_USES): Define.
9148         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
9149         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
9150         (UNSPEC_TLS_OFF): Add.
9151         (R10_REG): Define.
9152         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
9153         (get_thread_pointersi): New patterns.
9154         * config/arc/arc.opt (mtp-regno): New option.
9155         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
9156         (move_dest_operand): Likewise.
9157         * configure: Regenerate.
9158         * configure.ac: Add arc*-*-* case to test for tls.
9159         * doc/invoke.texi (ARC options): Document mtp-regno.
9160
9161 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
9162
9163         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
9164         the new ARC HS SIMD instructions.
9165         (arc_preferred_simd_mode): New function.
9166         (arc_autovectorize_vector_sizes): Likewise.
9167         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
9168         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9169         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
9170         (arc_init_builtins): Add new SIMD builtin types.
9171         (arc_split_move): Handle 64 bit vector moves.
9172         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
9173         (TARGET_PLUS_QMACW): Define.
9174         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
9175         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
9176         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
9177         (VSUBADD4H): New builtins.
9178         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
9179         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
9180
9181 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
9182             Matthias Klose  <doko@debian.org>
9183
9184         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
9185
9186 2016-04-28  Richard Biener  <rguenther@suse.de>
9187
9188         PR middle-end/70777
9189         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
9190         canonicalization.
9191
9192 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
9193
9194         * common/config/sh/sh-common.c: Remove SH5 support.
9195         * config/sh/constraints.md: Likewise.
9196         * config/sh/config/sh/elf.h: Likewise.
9197         * config/sh/linux.h: Likewise.
9198         * config/sh/netbsd-elf.h: Likewise.
9199         * config/sh/predicates.md: Likewise.
9200         * config/sh/sh-c.c: Likewise.
9201         * config/sh/sh-protos.h: Likewise.
9202         * config/sh/sh.c: Likewise.
9203         * config/sh/sh.h: Likewise.
9204         * config/sh/sh.md: Likewise.
9205         * config/sh/sh.opt: Likewise.
9206         * config/sh/sync.md: Likewise.
9207         * config/sh/sh64.h: Delete.
9208         * config/sh/shmedia.h: Likewise.
9209         * config/sh/shmedia.md: Likewise.
9210         * config/sh/sshmedia.h: Likewise.
9211         * config/sh/t-netbsd-sh5-64: Likewise.
9212         * config/sh/t-sh64: Likewise.
9213         * config/sh/ushmedia.h: Likewise.
9214
9215 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
9216
9217         * config/i386/i386.md (sign_extend to memory peephole2s): Use
9218         general_reg_operand instead of register_operand predicate.
9219
9220 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9221
9222         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
9223
9224 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
9225
9226         * match.pd (A - B > A, A + B < A): New transformations.
9227
9228 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
9229
9230         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
9231         which defaults to true.  Emit an outer pair of parentheses only if
9232         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
9233         don't emit parentheses for the right-hand operand.
9234
9235 2016-04-27  Jeff Law  <law@redhat.com>
9236
9237         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
9238
9239 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9240
9241         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
9242         (altivec_lvx_<mode>_internal): Document.
9243         (altivec_lvx_<mode>_2op): New define_insn.
9244         (altivec_lvx_<mode>_1op): Likewise.
9245         (altivec_lvx_<mode>_2op_si): Likewise.
9246         (altivec_lvx_<mode>_1op_si): Likewise.
9247         (altivec_stvx_<mode>): Remove.
9248         (altivec_stvx_<mode>_internal): Document.
9249         (altivec_stvx_<mode>_2op): New define_insn.
9250         (altivec_stvx_<mode>_1op): Likewise.
9251         (altivec_stvx_<mode>_2op_si): Likewise.
9252         (altivec_stvx_<mode>_1op_si): Likewise.
9253         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9254         Expand vec_ld and vec_st during parsing.
9255         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
9256         changes.
9257         (altivec_expand_stvx_be): Likewise.
9258         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
9259         address-masking behavior in RTL.
9260         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
9261         address-masking behavior in RTL.
9262         (altivec_expand_builtin): Change builtin code arguments for calls
9263         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
9264         (insn_is_swappable_p): Avoid incorrect swap optimization in the
9265         presence of lvx/stvx patterns.
9266         (alignment_with_canonical_addr): New function.
9267         (alignment_mask): Likewise.
9268         (find_alignment_op): Likewise.
9269         (recombine_lvx_pattern): Likewise.
9270         (recombine_stvx_pattern): Likewise.
9271         (recombine_lvx_stvx_patterns): Likewise.
9272         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
9273         stvx patterns from expand.
9274         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
9275         expansions.
9276         (vector_altivec_store_<mode>): Likewise.
9277
9278 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
9279
9280         * config/aarch64/aarch64.md
9281         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
9282         remove the "fp" attributes.
9283         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
9284         add the "simd" attributes.
9285         (*movdf_aarch64): Likewise.
9286         (*movtf_aarch64): Remove the "fp" attributes.
9287         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
9288         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
9289
9290 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9291
9292         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
9293         rtx to rtx_code_label *.
9294         * rtl.h (maybe_set_first_label_num): Likewise.
9295
9296 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9297
9298         * df-core.c (df_add_problem): Make the problem param be const.
9299         (df_remove_problem): Make local "problem" be const.
9300         * df-problems.c (problem_RD): Make const.
9301         (problem_LR): Likewise.
9302         (problem_LIVE): Likewise.
9303         (problem_MIR): Likewise.
9304         (problem_CHAIN): Likewise.
9305         (problem_WORD_LR): Likewise.
9306         (problem_NOTE): Likewise.
9307         (problem_MD): Likewise.
9308         * df-scan.c (problem_SCAN): Likewise.
9309         * df.h (struct df_problem): Make field "dependent_problem" be
9310         const.
9311         (struct dataflow): Likewise for field "problem".
9312         (df_add_problem): Make param const.
9313
9314 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
9315
9316         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
9317         inter-unit moves to/from vector registers are enabled.  Do not disable
9318         for TARGET_MMX.
9319
9320 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9321
9322         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
9323         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
9324         #define to...
9325         (enum df_problem_id): ...this new enum.
9326         (struct df_problem): Convert field "id" from "int" to
9327         enum df_problem_id.
9328
9329 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
9330
9331         * rtl.def: Update comment for "things in the instruction chain" to
9332         reflect the removal of the leading "i" field for INSN_UID in
9333         r210360.  Fix bogus apostrophe.
9334
9335 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
9336
9337         * config/i386/i386.md
9338         (lea arith with mem operand + setcc peephole2): Set operator mode.
9339
9340 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
9341
9342         PR target/70155
9343         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
9344         (dimode_scalar_to_vector_candidate_p): This.
9345         (timode_scalar_to_vector_candidate_p): New function.
9346         (scalar_to_vector_candidate_p): Likewise.
9347         (timode_check_non_convertible_regs): Likewise.
9348         (timode_remove_non_convertible_regs): Likewise.
9349         (remove_non_convertible_regs): Likewise.
9350         (remove_non_convertible_regs): Renamed to ...
9351         (dimode_remove_non_convertible_regs): This.
9352         (scalar_chain::~scalar_chain): Make it virtual.
9353         (scalar_chain::compute_convert_gain): Make it pure virtual.
9354         (scalar_chain::mark_dual_mode_def): Likewise.
9355         (scalar_chain::convert_insn): Likewise.
9356         (scalar_chain::convert_registers): Likewise.
9357         (scalar_chain::add_to_queue): Make it protected.
9358         (scalar_chain::emit_conversion_insns): Likewise.
9359         (scalar_chain::replace_with_subreg): Likewise.
9360         (scalar_chain::replace_with_subreg_in_insn): Likewise.
9361         (scalar_chain::convert_op): Likewise.
9362         (scalar_chain::convert_reg): Likewise.
9363         (scalar_chain::make_vector_copies): Likewise.
9364         (scalar_chain::convert_registers): New pure virtual function.
9365         (class dimode_scalar_chain): New class.
9366         (class timode_scalar_chain): Likewise.
9367         (scalar_chain::mark_dual_mode_def): Renamed to ...
9368         (dimode_scalar_chain::mark_dual_mode_def): This.
9369         (timode_scalar_chain::mark_dual_mode_def): New function.
9370         (timode_scalar_chain::convert_insn): Likewise.
9371         (dimode_scalar_chain::convert_registers): Likewise.
9372         (scalar_chain::compute_convert_gain): Renamed to ...
9373         (dimode_scalar_chain::compute_convert_gain): This.
9374         (scalar_chain::replace_with_subreg): Renamed to ...
9375         (dimode_scalar_chain::replace_with_subreg): This.
9376         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
9377         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
9378         (scalar_chain::make_vector_copies): Renamed to ...
9379         (dimode_scalar_chain::make_vector_copies): This.
9380         (scalar_chain::convert_reg): Renamed to ...
9381         (dimode_scalar_chain::convert_reg ): This.
9382         (scalar_chain::convert_op): Renamed to ...
9383         (dimode_scalar_chain::convert_op): This.
9384         (scalar_chain::convert_insn): Renamed to ...
9385         (dimode_scalar_chain::convert_insn): This.
9386         (scalar_chain::convert): Call convert_registers.
9387         (convert_scalars_to_vector): Change to scalar_chain pointer to
9388         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
9389         in 32-bit mode.  Delete scalar_chain pointer.  Call
9390         free_dominance_info in 64-bit mode.
9391         (pass_stv::gate): Remove TARGET_64BIT check.
9392         (ix86_option_override): Put the 64-bit STV pass before the CSE
9393         pass.
9394
9395 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
9396
9397         * dwarf2out.h (struct dw_loc_descr_node): Remove the
9398         dw_loc_frame_offset field.
9399         * dwarf2out.c (new_loc_descr): Likewise.
9400         (resolve_args_picking_1): Turn the VISITED hash set into a
9401         FRAME_OFFSET hash map. Use it to associate a frame offset to
9402         visited nodes. Remove uses of the CHECKING_P macro.
9403         (resolve_args_picking): Update call to resolve_args_picking_1.
9404
9405 2016-04-27  Martin Liska  <mliska@suse.cz>
9406
9407         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
9408         (free_loop_data): Release vuses of groups.
9409
9410 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
9411
9412         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
9413         instead of redundant use_id and boolean have_use_for.
9414         (struct iv_use): Change sub_id into group_id.  Remove field next.
9415         Move fields: related_cands, n_map_members, cost_map and selected
9416         to ...
9417         (struct iv_group): ... here.  New structure.
9418         (struct iv_common_cand): Use structure declaration directly.
9419         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
9420         (MAX_CONSIDERED_USES): Rename macro to ...
9421         (MAX_CONSIDERED_GROUPS): ... here.
9422         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
9423         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
9424         (dump_uses): Rename to ...
9425         (dump_groups): ... here.  Update all uses.
9426         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
9427         (find_induction_variables): Refactor format of dump information.
9428         (record_sub_use): Delete.
9429         (record_use): Update all uses.
9430         (record_group): New function.
9431         (record_group_use, find_interesting_uses_op): Call above functions.
9432         Update all uses.
9433         (find_interesting_uses_cond): Ditto.
9434         (group_compare_offset): New function.
9435         (split_all_small_groups): Rename to ...
9436         (split_small_address_groups_p): ... here.  Update all uses.
9437         (split_address_groups):  Update all uses.
9438         (find_interesting_uses): Refactor format of dump information.
9439         (add_candidate_1): Update all uses.  Remove redundant check on iv,
9440         base and step.
9441         (add_candidate, record_common_cand): Remove redundant assert.
9442         (add_iv_candidate_for_biv): Update use.
9443         (add_iv_candidate_derived_from_uses): Update all uses.
9444         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
9445         (alloc_use_cost_map): Ditto.
9446         (set_use_iv_cost, get_use_iv_cost): Rename to ...
9447         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
9448         (determine_use_iv_cost_generic): Ditto.
9449         (determine_group_iv_cost_generic): Ditto.
9450         (determine_use_iv_cost_address): Ditto.
9451         (determine_group_iv_cost_address): Ditto.
9452         (determine_use_iv_cost_condition): Ditto.
9453         (determine_group_iv_cost_cond): Ditto.
9454         (determine_use_iv_cost): Ditto.
9455         (determine_group_iv_cost): Ditto.
9456         (set_autoinc_for_original_candidates): Update all uses.
9457         (find_iv_candidates): Update all uses.  Refactor dump information.
9458         (determine_use_iv_costs): Ditto.
9459         (determine_iv_costs): Ditto.
9460         (iv_ca_cand_for_use): Rename to ...
9461         (iv_ca_cand_for_group): ... here.  Update all uses.
9462         (iv_ca_add_use, iv_ca_add_group): Ditto.
9463         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
9464         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
9465         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
9466         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
9467         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
9468         (create_new_iv, adjust_iv_update_pos): Ditto.
9469         (rewrite_use_address): Delete.
9470         (rewrite_use_address_1): Rename to ...
9471         (rewrite_use_address): ... here.
9472         (rewrite_use_compare): Update all uses.
9473         (rewrite_use): Delete.
9474         (rewrite_uses): Rename to ...
9475         (rewrite_groups): ... here.  Update all uses.
9476         (remove_unused_ivs, free_loop_data): Update all uses.
9477         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
9478
9479 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9480
9481         * rtlanal.c (nonzero_bits1): Convert preprocessor check
9482         for WORD_REGISTER_OPERATIONS to runtime check.
9483
9484 2016-04-27  Richard Biener  <rguenther@suse.de>
9485
9486         PR ipa/70760
9487         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
9488         aggregate_value_p to determine if a function result is
9489         returned by reference.
9490         (ipa_pta_execute): Functions having their address taken are
9491         not automatically nonlocal.
9492
9493 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
9494
9495         PR sanitizer/70683
9496         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
9497         * fold-const.c (operand_equal_p): If flag_checking and
9498         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
9499         and if it returns non-zero, assert iterative_hash_expr on both
9500         args is the same.
9501
9502 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
9503
9504         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
9505
9506 2016-04-27  Nick Clifton  <nickc@redhat.com>
9507
9508         PR middle-end/49889
9509         * varasm.c (merge_weak): Generate an error if an attempt is made
9510         to convert a non-weak static function into a weak, public function.
9511
9512 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9513
9514         * params.def (MAX_PARTITION_SIZE): New param.
9515         * doc/invoke.texi: Document lto-max-partition.
9516
9517 2016-04-27  Richard Biener  <rguenther@suse.de>
9518
9519         PR ipa/70785
9520         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
9521         function cummulating used_from_other_partition, externally_visible
9522         and force_output from aliases.
9523         (refered_from_nonlocal_var): Likewise.
9524         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
9525         node flags properly.
9526
9527 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
9528
9529         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
9530         (-Wmemset-elt-size): New item.
9531
9532 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
9533
9534         PR ada/70759
9535         * stor-layout.h (internal_reference_types): Delete.
9536         * stor-layout.c (reference_types_internal): Likewise.
9537         (internal_reference_types): Likewise.
9538         (layout_type) <REFERENCE_TYPE>: Adjust.
9539
9540 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
9541
9542         PR sanitizer/70683
9543         * tree.h (inchash::add_expr): Add FLAGS argument.
9544         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
9545         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
9546         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
9547         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
9548         if swap_tree_comparison (code) is smaller than code, hash that
9549         and arguments in the other order.  Hash CONVERT_EXPR the same
9550         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
9551         of ADDR_EXPR of decl as the decl itself.  Add or remove
9552         OEP_ADDRESS_OF from recursive flags as needed.  For
9553         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
9554         operands commutatively and only the third one normally.
9555         For internal CALL_EXPR hash in CALL_EXPR_IFN.
9556
9557 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9558
9559         * config/rtems.h (LIB_SPEC): Add -latomic.
9560
9561 2016-04-27  Joel Sherrill  <joel@rtems.org>
9562
9563         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
9564         xilink.ld and flags not relevant to RTEMS.
9565
9566 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
9567
9568         * toplev.c (backend_init_target): Avoid calling init_reload when using
9569         LRA.
9570
9571 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
9572
9573         * reorg.c (try_merge_delay_insns): Declare i and j inside the
9574         for loops rather than one for the whole function.
9575
9576 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
9577
9578         * match.pd (X + CST CMP X): New transformation.
9579
9580 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
9581
9582         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
9583         * fold-const.c (fold_binary_loc): Remove 2 transformations
9584         superseded by match.pd.
9585         * match.pd (x+x -> x*2): Generalize to integers.
9586
9587 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
9588
9589         * config/i386/i386.md (operation on memory peephole): Duplicate an
9590         existing peephole and adapt it to match lea rather than an operation
9591         that clobbers CC.
9592
9593         PR rtl-optimization/57193
9594         * opts.c (default_options_table): Add OPT_frename_registers at -O2
9595         and above.
9596         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
9597
9598 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
9599
9600         * tree-if-conv.c (any_pred_load_store): New static variable.
9601         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
9602         any_pred_load_store instead of and_mask_load_store.
9603         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
9604         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
9605         (combine_blocks, tree_if_conversion): Ditto.
9606
9607 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
9608
9609         PR tree-optimization/70771
9610         PR tree-optimization/70775
9611         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
9612         virtual PHI nodes.  Delete parameter.
9613         (if_convertible_loop_p_1): Delete argument to above function.
9614         (predicate_all_scalar_phis): Delete code handling single-argument
9615         PHIs.
9616         (tree_if_conversion): Mark and update virtual SSA.
9617
9618 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9619
9620         PR target/61821
9621         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
9622         (x86_elf_aligned_common): Rename to ...
9623         (x86_elf_aligned_decl_common): ... this.
9624         Add decl arg.  Switch to .lbss for largecomm object.  Use
9625         LARGECOMM_SECTION_ASM_OP.
9626         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
9627         renaming.
9628         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
9629         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
9630         Pass new decl arg.
9631         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
9632         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
9633
9634 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9635
9636         PR target/59407
9637         * config/i386/i386.c (SECTION_LARGE): Define.
9638         (x86_64_elf_select_section): Set it for large data/bss sections.
9639         Only clear SECTION_WRITE for .lrodata.
9640         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
9641         data/bss sections.
9642         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
9643         * varasm.c (default_elf_asm_named_section): Grow flagchars.
9644         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
9645         SECTION_MACH_DEP.
9646         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
9647         * doc/tm.texi: Regenerate.
9648
9649 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
9650
9651         PR bootstrap/70704
9652         * configure.ac (--enable-checking): Document extra flag, for
9653         non-release builds default to --enable-checking=yes,extra.
9654         If misc checking and extra checking, define CHECKING_P to 2 instead
9655         of 1.
9656         * common.opt (fchecking=): Add.
9657         * doc/invoke.texi (-fchecking=): Document.
9658         * doc/install.texi: Document --enable-checking changes.
9659         * configure: Regenerated.
9660         * config.in: Regenerated.
9661
9662 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9663
9664         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
9665         attribute instead of which_alternative.
9666         * config/i386/sse.md (*mov<mode>_internal): Ditto.
9667         Use EXT_REX_SSE_REG_P where appropriate.
9668
9669 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9670
9671         * config/i386/predicates.md (const0_operand): Do not match
9672         const_wide_int code.
9673         (const1_operand): Ditto.
9674
9675 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9676
9677         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
9678         for SSE constm1 operands and TARGET_AVX512VL.
9679         (*movti_internal): Ditto.
9680         (*mov<mode>_or): Use constm1_operand predicate.
9681         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
9682         for SSE vector_all_ones operands and TARGET_AVX512VL.
9683         * config/i386/predicates.md (constm1_operand): New predicate.
9684         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
9685         emission of constant -1 load.
9686
9687 2016-04-25  Jason Merrill  <jason@redhat.com>
9688
9689         * gdbinit.in: Skip is-a.h.
9690
9691         * attribs.c (register_scoped_attributes): Fix logic.
9692         * attribs.h: Declare register_scoped_attributes.
9693
9694 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9695
9696         * config/rs6000/rs6000-builtin.def: Correct pasto error for
9697         stxvd2x and stxvw4x built-in functions.
9698
9699 2016-04-25  DJ Delorie  <dj@redhat.com>
9700
9701         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
9702         (ashrhi3): Likewise.
9703         (lshrhi3): Likewise.
9704
9705 2016-04-25  Richard Biener  <rguenther@suse.de>
9706
9707         PR tree-optimization/70780
9708         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
9709         wasn't visited yet.
9710         (compute_antic): Mark blocks with abnormal preds as visited as
9711         they have a final empty antic-in solution already.
9712
9713 2016-04-25  Michael Collison  <michael.collison@linaro.org>
9714
9715         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
9716
9717 2016-04-25  Michael Collison  <michael.collison@linaro.org>
9718
9719         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
9720         mode is VQI to improve mixed mode vectorization.
9721         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
9722         define_insn to match low half of signed vaddw.
9723         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
9724         define_insn to match high half of signed vaddw.
9725         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
9726         define_insn to match low half of unsigned vaddw.
9727         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
9728         define_insn to match high half of unsigned vaddw.
9729         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
9730         (arm_simd_check_vect_par_cnst_half_p): Likewise.
9731         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
9732         for new function.
9733         (arm_simd_check_vect_par_cnst_half_p): Likewise.
9734         * config/arm/predicates.md (vect_par_constant_high): Support
9735         big endian and simplify by calling
9736         arm_simd_check_vect_par_cnst_half
9737         (vect_par_constant_low): Likewise.
9738
9739 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
9740
9741         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
9742         predicate for operand 2.
9743
9744 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
9745             H.J. Lu  <hongjiu.lu@intel.com>
9746
9747         * config/i386/i386-protos.h (standard_sse_constant_p): Add
9748         machine_mode argument.
9749         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
9750         constm1_rtx operands.  For VOIDmode constants, get mode from
9751         pred_mode.  Check mode size if the mode is supported by ABI.
9752         (standard_sse_constant_opcode): Do not use standard_constant_p.
9753         Strictly check ABI support for all-ones operands.
9754         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
9755         immediates. Update calls to standard_sse_constant_p.
9756         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
9757         (ix86_rtx_costs): Ditto.
9758         * config/i386/i386.md (*movxi_internal_avx512f): Use
9759         nonimmediate_or_sse_const_operand instead of vector_move_operand.
9760         Use (v,BC) alternative instead of (v,C). Use register_operand
9761         checks instead of MEM_P.
9762         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
9763         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
9764         isa attribute.  Use register_operand checks instead of MEM_P.
9765         (*movti_internal): Use nonimmediate_or_sse_const_operand for
9766         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
9767         alternative and corresponding sse2 isa attribute.
9768         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
9769         to standard_sse_constant_p.
9770         (FP constant splitters): Ditto.
9771         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
9772         (C): Ditto.
9773         * config/i386/predicates.md (constm1_operand): Remove.
9774         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
9775         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
9776         vector_all_ones_operand instead of constm1_operand.
9777
9778 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9779
9780         * print-rtl.c (print_rtx_insn_vec): New function.
9781         * print-rtl.h: New prototype.
9782         * store-motion.c (struct st_expr): Make avail_stores a vector.
9783         (st_expr_entry): Adjust.
9784         (free_st_expr_entry): Likewise.
9785         (print_store_motion_mems): Likewise.
9786         (find_moveable_store): Likewise.
9787         (compute_store_table): Likewise.
9788         (delete_store): Likewise.
9789         (build_store_vectors): Likewise.
9790
9791 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9792
9793         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
9794
9795 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9796
9797         * vec.h (vec_safe_contains): New function.
9798         (vec::contains): Likewise.
9799         (vec::begin): Likewise.
9800         (vec::end): Likewise.
9801
9802 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
9803
9804         PR sanitizer/70712
9805         * cfgexpand.c (expand_stack_vars): Fix typo.
9806
9807 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9808
9809         * system.h (list, map, set, vector): Include conditionally.
9810         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
9811         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
9812         * ipa-icf.c (INCLUDE_LIST): Define.
9813         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
9814         * config/sh/sh.c (INCLUDE_VECTOR): Define.
9815         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
9816         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
9817         * cp/logic.cc (INCLUDE_LIST): Define.
9818         * fortran/trans-common.c (INCLUDE_MAP): Define.
9819
9820 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9821
9822         * auto-profile.c: Remove <string.h> include.
9823         * ipa-icf-gimple.c: Remove <list> include.
9824         * diagnostic.c: Remove <new> include.
9825         * genmatch.c: Likewise.
9826         * pretty-print.c: Likewise.
9827         * toplev.c: Likewise
9828         * c/c-objc-common.c: Likewise.
9829         * cp/error.c: Likewise.
9830         * fortran/error.c: Likewise.
9831
9832 2016-04-22  Richard Biener  <rguenther@suse.de>
9833
9834         * lto-streamer-in.c (input_ssa_names): Do not allocate
9835         GIMPLE_NOP for all SSA names.
9836         * lto-streamer-out.c (output_ssa_names): Do not output
9837         SSA names that should have been released.
9838
9839 2016-04-22  Richard Biener  <rguenther@suse.de>
9840
9841         PR tree-optimization/70740
9842         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
9843         VDEF.
9844
9845 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
9846
9847         PR target/70750
9848         * config/i386/predicates.md (call_insn_operand): Replace
9849         sibcall_memory_operand with memory_operand.
9850
9851 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
9852
9853         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
9854         has_single_use() tests.
9855         (register_edge_assert_for_1): Likewise.
9856         (find_assert_locations_1): Check the liveness bitmap instead of
9857         checking has_single_use().
9858
9859 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
9860
9861         PR target/70728
9862         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
9863         Extract AVX-512BW constraint from AVX.
9864
9865 2016-04-21  Richard Biener  <rguenther@suse.de>
9866
9867         PR tree-optimization/70725
9868         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
9869         for phi_convertible_by_degenerating_args.
9870         (predicate_all_scalar_phis): Handle single-argument PHIs.
9871
9872 2016-04-21  Richard Biener  <rguenther@suse.de>
9873
9874         PR middle-end/70747
9875         * fold-const.c (fold_comparison): Return properly typed
9876         constant boolean.
9877
9878 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
9879
9880         PR tree-optimization/70715
9881         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
9882         after expanding BASE using expand_simple_operations.
9883
9884 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
9885
9886         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
9887         New transformations.
9888
9889 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
9890
9891         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
9892
9893 2016-04-20  Jan Hubicka  <jh@suse.cz>
9894
9895         * ipa-inline.c (can_inline_edge_p): Pass caller info to
9896         ultiimate_alias_target.
9897         (update_callee_keys): Likewise.
9898         (lookup_recursive_calls): Likewise.
9899         (speculation_useful_p): Likewise.
9900
9901 2016-04-20  Jan Hubicka  <jh@suse.cz>
9902
9903         PR ipa/70018
9904         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
9905         (set_nothrow_flag_1): ... this; handle interposition correctly;
9906         recurse on aliases and thunks.
9907         (cgraph_node::set_nothrow_flag): New.
9908         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
9909         functions compiled with non-call exceptions that binds to current
9910         def.
9911         (propagate_nothrow): Be safe WRT interposition.
9912         * cgraph.h (set_nothrow_flag): Update prototype.
9913
9914 2016-04-18  Jan Hubicka  <jh@suse.cz>
9915
9916         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9917         max_loop_iterations_int.
9918         (tree_unswitch_outer_loop): Likewise.
9919
9920 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9921
9922         PR tree-optimization/69489
9923         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
9924         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
9925         Revise dump message.
9926         (if_convertible_bb_p): Remove check on edge count of basic block's
9927         predecessors.
9928
9929 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
9930
9931         PR tree-optimization/56625
9932         PR tree-optimization/69489
9933         * tree-data-ref.h (DR_INNERMOST): New macro.
9934         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
9935         hashing struct innermost_loop_behavior.
9936         (ref_DR_map): Remove.
9937         (innermost_DR_map): New map.
9938         (baseref_DR_map): Revise comment.
9939         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
9940         to innermost_DR_map accroding to its innermost loop behavior.
9941         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
9942         to its innermost loop behavior.
9943         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
9944         Add initialization for innermost_DR_map.  Record memory reference
9945         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
9946         have innermost loop behavior.
9947         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
9948         innermost_DR_map.
9949
9950 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
9951
9952         * config/i386/i386.md (*lea<mode>_general_1): Rename from
9953         *lea_general_1.  Use explicit SWI12 mode interator.
9954         (*lea<mode>_general_2): Rename from *lea_general_2.
9955         Use explicit SWI12 mode interator.
9956         (*lea<mode>_general_3): Rename from *lea_general_3.
9957         Use explicit SWI12 mode interator.
9958         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
9959         Use explicit SWI12 mode interator.
9960         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
9961         Use explicit SWI48 mode interator.
9962
9963 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9964
9965         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
9966         Short-cut unaligned load and store cases.  Handle all integer
9967         vector modes.
9968         (ix86_expand_vector_move_misalign): Short-cut unaligned load
9969         and store cases.  Call ix86_avx256_split_vector_move_misalign
9970         directly without checking mode class.
9971
9972 2016-04-20  Andrew Pinski  <apinski@cavium.com>
9973             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9974
9975         PR target/64971
9976         * config/aarch64/aarch64.md (sibcall): Force call
9977         address to be DImode for ILP32.
9978         (sibcall_value): Likewise.
9979
9980 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
9981
9982         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
9983
9984 2016-04-20  Richard Biener  <rguenther@suse.de>
9985
9986         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
9987         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
9988         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
9989         (maybe_push_res_to_seq): Adjust.
9990         * gimple-fold.c (maybe_build_generic_op): Likewise.
9991
9992 2016-04-20  Marek Polacek  <polacek@redhat.com>
9993
9994         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
9995         rather than true.
9996
9997 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
9998
9999         * config/i386/sse.md (vec_unpacks_lo_hi): Always
10000         use kmovw to support AVX512F target.
10001
10002 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
10003
10004         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
10005
10006 2016-04-20  Marek Polacek  <polacek@redhat.com>
10007
10008         PR tree-optimization/70725
10009         * tree-if-conv.c (is_false_predicate): New function.
10010         (predicate_mem_writes): Use it.
10011
10012 2016-04-20  Richard Biener  <rguenther@suse.de>
10013
10014         PR tree-optimization/70726
10015         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
10016         shift amounts from a pattern stmt operand.
10017
10018 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10019
10020         PR target/70674
10021         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
10022         stack_restore_from_fpr pattern when restoring r15.
10023         (s390_optimize_prologue): Strip away the memory barrier in the
10024         parallel when trying to get rid of restore insns.
10025         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
10026         definition for loading the stack pointer from an FPR.  Compared to
10027         the normal move insn this pattern includes a full memory barrier.
10028
10029 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
10030
10031         PR middle-end/70680
10032         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
10033         implicitly linear or lastprivate iterator on the outer context.
10034
10035 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
10036
10037         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
10038         alignment check.
10039         * config/i386/i386.md (ssememalign): Removed.
10040         * config/i386/sse.md: Remove ssememalign attribute from patterns.
10041
10042 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
10043
10044         PR target/69201
10045         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
10046         const short * to __builtin_ia32_loaddquhi512_mask.
10047         (_mm512_maskz_loadu_epi16): Likewise.
10048         (_mm512_mask_storeu_epi16): Pass short * to
10049         __builtin_ia32_storedquhi512_mask.
10050         (_mm512_mask_loadu_epi8): Pass const char * to
10051         __builtin_ia32_loaddquqi512_mask.
10052         (_mm512_maskz_loadu_epi8): Likewise.
10053         (_mm512_mask_storeu_epi8): Pass char * to
10054         __builtin_ia32_storedquqi512_mask.
10055         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
10056         const double * to __builtin_ia32_loadupd512_mask.
10057         (_mm512_mask_loadu_pd): Likewise.
10058         (_mm512_maskz_loadu_pd): Likewise.
10059         (_mm512_storeu_pd): Pass double * to
10060         __builtin_ia32_storeupd512_mask.
10061         (_mm512_mask_storeu_pd): Likewise.
10062         (_mm512_loadu_ps): Pass const float * to
10063         __builtin_ia32_loadups512_mask.
10064         (_mm512_mask_loadu_ps): Likewise.
10065         (_mm512_maskz_loadu_ps): Likewise.
10066         (_mm512_storeu_ps): Pass float * to
10067         __builtin_ia32_storeups512_mask.
10068         (_mm512_mask_storeu_ps): Likewise.
10069         (_mm512_mask_loadu_epi64): Pass const long long * to
10070         __builtin_ia32_loaddqudi512_mask.
10071         (_mm512_maskz_loadu_epi64): Likewise.
10072         (_mm512_mask_storeu_epi64): Pass long long *
10073         to __builtin_ia32_storedqudi512_mask.
10074         (_mm512_loadu_si512): Pass const int * to
10075         __builtin_ia32_loaddqusi512_mask.
10076         (_mm512_mask_loadu_epi32): Likewise.
10077         (_mm512_maskz_loadu_epi32): Likewise.
10078         (_mm512_storeu_si512): Pass int * to
10079         __builtin_ia32_storedqusi512_mask.
10080         (_mm512_mask_storeu_epi32): Likewise.
10081         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
10082         char * to __builtin_ia32_storedquqi256_mask.
10083         (_mm_mask_storeu_epi8): Likewise.
10084         (_mm256_mask_loadu_epi16): Pass const short * to
10085         __builtin_ia32_loaddquhi256_mask.
10086         (_mm256_maskz_loadu_epi16): Likewise.
10087         (_mm_mask_loadu_epi16): Pass const short * to
10088         __builtin_ia32_loaddquhi128_mask.
10089         (_mm_maskz_loadu_epi16): Likewise.
10090         (_mm256_mask_loadu_epi8): Pass const char * to
10091         __builtin_ia32_loaddquqi256_mask.
10092         (_mm256_maskz_loadu_epi8): Likewise.
10093         (_mm_mask_loadu_epi8): Pass const char * to
10094         __builtin_ia32_loaddquqi128_mask.
10095         (_mm_maskz_loadu_epi8): Likewise.
10096         (_mm256_mask_storeu_epi16): Pass short * to.
10097         __builtin_ia32_storedquhi256_mask.
10098         (_mm_mask_storeu_epi16): Pass short * to.
10099         __builtin_ia32_storedquhi128_mask.
10100         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
10101         const double * to __builtin_ia32_loadupd256_mask.
10102         (_mm256_maskz_loadu_pd): Likewise.
10103         (_mm_mask_loadu_pd): Pass onst double * to
10104         __builtin_ia32_loadupd128_mask.
10105         (_mm_maskz_loadu_pd): Likewise.
10106         (_mm256_mask_storeu_pd): Pass double * to
10107         __builtin_ia32_storeupd256_mask.
10108         (_mm_mask_storeu_pd): Pass double * to
10109         __builtin_ia32_storeupd128_mask.
10110         (_mm256_mask_loadu_ps): Pass const float * to
10111         __builtin_ia32_loadups256_mask.
10112         (_mm256_maskz_loadu_ps): Likewise.
10113         (_mm_mask_loadu_ps): Pass const float * to
10114         __builtin_ia32_loadups128_mask.
10115         (_mm_maskz_loadu_ps): Likewise.
10116         (_mm256_mask_storeu_ps): Pass float * to
10117         __builtin_ia32_storeups256_mask.
10118         (_mm_mask_storeu_ps): ass float * to
10119         __builtin_ia32_storeups128_mask.
10120         (_mm256_mask_loadu_epi64): Pass const long long * to
10121         __builtin_ia32_loaddqudi256_mask.
10122         (_mm256_maskz_loadu_epi64): Likewise.
10123         (_mm_mask_loadu_epi64): Pass const long long * to
10124         __builtin_ia32_loaddqudi128_mask.
10125         (_mm_maskz_loadu_epi64): Likewise.
10126         (_mm256_mask_storeu_epi64): Pass long long * to
10127         __builtin_ia32_storedqudi256_mask.
10128         (_mm_mask_storeu_epi64): Pass long long * to
10129         __builtin_ia32_storedqudi128_mask.
10130         (_mm256_mask_loadu_epi32): Pass const int * to
10131         __builtin_ia32_loaddqusi256_mask.
10132         (_mm256_maskz_loadu_epi32): Likewise.
10133         (_mm_mask_loadu_epi32): Pass const int * to
10134         __builtin_ia32_loaddqusi128_mask.
10135         (_mm_maskz_loadu_epi32): Likewise.
10136         (_mm256_mask_storeu_epi32): Pass int * to
10137         __builtin_ia32_storedqusi256_mask.
10138         (_mm_mask_storeu_epi32): Pass int * to
10139         __builtin_ia32_storedqusi128_mask.
10140         * config/i386/i386-builtin-types.def (PCSHORT): New.
10141         (PINT64): Likewise.
10142         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
10143         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
10144         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
10145         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
10146         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
10147         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
10148         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
10149         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
10150         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
10151         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
10152         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
10153         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
10154         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
10155         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
10156         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
10157         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
10158         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
10159         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
10160         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
10161         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
10162         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
10163         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
10164         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
10165         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
10166         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
10167         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
10168         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
10169         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
10170         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
10171         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
10172         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
10173         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
10174         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
10175         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
10176         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
10177         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
10178         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
10179         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
10180         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
10181         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
10182         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
10183         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
10184         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
10185         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
10186         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
10187         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
10188         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
10189         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
10190         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
10191         use UNSPEC_STOREU.
10192         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
10193         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
10194         load nor store.
10195         (ix86_expand_vector_move_misalign): Likewise.
10196         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
10197         to scalar function prototype for unaligned load/store builtins.
10198         (ix86_expand_special_args_builtin): Updated.
10199         * config/i386/sse.md (UNSPEC_LOADU): Removed.
10200         (UNSPEC_STOREU): Likewise.
10201         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
10202         (VI_ULOADSTORE_F_AVX512VL): Likewise.
10203         (ssescalarsize): Handle V4TI, V2TI and V1TI.
10204         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
10205         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
10206         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
10207         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
10208         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
10209         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
10210         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
10211         (<avx512>_storedqu<mode>_mask): Likewise.
10212         (*sse4_2_pcmpestr_unaligned): Likewise.
10213         (*sse4_2_pcmpistr_unaligned): Likewise.
10214         (*mov<mode>_internal): Renamed to ...
10215         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
10216         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
10217         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
10218         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
10219
10220 2016-04-19  Richard Biener  <rguenther@suse.de>
10221
10222         PR tree-optimization/70171
10223         * tree-ssa-phiprop.c: Include stor-layout.h.
10224         (phiprop_insert_phi): Handle the aggregate copy case.
10225         (propagate_with_phi): Likewise.
10226
10227 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
10228
10229         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
10230         instead of simplify_gen_subreg (... , 0).
10231         (ix86_delegitimize_address): Ditto.
10232         (ix86_split_divmod): Ditto.
10233         (ix86_split_copysign_const): Ditto.
10234         (ix86_split_copysign_var): Ditto.
10235         (ix86_expand_args_builtin): Ditto.
10236         (ix86_expand_round_builtin): Ditto.
10237         (ix86_expand_special_args_builtin): Ditto.
10238         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
10239         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
10240         (udivmodqi4): Ditto.
10241         (absneg splitters): Ditto.
10242         (*jcc_bt<mode>_1): Ditto.
10243
10244 2016-04-19  Richard Biener  <rguenther@suse.de>
10245
10246         PR tree-optimization/70724
10247         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
10248         restoring out from ...
10249         (free_scc_vn): ... here.
10250         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
10251         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
10252         tail merging.
10253         (pass_fre::execute): Restore SSA info.
10254
10255 2016-04-19  Richard Biener  <rguenther@suse.de>
10256
10257         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
10258         * gimple-walk.c (walk_gimple_op): Initialize it.
10259         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
10260         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
10261         remapping SSA names of defs.
10262         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
10263         adjustment.
10264
10265 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
10266
10267         PR middle-end/70689
10268         * lra-constraints.c (equiv_substition_p): New.
10269         (process_alt_operands): Use it.
10270         (swap_operands): Swap it.
10271         (curr_insn_transform): Update it.
10272
10273 2016-04-18  Michael Matz  <matz@suse.de>
10274
10275         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
10276         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
10277         * tree-core.h (tree_type_common.align): Use bit-field.
10278         (tree_type_common.spare): New.
10279         (tree_decl_common.off_align): Make smaller.
10280         (tree_decl_common.align): Use bit-field.
10281
10282         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
10283         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
10284         (scan_sharing_clauses): Ditto.
10285         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
10286         (omp_finish_file): Ditto.
10287         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
10288         (layout_decl): Ditto.
10289         (relayout_decl): Ditto.
10290         (finalize_record_size): Use SET_TYPE_ALIGN.
10291         (finalize_type_size): Ditto.
10292         (finish_builtin_struct): Ditto.
10293         (layout_type): Ditto.
10294         (initialize_sizetypes): Ditto.
10295         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
10296         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
10297         (lookup_field_for_decl): Use SET_DECL_ALIGN.
10298         (get_chain_field): Ditto.
10299         (get_trampoline_type): Ditto.
10300         (get_nl_goto_field): Ditto.
10301         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
10302         SET_DECL_ALIGN.
10303         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
10304         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
10305         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
10306         (build_qualified_type): Use SET_TYPE_ALIGN.
10307         (build_aligned_type, build_range_type_1): Ditto.
10308         (build_atomic_base): Ditto.
10309         (build_common_tree_nodes): Ditto.
10310         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
10311         (expand_one_stack_var_at): Ditto.
10312         * coverage.c (build_var): Use SET_DECL_ALIGN.
10313         * except.c (init_eh): Ditto.
10314         * function.c (assign_parm_setup_block): Ditto.
10315         * symtab.c (increase_alignment_1): Ditto.
10316         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
10317         * tree-vect-stmts.c (ensure_base_align): Ditto.
10318         * varasm.c (align_variable): Ditto.
10319         (assemble_variable): Ditto.
10320         (build_constant_desc): Ditto.
10321         (output_constant_def_contents): Ditto.
10322
10323         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
10324         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
10325         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
10326         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
10327         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
10328
10329 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
10330
10331         PR target/70708
10332         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
10333         replace %vmovsd with "%vmovq".
10334         (vec_concatv2df): Likewise.
10335
10336 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
10337
10338         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
10339         (*vec_extractv2si_0): Ditto.
10340         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
10341         (zero_extended_scalar_load_operand splitters): Ditto.
10342         (vec_extract splitters): Ditto.
10343         (*vec_extractv4si_0_zext): Ditto.
10344         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
10345         and lowpart_subreg.
10346         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
10347         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
10348         (*sse4_1_extractps): Use lowpart_subreg.
10349         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
10350
10351 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10352
10353         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
10354         gld requirements.
10355         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
10356         Mention Solaris 11 packaging changes.
10357         Update gas and gld requirements.
10358         Remove reference to pre-Solaris 10 bug.
10359         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
10360         systems and bugs.
10361         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
10362         with cc.
10363
10364 2016-04-17  Jan Hubicka  <jh@suse.cz>
10365
10366         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
10367         max_loop_iterations_int.
10368
10369 2016-04-18  Richard Biener  <rguenther@suse.de>
10370
10371         PR tree-optimization/43434
10372         * tree-ssa-structalias.c (struct vls_data): New.
10373         (visit_loadstore): Handle all pointer-based accesses.
10374         (compute_dependence_clique): Compute a bitmap of restrict tags
10375         assigned bases and pass it to visit_loadstore.
10376
10377 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
10378
10379         PR target/70711
10380         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
10381         armv8.1-a and armv8.1-a+crc.
10382
10383 2016-04-18  Richard Biener  <rguenther@suse.de>
10384
10385         PR tree-optimization/70701
10386         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
10387         references after translating through a memcpy.
10388
10389 2016-04-18  Richard Biener  <rguenther@suse.de>
10390
10391         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
10392         (compute_antic): ... here.  For partial antic use regular
10393         postorder and scrap iteration.
10394         (compute_partial_antic_aux): Remove unused return value.
10395         (init_pre): Do not allocate postorder.
10396         (fini_pre): Do not free postorder.
10397
10398 2016-04-18  Richard Biener  <rguenther@suse.de>
10399
10400         PR middle-end/37870
10401         * expmed.c (extract_bit_field_1): Remove broken case
10402         using a wider MODE_INT mode.
10403
10404 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
10405
10406         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
10407         unless compiling with at least GCC-4.8.
10408
10409 2016-04-17  Jan Hubicka  <jh@suse.cz>
10410
10411         PR bootstrap/70706
10412         * graphite.c (graphite_finalize): Update call to
10413         tree_estimate_probability.
10414         * predict.h (tree_estimate_probability): Update prototype.
10415
10416 2016-04-17  Jan Hubicka  <jh@suse.cz>
10417
10418         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
10419         (tree_estimate_probability): Likewise.
10420         (pass_profile::execute): Update.
10421         (report_predictor_hitrates): New function.
10422         * profile.c (compute_branch_probabilities): Use it.
10423         * predict.h (report_predictor_hitrates): Declare.
10424
10425 2016-04-17  Jan Hubicka  <jh@suse.cz>
10426
10427         PR ipa/70018
10428         * cgraph.h (cgraph_node::set_const_flag,
10429         cgraph_node::set_pure_flag): Update prototype to return bool;
10430         update comment.
10431         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
10432         of interposable symbol are interposable, too.
10433         (cgraph_set_const_flag_1): Rename to ...
10434         (set_const_flag_1): ... this one; change to self recursive function
10435         instead of call_for_symbol_thunks_and_aliases. Handle correctly
10436         clearnig the flag in all variants and also virtual thunks of const
10437         functions are pure; track if any change was done.
10438         (cgraph_node::set_const_flag): Update.
10439         (struct set_pure_flag_info): New struct.
10440         (cgraph_set_pure_flag_1): Rename to ...
10441         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
10442         rather than pointer encoded flags; track if any changes was done;
10443         handle correctly clearning flag and setting flag of aliases already
10444         declared const.
10445         (cgraph_node::set_pure_flag): Update.
10446         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
10447
10448 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10449
10450         PR other/70433
10451         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
10452         backslash in label.
10453
10454 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10455
10456         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
10457         '{}<> ' as escape-for-record.
10458
10459 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10460
10461         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
10462         structure.
10463
10464 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10465
10466         PR other/70185
10467         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
10468         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
10469         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
10470         * passes.c (finish_optimization_passes): Only call
10471         finish_graph_dump_file if dfi->graph_dump_initialized.
10472         (execute_function_dump, pass_init_dump_file): Use
10473         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
10474
10475 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10476
10477         PR tree-optimization/70256
10478         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
10479         (debug_varmap): New function.
10480
10481 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10482
10483         PR other/70183
10484         * passes.c (pass_manager::register_pass): Propagate pflags.
10485
10486 2016-04-17  Tom de Vries  <tom@codesourcery.com>
10487
10488         PR other/68875
10489         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
10490         * passes.c (pass_manager::pass_manager): Declare and init p_start in
10491         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
10492         check if it's equal to p_start.
10493         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
10494
10495 2016-04-15  Jan Hubicka  <jh@suse.cz>
10496
10497         PR ipa/70018
10498         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
10499         function does not bind to current def.
10500         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
10501         handle conservatively calls to functions that does not need to bind
10502         to current def.
10503         (check_call): Update call of worse_state.
10504         (ignore_edge_for_nothrow): Update.
10505         (ignore_edge_for_pure_const): Likewise.
10506         (propagate_pure_const): Update calls to worse_state.
10507         (skip_function_for_local_pure_const): Reformat comments.
10508
10509 2016-04-15  Jan Hubicka  <jh@suse.cz>
10510
10511         PR ipa/70018
10512         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
10513         (cgraph_node::function_symbol): Likewise.
10514         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
10515         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
10516         (symtab_node::ultimate_alias_target): Add REF parameter.
10517         (symtab_node::binds_to_current_def_p): Declare.
10518         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
10519         (cgraph_node::function_symbol): Likewise.
10520         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
10521         (cgraph_node::get_availability): Likewise.
10522         (cgraph_edge::binds_to_current_def_p): New inline function.
10523         (varpool_node::get_availability): Add REF parameter.
10524         (varpool_node::ultimate_alias_target): Likewise.
10525         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
10526         (symtab_node::binds_to_current_def_p): Likewise.
10527         * varpool.c (varpool_node::get_availability): Likewise.
10528
10529 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
10530
10531         PR target/70662
10532         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
10533         Fix mode size check.
10534
10535 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
10536
10537         * BASE-VER: Set to 7.0.0.
10538
10539 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
10540
10541         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
10542
10543 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10544
10545         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
10546         architecture revisions.
10547
10548 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
10549
10550         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
10551         * config/i386/i386.c (ix86_using_red_zone): No longer static.
10552         * config/i386/i386.md (stack decrement to push peepholes): Guard
10553         with !x86_using_red_zone ().
10554
10555 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
10556
10557         PR c++/70675
10558         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
10559         to dump_generic_node.
10560         (NIY): Pass also flags to do_niy.
10561
10562 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
10563
10564         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
10565         (simd_clone_vector_of_formal_parm_types)
10566         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
10567         (simd_clone_mangle, simd_clone_create)
10568         (simd_clone_adjust_return_type, create_tmp_simd_array)
10569         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
10570         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
10571         (ipa_simd_modify_function_body, simd_clone_linear_addend)
10572         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
10573         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
10574         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
10575         * omp-simd-clone.c: ... this new file.
10576         (simd_clone_vector_of_formal_parm_types): Make it static.
10577         * Makefile.in (OBJS): Add omp-simd-clone.o.
10578
10579 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
10580
10581         PR target/70662
10582         * config/i386/sse.md: Use proper memory operand modifiers.
10583
10584
10585 2016-04-15  Richard Biener  <rguenther@suse.de>
10586         Alan Modra  <amodra@gmail.com>
10587
10588         PR tree-optimization/70130
10589         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
10590         when alignment stays not the same and no not use the realign
10591         scheme then.
10592
10593 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10594
10595         PR target/70669
10596         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
10597         direct move handlers for KFmode. Change TFmode handlers test from
10598         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
10599
10600 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
10601
10602         PR c++/70594
10603         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
10604         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
10605         (inlined_polymorphic_ctor_dtor_block_p): Use it.
10606         * tree-ssa-live.c (remove_unused_scope_block_p): When
10607         in_ctor_dtor_block, avoid discarding not just BLOCKs with
10608         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
10609         block_ultimate_origin is FUNCTION_DECL.
10610         (remove_unused_locals): If current_function_decl is
10611         polymorphic_ctor_dtor_p, pass initial true to
10612         remove_unused_scope_block_p' is_ctor_dtor_block.
10613
10614 2016-04-14  Martin Sebor  <msebor@redhat.com>
10615
10616         PR c++/69517
10617         PR c++/70019
10618         PR c++/70588
10619         * doc/extend.texi (Variable Length): Revert.
10620
10621 2016-04-14  Marek Polacek  <polacek@redhat.com>
10622             Jan Hubicka  <hubicka@ucw.cz>
10623
10624         PR c++/70029
10625         * tree.c (verify_type): Disable the canonical type of main variant
10626         check.
10627
10628 2016-04-14  Jason Merrill  <jason@redhat.com>
10629
10630         * cfgexpand.c, expr.c: Revert previous change.
10631
10632 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
10633
10634         PR middle-end/70643
10635         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
10636         when building a mem ref for the incoming reduction variable.
10637
10638 2016-04-14  Richard Biener  <rguenther@suse.de>
10639
10640         PR tree-optimization/70614
10641         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
10642         loop if the evolution dropped to chrec_dont_know.
10643         (interpret_condition_phi): Likewise.
10644
10645 2016-04-14  Richard Biener  <rguenther@suse.de>
10646
10647         PR tree-optimization/70623
10648         * tree-ssa-pre.c (changed_blocks): Make global ...
10649         (compute_antic): ... local here.  Move and fix worklist
10650         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
10651         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
10652         worklist handling, dump when ANTIC_IN changed.
10653         (compute_partial_antic_aux): Remove worklist handling.
10654         (init_pre): Do not compute post dominators.  Add a comment about
10655         the CFG order chosen.
10656         (fini_pre): Do not free post dominators.
10657
10658 2016-04-13  Martin Sebor  <msebor@redhat.com>
10659
10660         PR c++/69517
10661         PR c++/70019
10662         PR c++/70588
10663         * doc/extend.texi (Variable Length): Document C++ specifics.
10664
10665 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
10666
10667         PR c++/70641
10668         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
10669         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
10670         eh edges have been purged.
10671
10672         PR c++/70594
10673         * tree-sra.c (create_access_replacement,
10674         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
10675         gets fancy name.
10676         * tree-pretty-print.c (dump_fancy_name): New function.
10677         (dump_decl_name, dump_generic_node): Use it.
10678
10679 2016-04-13  Jason Merrill  <jason@redhat.com>
10680
10681         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
10682         * expr.c (expand_expr_real_1): Likewise.
10683
10684 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
10685
10686         * config/i386/i386.md (kunpckhi): Swap operands.
10687         (kunpcksi): Likewise.
10688         (kunpckdi): Likewise.
10689         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
10690         (vec_pack_trunc_<mode>): Likewise.
10691
10692 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
10693
10694         PR debug/70628
10695         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
10696
10697         PR middle-end/70633
10698         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
10699         gimplification turns some element into non-constant.
10700
10701         PR debug/70628
10702         * rtl.h (convert_memory_address_addr_space_1): New prototype.
10703         * explow.c (convert_memory_address_addr_space_1): No longer static,
10704         add NO_EMIT argument and don't call convert_modes if true, pass
10705         it down recursively, remove break after return.
10706         (convert_memory_address_addr_space): Adjust caller.
10707         * simplify-rtx.c (simplify_unary_operation_1): Call
10708         convert_memory_address_addr_space_1 instead of convert_memory_address,
10709         if it returns NULL, don't simplify.
10710
10711 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10712
10713         PR target/70630
10714         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
10715
10716 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10717
10718         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10719         Bump the upper SIMDLEN limits, so that if the return type or
10720         characteristic type if the return type is void can be passed in
10721         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
10722         allowed.
10723
10724 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
10725
10726         PR target/70640
10727         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
10728         Do not use "=" constraint on an input constraint.
10729         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
10730         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
10731         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
10732         generates (neg (abs ...)) instead of (abs ...).
10733
10734 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10735
10736         PR rtl-optimization/70596
10737         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
10738         just invalidate LRA data and reset them.  Adjust dump wording.
10739
10740 2016-04-12  Martin Liska  <mliska@suse.cz>
10741
10742         Revert
10743         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
10744
10745         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
10746         estimates here.
10747         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
10748         max_loop_iterations_int.
10749         (tree_unswitch_outer_loop): Likewise.
10750         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
10751         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
10752
10753 2016-04-12  Tom de Vries  <tom@codesourcery.com>
10754
10755         PR tree-optimization/68756
10756         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
10757         instead of new_name.
10758
10759 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
10760
10761         PR tree-optimization/70602
10762         * tree-sra.c (generate_subtree_copies): Don't write anything into
10763         constant pool decls.
10764
10765         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
10766         regardless whether there are depend clauses or not.
10767
10768 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10769
10770         PR target/70381
10771         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
10772         target attribute and pragma from changing the -mfloat128
10773         and -mfloat128-hardware options.
10774
10775         * doc/extend.texi (Additional Floating Types): Document PowerPC
10776         __float128 restrictions.
10777
10778 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10779
10780         PR target/70133
10781         * config/aarch64/driver-aarch64.c
10782         (aarch64_get_extension_string_for_isa_flags): New.
10783         (arch_extension): Rename to...
10784         (aarch64_arch_extension): ...This.
10785         (ext_to_feat_string): Rename to...
10786         (aarch64_extensions): ...This.
10787         (aarch64_core_data): Keep track of architecture extension flags.
10788         (cpu_data): Rename to...
10789         (aarch64_cpu_data): ...This.
10790         (aarch64_arch_driver_info): Keep track of architecture extension
10791         flags.
10792         (get_arch_name_from_id): Rename to...
10793         (get_arch_from_id): ...This, change return type.
10794         (host_detect_local_cpu): Update and reformat for renames, handle
10795         extensions through common infrastructure.
10796
10797 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10798
10799         PR target/70133
10800         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
10801         track of a canonical flag name.
10802         (all_extensions): Likewise.
10803         (arch_to_arch_name): Also track extension flags enabled by the arch.
10804         (all_architectures): Likewise.
10805         (aarch64_parse_extension): Move to here.
10806         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
10807         rework.
10808         (aarch64_rewrite_selected_cpu): Update for above change.
10809         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
10810         are handled, such that the single explicit value enabled by an
10811         extension is kept seperate from the implicit values it also enables.
10812         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
10813         to here.
10814         (aarch64_parse_extension): New.
10815         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
10816         here to config/aarch64/aarch64-protos.h.
10817         (aarch64_parse_extension): Move from here to
10818         common/config/aarch64/aarch64-common.c.
10819         (aarch64_option_print): Update.
10820         (aarch64_declare_function_name): Likewise.
10821         (aarch64_start_file): Likewise.
10822         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
10823         the canonical flag for extensions.
10824         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
10825         flags.
10826
10827 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
10828
10829         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
10830         AARCH64_FL_CRC.
10831
10832 2016-04-09  Tom de Vries  <tom@codesourcery.com>
10833
10834         PR tree-optimization/68953
10835         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
10836         first to last subscript.
10837
10838 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
10839
10840         PR tree-optimization/70586
10841         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
10842         for any calls.
10843
10844 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
10845
10846         PR lto/70289
10847         PR ipa/70348
10848         PR tree-optimization/70373
10849         PR middle-end/70533
10850         PR middle-end/70534
10851         PR middle-end/70535
10852         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
10853         clauses for acc parallel reductions as necessary.  Error on those
10854         that are private.
10855         * omp-low.c (scan_sharing_clauses): Don't install variables which
10856         are used in acc parallel reductions.
10857         (lower_rec_input_clauses): Remove dead code.
10858         (lower_oacc_reductions): Add support for reference reductions.
10859         (lower_reduction_clauses): Remove dead code.
10860         (lower_omp_target): Don't remap variables appearing in acc parallel
10861         reductions.
10862         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
10863
10864 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
10865
10866         PR middle-end/70593
10867         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
10868         with multiple SSA_NAME defs, force the outputs other than first
10869         to be live before calling live_track_process_def on each output.
10870
10871         PR rtl-optimization/70574
10872         * fwprop.c (forward_propagate_and_simplify): Don't add
10873         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
10874         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
10875         paradoxical subregs within *loc.
10876
10877 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
10878
10879         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
10880         -ftree-parallelize-loops={0,1}.
10881         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
10882         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
10883         * config/ia64/hpux.h (LIB_SPEC): Likewise.
10884         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
10885         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
10886
10887 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
10888
10889         PR sanitizer/70541
10890         * asan.c (instrument_derefs): If we get unknown location, extract it
10891         with EXPR_LOCATION.
10892         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
10893
10894 2016-04-08  Tom de Vries  <tom@codesourcery.com>
10895
10896         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
10897         implicit firstprivate clause.
10898
10899 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10900
10901         PR target/70566
10902         * config/arm/thumb2.md (tst + branch-> lsls + branch
10903         peephole below *orsi_not_shiftsi_si): Require that condition
10904         register is dead after the peephole.
10905         (second peephole after the above): Likewise.
10906
10907 2016-04-08  Alan Modra  <amodra@gmail.com>
10908
10909         PR target/70117
10910         * builtins.c (fold_builtin_classify): For IBM extended precision,
10911         look at just the high-order double to test for NaN.
10912         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
10913         test just the high double for Inf but both doubles for subnormal
10914         limit.
10915
10916 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
10917
10918         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
10919         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
10920         node->simdclone->mask_mode != VOIDmode masks.
10921         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
10922         earlier, use it instead of node->simdclone.
10923         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10924         Set clonei->mask_mode.
10925
10926 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
10927
10928         PR c/70436
10929         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
10930         Pass it through to cp_parser_already_scoped_statement.
10931         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
10932         it through to cp_parser_statement.
10933         (cp_parser_statement): Pass IF_P through to
10934         cp_parser_iteration_statement.
10935         (cp_parser_pragma): Adjust call to
10936         cp_parser_iteration_statement.
10937
10938 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
10939
10940         PR c/70436
10941         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
10942         resolve a future -Wparentheses warning.
10943         * omp-low.c (scan_sharing_clauses): Likewise.
10944         * tree-parloops.c (eliminate_local_variables): Likewise.
10945
10946 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
10947
10948         PR rtl-optimization/70398
10949         * lra-constraints.c (process_address_1): Check zero scale and code
10950         for reloading with zero scale.
10951
10952 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
10953
10954         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
10955         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
10956
10957 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
10958
10959         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10960         Add support for AVX512F clones, include them by default for
10961         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
10962         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
10963         up to 128.
10964
10965         PR middle-end/70550
10966         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
10967         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
10968         firstprivate clauses.
10969         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
10970         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
10971         (lower_omp_target): Set TREE_NO_WARNING for
10972         non-addressable possibly uninitialized vars which are copied into
10973         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
10974
10975 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
10976
10977         * config/pa/predicates.md (integer_store_memory_operand): Accept
10978         REG+D operands with a large offset when reload_in_progress is true.
10979         (floating_point_store_memory_operand): Likewise.
10980
10981 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10982
10983         PR c++/70336
10984         * match.pd (nested int casts): Limit to GIMPLE.
10985
10986 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
10987
10988         PR ipa/66223
10989         * ipa-devirt.c (maybe_record_node): Fix comment; use
10990         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
10991
10992 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
10993
10994         PR rtl-optimization/70542
10995         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
10996         if there are any uses other than insn or debug insns.
10997
10998 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
10999             Jakub Jelinek  <jakub@redhat.com>
11000
11001         PR tree-optimization/70509
11002         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
11003         Shift HOST_WIDE_INT_1U instead of 1.
11004
11005 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
11006
11007         PR tree-optimization/70509
11008         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
11009         of the vector base type for index.
11010
11011 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
11012
11013         PR target/70510
11014         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
11015
11016 2016-04-05  Richard Biener  <rguenther@suse.de>
11017
11018         PR tree-optimization/70526
11019         * tree-sra.c (build_ref_for_offset): Use prev_base to
11020         extract the alias pointer type.
11021
11022 2016-04-05  Richard Biener  <rguenther@suse.de>
11023
11024         * dse.c (struct store_info): Remove alias_set member.
11025         (struct read_info_type): Likewise.
11026         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
11027         spill_deleted, clear_alias_set_lookup): Remove.
11028         (get_group_info): Remove dead base == NULL_RTX case.
11029         (dse_step0): Remove initialization of removed variables.
11030         (delete_dead_store_insn): Reomve alias set dumping.
11031         (free_read_records): Remove alias_set handling.
11032         (canon_address): Remove alias_set_out parameter.
11033         (record_store): Remove spill_alias_set, it's always zero.
11034         (check_mem_read_rtx): Likewise.
11035         (dse_step2): Rename from ...
11036         (dse_step2_nospill): ... this.  Adjust.
11037         (scan_stores): Rename from ...
11038         (scan_stores_nospill): ... this.
11039         (scan_reads): Rename from ...
11040         (scan_reads_nospill): ... this.
11041         (scan_stores_spill, scan_reads_spill): Remove.
11042         (dse_step3_scan): Remove for_spills argument which is always false.
11043         (dse_step3): Likewise.
11044         (dse_step5): Rename from ...
11045         (dse_step5_nospill): ... this.  Remove alias_set handling.
11046         (rest_of_handle_dse): Adjust.
11047
11048 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
11049
11050         PR target/70525
11051         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
11052         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
11053         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
11054         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
11055
11056 2016-04-05  Richard Biener  <rguenther@suse.de>
11057
11058         PR middle-end/70499
11059         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
11060         non-register type temporaries into SSA.
11061
11062 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
11063
11064         PR ipa/66223
11065         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
11066         calls when sanitizing.
11067         (possible_polymorphic_call_target_p): Fix formatting.
11068
11069 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11070             Jakub Jelinek <jakub@redhat.com>
11071
11072         PR middle-end/70457
11073         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
11074         to ensure a call statement is compatible with a built-in's
11075         prototype.
11076         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
11077         Likewise.
11078
11079 2016-04-04  Richard Biener  <rguenther@suse.de>
11080
11081         PR rtl-optimization/70484
11082         * rtl.h (canon_output_dependence): Declare.
11083         * alias.c (canon_output_dependence): New function.
11084         * dse.c (record_store): Use canon_output_dependence rather
11085         than canon_true_dependence.
11086
11087 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
11088
11089         PR ipa/68881
11090         * cgraph.h (symtab_node::copy_visibility_from): New function.
11091         * symtab.c (symtab_node::copy_visibility_from): New function.
11092         * ipa-visibility.c (optimize_weakref): New function.
11093         (function_and_variable_visibility): Use it.
11094
11095 2016-04-04  Martin Liska  <mliska@suse.cz>
11096
11097         PR hsa/70402
11098         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
11099         value that is really in range handled by SBR instruction.
11100         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
11101         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
11102         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
11103
11104 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
11105
11106         PR target/70416
11107         PR target/67391
11108         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
11109         set, but not for SP_REG operands.
11110
11111 2016-04-02  Martin Sebor  <msebor@redhat.com>
11112
11113         PR c++/67376
11114         * fold-const.c (maybe_nonzero_address): New function.
11115         (fold_comparison): Call it.  Fold equality and relational
11116         expressions involving null pointers.
11117         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
11118
11119 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
11120
11121         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
11122         the "Y" constraint (scalar FP 0.0 immediate).
11123
11124         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
11125         Add the "const_double" to the list of operand constraints.
11126
11127 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
11128
11129         PR rtl-optimization/70467
11130         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
11131         If low word of the last operand is 0, just emit addition/subtraction
11132         for the high word.
11133
11134 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11135
11136         PR target/70404
11137         * config/s390/s390.c (s390_expand_insv): Check for everything
11138         constant instead of just VOIDmode stuff.
11139
11140 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11141
11142         PR target/70496
11143         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
11144
11145 2016-04-01  Nathan Sidwell  <nathan@acm.org>
11146
11147         * tree.def (TRY_CATCH_EXPR): Correct documentation.
11148
11149 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
11150
11151         PR rtl-optimization/70461
11152         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
11153         is necessary.
11154
11155 2016-03-31  Martin Liska  <mliska@suse.cz>
11156
11157         PR hsa/70399
11158         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
11159         a tree value or an immediate integer value to a buffer
11160         that is eventually copied to a BRIG section.
11161         (emit_immediate_operand): Call the function here.
11162         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
11163         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
11164         of class' fields that are removed.
11165         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
11166         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
11167         m_brig_repr_size fields.
11168
11169 2016-03-31  Martin Liska  <mliska@suse.cz>
11170
11171         PR hsa/70391
11172         * hsa-gen.c (hsa_function_representation::update_dominance): New
11173         function.
11174         (convert_addr_to_flat_segment): Likewise.
11175         (gen_hsa_memory_set): New alignment argument.
11176         (gen_hsa_ctor_assignment): Likewise.
11177         (gen_hsa_insns_for_single_assignment): Provide alignment
11178         to gen_hsa_ctor_assignment.
11179         (gen_hsa_insns_for_direct_call): Add new argument.
11180         (expand_lhs_of_string_op): New function.
11181         (expand_string_operation_builtin): Likewise.
11182         (expand_memory_copy): New function.
11183         (expand_memory_set): New function.
11184         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
11185         (convert_switch_statements): Change signature.
11186         (generate_hsa): Use a return value of the function.
11187         (pass_gen_hsail::execute): Do not call
11188         convert_switch_statements here.
11189         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
11190         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
11191         (hsa_function_representation::update_dominance): New function.
11192
11193 2016-03-31  Martin Liska  <mliska@suse.cz>
11194
11195         PR hsa/70391
11196         * hsa-brig.c (emit_directive_variable): Emit alignment
11197         according to hsa_symbol::m_align.
11198         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
11199         (dump_hsa_symbol): Dump alignment of HSA symbols.
11200         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
11201         (gen_hsa_addr_with_align): New function.
11202         (hsa_bitmemref_alignment): Use newly added function.
11203         (gen_hsa_insns_for_load): Likewise.
11204         (gen_hsa_insns_for_store): Likewise.
11205         (gen_hsa_memory_copy): New argument added.
11206         (gen_hsa_insns_for_single_assignment): Respect
11207         alignment for assignments processed via gen_hsa_memory_copy.
11208         (gen_hsa_insns_for_direct_call): Likewise.
11209         (gen_hsa_insns_for_return): Likewise.
11210         (gen_function_def_parameters): Set default alignment.
11211         * hsa.c (hsa_object_alignment): New function.
11212         (hsa_byte_alignment): Pasted function.
11213         * hsa.h (hsa_symbol::m_align): New field.
11214
11215 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
11216
11217         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
11218         scratch field for goto case.
11219
11220 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
11221
11222         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
11223
11224 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
11225
11226         PR target/70442
11227         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
11228         (scalar_chain::convert_insn): Call convert_op for reg
11229         moves to handle undefined registers.
11230
11231 2016-03-31  Nathan Sidwell  <nathan@acm.org>
11232
11233         PR c++/70393
11234         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
11235         Assert we don't want to move backwards.
11236
11237 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
11238
11239         PR target/70453
11240         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
11241
11242 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
11243
11244         PR rtl-optimization/70460
11245         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
11246         with operand from REG_LABEL_OPERAND, instead substitute
11247         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
11248         Don't do anything for REG_NON_LOCAL_GOTO jumps.
11249
11250 2016-03-31  Martin Liska  <mliska@suse.cz>
11251
11252         * passes.c (execute_one_pass): Do not call
11253         todo_after for a discarded function.
11254
11255 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
11256
11257         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
11258         (no_cost, infinite_cost): Initialize the new field.
11259         (get_computation_cost_at): Record setup cost.
11260         (determine_use_iv_cost_address): Skip cost computation for sub
11261         uses if we can estimate it without losing accuracy.
11262
11263 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
11264
11265         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
11266         estimates here.
11267         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
11268         max_loop_iterations_int.
11269         (tree_unswitch_outer_loop): Likewise.
11270         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
11271         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
11272
11273 2016-03-30  Richard Biener  <rguenther@suse.de>
11274
11275         PR middle-end/70450
11276         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
11277
11278 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
11279
11280         PR target/70421
11281         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
11282         in gen_blendm expander.
11283
11284 2016-03-30  Nick Clifton  <nickc@redhat.com>
11285
11286         PR target/62254
11287         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
11288         case where we are already provided with an SImode SUBREG.
11289
11290 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
11291
11292         PR target/70439
11293         * config/i386/i386.c (ix86_expand_epilogue): Properly check
11294         conflict between DRAP register and __builtin_eh_return.
11295
11296 2016-03-30  Michael Matz  <matz@suse.de>
11297             Richard Biener  <rguenther@suse.de>
11298
11299         PR ipa/12392
11300         * ipa-polymorphic-call.c (struct type_change_info): Change
11301         speculative to an unsigned allowing to limit the work we do.
11302         (csftc_abort_walking_p): New inline function..
11303         (check_stmt_for_type_change): Limit the number of may-defs
11304         skipped for speculative devirtualization to
11305         max-speculative-devirt-maydefs.
11306         * params.def (max-speculative-devirt-maydefs): New param.
11307         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
11308
11309 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
11310
11311         PR target/63890
11312         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
11313         and TARGET_MACHO.
11314
11315 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
11316
11317         PR tree-optimization/59124
11318         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
11319         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
11320
11321 2016-03-29  Jeff Law  <law@redhat.com>
11322
11323         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
11324
11325 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11326
11327         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
11328         to HOST_WIDE_INT.
11329
11330 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
11331
11332         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
11333         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
11334         gcrt0.o if linking dynamically.
11335
11336 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
11337
11338         PR ipa/70283
11339         * ipa-devirt.c (methods_equal_p): New function.
11340         (compare_virtual_tables): Use it.
11341         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
11342         * cgraphclones.c (clone_function_name_1): Use
11343         symbol_table::symbol_suffix_separator.
11344         * coverage.c (build_var): Likewise.
11345         * symtab.c (symbol_table::symbol_suffix_separator): New.
11346
11347 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
11348
11349         PR rtl-optimization/70429
11350         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
11351         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
11352         mode != result_mode.
11353
11354         PR c++/70353
11355         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
11356
11357         PR tree-optimization/70405
11358         * ssa-iterators.h (num_imm_uses): Add missing braces.
11359
11360 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
11361
11362         PR rtl-optimization/68695
11363         * ira-color.c (allocno_copy_cost_saving): New.
11364         (improve_allocation): Use it.
11365
11366 2016-03-29  Richard Henderson  <rth@redhat.com>
11367
11368         PR middle-end/70355
11369         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
11370
11371 2016-03-29  Richard Biener  <rguenther@suse.de>
11372
11373         PR middle-end/70424
11374         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
11375         use alignment returned by get_pointer_alignment_1 if it is
11376         bigger than BITS_PER_UNIT.
11377         * builtins.c (get_pointer_alignment_1): Do not return true
11378         for alignment extracted from SSA info.
11379
11380 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
11381
11382         * config/ft32/ft32.opt (mnodiv): New.
11383         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
11384         * doc/invoke.texi (FT32 Options -mnodiv): New.
11385
11386 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
11387
11388         PR target/70406
11389         * config/i386/i386.md (define_split, andn): Fix modes.
11390
11391 2016-03-26  Richard Biener  <rguenther@suse.de>
11392             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11393
11394         PR ipa/70366
11395         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
11396         instead of
11397         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
11398         as 2nd argument to cl_optimization_restore().
11399
11400 2016-03-25  Richard Henderson  <rth@redhat.com>
11401
11402         PR target/70120
11403         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
11404         * config/aarch64/aarch64-protos.h: Declare it.
11405         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
11406
11407 2016-03-25  Alan Modra  <amodra@gmail.com>
11408
11409         PR target/70052
11410         * config/rs6000/constraints.md (j): Simplify.
11411         * config/rs6000/predicates.md (easy_fp_constant): Exclude
11412         decimal float 0.D.
11413         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
11414         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
11415          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
11416         in all constraint alternatives.
11417         (movtd_64bit_nodm): Delete "j" constraint alternative.
11418
11419 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
11420
11421         * tree-ssa-propagate.c: Enhance docs for
11422         SSA_PROP_NOT_INTERESTING.
11423
11424 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
11425
11426         * doc/extend.texi: Fix typo in documentation to pure attribute.
11427
11428 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
11429
11430         PR target/70319
11431         * config/pa/pa.md (bswapdi2): Use a scratch register.
11432
11433 2016-03-24  Richard Henderson  <rth@redhat.com>
11434
11435         PR middle-end/69845
11436         * fold-const.c (extract_muldiv_1): Correct test for multiplication
11437         overflow.
11438
11439 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
11440
11441         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
11442         using ix86_expand_binary_operator instead of gen_andsi3.
11443
11444 2016-03-24  Richard Biener  <rguenther@suse.de>
11445
11446         PR tree-optimization/70396
11447         * tree-vect-stmts.c (vectorizable_comparison): Use
11448         get_vectype_for_scalar_type.
11449
11450 2016-03-24  Richard Biener  <rguenther@suse.de>
11451
11452         PR middle-end/70370
11453         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
11454         with register bases.
11455
11456 2016-03-24  Richard Biener  <rguenther@suse.de>
11457
11458         PR tree-optimization/70372
11459         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
11460         build_all_ones_cst to also handle vector types correctly.
11461
11462 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
11463
11464         PR target/70381
11465         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
11466         -mfloat128 here.
11467
11468 2016-03-23  Marek Polacek  <polacek@redhat.com>
11469
11470         PR c++/69884
11471         * doc/invoke.texi: Document -Wignored-attributes.
11472
11473 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
11474
11475         PR tree-optimization/69042
11476         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
11477         parameter from 30 to 40.
11478
11479 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
11480
11481         PR tree-optimization/69042
11482         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
11483         for use with constant offset stripped in base.
11484
11485 2016-03-23  Richard Biener  <rguenther@suse.de>
11486
11487         PR middle-end/70251
11488         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
11489         mode compatibility check.
11490         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11491
11492 2016-03-23  Jeff Law  <law@redhat.com>
11493
11494         PR tree-optimization/64058
11495         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
11496         CONFLICT_COUNT.
11497         (struct ssa_conflicts): Move up earlier in the file.
11498         (conflicts_, var_map_): New static variables.
11499         (initialize_conflict_count): New function to initialize the
11500         CONFLICT_COUNT field for each conflict pair.
11501         (compare_pairs): Lazily initialize the conflict count and use it
11502         as the first tie-breaker.
11503         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
11504         and wipe conflicts_ and map_ around the call to qsort.  Remove
11505         special case for 2 coalesce pairs.
11506         * bitmap.c (bitmap_count_unique_bits): New function.
11507         (bitmap_count_bits_in_word): New function, extracted from
11508         bitmap_count_bits.
11509         (bitmap_count_bits): Use bitmap_count_bits_in_word.
11510         * bitmap.h (bitmap_count_unique_bits): Declare it.
11511
11512 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
11513
11514         PR target/69917
11515         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
11516         transparent alias chain for decl assembler name.
11517         * config/sol2.c (solaris_assemble_visibility): Likewise.
11518
11519 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11520
11521         * config/arm/arm1020e.md (1020call_op): Reduce reservation
11522         duration.
11523         (v10_fdivs): Likewise.
11524         (v10_fdivd): Likewise.
11525
11526 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11527
11528         PR driver/70132
11529         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
11530         to not call fclose twice on file.
11531
11532 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
11533
11534         PR tree-optimization/70354
11535         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
11536         oprnd0 is wider than oprnd1 and there is a cast from the wider
11537         type to oprnd1, mask it with the mask of the narrower type.
11538
11539         PR target/70321
11540         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
11541         Optimize TARGET_STV splitters, if high or low word of last argument
11542         is 0 or -1.
11543
11544 2016-03-22  Jeff Law  <law@redhat.com>
11545
11546         PR target/70232
11547         tree-ssa-threadbackward.c
11548         (fsm_find_control_statement_thread_paths): Correctly distinguish
11549         between old style jump threads vs FSM jump threads.
11550
11551 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
11552
11553         PR target/70302
11554         * config/i386/i386.c (scalar_chain::convert_op): Support
11555         uninitialized register usage case.
11556
11557 2016-03-22  Richard Biener  <rguenther@suse.de>
11558
11559         PR middle-end/70251
11560         * genmatch.c (gen_transform): Adjust last parameter to a three-state
11561         int...
11562         (capture::gen_transform): ... to change behavior when substituting
11563         a condition into cond or not-cond expr context.
11564         (dt_simplify::gen_1): Adjust.
11565         * gimple-match-head.c: Include gimplify.h for unshare_expr.
11566         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
11567         last change and instead change to
11568         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
11569         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11570
11571 2016-03-22  Anthony Green  <green@moxielogic.com>
11572
11573         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
11574         issue for moxiebox targets.
11575         (CC1PLUS_SPEC): Ditto.
11576
11577 2016-03-22  Richard Biener  <rguenther@suse.de>
11578
11579         PR middle-end/70333
11580         * fold-const.c (extract_muldiv_1): Properly perform multiplication
11581         in the wide type.
11582
11583 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11584
11585         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
11586
11587 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11588
11589         PR target/70325
11590         * config/i386/i386.c (def_builtin): Handle
11591         OPTION_MASK_ISA_AVX512VL to be and-ed with other
11592         bits.
11593         (const struct builtin_description bdesc_special_args[]):
11594         Remove duplicate ISA bits.
11595
11596 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
11597
11598         PR target/70329
11599         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
11600         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
11601         in a way that works also for AVX512BW.
11602
11603         PR target/70300
11604         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
11605         instead of source if operands[1] is xmm16 and above and
11606         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
11607         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
11608
11609         PR c++/70295
11610         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
11611         on assign if (*from_p) is a comparison, set it to
11612         TREE_NO_WARNING (*from_p).
11613
11614 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
11615
11616         PR middle-end/70326
11617         * lra.c (restore_scratches): Ignore deleted insns.
11618
11619 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
11620             Jakub Jelinek  <jakub@redhat.com>
11621
11622         PR tree-optimization/70317
11623         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
11624         to HONOR_NANS.
11625
11626 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
11627
11628         PR target/70327
11629         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
11630         of ix86_expand_move.
11631         (movoi): Ditto.
11632         (movti): Use general_operand for operand 1 predicate.
11633
11634 2016-03-21  Martin Liska  <mliska@suse.cz>
11635
11636         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
11637         insns.
11638         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
11639
11640 2016-03-21  Martin Liska  <mliska@suse.cz>
11641
11642         PR ipa/70306
11643         * ipa-icf.c (sem_function::parse): Skip static
11644         constructors and destructors.
11645
11646 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
11647
11648         PR target/70296
11649         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
11650         function-like macro, peek following token(s) if it is followed
11651         by CPP_OPEN_PAREN token with optional padding in between, and
11652         if not, don't treat it like a macro.
11653
11654 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
11655             Alexander Monakov  <amonakov@ispras.ru>
11656
11657         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
11658         for the stabs debug format.
11659
11660 2016-03-21  Richard Biener  <rguenther@suse.de>
11661
11662         PR tree-optimization/70310
11663         * tree-vect-generic.c (expand_vector_condition): Fold the built
11664         condition.
11665
11666 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
11667
11668         PR target/70293
11669         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
11670         Block third alternative for AVX-512VL target,
11671
11672 2016-03-21  Martin Liska  <mliska@suse.cz>
11673
11674         PR hsa/70234
11675         * hsa-brig.c (emit_function_directives): Mark unemitted
11676         global variables for emission.
11677         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
11678         (get_symbol_for_decl): Likewise.
11679         * hsa.h (struct hsa_symbol): New flag.
11680
11681 2016-03-21  Richard Biener  <rguenther@suse.de>
11682
11683         PR tree-optimization/70288
11684         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
11685         we do not estimate unsimplified all-constant conditionals or
11686         switches as optimized away.
11687
11688 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
11689
11690         PR rtl-optimization/69102
11691         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
11692         when we have a readonly dependency context.
11693
11694 2016-03-18  Jeff Law  <law@redhat.com>
11695
11696         PR rtl-optimization/70263
11697         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
11698         (update_equiv_regs): When trying to move a store to after the insn
11699         that sets the source of the store, make sure the store occurs after
11700         the insn that sets the source of the store.  When successful note
11701         the REG_EQUIV note created in the dump file.
11702
11703 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
11704             Bernd Schmidt  <bschmidt@redhat.com>
11705
11706         * doc/extend.texi: Document more potential problems with basic asms.
11707
11708 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
11709
11710         PR rtl-optimization/70278
11711         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
11712         VOIDmode.
11713
11714 2016-03-18  Jason Merrill  <jason@redhat.com>
11715
11716         * calls.c (load_register_parameters): Fix zero size sibcall logic.
11717
11718 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
11719
11720         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
11721         values to 128b regs.
11722
11723 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
11724
11725         PR tree-optimization/70252
11726         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
11727         boolean vector has a proper number of elements.
11728         (supportable_narrowing_operation): Likewise.
11729
11730 2016-03-18  Tom de Vries  <tom@codesourcery.com>
11731
11732         PR ipa/70269
11733         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
11734
11735 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
11736
11737         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
11738         instead of replace_rtx for DEBUG_INSNs.
11739
11740 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11741
11742         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
11743         load type reservations.
11744
11745 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
11746
11747         PR target/70188
11748         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
11749         define_constraint for "Q" and "T" constraints.
11750
11751 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
11752
11753         Tweak the pipeline model for Exynos M1
11754
11755         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
11756         model.
11757
11758 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
11759
11760         PR c/70264
11761         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
11762         where one or both locations aren't within a line_map.
11763
11764 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11765
11766         PR driver/70192
11767         * opts.c (finish_options): Don't set flag_pie to the default if
11768         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
11769         if it is -1.
11770
11771 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
11772
11773         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
11774         true as ALL_REGS argument to replace_rtx.
11775
11776 2016-03-17  Richard Biener  <rguenther@suse.de>
11777
11778         PR debug/70271
11779         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
11780         last.
11781
11782 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
11783
11784         PR target/70245
11785         * rtl.h (replace_rtx): Add ALL_REGS argument.
11786         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
11787         equality and assert mode is the same, instead of just rtx pointer
11788         equality.
11789         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
11790         true as ALL_REGS argument to replace_rtx.
11791
11792 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
11793
11794         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
11795         for boolean vector with vector mode only.
11796         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11797
11798 2016-03-17  Nick Clifton  <nickc@redhat.com>
11799
11800         PR target/70162
11801         * config/rx/rx.c (rx_print_integer): Print negative constants in
11802         decimal.
11803
11804 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
11805
11806         PR target/70261
11807         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
11808
11809 2016-03-16  Richard Henderson  <rth@redhat.com>
11810             Richard Biener  <rguenth@suse.de>
11811
11812         PR middle-end/70240
11813         PR middle-end/68215
11814         PR tree-opt/68714
11815         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
11816         first operand as is_gimple_condexpr.
11817
11818         PR middle-end/70240
11819         PR middle-end/68215
11820         Revert r231575
11821         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
11822         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
11823         Do not gimplify the result.
11824         (do_unop): Adjust call to tree_vec_extract.
11825         (do_binop): Likewise.
11826         (do_compare): Likewise.
11827         (do_plus_minus): Likewise.
11828         (do_negate): Likewise.
11829         (expand_vector_condition): Likewise.
11830         (do_cond): Likewise.
11831
11832 2016-03-16  Richard Henderson  <rth@redhat.com>
11833
11834         PR target/70048
11835         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
11836         (aarch64_classify_address): Use it.
11837         (aarch64_legitimize_address): Force all subexpressions of PLUS
11838         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
11839
11840 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
11841             Richard Biener  <rguenth@suse.de>
11842
11843         PR target/70245
11844         * rtlanal.c (replace_rtx): For REG, if from is a REG,
11845         return to even if only REGNO is equal, and assert
11846         mode is the same.
11847
11848 2016-03-11  Jeff Law  <law@redhat.com>
11849
11850         PR rtl-optimization/70224
11851         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
11852
11853 2016-03-16  Richard Henderson  <rth@redhat.com>
11854
11855         PR middle-end/70199
11856         * function.h (struct function): Add has_forced_label_in_static.
11857         * gimplify.c (force_labels_r): Set it.
11858         * lto-streamer-in.c (input_struct_function_base): Read it.
11859         * lto-streamer-out.c (output_struct_function_base): Write it.
11860         * tree-inline.c (has_label_address_in_static_1): Remove.
11861         (copy_forbidden): Remove fndecl parameter; test
11862         has_forced_label_in_static.
11863         (inline_forbidden_p): Update call to copy_forbidden.
11864         (tree_versionable_function_p): Likewise.
11865         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
11866         (chkp_versioning): Likewise.
11867         * tree-inline.h (copy_forbidden): Update decl.
11868
11869 2016-03-16  Marek Polacek  <polacek@redhat.com>
11870
11871         PR c/70093
11872         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
11873         function being thunked if the result type doesn't have fixed size.
11874         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
11875         doesn't have fixed size.
11876
11877 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
11878
11879         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
11880         reporting malformed loop nest.
11881
11882 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11883
11884         PR lto/70187
11885         * ipa-devirt.c (possible_polymorphic_call_targets): Move
11886         nodes.length () == 1 test to before first nodes[0] access.
11887
11888 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11889
11890         PR tree-optimization/68715
11891         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
11892         single_pred_p test.
11893
11894 2016-03-16  Tom de Vries  <tom@codesourcery.com>
11895
11896         PR tree-optimization/68809
11897         * graphite-scop-detection.c (same_close_phi_node): Test if result types
11898         are the same.
11899
11900 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
11901             Sandra Loosemore  <sandra@codesourcery.com>
11902
11903         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
11904         on leaf attribute. Mention ELF interposition problems.
11905
11906 2016-03-16  Alan Modra  <amodra@gmail.com>
11907
11908         PR rtl-optimization/69195
11909         PR rtl-optimization/47992
11910         * ira.c (indirect_jump_optimize): Ignore artificial defs.
11911         Add comments.
11912
11913 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
11914
11915         PR bootstrap/69513
11916         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
11917
11918 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
11919
11920         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
11921
11922 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
11923
11924         PR rtl-optimization/70222
11925         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
11926         optimization if mode is different from result_mode, queue up masking
11927         of the result in outer_op.  Formatting fix.
11928
11929         PR middle-end/70239
11930         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
11931         of safe_grow.
11932
11933 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11934
11935         PR rtl-optimization/69032
11936         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
11937         looping backwards over basic block insns.
11938
11939 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11940
11941         PR target/66660
11942         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
11943         to non-speculative when propagating trap bits.
11944
11945 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11946
11947         PR rtl-optimization/63384
11948         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
11949         DEBUG_INSN_P insns.
11950
11951 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
11952
11953         PR target/64411
11954         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
11955         factored out from ...
11956         (sched_analyze_insn): ... here.
11957         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
11958         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
11959         get_implicit_reg_pending_clobbers in it.
11960         (setup_id_reg_sets): Use setup_id_implicit_regs.
11961         (deps_init_id): Ditto.
11962
11963 2016-03-15  Tom de Vries  <tom@codesourcery.com>
11964
11965         PR ipa/70161
11966         * cgraph.c (cgraph_node::get_body): Save, reset and restore
11967         dump_file_name.
11968         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
11969         execute_function_dump.
11970         (execute_one_pass): Don't dump function if it will be dumped after ipa
11971         transform.
11972
11973 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
11974
11975         * genrecog.c (match_pattern_2): If pred is NULL don't call
11976         safe_predicate_mode on it.
11977
11978 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
11979
11980         PR middle-end/70219
11981         * lra-constraints.c (delete_move_and_clobber): Change assertion
11982         to also allow dregno == 0.
11983
11984 2016-03-14  Richard Henderson  <rth@redhat.com>
11985
11986         PR tree-opt/68714
11987         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
11988         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
11989         (reassociate_bb): Use optimize_vec_cond_expr; avoid
11990         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
11991         on vectors.
11992
11993 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
11994
11995         PR target/70083
11996         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
11997         regs.
11998         (lra_create_live_ranges_1): initialize hard register biggest_mode to
11999         VOIDmode.
12000         * lra-constraints.c (split_reg): For hard regs, try to find the
12001         biggest single-register mode used in the function.
12002
12003 2016-03-14  Richard Biener  <rguenther@suse.de>
12004
12005         PR tree-optimization/56365
12006         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
12007         constants to compare against.
12008
12009 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
12010
12011         PR target/70098
12012         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
12013         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
12014         (define_split for the GPR case): Use int_reg_operand instead of
12015         gpc_reg_operand for the output.
12016
12017 2016-03-14  Tom de Vries  <tom@codesourcery.com>
12018
12019         PR tree-optimization/70045
12020         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
12021         create_empty_if_region_on_edge argument.
12022
12023 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
12024
12025         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
12026         (STACK_CHECK_PROTECT): Likewise.
12027         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
12028         (STACK_CHECK_PROTECT): Likewise.
12029         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
12030         (STACK_CHECK_PROTECT): Likewise.
12031         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
12032         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12033         (STACK_CHECK_PROTECT): Likewise.
12034
12035 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
12036
12037         PR rtl-optimization/69307
12038         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
12039         registers in modes that span more than one register.
12040
12041 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
12042
12043         PR target/69614
12044         * lra-constraints.c (delete_move_and_clobber): New.
12045         (remove_inheritance_pseudos): Use it.
12046
12047 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
12048
12049         PR ada/70017
12050         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
12051         the libcall is LCT_THROW.
12052         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
12053         for the checking routine.
12054
12055 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
12056
12057         PR target/70131
12058         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
12059         optimization if we have direct move.
12060         (roundu32<mode>2_fprs): Likewise.
12061
12062 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
12063
12064         PR target/70123
12065         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
12066         be rematerialized.
12067         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
12068         Arguments swapped.  All callers changed.  Take reg_renumber into
12069         account, and Calculate and compare register ranges for hard regs.
12070
12071 2016-03-11  Jeff Law  <law@redhat.com>
12072
12073         PR tree-optimization/70190
12074         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12075         Handle cases where we can not extract the taken edge, even though we
12076         found a constant value.
12077
12078         PR tree-optimization/64058
12079         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
12080         (num_coalesce_pairs): Move up earlier in file.
12081         (find_coalesce_pair): Initialize the INDEX field for each pair
12082         discovered.
12083         (compare_pairs): No longer sort on the elements in each pair.
12084         Instead break ties with the index of the coalesce pair.
12085
12086 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12087
12088         PR target/70002
12089         * config/aarch64/aarch64-protos.h
12090         (aarch64_save_restore_target_globals): New prototype.
12091         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
12092         Call the above when popping pragma.
12093         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
12094         New function.
12095         (aarch64_set_current_function): Rewrite using the above.
12096
12097 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
12098
12099         PR tree-optimization/70177
12100         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
12101         (extract_ops_from_tree): ... this.  In the 2 argument
12102         overload remove _1 suffix.
12103         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
12104         (extract_ops_from_tree): ... this.
12105         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
12106         Adjust callers.
12107         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
12108         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
12109         extract_ops_from_tree instead of 2 operand one.
12110
12111 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
12112
12113         PR tree-optimization/70013
12114         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
12115         for constant-pool entries.
12116
12117 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
12118
12119         PR rtl-optimization/70174
12120         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
12121         followed by gen_lowpart on force_reg instead of just gen_lowpart.
12122
12123         PR tree-optimization/70169
12124         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
12125         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
12126         for unknown codes.
12127
12128 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
12129             Jakub Jelinek  <jakub@redhat.com>
12130
12131         PR target/70160
12132         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
12133         of uninitialized values.
12134
12135 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12136
12137         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
12138         define_expand.
12139         ("*trunctddd2"): New pattern definition.
12140         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
12141         TD->DD truncation.
12142
12143 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12144
12145         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
12146         definitions for BFP and DFP rounding modes.
12147         ("fixuns_truncdddi2", "fixuns_trunctddi2")
12148         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
12149         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
12150         ("fix_trunctf<mode>2"): Use the new constants instead of magic
12151         numbers.
12152
12153 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12154
12155         * config/s390/constraints.md: Adjust comment.
12156         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
12157         s390_decompose_addrstyle_without_index.
12158         * config/s390/predicates.md (shift_count_or_setmem_operand):
12159         Rename to setmem_operand.
12160         * config/s390/s390-protos.h
12161         (s390_decompose_shift_count): Rename to
12162         s390_decompose_addrstyle_without_index.
12163         * config/s390/s390.c (s390_decompose_shift_count)
12164         (s390_mem_constraint, print_shift_count_operand)
12165         (print_operand_address, print_operand): Rename
12166         s390_decompose_shift_count to
12167         s390_decompose_addrstyle_without_index and rename
12168         print_shift_count_operand to print_addrstyle_operand troughout the
12169         file.
12170         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
12171         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
12172         Rename shift_count_or_setmem_operand to setmem_operand.
12173         * config/s390/vx-builtins.md ("vec_insert<mode>")
12174         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
12175         nonmemory_operand.
12176
12177 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12178
12179         PR target/70168
12180         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
12181         Handle overlapping retval and newval.
12182
12183 2016-03-10  Nick Clifton  <nickc@redhat.com>
12184
12185         PR target/7044
12186         * config/aarch64/aarch64.c
12187         (aarch64_override_options_after_change_1): When forcing
12188         flag_omit_frame_pointer to be true, use a special value that can
12189         be detected if this function is called again, thus preventing
12190         flag_omit_leaf_frame_pointer from being forced to be false.
12191
12192 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12193
12194         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
12195         Set x_flag_omit_leaf_frame_pointer when handling
12196         -momit-leaf-frame-pointer.
12197
12198 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12199
12200         PR lto/69589
12201         * cgraph.c (cgraph_node::dump): Dump split_part and
12202         indirect_call_target.
12203         * cgraph.h (cgraph_node): Add indirect_call_target flag.
12204         * ipa.c (has_addr_references_p): Cleanup.
12205         (is_indirect_call_target_p): New.
12206         (walk_polymorphic_call_targets): Do not mark virtuals that may be
12207         called indirectly as local.
12208         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
12209
12210 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12211
12212         PR ipa/69630
12213         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
12214         on cxa_pure_virtual.
12215
12216 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12217
12218         PR lto/69589
12219         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
12220
12221 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
12222
12223         PR lto/69589
12224         * tree.c (need_assembler_name_p): Only record main variant type names.
12225
12226 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
12227
12228         PR target/70113.
12229         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
12230         Always define to 0 or 1.
12231         (TARGET_FIX_ERR_A53_843419): New macro.
12232         * config/aarch64/aarch64-elf-raw.h
12233         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
12234         * config/aarch64/aarch64-linux.h: Likewise.
12235         * config/aarch64/aarch64.c
12236         (aarch64_override_options_after_change_1): Do not default
12237         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
12238         843419 is on.
12239         (aarch64_attributes): Handle fix-cortex-a53-843419.
12240         (aarch64_can_inline_p): Likewise.
12241         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
12242
12243 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
12244         Jakub Jelinek <jakub@redhat.com>
12245
12246         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
12247         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
12248         DECL_COMMONS if flag_unconstrained_commons is set.
12249         * tree-dfa.c (get_ref_base_and_extent): Likewise.
12250         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
12251         (funconstrained-commons): Document.
12252
12253 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
12254
12255         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
12256         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
12257
12258 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
12259
12260         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
12261         has a proper number of elements.
12262
12263 2016-03-10  Alan Modra  <amodra@gmail.com>
12264
12265         PR rtl-optimization/69195
12266         PR rtl-optimization/47992
12267         * ira.c (recorded_label_ref): Delete.
12268         (update_equiv_regs): Return void.
12269         (indirect_jump_optimize): New function.
12270         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
12271         before regstat_compute_ri.  Don't rebuild_jump_labels here.
12272         Delete update_regstat.
12273
12274 2016-03-10  Richard Biener  <rguenther@suse.de>
12275
12276         PR tree-optimization/70128
12277         * tree-ssa-structalias.c (set_uids_in_ptset): Set
12278         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
12279
12280 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
12281
12282         PR tree-optimization/70152
12283         * tree-sra.c (replace_removed_params_ssa_names): Copy over
12284         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
12285
12286         PR target/70086
12287         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
12288         instead of gen_sse2_loadlpd.
12289         * config/i386/sse.md (*vec_concatv2df): Rename to...
12290         (vec_concatv2df): ... this.
12291
12292         PR tree-optimization/70127
12293         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
12294
12295 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
12296
12297         PR c/68473
12298         PR c++/70105
12299         * diagnostic-show-locus.c (compatible_locations_p): New function.
12300         (layout::layout): Sanitize ranges using compatible_locations_p.
12301
12302 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
12303
12304         PR c/68473
12305         PR c++/70105
12306         * diagnostic-show-locus.c (layout_range::layout_range): Replace
12307         location_range param with three const expanded_locations * and a
12308         bool.
12309         (layout::layout): Replace call to
12310         rich_location::lazily_expand_location with get_expanded_location.
12311         Extract the range and perform location expansion here, passing
12312         the results to the layout_range ctor.
12313         * diagnostic.c (source_range::debug): Delete.
12314         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
12315         of rich_location::get_expanded_location.
12316         * gcc-rich-location.c (get_range_for_expr): Delete.
12317         (gcc_rich_location::add_expr): Reimplement to avoid the
12318         rich_location::add_range overload that took a location_range,
12319         passing a location_t instead.
12320
12321 2016-03-09  Richard Biener  <rguenther@suse.de>
12322         Jakub Jelinek  <jakub@redhat.com>
12323
12324         PR tree-optimization/70138
12325         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
12326         Also skip vect_double_reduction_def.
12327
12328 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
12329
12330         PR target/70049
12331         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
12332         if the operand is "m".
12333
12334 2016-03-09  Nathan Sidwell  <nathan@acm.org>
12335
12336         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
12337
12338 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12339
12340         * config/i386/i386.c (processor_target_table): Fix cost table
12341         intialization order for znver1.
12342
12343 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
12344
12345         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
12346         - becuase -> because.
12347         * ipa-reference.c (ignore_module_statics): Likewise.
12348         * cgraph.c (cgraph_node::get_body): Likewise.
12349         * ipa-inline.c (early_inliner): Likewise.
12350         * ipa-devirt.c (types_same_for_odr): Likewise.
12351         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
12352         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
12353
12354 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12355
12356         * tree-ssa-math-opts.c: Fix typo in comment.
12357
12358 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
12359
12360         PR target/70110
12361         * config/i386/i386.c (scalar_chain::make_vector_copies,
12362         scalar_chain::convert_reg): Call end_sequence in between
12363         get_insns and emit_conversion_insns rather than after both
12364         calls.
12365
12366 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
12367
12368         PR target/70064
12369         * config/i386/i386.h (machine_function): Add
12370         pc_thunk_call_expanded flag.
12371         (ix86_pc_thunk_call_expanded): New define.
12372         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
12373         (*set_got): Rename insn pattern from set_got.
12374         (*set_got_labelled): Rename inst pattern from set_got_labelled.
12375         * config/i386/i386.c (ix86_compute_frame_layout): Use
12376         ix86_pc_thunk_call_expanded to prevent red-zone.
12377
12378 2016-03-07  Martin Jambor  <mjambor@suse.cz>
12379
12380         * hsa.h (hsa_get_ctor_statements): Declare.
12381         (hsa_get_dtor_statements): Likewise.
12382         (hsa_get_kernel_dispatch_type): Likewise.
12383         * hsa.c (hsa_get_ctor_statements): New function.
12384         (hsa_get_dtor_statements): Likewise.
12385         (hsa_get_kernel_dispatch_type): Likewise.
12386         * hsa-brig.c (hsa_cdtor_statements): Removed.
12387         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
12388         hsa_get_dtor_statements.
12389         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
12390         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
12391
12392 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12393
12394         * config/arm/arm-cores.def (cortex-r8): New.
12395         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
12396         * config/arm/arm-tune.md: Likewise.
12397         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
12398
12399 2016-03-07  Martin Sebor  <msebor@redhat.com>
12400
12401         PR rtl-optimization/19705
12402         * doc/invoke.texi (Options That Control Optimization): Clarify
12403         -fno-branch-count-reg.
12404
12405 2016-02-26  Richard Biener  <rguenther@suse.de>
12406             Jeff Law  <law@redhat.com>
12407
12408         PR tree-optimization/69740
12409         * cfghooks.c (remove_edge): Request loop fixups if we delete
12410         an edge that might turn an irreducible loop into a natural
12411         loop.
12412         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
12413         Move after definition of loops_state_clear.
12414
12415 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
12416
12417         PR rtl-optimization/69052
12418         * rtlanal.c (commutative_operand_precedence): Set higher precedence
12419         to CONST_WIDE_INT.
12420
12421 2016-03-07  Tom de Vries  <tom@codesourcery.com>
12422
12423         PR tree-optimization/70116
12424         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
12425         is_tm_ending stmts and ubsan/asan internal functions.
12426         (find_duplicate): Use it.  Don't test is_tm_ending here.
12427
12428 2016-03-07  Richard Biener  <rguenther@suse.de>
12429
12430         PR tree-optimization/70115
12431         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
12432         (propagate_constants_for_unrolling): Use replace_uses_by.
12433
12434 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
12435
12436         PR middle-end/69916
12437         * omp-low.c (struct oacc_loop): Add ifns.
12438         (new_oacc_loop_raw): Initialize it.
12439         (finish_oacc_loop): Clear mask & flags if no ifns.
12440         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
12441         (oacc_loop_xform_loop): Add ifns arg & adjust.
12442         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
12443
12444 2016-03-07  Richard Henderson  <rth@redhat.com>
12445
12446         PR rtl-opt/70061
12447         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
12448         (insert_value_copy_on_edge): Likewise.
12449
12450 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12451
12452         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
12453
12454 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12455
12456         PR target/62281
12457         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
12458
12459 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
12460
12461         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
12462
12463 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
12464
12465         Fix sseimul type attribute.
12466         * config/i386/znver1.md
12467         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
12468         znver1_sseimul_avx256_load) : Fix the type attribute.
12469         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
12470         pipe usage and latency.
12471
12472 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
12473
12474         PR c++/70084
12475         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
12476         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
12477         to the right type.
12478
12479 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
12480
12481         PR c/69973
12482         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
12483
12484         PR rtl-optimization/69941
12485         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
12486         the reg share its mode.
12487
12488 2016-03-04  Jeff Law  <law@redhat.com>
12489
12490         PR tree-optimization/69196
12491         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12492         If the both SSA_NAMEs are anonymous, then consider them unassociated
12493         and include the PHI in the statement count.
12494
12495 2016-03-05  Tom de Vries  <tom@codesourcery.com>
12496
12497         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
12498         construct in oacc routine.  Check for oacc region in oacc routine.
12499
12500 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
12501
12502         PR target/70062
12503         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
12504         2016-02-22 changes, instead don't recurse if RECUR is already true.
12505         Don't change *dynamic_check if RECUR.  Adjust recursive caller
12506         to pass true to the new argument.
12507         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
12508
12509         PR target/70059
12510         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
12511         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
12512         fixes.
12513         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
12514
12515 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
12516
12517         PR rtl-optimization/57676
12518         * lra-assigns.c (lra_assign): Guard test for maximum iterations
12519         with flag_checking.
12520
12521 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
12522
12523         * tree-vect-patterns.c (search_type_for_mask): Handle
12524         comparison of booleans.
12525
12526 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
12527
12528         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
12529         Fix @xref usage.
12530
12531         PR debug/69947
12532         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
12533         all other ops that have dw_val_class_die_ref operands,
12534         and DW_OP_GNU_entry_value.
12535
12536 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12537
12538         PR rtl-optimization/69904
12539         * config/arm/arm.c (arm_cannot_copy_insn_p):
12540         Return true for load-exclusive instructions.
12541
12542 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
12543
12544         PR target/70021
12545         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
12546         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
12547         the pattern no matter if it is used just by non-pattern, pattern
12548         or mix thereof.
12549         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
12550         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
12551         oprnd1 def_stmt is in pattern, don't look through it.
12552
12553 2016-03-03  Marek Polacek  <polacek@redhat.com>
12554
12555         PR middle-end/70050
12556         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
12557
12558 2016-03-03  Martin Liska  <mliska@suse.cz>
12559
12560         PR tree-optimization/70043
12561         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
12562         previous statement if we see a debug statement.
12563
12564 2016-03-03  Richard Biener  <rguenther@suse.de>
12565
12566         PR tree-optimization/55936
12567         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
12568         parameter and guard unsafe equivalence use.
12569         (vrp_evaluate_conditional_warnv_with_ops): Always use
12570         safe equivalences but not via the quadratic compare_names
12571         helper.
12572
12573 2016-03-03  Michael Collison  <michael.collison@linaro.org>
12574
12575         PR target/70014
12576         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
12577         for operand 1 to s_register_operand. Change predicate for operand
12578         2 to arm_not_immediate_operand.
12579
12580 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
12581
12582         * doc/tm.texi: Regenerated.
12583
12584 2016-03-02  Richard Henderson  <rth@redhat.com>
12585
12586         PR rtl-opt/67145
12587         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
12588         simplification when all args are positive non-fixed registers.
12589
12590 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12591
12592         * target.def (lra_p): Specify that new ports should use LRA.
12593
12594 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
12595
12596         PR libgomp/69555
12597         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
12598         gimplify_type_sizes the type they refer to.
12599         (omp_notice_variable): Handle reference vars to VLAs.
12600         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
12601         reference to VLA decls in the second pass instead of first pass.
12602
12603 2016-03-02  Tom de Vries  <tom@codesourcery.com>
12604
12605         PR tree-optimization/68659
12606         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
12607         new_expr == NULL_TREE.
12608         (get_new_name): Handle ADDR_EXPR.
12609
12610 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
12611
12612         PR rtl-optimization/69052
12613         * loop-invariant.c (canonicalize_address): New function.
12614         (inv_can_prop_to_addr_use): Check validity of address expression
12615         which is canonicalized by above function.
12616
12617 2016-03-02  Alan Modra  <amodra@gmail.com>
12618
12619         PR ipa/69990
12620         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
12621         larger alignment.
12622
12623 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
12624
12625         PR target/70028
12626         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
12627         (*movhi_internal): Put mask moves from and to memory separately
12628         from moves from/to GPRs.
12629
12630 2016-03-02  Richard Biener  <rguenther@suse.de>
12631
12632         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
12633         GENERIC expressions in GIMPLE.
12634
12635 2016-03-02  Richard Biener  <rguenther@suse.de>
12636
12637         * config/i386/i386.c (type_natural_mode): Fix typo.
12638
12639 2016-03-02  Nick Clifton  <nickc@redhat.com>
12640
12641         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
12642
12643 2016-03-02  Richard Biener  <rguenther@suse.de>
12644             Uros Bizjak  <ubizjak@gmail.com>
12645
12646         PR target/67278
12647         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
12648
12649 2016-03-02  Richard Biener  <rguenther@suse.de>
12650
12651         PR middle-end/67278
12652         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
12653
12654 2016-03-02  Marek Polacek  <polacek@redhat.com>
12655
12656         PR c/67854
12657         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
12658         "is promoted to" warning.
12659
12660 2016-03-01  DJ Delorie  <dj@redhat.com>
12661
12662         * config.gcc: Deprecate mep-*.
12663
12664 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
12665
12666         PR middle-end/70025
12667         * lra-constraints.c (regno_val_use_in): New.
12668         (match_reload): Use it instead of regno_use_in.
12669
12670 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
12671
12672         PR rtl-optimization/70007
12673         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
12674         references present in REG_EQUAL notes attached to non-SET patterns.
12675
12676 2016-03-01  Jeff Law  <law@redhat.com>
12677
12678         PR tree-optimization/69196
12679         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12680         Appropriately clamp the number of statements to copy when the
12681         thread path does not traverse a loop backedge.
12682
12683         PR tree-optimization/69196
12684         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12685         Do count some PHIs in the thread path against the insn count.  Decrease
12686         final statement count by one as the control statement in the last
12687         block will get removed.  Remove special cased code for handling PHIs
12688         in the last block.
12689
12690 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
12691
12692         PR target/70027
12693         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
12694         asm dialect alternatives to explicit GOTPCREL calls.
12695
12696 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
12697
12698         PR ada/70017
12699         * ira.c (do_reload): Issue warning for generic stack checking here...
12700         * reload1.c (reload): ...instead of here and streamline it.
12701
12702 2016-03-01  Nick Clifton  <nickc@redhat.com>
12703
12704         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
12705
12706 2016-03-01  Richard Biener  <rguenther@suse.de>
12707
12708         PR tree-optimization/69983
12709         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
12710         types and fall back to operand_equal_p.
12711
12712 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12713
12714         Revert
12715         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12716
12717         * config/s390/constraints.md ("jm8"): New constraint.
12718         * config/s390/predicates.md ("const_int_8bitset_operand"): New
12719         predicate.
12720         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
12721         into ...
12722         ("*setmem_long<setmem_and>"): New pattern.
12723         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
12724         into ...
12725         ("*setmem_long_31z<setmem_and>"): New pattern.
12726         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
12727         New substitution rules with the required attributes.
12728
12729
12730 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12731
12732         Revert
12733         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12734
12735         * gensupport.c (process_substs_on_one_elem): Split loop to
12736         complete mark_operands_used_in_match_dup on all expressions in the
12737         vector first.
12738         (adjust_operands_numbers): Inline into process_substs_on_one_elem
12739         and remove function.
12740
12741 2016-03-01  Richard Biener  <rguenther@suse.de>
12742
12743         PR middle-end/70022
12744         * fold-const.c (fold_indirect_ref_1): Fix range checking for
12745         vector BIT_FIELD_REF extract.
12746
12747 2016-03-01  Richard Biener  <rguenther@suse.de>
12748
12749         PR tree-optimization/69994
12750         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
12751
12752 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
12753
12754         PR tree-optimization/69956
12755         * tree-vect-stmts.c (supportable_widening_operation): Support
12756         multi-step conversion of boolean vectors.
12757         (supportable_narrowing_operation): Likewise.
12758
12759 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12760
12761         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
12762         anymore.
12763
12764 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12765
12766         * config/s390/subst.md (DSI_VI): New mode iterator.
12767         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
12768         * config/s390/vector.md ("vec_set<mode>"): Move expander before
12769         the insn definition.
12770         ("*vec_set<mode>"): Change predicate and add alternative to
12771         support only either register or const_int operands as element
12772         selector.
12773         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
12774         operands.
12775         ("vec_extract<mode>"): New expander.
12776         ("*vec_extract<mode>"): New insn definition supporting reg and
12777         const_int element selectors.
12778         ("*vec_extract<mode>_plus"): New insn definition supporting
12779         reg+const_int element selectors.
12780         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
12781         following expander+insn definition.
12782         ("<vec_shifts_name><mode>3"): New expander.
12783         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
12784
12785 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12786
12787         * config/s390/s390.md ("*tabort_1"): Change predicate to
12788         nonmemory_operand.  Add a second alternative to cover
12789         register as well as const int operands.
12790         ("*tabort_1_plus"): New pattern definition.
12791
12792 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12793
12794         * config/s390/s390.md ("*ashrdi3_cc_31")
12795         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
12796         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
12797         Merge insn definitions into ...
12798         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
12799         New pattern definition.
12800         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
12801         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
12802         ("*ashr<mode>3_and"): Merge insn definitions into ...
12803         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
12804         New pattern definition.
12805         * config/s390/subst.md ("addr_style_op_cc_subst")
12806         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
12807         substitutions patterns plus attributes.
12808         Add ashiftrt to SUBST iterator.
12809
12810 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12811
12812         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
12813         op2 to nonmemory_operand.
12814         ("*<shift>di3_31", "*<shift>di3_31_and"):
12815         Merge into single pattern definition ...
12816         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
12817         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
12818         pattern definition ...
12819         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
12820         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
12821         iterator.
12822
12823 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12824
12825         * config/s390/predicates.md (const_int_6bitset_operand): New
12826         predicate.
12827         * config/s390/s390.md: Include subst.md.
12828         ("rotl<mode>3"): New expander.
12829         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
12830         ...
12831         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
12832         * config/s390/subst.md: New file.
12833
12834 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12835
12836         * config/s390/s390.md ("op_type", "atype", "length" attributes):
12837         Remove RRR type.  It doesn't really exist.
12838         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
12839         attributes.
12840         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
12841         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
12842         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
12843         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
12844         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
12845         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
12846         `enabled' attribute.
12847
12848 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12849
12850         * gensupport.c (process_substs_on_one_elem): Split loop to
12851         complete mark_operands_used_in_match_dup on all expressions in the
12852         vector first.
12853         (adjust_operands_numbers): Inline into process_substs_on_one_elem
12854         and remove function.
12855
12856 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
12857
12858         PR target/69706
12859         * config/sparc/sparc.c (NWORDS_UP): Rename to...
12860         (CEIL_NWORDS): ...this.  Use CEIL macro.
12861         (compute_fp_layout): Adjust to above renaming.
12862         (function_arg_union_value): Likewise.
12863         (sparc_arg_partial_bytes): Likewise.
12864         (sparc_function_arg_advance): Likewise.
12865
12866 2016-02-29  Jeff Law  <law@redhat.com>
12867
12868         PR tree-optimization/70005
12869         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
12870         where an object with a boolean range is compared against a value
12871         outside [0..1].
12872
12873         PR tree-optimization/69999
12874         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
12875         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
12876         loop cleanups.
12877
12878 2016-02-29  Richard Biener  <rguenther@suse.de>
12879
12880         PR tree-optimization/69994
12881         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
12882         (get_unary_op): Look through nop conversions.
12883         (ops_equal_values_p): New function, look for equality diregarding
12884         nop conversions.
12885         (eliminate_plus_minus_pair): Use ops_equal_values_p
12886         (repropagate_negates): Do not use get_unary_op here.
12887
12888 2016-02-29  Martin Liska  <mliska@suse.cz>
12889
12890         * system.h: Poison ENABLE_CHECKING macro.
12891
12892 2016-02-29  Martin Liska  <mliska@suse.cz>
12893
12894         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
12895         is presented in dump flags.
12896         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
12897         (hsa_regalloc): Likewise.
12898
12899 2016-02-19  Richard Biener  <rguenther@suse.de>
12900
12901         PR tree-optimization/69980
12902         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
12903         permutation of those we need to keep.
12904
12905 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
12906
12907         PR target/69706
12908         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
12909         (NWORDS_UP): ...this
12910         (init_cumulative_args): Minor tweaks.
12911         (sparc_promote_function_mode): Likewise.
12912         (scan_record_type): Delete.
12913         (traverse_record_type): New function template.
12914         (classify_data_t): New structure type.
12915         (classify_registers): New inline function.
12916         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
12917         exhausted.  Instantiate traverse_record_type on classify_registers and
12918         deal with the case of a structure passed in slot #15 with no FP field
12919         in the first word.
12920         (assign_data_t): New structure type.
12921         (compute_int_layout): New static function.
12922         (compute_fp_layout): Likewise.
12923         (count_registers): New inline function.
12924         (assign_int_registers): New static function.
12925         (assign_fp_registers): Likewise.
12926         (assign_registers): New inline function.
12927         (function_arg_record_value_1): Delete.
12928         (function_arg_record_value_2): Likewise.
12929         (function_arg_record_value_3): Likewise.
12930         (function_arg_record_value): Adjust to above changes.  Instantiate
12931         traverse_record_type on count_registers to first count the number of
12932         registers to be used and then on assign_registers to assign them.
12933         (function_arg_union_value): Adjust to above renaming.
12934         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
12935         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
12936         case of a structure passed in slot #15
12937         (sparc_function_arg_advance): Likewise.
12938         (function_arg_padding): Minor tweak.
12939
12940 2016-02-29  Richard Biener  <rguenther@suse.de>
12941
12942         PR tree-optimization/69720
12943         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
12944         the adjustment_def path for possibly vectorized defs.
12945         (vect_create_epilog_for_reduction): Handle vectorized initial
12946         defs properly.
12947
12948 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
12949
12950         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
12951
12952 2016-02-27  Jeff Law  <law@redhat.com>
12953
12954         Revert
12955         2016-02-26  Richard Biener  <rguenther@suse.de>
12956                     Jeff Law  <law@redhat.com>
12957
12958         PR tree-optimization/69740
12959         * cfghooks.c (remove_edge): Request loop fixups if we delete
12960         an edge that might turn an irreducible loop into a natural
12961         loop.
12962
12963 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
12964
12965         PR rtl-optimization/69896
12966         * tree-vect-generic.c (get_compute_type): Avoid single element
12967         vector types.
12968
12969 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
12970
12971         Rename the AArch64 tuning option and related functions to enable the
12972         Newton series for the reciprocal square root to reflect its
12973         approximative characteristic.
12974
12975         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
12976         function to "aarch64_emit_approx_rsqrt".
12977         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
12978         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
12979         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
12980         (xgene1_tunings): Likewise.
12981         (use_rsqrt_p): Likewise.
12982         (aarch64_emit_swrsqrt): Use new function name.
12983         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
12984         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
12985         text explaining this option.
12986         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
12987
12988 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
12989
12990         PR target/69969
12991         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12992         complain about -mallow-movmisalign without -mvsx if
12993         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
12994
12995 2016-02-26  Joel Sherrill  <joel@rtems.org>
12996
12997         * config.gcc: Add x86_64-*-rtems*.
12998         * config/i386/rtems-64.h: New file.
12999
13000 2016-02-26  Joel Sherrill  <joel@rtems.org>
13001
13002         * config.gcc: Add aarch64-*-rtems*.
13003         * config/aarch64/rtems.h: New file.
13004
13005 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
13006
13007         PR target/69946
13008         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
13009         shift amount using %h.  Add comment.
13010
13011 2016-02-26  Richard Biener  <rguenther@suse.de>
13012             Jeff Law  <law@redhat.com>
13013
13014         PR tree-optimization/69740
13015         * cfghooks.c (remove_edge): Request loop fixups if we delete
13016         an edge that might turn an irreducible loop into a natural
13017         loop.
13018
13019 2016-02-26  Martin Jambor  <mjambor@suse.cz>
13020
13021         PR middle-end/69920
13022         * tree-sra.c (sra_modify_assign): Do not remove loads of
13023         uninitialized aggregates to SSA_NAMEs.
13024
13025 2016-02-26  Richard Henderson  <rth@redhat.com>
13026
13027         PR target/69709
13028         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
13029         pseudo in case the target rtx matches the source of the left
13030         shift.
13031
13032 2016-02-26  Martin Jambor  <mjambor@suse.cz>
13033
13034         PR hsa/69568
13035         * hsa.h (hsa_type_packed_p): Declare.
13036         * hsa.c (hsa_type_packed_p): New function.
13037         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
13038         loads.
13039         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
13040         * hsa-brig.c (emit_basic_insn): Likewise.
13041
13042 2016-02-26  Martin Jambor  <mjambor@suse.cz>
13043
13044         pr hsa/69674
13045         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
13046         pointers.
13047         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
13048
13049 2016-02-26  Martin Jambor  <mjambor@suse.cz>
13050
13051         * hsa.h (is_a_helper): New overload for hsa_op_immed for
13052         hsa_op_with_type operands.
13053         (hsa_unsigned_type_for_type): Declare.
13054         * hsa.c (hsa_unsigned_type_for_type): New function.
13055         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
13056         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
13057         the finalizer.  Do not emit extra move.
13058
13059 2016-02-26  Martin Jambor  <mjambor@suse.cz>
13060
13061         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
13062         atomic operations in private segment.
13063
13064 2016-02-26  Martin Jambor  <mjambor@suse.cz>
13065
13066         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
13067         statements to wi->info.  Also disallow omp simd constructs.
13068         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
13069         for not gridifying.  Dump special string for omp_for.
13070
13071 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13072
13073         PR target/69245
13074         * config/aarch64/aarch64.c (aarch64_set_current_function):
13075         Save/restore target globals when switching to
13076         target_option_default_node.
13077
13078 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13079
13080         PR target/69613
13081         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
13082         Return 0 if !SHIFT_COUNT_TRUNCATED.
13083
13084 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
13085             Eric Botcazou  <ebotcazou@adacore.com>
13086
13087         PR rtl-optimization/69891
13088         * dse.c (scan_insn): If we can't figure out memset arguments
13089         or they are non-constant, call clear_rhs_from_active_local_stores.
13090
13091 2016-02-26  Martin Liska  <mliska@suse.cz>
13092
13093         * doc/extend.texi: Mention clog10, clog10f an clog10l
13094         in Builtins section.
13095
13096 2016-02-26  Martin Liska  <mliska@suse.cz>
13097
13098         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
13099         CHECKING_P.
13100         (resolve_args_picking_1): Likewise.
13101         * dwarf2out.h (struct GTY): Likewise.
13102
13103 2016-02-26  Martin Liska  <mliska@suse.cz>
13104
13105         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
13106         with flag_checking.
13107         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
13108
13109 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
13110             Martin Liska  <mliska@suse.cz>
13111
13112         * doc/install.texi: Mention --enable-valgrind-annotations.
13113
13114 2016-02-26  Richard Biener  <rguenther@suse.de>
13115
13116         PR tree-optimization/69551
13117         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
13118         looking through aliases adjust DECL_PT_UID to refer to the
13119         ultimate alias target.
13120
13121 2016-02-25  Martin Liska  <mliska@suse.cz>
13122
13123         PR middle-end/69919
13124         * alloc-pool.c (after_memory_report): New variable.
13125         * alloc-pool.h (base_pool_allocator ::release): Do not use
13126         the infrastructure if after_memory_report.
13127         * toplev.c (toplev::main): Mark after memory report.
13128
13129 2016-02-25  Richard Biener  <rguenther@suse.de>
13130
13131         PR tree-optimization/48795
13132         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
13133
13134 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
13135
13136         PR driver/68463
13137         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
13138         offloading is enabled and -fopenacc or -fopenmp is specified.
13139         (CRTOFFLOADEND): Likewise.
13140         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
13141         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
13142         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
13143         (offload_objects_file_name): New static var.
13144         (tool_cleanup): Remove offload_objects_file_name file.
13145         (find_offloadbeginend): Replace with ...
13146         (find_crtoffloadtable): ... this.
13147         (run_gcc): Remove offload_argc and offload_argv.
13148         Get offload_objects_file_name from -foffload-objects=... option.
13149         Read names of object files with offload from this file, pass them to
13150         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
13151         don't pass offloadbegin and offloadend to the linker.  Don't pass
13152         offload non-LTO files to the linker, because now they're not claimed.
13153
13154 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
13155
13156         PR ipa/69630
13157         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
13158         on builtin_unreachable.
13159
13160 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
13161
13162         PR rtl-optimization/69896
13163         * regcprop.c: Include cfgrtl.h.
13164         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
13165         than remembered mode, either delete it (if noop_move_p), or
13166         treat like copy_p but not noop_p instruction.
13167
13168 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
13169
13170         PR debug/69705
13171         * dwarf2out.c (gen_variable_die): Work around buggy LTO
13172         - allow NULL decl for Fortran DW_TAG_common_block variables.
13173
13174 2016-02-24  Jason Merrill  <jason@redhat.com>
13175
13176         * common.opt (flifetime-dse): Add -flifetime-dse=1.
13177
13178 2016-02-24  Richard Biener  <rguenther@suse.de>
13179             Jakub Jelinek  <jakub@redhat.com>
13180
13181         PR middle-end/69760
13182         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
13183         conditionally executed ops to well-defined overflow behavior.
13184
13185 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
13186
13187         PR middle-end/69915
13188         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
13189         elements.
13190
13191 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13192
13193         PR rtl-optimization/69886
13194         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
13195         argument.  Use it when checking validity of set instructions.
13196         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
13197         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
13198         callsite.
13199         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
13200         * store-motion.c (find_moveable_store): Update
13201         can_assign_to_reg_without_clobbers_p callsite.
13202
13203 2016-02-24  Richard Biener  <rguenther@suse.de>
13204
13205         PR middle-end/68963
13206         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
13207         bogus check.
13208         (record_nonwrapping_iv): Do not fall back to the low/high bound
13209         for non-constant IV bases if the stmt is not always executed.
13210
13211 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13212
13213         * config/arm/arm-cores.def (cortex-a32): New entry.
13214         * config/arm/arm-tables.opt: Regenerate.
13215         * config/arm/arm-tune.md: Regenerate.
13216         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
13217         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
13218         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
13219         for -mcpu and -mtune.
13220
13221 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13222
13223         PR target/69875
13224         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
13225         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
13226         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
13227         (atomic_loaddi_1): Delete.
13228         (atomic_loaddi): Rewrite expander using the above changes.
13229
13230 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
13231
13232         PR c/69918
13233         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
13234         2 to 3.
13235
13236 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
13237             Richard Biener  <rguenth@suse.de>
13238
13239         PR middle-end/69909
13240         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
13241         set_mem_attributes if tem is SSA_NAME which got expanded
13242         as a MEM.
13243
13244 2016-02-24  Richard Biener  <rguenther@suse.de>
13245
13246         PR tree-optimization/69907
13247         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
13248         end of permutations for BB vectorization.
13249
13250 2016-02-24  Christian Bruel  <christian.bruel@st.com>
13251
13252         * config/arm/arm-c.c (arm_option_override): Initialize
13253         target_option_current_node.
13254         * config/arm/arm.c (arm_pragma_target_parse): Replace
13255         build_target_option_node call by target_option_current_node.
13256         Set target_option_current_node.
13257         Fix comments.
13258
13259 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
13260
13261         PR target/69810
13262         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
13263         define_insn_and_split to define_insn.
13264         (zero_extendqi<mode>2_dot2): Same.
13265         (extendqi<mode>2_dot): Same.
13266         (extendqi<mode>2_dot2): Same.
13267
13268 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
13269
13270         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
13271         and add bypass for AES{D,E} and AESMC pairs.
13272         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
13273         and AESMC pairs.
13274
13275 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
13276
13277         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
13278         series for reciprocal square root in Exynos M1.
13279
13280 2016-02-23  Martin Sebor  <msebor@redhat.com>
13281
13282         PR c/69759
13283         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
13284         __builtin_alloca_with_align.
13285
13286 2016-02-23  Richard Henderson  <rth@redhat.com>
13287
13288         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
13289         (ix86_register_pragmas): Remove __seg_tls.
13290         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
13291         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
13292         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
13293         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
13294         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
13295         * doc/extend.texi (__seg_tls): Remove item.
13296
13297 2016-02-23  Richard Biener  <rguenther@suse.de>
13298
13299         * alloc-pool.h (struct allocation_object): Make id member
13300         conditional on CHECKING_P again.
13301         (get_instance): Adjust.
13302         (base_pool_allocator): Likewise.
13303
13304 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
13305
13306         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
13307         (parallelize_loops): In OpenACC kernels mode, set n_threads to
13308         zero.
13309         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
13310         flag_openacc.
13311         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
13312
13313 2016-02-23  Richard Biener  <rguenther@suse.de>
13314
13315         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
13316         * bitmap.h (struct bitmap_usage): Likewise.
13317         (bitmap_move): Declare.
13318         * bitmap.c (register_overhead): Take size_t argument.
13319         (bitmap_move): New function.
13320         * df-problems.c (df_rd_transfer_function): Use bitmap_move
13321         to properly account overhead.
13322         * tree.c (free_node): Use tree_size.
13323
13324 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
13325
13326         PR c++/69902
13327         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
13328         when inverting comparison.
13329
13330         PR c/69900
13331         * common.opt (Wunreachable-code): Add Warning flag.
13332
13333 2016-02-23  Mark Wielaard  <mjw@redhat.com>
13334             Jakub Jelinek  <jakub@redhat.com>
13335
13336         PR c/69911
13337         * cgraphunit.c (check_global_declaration): Check main_input_filename
13338         and DECL_SOURCE_FILE are not NULL.
13339
13340 2016-02-23  Martin Jambor  <mjambor@suse.cz>
13341
13342         PR tree-optimization/69666
13343         * tree-sra.c (sra_modify_assign): Do not attempt to create
13344         default_def replacements for unscalarizable regions.
13345
13346 2016-02-20  Mark Wielaard  <mjw@redhat.com>
13347
13348         PR c/28901
13349         * cgraphunit.c (check_global_declaration): Check level of
13350         warn_unused_const_variable and main_input_filename.
13351         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
13352         (-Wunused-variable): For C implies -Wunused-const-variable=1.
13353         (-Wunused-const-variable): Explain levels 1 and 2.
13354
13355 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
13356
13357         PR target/69888
13358         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
13359         identical arguments.  Formatting and spelling fixes.
13360
13361         PR target/69885
13362         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
13363         be specified.
13364
13365         PR target/69894
13366         PR target/69895
13367         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
13368         and m68k-devices.def.
13369         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
13370         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
13371
13372 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
13373
13374         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
13375         and HImode registers.
13376
13377 2016-02-22  Richard Biener  <rguenther@suse.de>
13378
13379         PR tree-optimization/69882
13380         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
13381         preserve permutations present because of gaps.
13382         (vect_supported_load_permutation_p): Always continue checking
13383         permutations after vect_attempt_slp_rearrange_stmts.
13384
13385 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
13386
13387         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
13388         min_profitable_estimate, rather than min_profitable_iters.
13389
13390 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
13391
13392         PR target/69885
13393         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
13394         SImode for last match_operand.
13395
13396 2016-02-22  Martin Liska  <mliska@suse.cz>
13397
13398         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
13399         return bitsize - 1 as the return value.
13400
13401 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
13402
13403         PR target/69806
13404         PR target/54089
13405         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
13406         Handle negative shift counts.
13407         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
13408         force_reg on the shift constant.
13409         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
13410         (lshrsi3_d): Handle negative shift counts.
13411
13412 2016-02-22  Richard Biener  <rguenther@suse.de>
13413             Tom de Vries  <tom@codesourcery.com>
13414
13415         * graph.c: Include dumpfile.h.
13416         (print_graph_cfg): Split into three overloads.
13417         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
13418
13419 2016-02-22  Tom de Vries  <tom@codesourcery.com>
13420
13421         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
13422         dump-fn.
13423
13424 2016-02-22  Richard Biener  <rguenther@suse.de>
13425
13426         PR ipa/37448
13427         * ipa-inline-transform.c (inline_call): When not updating
13428         overall summaries adjust self size by the growth estimate.
13429         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
13430         hash-set, do not update overall summaries here.  Renamed from ...
13431         (inline_to_all_callers): ... this which is now wrapping the
13432         above and performing delayed overall summary update.
13433         (early_inline_small_functions): Delay updating of the overall
13434         summary.
13435
13436 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
13437
13438         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
13439         variable.
13440
13441 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
13442
13443         PR driver/69805
13444         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
13445         :%* in %:gt() argument.
13446         (greater_than_spec_func): Adjust for expecting only numbers,
13447         if there are more than two numbers, compare the last two.
13448
13449 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
13450
13451         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
13452         -Wnarrowing with -std.
13453
13454 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
13455
13456         PR c++/69851
13457         * expr.c (store_field): Don't use bit-field path if exp is
13458         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
13459         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
13460         and the assignment can be performed by bitwise copy.  Formatting
13461         fix.
13462
13463         PR middle-end/69838
13464         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
13465         call copy_reg_eh_region_note_forward on before and/or after sequences
13466         and remove note from insn if it no longer can throw.
13467
13468         PR target/69820
13469         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
13470         if TARGET_AVX512BW.
13471
13472 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13473
13474         * config/s390/vector.md: Add missing commutative operand markers
13475         to the patterns which qualify for one.
13476         * config/s390/vx-builtins.md: Likewise.
13477
13478 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13479
13480         * config/s390/vector.md (VI, VI_QHS): Add single element vector
13481         types to mode iterators.
13482         (vec_double): ... and mode attribute.
13483         * config/s390/vx-builtins.md (non_vec_int): Likewise.
13484
13485 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13486
13487         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
13488         Change the predicate of op2 from nonimmediate to general and let
13489         reload fix it if necessary.
13490
13491 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13492
13493         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
13494
13495 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13496
13497         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
13498         mode.
13499
13500 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13501
13502         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
13503         * config/s390/s390.c (s390_expand_vec_movstr): New function.
13504         * config/s390/s390.md ("movstr<P:mode>"): Call
13505         s390_expand_vec_movstr.
13506
13507 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13508
13509         * config/s390/s390.md: Add missing output modifier for operand 1
13510         to print it as address properly.
13511
13512 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13513
13514         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
13515         * config/s390/2964.md: New file.
13516         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
13517         of insn grouping attributes depending on the CPU level.
13518         (s390_get_unit_mask): New function.
13519         (s390_sched_score): Remove the OOO from the scheduling macros.
13520         Add loop to calculate a score for the instruction mix.
13521         (s390_sched_reorder): Likewise plus improve debug output.
13522         (s390_sched_variable_issue): Rename macros as above.  Calculate
13523         the unit distances after actually scheduling an insn.  Improve
13524         debug output.
13525         (s390_sched_init): Clear last_scheduled_unit_distance array.
13526         * config/s390/s390.md: Include 2964.md.
13527
13528 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
13529
13530         PR target/69671
13531         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
13532         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
13533         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
13534         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
13535         *avx512f_<code>v8div16qi2_mask_1): New insns.
13536
13537 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
13538
13539         PR target/68404
13540         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
13541         2016-02-09 change.
13542
13543         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
13544         earlyclobber from target.  Use wF constraint for fused memory
13545         address.
13546         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
13547
13548 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
13549             Martin Liska  <mliska@suse.cz>
13550
13551         PR sanitizer/69863
13552         * cfgexpand.c (asan_sanitize_stack_p): New function.
13553         (partition_stack_vars): Use the function.
13554         (expand_stack_vars): Likewise.
13555         (defer_stack_allocation): Likewise.
13556         (expand_used_vars): Likewise.
13557
13558 2016-02-18  Richard Biener  <rguenther@suse.de>
13559
13560         PR middle-end/69553
13561         * fold-const.c (operand_equal_p): Properly compare offsets for
13562         IMAGPART_EXPR and ARRAY_REF.
13563
13564 2016-02-18  Nick Clifton  <nickc@redhat.com>
13565
13566         PR target/62254
13567         PR target/69610
13568         * config/arm/arm.c (arm_option_override_internal): Disable
13569         interworking if the target does not support thumb instructions.
13570         (arm_reload_in_hi): Handle the case where a register to register
13571         move needs reloading because there is no simple pattern to handle
13572         it.
13573         (arm_reload_out_hi): Likewise.
13574
13575 2016-02-18  Richard Biener  <rguenther@suse.de>
13576
13577         PR middle-end/69854
13578         * match.pd: Don't use fold_binary or fold_unary for folding
13579         constants.
13580
13581 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
13582
13583         PR c++/69850
13584         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
13585         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
13586         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
13587         warn on gimple_no_warning_p statements.
13588
13589 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
13590
13591         * doc/extend.texi (C++ Attributes): Correct description of
13592         warn_unused type attribute.
13593
13594 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13595
13596         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
13597         correct instruction.
13598
13599 2016-02-17  Richard Biener  <rguenther@suse.de>
13600
13601         PR rtl-optimization/69609
13602         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
13603         (find_traces_1_round): When ending a trace update cached priority
13604         of successors.
13605         (bb_to_key): Use cached priority when available.
13606         (copy_bb): Initialize cached priority.
13607         (reorder_basic_blocks_software_trace_cache): Likewise.
13608
13609 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13610
13611         PR target/69161
13612         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
13613         New predicate.
13614         (aarch64_comparison_operator): Break overly long line into two.
13615         (aarch64_comparison_operation): Likewise.
13616         * config/aarch64/aarch64.md (cstorecc4): Use
13617         aarch64_comparison_operator_mode instead of
13618         aarch64_comparison_operator.
13619         (cstore<mode>4): Likewise.
13620         (aarch64_cstore<mode>): Likewise.
13621         (*cstoresi_insn_uxtw): Likewise.
13622         (cstore<mode>_neg): Likewise.
13623         (*cstoresi_neg_uxtw): Likewise.
13624
13625 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13626
13627         PR target/69161
13628         * config/arm/predicates.md (arm_comparison_operator_mode):
13629         New predicate.
13630         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
13631         instead of arm_comparison_operator.
13632         (*mov_negscc): Likewise.
13633         (*mov_notscc): Likewise.
13634         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
13635         (*thumb2_mov_negscc): Likewise.
13636         (*thumb2_mov_negscc_strict_it): Likewise.
13637         (*thumb2_mov_notscc): Likewise.
13638         (*thumb2_mov_notscc_strict_it): Likewise.
13639
13640 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
13641
13642         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
13643         Add missing return.
13644
13645 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
13646
13647         * config/visium/visium.c (machine_libfunc_index): New enum.
13648         (machine_libfuncs): New structure.
13649         (visium_libfuncs): New static variable.
13650         (TARGET_INIT_LIBFUNCS): Define to...
13651         (visium_init_libfuncs): ...this.  New function.
13652         (expand_block_move_4): Use the appropriate libfunc.
13653         (expand_block_move_2): Likewise.
13654         (expand_block_move_1): Likewise.
13655         (expand_block_set_4): Likewise.
13656         (expand_block_set_2): Likewise.
13657         (expand_block_set_1): Likewise.
13658         (visium_trampoline_init): Likewise.
13659
13660 2016-02-17  Nick Clifton  <nickc@redhat.com>
13661
13662         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
13663         TI's devices.csv file as of March 2016.
13664
13665 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13666
13667         PR Target/48344
13668         * opts-global.c (handle_common_deferred_options): Introduce and
13669         initialize two global variables to remember command-line options
13670         specifying a stack-limiting register.
13671         * opts.h: Add extern declarations of the two new global variables.
13672         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
13673         variable based on the values of the two new global variables.
13674
13675 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13676
13677         PR c/69835
13678         * common.opt (Wnonnull-compare): New warning.
13679         * doc/invoke.texi (-Wnonnull): Remove text about comparison
13680         of arguments against NULL.
13681         (-Wnonnull-compare): Document.
13682         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
13683         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
13684         * passes.def (pass_warn_nonnull_compare): Add.
13685         * gimple-ssa-nonnull-compare.c: New file.
13686
13687 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13688
13689         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
13690         AARCH64_EXTRA_TUNE_RECIP_SQRT.
13691
13692 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13693
13694         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
13695         reciprocal sqrt for -mlow-precision-recip-sqrt.
13696
13697 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13698             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13699
13700         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
13701         always use lane loads to construct non-constant vectors.
13702
13703 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13704
13705         * config/aarch64/aarch64.md
13706         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
13707         constraints for operand 3.
13708         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
13709
13710 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13711             Richard Biener  <rguenther@suse.de>
13712
13713         PR tree-optimization/69820
13714         * tree-vect-patterns.c (type_conversion_p): Return false if
13715         *orig_type is unsigned single precision or boolean.
13716         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
13717         Formatting fix.
13718
13719 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13720
13721         PR rtl-optimization/69764
13722         PR rtl-optimization/69771
13723         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
13724         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
13725
13726 2016-02-16  Richard Biener  <rguenther@suse.de>
13727
13728         PR tree-optimization/69776
13729         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
13730         sets from caller.
13731         (indirect_refs_may_alias_p): Likewise.
13732         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
13733         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
13734         according to tbaa_p.
13735         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
13736         (optimize_stmt): For redundant store discovery do not allow tbaa.
13737
13738 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
13739
13740         PR tree-optimization/69714
13741         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
13742         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
13743
13744 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
13745
13746         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
13747         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
13748         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
13749         * config/arc/arc.c (arc_init): Check FPU options.
13750         (get_arc_condition_code): Handle new CC_FPU* modes.
13751         (arc_select_cc_mode): Likewise.
13752         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
13753         register pair only. Allow access for ARCv2 accumulator.
13754         (gen_compare_reg): Whenever we have FPU support use FPU compare
13755         instructions.
13756         (arc_reorg): Don't generate brcc insns when FPU compare
13757         instructions are involved.
13758         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
13759         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
13760         floating point emulation.
13761         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
13762         (REVERSE_CONDITION): Add new CC_FPU* modes.
13763         (TARGET_FP_SP_BASE): Define.
13764         (TARGET_FP_DP_BASE): Likewise.
13765         (TARGET_FP_SP_FUSED): Likewise.
13766         (TARGET_FP_DP_FUSED): Likewise.
13767         (TARGET_FP_SP_CONV): Likewise.
13768         (TARGET_FP_DP_CONV): Likewise.
13769         (TARGET_FP_SP_SQRT): Likewise.
13770         (TARGET_FP_DP_SQRT): Likewise.
13771         (TARGET_FP_DP_AX): Likewise.
13772         * config/arc/arc.md (ARCV2_ACC): New constant.
13773         (type): New fpu type attribute.
13774         (SDF): Conditional iterator.
13775         (cstore<mode>, cbranch<mode>): Change expand condition.
13776         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
13777         handles FPU/FPX cases as well.
13778         * config/arc/arc.opt (mfpu): New option.
13779         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
13780         Renamed.
13781         (adddf3, muldf3, subdf3): Removed.
13782         * config/arc/predicates.md (proper_comparison_operator): Recognize
13783         CC_FPU* modes.
13784         * config/arc/fpu.md: New file.
13785         * doc/invoke.texi (ARC Options): Document mfpu option.
13786
13787 2016-02-16  Richard Biener  <rguenther@suse.de>
13788
13789         PR rtl-optimization/69291
13790         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
13791         noce_operand_ok check.
13792
13793 2016-02-16  Tom de Vries  <tom@codesourcery.com>
13794
13795         PR lto/67709
13796         * omp-low.c (simd_clone_create): Remove call to
13797         symtab->call_cgraph_insertion_hooks.
13798
13799 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
13800
13801         PR tree-optimization/69802
13802         * tree-ssa-reassoc.c (update_range_test): If op is
13803         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
13804         op == 1 test of precision 1 integral op, otherwise handle
13805         that case as op itself.  Fix up formatting.
13806         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
13807         up formatting.
13808
13809 2016-02-16  Richard Biener  <rguenther@suse.de>
13810
13811         PR tree-optimization/69586
13812         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
13813         types for conversion sources.
13814
13815 2016-02-16  Richard Biener  <rguenther@suse.de>
13816
13817         PR middle-end/69801
13818         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
13819         mask OEP_ADDRESS_OF.
13820
13821 2016-02-16  Alan Modra  <amodra@gmail.com>
13822
13823         PR target/68973
13824         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
13825         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
13826         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
13827         (p8_mtvsrwz): New.
13828         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
13829         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
13830         (p8_fmrgow_<mode>): Likewise.
13831         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
13832         changes.
13833         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
13834         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
13835         to use movdi_internal64.  Remove op0_di.
13836         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
13837
13838 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
13839
13840         Add support for the FCCMP insn types
13841
13842         * config/aarch64/aarch64.md (fccmp): Change insn type.
13843         (fccmpe): Likewise.
13844         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
13845         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
13846         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
13847         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
13848         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
13849         * config/arm/types.md (fccmps): Add new insn type.
13850         (fccmpd): Likewise.
13851
13852 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13853
13854         * alias.c (get_alias_set): Fix a typo in comment.
13855
13856 2016-02-15  Richard Biener  <rguenther@suse.de>
13857
13858         PR tree-optimization/69595
13859         * match.pd: Complete range test simplification to true.
13860
13861 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
13862
13863         PR rtl-optimization/69648
13864         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
13865         pic_offset_table_rtx.
13866
13867         PR rtl-optimization/69752
13868         * ira.c (update_equiv_regs): When looking for more than a single SET,
13869         also take other side effects into account.
13870
13871 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
13872
13873         * config/s390/s390.c (s390_function_profiler): Add a new sequence
13874         for z900+ CPUs in 31-bit mode.
13875
13876 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
13877
13878         * common/config/s390/s390-common.c (s390_supports_split_stack):
13879         New function.
13880         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
13881         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
13882         * config/s390/s390.c (struct machine_function): New field
13883         split_stack_varargs_pointer.
13884         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
13885         in s390_emit_prologue.
13886         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
13887         vararg pointer.
13888         (morestack_ref): New global.
13889         (SPLIT_STACK_AVAILABLE): New macro.
13890         (s390_expand_split_stack_prologue): New function.
13891         (s390_live_on_entry): New function.
13892         (s390_va_start): Use split-stack vararg pointer if appropriate.
13893         (s390_asm_file_end): Emit the split-stack note sections.
13894         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
13895         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
13896         (UNSPECV_SPLIT_STACK_CALL): New unspec.
13897         (UNSPECV_SPLIT_STACK_DATA): New unspec.
13898         (split_stack_prologue): New expand.
13899         (split_stack_space_check): New expand.
13900         (split_stack_data): New insn.
13901         (split_stack_call): New expand.
13902         (split_stack_call_*): New insn.
13903         (split_stack_cond_call): New expand.
13904         (split_stack_cond_call_*): New insn.
13905
13906 2016-02-15  Richard Biener  <rguenther@suse.de>
13907
13908         PR tree-optimization/69783
13909         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
13910         Add trivially correct cases.
13911
13912 2016-02-15  Tom de Vries  <tom@codesourcery.com>
13913
13914         PR lto/69655
13915         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
13916         do_force_output.
13917         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
13918
13919 2016-02-15  Richard Biener  <rguenther@suse.de>
13920
13921         PR tree-optimization/69776
13922         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
13923         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
13924         indicate whether we can use TBAA to disambiguate against stores.
13925         Use alias-set zero if not.
13926         (visit_reference_op_store): Do not use TBAA when looking up
13927         redundant stores.
13928         * tree-ssa-pre.c (compute_avail): Use TBAA here.
13929         (eliminate_dom_walker::before_dom_children): But not when looking
13930         up redundant stores.
13931
13932 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
13933
13934         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
13935
13936 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
13937
13938         *  config/i386/znver1.md
13939         (znver1_pop, znver1_pop_mem,
13940         znver1_load_imov_double_store,
13941         znver1_load_imov_direct_store,
13942         znver1_load_imov_direct_load,
13943         znver1_load_imov_double_load): Add new.
13944         (znver1_insn, znver1_insn_load): Add icmov type.
13945         (znver1_sseavx_fma,
13946         znver1_sseavx_fma_load,
13947         znver1_avx256_fma,
13948         znver1_avx256_fma_load): Fix pipe usage.
13949
13950 2016-02-14  Alan Modra  <amodra@gmail.com>
13951
13952         PR target/68973
13953         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
13954         with an invalid hard reg, reload just the reg not the entire
13955         pre/post-inc/dec address expression.
13956
13957 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
13958
13959         PR target/67260
13960         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
13961         fixed R1_REG scratch reg.
13962         (sibcall_value_pcrel_fdpic): Likewise.
13963
13964 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
13965
13966         PR target/67636
13967         PR target/64345
13968         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
13969
13970 2016-02-12  Walter Lee  <walt@tilera.com>
13971
13972         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
13973         * config/tilegx/t-tilegx: Likewise.
13974
13975 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
13976
13977         PR other/69554
13978         * diagnostic-show-locus.c (struct line_span): New struct.
13979         (layout::get_first_line): Delete.
13980         (layout::get_last_line): Delete.
13981         (layout::get_num_line_spans): New member function.
13982         (layout::get_line_span): Likewise.
13983         (layout::print_heading_for_line_span_index_p): Likewise.
13984         (layout::get_expanded_location): Likewise.
13985         (layout::calculate_line_spans): Likewise.
13986         (layout::m_first_line): Delete.
13987         (layout::m_last_line): Delete.
13988         (layout::m_line_spans): New field.
13989         (layout::layout): Update comment.  Replace m_first_line and
13990         m_last_line with m_line_spans, replacing their initialization
13991         with a call to calculate_line_spans.
13992         (diagnostic_show_locus): When printing source lines and
13993         annotations, rather than looping over a single span
13994         of lines, instead loop over each line_span within
13995         the layout, with an inner loop over the lines within them.
13996         Call the context's start_span callback when changing line spans.
13997         * diagnostic.c (diagnostic_initialize): Initialize start_span.
13998         (diagnostic_build_prefix): Break out the building of the location
13999         part of the string into...
14000         (diagnostic_get_location_text): ...this new function, rewriting
14001         it from nested ternary expressions to a sequence of "if"
14002         statements.
14003         (default_diagnostic_start_span_fn): New function.
14004         * diagnostic.h (diagnostic_start_span_fn): New typedef.
14005         (diagnostic_context::start_span): New field.
14006         (default_diagnostic_start_span_fn): New prototype.
14007
14008 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
14009
14010         PR driver/69779
14011         * gcc.c (driver::finalize): Fix cleanup of "specs".
14012
14013 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
14014
14015         PR driver/69265
14016         PR driver/69453
14017         * gcc.c (driver::driver): Initialize m_option_suggestions.
14018         (driver::~driver): Clean up m_option_suggestions.
14019         (suggest_option): Convert to...
14020         (driver::suggest_option): ...this, and split out into
14021         driver::build_option_suggestions and find_closest_string.
14022         (driver::build_option_suggestions): New function, from
14023         first half of suggest_option.  Special-case
14024         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
14025         the sanitizer_opts array.  For options of enum types, add the
14026         various enum values to the candidate strings.
14027         (driver::handle_unrecognized_options): Remove "const".
14028         * gcc.h (driver::handle_unrecognized_options): Likewise.
14029         (driver::build_option_suggestions): New decl.
14030         (driver::suggest_option): New decl.
14031         (driver::m_option_suggestions): New field.
14032         * opts-common.c (add_misspelling_candidates): New function.
14033         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
14034         and make non-static.
14035         * opts.h (sanitizer_opts): New array decl.
14036         (add_misspelling_candidates): New function decl.
14037         * spellcheck.c (find_closest_string): New function.
14038         * spellcheck.h (find_closest_string): New function decl.
14039
14040 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
14041
14042         PR rtl-optimization/69764
14043         PR rtl-optimization/69771
14044         * optabs.c (expand_binop_directly): For shift_optab_p, force
14045         convert_modes with VOIDmode if xop1 has VOIDmode.
14046
14047 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
14048
14049         PR target/69729
14050         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
14051         to correctly determine instrumentation thunks.
14052
14053 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
14054
14055         PR ipa/69241
14056         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
14057         type by reference, force lhs on the call.
14058
14059         PR ipa/68672
14060         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
14061         Compute retval and retbnd early in all cases if split_part_return_p
14062         and return_bb is not EXIT.  Remove all clobber stmts and reset
14063         all debug stmts that refer to SSA_NAMEs defined in split part,
14064         except if it is retval, in that case replace the old retval with the
14065         lhs of the call to the split part.
14066
14067 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
14068
14069         revert:
14070         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
14071
14072         PR middle-end/66726
14073         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
14074         whose result is used in PHI.
14075         (maybe_optimize_range_tests): Likewise.
14076         (final_range_test_p): Likweise.
14077
14078 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
14079
14080         PR middle-end/66726
14081         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
14082         whose result is used in PHI.
14083         (maybe_optimize_range_tests): Likewise.
14084         (final_range_test_p): Likweise.
14085
14086 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
14087
14088         * cgraph.c: Spelling fixes - behaviour -> behavior and
14089         neighbour -> neighbor.
14090         * target.def: Likewise.
14091         * sel-sched.c: Likewise.
14092         * config/mips/mips.c: Likewise.
14093         * config/arc/arc.md: Likewise.
14094         * config/arm/cortex-a57.md: Likewise.
14095         * config/arm/arm.c: Likewise.
14096         * config/arm/neon.md: Likewise.
14097         * config/arm/arm-c.c: Likewise.
14098         * config/vms/vms-c.c: Likewise.
14099         * config/s390/s390.c: Likewise.
14100         * config/i386/znver1.md: Likewise.
14101         * config/i386/i386.c: Likewise.
14102         * config/ia64/hpux-unix2003.h: Likewise.
14103         * config/msp430/msp430.md: Likewise.
14104         * config/rx/rx.c: Likewise.
14105         * config/rx/rx.md: Likewise.
14106         * config/aarch64/aarch64-simd.md: Likewise.
14107         * config/aarch64/aarch64.c: Likewise.
14108         * config/nvptx/nvptx.c: Likewise.
14109         * config/bfin/bfin.c: Likewise.
14110         * config/cris/cris.opt: Likewise.
14111         * config/rs6000/rs6000.c: Likewise.
14112         * target.h: Likewise.
14113         * spellcheck.c: Likewise.
14114         * ira-build.c: Likewise.
14115         * tree-inline.c: Likewise.
14116         * builtins.c: Likewise.
14117         * lra-constraints.c: Likewise.
14118         * explow.c: Likewise.
14119         * hwint.h: Likewise.
14120         * targhooks.c: Likewise.
14121         * tree-vect-data-refs.c: Likewise.
14122         * expr.c: Likewise.
14123         * doc/tm.texi: Likewise.
14124         * doc/extend.texi: Likewise.
14125         * doc/install.texi: Likewise.
14126         * doc/md.texi: Likewise.
14127         * tree-ssa-tail-merge.c: Likewise.
14128         * sched-int.h: Likewise.
14129         * match.pd: Likewise.
14130         * sched-ebb.c: Likewise.
14131         * target.def (omit_struct_return_reg): Likewise.
14132         * gimple-ssa-isolate-paths.c: Likewise.
14133         (find_implicit_erroneous_behaviour): Renamed to...
14134         (find_implicit_erroneous_behavior): ... this.
14135         (find_explicit_erroneous_behaviour): Renamed to...
14136         (find_explicit_erroneous_behavior): ... this.
14137         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
14138
14139 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
14140
14141         PR rtl-optimization/64682
14142         PR rtl-optimization/69567
14143         PR rtl-optimization/69737
14144         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
14145         in I2 as well, just lose it.
14146
14147 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14148
14149         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
14150         New variable.
14151         (aarch64_last_printed_tune_string): Likewise.
14152         (aarch64_declare_function_name): Only output .arch assembler
14153         directive if it will be different from the previously output
14154         directive.  Same for .tune comment but only if -dA is set.
14155         (aarch64_start_file): New function.
14156         (TARGET_ASM_FILE_START): Define.
14157
14158 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
14159
14160         PR plugins/69758
14161         * Makefile.in (PLUGIN_HEADERS): Add params.list.
14162
14163 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
14164
14165         PR target/65313
14166         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
14167         -Wmaybe-uninitialized warning.
14168
14169 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
14170
14171         PR target/69713
14172         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
14173
14174 2016-02-11  Richard Biener  <rguenther@suse.de>
14175
14176         PR rtl-optimization/69291
14177         * ifcvt.c (noce_try_store_flag_constants): Do not allow
14178         subexpressions affected by changing the result.
14179
14180 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
14181
14182         PR target/69148
14183         * lra-constraints.c (curr_insn_transform): Find in/out operands
14184         for secondary memory moves.  Update dups.
14185
14186 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
14187
14188         PR tree-optimization/69652
14189         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
14190         to nested loop, did source re-formatting, skip debug statements,
14191         add check on statement with volatile operand, remove dead scalar
14192         statements.
14193
14194 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
14195             Patrick Palka  <ppalka@gcc.gnu.org>
14196
14197         PR ipa/69241
14198         PR c++/69649
14199         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
14200         calls if the return type is TREE_ADDRESSABLE.
14201         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
14202         * ipa-split.c (split_function): Fix doubled "we" in comment.
14203         Use void return type for the split part even if
14204         !split_point->split_part_set_retval.
14205
14206 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
14207
14208         PR tree-optimization/68021
14209         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
14210         when computing the value of biv cand by itself.
14211
14212 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
14213
14214         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
14215         (cortexa57_tunings): Likewise.
14216         (cortexa72_tunings): Likewise.
14217         (arch_macro_fusion_pair_p): Add support for AES fusion.
14218         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
14219         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
14220         Allow virtual registers before reload so early scheduling works.
14221         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
14222         correct latency and pipeline.
14223         (cortex_a57_crypto_complex): Likewise.
14224         (cortex_a57_crypto_xor): Likewise.
14225         (define_bypass): Add AES bypass.
14226
14227 2016-02-10  Richard Biener  <rguenther@suse.de>
14228
14229         PR tree-optimization/69726
14230         * passes.def: Add DCE pass before late uninit.
14231         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
14232         really fixup if-conversions job.
14233
14234 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
14235
14236         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
14237         (arm_cortex_a57_tune): Likewise.
14238         (aarch_macro_fusion_pair_p): Add support for AES fusion.
14239         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
14240
14241 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
14242
14243         * timevar.def (TV_PHASE_DBGINFO): Delete.
14244         (TV_PHASE_CHECK_DBGINFO): Likewise.
14245         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
14246
14247 2016-02-10  Richard Biener  <rguenther@suse.de>
14248
14249         PR tree-optimization/69719
14250         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14251         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
14252
14253 2016-02-09  Andrew Pinski  <apinski@cavium.com>
14254
14255         PR tree-opt/69282
14256         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
14257         get_vcond_mask_icode returns false.
14258
14259 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
14260
14261         PR target/68404
14262         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
14263         an ADDIS that adds a pointer to a large constant that sets the
14264         upper16 bits with a load operation.
14265
14266 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
14267
14268         PR target/68532
14269         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
14270         order.
14271         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
14272         endian.
14273         (vzipq_s16): Likewise.
14274         (vzipq_s32): Likewise.
14275         (vzipq_f32): Likewise.
14276         (vzipq_u8): Likewise.
14277         (vzipq_u16): Likewise.
14278         (vzipq_u32): Likewise.
14279         (vzipq_p8): Likewise.
14280         (vzipq_p16): Likewise.
14281
14282 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
14283
14284         PR target/68532
14285         * config/arm/arm.c (neon_endian_lane_map): New function.
14286         (neon_vector_pair_endian_lane_map): New function.
14287         (arm_evpc_neon_vuzp): Allow for big endian lane order.
14288         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
14289         endian.
14290         (vuzpq_s16): Likewise.
14291         (vuzpq_s32): Likewise.
14292         (vuzpq_f32): Likewise.
14293         (vuzpq_u8): Likewise.
14294         (vuzpq_u16): Likewise.
14295         (vuzpq_u32): Likewise.
14296         (vuzpq_p8): Likewise.
14297         (vuzpq_p16): Likewise.
14298
14299 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
14300
14301         PR target/69634
14302         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
14303         debug insns.
14304
14305 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
14306
14307         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
14308         truncate const_int operand 1 to QImode.
14309
14310 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
14311
14312         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
14313         corresponding to an abnormal edge.
14314
14315 2016-02-09  Tom de Vries  <tom@codesourcery.com>
14316
14317         PR tree-optimization/69599
14318         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
14319         function.
14320         (find_func_aliases_for_builtin_call, find_func_clobbers)
14321         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
14322         partition.
14323
14324 2016-02-09  Richard Biener  <rguenther@suse.de>
14325
14326         PR tree-optimization/69715
14327         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
14328         LHS on calls as non-rewritable.
14329
14330 2016-02-09  Tom de Vries  <tom@codesourcery.com>
14331
14332         PR lto/69707
14333         * lto-wrapper.c (append_diag_options): New function.
14334         (compile_offload_image): Call append_diag_options.
14335
14336 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
14337
14338         PR other/69722
14339         * doc/extend.texi (Flag Output Operands): Correct sectioning.
14340         Minor copy-edit to fix verb tenses.
14341
14342 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
14343
14344         PR tree-optimization/69209
14345         * ipa-split.c (split_function): If split part is not
14346         returning retval, retval has gimple type but is not
14347         gimple value, force it into a SSA_NAME first.
14348
14349 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
14350
14351         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
14352         outdated section.
14353
14354 2016-02-08  Jason Merrill  <jason@redhat.com>
14355
14356         PR c++/69631
14357         * convert.c (convert_to_integer_1): Check dofold on truncation
14358         distribution.
14359         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
14360         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
14361         Rename from *_nofold.
14362         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
14363         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
14364
14365 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
14366
14367         PR target/60410
14368         * tree.c (build_common_tree_nodes): Remove short_double argument.
14369         All callers changed.
14370         * tree.h (build_common_tree_nodes): Adjust declaration.
14371         * doc/invoke.texi (-fshort-double): Remove documentation.
14372         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
14373         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
14374         * lto-wrapper.c (merge_and_complain, append_compiler_options)
14375         (append_linker_options): Don't handle OPT_fshort_double.
14376
14377         PR rtl-optimization/68730
14378         * lra-remat.c (insn_to_cand_activation): New static variable.
14379         (lra_remat): Allocate and free it.
14380         (create_cand): New arg activation. Initialize a field in
14381         insn_to_cand_activation if it is nonnull.
14382         (create_cands): Pass the activation insn to create_cand when making
14383         a candidate involving an output reload.  Reorganize code a little.
14384         (do_remat): Keep track of active status of candidates in a separate
14385         bitmap.
14386
14387 2016-02-08  Richard Biener  <rguenther@suse.de>
14388
14389         PR tree-optimization/69719
14390         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14391         Properly use absolute of the difference of the two offsets to
14392         compare or adjust the segment length.
14393
14394 2016-02-08  Richard Biener  <rguenther@suse.de>
14395             Jeff Law  <law@redhat.com>
14396
14397         PR target/68273
14398         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
14399         types for anonymous SSA names.
14400
14401 2016-02-08   Richard Biener  <rguenther@suse.de>
14402
14403         PR rtl-optimization/69274
14404         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
14405
14406 2016-02-08  Jeff Law  <law@redhat.com>
14407
14408         PR tree-optimization/65917
14409         * tree-ssa-dom.c (record_temporary_equivalences): Record both
14410         equivalences from if (x == y) style conditionals.
14411         (loop_depth_of_name): Remove.
14412         (record_equality): Remove loop depth check.
14413         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
14414         (const_and_copies::record_const_or_copy_raw): New member function.
14415         * tree-ssa-scopedtables.c
14416         (const_and_copies::record_const_or_copy_raw): New, factored out of
14417         (const_and_copies::record_const_or_copy): Call new member function.
14418
14419 2016-02-05  Jeff Law  <law@redhat.com>
14420
14421         PR tree-optimization/68541
14422         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
14423         (count_stmts_in_block): New function.
14424         (poor_ifcvt_candidate_code): Likewise.
14425         (is_feasible_trace): Add some heuristics to determine when path
14426         splitting is profitable.
14427         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
14428         is a diamond with a single exit.
14429
14430 2016-02-05  Martin Sebor  <msebor@redhat.com>
14431
14432         PR c++/69662
14433         * doc/invoke.texi: Update -Wplacement-new to take an optional
14434         argument.
14435
14436 2016-02-06  Richard Henderson  <rth@redhat.com>
14437
14438         PR c/69643
14439         * tree.c (tree_nop_conversion_p): Do not strip casts into or
14440         out of non-standard address spaces.
14441
14442 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
14443
14444         PR rtl-optimization/69691
14445         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
14446
14447 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
14448
14449         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
14450         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
14451         (*ieee128_mfvsrd_64bit): Likewise.
14452         (*ieee128_mfvsrd_32bit): Likewise.
14453
14454 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
14455
14456         PR target/69369
14457         Revert r232560:
14458         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14459
14460         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
14461         instrumented_version.
14462
14463 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
14464
14465         * doc/invoke.texi (Optimize Options): In table of --param options
14466         rename second occurrence of tracer-min-branch-ratio to
14467         tracer-min-branch-probability, rename
14468         tracer-min-branch-ratio-feedback to
14469         tracer-min-branch-probability-feedback and clarify description,
14470         rename sched-spec-state-edge-prob-cutoff to
14471         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
14472         to selsched-insns-to-rename, rename lto-minpartition to
14473         lto-min-partition, delete reorder-blocks-duplicate and
14474         reorder-blocks-duplicate-feedback.
14475
14476 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14477
14478         * config/s390/s390.c (s390_register_info_set_ranges): Remove
14479         superfluous loops.
14480
14481 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14482
14483         * doc/extend.texi: S/390: Correct some typos.
14484
14485 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14486
14487         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
14488
14489 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14490
14491         PR target/69625
14492         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
14493         (s390_register_info_gprtofpr): Use new macros above.
14494         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
14495         its name.
14496         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
14497         its name.  Adjust restore and save gpr ranges.
14498         (s390_register_info_set_ranges): New function.
14499         (s390_register_info): Use new macros above.  Call
14500         s390_register_info_set_ranges.
14501         (s390_optimize_register_info): Likewise.
14502         (s390_hard_regno_rename_ok): Use new macros.
14503         (s390_hard_regno_scratch_ok): Likewise.
14504         (s390_emit_epilogue): Likewise.
14505         (s390_can_use_return_insn): Likewise.
14506         (s390_optimize_prologue): Likewise.
14507         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
14508
14509 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
14510
14511         PR bootstrap/69677
14512         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
14513         alignment fixes.
14514         (ix86_option_override_internal): Disable TARGET_STV even for
14515         -m{incoming,preferred}-stack-boundary=3.
14516
14517 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14518
14519         * config.gcc: Mark deprecated rtems targets as obsolete.
14520
14521 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
14522
14523         PR rtl-optimization/64682
14524         PR rtl-optimization/69567
14525         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
14526         before I2 only if the register is both used and set in I2.
14527
14528 2016-02-04  DJ Delorie  <dj@redhat.com>
14529
14530         * config/msp430/msp430.c (msp430_start_function): Add function type.
14531
14532 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
14533
14534         PR fortran/69368
14535         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
14536
14537 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
14538
14539         PR rtl-optimization/69577
14540         Revert:
14541         2015-10-29  Richard Henderson  <rth@redhat.com>
14542
14543         PR target/68124
14544         PR rtl-opt/67609
14545         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
14546         sse check to the exact conditions of PR 67609.
14547
14548 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
14549
14550         PR target/69667
14551         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
14552         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
14553         not allowed into the traditional Altivec registers.
14554         (movtd_64bit_nodm): Likewise.
14555         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
14556
14557 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
14558
14559         * config/aarch64/cortex-a57-fma-steering.c
14560         (aarch64_register_fma_steering): Remove "static" from arguments
14561         to register_pass.
14562
14563 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
14564
14565         PR target/69619
14566         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
14567         twice when complex.
14568
14569 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
14570
14571         * doc/invoke.texi: Delete -mno-fma4.
14572
14573 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
14574
14575         PR rtl-optimization/69577
14576         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
14577         (find_subregs_of_mode): Update accordingly.  Iterate over partial
14578         definitions.
14579
14580 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
14581
14582         * config/arm/arm-protos.h (neon_reinterpret): Remove.
14583         * config/arm/arm.c (neon_reinterpret): Remove.
14584         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
14585         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
14586         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
14587         vreinterpretti): Remove.
14588         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
14589         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
14590         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
14591         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
14592         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
14593         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
14594         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
14595         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
14596         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
14597         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
14598         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
14599         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
14600         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
14601         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
14602         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
14603         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
14604         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
14605         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
14606         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
14607         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
14608         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
14609         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
14610         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
14611         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
14612         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
14613         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
14614         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
14615         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
14616         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
14617         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
14618         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
14619         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
14620         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
14621         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
14622         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
14623         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
14624         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
14625         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
14626         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
14627         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
14628         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
14629         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
14630         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
14631         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
14632         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
14633         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
14634         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
14635         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
14636         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
14637         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
14638         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
14639         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
14640         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
14641         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
14642         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
14643         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
14644         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
14645         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
14646         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
14647         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
14648         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
14649         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
14650         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
14651         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
14652         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
14653         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
14654         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
14655         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
14656         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
14657         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
14658         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
14659         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
14660         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
14661         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
14662         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
14663         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
14664         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
14665         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
14666         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
14667         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
14668         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
14669         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
14670         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
14671         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
14672         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
14673         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
14674         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
14675         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
14676         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
14677         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
14678         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
14679         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
14680         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
14681         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
14682         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
14683         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
14684         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
14685         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
14686         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
14687         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
14688         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
14689         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
14690         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
14691
14692 2016-02-04  Martin Liska  <mliska@suse.cz>
14693
14694         PR sanitizer/69276
14695         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
14696         that are gimple_store_p.
14697         (maybe_instrument_call): Likewise.
14698
14699 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
14700
14701         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
14702         register scaling out of memory reference and comment why.
14703
14704 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14705
14706         PR target/65932
14707         PR target/67714
14708         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
14709         folding the source of a SET.
14710
14711 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14712
14713         PR target/65932
14714         PR target/67714
14715         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
14716         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
14717
14718 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
14719
14720         PR target/65932
14721         PR target/67714
14722         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
14723         HImode.
14724
14725 2016-02-04  Christian Bruel  <christian.bruel@st.com>
14726
14727         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
14728         * config/arm/arm.c (arm_set_current_function): Likewise.
14729
14730 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
14731             Ilya Enkovich  <enkovich.gnu@gmail.com>
14732             H.J. Lu  <hongjiu.lu@intel.com>
14733
14734         PR target/69454
14735         * config/i386/i386.c (convert_scalars_to_vector): Remove
14736         stack alignment fixes.
14737         (ix86_option_override_internal): Disable TARGET_STV if stack
14738         might not be aligned enough.
14739         (ix86_minimum_alignment): Assert that TARGET_STV is false.
14740
14741 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
14742
14743         * config/i386/x86-tune.def: Disable default prefetching
14744         for -march=znver1.
14745
14746 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
14747             Vladimir Makarov  <vmakarov@redhat.com>
14748
14749         PR target/69461
14750         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
14751         in validating fused toc addresses.
14752
14753 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
14754
14755         PR c/69627
14756         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
14757         range->m_caret fields if range->m_show_caret_p is false.
14758
14759         PR target/69644
14760         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
14761         Force oldval into register if it does not satisfy reg_or_short_operand
14762         predicate.  Fix up formatting.
14763
14764 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
14765             Alexandre Oliva  <aoliva@redhat.com>
14766
14767         PR target/69461
14768         * lra-constraints.c (simplify_operand_subreg): Check additionally
14769         address validity after potential reloading.
14770         (process_address_1): Check insns validity.  In case of failure do
14771         nothing.
14772
14773 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
14774
14775         PR target/69118
14776         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
14777         Fix target.
14778
14779 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
14780
14781         * wide-int.cc (canonize_uhwi): New function.
14782         (wi::divmod_internal): Use it.
14783
14784 2016-02-02  James Norris  <jnorris@codesourcery.com
14785
14786         * gimplify.c (omp_notice_variable): Add usage check.
14787
14788 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
14789
14790         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
14791         like LE, GE, LT, GT when emitting relational operator.
14792
14793 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
14794
14795         * ira-costs.c (find_costs_and_classes): Add extra argument.
14796         * target.def (ira_change_pseudo_allocno_class): Add parameter.
14797         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
14798         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
14799         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
14800         Add best_class parameter, and return it if not ALL_REGS.
14801         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
14802         Add parameter.
14803         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
14804         Update target hook.
14805
14806 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
14807
14808         * config/aarch64/aarch64.c
14809         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
14810         (aarch64_ira_change_pseudo_allocno_class): New function.
14811
14812 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
14813
14814         PR target/67032
14815         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
14816
14817 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14818
14819         * config/avr/avr.c (avr_option_override): Set
14820         PARAM_ALLOW_STORE_DATA_RACES to 1.
14821
14822 2016-02-02  Richard Biener  <rguenther@suse.de>
14823
14824         PR tree-optimization/69595
14825         * match.pd: Add range test simplifications to true/false.
14826
14827 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
14828
14829         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
14830         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
14831         instead.
14832
14833 2016-02-02  Richard Biener  <rguenther@suse.de>
14834
14835         PR tree-optimization/69606
14836         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
14837         info on the result before moving a stmt.
14838
14839 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
14840
14841         PR middle-end/68542
14842         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
14843         branch with vector comparison.
14844         * config/i386/sse.md (VI48_AVX): New mode iterator.
14845         (define_expand "cbranch<mode>4): Add support for conditional branch
14846         with vector comparison.
14847         * tree-vect-loop.c (optimize_mask_stores): New function.
14848         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
14849         has_mask_store field of vect_info.
14850         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
14851         vectorized loops having masked stores after vec_info destroy.
14852         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
14853         correspondent macros.
14854         (optimize_mask_stores): Add prototype.
14855
14856 2016-02-02  Alan Modra  <amodra@gmail.com>
14857
14858         PR target/69548
14859         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
14860         allow subregs.
14861
14862 2016-02-02  Alan Modra  <amodra@gmail.com>
14863
14864         PR target/68662
14865         * config/rs6000/rs6000.c (need_toc_init): New var, set it
14866         whenever toc_label_name used.
14867         (rs6000_file_start): Don't set up toc section here,
14868         (rs6000_output_function_epilogue): do so here instead,
14869         (rs6000_xcoff_file_start): and here.
14870         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
14871         (load_toc_aix_di): Likewise.
14872
14873 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14874
14875         PR rtl-optimization/69592
14876         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
14877         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
14878         (num_sign_bit_copies_binary_arith_p): New inline function.
14879         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
14880
14881 2016-02-01  Jeff Law  <law@redhat.com>
14882
14883         PR tree-optimization/69580
14884         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
14885         * tree-ssa-threadbackward.c
14886         (fsm_find_control_statement_thread_paths): Do not try to walk
14887         through large PHI nodes.
14888
14889 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14890
14891         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
14892         when count is incremented above limit, don't analyze further
14893         insns afterwards.
14894
14895         * omp-low.c (oacc_parse_default_dims): Avoid
14896         -Wsign-compare warning, make sure value fits into int
14897         rather than just unsigned int.
14898
14899 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
14900
14901         PR tree-optimization/67921
14902         * fold-const.c (split_tree): New parameters.  Convert pointer
14903         type variable part to proper type before negating.
14904         (fold_binary_loc): Pass new arguments to split_tree.
14905
14906 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
14907
14908         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
14909         (nvptx_goacc_validate_dims): Extend to handle global defaults.
14910         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
14911         * doc/tm.texti: Rebuilt.
14912         * doc/invoke.texi (fopenacc-dim): Document.
14913         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
14914         (append_compiler_options): Likewise.
14915         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
14916         (oacc_parse_default_dims): New.
14917         (oacc_validate_dims): Add USED arg.  Select non-unity default when
14918         possible.
14919         (oacc_loop_fixed_partitions): Return mask of used partitions.
14920         (oacc_loop_auto_partitions): Emit dump info.
14921         (oacc_loop_partition): Return mask of used partitions.
14922         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
14923         loop partitioning and validation calls.
14924
14925 2016-02-01  Richard Biener  <rguenther@suse.de>
14926
14927         PR middle-end/69556
14928         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
14929
14930 2016-02-01  Richard Biener  <rguenther@suse.de>
14931
14932         PR tree-optimization/69574
14933         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
14934         of asserting return chrec_dont_know.
14935
14936 2016-02-01  Martin Liska  <mliska@suse.cz>
14937
14938         * mem-stats-traits.h: Add copyright header.
14939         * mem-stats.h: Likewise.
14940
14941 2016-02-01  Richard Biener  <rguenther@suse.de>
14942
14943         PR tree-optimization/69579
14944         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
14945         Do not propagate through abnormal PHI results.
14946
14947 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
14948
14949         * postreload.c (reload_cse_simplify): Remove dead code.
14950
14951 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
14952
14953         PR rtl-optimization/69570
14954         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
14955         if there is more than one set, not if there is a single set.
14956
14957 2016-02-01  Richard Henderson  <rth@redhat.com>
14958
14959         PR rtl-opt/69535
14960         * combine.c (make_compound_operation): When looking through a
14961         subreg, make sure to re-extend to the width of the outer mode.
14962
14963 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
14964
14965         PR tree-optimization/69546
14966         * wide-int.cc (wi::divmod_internal): For unsigned division
14967         where both operands fit into uhwi, if o1 is 1 and o0 has
14968         msb set, if divident_prec is larger than bits per hwi,
14969         clear another quotient word and return 2 instead of 1.
14970         Similarly for remainder with msb in HWI set, if dividend_prec
14971         is larger than bits per hwi.
14972
14973 2016-01-29  Martin Jambor  <mjambor@suse.cz>
14974
14975         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
14976         Use short lowercase names.
14977         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
14978         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
14979         acq_rel one.  Protect warning agains segfaults if
14980         get_memory_order_name returns NULL.
14981         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
14982         with release semantics.  Do not warn if get_memory_order already did.
14983         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
14984         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
14985         if get_memory_order already did.
14986
14987 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
14988
14989         * doc/install.texi: Document that isl-0.16 is supported.
14990
14991 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
14992
14993         PR target/69299
14994         * config/i386/constraints.md (Bm): Describe as special memory
14995         constraint.
14996         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
14997         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
14998         * genpreds.c (struct constraint_data): Add is_special_memory.
14999         (have_special_memory_constraints, special_memory_start): New
15000         static vars.
15001         (special_memory_end): Ditto.
15002         (add_constraint): Add new arg is_special_memory.  Add code to
15003         process its true value.  Update have_special_memory_constraints.
15004         (process_define_constraint): Pass the new arg.
15005         (process_define_register_constraint): Ditto.
15006         (choose_enum_order): Process special memory.
15007         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
15008         function insn_extra_special_memory_constraint.
15009         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
15010         * gensupport.c (process_rtx): Process
15011         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
15012         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
15013         * ira-lives.c (single_reg_class): Use
15014         insn_extra_special_memory_constraint.
15015         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
15016         * lra-constraints.c (process_alt_operands): Ditto.
15017         (curr_insn_transform): Use insn_extra_special_memory_constraint.
15018         * recog.c (asm_operand_ok, preprocess_constraints): Process
15019         CT_SPECIAL_MEMORY.
15020         * reload.c (find_reloads): Ditto.
15021         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
15022         * stmt.c (parse_input_constraint): Use
15023         insn_extra_special_memory_constraint.
15024
15025 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
15026
15027         PR target/69530
15028         * lra-splill.c (lra_final_code_change): Revert r229087 by
15029         removing all sub-registers.
15030
15031 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
15032
15033         PR target/65604
15034         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
15035
15036 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
15037
15038         PR target/69551
15039         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
15040         SSE1, copy target into the temporary reg first before recursing
15041         on it.
15042
15043 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
15044
15045         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
15046         with vm.
15047
15048 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
15049
15050         * ginclude/stdarg.h: Test __cplusplus instead of
15051         __GXX_EXPERIMENTAL_CXX0X__.
15052
15053 2016-01-29  Richard Biener  <rguenther@suse.de>
15054
15055         PR tree-optimization/69547
15056         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
15057         Do not mark clobbers necessary.
15058         (mark_all_reaching_defs_necessary_1): Likewise.
15059
15060 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15061
15062         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
15063         declaration name with %qs and print it in both error messages.
15064         Also fix indentation.
15065
15066 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15067
15068         PR other/69006
15069         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
15070         trailing blank line from error message.
15071
15072 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
15073
15074         PR c++/69462
15075         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
15076         for C++-11.
15077
15078 2016-01-29  Richard Biener  <rguenther@suse.de>
15079
15080         PR middle-end/69537
15081         * match.pd: Allow all integral types when simplifying a
15082         widening or sign-changing conversion.
15083
15084 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
15085
15086         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
15087         back to setting codegen_error to fail codegen.
15088
15089 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
15090
15091         PR target/69459
15092         * config/i386/constraints.md (C): Only accept constant zero operand.
15093         (BC): New constraint.
15094         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
15095         instead of C constraint.
15096         * doc/md.texi (Machine Constraints): Update description
15097         of C constraint.
15098
15099 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
15100
15101         PR target/68400
15102         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
15103
15104 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
15105
15106         PR middle-end/69542
15107         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
15108         non-debug insns.
15109
15110 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
15111
15112         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
15113         branches if using guessed profile.
15114
15115 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
15116
15117         * graphite-optimize-isl.c (optimize_isl): Fix dump.
15118
15119 2016-01-28  Richard Henderson  <rth@redhat.com>
15120
15121         PR target/69305
15122         * config/aarch64/aarch64-modes.def (CC_Cmode): New
15123         * config/aarch64/aarch64-protos.h: Update.
15124         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
15125         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
15126         (aarch64_get_condition_code_1): Handle CC_Cmode.
15127         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
15128         (*add<mode>3_compareC_cconly_imm): New.
15129         (*add<mode>3_compareC_cconly): New.
15130         (*add<mode>3_compareC_imm): New.
15131         (add<mode>3_compareC): New.
15132         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
15133         to be first.  Use aarch64_carry_operation.
15134         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
15135         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
15136         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
15137         (subti3): Use subdi3_compare1.
15138         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
15139         (sub<mode>3_compare1): New.
15140         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
15141         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
15142         (*subsi3_carryin_uxtw): Likewise.
15143         (*ngc<mode>, *ngcsi_uxtw): Likewise.
15144         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
15145         * config/aarch64/iterators.md (DWI): New.
15146         * config/aarch64/predicates.md (aarch64_carry_operation): New.
15147         (aarch64_borrow_operation): New.
15148
15149 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
15150
15151         * graphite-optimize-isl.c (optimize_isl): Print a different debug
15152         message when isl does not return a valid schedule.
15153
15154 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
15155
15156         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
15157         Remove comments from class declarations: they are already in the code
15158         close by the defs.
15159
15160 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
15161
15162         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
15163         codegen_error_p.
15164         (ternary_op_to_tree): Same.
15165         (unary_op_to_tree): Same.
15166         (nary_op_to_tree): Same.
15167         (gcc_expression_from_isl_expr_op): Same.
15168         (gcc_expression_from_isl_expression): Same.
15169         (graphite_create_new_loop): Same.
15170         (graphite_create_new_loop_guard): Same.
15171         (build_iv_mapping): Same.
15172         (graphite_create_new_guard): Same.
15173         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
15174         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
15175
15176 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
15177
15178         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
15179         instead of setting codegen_error to fail codegen.
15180
15181 2016-01-28  Jason Merrill  <jason@redhat.com>
15182
15183         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
15184
15185 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
15186
15187         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
15188         Remove CONST_INT_P check in CCMP cost calculation.
15189
15190 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
15191
15192         * config/aarch64/aarch64.c (generic_vector_cost):
15193         Set vec_permute_cost.
15194         (cortexa57_vector_cost): Likewise.
15195         (exynosm1_vector_cost): Likewise.
15196         (xgene1_vector_cost): Likewise.
15197         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
15198         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
15199         Add vec_permute_cost entry.
15200
15201 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
15202
15203         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
15204         immediate as %1.
15205         (add<mode>3_compare0): Likewise.
15206         (addsi3_compare0_uxtw): Likewise.
15207         (add<mode>3nr_compare0): Likewise.
15208         (compare_neg<mode>): Likewise.
15209         (<optab><mode>3): Likewise.
15210
15211 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
15212
15213         * tree-vect-stmts.c (vectorizable_comparison): Add
15214         NULL check for vectype.
15215
15216 2016-01-28  Richard Biener  <rguenther@suse.de>
15217
15218         PR tree-optimization/69466
15219         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
15220         Account for PHIs we couldn't duplicate.
15221
15222 2016-01-28  Martin Liska  <mliska@suse.cz>
15223
15224         PR pch/68758
15225         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
15226         instead of ENABLE_VALGRIND_CHECKING.
15227
15228 2016-01-27  Richard Henderson  <rth@redhat.com>
15229
15230         PR rtl-opt/69447
15231         * lra-remat.c (subreg_regs): New.
15232         (dump_candidates_and_remat_bb_data): Dump it.
15233         (operand_to_remat): Reject if operand in subreg_regs.
15234         (set_bb_regs): Collect subreg_regs.
15235         (lra_remat): Init and free subreg_regs.  Compute
15236         calculate_local_reg_remat_bb_data before create_cands.
15237
15238 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
15239
15240         PR target/68986
15241         * config/i386/i386.c (ix86_update_stack_boundary): Don't
15242         change stack_alignment_needed for __tls_get_addr call.
15243
15244 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
15245
15246         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
15247
15248 2016-01-27  Jeff Law  <law@redhat.com>
15249
15250         PR tree-optimization/68398
15251         PR tree-optimization/69196
15252         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
15253         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
15254         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
15255         Only count PHIs in the last block in the path.  The others will
15256         const/copy propagate away.  Add heuristic to allow more irreducible
15257         subloops to be created when it is likely profitable to do so.
15258
15259         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
15260         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
15261         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
15262
15263 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
15264
15265         PR lto/69254
15266         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
15267         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
15268         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
15269         * tree-streamer-in.c: Include asan.h.
15270         (streamer_get_builtin_tree): For builtins in sanitizer
15271         range call initialize_sanitizer_builtins and retry.
15272
15273 2016-01-27  Ian Lance Taylor  <iant@google.com>
15274
15275         * common.opt (fkeep-gc-roots-live): New undocumented option.
15276         * tree-ssa-loop-ivopts.c (add_candidate_1): If
15277         -fkeep-gc-roots-live, skip pointers.
15278         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
15279         NULL.
15280
15281 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
15282
15283         PR target/69512
15284         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
15285         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
15286
15287 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
15288
15289         PR target/68380
15290         * configure.ac: NetBSD provides SSP in its C library.
15291         * configure: Updated.
15292
15293 2016-01-27  Richard Biener  <rguenther@suse.de>
15294
15295         PR tree-optimization/69166
15296         * tree-vect-loop.c (vect_is_simple_reduction): Always check
15297         reduction code for commutativity / associativity.
15298
15299 2016-01-27  Martin Jambor  <mjambor@suse.cz>
15300
15301         PR tree-optimization/69355
15302         * tree-sra.c (analyze_access_subtree): Correct hole detection when
15303         total_scalarization fails.
15304
15305 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
15306
15307         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
15308         power9.
15309
15310 2016-01-27  Christian Bruel  <christian.bruel@st.com>
15311
15312         PR target/69245
15313         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
15314         Move arm_reset_previous_fndecl and set_target_option_current_node in
15315         the conditional part.  Call save_restore_target_globals.
15316         * config/arm/arm.c (arm_set_current_function):
15317         Refactor to better support #pragma target and attribute mix.
15318         Call save_restore_target_globals.
15319         * config/arm/arm-protos.h (save_restore_target_globals): New function.
15320
15321 2016-01-27  Martin Liska  <mliska@suse.cz>
15322
15323         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
15324         reference for an HSA kernel and its host function.
15325
15326 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
15327
15328         PR tree-optimization/69399
15329         * wide-int.h (wi::lrshift): For larger precisions, only
15330         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
15331
15332 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
15333
15334         * config/arc/predicates.md (proper_comparison_operator): Reject
15335         constant-constant comparison.
15336
15337 2016-01-26  Tom de Vries  <tom@codesourcery.com>
15338
15339         PR tree-optimization/69110
15340         * tree-data-ref.c (initialize_data_dependence_relation): Handle
15341         DR_NUM_DIMENSIONS == 0.
15342
15343 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
15344             Sebastian Pop  <s.pop@samsung.com>
15345
15346         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
15347         isl_ast_op_cond and isl_ast_op_select.
15348         (gcc_expression_from_isl_expr_op): Same.
15349
15350 2016-01-26  Jason Merrill  <jason@redhat.com>
15351
15352         PR c++/68782
15353         * tree.c (recompute_constructor_flags): Split out from
15354         build_constructor.
15355         (verify_constructor_flags): New.
15356         * tree.h: Declare them.
15357
15358 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
15359
15360         PR rtl-optimization/69217
15361         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
15362         are no TYPE_FIELDS set for the record type.
15363
15364 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15365
15366         PR target/68662
15367         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
15368         toc_label_name unconditionally.
15369         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
15370         SYMBOL_REF string.  Use toc_label_name instead of constructing
15371         LCTOC1.
15372         (rs6000_elf_declare_function_name): Use toc_label_name instead of
15373         constructing LCTOC1.
15374
15375 2016-01-26  Martin Sebor  <msebor@redhat.com>
15376
15377         PR other/69477
15378         * doc/extend.texi (Common Type Attributes): Move text that talks about
15379         attribute packed from attribute aligned to the section discussing
15380         the former attribute for clarity.
15381
15382 2016-01-26  Richard Henderson  <rth@redhat.com>
15383
15384         PR middle-end/60908
15385         * trans-mem.c (tm_region_init): Mark entry block as visited.
15386
15387 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
15388
15389         PR other/69006
15390         * diagnostic-show-locus.c (layout::print_source_line): Replace
15391         call to pp_newline with call to layout::print_newline.
15392         (layout::print_annotation_line): Likewise.
15393         (layout::move_to_column): Likewise.
15394         (layout::print_any_fixits): After printing any fixits, print a
15395         trailing newline, if necessary.
15396         (layout::print_newline): New method, resetting any colorization
15397         before a newline.
15398         (diagnostic_show_locus): Move the pp_newline to before the
15399         early bailout.  Remove dummy block enclosing the layout instance.
15400         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
15401         of pp_newline_and_flush with pp_flush.
15402         (diagnostic_append_note): Delete use of pp_newline.
15403         (diagnostic_append_note_at_rich_loc): Delete.
15404         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
15405         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
15406         when newline characters are added to the buffer.
15407
15408 2016-01-26  Michael Matz  <matz@suse.de>
15409
15410         * configure.ac (ac_cv_std_swap_in_utility): New test.
15411         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
15412         * configure: Regenerate.
15413         * config.in: Regenerate.
15414
15415 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
15416
15417         * config/arc/arc.md (cstoresi4): Force operand into register.
15418         (arcset<code>): Fix predicate.
15419         (arcsetltu): Likewise.
15420         (arcsetgeu): Likewise.
15421         (arcsethi): Likewise.
15422         (arcsetls): Likewise.
15423
15424 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15425
15426         PR tree-optimization/69483
15427         * gimple-fold.c (canonicalize_constructor_val): Return NULL
15428         if base has error_mark_node type.
15429
15430 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
15431
15432         PR target/68620
15433         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
15434         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
15435         New helper macros.
15436         (vget_lane_f16): Handle big-endian.
15437         (vgetq_lane_f16): Likewise.
15438         (vset_lane_f16): Likewise.
15439         (vsetq_lane_f16): Likewise.
15440         * config/arm/iterators.md (VQXMOV): Add V8HF.
15441         (VDQ): Add V4HF and V8HF.
15442         (V_reg): Handle V4HF and V8HF.
15443         (Is_float_mode): Likewise.
15444         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
15445         neon_vdup_nv8hf): New patterns.
15446         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
15447         Use VD_LANE iterator.
15448         (neon_vld1_dup<mode>): Use VQ2 iterator.
15449
15450 2016-01-26  Nathan Sidwell  <nathan@acm.org>
15451
15452         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
15453         (set_oacc_fn_attrib): Add IS_KERNEL arg.
15454         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
15455         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
15456         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
15457         (oacc_validate_dims): Add LEVEL arg, don't return level.
15458         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
15459         oacc_validate_dims.
15460         (execute_oacc_device_lower): Adjust, add more dump output.
15461         * tree-ssa-loop.c (gate_oacc_kernels): Use
15462         oacc_fn_attrib_kernels_p.
15463         * tree-parloops.c (create_parallel_loop): Adjust
15464         set_oacc_fn_attrib call.
15465
15466 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15467
15468         PR lto/69254
15469         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
15470         (append_compiler_options): Handle -fcilkplus.
15471         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
15472
15473 2016-01-26  Nick Clifton  <nickc@redhat.com>
15474
15475         PR target/66655
15476         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
15477         been marked as DECL_ONE_ONLY but we do not the means to make it
15478         so, then do not allow it to bind locally.
15479
15480 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15481
15482         PR lto/69254
15483         * opts.h (parse_sanitizer_options): New prototype.
15484         * opts.c (sanitizer_opts): New array.
15485         (parse_sanitizer_options): New function.
15486         (common_handle_option): Use parse_sanitizer_options.
15487
15488 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
15489
15490         PR target/68986
15491         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
15492         alignment adjustment to ...
15493         (ix86_update_stack_boundary): Here.  Don't over-align stack for
15494         __tls_get_addr.
15495         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
15496         if __tls_get_addr is called.
15497
15498 2016-01-26  Christian Bruel  <christian.bruel@st.com>
15499
15500         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
15501
15502 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
15503
15504         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
15505
15506 2016-01-26  Richard Biener  <rguenther@suse.de>
15507
15508         PR middle-end/69467
15509         * match.pd: Guard X * CST CMP 0 pattern with single_use.
15510
15511 2016-01-26  Richard Biener  <rguenther@suse.de>
15512
15513         PR tree-optimization/69452
15514         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
15515         (move_computations_dom_walker::before_dom_children): Rename
15516         to ...
15517         (move_computations_worker): This.
15518         (move_computations): Perform an RPO rather than a DOM walk.
15519
15520 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
15521
15522         PR target/69442
15523         * combine.c (combine_instructions): For REG_EQUAL note with
15524         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
15525         to the underlying register.
15526         * doc/rtl.texi (REG_EQUAL): Document the behavior of
15527         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
15528
15529 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
15530
15531         PR target/67896
15532         * config/aarch64/aarch64-builtins.c
15533         (aarch64_init_simd_builtin_types): Do not set structural
15534         equality to __Poly{8,16,64,128}_t types.
15535
15536 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
15537
15538         PR tree-optimization/69400
15539         * wide-int.cc (wi_pack): Take the precision as argument and
15540         perform canonicalization here rather than in the callers.
15541         Use the main loop to handle all full-width HWIs.  Add a
15542         zero HWI if in_len isn't a full result.
15543         (wi::divmod_internal): Update accordingly.
15544         (wi::mul_internal): Likewise.  Simplify.
15545
15546 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
15547             Sebastian Pop  <s.pop@samsung.com>
15548
15549         * graphite-poly.c (apply_poly_transforms): Simplify.
15550         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
15551         (print_isl_map): Same.
15552         (print_isl_union_map): Same.
15553         (print_isl_schedule): New.
15554         (debug_isl_schedule): New.
15555         * graphite-dependences.c (scop_get_reads): Do not call
15556         isl_union_map_add_map that is undocumented isl functionality.
15557         (scop_get_must_writes): Same.
15558         (scop_get_may_writes): Same.
15559         (scop_get_original_schedule): Remove.
15560         (scop_get_dependences): Do not call isl_union_map_compute_flow that
15561         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
15562         (compute_deps): Remove.
15563         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
15564         (debug_schedule_ast): New.
15565         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
15566         set_separate_option.
15567         (graphite_regenerate_ast_isl): Add dump.
15568         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
15569         from scop->transformed_schedule.
15570         (graphite_regenerate_ast_isl): Add more dump.
15571         * graphite-optimize-isl.c (optimize_isl): Set
15572         scop->transformed_schedule.  Check whether schedules are equal.
15573         (apply_poly_transforms): Move here.
15574         * graphite-poly.c (apply_poly_transforms): ... from here.
15575         (free_poly_bb): Static.
15576         (free_scop): Static.
15577         (pbb_number_of_iterations_at_time): Remove.
15578         (print_isl_ast): New.
15579         (debug_isl_ast): New.
15580         (debug_scop_pbb): New.
15581         * graphite-scop-detection.c (print_edge): Move.
15582         (print_sese): Move.
15583         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
15584         (build_scop_scattering): Remove.
15585         (create_pw_aff_from_tree): Assert instead of bailing out.
15586         (add_condition_to_pbb): Remove unused code, do not fail.
15587         (add_conditions_to_domain): Same.
15588         (add_conditions_to_constraints): Remove.
15589         (build_scop_context): New.
15590         (add_iter_domain_dimension): New.
15591         (build_iteration_domains): Initialize pbb->iterators.
15592         Call add_conditions_to_domain.
15593         (nested_in): New.
15594         (loop_at): New.
15595         (index_outermost_in_loop): New.
15596         (index_pbb_in_loop): New.
15597         (outermost_pbb_in): New.
15598         (add_in_sequence): New.
15599         (add_outer_projection): New.
15600         (outer_projection_mupa): New.
15601         (add_loop_schedule): New.
15602         (build_schedule_pbb): New.
15603         (build_schedule_loop): New.
15604         (embed_in_surrounding_loops): New.
15605         (build_schedule_loop_nest): New.
15606         (build_original_schedule): New.
15607         (build_poly_scop): Call build_original_schedule.
15608         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
15609         (free_poly_dr): Remove.
15610         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
15611         (free_poly_bb): Remove.
15612         (debug_loop_vec): Remove.
15613         (print_isl_ast): Declare.
15614         (debug_isl_ast): Declare.
15615         (scop_do_interchange): Remove.
15616         (scop_do_strip_mine): Remove.
15617         (scop_do_block): Remove.
15618         (flatten_all_loops): Remove.
15619         (optimize_isl): Remove.
15620         (pbb_number_of_iterations_at_time): Remove.
15621         (debug_scop_pbb): Declare.
15622         (print_schedule_ast): Declare.
15623         (debug_schedule_ast): Declare.
15624         (struct scop): Remove schedule.  Add original_schedule,
15625         transformed_schedule.
15626         (free_gimple_poly_bb): Remove.
15627         (print_generated_program): Remove.
15628         (debug_generated_program): Remove.
15629         (unify_scattering_dimensions): Remove.
15630         * sese.c (print_edge): ... here.
15631         (print_sese): ... here.
15632         (debug_edge): ... here.
15633         (debug_sese): ... here.
15634         * sese.h (print_edge): Declare.
15635         (print_sese): Declare.
15636         (dump_edge): Declare.
15637         (dump_sese): Declare.
15638
15639 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
15640             Sebastian Pop  <s.pop@samsung.com>
15641
15642         * Makefile.in: Set ISLVER in site.exp.
15643
15644 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
15645
15646         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
15647         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
15648         through DECL_VALUE_EXPR for expansion.
15649
15650 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15651
15652         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
15653         the frame info after reload completed.
15654
15655 2016-01-25  Jeff Law  <law@redhat.com>
15656
15657         PR tree-optimization/69196
15658         PR tree-optimization/68398
15659         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
15660         tree-ssa-threadupdate.c.
15661         (determine_bb_domination_status): Prototype
15662         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
15663         (determine_bb_domination_status): No longer static.
15664         (valid_jump_thread_path): Remove code to detect characteristics
15665         of the jump thread path not associated with correctness.
15666         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
15667         Correct test for thread path length.  Count PHIs for real operands as
15668         statements that need to be copied.  Do not count ASSERT_EXPRs.
15669         Look at all the blocks in the thread path.  Compute and selectively
15670         filter thread paths based on threading through the latch, threading
15671         a multiway branch or crossing a multiway branch.
15672
15673 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15674
15675         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
15676         decl with __attribute__ ((unused)) annotation.
15677
15678 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
15679
15680         PR target/69421
15681         * tree-vect-stmts.c (vectorizable_condition): Check vectype
15682         of operands is compatible with a statement vectype.
15683
15684 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
15685
15686         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
15687         improve wording for mixed storage order support.
15688
15689 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
15690
15691         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
15692         (vcvt_u64_f64): Likewise.
15693         (vcvta_s64_f64): Likewise.
15694         (vcvta_u64_f64): Likewise.
15695         (vcvtm_s64_f64): Likewise.
15696         (vcvtm_u64_f64): Likewise.
15697         (vcvtn_s64_f64): Likewise.
15698         (vcvtn_u64_f64): Likewise.
15699         (vcvtp_s64_f64): Likewise.
15700         (vcvtp_u64_f64): Likewise.
15701
15702 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
15703
15704         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
15705         (arc_init): Check validity mll64 option.
15706         (arc_save_restore): Use double load/store instruction.
15707         (arc_expand_movmem): Likewise.
15708         (arc_split_move): Don't split if we have double load/store
15709         instructions. Returns a boolean.
15710         (arc_process_double_reg_moves): Change function to return boolean
15711         instead of a sequence of instructions.
15712         (arc_dwarf_register_span): New function.
15713         * config/arc/arc-protos.h (arc_split_move): Change prototype.
15714         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
15715         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
15716         (*movdf_insn): Likewise.
15717         * config/arc/arc.opt (mll64): New option.
15718         * config/arc/predicates.md (even_register_operand): New predicate.
15719         * doc/invoke.texi (ARC Options): Add mll64 documentation.
15720
15721 2016-01-25  Richard Biener  <rguenther@suse.de>
15722
15723         PR lto/69393
15724         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
15725         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
15726         DECL_NAMELESS.
15727         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
15728
15729 2016-01-25  Richard Biener  <rguenther@suse.de>
15730
15731         PR tree-optimization/69376
15732         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
15733         flag.
15734         (VN_INFO_ANTI_RANGE_P): New inline.
15735         (VN_INFO_RANGE_TYPE): Likewise.
15736         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
15737         SSA_NAME_ANTI_RANGE_P.
15738         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
15739         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15740         Properly query VN_INFO_RANGE_TYPE.
15741
15742 2016-01-25  Nick Clifton  <nickc@redhat.com>
15743
15744         PR target/66655
15745         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
15746
15747 2016-01-23  Tom de Vries  <tom@codesourcery.com>
15748
15749         PR tree-optimization/69426
15750         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
15751         removed clobber.
15752
15753 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
15754
15755         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
15756         "the the" with "the" in the comments.
15757         * ipa-devirt.c (build_type_inheritance_graph,
15758         update_type_inheritance_graph): Likewise.
15759         * tree.c (build_function_type_list_1): Likewise.
15760         * cfgloopmanip.c (scale_loop_profile): Likewise.
15761         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
15762         * gimple-ssa-split-paths.c
15763         (find_block_to_duplicate_for_splitting_paths): Likewise.
15764         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
15765         * expr.c (convert_move): Likewise.
15766         * var-tracking.c (vt_stack_adjustments): Likewise.
15767         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
15768         * tree-vrp.c (test_for_singularity): Likewise.
15769
15770         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
15771         directly instead of building a temporary tree.
15772
15773         PR bootstrap/69434
15774         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
15775         remove <algorithm> include.
15776
15777 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
15778
15779         PR target/69432
15780         * config/i386/i386.c: Include dojump.h.
15781         (expand_small_movmem_or_setmem,
15782         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
15783         fixes.
15784         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
15785         if dynamic_check != -1.
15786
15787 2016-01-21  Jeff Law  <law@redhat.com>
15788
15789         PR middle-end/69347
15790         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
15791         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
15792         into dominated_by_p.
15793         (cprop_into_successor_phis): Avoid unnecessary tests.
15794
15795 2016-01-22  Richard Henderson  <rth@redhat.com>
15796
15797         PR target/69416
15798         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
15799         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
15800
15801 2016-01-22  Michael Matz  <matz@suse.de>
15802
15803         * system.h (string, algorithm): Include only conditionally.
15804         (new): Include always under C++.
15805         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
15806         * final.c (toplevel): Ditto.
15807         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
15808         * genconditions.c (write_header): Make gencondmd.c define
15809         INCLUDE_STRING.
15810         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
15811
15812         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
15813         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
15814
15815 2016-01-22  Christian Bruel  <christian.bruel@st.com>
15816
15817         PR target/68674
15818         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
15819
15820 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15821
15822         PR target/69403
15823         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
15824         define_insn_and_split.  Ensure operands[1] and operands[0] do not
15825         get assigned the same register.
15826
15827 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
15828
15829         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
15830
15831 2016-01-22  Christian Bruel  <christian.bruel@st.com>
15832
15833         * config/arm/arm-c.c (arm_pragma_target_parse):
15834         Remove warn_builtin_macro_redefined overwrite.
15835
15836 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15837
15838         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
15839         flag_non_call_exceptions compatibility.
15840
15841 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
15842
15843         PR debug/66668
15844         * dwarf2out.c (add_child_die_after): New function.
15845         (dwarf_qual_info_t): New type.
15846         (dwarf_qual_info): New variable.
15847         (qualified_die_p): New function.
15848         (modified_type_die): For -fdebug-types-section, ensure
15849         canonical order of qualifiers.  Put qualified DIEs adjacent
15850         to the corresponding non-qualified type DIE and search there
15851         for existing qualified DIEs.
15852
15853 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15854
15855         * doc/extend.texi (scalar_storage_order type attribute): Document
15856         restriction on type punning and aliasing, and remove future tense.
15857
15858 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
15859
15860         PR target/69252
15861         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
15862         first stage.
15863
15864 2016-01-21  Jeff Law  <law@redhat.com>
15865
15866         PR middle-end/69347
15867         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
15868         useless call to record_temporary_equivalences.
15869         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
15870         allocate 10 slots in the bb_path vector and let it grow as needed.
15871         (fsm_find_control_statement_thread_paths): Similarly for the next_path
15872         vector.
15873
15874 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
15875
15876         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
15877         Detangle.
15878         * configure: Regenerate.
15879
15880 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
15881
15882         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
15883         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
15884
15885 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
15886
15887         PR middle-end/66178
15888         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
15889         drop EXPAND_INITIALIZER.
15890         * rtl.h (contains_symbolic_reference_p): Declare.
15891         * rtlanal.c (contains_symbolic_reference_p): New function.
15892         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
15893         a subtraction into a NOT if symbolic constants are involved.
15894
15895 2016-01-21  Anton Blanchard  <anton@samba.org>
15896             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15897
15898         PR target/63354
15899         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
15900         #define.
15901         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
15902         function.
15903
15904 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
15905
15906         * config/microblaze/microblaze.c
15907         (get_branch_target): New.
15908         (insert_wic_for_ilb_runout): New.
15909         (insert_wic): New.
15910         (microblaze_machine_dependent_reorg): New.
15911         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
15912         * config/microblaze/microblaze.md
15913         (UNSPEC_IPREFETCH): Define.
15914         (iprefetch): New pattern
15915         * config/microblaze/microblaze.opt
15916         (mxl-prefetch): New flag.
15917
15918 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
15919
15920         * config/microblaze/microblaze.h
15921         (FIXED_REGISTERS): Update in macro.
15922         (CALL_USED_REGISTERS): Update in macro.
15923
15924 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
15925
15926         PR rtl-optimization/68920
15927         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
15928         moves.
15929
15930 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
15931
15932         PR rtl-optimization/68990
15933         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
15934         pseudo instead of inheritance ones.
15935
15936 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15937             Nick Clifton  <nickc@redhat.com>
15938
15939         PR target/69129
15940         PR target/69012
15941         * config/mips/mips.c (mips_compute_frame_info): Initialise
15942         args_size and hard_frame_pointer_offset fields of the frame
15943         structure before calling mips_global_pointer.
15944
15945 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
15946
15947         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
15948         label reference.
15949         * configure: Regenerate.
15950
15951 2016-01-21  Richard Biener  <rguenther@suse.de>
15952
15953         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
15954
15955 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
15956
15957         * config/s390/s390.c (s390_asm_declare_function_size): Add code
15958         to actually emit the .size directive.
15959
15960 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
15961              Jakub Jelinek  <jakub@redhat.com>
15962
15963         PR target/69187
15964         PR target/65624
15965         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
15966         args array size by one to avoid buffer overflow.
15967
15968 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
15969
15970         * config/s390/s390.md (pool_section_start): Use switch_to_section
15971         to select proper read-only data section instead of hardcoding
15972         .rodata.
15973         (pool_section_end): Use switch_to_section to match the above.
15974
15975 2016-01-21  Richard Biener  <rguenther@suse.de>
15976
15977         PR tree-optimization/69378
15978         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
15979         (set_ssa_val_to): Use it for dominance checks taking into
15980         account not executable edges.
15981
15982 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
15983
15984         PR c++/69355
15985         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
15986         for bitsize instead of GET_MODE_PRECISION (mode).
15987
15988 2016-01-20  Martin Sebor  <msebor@redhat.com>
15989
15990         PR c/52291
15991         * extend.texi (__sync Builtins): Clarify the semantics of
15992         __sync_fetch_and_OP built-ins on pointers.
15993         (__atomic Builtins): Same.
15994
15995 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
15996             Sebastian Pop  <s.pop@samsung.com>
15997
15998         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
15999         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
16000         (is_valid_rename): Same.
16001         (translate_isl_ast_to_gimple::get_rename): Same.
16002         (translate_isl_ast_to_gimple::rename_all_uses): Same.
16003         (translate_isl_ast_to_gimple::rename_uses): Same.
16004         (get_new_name): Check for close_phi nodes.
16005         (copy_loop_phi_args): Use phi_node_kind.
16006         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
16007         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
16008
16009 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
16010             Sebastian Pop  <s.pop@samsung.com>
16011
16012         Revert commit r229783.
16013         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
16014         Remove use of parameter_rename_map.
16015         (copy_def): Remove.
16016         (copy_internal_parameters): Remove.
16017         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
16018         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
16019         (free_sese_info): Do not free parameter_rename_map.
16020         (set_rename): Do not use parameter_rename_map.
16021         (rename_uses): Update call to set_rename.
16022         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
16023         * sese.h (parameter_rename_map_t): Remove.
16024         (struct sese_info_t): Remove field parameter_rename_map.
16025
16026 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
16027             Sebastian Pop  <s.pop@samsung.com>
16028
16029         * graphite-isl-ast-to-gimple.c: Fix comment.
16030         * graphite-scop-detection.c (defined_in_loop_p): New.
16031         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
16032         names defined in loop.
16033
16034 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
16035             Sebastian Pop  <s.pop@samsung.com>
16036
16037         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
16038         Discard unstructured if-then-else regions.
16039
16040 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
16041             Sebastian Pop  <s.pop@samsung.com>
16042
16043         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
16044         (cleanup_loop_iter_dom): Remove.
16045         (build_loop_iteration_domains): Remove.
16046         (build_scop_context): Remove.
16047         (build_scop_iteration_domain): Remove.
16048         (add_loop_constraints): New.
16049         (build_iteration_domains): New.
16050         (build_poly_scop): Call build_iteration_domains.
16051
16052 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
16053             Sebastian Pop  <s.pop@samsung.com>
16054
16055         * graphite-scop-detection.c
16056         (scop_detection::harmful_loop_in_region): Free dom and loops.
16057         (scop_detection::loop_body_is_valid_scop): Free bbs.
16058
16059 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
16060             Sebastian Pop  <s.pop@samsung.com>
16061
16062         * graphite-scop-detection.c (record_loop_in_sese): New.
16063         (gather_bbs::before_dom_children): Call record_loop_in_sese.
16064         (build_scops): Remove call to build_sese_loop_nests.
16065         * sese.c (sese_record_loop): Remove.
16066         (build_sese_loop_nests): Remove.
16067         (new_sese_info): Remove region->loops.
16068         (free_sese_info): Same.
16069         * sese.h (sese_contains_loop): Same.
16070         (build_sese_loop_nests): Remove.
16071         (sese_contains_loop): Remove.
16072
16073 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
16074             Sebastian Pop  <s.pop@samsung.com>
16075
16076         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
16077         loop_is_valid_in_scop.
16078         (scop_detection::harmful_stmt_in_region): Renamed
16079         harmful_loop_in_region.
16080         Call loop_is_valid_in_scop.
16081
16082 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
16083             Sebastian Pop  <s.pop@samsung.com>
16084
16085         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
16086         isl_ast_node_mark.
16087
16088 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
16089             Sebastian Pop  <s.pop@samsung.com>
16090
16091         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
16092         * graphite.h (struct poly_bb): Remove field is_reduction.
16093         (PBB_IS_REDUCTION): Remove.
16094
16095 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
16096             Sebastian Pop  <s.pop@samsung.com>
16097
16098         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
16099         (add_pdr_constraints): Same.
16100         (scop_get_reads): Same.
16101         (scop_get_must_writes): Same.
16102         (scop_get_may_writes): Same.
16103         (scop_get_original_schedule): Same.
16104         (extend_schedule): Same.
16105         (apply_schedule_on_deps): Same.
16106         (carries_deps): Same.
16107         (compute_deps): Same.
16108         (scop_get_dependences): Same.
16109         * graphite-isl-ast-to-gimple.c
16110         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
16111         * graphite-optimize-isl.c (get_schedule_for_band): Same.
16112         (get_schedule_for_band_list): Same.
16113         (get_schedule_map): Same.
16114         (apply_schedule_map_to_scop): Same.
16115         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
16116         (build_loop_iteration_domains): Same.
16117         (add_condition_to_pbb): Same.
16118         (add_param_constraints): Same.
16119         (pdr_add_memory_accesses): Same.
16120         (pdr_add_data_dimensions): Same.
16121
16122 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
16123
16124         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
16125         requirements.
16126
16127 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
16128
16129         * common.opt (feliminate-dwarf2-dups): Replace references to
16130         "DWARF 2" with just "DWARF".
16131         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
16132         * doc/extend.texi: Likewise.
16133         * doc/cpp.texi: Likewise.
16134         * doc/invoke.texi: Likewise.
16135         (Option Summary): Add -gdwarf to list of Debugging Options.
16136         (Debugging Options): Document -gdwarf.
16137         * doc/contrib.texi: Spell "DWARF" like that.
16138
16139 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
16140
16141         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
16142         warning.  Fix up formatting.
16143
16144         PR middle-end/67653
16145         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
16146         attempt to mark memory input operand addressable and
16147         call prepare_gimple_addressable in that case.  Don't adjust
16148         input_location for diagnostics, use error_at instead.
16149
16150 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
16151
16152         * config/rs6000/ppc-auxv.h: New file.
16153         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
16154         (cpu_is): Likewise.
16155         (cpu_supports): Likewise.
16156         * config/rs6000/rs6000.c: include "ppc-auxv.h".
16157         (cpu_is_info): New variable.
16158         (cpu_supports_info): Likewise.
16159         (tcb_verification_symbol): Likewise.
16160         (cpu_builtin_p): Likewise.
16161         (cpu_expand_builtin): New function.
16162         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
16163         (rs6000_init_builtins): Likewise.
16164         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
16165         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
16166         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
16167         * configure: Regenerate.
16168         * config.in: Likewise.
16169         * doc/extend.texi (PowerPC Built-in Functions): Document
16170         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
16171
16172 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
16173
16174         PR target/68609
16175         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
16176         domain check.
16177         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
16178         for V4SFmode.
16179
16180 2016-01-20  Richard Henderson  <rth@redhat.com>
16181
16182         PR bootstrap/69343
16183         PR bootstrap/69339
16184         PR tree-opt/68964
16185         Revert:
16186         * tree.c (tm_define_builtin): New.
16187         (find_tm_vector_type): New.
16188         (build_tm_vector_builtins): New.
16189         (build_common_builtin_nodes): Call it.
16190
16191 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
16192
16193         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
16194         (arm_fp_ok): Likewise.
16195         (arm_fp): Likewise.
16196         (arm_crypto): Likewise.
16197
16198 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
16199             Richard Biener  <rguenther@suse.de>
16200
16201         PR tree-optimization/69328
16202         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
16203         vectors have same number of elements.
16204         (vectorizable_condition): Fix masked version recognition.
16205
16206 2016-01-20  Richard Biener  <rguenther@suse.de>
16207
16208         PR tree-optimization/69345
16209         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
16210         (VN_INFO_PTR_INFO): Likewise.
16211         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
16212         info when it is equal between non-dominating SSA names.
16213         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16214         Make sure to look at original SSA infos.
16215
16216 2016-01-20  Jeff Law  <law@redhat.com>
16217
16218         PR target/25114
16219         * config/m68k/predicates.md (pow2_m1_operand): New predicate
16220         extracted from ...
16221         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
16222         (pc_or_label_operand): New predicate.
16223         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
16224         tests for small integers that are 2^n - 1.
16225
16226 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
16227
16228         * doc/invoke.texi (Options Summary): Add '.' after @xref.
16229
16230 2016-01-19  Jeff Law  <law@redhat.com>
16231
16232         PR middle-end/69347
16233         * tree-ssa-threadbackwards.c
16234         (fsm_find_control_statement_thread_paths): Do not try to lookup
16235         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
16236
16237 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
16238
16239         * doc/lto.texi: Remove text that says only Gold has linker plugin
16240         support.
16241
16242 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
16243
16244         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
16245         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
16246         the DIE accordingly.
16247         (modified_type_die): Add REVERSE parameter and pass it recursively,
16248         as well as to base_type_die.  Adjust presence check accordingly.
16249         (base_type_for_mode): Adjust call to modified_type_die.
16250         (add_type_attribute): Add REVERSE parameter and pass it to
16251         modified_type_die.
16252         (generic_parameter_die): Adjust call to add_type_attribute.
16253         (add_scalar_info): Likewise.
16254         (add_subscript_info): Likewise.
16255         (gen_array_type_die): Likewise.
16256         (gen_descr_array_type_die): Likewise.
16257         (gen_entry_point_die): Likewise.
16258         (gen_enumeration_type_die): Likewise.
16259         (gen_formal_parameter_die): Likewise.
16260         (gen_subprogram_die): Likewise.
16261         (gen_variable_die ): Likewise.
16262         (gen_const_die): Likewise.
16263         (gen_field_die): Likewise.
16264         (gen_pointer_type_die): Likewise.
16265         (gen_reference_type_die): Likewise.
16266         (gen_ptr_to_mbr_type_die): Likewise.
16267         (gen_inheritance_die): Likewise.
16268         (gen_subroutine_type_die): Likewise.
16269         (gen_typedef_die): Likewise.
16270         (force_type_die): Adjust call to modified_type_die.
16271
16272 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
16273
16274         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
16275         flow throughout the file.  Fix broken link to Objective-C 2.0
16276         documentation.
16277         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
16278         errors.
16279
16280 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16281
16282         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
16283
16284 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16285
16286         PR ipa/66223
16287         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
16288         (maybe_record_node): Record cxa_pure_virtual as the only possible
16289         target if there are not ohter candidates.
16290         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
16291
16292 2016-01-19  Richard Biener  <rguenther@suse.de>
16293
16294         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
16295         (get_memory_order): Likewise.
16296
16297 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
16298
16299         * tree-vect-stmts.c (vectorizable_store): Check
16300         rhs vectype.
16301
16302 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
16303
16304         PR jit/68446
16305         * gcc.c (driver::decode_argv): Add call to
16306         init_opts_obstack before init_options_struct.
16307         * opts.c (init_opts_obstack): Remove idempotency.
16308         (init_options_struct): Replace call to init_opts_obstack
16309         with a gcc_assert to verify that it has already been called.
16310         * toplev.c (toplev::main): Add call to init_opts_obstack before
16311         calls to init_options_struct.
16312         (toplev::finalize): Move cleanup of opts_obstack next to
16313         cleanup of save_decoded_options, clearing the latter, and
16314         save_decoded_options_count.
16315
16316 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16317
16318         PR target/69135
16319         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
16320         attribute to unconditional.  Remove %? from output template.
16321
16322 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16323             Jiong Wang  <jiong.wang@arm.com>
16324
16325         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
16326         generated from different expand order.
16327
16328 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16329
16330         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
16331         Add support for CCMP costing.
16332
16333 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16334
16335         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
16336         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
16337         (fccmpe<mode>): Likewise.
16338         (fcmp): Rename to fcmp and globalize pattern.
16339         (fcmpe): Likewise.
16340         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
16341         (aarch64_gen_ccmp_next): Add FP support.
16342
16343 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
16344
16345         * target.def (gen_ccmp_first): Update documentation.
16346         (gen_ccmp_next): Likewise.
16347         * doc/tm.texi (gen_ccmp_first): Update documentation.
16348         (gen_ccmp_next): Likewise.
16349         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
16350         expand_ccmp_expr_1.  Improve comments.
16351         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
16352         (ccmp_ior<mode>): Remove pattern.
16353         (cmp<mode>): Remove expand.
16354         (cmp): Globalize pattern.
16355         (cstorecc4): Use cc_register.
16356         (mov<mode>cc): Remove ccmp_cc_register check.
16357         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
16358         Simplify after removal of CC_DNE/* modes.
16359         (aarch64_ccmp_mode_to_code): Remove.
16360         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
16361         In 'k' case use integer as condition.
16362         (aarch64_nzcv_codes): Remove inverted cases.
16363         (aarch64_code_to_ccmode): Remove.
16364         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
16365         comparison with CC register to be used in folowing CCMP/branch/CSEL.
16366         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
16367         pattern.  Return the comparison with CC register.  Invert conditions
16368         when bitcode is OR.
16369         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
16370         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
16371
16372 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16373
16374         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
16375         instrumented_version.
16376
16377 2016-01-19  Richard Biener  <rguenther@suse.de>
16378
16379         PR tree-optimization/69336
16380         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
16381         handled components with get_ref_base_and_extent.
16382         (equal_mem_array_ref_p): Adjust.
16383
16384 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
16385
16386         PR debug/65779
16387         * shrink-wrap.c: Include valtrack.h.
16388         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
16389         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
16390         in between insn and where it will be moved to.  Call
16391         dead_debug_insert_temp.
16392         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
16393         first and dead_debug_local_finish at the end.
16394         For uses and defs bitmap, handle all regs in between REGNO and
16395         END_REGNO, not just the first one.
16396
16397 2016-01-19  Richard Biener  <rguenther@suse.de>
16398
16399         PR tree-optimization/69352
16400         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
16401         (equal_mem_array_ref_p): Constrain size and max size properly.
16402         Compare the reverse flag.
16403
16404 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
16405
16406         * ira.c (ira): Update regstat data if we deleted insns.
16407
16408 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
16409
16410         PR rtl-optimization/68955
16411         PR rtl-optimization/64557
16412         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
16413         here.  Fix up formatting.
16414         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
16415
16416 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16417
16418         PR lto/69133
16419         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
16420         assume that the node has body.
16421         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
16422         check.
16423
16424 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16425
16426         * lto-streamer-out.c (lto_output): Do not stream instrumentation
16427         thunks.
16428
16429 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
16430
16431         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
16432         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
16433
16434 2016-01-19  Martin Jambor  <mjambor@suse.cz>
16435             Martin Liska  <mliska@suse.cz>
16436             Michael Matz  <matz@suse.de>
16437
16438         * Makefile.in (OBJS): Add new source files.
16439         (GTFILES): Add hsa.c.
16440         * common.opt (disable_hsa): New variable.
16441         (-Whsa): New warning.
16442         * config.in (ENABLE_HSA): New.
16443         * configure.ac: Treat hsa differently from other accelerators.
16444         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
16445         $enable_offloading.
16446         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
16447         * doc/install.texi (Configuration): Document --with-hsa-runtime,
16448         --with-hsa-runtime-include, --with-hsa-runtime-lib and
16449         --with-hsa-kmt-lib.
16450         * doc/invoke.texi (-Whsa): Document.
16451         (hsa-gen-debug-stores): Likewise.
16452         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
16453         to invoke offload compiler for hsa acclerator.
16454         * opts.c (common_handle_option): Determine whether HSA offloading
16455         should be performed.
16456         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
16457         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
16458         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
16459         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
16460         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
16461         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
16462         GF_OMP_FOR_KIND_GRID_LOOP.
16463         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
16464         (pp_gimple_stmt_1): Likewise.
16465         * gimple-walk.c (walk_gimple_stmt): Likewise.
16466         * gimple.c (gimple_build_omp_grid_body): New function.
16467         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
16468         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
16469         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
16470         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
16471         GF_OMP_TEAMS_GRID_PHONY.
16472         (gimple_statement_omp_single_layout): Updated comments.
16473         (gimple_build_omp_grid_body): New function.
16474         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
16475         (gimple_omp_for_grid_phony): New function.
16476         (gimple_omp_for_set_grid_phony): Likewise.
16477         (gimple_omp_parallel_grid_phony): Likewise.
16478         (gimple_omp_parallel_set_grid_phony): Likewise.
16479         (gimple_omp_teams_grid_phony): Likewise.
16480         (gimple_omp_teams_set_grid_phony): Likewise.
16481         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
16482         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
16483         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
16484         (BUILT_IN_GOMP_TARGET): Updated type.
16485         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
16486         (adjust_for_condition): New function.
16487         (get_omp_for_step_from_incr): Likewise.
16488         (extract_omp_for_data): Moved parts to adjust_for_condition and
16489         get_omp_for_step_from_incr.
16490         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
16491         (fixup_child_record_type): Bail out if receiver_decl is NULL.
16492         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
16493         (scan_omp_parallel): Do not create child functions for phony
16494         constructs.
16495         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
16496         (scan_omp_1_op): Checking assert we are not remapping to
16497         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
16498         (parallel_needs_hsa_kernel_p): New function.
16499         (expand_parallel_call): Register apprpriate parallel child
16500         functions as HSA kernels.
16501         (grid_launch_attributes_trees): New type.
16502         (grid_attr_trees): New variable.
16503         (grid_create_kernel_launch_attr_types): New function.
16504         (grid_insert_store_range_dim): Likewise.
16505         (grid_get_kernel_launch_attributes): Likewise.
16506         (get_target_argument_identifier_1): Likewise.
16507         (get_target_argument_identifier): Likewise.
16508         (get_target_argument_value): Likewise.
16509         (push_target_argument_according_to_value): Likewise.
16510         (get_target_arguments): Likewise.
16511         (expand_omp_target): Call get_target_arguments instead of looking
16512         up for teams and thread limit.
16513         (grid_expand_omp_for_loop): New function.
16514         (grid_arg_decl_map): New type.
16515         (grid_remap_kernel_arg_accesses): New function.
16516         (grid_expand_target_kernel_body): New function.
16517         (expand_omp): Call it.
16518         (lower_omp_for): Do not emit phony constructs.
16519         (lower_omp_taskreg): Do not emit phony constructs but create for them
16520         a temporary variable receiver_decl.
16521         (lower_omp_taskreg): Do not emit phony constructs.
16522         (lower_omp_teams): Likewise.
16523         (lower_omp_grid_body): New function.
16524         (lower_omp_1): Call it.
16525         (grid_reg_assignment_to_local_var_p): New function.
16526         (grid_seq_only_contains_local_assignments): Likewise.
16527         (grid_find_single_omp_among_assignments_1): Likewise.
16528         (grid_find_single_omp_among_assignments): Likewise.
16529         (grid_find_ungridifiable_statement): Likewise.
16530         (grid_target_follows_gridifiable_pattern): Likewise.
16531         (grid_remap_prebody_decls): Likewise.
16532         (grid_copy_leading_local_assignments): Likewise.
16533         (grid_process_kernel_body_copy): Likewise.
16534         (grid_attempt_target_gridification): Likewise.
16535         (grid_gridify_all_targets_stmt): Likewise.
16536         (grid_gridify_all_targets): Likewise.
16537         (execute_lower_omp): Call grid_gridify_all_targets.
16538         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
16539         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
16540         (tree_omp_clause): Added union field dimension.
16541         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
16542         * tree.c (omp_clause_num_ops): Added number of arguments of
16543         OMP_CLAUSE__GRIDDIM_.
16544         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
16545         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
16546         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
16547         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
16548         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
16549         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
16550         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
16551         * tree-pass.h (make_pass_gen_hsail): Declare.
16552         (make_pass_ipa_hsa): Likewise.
16553         * ipa-hsa.c: New file.
16554         * lto-section-in.c (lto_section_name): Add hsa section name.
16555         * lto-streamer.h (lto_section_type): Add hsa section.
16556         * timevar.def (TV_IPA_HSA): New.
16557         * hsa-brig-format.h: New file.
16558         * hsa-brig.c: New file.
16559         * hsa-dump.c: Likewise.
16560         * hsa-gen.c: Likewise.
16561         * hsa.c: Likewise.
16562         * hsa.h: Likewise.
16563         * toplev.c (compile_file): Call hsa_output_brig.
16564         * hsa-regalloc.c: New file.
16565
16566 2016-01-18  Jeff Law  <law@redhat.com>
16567
16568         PR tree-optimization/69320
16569         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
16570         ranged object, do nothing if the RHS constant is not [0..1].
16571         (optimize_stmt): Comparing a boolean ranged object against a
16572         constant outside [0..1] results in a compile-time constant.
16573
16574         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
16575         test.
16576
16577 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
16578
16579         * doc/invoke.texi (Invoking GCC): Add new section to menu.
16580         (Option Summary): Update to reflect new section and moved options.
16581         (C++ Dialect Options): Move -fstats to new section.
16582         (Debugging Options): Move all dump, statistics, and other GCC
16583         developer options to new section.  Rewrite section introduction
16584         and re-order remaining options to put the more basic ones first.
16585         (Optimization Options): Move -fira-verbose and -flto-report* to
16586         new section.
16587         (Developer Options): New section incorporating moved options.
16588         * doc/cppopts.texi (-dM): Update cross-reference.
16589
16590 2016-01-18  Richard Henderson  <rth@redhat.com>
16591
16592         PR target/69176
16593         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
16594         operands to pseudo only if CSE is expected.  Split long immediate
16595         operands only after reload, and for the stack pointer.
16596         (*add<GPI>3_pluslong): Remove.
16597         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
16598         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
16599         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
16600         (*add<GPI>3 peepholes): New.
16601         (*add<GPI>3 splitters): New.
16602         * config/aarch64/constraints.md (Upl): New.
16603         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
16604
16605 2016-01-18  Richard Biener  <rguenther@suse.de>
16606
16607         PR tree-optimization/69297
16608         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
16609         stmt at most once.
16610         (vect_bb_vectorization_profitable_p): Clear visited flag again.
16611
16612 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
16613
16614         PR middle-end/68542
16615         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
16616         of mixind vector and scalar types.
16617         (fold_relational_const): Add handling of vector
16618         comparison with boolean result.
16619         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
16620         comparison of vector operands with boolean result for EQ/NE only.
16621         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
16622         (verify_gimple_cond): Likewise.
16623         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
16624         valid type of VAL.
16625
16626 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
16627
16628         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
16629         !TARGET_OCTEON.
16630
16631 2016-01-18  Richard Biener  <rguenther@suse.de>
16632
16633         PR middle-end/69308
16634         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
16635
16636 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16637
16638         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
16639
16640 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16641
16642         * omp-low.c (set_oacc_fn_attrib): Make extern.
16643         * omp-low.h (set_oacc_fn_attrib): Declare.
16644         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
16645         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
16646         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
16647         Add and handle function parameter oacc_kernels_p.
16648         (find_reduc_addr, get_omp_data_i_param): New function.
16649         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
16650         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
16651         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
16652         Calculate dominance info.  Skip loops that are not in a kernels region
16653         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
16654         (pass_parallelize_loops::execute): Call parallelize_loops with
16655         oacc_kernels_p argument.
16656         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
16657         New member function.
16658         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
16659         * passes.def: Add argument to pass_parallelize_loops instantation.
16660
16661 2016-01-18  Tom de Vries  <tom@codesourcery.com>
16662
16663         * tree-parloops.c (pass_parallelize_loops::execute): Allow
16664         pass_parallelize_loops to be run outside the loop pipeline.
16665
16666 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16667
16668         * tree-scalar-evolution.c (follow_copies_to_constant): New.
16669         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
16670
16671 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16672
16673         PR target/63679
16674         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
16675         using get_ref_base_and_extent.
16676         (equal_mem_array_ref_p): New.
16677         (hashable_expr_equal_p): Add call to previous.
16678
16679 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
16680
16681         PR target/63679
16682         * tree-sra.c (disqualified_constants, constant_decl_p): New.
16683         (sra_initialize): Allocate disqualified_constants.
16684         (sra_deinitialize): Free disqualified_constants.
16685         (disqualify_candidate): Update disqualified_constants when appropriate.
16686         (create_access): Scan for constant-pool entries as we go along.
16687         (scalarizable_type_p): Add check against type_contains_placeholder_p.
16688         (maybe_add_sra_candidate): Allow constant-pool entries.
16689         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
16690         (initialize_constant_pool_replacements): New.
16691         (sra_modify_assign): Avoid mangling assignments created by previous,
16692         and don't generate writes into constant pool.
16693         (sra_modify_function_body): Call initialize_constant_pool_replacements.
16694
16695 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16696
16697         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
16698         andnot instruction.
16699         (scalar_chain::convert_op): Likewise.
16700         * config/i386/i386.md (*andndi3_doubleword): New.
16701
16702 2016-01-18  Richard Biener  <rguenther@suse.de>
16703
16704         PR tree-optimization/69170
16705         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
16706         building a vector from scalar results of a pattern stmt.
16707
16708 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
16709
16710         * haifa-sched.c (autopref_multipass_init): Work around
16711         -Wmaybe-uninitialized warning.
16712
16713 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16714
16715         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
16716         against the constant 0.
16717
16718 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16719
16720         PR tree-optimization/68799
16721         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
16722         look up phi candidates in the statement-candidate map.
16723         (phi_add_costs): Likewise.
16724         (record_phi_increments): Likewise.
16725         (phi_incr_cost): Likewise.
16726         (ncd_with_phi): Likewise.
16727         (all_phi_incrs_profitable): Likewise.
16728
16729 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
16730
16731         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
16732         -Wmaybe-uninitialized warning.
16733
16734 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
16735
16736         * doc/invoke.texi (Invoking GCC): Add new section to menu.
16737         (Option Summary): Update to reflect new section and moved options.
16738         (C++ Dialect Options): Move -fvtable-verify and related options.
16739         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
16740         and profiling-related options.
16741         (Optimization Options): Move profile generation options and
16742         -fstack-protector and related options.
16743         (Instrumentation Options): New section incorporating moved options.
16744         (Code Generation Options): Move -finstrument-functions and
16745         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
16746
16747 2016-01-16  Tom de Vries  <tom@codesourcery.com>
16748
16749         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
16750
16751 2016-01-16  Tom de Vries  <tom@codesourcery.com>
16752
16753         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
16754
16755 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
16756
16757         * hash-table.h (hash_table::empty): Turn into an inline wrapper
16758         that checks whether the table is already empty.  Rename the
16759         original implementation to...
16760         (hash_table::empty_slot): ...this new private function.
16761
16762 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
16763
16764         PR diagnostic/68899
16765         * diagnostic-show-locus.c (layout::print_source_line): Move x
16766         offset of line until after call to
16767         get_line_width_without_trailing_whitespace.
16768
16769 2016-01-15  Jeff Law  <law@redhat.com>
16770
16771         PR tree-optimization/69270
16772         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
16773         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
16774         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
16775         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
16776         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
16777         ssa_name_has_boolean_range and constant_boolean_node.
16778
16779 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
16780
16781         PR rtl-optimization/69030
16782         * lra-spills.c (remove_pseudos): Check nrefs and make the function
16783         returning bool.
16784         (spill_pseudos): Delete debug insn for dead pseudo.
16785         (lra_spill): Initiate spill_hard_reg and slots memory separately.
16786
16787 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
16788
16789         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
16790         New.
16791         (TYPES_UNOPUS): Likewise.
16792         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
16793         builtin type, from UNOP to UNOPUS.
16794         (lbtruncuv4sf): Likewise.
16795         (lbtruncuv2df): Likewise.
16796         (lrounduv2sf): Likewise.
16797         (lrounduv4sf): Likewise.
16798         (lrounduv2df): Likewise.
16799         (lroundusf): Likewise.
16800         (lroundusf): Likewise.
16801         (lceiluv2sf): Likewise.
16802         (lceiluv4sf): Likewise.
16803         (lceiluv2df): Likewise.
16804         (lceilusf): Likewise.
16805         (lceiludf): Likewise.
16806         (lflooruv2sf): Likewise.
16807         (lflooruv4sf): Likewise.
16808         (lflooruv2df): Likewise.
16809         (lfloorusf): Likewise.
16810         (lfloorudf): Likewise.
16811         (lfrintnuv2sf): Likewise.
16812         (lfrintnuv4sf): Likewise.
16813         (lfrintnuv2df): Likewise.
16814         (lfrintnusf): Likewise.
16815         (lfrintnudf): Likewise.
16816         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
16817         conversion.
16818         (vcvtq_u32_f32): Likewise.
16819         (vcvtq_u64_f64): Likewise.
16820         (vcvta_u32_f32): Likewise.
16821         (vcvtaq_u32_f32): Likewise.
16822         (vcvtaq_u64_f64): Likewise.
16823         (vcvtm_u32_f32): Likewise.
16824         (vcvtmq_u32_f32): Likewise.
16825         (vcvtmq_u64_f64): Likewise.
16826         (vcvtn_u32_f32): Likwise.
16827         (vcvtnq_u32_f32): Likewise.
16828         (vcvtnq_u64_f64): Likewise.
16829         (vcvtp_u32_f32): Likewise.
16830         (vcvtpq_u32_f32): Likewise.
16831         (vcvtpq_u64_f64): Likewise.
16832         (vcvtmd_u64_f64): Likewise.
16833         (vcvtms_u32_f32): Likewise.
16834         (vcvtad_u64_f64): Likewise.
16835         (vcvtas_u32_f32): Likewise.
16836         (vcvtnd_u64_f64): Likewise.
16837         (vcvtns_u32_f32): Likewise.
16838         (vcvtpd_u64_f64): Likewise.
16839         (vcvtps_u32_f32): Likewise.
16840
16841 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16842
16843         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
16844         CSEL of zero_extended registers.
16845
16846 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16847
16848         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
16849         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
16850
16851 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16852
16853         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
16854         false when argument string is not found in the attributes table
16855         at all.
16856
16857 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
16858
16859         PR target/68609
16860         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
16861         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
16862         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
16863         precision estimate.
16864
16865 2016-01-15  Richard Biener  <rguenther@suse.de>
16866
16867         PR tree-optimization/66856
16868         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
16869         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
16870         (vect_create_new_slp_node): Increment stmt reference count.
16871         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
16872         an SLP tree before swapping operands.
16873         (vect_build_slp_tree): Likewise.
16874         (destroy_bb_vec_info): Free stmt info after SLP instances.
16875         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
16876         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
16877         (STMT_VINFO_NUM_SLP_USES): New macro.
16878
16879 2016-01-15  Richard Biener  <rguenther@suse.de>
16880
16881         PR debug/69137
16882         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
16883         (add_linkage_name): ... here.
16884         (gen_typedef_die): Use add_linkage_name_raw instead of
16885         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
16886         if necessary.
16887
16888 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
16889
16890         * gimplify.c (oacc_default_clause): Decode reference and pointer
16891         types for both kernels and parallel regions.
16892
16893 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
16894
16895         PR middle-end/69246
16896         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
16897
16898 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
16899
16900         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
16901         (convert_scalars_to_vector): Likewise.
16902
16903 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
16904
16905         * doc/extend.texi (Type Traits): Fix grammar.
16906
16907 2016-01-15  Martin Jambor  <mjambor@suse.cz>
16908
16909         * tree-inline.c (remap_decl): Use existing dclarations if
16910         remapping a type and prevent_decl_creation_for_types.
16911         (replace_locals_stmt): Do an initial remapping of non-VLA typed
16912         decls first.  Do real remapping with
16913         prevent_decl_creation_for_types set.
16914         * tree-inline.h (copy_body_data): New field
16915         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
16916         padding.
16917
16918 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16919
16920         * config/s390/s390.opt (mmvcle): More verbose help text.
16921
16922 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16923
16924         * config/s390/s390.opt: Add period to -mzvector option text.
16925
16926 2016-01-15  Richard Biener  <rguenther@suse.de>
16927
16928         PR tree-optimization/68961
16929         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
16930         of invariants in stores again.
16931
16932 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16933
16934         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
16935
16936 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
16937
16938         * config/i386/i386.c (ix86_expand_branch): Don't split
16939         DI mode xor instruction to SI mode.
16940
16941 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
16942
16943         PR ipa/68148
16944         * ipa-icf.c (sem_function::merge): Virtual functions may become
16945         reachable even if they address is not taken and there are no
16946         idrect calls.
16947
16948 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
16949
16950         * lto-streamer-out.c (subtract_estimated_size): New function.
16951         (get_symbol_initial_value): Use it.
16952
16953 2016-01-15  Christian Bruel  <christian.bruel@st.com>
16954
16955         PR target/65837
16956         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
16957         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
16958         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
16959         use add_builtin_function_ext_scope instead of add_builtin_function.
16960         (neon_set_p, neon_crypto_set_p): Remove.
16961         (arm_init_builtins): Always call arm_init_neon_builtins and
16962         arm_init_crypto_builtins.
16963         (arm_expand_builtin): Check that builtins are allowed for the arch.
16964         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
16965         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
16966         arm_init_neon_builtins call.
16967
16968 2016-01-15  Richard Biener  <rguenther@suse.de>
16969
16970         PR tree-optimization/69117
16971         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
16972         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
16973         of the leader conservatively.
16974         (free_scc_vn): Restore original SSA name infos.
16975
16976 2016-01-14  Jeff Law  <law@redhat.com>
16977
16978         PR tree-optimization/69270
16979         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
16980         single bit of precision, verify it's also unsigned.
16981         (record_edge_info): Use constant_boolean_node rather than fold_convert
16982         to convert boolean_true/boolean_false to the right type.
16983
16984 2016-01-14  Richard Henderson  <rth@redhat.com>
16985
16986         PR rtl-opt/69014
16987         * loop-doloop.c (record_reg_sets): New.
16988         (doloop_optimize): Reject the transform if the sequence
16989         clobbers registers live at the end of the loop block.
16990         (doloop_optimize_loops): Enable df_live if needed.
16991
16992 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16993
16994         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
16995         * config/rs6000/rs6000.c: Likewise.
16996         * config/rs6000/rs6000.h: Likewise.
16997         * config/rs6000/rs6000.md: Likewise.
16998         * doc/extend.texi: Likewsie.
16999
17000 2016-01-14  Jeff Law  <law@redhat.com>
17001
17002         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
17003         typo.
17004
17005 2016-01-14  Richard Henderson  <rth@redhat.com>
17006
17007         PR c/69272
17008         PR tree-opt/68964
17009         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
17010         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
17011         instead of builtin_decl_declared_p to test for declaration.
17012
17013 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
17014
17015         * doc/loop.texi (Loop Analysis and Representation): Document
17016         loop_depth function.
17017
17018 2016-01-14  Tom de Vries  <tom@codesourcery.com>
17019
17020         PR tree-optimization/68773
17021         * omp-low.c (expand_omp_target): Don't set force_output.
17022         * varpool.c (varpool_node::get_create): Same.
17023         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
17024         offload_funcs with force_output.
17025
17026 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
17027
17028         PR debug/69244
17029         * lra-eliminations.c (move_plus_up): Don't change anything if either
17030         the outer or inner subreg mode is not MODE_INT.
17031         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
17032         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
17033
17034 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
17035
17036         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
17037         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
17038         reduc_uplus_@var{m}): Remove.
17039         * expr.c (expand_expr_real_2): Remove expansion path for
17040         reduc_[us](min|max|plus) optabs.
17041         * optabs-tree.c (scalar_reduc_to_vector): Remove.
17042         * optabs-tree.h (scalar_reduc_to_vector): Remove.
17043         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
17044         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
17045         * tree-vect-loop.c (vectorizable_reduction): Remove test for
17046         reduc_[us](min|max|plus) optabs.
17047
17048 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
17049
17050         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
17051         (reduc_plus_scal_v2sf): New.
17052         (reduc_smax_v2sf): Rename to...
17053         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
17054         (reduc_smin_v2sf): Rename to...
17055         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
17056
17057 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
17058
17059         * alias.c (compare_base_symbol_refs): New function.
17060         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
17061         it.
17062
17063 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
17064
17065         PR middle-end/68146
17066         PR tree-optimization/69155
17067         * tree-complex.c: Include cfganal.h.
17068         (phis_to_revisit): New variable.
17069         (extract_component): Add phiarg_p argument.  Assert that returned
17070         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
17071         (update_phi_components): Partly rewrite to use loop over real/imag
17072         components instead of code duplication.  If extract_component returns
17073         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
17074         create_tmp_reg into the PHI node instead, and mention the phi triplet
17075         in phis_to_revisit.
17076         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
17077         in phis_to_revisit at the end.
17078
17079 2016-01-14  Richard Biener  <rguenther@suse.de>
17080
17081         PR tree-optimization/68060
17082         * tree-vect-loop.c (vect_is_simple_reduction): Check the
17083         outer loop reduction is only used in the inner loop before
17084         detecting a double reduction.
17085
17086 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
17087
17088         PR target/68269
17089         * combine.c (expand_field_assignment): Punt if compute_mode is
17090         unsupported scalar mode.
17091
17092 2016-01-14  Richard Biener  <rguenther@suse.de>
17093
17094         PR tree-optimization/66856
17095         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
17096         SLP node only if it built successfully.
17097         (vect_analyze_slp_instance): Adjust.
17098
17099 2016-01-14  Jeff Law  <law@redhat.com>
17100
17101         PR tree-optimization/69270
17102         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
17103         (record_edge_info): Use it.  Convert boolean_{true,false}_node
17104         to the type of op0.
17105
17106 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
17107
17108         PR ipa/66487
17109         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
17110         use block_ultimate_origin
17111         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
17112
17113 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
17114
17115         * doc/invoke.texi (Submodel Options): Rename section to
17116         "Machine-Dependent Options" to better reflect its content.
17117         Rewrite introductory text to remove archaic CPU names.
17118         Update references.
17119
17120 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
17121
17122         * doc/invoke.texi (Code Gen Options): Move section up in file,
17123         before target-specific options.  Update menu and option summary
17124         to reflect the new section ordering.
17125
17126 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
17127
17128         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
17129         (C++ Dialect Options): Add cross-reference to -std option.
17130         * doc/standards.texi (C++ Language): Document C++14 support.
17131
17132 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
17133
17134         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
17135         for pack/unpack functions for __ibm128.
17136         (PACK_IF): Likewise.
17137         (UNPACK_IF): Likewise.
17138
17139         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
17140         support for __ibm128 pack/unpack functions.
17141         (rs6000_invalid_builtin): Likewise.
17142         (rs6000_init_builtins): Likewise.
17143         (rs6000_opt_masks): Likewise.
17144
17145         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
17146         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
17147         functions
17148         (RS6000_BTM_COMMON): Likewise.
17149
17150         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
17151         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
17152         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
17153         128-bit floating point.  Add support for the double values to be
17154         in Altivec registers for TF/IF packing and unpacking, but restrict
17155         TD packing sub-fields to be FPR registers.  Don't allow overlapped
17156         register support for packing.  Allow pack inputs to be memory
17157         locations.  Don't build generator functions for unpack<mode>_dm
17158         and unpack<mode>_nodm.
17159         (unpack<mode>_dm): Likewise.
17160         (unpack<mode>_nodm): Likewise.
17161         (pack<mode>): Likewise.
17162
17163         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
17164         built-in functions to pack/unpack explicit __ibm128 values.
17165         (__builtin_unpack_ibm128): Likewise.
17166
17167         * doc/extend.texi (PowerPC Built-in Functions): Document
17168         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
17169
17170 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
17171
17172         PR c/66208
17173         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
17174         Add new arg loc and pass it down as context.
17175         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
17176         to the location to use for the warning.
17177         (check_function_arguments): New arg loc.  All callers changed.  Pass
17178         it to check_function_nonnull.
17179         * c-common.h (check_function_arguments): Adjust declaration.
17180
17181 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
17182
17183         PR tree-optimization/69156
17184         * gimple.c (validate_type): Removed.
17185         (gimple_builtin_call_types_compatible_p): Use
17186         useless_type_conversion_p instead of validate_type.
17187         * value-prof.c (gimple_stringop_fixed_value): Fold
17188         icall_size to correct type.
17189
17190 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
17191
17192         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
17193         effects.
17194
17195 2016-01-13  Richard Henderson  <rth@redhat.com>
17196
17197         PR tree-opt/68964
17198         * target.def (builtin_tm_load, builtin_tm_store): Remove.
17199         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
17200         (ix86_builtin_tm_store): Remove.
17201         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
17202         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
17203         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
17204         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
17205         * doc/tm.texi: Rebuild.
17206
17207         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
17208         (BUILT_IN_TM_MEMCPY_RTWN): New.
17209         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
17210         fallback from vector to integer helpers.
17211         (build_tm_load): Handle vector types directly, instead of
17212         via target hook.
17213         (build_tm_store): Likewise.
17214         (expand_assign_tm): Prepare for register types not handled by
17215         the above.  Copy them to memory and use memcpy.
17216         * tree.c (tm_define_builtin): New.
17217         (find_tm_vector_type): New.
17218         (build_tm_vector_builtins): New.
17219         (build_common_builtin_nodes): Call it.
17220
17221 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
17222
17223         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
17224         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
17225
17226 2016-01-13  Tom de Vries  <tom@codesourcery.com>
17227
17228         PR tree-optimization/69169
17229         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
17230         handled_struct_type param.
17231         (create_variable_info_for, intra_create_variable_infos): Call
17232         create_variable_info_for_1 with extra arg.
17233
17234 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
17235
17236         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
17237         and "armv8.1-a+crc" entries.
17238
17239 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
17240
17241         PR target/69228
17242         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
17243         Change first operand predicate from register_or_constm1_operand
17244         to register_operand.
17245         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
17246         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
17247         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
17248         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
17249         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
17250         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
17251         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
17252         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
17253         comparison with constm1_rtx from vec_prefetch_gen part.
17254
17255 2016-01-13  Richard Biener  <rguenther@suse.de>
17256
17257         PR tree-optimization/69013
17258         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
17259         Exchange assert for a test.
17260
17261 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17262
17263         PR target/69247
17264         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
17265
17266 2016-01-13  Richard Biener  <rguenther@suse.de>
17267
17268         PR tree-optimization/69242
17269         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
17270         assert with a check.
17271
17272 2016-01-13  Richard Biener  <rguenther@suse.de>
17273
17274         PR tree-optimization/69186
17275         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
17276         Properly guard vect_update_misalignment_for_peel call.
17277
17278 2016-01-12  Jeff Law  <law@redhat.com>
17279
17280         PR tree-optimization/pr67755
17281         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
17282         "need_profile_correction".
17283         (thread_block_1): Initialize new field to false by default.  If we
17284         have multiple thread paths through a common joiner to different
17285         final targets, then set new field to true.
17286         (compute_path_counts): Only do count adjustment when it's really
17287         needed.
17288
17289 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17290
17291         * doc/invoke.texi (Spec Files): Move section down in file, past
17292         all command-line option descriptions.
17293
17294 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17295
17296         PR middle-end/54809
17297         * doc/gty.texi: Remove documentation of mark_hook.
17298         * gengtype.c (struct write_types_data): Remove code to support
17299         mark_hook attribute.
17300         (walk_type): Likewise.
17301         (write_func_for_structure): Likewise.
17302
17303 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17304
17305         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
17306         Directory Options, and -specs= to Overall Options.
17307         (Overall Options): Adjust similarly.  Reorder to group related
17308         options together.  Make -specs= cross-reference the spec file details.
17309         (Directory Options): Adjust similarly.
17310
17311 2016-01-12  Jeff Law  <law@redhat.com>
17312
17313         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
17314
17315 2016-01-12  Olivier Hainque  <hainque@adacore.com>
17316
17317         * gcc.c (spec_undefvar_allowed): New global.
17318         (process_command): Set to true when running for --version or --help,
17319         alone or together.
17320         (getenv_spec_function): When the variable is not defined, use the
17321         variable name as the variable value if we're allowed not to issue
17322         a fatal error.
17323
17324 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
17325
17326         PR tree-optimization/68911
17327         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
17328         information computed for expression "init + nit * step".
17329
17330 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17331
17332         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
17333         about name of GCC executable.  Remove deleted node from menu.
17334         (Directory Options) <-B>: Remove cross-reference to deleted node.
17335         (Target Options): Delete section.
17336
17337 2016-01-12  Christian Bruel  <christian.bruel@st.com>
17338
17339         PR target/69180
17340         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
17341         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
17342
17343 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
17344
17345         PR target/69198
17346         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
17347         aligned_mem is properly set for AVX512-VL floating point masked
17348         stores.
17349
17350         PR target/69175
17351         * ifcvt.c (cond_exec_process_if_block): When removing the last
17352         insn from then_bb, remove also any possible barriers that follow it.
17353
17354 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
17355
17356         PR target/68456
17357         PR target/69226
17358         * config/i386/iamcu.h (SIZE_TYPE): New macro.
17359         (PTRDIFF_TYPE): Likewise.
17360         (WCHAR_TYPE): Likewise.
17361         (WCHAR_TYPE_SIZE): Likewise.
17362         (STDINT_LONG32): Likewise.
17363
17364 2016-01-12  Richard Biener  <rguenther@suse.de>
17365
17366         PR tree-optimization/69053
17367         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
17368         convert initial value for cond reductions.
17369
17370 2016-01-12  Richard Biener  <rguenther@suse.de>
17371
17372         PR tree-optimization/69007
17373         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
17374         widen_sum after dot_prod and sad.
17375
17376 2016-01-12  Richard Biener  <rguenther@suse.de>
17377
17378         PR tree-optimization/69168
17379         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
17380         pattern stmt SLP type.
17381         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
17382         end up unused so cope with that case.
17383
17384 2016-01-12  Richard Biener  <rguenther@suse.de>
17385
17386         PR tree-optimization/69157
17387         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
17388         stmts def type only during analyze phase.
17389         (vectorizable_call): Likewise.
17390         (vectorizable_simd_clone_call): Likewise.
17391         (vectorizable_conversion): Likewise.
17392         (vectorizable_assignment): Likewise.
17393         (vectorizable_shift): Likewise.
17394         (vectorizable_operation): Likewise.
17395         (vectorizable_store): Likewise.
17396         (vectorizable_load): Likewise.
17397
17398 2016-01-12  Richard Biener  <rguenther@suse.de>
17399
17400         PR tree-optimization/69174
17401         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
17402         space.
17403         (vectorizable_load): Properly compute the number of loads needed
17404         for permuted strided SLP loads and do not spuriously assign
17405         to SLP_TREE_VEC_STMTS.
17406
17407 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
17408
17409         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
17410         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
17411         (MD_EXEC_PREFIX): Remove.
17412         (MD_STARTFILE_PREFIX) Removee.
17413         (FILE_NAME_ABSOLUTE_P): Remove.
17414         (CPP_SPEC): Do not read macros from sys/version.h.
17415         (LINK_COMMAND_SPEC): Remove.
17416         (LOCAL_INCLUDE_DIR): Remove.
17417         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
17418         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
17419         (POST_LINK_SPEC): Define to invoke stubify after linker
17420         (LIBSTDCXX): Remove define
17421         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
17422         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
17423         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
17424         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
17425         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
17426         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
17427         (i386_djgpp_asm_named_section): Add propotype of new procedure
17428
17429         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
17430         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
17431         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
17432         in config/i386/djgpp.h).
17433         (STANDARD_STARTFILE_PREFIX_2): Define identical to
17434         STANDARD_STARTFILE_PREFIX_1.
17435         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
17436         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
17437         installation errors.
17438         (MAX_OFILE_ALIGNMENT): Define to 128.
17439         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
17440
17441         * config/i386/djgpp.c: New file. Add implementation of
17442         i386_djgpp_asm_named_section.
17443
17444         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
17445
17446         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
17447         Add rule for building djgpp.o.
17448
17449 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17450
17451         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
17452         (rtx_is_swappable_p): Reductions are swappable.
17453         (insn_is_swappable_p): V2DF reductions are swappable.
17454
17455 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
17456
17457         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
17458         reloads for other unsupported memory operands.
17459
17460 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
17461             Jim Wilson  <jim.wilson@linaro.org>
17462
17463         PR target/69194
17464         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
17465         copy_to_mode_reg instead of force_reg.
17466
17467 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
17468
17469         PR target/69225
17470         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
17471         TARGET_80387 is true.
17472
17473 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
17474
17475         PR target/69071
17476         * lra-eliminations.c (move_plus_up): Only move plus up
17477         if subreg of the constant can be simplified into constant
17478         and use the simplified subreg of the constant instead of
17479         the original constant.
17480
17481         * fold-const.c (fold_convertible_p): Don't return true
17482         for conversion of VECTOR_TYPE to same sized integral type.
17483         (fold_convert_loc): Fix up formatting.  Fold conversion of
17484         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
17485         instead of NOP_EXPR.
17486
17487         PR tree-optimization/69214
17488         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
17489         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17490         Formatting fix.
17491
17492         PR tree-optimization/69207
17493         * tree-vect-slp.c (vect_get_constant_vectors): For
17494         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
17495         fold_convertible_p to vector_type's element type, and always
17496         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
17497
17498 2016-01-11  Richard Biener  <rguenther@suse.de>
17499
17500         PR tree-optimization/69173
17501         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
17502         fixup the cycle if all stmts are in a pattern.
17503
17504 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
17505
17506         PR middle-end/68999
17507         * alias.c (base_alias_check): Move check for addresses with
17508         alignment ANDs before the call for compare_base_decls.
17509         (memrefs_conflict_p): Return -1 for different decls
17510         that went through alignment adjustments.
17511
17512 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17513
17514         PR rtl-optimization/68796
17515         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
17516         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
17517         and QImode comparisons against zero with CC_NZmode.
17518         * config/aarch64/iterators.md (short_mask): New mode_attr.
17519
17520 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
17521
17522         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
17523         (<avx512>_store<mode>_mask): Likewise.
17524
17525 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
17526             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17527
17528         PR rtl-optimization/68841
17529         * ifcvt.c (struct noce_if_info): Add orig_x field.
17530         (bbs_ok_for_cmove_arith): Add to_rename parameter.
17531         Don't record conflicts on to_rename if it's present.
17532         Allow memory destinations in sets.
17533         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
17534         blocks, passing orig_x to the checks.
17535         (noce_process_if_block): Set if_info->orig_x appropriately.
17536
17537 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17538
17539         PR tree-optimization/69069
17540         * tree-parloops.c (create_parallel_loop): Add missing phi args.
17541
17542 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
17543
17544         PR rtl-optimization/68920
17545         * config/i386/i386.c (ix86_option_override_internal): Restrict number
17546         of conditional moves for  RTL if-conversion to 1 for
17547         TARGET_ONE_IF_CONV_INSN.
17548         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
17549         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
17550         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
17551         parameter to restirct number of conditional moves for
17552         RTL if-conversion.
17553         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
17554         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
17555         conditionl moves.
17556
17557 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
17558
17559         PR bootstrap/69123
17560         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
17561         onepart vars.  Fix typo in comment.  Fix reversed condition in
17562         unshare test.
17563         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
17564
17565         PR bootstrap/69123
17566         * var-tracking.c (dump_onepart_variable_differences): New.
17567         (dataflow_set_different): If a detailed dump is requested,
17568         delay early returns and dump differences between onepart
17569         variables present before and after, and added variables.
17570
17571 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
17572
17573         PR target/69010
17574         * expr.c (expand_expr_real_1): For boolean vector constants
17575         with a scalar mode use const_scalar_mask_from_tree.
17576         (const_scalar_mask_from_tree): New.
17577         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
17578         assigned to a mask type to handle constants.
17579
17580 2016-01-11  Martin Jambor  <mjambor@suse.cz>
17581
17582         PR ipa/69044
17583         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
17584         useless parameters if we cannot change function signature.
17585
17586 2016-01-11  Martin Jambor  <mjambor@suse.cz>
17587
17588         PR ipa/66616
17589         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
17590         flag.
17591
17592 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17593
17594         PR tree-optimization/69109
17595         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
17596         latch with phi.
17597
17598 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17599
17600         PR tree-optimization/69108
17601         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
17602         res is not used in a phi.
17603
17604 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
17605
17606         PR 67425
17607         * common.opt (frandom-seed): Fix parameter name.
17608         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
17609
17610 2016-01-11  Tom de Vries  <tom@codesourcery.com>
17611
17612         PR tree-optimization/69058
17613         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
17614         not supported.
17615
17616 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
17617
17618         * config/arc/arc.opt (mdiv-rem): Add period to the end.
17619         (mcode-density): Likewise.
17620
17621 2016-01-10  Tom de Vries  <tom@codesourcery.com>
17622
17623         PR tree-optimization/69062
17624         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
17625         (parallelize_loops): Don't paralelize loop that has phi with address
17626         arg.
17627
17628 2016-01-10  Tom de Vries  <tom@codesourcery.com>
17629
17630         PR tree-optimization/69039
17631         * tree-parloops.c (try_create_reduction_list): Only allow single exit
17632         phi for reduction.
17633
17634 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
17635
17636         PR middle-end/68743
17637         * match.pd: Require target has function_c99_misc before doing
17638         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
17639
17640 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
17641
17642         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
17643         use GMPINC.
17644         * configure: Regenerate.
17645
17646 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
17647
17648         PR middle-end/50865
17649         PR tree-optimization/69097
17650         * fold-const.h (expr_not_equal_to): New prototype.
17651         * fold-const.c: Include stringpool.h and tree-ssanames.h.
17652         (expr_not_equal_to): New function.
17653         * match.pd (X % -Y is the same as X % Y): Don't optimize
17654         unless X is known not to be equal to minimum or Y is known
17655         not to be equal to -1.
17656         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
17657         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
17658         (simplify_stmt_using_ranges): Adjust caller.
17659         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
17660         substitute_and_fold.
17661
17662 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
17663
17664         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
17665         w/o DECL_NAME.
17666
17667 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17668
17669         PR tree-optimization/69167
17670         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
17671         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
17672         ops[0] comparison.
17673         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
17674
17675 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
17676             Richard Biener  <rguenther@suse.de>
17677
17678         PR tree-optimization/68707
17679         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
17680         instances that can be handled via vect_load_lanes.
17681
17682 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
17683
17684         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
17685         if we can't determine address equivalence.
17686         * alias.c (compare_base_decl): Update for changed return value of
17687         symtab_node::equal_address_to.
17688
17689 2016-01-08  Jason Merrill  <jason@redhat.com>
17690
17691         PR c++/68983
17692         PR c++/67557
17693         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
17694         * expr.c (store_field): Not here.
17695         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
17696         call with TREE_ADDRESSABLE type.
17697         * tree-cfg.c (verify_gimple_call): Adjust.
17698
17699 2016-01-08  Olivier Hainque  <hainque@adacore.com>
17700
17701         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
17702         libc_internal.
17703
17704 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
17705
17706         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
17707         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
17708         (reduc_smin_v2sf): Rename to...
17709         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
17710         (reduc_splus_v2sf): Rename to...
17711         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
17712
17713 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17714
17715         PR tree-optimization/69162
17716         * gimplify.c (gimplify_va_arg_expr): Encode original type of
17717         valist argument in another argument.
17718         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
17719         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
17720         to determine the va_list type, build a MEM_REF instead of
17721         build_fold_indirect_ref.
17722
17723         PR tree-optimization/69172
17724         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
17725         gimple_build.
17726
17727 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17728
17729         PR tree-optimization/67781
17730         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
17731         and cmpnop in two steps: first the ones not accessed in original
17732         gimple expression in a endian independent way and then the ones not
17733         accessed in the final result in an endian-specific way.
17734
17735 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
17736
17737         PR tree-optimization/69083
17738         * tree-vect-slp.c (vect_get_constant_vectors): For
17739         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
17740         element type.  If op is fold_convertible_p to vector_type's element
17741         type, use NOP_EXPR instead of VCE.
17742
17743 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
17744
17745         PR rtl-optimization/67778
17746         PR rtl-optimization/68634
17747         PR rtl-optimization/68909
17748         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
17749         block from the stack until done with it.  Remove a superfluous
17750         bitmap set.  Remove a superfluous bitmap test.
17751
17752 2016-01-07  Martin Sebor  <msebor@redhat.com>
17753
17754         PR c/68966
17755         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
17756         constraint on the type of arguments.
17757
17758 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
17759
17760         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
17761         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
17762         unaligned_access on the gcc_options set.
17763         * config/arm/arm.c (arm_option_override_internal): Use
17764         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
17765
17766 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
17767
17768         PR target/69140
17769         * config/i386/i386.c (ix86_frame_pointer_required): Enable
17770         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
17771
17772 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
17773
17774         Revert
17775         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
17776
17777         PR target/69140
17778         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
17779         depending on frame_pointer_needed before remaining integer and SSE
17780         registers are saved.
17781
17782 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
17783
17784         PR 1078
17785         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
17786
17787 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
17788
17789         PR target/69171
17790         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
17791         Use the "xBm" constraint.
17792         (float<sseintvecmodelower><mode>2<mask_name><round_name):
17793         Likewise.
17794         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
17795         (sse_cvtsi2ssq<round_name>): Likewise.
17796         (sse_cvtss2si<round_name>): Likewise.
17797         (sse_cvtss2siq<round_name>): Likewise.
17798         (sse2_cvtsi2sdq<round_name>): Likewise.
17799         (sse2_cvtsd2si<round_name>): Likewise.
17800         (sse2_cvtsd2siq<round_name>): Likewise.
17801         * config/i386/subst.md (round_nimm_scalar_predicate): New
17802         predicate.
17803
17804 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
17805
17806         PR middle-end/67639
17807         * varasm.c (make_decl_rtl): Mark invalid register vars as
17808         DECL_EXTERNAL.
17809
17810         PR rtl-optimization/66206
17811         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
17812         All callers changed.
17813
17814 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
17815
17816         PR tree-optimization/69141
17817         * tree-ssa-pre.c: Include langhooks.h.
17818         (eliminate_dom_walker::before_dom_children): Use
17819         lang_hooks.decl_printable_name instead of
17820         cgraph_node::get ()->name ().
17821
17822         PR middle-end/68960
17823         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
17824         it and DECL_ALIGN too.
17825
17826 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
17827
17828         * config/mips/mips-ftypes.def: Sort to lexicographical order.
17829
17830 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
17831
17832         PR target/69140
17833         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
17834         depending on frame_pointer_needed before remaining integer and SSE
17835         registers are saved.
17836
17837 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17838
17839         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
17840         mode iterator with VSX_M2.
17841         (*p9_vecstore_<mode>): Likewise.
17842         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
17843         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
17844         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
17845         (define_split for VSX_LE128 stores): Likewise.
17846         (define_peephole2 for TImode LE swaps): Likewise.
17847         (define_split for VSX_LE128 post-reload stores): Likewise.
17848
17849 2016-01-06  Marek Polacek  <polacek@redhat.com>
17850
17851         PR sanitizer/69099
17852         * convert.c (convert_to_integer_1): Adjust call to
17853         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
17854         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
17855         EXPR instead of ARG.
17856         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
17857
17858 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17859
17860         PR 1078
17861         * doc/extend.texi (RL78 Variable Attributes): New section.
17862
17863 2016-01-05  Marek Polacek  <polacek@redhat.com>
17864
17865         PR c/69104
17866         * builtins.c (get_memmodel): Use expansion point location rather than
17867         the input location.  Call warning_at rather than warning.
17868         (expand_builtin_atomic_compare_exchange): Likewise.
17869         (expand_builtin_atomic_load): Likewise.
17870         (expand_builtin_atomic_store): Likewise.
17871         (expand_builtin_atomic_clear): Likewise.
17872
17873 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17874
17875         PR target/68991
17876         * config/i386/i386.c (ix86_expand_vector_logical_operator):
17877         Replace nonimmediate_operand with vector_operand.
17878         * config/i386/predicates.md (vector_operand): New predicate.
17879         (general_vector_operand): Replace nonimmediate_operand with
17880         vector_operand.
17881         * config/i386/sse.md: Replace nonimmediate_operand with
17882         vector_operand and m constraint with Bm constraint on SSE
17883         patterns with 16-byte memory operand.
17884         * config/i386/subst.md (round_nimm_predicate): Replace
17885         nonimmediate_operand with vector_operand.
17886         (round_saeonly_nimm_predicate): Likewise.
17887         (round_saeonly_nimm_scalar_predicate): New.
17888
17889 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
17890
17891         PR target/68991
17892         * config/i386/constraints.md (Bm): New constraint.
17893         * config/i386/predicates.md (vector_memory_operand): New
17894         predicate.
17895         * config/i386/sse.md: Replace xm with xBm in plusminus and
17896         any_logic patterns.
17897
17898 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17899
17900         PR 1078
17901         * doc/extend.texi (V850 Function Attributes): New section.
17902         (V850 Variable Attributes): New section.
17903
17904 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
17905
17906         PR 1078
17907         * doc/extend.texi (MicroBlaze Function Attributes): Document
17908         interrupt_handler and fast_interrupt attributes.
17909
17910 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
17911
17912         PR other/60465
17913         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
17914         for local symbolic operands.
17915         * config/ia64/predicates.md (local_symbolic_operand64): New
17916         predicate.
17917
17918 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17919
17920         PR rtl-optimization/68651
17921         * combine.c (combine_simplify_rtx): Canonicalize x + x into
17922         x << 1.
17923
17924 2016-01-05  Nathan Sidwell  <nathan@acm.org>
17925
17926         * alias.c (compare_base_decls): Use symtab_node::get.
17927
17928 2016-01-05  Nick Clifton  <nickc@redhat.com>
17929
17930         PR target/68770
17931         * ira-costs.c (copy_cost): Initialise the t_icode field of the
17932         secondary_reload_info structure.
17933
17934         PR target/66655
17935         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
17936         decls if weak support is available.
17937
17938 2016-01-04  Martin Sebor  <msebor@redhat.com>
17939
17940         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
17941
17942 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
17943
17944         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
17945         OPTION_MASK_P9_DFORM.
17946
17947         * config/rs6000/constraints.md (wo constraint): New constraint for
17948         ISA 3.0 (power9).
17949
17950         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
17951         for wo constraint.
17952         (rs6000_init_hard_regno_mode_ok): Likewise.
17953
17954         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
17955         wo constraint.
17956
17957         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
17958         expanders not to have constraints.  Add support for ISA 3.0 xxperm
17959         instruction.  Add support for fusing xxlor with xxperm.
17960         (altivec_vperm_<mode>_internal): Likewise.
17961         (altivec_vperm_v8hiv16qi): Likewise.
17962         (altivec_vperm_<mode>v16q): Likewise.
17963         (altivec_vperm_<mode>_uns): Likewise.
17964         (vperm_v8hiv4si): Likewise.
17965         (vperm_v16qiv8hi): Likewise.
17966
17967         * doc/md.texi (RS/6000 constraints): Document wo constraint.
17968
17969 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
17970
17971         Update copyright years.
17972
17973         * gcc.c (process_command): Update copyright notice dates.
17974         * gcov-dump.c (print_version): Ditto.
17975         * gcov.c (print_version): Ditto.
17976         * gcov-tool.c (print_version): Ditto.
17977         * gengtype.c (create_file): Ditto.
17978         * doc/cpp.texi: Bump @copying's copyright year.
17979         * doc/cppinternals.texi: Ditto.
17980         * doc/gcc.texi: Ditto.
17981         * doc/gccint.texi: Ditto.
17982         * doc/gcov.texi: Ditto.
17983         * doc/install.texi: Ditto.
17984         * doc/invoke.texi: Ditto.
17985
17986 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17987
17988         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
17989         modes larger than TImode as TImode if NEON is not enabled.
17990
17991 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17992
17993         PR target/69100
17994         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
17995         mode for %f0-%f31 only if TARGET_FPU.
17996
17997 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17998
17999         PR target/69072
18000         * config/sparc/sparc.c (scan_record_type): Take into account subfields
18001         to compute the PACKED_P predicate.
18002         (function_arg_record_value): Minor tweaks.
18003
18004 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18005
18006         * doc/install.texi (--with-multilib-list): Describe the meaning of the
18007         option for arm*-*-* targets.
18008
18009 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
18010
18011         * doc/extend.texi (Common Function Attributes): Move docs for
18012         MSP430-specific attributes to....
18013         (MSP430 Function Attributes): ...here.  Delete the redundant
18014         entries and copy-edit the remaining text.
18015         (MSP430 Variable Attributes): Use uniform format for index
18016         entries and add a cross-reference to the corresponding function
18017         attribute docs.
18018
18019 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
18020
18021         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
18022         -finite-math typo.
18023         (x86 Options): Likewise.
18024
18025 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
18026
18027         PR 1078
18028
18029         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
18030         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
18031         to corresponding attribute.
18032
18033 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
18034
18035         * doc/extend.texi (Common Function Attributes) <noplt>: Move
18036         to correct alphabetization of table.  Copy-edit and correct
18037         markup.
18038         <stack_protect>: Likewise.
18039         <target_clones>: Likewise.
18040         <simd>: Likewise.
18041         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
18042         Correct punctuation.
18043         (Code Gen Options) <-fno-plt>: Copy-edit.
18044
18045 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18046
18047         PR target/68917
18048         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
18049         SI values.  Explicitly convert SI to DI and vice-versa.
18050
18051 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
18052
18053         PR tree-optimization/69070
18054         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
18055         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
18056
18057         PR sanitizer/69055
18058         * ubsan.c (ubsan_instrument_float_cast): Call
18059         initialize_sanitizer_builtins.
18060
18061         PR target/69015
18062         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
18063 \f
18064 Copyright (C) 2016 Free Software Foundation, Inc.
18065
18066 Copying and distribution of this file, with or without modification,
18067 are permitted in any medium without royalty provided the copyright
18068 notice and this notice are preserved.