poly_int: aff_tree
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
2             Alan Hayward  <alan.hayward@arm.com>
3             David Sherwood  <david.sherwood@arm.com>
4
5         * tree-affine.h (aff_tree::offset): Change from widest_int
6         to poly_widest_int.
7         (wide_int_ext_for_comb): Delete.
8         (aff_combination_const, aff_comb_cannot_overlap_p): Take the
9         constants as poly_widest_int rather than widest_int.
10         (aff_combination_constant_multiple_p): Return the multiplier
11         as a poly_widest_int.
12         (aff_combination_zero_p, aff_combination_singleton_var_p): Handle
13         polynomial offsets.
14         * tree-affine.c (wide_int_ext_for_comb): Make original widest_int
15         version static and add an overload for poly_widest_int.
16         (aff_combination_const, aff_combination_add_cst)
17         (wide_int_constant_multiple_p, aff_comb_cannot_overlap_p): Take
18         the constants as poly_widest_int rather than widest_int.
19         (tree_to_aff_combination): Generalize INTEGER_CST case to
20         poly_int_tree_p.
21         (aff_combination_to_tree): Track offsets as poly_widest_ints.
22         (aff_combination_add_product, aff_combination_mult): Handle
23         polynomial offsets.
24         (aff_combination_constant_multiple_p): Return the multiplier
25         as a poly_widest_int.
26         * tree-predcom.c (determine_offset): Return the offset as a
27         poly_widest_int.
28         (split_data_refs_to_components, suitable_component_p): Update
29         accordingly.
30         (valid_initializer_p): Update call to
31         aff_combination_constant_multiple_p.
32         * tree-ssa-address.c (addr_to_parts): Handle polynomial offsets.
33         * tree-ssa-loop-ivopts.c (get_address_cost_ainc): Take the step
34         as a poly_int64 rather than a HOST_WIDE_INT.
35         (get_address_cost): Handle polynomial offsets.
36         (iv_elimination_compare_lt): Likewise.
37         (rewrite_use_nonlinear_expr): Likewise.
38
39 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
40             Alan Hayward  <alan.hayward@arm.com>
41             David Sherwood  <david.sherwood@arm.com>
42
43         * tree-dfa.h (get_addr_base_and_unit_offset_1): Return the offset
44         as a poly_int64_pod rather than a HOST_WIDE_INT.
45         (get_addr_base_and_unit_offset): Likewise.
46         * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise.
47         (get_addr_base_and_unit_offset): Likewise.
48         * doc/match-and-simplify.texi: Change off from HOST_WIDE_INT
49         to poly_int64 in example.
50         * fold-const.c (fold_binary_loc): Update call to
51         get_addr_base_and_unit_offset.
52         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
53         (maybe_canonicalize_mem_ref_addr): Likewise.
54         (gimple_fold_stmt_to_constant_1): Likewise.
55         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
56         Likewise.
57         * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
58         * match.pd: Likewise.
59         * omp-low.c (lower_omp_target): Likewise.
60         * tree-sra.c (build_ref_for_offset): Likewise.
61         (build_debug_ref_for_model): Likewise.
62         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
63         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
64         * tree-ssa-ccp.c (optimize_memcpy): Likewise.
65         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
66         (constant_pointer_difference): Likewise.
67         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
68         * tree-ssa-phiopt.c (jump_function_from_stmt): Likewise.
69         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
70         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
71         (vn_reference_maybe_forwprop_address, vn_reference_lookup_3): Likewise.
72         (set_ssa_val_to): Likewise.
73         * tree-ssa-strlen.c (get_addr_stridx, addr_stridxptr)
74         (maybe_diag_stxncpy_trunc): Likewise.
75         * tree-vrp.c (vrp_prop::check_array_ref): Likewise.
76         * tree.c (build_simple_mem_ref_loc): Likewise.
77         (array_at_struct_end_p): Likewise.
78
79 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
80             Alan Hayward  <alan.hayward@arm.com>
81             David Sherwood  <david.sherwood@arm.com>
82
83         * tree-dfa.h (get_ref_base_and_extent): Return the base, size and
84         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
85         (get_ref_base_and_extent_hwi): Declare.
86         * tree-dfa.c (get_ref_base_and_extent): Return the base, size and
87         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
88         (get_ref_base_and_extent_hwi): New function.
89         * cfgexpand.c (expand_debug_expr): Update call to
90         get_ref_base_and_extent.
91         * dwarf2out.c (add_var_loc_to_decl): Likewise.
92         * gimple-fold.c (get_base_constructor): Return the offset as a
93         poly_int64_pod rather than a HOST_WIDE_INT.
94         (fold_const_aggregate_ref_1): Track polynomial sizes and offsets.
95         * ipa-polymorphic-call.c
96         (ipa_polymorphic_call_context::set_by_invariant)
97         (extr_type_from_vtbl_ptr_store): Track polynomial offsets.
98         (ipa_polymorphic_call_context::ipa_polymorphic_call_context)
99         (check_stmt_for_type_change): Use get_ref_base_and_extent_hwi
100         rather than get_ref_base_and_extent.
101         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
102         * ipa-prop.c (ipa_load_from_parm_agg, compute_complex_assign_jump_func)
103         (get_ancestor_addr_info, determine_locally_known_aggregate_parts):
104         Likewise.
105         * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Update
106         call to get_ref_base_and_extent.
107         * tree-sra.c (create_access, get_access_for_expr): Likewise.
108         * tree-ssa-alias.c (ao_ref_base, aliasing_component_refs_p)
109         (stmt_kills_ref_p): Likewise.
110         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
111         * tree-ssa-scopedtables.c (avail_expr_hash, equal_mem_array_ref_p):
112         Likewise.
113         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
114         Use get_ref_base_and_extent_hwi rather than get_ref_base_and_extent
115         when calling native_encode_expr.
116         * tree-ssa-structalias.c (get_constraint_for_component_ref): Update
117         call to get_ref_base_and_extent.
118         (do_structure_copy): Use get_ref_base_and_extent_hwi rather than
119         get_ref_base_and_extent.
120         * var-tracking.c (track_expr_p): Likewise.
121
122 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
123             Alan Hayward  <alan.hayward@arm.com>
124             David Sherwood  <david.sherwood@arm.com>
125
126         * ipa-param-manipulation.h (ipa_parm_adjustment::offset): Change from
127         HOST_WIDE_INT to poly_int64_pod.
128         * ipa-param-manipulation.c (ipa_modify_call_arguments): Track
129         polynomail parameter offsets.
130
131 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
132             Alan Hayward  <alan.hayward@arm.com>
133             David Sherwood  <david.sherwood@arm.com>
134
135         * gengtype.c (main): Handle poly_int64_pod.
136         * dwarf2out.h (dw_cfi_oprnd_cfa_loc): New dw_cfi_oprnd_type.
137         (dw_cfi_oprnd::dw_cfi_cfa_loc): New field.
138         (dw_cfa_location::offset, dw_cfa_location::base_offset): Change
139         from HOST_WIDE_INT to poly_int64_pod.
140         * dwarf2cfi.c (queued_reg_save::cfa_offset): Likewise.
141         (copy_cfa): New function.
142         (lookup_cfa_1): Use the cached dw_cfi_cfa_loc, if it exists.
143         (cfi_oprnd_equal_p): Handle dw_cfi_oprnd_cfa_loc.
144         (cfa_equal_p, dwarf2out_frame_debug_adjust_cfa)
145         (dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_expr)
146         (initial_return_save): Treat offsets as poly_ints.
147         (def_cfa_0): Likewise.  Cache the CFA in dw_cfi_cfa_loc if either
148         offset is nonconstant.
149         (reg_save): Take the offset as a poly_int64.  Fall back to
150         DW_CFA_expression for nonconstant offsets.
151         (queue_reg_save): Take the offset as a poly_int64.
152         * dwarf2out.c (dw_cfi_oprnd2_desc): Handle DW_CFA_def_cfa_expression.
153
154 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
155             Alan Hayward  <alan.hayward@arm.com>
156             David Sherwood  <david.sherwood@arm.com>
157
158         * rtl.h (operand_subword, operand_subword_force): Take the offset
159         as a poly_uint64 an unsigned int.
160         * emit-rtl.c (operand_subword, operand_subword_force): Likewise.
161
162 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
163             Alan Hayward  <alan.hayward@arm.com>
164             David Sherwood  <david.sherwood@arm.com>
165
166         * doc/rtl.texi: Update documentation of SUBREG_BYTE.  Document the
167         'p' format code.  Use INT_LIST rather than SUBREG as the example of
168         a code with an XINT and an XEXP.  Remove the implication that
169         accessing an rtx field using XINT is expected to work.
170         * rtl.def (SUBREG): Change format from "ei" to "ep".
171         * rtl.h (rtunion::rt_subreg): New field.
172         (XCSUBREG): New macro.
173         (SUBREG_BYTE): Use it.
174         (subreg_shape): Change offset from an unsigned int to a poly_uint16.
175         Update constructor accordingly.
176         (subreg_shape::operator ==): Update accordingly.
177         (subreg_shape::unique_id): Return an unsigned HOST_WIDE_INT rather
178         than an unsigned int.
179         (subreg_lsb, subreg_lowpart_offset, subreg_highpart_offset): Return
180         a poly_uint64 rather than an unsigned int.
181         (subreg_lsb_1): Likewise.  Take the offset as a poly_uint64 rather
182         than an unsigned int.
183         (subreg_size_offset_from_lsb, subreg_size_lowpart_offset)
184         (subreg_size_highpart_offset): Return a poly_uint64 rather than
185         an unsigned int.  Take the sizes as poly_uint64s.
186         (subreg_offset_from_lsb): Return a poly_uint64 rather than
187         an unsigned int.  Take the shift as a poly_uint64 rather than
188         an unsigned int.
189         (subreg_regno_offset, subreg_offset_representable_p): Take the offset
190         as a poly_uint64 rather than an unsigned int.
191         (simplify_subreg_regno): Likewise.
192         (byte_lowpart_offset): Return the memory offset as a poly_int64
193         rather than an int.
194         (subreg_memory_offset): Likewise.  Take the subreg offset as a
195         poly_uint64 rather than an unsigned int.
196         (simplify_subreg, simplify_gen_subreg, subreg_get_info)
197         (gen_rtx_SUBREG, validate_subreg): Take the subreg offset as a
198         poly_uint64 rather than an unsigned int.
199         * rtl.c (rtx_format): Describe 'p' in comment.
200         (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Handle 'p'.
201         * emit-rtl.c (validate_subreg, gen_rtx_SUBREG): Take the subreg
202         offset as a poly_uint64 rather than an unsigned int.
203         (byte_lowpart_offset): Return the memory offset as a poly_int64
204         rather than an int.
205         (subreg_memory_offset): Likewise.  Take the subreg offset as a
206         poly_uint64 rather than an unsigned int.
207         (subreg_size_lowpart_offset, subreg_size_highpart_offset): Take the
208         mode sizes as poly_uint64s rather than unsigned ints.  Return a
209         poly_uint64 rather than an unsigned int.
210         (subreg_lowpart_p): Treat subreg offsets as poly_ints.
211         (copy_insn_1): Handle 'p'.
212         * rtlanal.c (set_noop_p): Treat subregs offsets as poly_uint64s.
213         (subreg_lsb_1): Take the subreg offset as a poly_uint64 rather than
214         an unsigned int.  Return the shift in the same way.
215         (subreg_lsb): Return the shift as a poly_uint64 rather than an
216         unsigned int.
217         (subreg_size_offset_from_lsb): Take the sizes and shift as
218         poly_uint64s rather than unsigned ints.  Return the offset as
219         a poly_uint64.
220         (subreg_get_info, subreg_regno_offset, subreg_offset_representable_p)
221         (simplify_subreg_regno): Take the offset as a poly_uint64 rather than
222         an unsigned int.
223         * rtlhash.c (add_rtx): Handle 'p'.
224         * genemit.c (gen_exp): Likewise.
225         * gengenrtl.c (type_from_format, gendef): Likewise.
226         * gensupport.c (subst_pattern_match, get_alternatives_number)
227         (collect_insn_data, alter_predicate_for_insn, alter_constraints)
228         (subst_dup): Likewise.
229         * gengtype.c (adjust_field_rtx_def): Likewise.
230         * genrecog.c (find_operand, find_matching_operand, validate_pattern)
231         (match_pattern_2): Likewise.
232         (rtx_test::SUBREG_FIELD): New rtx_test::kind_enum.
233         (rtx_test::subreg_field): New function.
234         (operator ==, safe_to_hoist_p, transition_parameter_type)
235         (print_nonbool_test, print_test): Handle SUBREG_FIELD.
236         * genattrtab.c (attr_rtx_1): Say that 'p' is deliberately not handled.
237         * genpeep.c (match_rtx): Likewise.
238         * print-rtl.c (print_poly_int): Include if GENERATOR_FILE too.
239         (rtx_writer::print_rtx_operand): Handle 'p'.
240         (print_value): Handle SUBREG.
241         * read-rtl.c (apply_int_iterator): Likewise.
242         (rtx_reader::read_rtx_operand): Handle 'p'.
243         * alias.c (rtx_equal_for_memref_p): Likewise.
244         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Likewise.
245         * caller-save.c (replace_reg_with_saved_mem): Treat subreg offsets
246         as poly_ints.
247         * calls.c (expand_call): Likewise.
248         * combine.c (combine_simplify_rtx, expand_field_assignment): Likewise.
249         (make_extraction, gen_lowpart_for_combine): Likewise.
250         * loop-invariant.c (hash_invariant_expr_1, invariant_expr_equal_p):
251         Likewise.
252         * cse.c (remove_invalid_subreg_refs): Take the offset as a poly_uint64
253         rather than an unsigned int.  Treat subreg offsets as poly_ints.
254         (exp_equiv_p): Handle 'p'.
255         (hash_rtx_cb): Likewise.  Treat subreg offsets as poly_ints.
256         (equiv_constant, cse_insn): Treat subreg offsets as poly_ints.
257         * dse.c (find_shift_sequence): Likewise.
258         * dwarf2out.c (rtl_for_decl_location): Likewise.
259         * expmed.c (extract_low_bits): Likewise.
260         * expr.c (emit_group_store, undefined_operand_subword_p): Likewise.
261         (expand_expr_real_2): Likewise.
262         * final.c (alter_subreg): Likewise.
263         (leaf_renumber_regs_insn): Handle 'p'.
264         * function.c (assign_parm_find_stack_rtl, assign_parm_setup_stack):
265         Treat subreg offsets as poly_ints.
266         * fwprop.c (forward_propagate_and_simplify): Likewise.
267         * ifcvt.c (noce_emit_move_insn, noce_emit_cmove): Likewise.
268         * ira.c (get_subreg_tracking_sizes): Likewise.
269         * ira-conflicts.c (go_through_subreg): Likewise.
270         * ira-lives.c (process_single_reg_class_operands): Likewise.
271         * jump.c (rtx_renumbered_equal_p): Likewise.  Handle 'p'.
272         * lower-subreg.c (simplify_subreg_concatn): Take the subreg offset
273         as a poly_uint64 rather than an unsigned int.
274         (simplify_gen_subreg_concatn, resolve_simple_move): Treat
275         subreg offsets as poly_ints.
276         * lra-constraints.c (operands_match_p): Handle 'p'.
277         (match_reload, curr_insn_transform): Treat subreg offsets as poly_ints.
278         * lra-spills.c (assign_mem_slot): Likewise.
279         * postreload.c (move2add_valid_value_p): Likewise.
280         * recog.c (general_operand, indirect_operand): Likewise.
281         * regcprop.c (copy_value, maybe_mode_change): Likewise.
282         (copyprop_hardreg_forward_1): Likewise.
283         * reginfo.c (simplifiable_subregs_hasher::hash, simplifiable_subregs)
284         (record_subregs_of_mode): Likewise.
285         * rtlhooks.c (gen_lowpart_general, gen_lowpart_if_possible): Likewise.
286         * reload.c (operands_match_p): Handle 'p'.
287         (find_reloads_subreg_address): Treat subreg offsets as poly_ints.
288         * reload1.c (alter_reg, choose_reload_regs): Likewise.
289         (compute_reload_subreg_offset): Likewise, and return an poly_int64.
290         * simplify-rtx.c (simplify_truncation, simplify_binary_operation_1):
291         (test_vector_ops_duplicate): Treat subreg offsets as poly_ints.
292         (simplify_const_poly_int_tests<N>::run): Likewise.
293         (simplify_subreg, simplify_gen_subreg): Take the subreg offset as
294         a poly_uint64 rather than an unsigned int.
295         * valtrack.c (debug_lowpart_subreg): Likewise.
296         * var-tracking.c (var_lowpart): Likewise.
297         (loc_cmp): Handle 'p'.
298
299 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
300             Alan Hayward  <alan.hayward@arm.com>
301             David Sherwood  <david.sherwood@arm.com>
302
303         * ira.c (get_subreg_tracking_sizes): New function.
304         (init_live_subregs): Take an integer size rather than a register.
305         (build_insn_chain): Use get_subreg_tracking_sizes.  Update calls
306         to init_live_subregs.
307
308 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
309             Alan Hayward  <alan.hayward@arm.com>
310             David Sherwood  <david.sherwood@arm.com>
311
312         * expr.c (store_constructor_field): Change bitsize from a
313         unsigned HOST_WIDE_INT to a poly_uint64 and bitpos from a
314         HOST_WIDE_INT to a poly_int64.
315         (store_constructor): Change size from a HOST_WIDE_INT to
316         a poly_int64.
317         (store_field): Likewise bitsize and bitpos.
318
319 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
320             Alan Hayward  <alan.hayward@arm.com>
321             David Sherwood  <david.sherwood@arm.com>
322
323         * expmed.h (store_bit_field): Change bitregion_start and
324         bitregion_end from unsigned HOST_WIDE_INT to poly_uint64.
325         * expmed.c (adjust_bit_field_mem_for_reg, strict_volatile_bitfield_p)
326         (store_bit_field_1, store_integral_bit_field, store_bit_field)
327         (store_fixed_bit_field, store_split_bit_field): Likewise.
328         * expr.c (store_constructor_field, store_field): Likewise.
329         (optimize_bitfield_assignment_op): Likewise.  Make the same change
330         to bitsize and bitpos.
331         * machmode.h (bit_field_mode_iterator): Change m_bitregion_start
332         and m_bitregion_end from HOST_WIDE_INT to poly_int64.  Make the
333         same change in the constructor arguments.
334         (get_best_mode): Change bitregion_start and bitregion_end from
335         unsigned HOST_WIDE_INT to poly_uint64.
336         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
337         Change bitregion_start and bitregion_end from HOST_WIDE_INT to
338         poly_int64.
339         (bit_field_mode_iterator::next_mode): Update for new types
340         of m_bitregion_start and m_bitregion_end.
341         (get_best_mode): Change bitregion_start and bitregion_end from
342         unsigned HOST_WIDE_INT to poly_uint64.
343
344 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
345             Alan Hayward  <alan.hayward@arm.com>
346             David Sherwood  <david.sherwood@arm.com>
347
348         * rtl.h (simplify_gen_subreg): Add a temporary overload that
349         accepts poly_uint64 offsets.
350         * expmed.h (extract_bit_field): Take bitsize and bitnum as
351         poly_uint64s rather than unsigned HOST_WIDE_INTs.
352         * expmed.c (lowpart_bit_field_p): Likewise.
353         (extract_bit_field_as_subreg): New function, split out from...
354         (extract_bit_field_1): ...here.  Take bitsize and bitnum as
355         poly_uint64s rather than unsigned HOST_WIDE_INTs.  For vector
356         extractions, check that BITSIZE matches the size of the extracted
357         value and that BITNUM is an exact multiple of that size.
358         If all else fails, try forcing the value into memory if
359         BITNUM is variable, and adjusting the address so that the
360         offset is constant.  Split the part that can only handle constant
361         bitsize and bitnum out into...
362         (extract_integral_bit_field): ...this new function.
363         (extract_bit_field): Take bitsize and bitnum as poly_uint64s
364         rather than unsigned HOST_WIDE_INTs.
365
366 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
367             Alan Hayward  <alan.hayward@arm.com>
368             David Sherwood  <david.sherwood@arm.com>
369
370         * expmed.h (store_bit_field): Take bitsize and bitnum as
371         poly_uint64s rather than unsigned HOST_WIDE_INTs.
372         * expmed.c (simple_mem_bitfield_p): Likewise.  Add a parameter
373         that returns the byte size.
374         (store_bit_field_1): Take bitsize and bitnum as
375         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Update call
376         to simple_mem_bitfield_p.  Split the part that can only handle
377         constant bitsize and bitnum out into...
378         (store_integral_bit_field): ...this new function.
379         (store_bit_field): Take bitsize and bitnum as poly_uint64s rather
380         than unsigned HOST_WIDE_INTs.
381         (extract_bit_field_1): Update call to simple_mem_bitfield_p.
382
383 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
384             Alan Hayward  <alan.hayward@arm.com>
385             David Sherwood  <david.sherwood@arm.com>
386
387         * lra-int.h (lra_reg): Change offset from int to poly_int64.
388         (lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT
389         to poly_int64.
390         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
391         update_sp_offset from a HOST_WIDE_INT to a poly_int64.
392         (lra_update_reg_val_offset, lra_reg_val_equal_p): Take the
393         offset as a poly_int64 rather than an int.
394         * lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets.
395         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
396         * lra-constraints.c (equiv_address_substitution): Track offsets
397         as poly_int64s.
398         (emit_inc): Check poly_int_rtx_p instead of CONST_INT_P.
399         (curr_insn_transform): Handle the new form of sp_offset.
400         * lra-eliminations.c (lra_elim_table): Change previous_offset
401         and offset from HOST_WIDE_INT to poly_int64.
402         (print_elim_table, update_reg_eliminate): Update accordingly.
403         (self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod.
404         (get_elimination): Update accordingly.
405         (form_sum): Check poly_int_rtx_p instead of CONST_INT_P.
406         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
407         update_sp_offset from a HOST_WIDE_INT to a poly_int64.  Handle
408         poly_int64 offsets generally.
409         (curr_sp_change): Change from HOST_WIDE_INT to poly_int64.
410         (mark_not_eliminable, init_elimination): Update accordingly.
411         (remove_reg_equal_offset_note): Return a bool and pass the new
412         offset back by pointer as a poly_int64.
413         * lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64
414         rather than a HOST_WIDE_INT.
415         (do_remat): Track offsets poly_int64s.
416         * lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise.
417
418 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
419             Alan Hayward  <alan.hayward@arm.com>
420             David Sherwood  <david.sherwood@arm.com>
421
422         * rtl.h (mem_attrs): Add a default constructor.  Change size and
423         offset from HOST_WIDE_INT to poly_int64.
424         * emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1)
425         (adjust_automodify_address_1, set_mem_attributes_minus_bitpos)
426         (widen_memory_access): Take the sizes and offsets as poly_int64s
427         rather than HOST_WIDE_INTs.
428         * alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET.
429         (offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs
430         and ints.
431         (adjust_offset_for_component_ref): Change the offset from a
432         HOST_WIDE_INT to a poly_int64.
433         (nonoverlapping_memrefs_p): Track polynomial offsets and sizes.
434         * cfgcleanup.c (merge_memattrs): Update after mem_attrs changes.
435         * dce.c (find_call_stack_args): Likewise.
436         * dse.c (record_store): Likewise.
437         * dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise.
438         * print-rtl.c (rtx_writer::print_rtx): Likewise.
439         * read-rtl-function.c (test_loading_mem): Likewise.
440         * rtlanal.c (may_trap_p_1): Likewise.
441         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
442         * var-tracking.c (int_mem_offset, track_expr_p): Likewise.
443         * emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise.
444         (mem_attrs::mem_attrs): New function.
445         (set_mem_attributes_minus_bitpos): Change bitpos from a
446         HOST_WIDE_INT to poly_int64.
447         (set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr)
448         (clear_mem_offset, clear_mem_size, change_address)
449         (get_spill_slot_decl, set_mem_attrs_for_spill): Directly
450         initialize mem_attrs.
451         (set_mem_offset, set_mem_size, adjust_address_1)
452         (adjust_automodify_address_1, offset_address, widen_memory_access):
453         Likewise.  Take poly_int64s rather than HOST_WIDE_INT.
454
455 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
456             Alan Hayward  <alan.hayward@arm.com>
457             David Sherwood  <david.sherwood@arm.com>
458
459         * rtlanal.c (rtx_addr_can_trap_p_1): Take the offset and size
460         as poly_int64s rather than HOST_WIDE_INTs.  Use a size of -1
461         rather than 0 to represent an unknown size.  Assert that the size
462         is known when the mode isn't BLKmode.
463         (may_trap_p_1): Use -1 for unknown sizes.
464         (rtx_addr_can_trap_p): Likewise.  Pass BLKmode rather than VOIDmode.
465
466 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
467             Alan Hayward  <alan.hayward@arm.com>
468             David Sherwood  <david.sherwood@arm.com>
469
470         * dse.c (store_info): Change offset and width from HOST_WIDE_INT
471         to poly_int64.  Update commentary for positions_needed.large.
472         (read_info_type): Change offset and width from HOST_WIDE_INT
473         to poly_int64.
474         (set_usage_bits): Likewise.
475         (canon_address): Return the offset as a poly_int64 rather than
476         a HOST_WIDE_INT.  Use strip_offset_and_add.
477         (set_all_positions_unneeded, any_positions_needed_p): Use
478         positions_needed.large to track stores with non-constant widths.
479         (all_positions_needed_p): Likewise.  Take the offset and width
480         as poly_int64s rather than ints.  Assert that rhs is nonnull.
481         (record_store): Cope with non-constant offsets and widths.
482         Nullify the rhs of an earlier store if we can't tell which bytes
483         of it are needed.
484         (find_shift_sequence): Take the access_size and shift as poly_int64s
485         rather than ints.
486         (get_stored_val): Take the read_offset and read_width as poly_int64s
487         rather than HOST_WIDE_INTs.
488         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle
489         non-constant offsets and widths.
490
491 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
492             Alan Hayward  <alan.hayward@arm.com>
493             David Sherwood  <david.sherwood@arm.com>
494
495         * inchash.h (inchash::hash::add_poly_int): New function.
496         * tree-ssa-alias.h (ao_ref::offset, ao_ref::size, ao_ref::max_size):
497         Use poly_int64 rather than HOST_WIDE_INT.
498         (ao_ref::max_size_known_p): New function.
499         * tree-ssa-sccvn.h (vn_reference_op_struct::off): Use poly_int64_pod
500         rather than HOST_WIDE_INT.
501         * tree-ssa-alias.c (ao_ref_base): Apply get_ref_base_and_extent
502         to temporaries until its interface is adjusted to match.
503         (ao_ref_init_from_ptr_and_size): Handle polynomial offsets and sizes.
504         (aliasing_component_refs_p, decl_refs_may_alias_p)
505         (indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p): Take
506         the offsets and max_sizes as poly_int64s instead of HOST_WIDE_INTs.
507         (refs_may_alias_p_1, stmt_kills_ref_p): Adjust for changes to
508         ao_ref fields.
509         * alias.c (ao_ref_from_mem): Likewise.
510         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
511         * tree-ssa-dse.c (valid_ao_ref_for_dse, normalize_ref)
512         (clear_bytes_written_by, setup_live_bytes_from_ref, compute_trims)
513         (maybe_trim_complex_store, maybe_trim_constructor_store)
514         (live_bytes_read, dse_classify_store): Likewise.
515         * tree-ssa-sccvn.c (vn_reference_compute_hash, vn_reference_eq):
516         (copy_reference_ops_from_ref, ao_ref_init_from_vn_reference)
517         (fully_constant_vn_reference_p, valueize_refs_1): Likewise.
518         (vn_reference_lookup_3): Likewise.
519         * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
520
521 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
522             Alan Hayward  <alan.hayward@arm.com>
523             David Sherwood  <david.sherwood@arm.com>
524
525         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p)
526         (indirect_refs_may_alias_p): Use ranges_may_overlap_p
527         instead of ranges_overlap_p.
528
529 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
530             Alan Hayward  <alan.hayward@arm.com>
531             David Sherwood  <david.sherwood@arm.com>
532
533         * tree-ssa-alias.c (same_addr_size_stores_p): Take the offsets and
534         sizes as poly_int64s rather than HOST_WIDE_INTs.
535
536 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
537             Alan Hayward  <alan.hayward@arm.com>
538             David Sherwood  <david.sherwood@arm.com>
539
540         * gimple-fold.h (fold_ctor_reference): Take the offset and size
541         as poly_uint64 rather than unsigned HOST_WIDE_INT.
542         * gimple-fold.c (fold_ctor_reference): Likewise.
543
544 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
545             Alan Hayward  <alan.hayward@arm.com>
546             David Sherwood  <david.sherwood@arm.com>
547
548         * target.def (dwarf_poly_indeterminate_value): New hook.
549         * targhooks.h (default_dwarf_poly_indeterminate_value): Declare.
550         * targhooks.c (default_dwarf_poly_indeterminate_value): New function.
551         * doc/tm.texi.in (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Document.
552         * doc/tm.texi: Regenerate.
553         * dwarf2out.h (build_cfa_loc, build_cfa_aligned_loc): Take the
554         offset as a poly_int64.
555         * dwarf2out.c (new_reg_loc_descr): Move later in file.  Take the
556         offset as a poly_int64.
557         (loc_descr_plus_const, loc_list_plus_const, build_cfa_aligned_loc):
558         Take the offset as a poly_int64.
559         (build_cfa_loc): Likewise.  Use loc_descr_plus_const.
560         (frame_pointer_fb_offset): Change to a poly_int64.
561         (int_loc_descriptor): Take the offset as a poly_int64.  Use
562         targetm.dwarf_poly_indeterminate_value for polynomial offsets.
563         (based_loc_descr): Take the offset as a poly_int64.
564         Use strip_offset_and_add to handle (plus X (const)).
565         Use new_reg_loc_descr instead of an open-coded version of the
566         previous implementation.
567         (mem_loc_descriptor): Handle CONST_POLY_INT.
568         (compute_frame_pointer_to_fb_displacement): Take the offset as a
569         poly_int64.  Use strip_offset_and_add to handle (plus X (const)).
570
571 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
572             Alan Hayward  <alan.hayward@arm.com>
573             David Sherwood  <david.sherwood@arm.com>
574
575         * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64.
576         (gen_rtx_REG_offset): Take the offset as a poly_int64.
577         * inchash.h (inchash::hash::add_poly_hwi): New function.
578         * gengtype.c (main): Register poly_int64.
579         * emit-rtl.c (reg_attr_hasher::hash): Use inchash.  Treat the
580         offset as a poly_int.
581         (reg_attr_hasher::equal): Use must_eq to compare offsets.
582         (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the
583         offset as a poly_int64.
584         (set_reg_attrs_from_value): Treat the offset as a poly_int64.
585         * print-rtl.c (print_poly_int): New function.
586         (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as
587         a poly_int.
588         * var-tracking.c (track_offset_p, get_tracked_reg_offset): New
589         functions.
590         (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them.
591         (same_variable_part_p, track_loc_p): Take the offset as a poly_int64.
592         (vt_get_decl_and_offset): Return the offset as a poly_int64.
593         Enforce track_offset_p for parts of a PARALLEL.
594         (vt_add_function_parameter): Use const_offset for the final
595         offset to track.  Use get_tracked_reg_offset for the parts
596         of a PARALLEL.
597
598 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
599             Alan Hayward  <alan.hayward@arm.com>
600             David Sherwood  <david.sherwood@arm.com>
601
602         * target.def (truly_noop_truncation): Take poly_uint64s instead of
603         unsigned ints.  Change default to hook_bool_puint64_puint64_true.
604         * doc/tm.texi: Regenerate.
605         * hooks.h (hook_bool_uint_uint_true): Delete.
606         (hook_bool_puint64_puint64_true): Declare.
607         * hooks.c (hook_bool_uint_uint_true): Delete.
608         (hook_bool_puint64_puint64_true): New function.
609         * config/mips/mips.c (mips_truly_noop_truncation): Take poly_uint64s
610         instead of unsigned ints.
611         * config/spu/spu.c (spu_truly_noop_truncation): Likewise.
612         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): Likewise.
613
614 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
615             Alan Hayward  <alan.hayward@arm.com>
616             David Sherwood  <david.sherwood@arm.com>
617
618         * optabs.h (expand_operand): Add an int_value field.
619         (create_expand_operand): Add an int_value parameter and use it
620         to initialize the new expand_operand field.
621         (create_integer_operand): Replace with a declaration of a function
622         that accepts poly_int64s.  Move the implementation to...
623         * optabs.c (create_integer_operand): ...here.
624         (maybe_legitimize_operand): For EXPAND_INTEGER, check whether
625         the mode preserves the value of int_value, instead of calling
626         const_int_operand on the rtx.  Use gen_int_mode to generate
627         the new rtx.
628
629 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
630             Alan Hayward  <alan.hayward@arm.com>
631             David Sherwood  <david.sherwood@arm.com>
632
633         * dumpfile.h (dump_dec): Declare.
634         * dumpfile.c (dump_dec): New function.
635         * pretty-print.h (pp_wide_integer): Turn into a function and
636         declare a poly_int version.
637         * pretty-print.c (pp_wide_integer): New function for poly_ints.
638
639 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
640             Alan Hayward  <alan.hayward@arm.com>
641             David Sherwood  <david.sherwood@arm.com>
642
643         * doc/generic.texi (POLY_INT_CST): Document.
644         * tree.def (POLY_INT_CST): New tree code.
645         * treestruct.def (TS_POLY_INT_CST): New tree layout.
646         * tree-core.h (tree_poly_int_cst): New struct.
647         (tree_node): Add a poly_int_cst field.
648         * tree.h (POLY_INT_CST_P, POLY_INT_CST_COEFF): New macros.
649         (wide_int_to_tree, force_fit_type): Take a poly_wide_int_ref
650         instead of a wide_int_ref.
651         (build_int_cst, build_int_cst_type): Take a poly_int64 instead
652         of a HOST_WIDE_INT.
653         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
654         instead of an unsigned HOST_WIDE_INT.
655         (build_poly_int_cst, tree_fits_poly_int64_p, tree_fits_poly_uint64_p)
656         (ptrdiff_tree_p): Declare.
657         (tree_to_poly_int64, tree_to_poly_uint64): Likewise.  Provide
658         extern inline implementations if the target doesn't use POLY_INT_CST.
659         (poly_int_tree_p): New function.
660         (wi::unextended_tree): New class.
661         (wi::int_traits <unextended_tree>): New override.
662         (wi::extended_tree): Add a default constructor.
663         (wi::extended_tree::get_tree): New function.
664         (wi::widest_extended_tree, wi::offset_extended_tree): New typedefs.
665         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): Use them.
666         (wi::tree_to_poly_widest_ref, wi::tree_to_poly_offset_ref)
667         (wi::tree_to_poly_wide_ref): New typedefs.
668         (wi::ints_for): Provide overloads for extended_tree and
669         unextended_tree.
670         (poly_int_cst_value, wi::to_poly_widest, wi::to_poly_offset)
671         (wi::to_wide): New functions.
672         (wi::fits_to_boolean_p, wi::fits_to_tree_p): Handle poly_ints.
673         * tree.c (poly_int_cst_hasher): New struct.
674         (poly_int_cst_hash_table): New variable.
675         (tree_node_structure_for_code, tree_code_size, simple_cst_equal)
676         (valid_constant_size_p, add_expr, drop_tree_overflow): Handle
677         POLY_INT_CST.
678         (initialize_tree_contains_struct): Handle TS_POLY_INT_CST.
679         (init_ttree): Initialize poly_int_cst_hash_table.
680         (build_int_cst, build_int_cst_type, build_invariant_address): Take
681         a poly_int64 instead of a HOST_WIDE_INT.
682         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
683         instead of an unsigned HOST_WIDE_INT.
684         (wide_int_to_tree): Rename to...
685         (wide_int_to_tree_1): ...this.
686         (build_new_poly_int_cst, build_poly_int_cst): New functions.
687         (force_fit_type): Take a poly_wide_int_ref instead of a wide_int_ref.
688         (wide_int_to_tree): New function that takes a poly_wide_int_ref.
689         (ptrdiff_tree_p, tree_to_poly_int64, tree_to_poly_uint64)
690         (tree_fits_poly_int64_p, tree_fits_poly_uint64_p): New functions.
691         * lto-streamer-out.c (DFS::DFS_write_tree_body, hash_tree): Handle
692         TS_POLY_INT_CST.
693         * tree-streamer-in.c (lto_input_ts_poly_tree_pointers): Likewise.
694         (streamer_read_tree_body): Likewise.
695         * tree-streamer-out.c (write_ts_poly_tree_pointers): Likewise.
696         (streamer_write_tree_body): Likewise.
697         * tree-streamer.c (streamer_check_handled_ts_structures): Likewise.
698         * asan.c (asan_protect_global): Require the size to be an INTEGER_CST.
699         * cfgexpand.c (expand_debug_expr): Handle POLY_INT_CST.
700         * expr.c (expand_expr_real_1, const_vector_from_tree): Likewise.
701         * gimple-expr.h (is_gimple_constant): Likewise.
702         * gimplify.c (maybe_with_size_expr): Likewise.
703         * print-tree.c (print_node): Likewise.
704         * tree-data-ref.c (data_ref_compare_tree): Likewise.
705         * tree-pretty-print.c (dump_generic_node): Likewise.
706         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
707         * tree-vect-data-refs.c (dr_group_sort_cmp): Likewise.
708         * tree-vrp.c (compare_values_warnv): Likewise.
709         * tree-ssa-loop-ivopts.c (determine_base_object, constant_multiple_of)
710         (get_loop_invariant_expr, add_candidate_1, get_computation_aff_1)
711         (force_expr_to_var_cost): Likewise.
712         * tree-ssa-loop.c (for_each_index): Likewise.
713         * fold-const.h (build_invariant_address, size_int_kind): Take a
714         poly_int64 instead of a HOST_WIDE_INT.
715         * fold-const.c (fold_negate_expr_1, const_binop, const_unop)
716         (fold_convert_const, multiple_of_p, fold_negate_const): Handle
717         POLY_INT_CST.
718         (size_binop_loc): Likewise.  Allow int_const_binop_1 to fail.
719         (int_const_binop_2): New function, split out from...
720         (int_const_binop_1): ...here.  Handle POLY_INT_CST.
721         (size_int_kind): Take a poly_int64 instead of a HOST_WIDE_INT.
722         * expmed.c (make_tree): Handle CONST_POLY_INT_P.
723         * gimple-ssa-strength-reduction.c (slsr_process_add)
724         (slsr_process_mul): Check for INTEGER_CSTs before using them
725         as candidates.
726         * stor-layout.c (bits_from_bytes): New function.
727         (bit_from_pos): Use it.
728         (layout_type): Likewise.  For vectors, multiply the TYPE_SIZE_UNIT
729         by BITS_PER_UNIT to get the TYPE_SIZE.
730         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference): Allow
731         MEM_REF and TARGET_MEM_REF offsets to be a POLY_INT_CST.
732
733 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
734             Alan Hayward  <alan.hayward@arm.com>
735             David Sherwood  <david.sherwood@arm.com>
736
737         * doc/rtl.texi (const_poly_int): Document.  Also document the
738         rtl sharing behavior.
739         * gengenrtl.c (excluded_rtx): Return true for CONST_POLY_INT.
740         * rtl.h (const_poly_int_def): New struct.
741         (rtx_def::u): Add a cpi field.
742         (CASE_CONST_UNIQUE, CASE_CONST_ANY): Add CONST_POLY_INT.
743         (CONST_POLY_INT_P, CONST_POLY_INT_COEFFS): New macros.
744         (wi::rtx_to_poly_wide_ref): New typedef
745         (const_poly_int_value, wi::to_poly_wide, rtx_to_poly_int64)
746         (poly_int_rtx_p): New functions.
747         (trunc_int_for_mode): Declare a poly_int64 version.
748         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
749         (immed_wide_int_const): Take a poly_wide_int_ref rather than
750         a wide_int_ref.
751         (strip_offset): Declare.
752         (strip_offset_and_add): New function.
753         * rtl.def (CONST_POLY_INT): New rtx code.
754         * rtl.c (rtx_size): Handle CONST_POLY_INT.
755         (shared_const_p): Use poly_int_rtx_p.
756         * emit-rtl.h (gen_int_mode): Take a poly_int64 instead of a
757         HOST_WIDE_INT.
758         (gen_int_shift_amount): Likewise.
759         * emit-rtl.c (const_poly_int_hasher): New class.
760         (const_poly_int_htab): New variable.
761         (init_emit_once): Initialize it when NUM_POLY_INT_COEFFS > 1.
762         (const_poly_int_hasher::hash): New function.
763         (const_poly_int_hasher::equal): Likewise.
764         (gen_int_mode): Take a poly_int64 instead of a HOST_WIDE_INT.
765         (immed_wide_int_const): Rename to...
766         (immed_wide_int_const_1): ...this and make static.
767         (immed_wide_int_const): New function, taking a poly_wide_int_ref
768         instead of a wide_int_ref.
769         (gen_int_shift_amount): Take a poly_int64 instead of a HOST_WIDE_INT.
770         (gen_lowpart_common): Handle CONST_POLY_INT.
771         * cse.c (hash_rtx_cb, equiv_constant): Likewise.
772         * cselib.c (cselib_hash_rtx): Likewise.
773         * dwarf2out.c (const_ok_for_output_1): Likewise.
774         * expr.c (convert_modes): Likewise.
775         * print-rtl.c (rtx_writer::print_rtx, print_value): Likewise.
776         * rtlhash.c (add_rtx): Likewise.
777         * explow.c (trunc_int_for_mode): Add a poly_int64 version.
778         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
779         Handle existing CONST_POLY_INT rtxes.
780         * expmed.h (expand_shift): Take a poly_int64 instead of a
781         HOST_WIDE_INT.
782         * expmed.c (expand_shift): Likewise.
783         * rtlanal.c (strip_offset): New function.
784         (commutative_operand_precedence): Give CONST_POLY_INT the same
785         precedence as CONST_DOUBLE and put CONST_WIDE_INT between that
786         and CONST_INT.
787         * rtl-tests.c (const_poly_int_tests): New struct.
788         (rtl_tests_c_tests): Use it.
789         * simplify-rtx.c (simplify_const_unary_operation): Handle
790         CONST_POLY_INT.
791         (simplify_const_binary_operation): Likewise.
792         (simplify_binary_operation_1): Fold additions of symbolic constants
793         and CONST_POLY_INTs.
794         (simplify_subreg): Handle extensions and truncations of
795         CONST_POLY_INTs.
796         (simplify_const_poly_int_tests): New struct.
797         (simplify_rtx_c_tests): Use it.
798         * wide-int.h (storage_ref): Add default constructor.
799         (wide_int_ref_storage): Likewise.
800         (trailing_wide_ints): Use GTY((user)).
801         (trailing_wide_ints::operator[]): Add a const version.
802         (trailing_wide_ints::get_precision): New function.
803         (trailing_wide_ints::extra_size): Likewise.
804
805 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
806             Alan Hayward  <alan.hayward@arm.com>
807             David Sherwood  <david.sherwood@arm.com>
808
809         * emit-rtl.h (gen_int_shift_amount): Declare.
810         * emit-rtl.c (gen_int_shift_amount): New function.
811         * asan.c (asan_emit_stack_protection): Use gen_int_shift_amount
812         instead of GEN_INT.
813         * calls.c (shift_return_value): Likewise.
814         * cse.c (fold_rtx): Likewise.
815         * dse.c (find_shift_sequence): Likewise.
816         * expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1)
817         (expand_shift, expand_smod_pow2): Likewise.
818         * lower-subreg.c (shift_cost): Likewise.
819         * optabs.c (expand_superword_shift, expand_doubleword_mult)
820         (expand_unop, expand_binop, shift_amt_for_vec_perm_mask)
821         (expand_vec_perm_var): Likewise.
822         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
823         (simplify_binary_operation_1): Likewise.
824         * combine.c (try_combine, find_split_point, force_int_to_mode)
825         (simplify_shift_const_1, simplify_shift_const): Likewise.
826         (change_zero_ext): Likewise.  Use simplify_gen_binary.
827
828 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
829
830         * poly-int.h (multiple_p): Fix handling of two non-poly_ints.
831
832 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
833
834         * doc/invoke.texi (ARM Options): Document accepted extension options
835         for -march=armv8.3-a.
836
837 2017-12-20  Richard Earnshaw  <rearnsha@arm.com>
838
839         PR target/83105
840         * config.gcc (arm*-*-linux*): When configured with --with-float=hard
841         or --with-float=softfp, set the default CPU to arm10e.
842
843 2017-12-20  Eric Botcazou  <ebotcazou@adacore.com>
844
845         * config/visium/constraints.md (J, K, L): Use IN_RANGE macro.
846         * config/visium/predicates.md (const_shift_operand): Likewise.
847         * config/visium/visium.c (visium_legitimize_address): Fix oversight.
848         (visium_legitimize_reload_address): Likewise.
849
850 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
851
852         PR target/82975
853         * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830.
854
855 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
856
857         PR c++/83490
858         * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments.
859
860 2017-12-20  Julia Koval  <julia.koval@intel.com>
861
862         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET,
863         OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New.
864         (ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2.
865         * config.gcc: Include vpclmulqdqintrin.h.
866         * config/i386/cpuid.h: Handle bit_VPCLMULQDQ.
867         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
868         -mvpclmulqdq.
869         * config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di,
870         __builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New.
871         * config/i386/i386-c.c (__VPCLMULQDQ__): New.
872         * config/i386/i386.c (isa2_opts): Add -mcx16.
873         (isa_opts): Add -mpclmulqdq, remove -mcx16.
874         (ix86_option_override_internal): Move mcx16 to flags2.
875         (ix86_valid_target_attribute_inner_p): Add vpclmulqdq.
876         (ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ.
877         * config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New.
878         * config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2.
879         * config/i386/immintrin.h: Include vpclmulqdqintrin.h.
880         * config/i386/sse.md (vpclmulqdq_<mode>): New pattern.
881         * config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128,
882         _mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics.
883         * doc/invoke.texi: Add -mvpclmulqdq.
884
885 2017-12-20  Tom de Vries  <tom@codesourcery.com>
886
887         PR middle-end/83423
888         * config/i386/i386.c (ix86_static_chain): Move DECL_STATIC_CHAIN test ...
889         * calls.c (rtx_for_static_chain): ... here.  New function.
890         * calls.h (rtx_for_static_chain): Declare.
891         * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain
892         instead of targetm.calls.static_chain.
893         * df-scan.c (df_get_entry_block_def_set): Same.
894
895 2017-12-19  Tom de Vries  <tom@codesourcery.com>
896
897         PR tree-optimization/83493
898         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): Unshare ub
899         and lb.
900
901 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
902
903         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
904         inform with hardcoded english plural handling.
905
906 2017-12-18  Jeff Law  <law@redhat.com>
907
908         PR tree-optimization/83477
909         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): For
910         a non-virtual PHI, always push a new range.
911
912 2017-12-19  Martin Sebor  <msebor@redhat.com>
913
914         PR middle-end/77608
915         * builtins.c (compute_objsize): Handle non-constant offsets.
916
917 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
918
919         PR tree-optimization/83444
920         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): For the
921         character load case, if get_stridx on MEM_REF's operand doesn't
922         look usable, retry with get_addr_stridx.
923
924 2017-12-19  Alexandre Oliva <aoliva@redhat.com>
925
926         PR debug/83422
927         * var-tracking.c (vt_debug_insns_local): Do not drop markers.
928         (variable_tracking_main_1): Keep markers even when VTA fails.
929
930         PR bootstrap/83396
931         * cfgexpand.c (expand_gimple_basic_block): Expand label first,
932         even if there are markers before it.
933         * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs.
934
935 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
936
937         * read-rtl.c (parse_reg_note_name): Replace Yoda conditions with
938         typical order conditions.
939         * sel-sched.c (extract_new_fences_from): Likewise.
940         * config/visium/constraints.md (J, K, L): Likewise.
941         * config/visium/predicates.md (const_shift_operand): Likewise.
942         * config/visium/visium.c (visium_legitimize_address,
943         visium_legitimize_reload_address): Likewise.
944         * config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise.
945         * config/arm/arm.c (arm_block_move_unaligned_straight): Likewise.
946         * config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise.
947         * config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log,
948         SET_DUMP_DETAIL): Likewise.
949         * config/avr/predicates.md (const_8_16_24_operand): Likewise.
950         * config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte,
951         avr_is_casesi_sequence, avr_casei_sequence_check_operands,
952         avr_set_core_architecture, avr_set_current_function,
953         avr_legitimize_reload_address, avr_asm_len, avr_print_operand,
954         output_movqi, output_movsisf, avr_out_plus, avr_out_bitop,
955         avr_out_fract, avr_adjust_insn_length, avr_encode_section_info,
956         avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf,
957         avr_map_decompose, avr_fold_builtin): Likewise.
958         * config/avr/driver-avr.c (avr_devicespecs_file): Likewise.
959         * config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise.
960         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise.
961         * config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise.
962         * config/m32c/m32c.c (m32c_conditional_register_usage,
963         m32c_address_cost): Likewise.
964         * config/m32c/predicates.md (shiftcount_operand,
965         longshiftcount_operand): Likewise.
966         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
967         * config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option,
968         can_use_cdx_ldstw): Likewise.
969         * config/nios2/nios2.h (CDX_REG_P): Likewise.
970         * config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P):
971         Likewise.
972         * config/cr16/cr16.md (*mov<mode>_double): Likewise.
973         * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
974         * config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise.
975         * config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise.
976         * config/vax/vax.c (adjacent_operands_p): Likewise.
977         * config/ft32/constraints.md (L, b, KA): Likewise.
978         * config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue):
979         Likewise.
980         * cfgexpand.c (expand_stack_alignment): Likewise.
981         * gcse.c (insert_expr_in_table): Likewise.
982         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise.
983         * cgraphunit.c (cgraph_node::expand): Likewise.
984         * ira-build.c (setup_min_max_allocno_live_range_point): Likewise.
985         * emit-rtl.c (add_insn): Likewise.
986         * input.c (dump_location_info): Likewise.
987         * passes.c (NEXT_PASS): Likewise.
988         * read-rtl-function.c (parse_note_insn_name,
989         function_reader::read_rtx_operand_r, function_reader::parse_mem_expr):
990         Likewise.
991         * sched-rgn.c (sched_rgn_init): Likewise.
992         * diagnostic-show-locus.c (layout::show_ruler): Likewise.
993         * combine.c (find_split_point, simplify_if_then_else, force_to_mode,
994         if_then_else_cond, simplify_shift_const_1, simplify_comparison): Likewise.
995         * explow.c (eliminate_constant_term): Likewise.
996         * final.c (leaf_renumber_regs_insn): Likewise.
997         * cfgrtl.c (print_rtl_with_bb): Likewise.
998         * genhooks.c (emit_init_macros): Likewise.
999         * poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise.
1000         * tree-data-ref.c (conflict_fn): Likewise.
1001         * selftest.c (assert_streq): Likewise.
1002         * expr.c (store_constructor_field, expand_expr_real_1): Likewise.
1003         * fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor,
1004         fold_binary_loc, multiple_of_p): Likewise.
1005         * reload.c (push_reload, find_equiv_reg): Likewise.
1006         * et-forest.c (et_nca, et_below): Likewise.
1007         * dbxout.c (dbxout_symbol_location): Likewise.
1008         * reorg.c (relax_delay_slots): Likewise.
1009         * dojump.c (do_compare_rtx_and_jump): Likewise.
1010         * gengtype-parse.c (type): Likewise.
1011         * simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational,
1012         simplify_const_relational_operation): Likewise.
1013         * reload1.c (do_output_reload): Likewise.
1014         * dumpfile.c (get_dump_file_info_by_switch): Likewise.
1015         * gengtype.c (type_for_name): Likewise.
1016         * gimple-ssa-sprintf.c (format_directive): Likewise.
1017
1018 2017-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1019
1020         PR target/82975
1021         * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before
1022         accessing it.  Adjust comment.
1023
1024 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1025
1026         PR middle-end/81914
1027         * predict.c (zero_one_minusone): New function.
1028         (apply_return_prediction): Avoid return prediction for functions
1029         returning only -1, 0 and 1 values, unless they only return -1 and 0
1030         or 0 and 1.
1031
1032 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
1033
1034         * config/arc/arc.c (legitimate_scaled_address_p): Clean
1035         fall-through warning.
1036         (arc_compute_frame_size): Remove unused variables.
1037         (arc_print_operand): Fix fprintif format.
1038         (arc_can_follow_jump): Clean fall-through warning.
1039
1040 2017-12-19  Marek Polacek  <polacek@redhat.com>
1041
1042         PR c++/83489
1043         * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P
1044         on an error node.                                                    
1045
1046 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
1047
1048         * config/arc/arc.c (overriderregs): New variable.
1049         (arc_override_options): Track fixed/call saved/call options.
1050         (arc_conditional_register_usage): Check against overrideregs
1051         variable whenever we change register properties.
1052
1053 2017-12-19  Nathan Sidwell  <nathan@acm.org>
1054
1055         * opts.c (finish_options): Don't prefix dump_base_name if it
1056         already contains directories.
1057
1058 2017-12-19  Martin Liska  <mliska@suse.cz>
1059
1060         PR rtl-optimization/82675
1061         * loop-unroll.c (unroll_loop_constant_iterations): Allocate one
1062         more element in sbitmap.
1063
1064 2017-12-19  Paolo Carlini  <paolo.carlini@oracle.com>
1065
1066         * gimplify.c (gimplify_expr): Use error_operand_p.
1067
1068 2017-12-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1069
1070         PR target/83387
1071         * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
1072         multilib.
1073
1074 2017-12-19  Daniel Cederman  <cederman@gaisler.com>
1075
1076         * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
1077         the jump is to a label.
1078
1079 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1080
1081         PR tree-optimization/83444
1082         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize
1083         character loads.
1084
1085         PR ipa/82801
1086         PR ipa/83346
1087         * ipa-inline.c (flatten_remove_node_hook): New function.
1088         (ipa_inline): Keep only nodes with flatten attribute at the end of
1089         the array in the order from ipa_reverse_postorder, only walk that
1090         portion of array for flattening, if there is more than one such
1091         node, temporarily register a removal hook and ignore removed nodes.
1092
1093         PR tree-optimization/80631
1094         * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare
1095         induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against
1096         IFN_REDUC_MAX or IFN_REDUC_MIN.
1097
1098 2017-12-18  Jeff Law  <law@redhat.com>
1099
1100         * tree-ssa-dom.c (record_equivalences_from_phis): Do not
1101         record symbolic equivalences from backedges in the CFG.
1102
1103         Revert
1104         2017-11-19  Jeff Law  <law@redhat.com>
1105
1106         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
1107         of degenerates resulting from ignoring an edge.
1108
1109 2017-12-18  Martin Sebor  <msebor@redhat.com>
1110
1111         PR middle-end/83373
1112         PR tree-optimization/78450
1113         * tree-ssa-strlen.c (maybe_set_strlen_range): New function.
1114         (handle_builtin_strlen): Call it.
1115
1116 2017-12-18  Segher Boessenkool  <segher@kernel.crashing.org>
1117
1118         PR rtl-optimization/83424
1119         * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
1120
1121 2017-12-18  Marek Polacek  <polacek@redhat.com>
1122
1123         PR middle-end/83463
1124         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
1125         Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max
1126         values.
1127
1128 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
1129
1130         * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern.
1131         (umaddsidi4, umaddsidi_split): Likewise.
1132
1133 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
1134
1135         * config/arc/arc.c (arc_legitimate_constant_p): Always check all
1136         constants.
1137
1138 2017-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1139
1140         PR target/83420
1141         * config/s390/s390.c (s390_option_override): Avoid strncpy.
1142
1143 2017-12-18  Richard Biener  <rguenther@suse.de>
1144
1145         PR tree-optimization/81877
1146         * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
1147         (outermost_indep_loop): Adjust.
1148         (ref_indep_loop_p_1): Likewise.  Remove safelen handling again.
1149         (can_sm_ref_p): Adjust.
1150
1151 2017-12-18  Richard Biener  <rguenther@suse.de>
1152
1153         PR middle-end/77291
1154         * tree.c (array_at_struct_end_p): Return true if the underlying
1155         object has space for at least one element in excess of what
1156         the array domain specifies.
1157
1158 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
1159
1160         * doc/extend.texi (x86 Function Attributes): Reformat nocf_check
1161         example to avoid overfull hbox.
1162         * doc/invoke.texi (Option Summary): Add missing @gol.
1163         (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid 
1164         overfull hbox.
1165         
1166 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
1167             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1168
1169         * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump
1170         to AArch64 and ARM lists, plus missing -mflip-thumb for ARM.
1171         (AArch64 Options): Document -mverbose-cost-dump.
1172         (ARM Options): Likewise, plus -mflip-thumb.
1173
1174 2017-12-17  Martin Sebor  <msebor@redhat.com>
1175
1176         PR bootstrap/83446
1177         * gimple-ssa-warn-restrict.c
1178         (builtin_memref::offset_out_of_bounds): Correct the handling of
1179         anti-ranges.
1180
1181 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
1182
1183         * doc/invoke.texi (ARC Options): Add missing -mlra entry.
1184
1185 2017-12-17  John David Anglin  <danglin@gcc.gnu.org>
1186
1187         * config/pa/pa.c (pa_som_asm_init_sections): Fix comment.
1188
1189 2017-12-17  Markus Trippelsdorf  <markus@trippelsdorf.de>
1190
1191         * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply
1192         latencies.
1193
1194 2017-12-16  Sandra Loosemore  <sandra@codesourcery.com>
1195
1196         * doc/invoke.texi: Fix some typos.
1197
1198 2017-12-16  Martin Sebor  <msebor@redhat.com>
1199
1200         PR tree-optimization/78918
1201         * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o.
1202         * builtins.c (check_sizes): Rename...
1203         (check_access): ...to this.  Rename function arguments for clarity.
1204         (check_memop_sizes): Adjust names.
1205         (expand_builtin_memchr, expand_builtin_memcpy): Same.
1206         (expand_builtin_memmove, expand_builtin_mempcpy): Same.
1207         (expand_builtin_strcat, expand_builtin_stpncpy): Same.
1208         (check_strncat_sizes, expand_builtin_strncat): Same.
1209         (expand_builtin_strncpy, expand_builtin_memset): Same.
1210         (expand_builtin_bzero, expand_builtin_memcmp): Same.
1211         (expand_builtin_memory_chk, maybe_emit_chk_warning): Same.
1212         (maybe_emit_sprintf_chk_warning): Same.
1213         (expand_builtin_strcpy): Adjust.
1214         (expand_builtin_stpcpy): Same.
1215         (expand_builtin_with_bounds): Detect out-of-bounds accesses
1216         in pointer-checking forms of memcpy, memmove, and mempcpy.
1217         (gcall_to_tree_minimal, max_object_size): Define new functions.
1218         * builtins.h (max_object_size): Declare.
1219         * calls.c (alloc_max_size): Call max_object_size instead of
1220         hardcoding ssizetype limit.
1221         (get_size_range): Handle new argument.
1222         * calls.h (get_size_range): Add a new argument.
1223         * cfgexpand.c (expand_call_stmt): Propagate no-warning bit.
1224         * doc/invoke.texi (-Wrestrict): Adjust, add example.
1225         * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping
1226         operations.
1227         (gimple_fold_builtin_memory_chk): Same.
1228         (gimple_fold_builtin_stxcpy_chk): New function.
1229         * gimple-ssa-warn-restrict.c: New source.
1230         * gimple-ssa-warn-restrict.h: New header.
1231         * gimple.c (gimple_build_call_from_tree): Propagate location.
1232         * passes.def (pass_warn_restrict): Add new pass.
1233         * tree-pass.h (make_pass_warn_restrict): Declare.
1234         * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping
1235         operations.
1236         (handle_builtin_strcat): Same.
1237         (strlen_optimize_stmt): Rename...
1238         (strlen_check_and_optimize_stmt): ...to this.  Handle strncat,
1239         stpncpy, strncpy, and their checking forms.
1240
1241 2017-12-16  Jan Hubicka  <hubicka@ucw.cz>
1242
1243         PR rtl-optimization/82849
1244         * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int
1245         and get_max_loop_iterations_int.
1246
1247 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1248             Alan Hayward  <alan.hayward@arm.com>
1249             David Sherwood  <david.sherwood@arm.com>
1250
1251         * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size)
1252         (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode
1253         size as a poly_uint64.
1254         (mode_for_vector, mode_for_int_vector): Take the number of vector
1255         elements as a poly_uint64.
1256         * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode
1257         size as a poly_uint64.
1258         (mode_for_vector, mode_for_int_vector): Take the number of vector
1259         elements as a poly_uint64.
1260
1261 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1262             Alan Hayward  <alan.hayward@arm.com>
1263             David Sherwood  <david.sherwood@arm.com>
1264
1265         * machmode.h (MACRO_MODE): New macro.
1266         * addresses.h (base_reg_class, ok_for_base_p_1): Use it.
1267         * targhooks.c (default_libcall_value, default_secondary_reload)
1268         (default_memory_move_cost, default_register_move_cost)
1269         (default_class_max_nregs): Likewise.
1270
1271 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1272             Alan Hayward  <alan.hayward@arm.com>
1273             David Sherwood  <david.sherwood@arm.com>
1274
1275         * doc/sourcebuild.texi: Document IN_TARGET_CODE.
1276         * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the
1277         target C file.
1278         * genautomata.c (main): Likewise.
1279         * genconditions.c (write_header): Likewise.
1280         * genemit.c (main): Likewise.
1281         * genextract.c (print_header): Likewise.
1282         * genopinit.c (main): Likewise.
1283         * genoutput.c (output_prologue): Likewise.
1284         * genpeep.c (main): Likewise.
1285         * genpreds.c (write_insn_preds_c): Likewise.
1286         * genrecog.c (writer_header): Likewise.
1287         * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define.
1288         * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise.
1289         * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise.
1290         * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise.
1291         * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise.
1292         * config/alpha/alpha.c (IN_TARGET_CODE): Likewise.
1293         * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise.
1294         * config/arc/arc-c.c (IN_TARGET_CODE): Likewise.
1295         * config/arc/arc.c (IN_TARGET_CODE): Likewise.
1296         * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise.
1297         * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise.
1298         * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise.
1299         * config/arm/arm-c.c (IN_TARGET_CODE): Likewise.
1300         * config/arm/arm.c (IN_TARGET_CODE): Likewise.
1301         * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise.
1302         * config/avr/avr-c.c (IN_TARGET_CODE): Likewise.
1303         * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise.
1304         * config/avr/avr-log.c (IN_TARGET_CODE): Likewise.
1305         * config/avr/avr.c (IN_TARGET_CODE): Likewise.
1306         * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise.
1307         * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise.
1308         * config/bfin/bfin.c (IN_TARGET_CODE): Likewise.
1309         * config/c6x/c6x.c (IN_TARGET_CODE): Likewise.
1310         * config/cr16/cr16.c (IN_TARGET_CODE): Likewise.
1311         * config/cris/cris.c (IN_TARGET_CODE): Likewise.
1312         * config/darwin.c (IN_TARGET_CODE): Likewise.
1313         * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise.
1314         * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise.
1315         * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise.
1316         * config/fr30/fr30.c (IN_TARGET_CODE): Likewise.
1317         * config/frv/frv.c (IN_TARGET_CODE): Likewise.
1318         * config/ft32/ft32.c (IN_TARGET_CODE): Likewise.
1319         * config/h8300/h8300.c (IN_TARGET_CODE): Likewise.
1320         * config/i386/djgpp.c (IN_TARGET_CODE): Likewise.
1321         * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise.
1322         * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise.
1323         * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise.
1324         * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise.
1325         * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise.
1326         * config/i386/i386-c.c (IN_TARGET_CODE): Likewise.
1327         * config/i386/i386.c (IN_TARGET_CODE): Likewise.
1328         * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise.
1329         * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise.
1330         * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise.
1331         * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise.
1332         * config/i386/winnt.c (IN_TARGET_CODE): Likewise.
1333         * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise.
1334         * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise.
1335         * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise.
1336         * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise.
1337         * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise.
1338         * config/ia64/ia64.c (IN_TARGET_CODE): Likewise.
1339         * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise.
1340         * config/lm32/lm32.c (IN_TARGET_CODE): Likewise.
1341         * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise.
1342         * config/m32c/m32c.c (IN_TARGET_CODE): Likewise.
1343         * config/m32r/m32r.c (IN_TARGET_CODE): Likewise.
1344         * config/m68k/m68k.c (IN_TARGET_CODE): Likewise.
1345         * config/mcore/mcore.c (IN_TARGET_CODE): Likewise.
1346         * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise.
1347         * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise.
1348         * config/mips/driver-native.c (IN_TARGET_CODE): Likewise.
1349         * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise.
1350         * config/mips/mips.c (IN_TARGET_CODE): Likewise.
1351         * config/mmix/mmix.c (IN_TARGET_CODE): Likewise.
1352         * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise.
1353         * config/moxie/moxie.c (IN_TARGET_CODE): Likewise.
1354         * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise.
1355         * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise.
1356         * config/msp430/msp430.c (IN_TARGET_CODE): Likewise.
1357         * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise.
1358         * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise.
1359         * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise.
1360         * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise.
1361         * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise.
1362         * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise.
1363         * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise.
1364         * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise.
1365         * config/nds32/nds32.c (IN_TARGET_CODE): Likewise.
1366         * config/nios2/nios2.c (IN_TARGET_CODE): Likewise.
1367         * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise.
1368         * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise.
1369         * config/pa/pa.c (IN_TARGET_CODE): Likewise.
1370         * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise.
1371         * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise.
1372         * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise.
1373         * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
1374         * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise.
1375         * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise.
1376         * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise.
1377         * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise.
1378         * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise.
1379         * config/riscv/riscv.c (IN_TARGET_CODE): Likewise.
1380         * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise.
1381         * config/rl78/rl78.c (IN_TARGET_CODE): Likewise.
1382         * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise.
1383         * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise.
1384         * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
1385         * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise.
1386         * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise.
1387         * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise.
1388         * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise.
1389         * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise.
1390         * config/rx/rx.c (IN_TARGET_CODE): Likewise.
1391         * config/s390/driver-native.c (IN_TARGET_CODE): Likewise.
1392         * config/s390/s390-c.c (IN_TARGET_CODE): Likewise.
1393         * config/s390/s390.c (IN_TARGET_CODE): Likewise.
1394         * config/sh/sh-c.c (IN_TARGET_CODE): Likewise.
1395         * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise.
1396         * config/sh/sh.c (IN_TARGET_CODE): Likewise.
1397         * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise.
1398         * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise.
1399         * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise.
1400         * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise.
1401         * config/sparc/sparc.c (IN_TARGET_CODE): Likewise.
1402         * config/spu/spu-c.c (IN_TARGET_CODE): Likewise.
1403         * config/spu/spu.c (IN_TARGET_CODE): Likewise.
1404         * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise.
1405         * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise.
1406         * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise.
1407         * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise.
1408         * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise.
1409         * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise.
1410         * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise.
1411         * config/v850/v850-c.c (IN_TARGET_CODE): Likewise.
1412         * config/v850/v850.c (IN_TARGET_CODE): Likewise.
1413         * config/vax/vax.c (IN_TARGET_CODE): Likewise.
1414         * config/visium/visium.c (IN_TARGET_CODE): Likewise.
1415         * config/vms/vms-c.c (IN_TARGET_CODE): Likewise.
1416         * config/vms/vms-f.c (IN_TARGET_CODE): Likewise.
1417         * config/vms/vms.c (IN_TARGET_CODE): Likewise.
1418         * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise.
1419
1420 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1421             Alan Hayward  <alan.hayward@arm.com>
1422             David Sherwood  <david.sherwood@arm.com>
1423
1424         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated
1425         checks for MEM_REF.
1426
1427 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1428             Alan Hayward  <alan.hayward@arm.com>
1429             David Sherwood  <david.sherwood@arm.com>
1430
1431         * doc/generic.texi (VEC_SERIES_EXPR): Document.
1432         * doc/md.texi (vec_series@var{m}): Document.
1433         * tree.def (VEC_SERIES_EXPR): New tree code.
1434         * tree.h (build_vec_series): Declare.
1435         * tree.c (build_vec_series): New function.
1436         * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR.
1437         * tree-pretty-print.c (dump_generic_node): Likewise.
1438         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
1439         * tree-inline.c (estimate_operator_cost): Likewise.
1440         * expr.c (expand_expr_real_2): Likewise.
1441         * optabs-tree.c (optab_for_tree_code): Likewise.
1442         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
1443         * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants.
1444         * expmed.c (make_tree): Handle VEC_SERIES.
1445         * optabs.def (vec_series_optab): New optab.
1446         * optabs.h (expand_vec_series_expr): Declare.
1447         * optabs.c (expand_vec_series_expr): New function.
1448         * tree-vect-generic.c (expand_vector_operations_1): Check that
1449         the operands also have vector type.
1450
1451 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
1452             Alan Hayward  <alan.hawyard@arm.com>
1453             David Sherwood  <david.sherwood@arm.com>
1454
1455         * doc/generic.texi (VEC_DUPLICATE_EXPR): Document.
1456         (VEC_COND_EXPR): Add missing @tindex.
1457         * doc/md.texi (vec_duplicate@var{m}): Document.
1458         * tree.def (VEC_DUPLICATE_EXPR): New tree codes.
1459         * tree.c (build_vector_from_val): Add stubbed-out handling of
1460         variable-length vectors, using VEC_DUPLICATE_EXPR.
1461         (uniform_vector_p): Handle VEC_DUPLICATE_EXPR.
1462         * cfgexpand.c (expand_debug_expr): Likewise.
1463         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
1464         * tree-inline.c (estimate_operator_cost): Likewise.
1465         * tree-pretty-print.c (dump_generic_node): Likewise.
1466         * tree-vect-generic.c (ssa_uniform_vector_p): Likewise.
1467         * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant.
1468         (test_vec_duplicate_folding): New function.
1469         (fold_const_c_tests): Call it.
1470         * optabs.def (vec_duplicate_optab): New optab.
1471         * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR.
1472         * optabs.h (expand_vector_broadcast): Declare.
1473         * optabs.c (expand_vector_broadcast): Make non-static.  Try using
1474         vec_duplicate_optab.
1475         * expr.c (store_constructor): Try using vec_duplicate_optab for
1476         uniform vectors.
1477         (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR.
1478
1479 2017-12-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
1480
1481         PR target/83358
1482         * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase
1483         div/mod latencies a bit.
1484
1485 2017-12-15  Jeff Law  <law@redhat.com>
1486
1487         PR tree-optimization/36550
1488         * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New.
1489         (mark_threaded_blocks): Rewrite code to avoid block copying when
1490         optimizing for size.  Don't pessimize blocks which will be
1491         copied, but all the statements will be dead.
1492
1493 2017-12-15  Alexandre Oliva <aoliva@redhat.com>
1494
1495         PR tree-optimization/81165
1496         * tree-ssa-threadupdate.c (uses_in_bb): New.
1497         (estimate_threading_killed_stmts): New.
1498         * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype.
1499         * tree-ssa-threadedge.c 
1500         (record_temporary_equivalences_from_stmts_at_dest): Expand limit
1501         when its hit.
1502
1503 2017-12-15  Jeff Law  <law@redhat.com>
1504
1505         PR tree-optimization/83410
1506         * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump
1507         threads when parallelizing loops.
1508
1509 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
1510
1511         * tree-core.h (struct attribute_spec): Swap affects_type_identity and
1512         handler fields.
1513         * config/alpha/alpha.c (vms_attribute_table): Swap
1514         affects_type_identity and handler fields, adjust comments.
1515         * config/mips/mips.c (mips_attribute_table): Likewise.
1516         * config/visium/visium.c (visium_attribute_table): Likewise.
1517         * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise.
1518         * config/microblaze/microblaze.c (microblaze_attribute_table):
1519         Likewise.
1520         * config/spu/spu.c (spu_attribute_table): Likewise.
1521         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1522         * config/arc/arc.c (arc_attribute_table): Likewise.
1523         * config/m68k/m68k.c (m68k_attribute_table): Likewise.
1524         * config/v850/v850.c (v850_handle_interrupt_attribute,
1525         v850_handle_data_area_attribute): Formatting fixes.
1526         (v850_attribute_table): Swap affects_type_identity and handler
1527         fields, adjust comments.
1528         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1529         * config/arm/arm.c (arm_attribute_table): Likewise.
1530         * config/avr/avr.c (avr_attribute_table): Likewise.
1531         * config/s390/s390.c (s390_attribute_table): Likewise.
1532         * config/sh/sh.c (sh_attribute_table): Likewise.
1533         * config/i386/i386.c (ix86_handle_cconv_attribute,
1534         ix86_handle_callee_pop_aggregate_return): Formatting fixes.
1535         (ix86_attribute_table): Swap affects_type_identity and handler
1536         fields, adjust comments.
1537         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
1538         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1539         * config/m32c/m32c.c (m32c_attribute_table): Likewise.
1540         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise.
1541         * config/ia64/ia64.c (ia64_attribute_table): Likewise.
1542         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
1543         * config/rx/rx.c (rx_attribute_table): Likewise.
1544         * config/cr16/cr16.c (cr16_attribute_table): Likewise.
1545         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1546         * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise.
1547         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise.
1548         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
1549         * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise.
1550         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1551         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1552         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
1553         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
1554         * doc/plugins.texi (user_attr): Likewise.  Add NULL for
1555         exclude.
1556         * attribs.c (empty_attribute_table): Swap affects_type_identity and
1557         handler fields.
1558         (register_scoped_attributes, decl_attributes): Formatting fixes.
1559
1560         PR tree-optimization/83269
1561         * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
1562         subtraction in arg0's type if type is signed and arg0 is unsigned.
1563         Formatting fix.
1564
1565         PR sanitizer/81281
1566         * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and
1567         convert? on @0 instead of convert.  Check type of @1, not @0.
1568         ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and
1569         convert? on @0 instead of convert.  Check type of @1, not @0.
1570         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0,
1571         only optimize if either both @1 and @2 types are narrower
1572         precision, or both are wider or equal precision, and in the former
1573         case only if both have undefined overflow.
1574
1575 2017-12-15  Richard Biener  <rguenther@suse.de>
1576
1577         PR lto/83388
1578         * internal-fn.def (IFN_NOP): Add.
1579         * internal-fn.c (expand_NOP): Do nothing.
1580         * lto-streamer-in.c (input_function): Instead of removing
1581         sanitizer calls replace them with IFN_NOP calls.
1582
1583 2017-12-15  Richard Sandiford  <richard.sandiford@linaro.org>
1584             Alan Hayward  <alan.hayward@arm.com>
1585             David Sherwood  <david.sherwood@arm.com>
1586
1587         * dse.c (store_info, read_info_type): Replace begin and end with
1588         offset and width.
1589         (print_range): New function.
1590         (set_all_positions_unneeded, any_positions_needed_p)
1591         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update
1592         accordingly.
1593         (record_store): Likewise.  Optimize the case in which all positions
1594         are unneeded.
1595         (get_stored_val): Replace read_begin and read_end with read_offset
1596         and read_width.
1597         (replace_read): Update call accordingly.
1598
1599 2017-12-15  Bin Cheng  <bin.cheng@arm.com>
1600
1601         * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro.
1602         (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members.
1603         (loop_cand::loop_cand): Initialize above members.
1604         (loop_cand::supported_operations): Delete.
1605         (loop_cand::can_interchange_p): Inline above function.
1606         (loop_cand::classify_simple_reduction): Record number of constant
1607         initialized simple reductions.
1608         (should_interchange_loops): New parameters.  Check stmt cost of loops
1609         to be interchange.
1610         (tree_loop_interchange::interchange): Prepare stmt cost of outer loop.
1611         Update call to should_interchange_loops.
1612         (should_interchange_loop_nest): Update call to
1613         should_interchange_loops.
1614
1615 2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
1616
1617         PR target/66488
1618         * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
1619         * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
1620         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
1621
1622 2017-12-15  Julia Koval  <julia.koval@intel.com>
1623
1624         * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
1625         __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): New.
1626         * config/i386/sse.md (vaesenclast_<mode>): New pattern.
1627         * config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
1628         _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
1629
1630 2017-12-15  Julia Koval  <julia.koval@intel.com>
1631
1632         * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi,
1633         __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New.
1634         * config/i386/sse.md (vaesenc_<mode>): New pattern.
1635         * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128,
1636         _mm_aesenc_epi128): New intrinsics.
1637
1638 2017-12-15  Julia Koval  <julia.koval@intel.com>
1639
1640         * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
1641         __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): New.
1642         * config/i386/sse.md (vaesdeclast_<mode>): New pattern.
1643         * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
1644         _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
1645
1646 2017-12-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1647
1648         * gimple-ssa-strength-reduction.c (analyze_increments):
1649         Distinguish replacement costs for constant strides from those for
1650         unknown strides.
1651
1652 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
1653
1654         * var-tracking.c (variable_tracking_main_1): Formatting fix.
1655
1656 2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1657
1658         * doc/invoke.texi: Document -Wcast-function-type.
1659         * recog.h (stored_funcptr): Change signature.
1660         * tree-dump.c (dump_node): Avoid warning.
1661         * typed-splay-tree.h (typed_splay_tree): Avoid warning.
1662
1663 2017-12-14  Qing Zhao  <qing.zhao@oracle.com>
1664
1665         PR middle_end/79538
1666         * gimple-fold.c (get_range_strlen): Add the handling of non-member 
1667         array.
1668
1669 2017-12-14  David Malcolm  <dmalcolm@redhat.com>
1670
1671         PR tree-optimization/83312
1672         * domwalk.h (dom_walker::dom_walker): Fix typo in comment.
1673         * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for
1674         "val" param, and to cope with arbitrary basic blocks.
1675         (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to
1676         handle NULL_TREE for "val", dropping "bb" param.
1677         (find_taken_edge_switch_expr): Make "switch_stmt" param const and
1678         drop "bb" param.  Handle NULL_TREE for "val".
1679         (find_case_label_for_value): Make "switch_stmt" param const.
1680         * tree-vrp.c (class check_array_bounds_dom_walker): New subclass
1681         of dom_walker.
1682         (vrp_prop::check_all_array_refs): Reimplement as...
1683         (check_array_bounds_dom_walker::before_dom_children): ...this new
1684         vfunc.  Replace linear search through BB block list, excluding
1685         those with non-executable in-edges via dominator walk.
1686
1687 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1688
1689         * config/arm/arm.opt (mverbose-cost-dump): New option.
1690         * config/arm/arm.c (arm_rtx_costs): Use it.
1691
1692 2017-12-14  Andreas Schwab  <schwab@linux-m68k.org>
1693
1694         PR bootstrap/83396
1695         * reload1.c (emit_input_reload_insns): Skip debug markers.
1696
1697 2017-12-14  Alexandre Oliva <aoliva@redhat.com>
1698
1699         * config/i386/i386.c (rest_of_insert_endbranch): Use call loc
1700         for its nop_endbr.
1701
1702         PR bootstrap/83396
1703         * config/arc/arc.c (hwloop_optimize): Skip debug insns.
1704         * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust.
1705         * config/sh/sh.c: Skip debug insns besides notes.
1706         * config/sh/sh.md: Likewise.
1707         * config/sh/sh_treg_combine.cc: Likewise.
1708         * config/sh/sync.md: Likewise.
1709
1710 2017-12-14  Tom de Vries  <tom@codesourcery.com>
1711
1712         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
1713         Add item for weak_undefined.
1714
1715 2017-12-14  Richard Biener  <rguenther@suse.de>
1716
1717         PR tree-optimization/67842
1718         * sese.h (bb_in_region): Remove #if 0'ed code.
1719
1720 2017-12-14  Richard Biener  <rguenther@suse.de>
1721
1722         PR tree-optimization/83326
1723         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
1724         may_be_zero parameter and handle it by not marking the first
1725         peeled copy as not exiting the loop.
1726         (try_peel_loop): Likewise.
1727         (canonicalize_loop_induction_variables): Use number_of_iterations_exit
1728         to handle the case of constant or zero iterations and perform
1729         loop header copying on-the-fly.
1730
1731 2017-12-14  Richard Biener  <rguenther@suse.de>
1732
1733         PR tree-optimization/83418
1734         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
1735         Instead of asserting we don't get unfolded comparisons deal with
1736         them.
1737
1738 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
1739
1740         PR bootstrap/83396
1741         * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of
1742         basic blocks.  Assert debug bind insns don't appear outside of bbs,
1743         don't reset them.  Assert insns without BLOCK_FOR_INSN are outside of
1744         bb.  Simplify.
1745
1746         PR tree-optimization/83198
1747         * gimple-ssa-sprintf.c (format_floating): Set type solely based on
1748         dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
1749         value if arg is a REAL_CST with incompatible type.
1750
1751 2017-12-14  Sudakshina Das  <sudi.das@arm.com>
1752             Bin Cheng  <bin.cheng@arm.com>
1753
1754         PR target/81228
1755         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT
1756         to CCFPEmode.
1757         * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add
1758         LTGT.
1759
1760 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1761
1762         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
1763         cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.
1764
1765 2017-12-14  Richard Sandiford  <richard.sandiford@linaro.org>
1766             Alan Hayward  <alan.hayward@arm.com>
1767             David Sherwood  <david.sherwood@arm.com>
1768
1769         * poly-int.h: New file.
1770         * poly-int-types.h: Likewise.
1771         * coretypes.h: Include them.
1772         (POLY_INT_CONVERSION): Define.
1773         * target.def (estimated_poly_value): New hook.
1774         * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook.
1775         * doc/tm.texi: Regenerate.
1776         * doc/poly-int.texi: New file.
1777         * doc/gccint.texi: Include it.
1778         * doc/rtl.texi: Describe restrictions on subreg modes.
1779         * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi.
1780         * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition.
1781         (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS.
1782         * targhooks.h (default_estimated_poly_value): Declare.
1783         * targhooks.c (default_estimated_poly_value): New function.
1784         * target.h (estimated_poly_value): Likewise.
1785         * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits.
1786         (wi::unary_traits): Delete.
1787         (wi::binary_traits::signed_shift_result_type): Define for
1788         offset_int << HOST_WIDE_INT, etc.
1789         (generic_wide_int::operator <<=): Define for all types and use
1790         wi::lshift instead of <<.
1791         (wi::hwi_with_prec): Add a default constructor.
1792         (wi::ints_for): New class.
1793         (operator <<): Define for all wide-int types.
1794         (operator /): New function.
1795         (operator %): Likewise.
1796         * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE)
1797         (ASSERT_MAYBE_NE_AT): New macros.
1798
1799 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
1800             Dominik Vogt  <vogt@linux.vnet.ibm.com>
1801
1802         PR middle-end/78468
1803         * emit-rtl.c (init_emit): Remove ??? comment.
1804         * explow.c (get_dynamic_stack_size): Take known alignment of stack
1805         pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY.
1806         * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the
1807         alignment of 3 virtual registers to BITS_PER_WORD.
1808
1809         * config/sparc/sparc.c (sparc_compute_frame_size): Simplify.
1810
1811 2017-12-13  Peter Bergner  <bergner@vnet.ibm.com>
1812
1813         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
1814         * config/rs6000/rs6000.c (cpu_supports_info): Use it.
1815
1816 2017-12-13  Alexandre Oliva <aoliva@redhat.com>
1817
1818         PR bootstrap/83396
1819         * reload1.c (eliminate_regs_in_insn): Skip debug markers.
1820
1821 2017-12-13  Jakub Jelinek  <jakub@redhat.com>
1822
1823         * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
1824         with the exception of debug begin stmt markers appear before
1825         labels.
1826
1827         PR bootstrap/83396
1828         * final.c (rest_of_handle_final): Call variable_tracking_main only
1829         if !flag_var_tracking.
1830
1831 2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
1832             Jakub Jelinek  <jakub@redhat.com>
1833
1834         PR bootstrap/83396
1835         PR debug/83391
1836         * tree-cfgcleanup.c (remove_forwarder_block): Keep after
1837         labels debug stmts that can only appear after labels.
1838
1839 2017-12-13  Alexander Monakov  <amonakov@ispras.ru>
1840
1841         PR rtl-optimization/82398
1842         * sel-sched.c (sel_rank_for_schedule): Fix check for zero
1843         EXPR_USEFULNESS in priority comparison.
1844
1845 2017-12-13  Segher Boessenkool  <segher@kernel.crashing.org>
1846
1847         PR rtl-optimization/83393
1848         * combine.c (move_deaths): If reg_stat points to a too new insn in
1849         last_death, do not use it: find the proper insn instead.
1850
1851 2017-12-12  Jeff Law  <law@redhat.com>
1852
1853         PR tree-optimization/83298
1854         PR tree-optimization/83362
1855         PR tree-optimization/83383
1856         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make
1857         push_value_range a public interface.  Add new argument to
1858         record_ranges_from_stmt.
1859         * gimple-ssa-evrp-analyze.c
1860         (evrp_range_analyzer::record_ranges_from_stmt): Add new argument.
1861         Update comments.  Handle recording temporary equivalences.
1862         * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add
1863         new argument to call to evrp_range_analyzer::record_ranges_from_stmt.
1864         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise.
1865         * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and
1866         gimple-ssa-evrp-analyze.h.
1867         (record_temporary_equivalences_from_phis): Add new argument.  When
1868         the PHI arg is an SSA_NAME, set the result's range to the range
1869         of the PHI arg.
1870         (record_temporary_equivalences_from_stmts_at_dest): Record ranges
1871         from statements too.
1872         (thread_through_normal_block): Accept new argument, evrp_range_analyzer.
1873         Pass it down to children as needed.
1874         (thread_outgoing_edges): Likewise.
1875         (thread_across_edge): Likewise.   Push/pop range state as needed.
1876         * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype.
1877
1878 2017-12-12  Julia Koval  <julia.koval@intel.com>
1879
1880         * config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB.
1881         (PTA_CANNONLAKE): Remove PTA_CLWB.
1882
1883 2017-12-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1884
1885         PR target/83332
1886         * config/rs6000/vector.md (vcondv2dfv2di): New define_expand.
1887         (vcondv2div2df): Likewise.
1888         (vconduv2dfv2di): Likewise.
1889
1890 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
1891
1892         * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF,
1893         BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF,
1894         BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of
1895         ATTR_MATHFN_FPROUNDING_ERRNO.
1896
1897 2017-12-12  Richard Biener  <rguenther@suse.de>
1898
1899         PR tree-optimization/83385
1900         * graphite-scop-detection.c (get_order, order): Remove.
1901         (bb_to_rpo): New global.
1902         (cmp_pbbs): Adjust.
1903         (build_scops): Sort pbbs in RPO order.
1904
1905 2017-12-12  James Greenhalgh  <james.greenhalgh@arm.com>
1906
1907         * combine.c (simplify_set): Do not transform subregs to zero_extends
1908         if the destination mode is a vector mode.
1909
1910 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
1911
1912         PR tree-optimization/83359
1913         * tree-cfg.h (fold_loop_internal_call): Declare.
1914         * tree-vectorizer.c (fold_loop_internal_call): Moved to ...
1915         * tree-cfg.c (fold_loop_internal_call): ... here.  No longer static.
1916         (find_loop_dist_alias): New function.
1917         (move_sese_region_to_fn): If any dloop->orig_loop_num value is
1918         updated, also adjust any corresponding LOOP_DIST_ALIAS internal
1919         calls.
1920
1921         PR tree-optimization/80631
1922         * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
1923         (vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE
1924         arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
1925         hardcoding zero as the value if COND_EXPR is never true.  For
1926         INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
1927         INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of
1928         hardcoding MAX_EXPR as the reduction operation.
1929         (is_nonwrapping_integer_induction): Allow negative step.
1930         (vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for
1931         vect_create_epilog_for_reduction, if no value is suitable, don't
1932         use INTEGER_INDUC_COND_REDUCTION for now.  Formatting fixes.
1933
1934 2017-12-12  Richard Biener  <rguenther@suse.de>
1935
1936         PR tree-optimization/81889
1937         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use
1938         range info from the non-wrapping IV instead of just the range
1939         of the type.
1940
1941 2017-12-12  Julia Koval  <julia.koval@intel.com>
1942
1943         * config.gcc: Add vaesintrin.h.
1944         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
1945         New type.
1946         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
1947         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
1948         New builtins.
1949         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
1950         * config/i386/immintrin.h: Include vaesintrin.h.
1951         * config/i386/sse.md (vaesdec_<mode>): New pattern.
1952         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
1953         _mm_aesdec_epi128): New intrinsics.
1954
1955 2017-12-12  Julia Koval  <julia.koval@intel.com>
1956
1957         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VAES_SET,
1958         OPTION_MASK_ISA_VAES_UNSET): New.
1959         (ix86_handle_option): Handle -mvaes.
1960         * config/i386/cpuid.h: Define bit_VAES.
1961         * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mvaes.
1962         * config/i386/i386-c.c (__VAES__): New.
1963         * config/i386/i386.c (ix86_target_string): Add -mvaes.
1964         (ix86_valid_target_attribute_inner_p): Ditto.
1965         * config/i386/i386.h (TARGET_VAES, TARGET_VAES_P): New.
1966         * config/i386/i386.opt: Add -mvaes.
1967         * doc/invoke.texi: Ditto.
1968
1969 2017-12-12  Alexandre Oliva  <aoliva@redhat.com>
1970
1971         * debug.h (gcc_debug_hooks): Add inline_entry.
1972         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
1973         * debug.c (do_nothing_debug_hooks): Likewise.
1974         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1975         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1976         (dwarf2_lineno_debug_hooks): Likewise.
1977
1978         * common.opt (gstatement-frontiers): New, setting
1979         debug_nonbind_markers_p.
1980         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): Activate.
1981         * toplev.c (process_options): Autodetect value for debug statement
1982         frontiers option.
1983         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Activate.
1984         * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): New.
1985
1986         * cfgexpand.c (expand_gimple_basic_block): Handle begin stmt
1987         markers.  Integrate source bind into debug stmt expand loop.
1988         (pass_expand::execute): Check debug marker limit.  Avoid deep
1989         TER and expand debug locations for debug bind insns only.
1990         * cse.c (insn_live_p): Keep nonbind markers and debug bindings
1991         followed by them.
1992         * df-scan.c (df_insn_delete): Accept out-of-block debug insn.
1993         * final.c (reemit_insn_block_notes): Take current block from
1994         nonbind markers.  Declare note where it's first set.
1995         (final_scan_insn): Handle begin stmt notes.  Emit is_stmt according to
1996         begin stmt markers if enabled.
1997         (notice_source_line): Handle nonbind markers.  Fail if their
1998         location is unknown or that of builtins.
1999         (rest_of_handle_final): Convert begin stmt markers to notes if
2000         var-tracking didn't run.
2001         (rest_of_clean_state): Skip begin stmt markers.
2002         * gimple-pretty-print.c (dump_gimple_debug): Handle begin stmt
2003         markers.
2004         * function.c (allocate_struct_function): Set begin_stmt_markers.
2005         * function.h (struct function): Add debug_marker_count counter
2006         and debug_nonbind_markers flag.
2007         * gimple-iterator.c (gsi_remove): Adjust debug_marker_count.
2008         * gimple-low.c (lower_function_body): Adjust
2009         debug_nonbind_markers.
2010         (lower_stmt): Drop or skip gimple debug stmts.
2011         (lower_try_catch): Skip debug stmts.
2012         * gimple.c (gimple_build_debug_begin_stmt): New.
2013         (gimple_copy): Increment debug_marker_count if copying one.
2014         * gimple.h (gimple_build_debug_begin_stmt): Declare.
2015         * gimplify.c (rexpr_location): New.
2016         (rexpr_has_location): New.
2017         (warn_switch_unreachable_r): Handle gimple debug stmts.
2018         (shortcut_cond_r): Call expr_location.
2019         (find_goto): New.
2020         (find_goto_label): New.
2021         (shortcut_cond_expr): Call expr_has_location, expr_location, and
2022         find_goto_label.
2023         (gimplify_cond_expr): Call find_goto_label, expr_has_location, and
2024         expr_location.
2025         (gimplify_expr): Handle begin stmt markers.  Reject debug expr decls.
2026         * langhooks-def.h (LANG_HOOKS_EMITS_BEGIN_STMT): New.  Add to...
2027         (LANG_HOOKS_INITIALIZER): ... this.
2028         * langhooks.h (struct lang_hooks): Add emits_begin_stmt.
2029         * lra-contraints.c (inherit_reload_reg): Tolerate between-blocks
2030         debug insns.
2031         (update_ebb_live_info): Skip debug insn markers.
2032         * lra.c (debug_insn_static_data): Rename to...
2033         (debug_bind_static_data): ... this.
2034         (debug_marker_static_data): New.
2035         (lra_set_insn_recog_data): Select one of the above depending
2036         on debug insn kind.
2037         (lra_update_isn_regno_info): Don't assume debug insns have
2038         freqs.
2039         (push_insns): Skip debug insns.
2040         * lto-streamer-in.c (input_function): Drop debug stmts
2041         depending on active options.  Adjust debug_nonbind_markers.
2042         * params.def (PARAM_MAX_DEBUG_MARKER_COUNT): New.
2043         * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
2044         begin stmt marker notes.
2045         (print_insn): Likewise.
2046         * recog.c (extract_insn): Recognize rtl for debug markers.
2047         * rtl.def (DEBUG_MARKER): New.
2048         * tree-inline.c: Include params.h.
2049         (remap_gimple_stmt): Handle nonbind markers.
2050         (maybe_move_debug_stmts_to_successors): Likewise.
2051         (copy_debug_stmt): Likewise.
2052         * tree-iterator.c (append_to_statement_list_1): Append begin stmt
2053         markers regardless of no side effects.
2054         (tsi_link_before): Don't update container's side effects when adding
2055         a begin stmt marker.
2056         (tsi_link_after): Likewise.
2057         (expr_first): Skip begin stmt markers.
2058         (expr_last): Likewise.
2059         * tree-pretty-print (dump_generic_node): Handle begin stmt markers.
2060         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
2061         Disregard nonbind markers.
2062         * tree.c (make_node_stat): Don't set side effects for begin stmt
2063         markers.
2064         (build1_stat): Likewise.
2065         * tree.def (DEBUG_BEGIN_STMT): New.
2066         * tree.h (GOTO_DESTINATION): Require a GOTO_EXPR.
2067         * var-tracking.c (delete_debug_insns): Renamed to...
2068         (delete_vta_debug_insns): ... this.
2069         (reemit_marker_as_note): New.
2070         (vt_initialize): Reemit markers.
2071         (delete_vta_debug_insns): Likewise.
2072         (vt_debug_insns_local): Reemit or delete markers.
2073         (variable_tracking_main_1): Likewise.
2074         * doc/generic.texi (DEBUG_BEGIN_STMT): Document.
2075         * doc/gimple.texi (gimple_debug_begin_stmt_p): New.
2076         (gimple_debug_nonbind_marker_p): New.
2077         (gimple_build_debug_bind): Adjust.
2078         (gimple_build_debug_begin_stmt): New.
2079         * doc/invoke.texi (max-debug-marker-count): New param.
2080         * doc/rtl.texi (debug_implicit_ptr, entry_value): New.
2081         (debug_parameter_ref, debug_marker): New.
2082         (NOTE_INSN_BEGIN_STMT): New.
2083         (DEBUG_INSN): Describe begin stmt markers.
2084
2085         * cfgbuild.c (find_bb_boundaries): Don't purge dead edges if,
2086         without debug insns, we wouldn't, but clean up debug insns
2087         after a control flow insn nevertheless.
2088
2089         * cfgcleanup.c (delete_unreachable_blocks): Use alternate
2090         block removal order if MAY_HAVE_DEBUG_BIND_INSNS.
2091         * cfgexpand.c (label_rtx_for_bb): Skip debug insns.
2092         * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns.
2093         (rtl_tidy_fallthru_edge): Likewise.
2094         (rtl_verify_fallthru): Likewise.
2095         (rtl_verify_bb_layout): Likewise.
2096         (skip_insns_after_block): Likewise.
2097         (duplicate_insn_chain): Use DEBUG_BIND_INSN_P.
2098         * dwarf2out.c: Include print-rtl.h.
2099         (dwarf2out_next_real_insn): New.
2100         (dwarf2out_var_location): Call it.  Disregard begin stmt markers.
2101         Dump debug binds in asm comments.
2102         * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts.
2103         * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust
2104         callers to use gsi_start_nondebug_bb instead.
2105         (gsi_after_labels): Skip gimple debug stmts.
2106         (gsi_start_nondebug): New.
2107         * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust.
2108         (proper_loop_form_for_interchange): Adjust.
2109         * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt.
2110         * gimple.h (gimple_seq_last_nondebug_stmt): New.
2111         * gimplify.c (last_stmt_in_scope): Skip debug stmts.
2112         (collect_fallthrough_labels): Likewise.
2113         (should_warn_for_implicit_fallthrough): Likewise.
2114         (warn_implicit_fallthrough_r): Likewise.
2115         (expand_FALLTHROUGH_r): Likewise.
2116         * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust.
2117         (graphite_copy_stmts_from_block): Skip nonbind markers.
2118         * haifa-sched.c (sched_extend_bb): Skip debug insns.
2119         * ipa-icf-gimple.c (func_checker::compare_bb): Adjust.
2120         * jump.c (clean_barriers): Skip debug insns.
2121         * omp-expand.c (expand_parallel_call): Skip debug insns.
2122         (expand_task_call): Likewise.
2123         (remove_exit_barrier): Likewise.
2124         (expand_omp_taskreg): Likewise.
2125         (expand_omp_for_init_counts): Likewise.
2126         (expand_omp_for_generic): Likewise.
2127         (expand_omp_for_static_nochunk): Likewise.
2128         (expand_omp_for_static_chunk): Likewise.
2129         (expand_omp_simd): Likewise.
2130         (expand_omp_taskloop_for_outer): Likewise.
2131         (expand_omp_taskloop_for_inner): Likewise.
2132         (expand_oacc_for): Likewise.
2133         (expand_omp_sections): Likewise.
2134         (expand_omp_single): Likewise.
2135         (expand_omp_synch): Likewise.
2136         (expand_omp_atomic_load): Likewise.
2137         (expand_omp_atomic_store): Likewise.
2138         (expand_omp_atomic_fetch_op): Likewise.
2139         (expand_omp_atomic_pipeline): Likewise.
2140         (expand_omp_atomic_mutex): Likewise.
2141         (expand_omp_target): Likewise.
2142         (grid_expand_omp_for_loop): Likewise.
2143         (grid_expand_target_grid_body): Likewise.
2144         (build_omp_regions_1): Likewise.
2145         * omp-low.c (check_combined_parallel): Skip debug stmts.
2146         * postreload.c (fixup_debug_insns): Skip nonbind debug insns.
2147         * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo.
2148         * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in
2149         test.
2150         * tree-cfg.c (make_blobs_1): Skip debug stmts.
2151         (make_edges): Likewise.
2152         (cleanup_dead_labels): Likewise.
2153         (gimple_can_merge_blocks_p): Likewise.
2154         (stmt_starts_bb_p): Likewise.
2155         (gimple_block_label): Likewise.
2156         (gimple_redirect_edge_and_branch): Likewise.
2157         * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping
2158         of debug stmts.
2159         (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with
2160         TDF_SLIM.
2161         * tree-pretty-print (print_declaration): Omit initializer in slim
2162         dumps.
2163         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt
2164         markers.
2165         (eliminate_unnecessary_stmts): Stabilize block removal order.
2166         * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts.
2167         * var-tracking.c (get_first_insn): New.
2168         (vt_emit_notes): Call it.
2169         (vt_initialize): Walk any insns before the first BB.
2170         (delete_debug_insns): Likewise.
2171
2172         * gimple.h (enum gimple_debug_subcode): Add
2173         GIMPLE_DEBUG_BEGIN_STMT.
2174         (gimple_debug_begin_stmt_p): New.
2175         (gimple_debug_nonbind_marker_p): New.
2176         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New.
2177         (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from....
2178         (MAY_HAVE_DEBUG_STMTS): ... this.  Check both.
2179         * insn-notes.def (BEGIN_STMT): New.
2180         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New.
2181         (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from....
2182         (MAY_HAVE_DEBUG_INSNS): ... this.  Check both.
2183         (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New.
2184         (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New.
2185         (INSN_DEBUG_MARKER_KIND): New.
2186         (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New.
2187         (INSN_VAR_LOCATION): Check for VAR_LOCATION.
2188         (INSN_VAR_LOCATION_PTR): New.
2189         * cfgexpand.c (expand_debug_locations): Handle debug bind insns
2190         only.
2191         (expand_gimple_basic_block): Likewise.  Emit debug temps for TER
2192         deps only if debug bind insns are enabled.
2193         (pass_expand::execute): Avoid deep TER and expand
2194         debug locations for debug bind insns only.
2195         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow
2196         debug stmts special handling down to debug bind stmts.
2197         * combine.c (try_combine): Narrow debug insns special handling
2198         down to debug bind insns.
2199         * cse.c (delete_trivially_dead_insns): Handle debug bindings.
2200         Narrow debug insns preexisting special handling down to debug
2201         bind insns.
2202         * dce.c (rest_of_handle_ud_dce): Narrow debug insns special
2203         handling down to debug bind insns.
2204         * function.c (instantiate_virtual_regs): Skip debug markers,
2205         adjust handling of debug binds.
2206         * gimple-ssa-backprop.c (backprop::prepare_change): Try debug
2207         temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS.
2208         * haifa-sched.c (schedule_insn): Narrow special handling of debug
2209         insns to debug bind insns.
2210         * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow
2211         special handling of debug stmts to debug bind stmts.
2212         * ipa-split.c (split_function): Likewise.
2213         * ira.c (combine_and_move_insns): Adjust debug bind insns only.
2214         * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind
2215         debug insns.
2216         * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P.
2217         * regrename.c (build_def_use): Likewise.
2218         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
2219         (pass_cprop_hardreg): Narrow special casing of debug insns to
2220         debug bind insns.
2221         * regstat.c (regstat_init_n_sets_and_refs): Likewise.
2222         * reload1.c (reload): Likewise.
2223         * sese.c (sese_insert_phis_for_liveouts): Narrow special
2224         casing of debug stmts to debug bind stmts.
2225         * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
2226         * ssa-iterators.h (num_imm_uses): Likewise.
2227         * tree-cfg.c (gimple_merge_blocks): Narrow special casing of
2228         debug stmts to debug bind stmts.
2229         * tree-inline.c (tree_function_versioning): Narrow special casing
2230         of debug stmts to debug bind stmts.
2231         * tree-loop-distribution.c (generate_loops_for_partition):
2232         Narrow special casing of debug stmts to debug bind stmts.
2233         * tree-sra.c (analyze_access_subtree): Narrow special casing
2234         of debug stmts to debug bind stmts.
2235         * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug
2236         stmts to debug bind stmts.
2237         * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special
2238         casing of debug stmts to debug bind stmts.
2239         * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
2240         * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special
2241         casing of debug stmts to debug bind stmts.
2242         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
2243         Likewise.
2244         * tree-ssa.c (flush_pending_stmts): Narrow special casing of
2245         debug stmts to debug bind stmts.
2246         (gimple_replace_ssa_lhs): Likewise.
2247         (insert_debug_temp_for_var_def): Likewise.
2248         (insert_debug_temps_for_defs): Likewise.
2249         (reset_debug_uses): Likewise.
2250         * tree-ssanames.c (release_ssa_name_fn): Likewise.
2251         * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise.
2252         (adjust_debug_stmts): Likewise.
2253         (adjust_phi_and_debug_stmts): Likewise.
2254         (vect_do_peeling): Likewise.
2255         * tree-vect-loop.c (vect_transform_loop): Likewise.
2256         * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P.
2257         * var-tracking.c (adjust_mems): Narrow special casing of debug
2258         insns to debug bind insns.
2259         (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise.
2260         (compute_bb_dataflow, vt_find_locations): Likewise.
2261         (vt_expand_loc, emit_notes_for_changes): Likewise.
2262         (vt_init_cfa_base): Likewise.
2263         (vt_emit_notes): Likewise.
2264         (vt_initialize): Likewise.
2265         (vt_finalize): Likewise.
2266
2267         * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder.
2268         (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder.
2269         (next_nonnote_nondebug_insn_bb): New.
2270         (prev_nonnote_nondebug_insn_bb): New.
2271         (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove.
2272         * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls.
2273         (prev_nonnote_nondebug_insn_bb): Declare.
2274         (next_nonnote_nondebug_insn_bb): Declare.
2275         * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns.
2276         * cfgrtl.c (get_last_bb_insn): Likewise.
2277         * lra.c (push_insns): Likewise.
2278
2279 2017-12-11  David Malcolm  <dmalcolm@redhat.com>
2280
2281         PR c/82050
2282         * selftest-run-tests.c (selftest::run_tests): Move start/finish code
2283         to...
2284         * selftest.c (selftest::test_runner::test_runner): New ctor.
2285         (selftest::test_runner::~test_runner): New dtor.
2286         * selftest.h (class selftest::test_runner): New class.
2287
2288 2017-12-11  Carl Love  <cel@us.ibm.com>
2289
2290         * config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
2291         vec_extract_fp32_from_shortl]): Add #defines.
2292         * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
2293         * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
2294         ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
2295         ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
2296         ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
2297         ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
2298         * doc/extend.texi: Add documentation for the added builtins.
2299
2300 2017-12-11  Alexandre Oliva  <aoliva@redhat.com>
2301
2302         PR rtl-optimization/80693
2303         PR rtl-optimization/81019
2304         PR rtl-optimization/81020
2305         * combine.c (distribute_notes): Reset any REG_UNUSED REGs that
2306         are not mentioned in i3.  Place the REG_UNUSED note on i2,
2307         possibly modified to REG_DEAD, if it did not originate in i3.
2308
2309 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
2310
2311         * recog.c (store_data_bypass_p_1): New function.
2312         (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER.  Use
2313         store_data_bypass_p_1 to avoid code duplication.  Formatting fixes.
2314
2315 2017-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
2316
2317         PR rtl-optimization/83361
2318         * ifcvt.c (if_convert): Call fixup_partitions.
2319
2320 2017-12-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
2321
2322         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
2323         early folding of splat_u{8,16,32}.
2324
2325 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
2326
2327         * config/aarch64/aarch64.c (aarch64_print_operand): Don't start
2328         output_operand_lossage first argument with capital letter.
2329         (aarch64_override_options): Don't start error and sorry first argument
2330         with capital letter.
2331
2332 2017-12-11  Andi Kleen  <ak@linux.intel.com>
2333
2334         PR gcov-profile/83355
2335         * auto-profile.c (string_table::get_index_by_decl): Don't
2336         recurse when abstract origin points to itself.
2337
2338 2017-12-11  Bin Cheng  <bin.cheng@arm.com>
2339
2340         PR tree-optimization/83320
2341         * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete.
2342         (prune_datarefs_not_in_loop): Ditto.
2343
2344 2017-12-10  Gerald Pfeifer  <gerald@pfeifer.com>
2345
2346         * doc/install.texi (Specific): Tweak link to mkssoftware.com.
2347
2348 2017-12-10  Jakub Jelinek  <jakub@redhat.com>
2349
2350         PR tree-optimization/83337
2351         * gimple-loop-interchange.cc (compute_access_stride): Handle
2352         bitfield DRs properly.
2353
2354 2017-12-09  Jakub Jelinek  <jakub@redhat.com>
2355
2356         PR tree-optimization/83338
2357         * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR
2358         vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from
2359         vector of unsigned integers to vector of signed integers.
2360
2361 2017-12-08  Vladimir Makarov  <vmakarov@redhat.com>
2362
2363         PR rtl-optimization/83317
2364         * lra-constraints.c (process_address_1): Add insn code check.
2365
2366 2017-12-08  Michael Matz  <matz@suse.de>
2367
2368         Fix PR tree-optimization/83323
2369         * gimple-loop-jam (unroll_jam_possible_p): Correct test for
2370         head-controlled loops and loop BBs.
2371         * common.opt (funroll-and-jam): Remove, instead ...
2372         (floop-unroll-and-jam): ... reuse this option.
2373         * opts.c (default_options_table): Use OPT_floop_unroll_and_jam.
2374         * doc/invoke.texi (-funroll-and-jam): Move docu to ...
2375         (-floop-unroll-and-jam): ... this option.
2376
2377 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
2378
2379         * ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix
2380         a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent.
2381         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise.
2382
2383 2017-12-08  Richard Biener  <rguenther@suse.de>
2384
2385         PR middle-end/81782
2386         * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
2387         handle accesses outside of zero-sized vars.
2388
2389 2017-12-08  Martin Jambor  <mjambor@suse.cz>
2390
2391         PR tree-optimization/83141
2392         * tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also
2393         test for MEM_REFs implicitely changing types with padding.  Remove
2394         inline keyword.
2395         (build_accesses_from_assign): Added contains_vce_or_bfcref_p checks.
2396
2397 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
2398
2399         * config/arc/arc.c (arc_attribute_table): Add exclusions to
2400         the comment.
2401         * config/avr/avr.c (avr_attribute_table): Likewise.
2402         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
2403         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
2404         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
2405         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
2406         of struct attribute_spec.
2407         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2408
2409 2017-12-08  Ulrich Weigand  <uweigand@de.ibm.com>
2410
2411         PR target/82960
2412         * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true.
2413
2414 2017-12-08  Jan Hubicka  <hubicka@ucw.cz>
2415
2416         PR middle-end/83609
2417         * profile-count.c (profile_count::from_gcov_type): Move from
2418         profile-count.h; handle overflow.
2419         * profile-count.h (profile_count::from_gcov_type): Move offline.
2420
2421 2017-12-08  Segher Boessenkool  <segher@kernel.crashing.org>
2422
2423         PR rtl-optimization/83304
2424         * combine.c (move_deaths): If we do not know where a register died,
2425         search for it.
2426
2427 2017-12-08  Richard Biener  <rguenther@suse.de>
2428
2429         * gimple-loop-interchange.cc (tree_loop_interchange::interchange):
2430         Provide -fopt-info-loop feedback when we interchange in a nest.
2431
2432 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
2433
2434         * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names
2435         for armv6 ARM CPU IDs.
2436
2437 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
2438
2439         * common/config/arm/arm-common.c: Include <algorithm>.
2440         (INCLUDE_VECTOR): Define.
2441         (compare_opt_names): New function.
2442         (arm_rewrite_selected_arch): Only strip out extensions that can be
2443         expressed through -mfpu.  Sort the remaining extensions
2444         alphabetically.
2445
2446 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
2447
2448         * config/arm/arm.h (arm_asm_auto_mfpu): Declare.
2449         (ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu.
2450         (ASM_CPU_SPEC): Use it if -mfpu is set to auto.
2451         * common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function.
2452
2453 2017-06-08  Tristan Gingold  <gindold@adacore.com>
2454
2455         PR ada/81470
2456         * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
2457         .cfi_personality or .cfi_lsda if the eh data format is dwarf2.
2458
2459 2017-12-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2460
2461         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member
2462         of struct attribute_spec.
2463
2464 2017-12-08  Julia Koval  <julia.koval@intel.com>
2465
2466         * config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32,
2467         _mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics.
2468         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32,
2469         _mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32,
2470         _mm_dpwssds_epi32, _mm_mask_dpwssds_epi32,
2471         _mm_maskz_dpwssds_epi32): Ditto.
2472
2473 2017-12-08  Richard Biener  <rguenther@suse.de>
2474
2475         PR tree-optimization/81303
2476         * tree-vect-stmts.c (vect_is_simple_cond): For invariant
2477         conditions try to create a comparison vector type matching
2478         the data vector type.
2479         (vectorizable_condition): Adjust.
2480         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
2481         Leave invariant conditions alone in case we can vectorize those.
2482
2483 2017-12-08  Julia Koval  <julia.koval@intel.com>
2484
2485         * config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32,
2486         _mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics.
2487         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32,
2488         _mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32,
2489         _mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto.
2490
2491 2017-12-08  Julia Koval  <julia.koval@intel.com>
2492
2493         * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32,
2494         _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New.
2495         * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32,
2496         _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32,
2497         _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32,
2498         _mm_maskz_dpbusds_epi32): New intrinsics.
2499
2500 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
2501
2502         * config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory
2503         operand.
2504         (ld<bh>io_signed): Likewise.
2505         (st<bhw>io): Likewise.
2506         * config/nios2/predicates.md (ldstio_memory_operand): Allow
2507         SMALL_INT12 constant integer operand.
2508
2509 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
2510
2511         * config/nios2/nios2.c (nios2_symbolic_constant_allowed):
2512         Rename to...
2513         (nios2_large_constant_allowed): ...this.  Adjust uses.
2514         (nios2_plus_symbolic_constant_p): Rename to...
2515         (nios2_plus_large_constant_p): ...this.  Adjust uses.
2516         (nios2_legitimate_address_p): Correct CONST_INT handling.
2517         (nios2_symbolic_memory_operand_p): Rename to...
2518         (nios2_large_constant_memory_operand_p): ...this.  Adjust uses.
2519         (nios2_large_constant_p): Check for large constant integers too.
2520         (nios2_split_large_constant): Handle constant integers.
2521         (nios2_split_symbolic_memory_operand): Rename to...
2522         (nios2_split_large_constant_memory_operand): ...this.  Adjust uses.
2523         (nios2_legitimize_constant_address): Handle constant integers.
2524         (r0rel_constant_p): Handle small constant integers.
2525         (nios2_print_operand_address): Handle r0-relative integer addresses.
2526         * config/nios2/nios2-protos.h: Adjust for renamed functions.
2527         * config/nios2/nios2.md: Adjust for renamed functions.
2528
2529 2017-12-07  Andrew Waterman  <andrew@sifive.com>
2530
2531         * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define.
2532         (TARGET_HAVE_SRODATA_SECTION): New define.
2533         (riscv_select_section): New function.
2534
2535 2017-12-08  Joseph Myers  <joseph@codesourcery.com>
2536             Alexander Monakov  <amonakov@ispras.ru>
2537             Jakub Jelinek  <jakub@redhat.com>
2538
2539         PR target/81906
2540         * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
2541
2542 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2543
2544         * config/aarch64/aarch64.c (aarch64_print_address_internal): Return
2545         a bool success value.  Don't call output_operand_lossage here.
2546         (aarch64_print_ldpstp_address): Return a bool success value.
2547         (aarch64_print_operand_address): Call output_addr_const if
2548         aarch64_print_address_internal fails.
2549         (aarch64_print_operand): Don't assert that the mode is 16 bytes for
2550         'y'; call output_operand_lossage instead.  Call output_operand_lossage
2551         if aarch64_print_ldpstp_address fails.
2552
2553 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2554
2555         * tree-vector-builder.h
2556         (tree_vector_builder::binary_encoded_nelts): Declare.
2557         * tree-vector-builder.c
2558         (tree_vector_builder::binary_encoded_nelts): New function.
2559         * fold-const.c (negate_expr_p): Likewise.
2560         (operand_equal_p, fold_checksum_tree): Likewise.
2561         * tree-loop-distribution.c (const_with_all_bytes_same): Likewise.
2562         * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop)
2563         (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise.
2564         (uniform_vector_p): Likewise.
2565         * varasm.c (const_hash_1, compare_constant): Likewise.
2566         * tree-ssa-ccp.c: Include tree-vector-builder.h.
2567         (valid_lattice_transition): Operate directly on the VECTOR_CST
2568         encoding.
2569         * ipa-icf.c: Include tree-vector-builder.h.
2570         (sem_variable::equals): Operate directly on the VECTOR_CST encoding.
2571         * print-tree.c (print_node): Print encoding of VECTOR_CSTs.
2572
2573 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2574
2575         * tree.c (build_vector): Delete.
2576         * tree.h (build_vector): Make static and move into the self-testing
2577         block.
2578
2579 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2580
2581         * vector-builder.h (vector_builder::derived): New const overload.
2582         (vector_builder::elt): New function.
2583         * tree-vector-builder.h (tree_vector_builder::type): New function.
2584         (tree_vector_builder::apply_step): Declare.
2585         * tree-vector-builder.c (tree_vector_builder::apply_step): New
2586         function.
2587         * gimple-fold.h (tree_vector_builder): Declare.
2588         (gimple_build_vector): Take a tree_vector_builder instead of a
2589         type and vector of elements.
2590         * gimple-fold.c (gimple_build_vector): Likewise.
2591         * tree-vect-loop.c (get_initial_def_for_reduction): Update call
2592         accordingly.
2593         (get_initial_defs_for_reduction): Likewise.
2594         (vectorizable_induction): Likewise.
2595
2596 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2597
2598         * tree-vector-builder.h
2599         (tree_vector_builder::new_binary_operation): Declare.
2600         * tree-vector-builder.c
2601         (tree_vector_builder::new_binary_operation): New function.
2602         * fold-const.c (fold_relational_const): Use it.
2603         (const_binop): Likewise.  Check that both input vectors have
2604         the same number of elements, thus excluding things like WIDEN_SUM.
2605         Check whether it is possible to operate directly on the encodings
2606         of stepped inputs.
2607
2608 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2609
2610         * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and
2611         new_unary_operation, operating only on the encoded elements.
2612         (const_unop): Likewise.
2613         (exact_inverse): Likewise.
2614         (distributes_over_addition_p): New function.
2615         (const_binop): Use tree_vector_builder and new_unary_operation
2616         for combinations of VECTOR_CST and INTEGER_CST.  Operate only
2617         on the encoded elements unless the encoding is strided and the
2618         operation does not distribute over addition.
2619         (fold_convert_const):  Use tree_vector_builder and
2620         new_unary_operation.  Operate only on the encoded elements
2621         for truncating integer conversions, or for non-stepped encodings.
2622
2623 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2624
2625         * config/sparc/sparc.c: Include tree-vector-builder.h.
2626         (sparc_fold_builtin): Use tree_vector_builder instead of build_vector.
2627         * expmed.c: Include tree-vector-builder.h.
2628         (make_tree): Use tree_vector_builder instead of build_vector.
2629         * fold-const.c: Include tree-vector-builder.h.
2630         (const_binop): Use tree_vector_builder instead of build_vector.
2631         (const_unop): Likewise.
2632         (native_interpret_vector): Likewise.
2633         (fold_vec_perm): Likewise.
2634         (fold_ternary_loc): Likewise.
2635         * gimple-fold.c: Include tree-vector-builder.h.
2636         (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead
2637         of build_vector.
2638         * tree-ssa-forwprop.c: Include tree-vector-builder.h.
2639         (simplify_vector_constructor): Use tree_vector_builder instead
2640         of build_vector.
2641         * tree-vect-generic.c: Include tree-vector-builder.h.
2642         (add_rshift): Use tree_vector_builder instead of build_vector.
2643         (expand_vector_divmod): Likewise.
2644         (optimize_vector_constructor): Likewise.
2645         * tree-vect-loop.c: Include tree-vector-builder.h.
2646         (vect_create_epilog_for_reduction): Use tree_vector_builder instead
2647         of build_vector.  Explicitly use a stepped encoding for
2648         { 1, 2, 3, ... }.
2649         * tree-vect-slp.c: Include tree-vector-builder.h.
2650         (vect_get_constant_vectors): Use tree_vector_builder instead
2651         of build_vector.
2652         (vect_transform_slp_perm_load): Likewise.
2653         (vect_schedule_slp_instance): Likewise.
2654         * tree-vect-stmts.c: Include tree-vector-builder.h.
2655         (vectorizable_bswap): Use tree_vector_builder instead of build_vector.
2656         (vect_gen_perm_mask_any): Likewise.
2657         (vectorizable_call): Likewise.  Explicitly use a stepped encoding.
2658         * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead
2659         of build_vector.
2660         (build_vector_from_val): Likewise.  Explicitly use a duplicate
2661         encoding.
2662
2663 2017-12-07  Richard Sandiford  <richard.sandiford@arm.com>
2664
2665         * doc/generic.texi (VECTOR_CST): Describe new representation of
2666         vector constants.
2667         * vector-builder.h: New file.
2668         * tree-vector-builder.h: Likewise.
2669         * tree-vector-builder.c: Likewise.
2670         * Makefile.in (OBJS): Add tree-vector-builder.o.
2671         * tree.def (VECTOR_CST): Update comment to refer to generic.texi.
2672         * tree-core.h (tree_base): Add a vector_cst field to the u union.
2673         (tree_vector): Change the number of elements to
2674         vector_cst_encoded_nelts.
2675         * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS.
2676         (VECTOR_CST_ELTS): Delete.
2677         (VECTOR_CST_ELT): Redefine using vector_cst_elt.
2678         (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros.
2679         (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise.
2680         (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise.
2681         (VECTOR_CST_ENCODED_ELT): Likewise.
2682         (vector_cst_encoded_nelts): New function.
2683         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
2684         VECTOR_CST_NELTS_PER_PATTERN as arguments.
2685         (vector_cst_int_elt, vector_cst_elt): Declare.
2686         * tree.c: Include tree-vector-builder.h.
2687         (tree_code_size): Abort if passed VECTOR_CST.
2688         (tree_size): Update for new VECTOR_CST layout.
2689         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
2690         VECTOR_CST_NELTS_PER_PATTERN as arguments.
2691         (build_vector): Use tree_vector_builder.
2692         (vector_cst_int_elt, vector_cst_elt): New functions.
2693         (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the
2694         encoded elements and then create the vector in the canonical form.
2695         (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill)
2696         (check_vector_cst_stepped, test_vector_cst_patterns): New functions.
2697         (tree_c_tests): Call test_vector_cst_patterns.
2698         * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new
2699         VECTOR_CST fields.
2700         (hash_tree): Likewise.
2701         * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise.
2702         (streamer_write_tree_header): Likewise.
2703         * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise.
2704         (streamer_alloc_tree): Likewise.  Update call to make_vector.
2705         * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS.
2706
2707 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
2708
2709         * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT)
2710         (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names
2711         * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise.
2712
2713 2017-12-07  Bin Cheng  <bin.cheng@arm.com>
2714             Richard Biener  <rguenther@suse.de>
2715
2716         PR tree-optimization/81303
2717         * Makefile.in (gimple-loop-interchange.o): New object file.
2718         * common.opt (floop-interchange): Reuse the option from graphite.
2719         * doc/invoke.texi (-floop-interchange): Ditto.  New document for
2720         -floop-interchange and mention it for -O3.
2721         * opts.c (default_options_table): Enable -floop-interchange at -O3.
2722         * gimple-loop-interchange.cc: New file.
2723         * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter.
2724         (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter.
2725         * passes.def (pass_linterchange): New pass.
2726         * timevar.def (TV_LINTERCHANGE): New time var.
2727         * tree-pass.h (make_pass_linterchange): New declaration.
2728         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external
2729         interchange.  Record IV before/after increment in new parameters.
2730         * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration.
2731         * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction
2732         path check into...
2733         (check_reduction_path): ...New function here.
2734         * tree-vectorizer.h (check_reduction_path): New declaration.
2735
2736 2017-12-07  Vladimir Makarov  <vmakarov@redhat.com>
2737
2738         PR target/83252
2739         PR rtl-optimization/80818
2740         * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER
2741         always early clobbered.
2742         * lra-lives.c (process_bb_lives): Check input hard regs for early
2743         clobbered non-operand hard reg.
2744
2745 2017-12-07  Jakub Jelinek  <jakub@redhat.com>
2746
2747         PR middle-end/83164
2748         * tree-cfg.c (verify_gimple_assign_binary): Don't require
2749         types_compatible_p, just that TYPE_MODE is the same.
2750
2751 2017-12-07  Martin Sebor  <msebor@redhat.com>
2752
2753         PR c/81544
2754         * attribs.c (empty_attribute_table): Initialize new member of
2755         struct attribute_spec.
2756         (decl_attributes): Add argument.  Handle mutually exclusive
2757         combinations of attributes.
2758         (selftests::test_attribute_exclusions): New function.
2759         (selftests::attribute_c_tests): Ditto.
2760         * attribs.h (decl_attributes): Add default argument.
2761         * selftest.h (attribute_c_tests): Declare.
2762         * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests.
2763         * tree-core.h (attribute_spec::exclusions, exclude): New type and
2764         member.
2765         * doc/extend.texi (Common Function Attributes): Update const and pure.
2766         * config/alpha/alpha.c (vms_attribute_table): Initialize new member
2767         of struct attribute_spec.
2768         * config/arc/arc.c (arc_attribute_table): Same.
2769         * config/arm/arm.c (arm_attribute_table): Same.
2770         * config/avr/avr.c ( avr_attribute_table): Same.
2771         * config/bfin/bfin.c (bfin_attribute_table): Same.
2772         * config/cr16/cr16.c (cr16_attribute_table): Same.
2773         * config/epiphany/epiphany.c (epiphany_attribute_table): Same.
2774         * config/h8300/h8300.c (h8300_attribute_table): Same.
2775         * config/i386/i386.c (ix86_attribute_table): Same.
2776         * config/ia64/ia64.c (ia64_attribute_table): Same.
2777         * config/m32c/m32c.c (m32c_attribute_table): Same.
2778         * config/m32r/m32r.c (m32r_attribute_table): Same.
2779         * config/m68k/m68k.c (m68k_attribute_table): Same.
2780         * config/mcore/mcore.c (mcore_attribute_table): Same.
2781         * config/microblaze/microblaze.c (microblaze_attribute_table): Same.
2782         * config/mips/mips.c (mips_attribute_table): Same.
2783         * config/msp430/msp430.c (msp430_attribute_table): Same.
2784         * config/nds32/nds32.c (nds32_attribute_table): Same.
2785         * config/nvptx/nvptx.c (nvptx_attribute_table): Same.
2786         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same.
2787         * config/rl78/rl78.c (rl78__attribute_table): Same.
2788         * config/rs6000/rs6000.c (rs6000_attribute_table): Same.
2789         * onfig/rx/rx.c (rx_attribute_table): Same.
2790         * config/s390/s390.c (s390_handle_vectorbool_attribute): Same.
2791         * config/sh/sh.c (sh_attribute_table): Same.
2792         * config/sparc/sparc.c (sparc_attribute_table): Same.
2793         * config/spu/spu.c (spu_attribute_table): Same.
2794         * config/stormy16/stormy16.c (xstormy16_attribute_table): Same.
2795         * config/v850/v850.c (v850_attribute_table): Same.
2796         * config/visium/visium.c (visium_attribute_table): Same.
2797
2798 2017-12-07  Tamar Christina  <tamar.christina@arm.com>
2799
2800         PR target/82641
2801         * config/arm/arm.c (INCLUDE_STRING): Define.
2802         (arm_last_printed_arch_string, arm_last_printed_fpu_string): New.
2803         (arm_declare_function_name): Conservatively emit .arch, .arch_extensions
2804         and .fpu.
2805
2806 2017-12-07  Michael Matz  <matz@suse.de>
2807
2808         Add unroll and jam pass
2809
2810         * gimple-loop-jam.c: New file.
2811         * Makefile.in (OBJS): Add gimple-loop-jam.o.
2812         * common.opt (funroll-and-jam): New option.
2813         * opts.c (default_options_table): Add unroll-and-jam at -O3.
2814         * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param.
2815         (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto.
2816         * passes.def: Add pass_loop_jam.
2817         * timevar.def (TV_LOOP_JAM): Add.
2818         * tree-pass.h (make_pass_loop_jam): Declare.
2819         * cfgloop.c (flow_loop_tree_node_add): Add AT argument.
2820         * cfgloop.h (flow_loop_tree_node_add): Adjust declaration.
2821         * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call
2822         to flow_loop_tree_node_add.
2823         (duplicate_subloops, copy_loops_to): Append to sibling list.
2824         * cfgloopmanip.h: (duplicate_loop): Adjust declaration.
2825         * doc/invoke.texi (-funroll-and-jam): Document new option.
2826         (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params.
2827
2828 2017-12-07  Richard Biener  <rguenther@suse.de>
2829
2830         PR tree-optimization/83296
2831         PR tree-optimization/67769
2832         * tree-ssa-phiopt.c (conditional_replacement): Do not reset
2833         flow sensitive info in an unrelated BB.
2834         (value_replacement): Use reset_flow_sensitive_info.
2835         (minmax_replacement): Reset flow sensitive info on the def
2836         we move.  Do not reset flow sensitive info in the whole BB
2837         we move the stmt to.
2838         (abs_replacement): Likewise.
2839
2840 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
2841
2842         PR target/43871
2843         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
2844         rs6000_cpu to the given -mcpu=, or to the default processor.
2845
2846 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
2847
2848         * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete.
2849         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune
2850         instead of rs6000_cpu_attr.
2851         (rs6000_adjust_cost): Ditto.
2852         (is_microcoded_insn): Ditto.
2853         (rs6000_adjust_priority): Ditto.
2854         (rs6000_issue_rate): Ditto.
2855         (rs6000_use_sched_lookahead): Ditto.
2856         (rs6000_use_sched_lookahead_guard): Ditto.
2857         (rs6000_sched_reorder): Ditto.
2858         (force_new_group): Ditto.
2859         * config/rs6000/rs6000.md (cpu attribute): Ditto.
2860         (group_ending_nop): Ditto.
2861
2862 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
2863
2864         * config/rs6000/rs6000.opt (rs6000_tune): New variable.
2865         * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set
2866         rs6000_tune.  Use rs6000_tune instead of rs6000_cpu where appropriate.
2867         (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where
2868         appropriate.
2869         (rs6000_reassociation_width): Ditto.
2870         (rs6000_emit_epilogue): Ditto.
2871         (rs6000_adjust_cost): Ditto.
2872         (is_microcoded_insn): Ditto.
2873         (is_cracked_insn): Ditto.
2874         (rs6000_adjust_priority): Ditto.
2875         (rs6000_sched_reorder): Ditto.
2876         (rs6000_sched_reorder2): Ditto.
2877         (insn_must_be_first_in_group): Ditto.
2878         (insn_must_be_last_in_group): Ditto.
2879         (rs6000_register_move_cost): Ditto.
2880         * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of
2881         rs6000_cpu.
2882
2883 2017-12-07  Julia Koval  <julia.koval@intel.com>
2884
2885         * config.gcc: Add vaesintrin.h.
2886         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
2887         New type.
2888         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
2889         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
2890         New builtins.
2891         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
2892         * config/i386/immintrin.h: Include vaesintrin.h.
2893         * config/i386/sse.md (vaesdec_<mode>): New pattern.
2894         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
2895         _mm_aesdec_epi128): New intrinsics.
2896
2897 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
2898
2899         * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o.
2900         * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to
2901         c-family/c-spellcheck.cc.
2902         (best_macro_match::best_macro_match): Likewise.
2903         * spellcheck-tree.h
2904         (struct edit_distance_traits<cpp_hashnode *>): Move to
2905         c-family/c-spellcheck.h.
2906         (class best_macro_match): Likewise.
2907
2908 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
2909
2910         PR tree-optimization/83293
2911         * gimple-ssa-strength-reduction.c (insert_initializers): Use
2912         GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that
2913         might insert into empty bb.
2914
2915         PR sanitizer/81281
2916         * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate
2917         simplify for plus with :c added, and pointer_plus without that.
2918         ((T)P - (T)(P + A) -> -(T) A): Likewise.  If type is integral
2919         with undefined overflow and the conversion is not widening,
2920         perform negation in utype and only convert to type afterwards.
2921         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate
2922         simplify for plus with :c added, and pointer_plus without that.
2923         If type is integral with undefined overflow and the conversion is
2924         not widening, perform minus in utype and only convert to type
2925         afterwards.  Move the last pointer_diff_expr simplify into the
2926         two outermost ifs.
2927
2928 2017-12-06  Martin Sebor  <msebor@redhat.com>
2929
2930         PR tree-optimization/82646
2931         * builtins.c (maybe_emit_chk_warning): Use size as the bound for
2932         strncpy, not maxlen.
2933
2934 2017-12-06  Martin Sebor  <msebor@redhat.com>
2935
2936         * doc/invoke.texi (-Wstringop-truncation): Mention attribute
2937         nonstring.
2938
2939         PR tree-optimization/83075
2940         * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming
2941         strncat/strncpy don't change length of source string.
2942
2943 2017-12-06  Eric Botcazou  <ebotcazou@adacore.com>
2944
2945         Revert
2946         2017-11-29  Martin Aberg  <maberg@gaisler.com>
2947
2948         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
2949         to prevent b2bst errata sequence.
2950         (sqrtdf2_fix): Likewise.
2951
2952 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
2953
2954         PR tree-optimization/81945
2955         * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn.
2956         * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved
2957         to dest_cfun has orig_loop_num set, either remap it to the new
2958         loop number if the loop got moved too, or clear it.
2959
2960 2017-12-05  Steve Ellcey  <sellcey@cavium.com>
2961
2962         * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap
2963         to reservation.
2964         (thunderx2t99_nothing): New insn reservation.
2965         (thunderx2t99_mrs): New insn reservation.
2966         (thunderx2t99_multiple): New insn reservation.
2967         (thunderx2t99_alu_basi): Add bfx to reservation.
2968         (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation.
2969
2970 2017-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2971
2972         PR target/82248
2973         * config/arm/arm.md (probe_stack) : Use the 'o' constraint.
2974
2975 2017-12-05  Bin Cheng  <bin.cheng@arm.com>
2976
2977         * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from
2978         tree-ssa-pre.c::remove_dead_inserted_code.
2979         * tree-ssa-dce.h: New file.
2980         * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file.
2981         (remove_dead_inserted_code): Move and rename to function
2982         tree-ssa-dce.c::simple_dce_from_worklist.
2983         (pass_pre::execute): Update use.
2984
2985 2017-12-05  Richard Biener  <rguenther@suse.de>
2986
2987         PR tree-optimization/83277
2988         * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
2989         to code-gen liveout vars.
2990
2991 2017-12-05  Richard Sandiford  <richard.sandiford@linaro.org>
2992
2993         * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal)
2994         (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P.
2995         (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to
2996         split condition.
2997
2998 2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
2999
3000         * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
3001         function.
3002         (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
3003         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
3004         ASAN is enabled.
3005
3006 2017-12-05  Richard Biener   <rguenther@suse.de>
3007
3008         * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add.
3009         * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP.
3010         (pass_data_cse_sincos): Use TV_TREE_SINCOS.
3011         (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL.
3012
3013 2017-12-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3014
3015         * dbxout.c (dbxout_block): Grow buf to 30 bytes.
3016
3017 2017-12-05  Martin Liska  <mliska@suse.cz>
3018             Jakub Jelinek  <jakub@redhat.com>
3019
3020         * doc/invoke.texi: Document the options.
3021         * flag-types.h (enum sanitize_code): Add
3022         SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
3023         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling
3024         of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
3025         * opts.c: Define new sanitizer options.
3026         * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise.
3027         (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise.
3028
3029 2017-12-05  Julia Koval  <julia.koval@intel.com>
3030
3031         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET,
3032         OPTION_MASK_ISA_AVX512VNNI_UNSET): New.
3033         (ix86_handle_option): Handle -mavx512vnni.
3034         * config/i386/cpuid.h (bit_AVX512VNNI): New bit.
3035         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
3036         * config/i386/i386-c (__AVX512VNNI__): New.
3037         * config/i386/i386.c (ix86_target_string): Handle new option.
3038         (ix86_valid_target_attribute_inner_p): Handle new option.
3039         * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New.
3040         * config/i386/i386.opt (mavx512vnni): New option.
3041
3042 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
3043
3044         PR target/81616
3045         * athlon.md: Disable for generic.
3046         * haswell.md: Enable for generic.
3047         * i386.c (ix86_sched_init_global): Add core hooks for generic.
3048         * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic
3049         to 4.
3050         (ix86_adjust_cost): Move generic to haswell path.
3051
3052 2017-12-04  Eric Botcazou  <ebotcazou@adacore.com>
3053
3054         * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
3055         instead of MEM_P in a couple more places.  Fix formatting issues.
3056
3057 2017-12-04  Jim Wilson  <jimw@sifive.com>
3058
3059         * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST
3060         instead of GP_REG_LAST-1.
3061         (riscv_adjust_libcall_cfi_prologue): Likewise.
3062         (riscv_adjust_libcall_cri_epilogue): Likewise.
3063         * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in
3064         comment.
3065
3066 2017-12-04  Luis Machado  <luis.machado@linaro.org>
3067
3068         * ipa-pure-const.c (check_decl): Add missing newline.
3069         (state_from_flags): Likewise.
3070
3071 2017-12-04  Jeff Law  <law@redhat.com>
3072
3073         PR tree-optimizatin/78496
3074         * gimple-ssa-evrp-analyze.h
3075         (evrp_range_analyzer::get_vr_values): Simplify.
3076         * gimple-ssa-evrp-analyze.c: Corresponding changes.
3077         * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h
3078         and gimple-ssa-evrp-analyze.h.
3079         (dom_opt_dom_walker class): Add evrp_range_analyzer member.
3080         (simplify_stmt_for_jump_threading): Copy a blob of code from
3081         tree-vrp.c to use ranges to simplify statements.
3082         (dom_opt_dom_walker::before_dom_children): Call
3083         evrp_range_analyzer::{enter,record_ranges_from_stmt} methods.
3084         (dom_opt_dom_walker::after_dom_children): Similarly for
3085         evrp_range_analyzer::leave.
3086         (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize
3087         conditionals.
3088
3089         * gimple-ssa-evrp-analyze.c
3090         (evrp_range_analyzer::extract_range_from_stmt):  Always use
3091         vr_values::update_value_range so preexisting range info is
3092         medged with new range info, even if the new range is VR_VARYING.
3093
3094 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
3095
3096         * combine.c: Adjust comment.
3097         (use_crosses_set_p): Delete.
3098         (can_combine_p): Use modified_between_p instead of use_crosses_set_p.
3099         (try_combine): Ditto.
3100
3101 2017-12-04  Richard Biener  <rguenther@suse.de>
3102
3103         PR tree-optimization/83255
3104         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for):
3105         Re-add zero-iteration check.
3106
3107 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
3108
3109         PR rtl-optimization/83245
3110         * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
3111         hard registers as earlyclobber, also if not in an asm.
3112
3113 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
3114
3115         PR bootstrap/83265
3116         Revert
3117         2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3118
3119         PR target/43871
3120         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3121         rs6000_cpu based on cpu_index, not tune_index.
3122
3123 2017-12-04  Richard Biener  <rguenther@suse.de>
3124
3125         PR tree-optimization/83238
3126         * graphite-scop-detection.c (scop_detection::merge_sese): Make
3127         code match comment, rejecting invalid SESE regions.
3128
3129 2017-12-03  John David Anglin  <danglin@gcc.gnu.org>
3130
3131         * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
3132         require base operand is a REG_POINTER prior to reload on targets
3133         with non-equivalent space registers.
3134
3135 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
3136
3137         * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
3138         (update_specialized_profile): Fix updating of counts.
3139         (perhaps_add_new_callers): Likewise.
3140
3141 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
3142
3143         PR target/81616
3144         * x86-tune.def: Remove obsolette FIXMEs.
3145         (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic
3146         (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64,
3147         X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH):
3148         Enable for generic.
3149         (X86_TUNE_PAD_RETURNS): Disable for generic.
3150
3151 2017-12-02  Jakub Jelinek  <jakub@redhat.com>
3152
3153         PR tree-optimization/83170
3154         PR tree-optimization/83241
3155         * gimple-ssa-store-merging.c
3156         (imm_store_chain_info::try_coalesce_bswap): Update vuse field from
3157         gimple_vuse (ins_stmt) in case it has changed.
3158         (imm_store_chain_info::output_merged_store): Likewise.
3159
3160         * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle
3161         POINTER_DIFF_EXPR.
3162
3163         PR c++/81212
3164         * tree-cfg.c (pass_warn_function_return::execute): Handle
3165         __builtin_ubsan_handle_missing_return like __builtin_unreachable
3166         with BUILTINS_LOCATION.
3167
3168         PR target/78643
3169         PR target/80583
3170         * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
3171         is BLKmode for vector field with vector raw mode, use TYPE_MODE
3172         instead of DECL_MODE.
3173
3174         * config/i386/i386-protos.h (standard_sse_constant_opcode): Change
3175         last argument to rtx pointer.
3176         * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument
3177         with OPERANDS.  For AVX+ 128-bit VEX encoded instructions over 256-bit
3178         or 512-bit.  If setting EXT_REX_SSE_REG_P, use EVEX encoded insn
3179         depending on the chosen ISAs.
3180         * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx,
3181         *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal,
3182         *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode
3183         callers.
3184         * config/i386/sse.md (mov<mode>_internal): Likewise.
3185         * config/i386/mmx.md (*mov<mode>_internal): Likewise.
3186
3187 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3188
3189         * doc/invoke.texi (-dp): Say that instruction cost is printed as well.
3190
3191 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3192
3193         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two
3194         parameters from prototype.
3195         * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two
3196         parameters.  Don't print a comment.
3197         (emit_fusion_gpr_load): Adjust.
3198         (emit_fusion_load_store): Adjust.
3199         * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust.
3200         * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion"
3201         comment on the second line.
3202
3203 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3204
3205         PR target/43871
3206         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3207         rs6000_cpu based on cpu_index, not tune_index.
3208
3209 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
3210
3211         * final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
3212         which_alternative instead of which_alternative + 1.
3213         (output_asm_insn): Print an extra tab if the template is short.
3214
3215 2017-12-01  Jim Wilson  <jimw@sifive.com>
3216
3217         * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
3218         comment.
3219         * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
3220         * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
3221         reference.
3222         * doc/tm.texi: Regenerate.
3223
3224 2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
3225
3226         PR target/81959
3227         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
3228         whether we can allocate pseudos before trying to fix an address.
3229         * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
3230         memory address is indexed or indirect.
3231         (floatuns_<mode>si2_hw2): Likewise.
3232
3233 2017-12-01  Jason Merrill  <jason@redhat.com>
3234
3235         * Makefile.in (TAGS): Add c-family/*.cc.
3236
3237 2017-12-01  Wilco Dijkstra  <wdijkstr@arm.com>
3238
3239         * config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
3240         (call_value_insn): Likewise.
3241         (sibcall_insn): Likewise.
3242         (sibcall_value_insn): Likewise.
3243         (movsi_aarch64): Likewise.
3244         (movdi_aarch64): Likewise.
3245         (add_losym_): Likewise.
3246         (ldr_got_small_): Likewise.
3247         (ldr_got_small_sidi): Likewise.
3248         (ldr_got_small_28k_): Likewise.
3249         (ldr_got_small_28k_sidi): Likewise.
3250         * config/aarch64/aarch64.c (aarch64_print_address_internal):
3251         Move output_addr_const to symbolic case. Add error check.
3252
3253 2017-12-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3254
3255         * config/s390/predicates.md (plus16_Q_operand): New predicate.
3256         * config/s390/s390.md: Disable MVC merging peephole if it would
3257         disable operand forwarding.
3258         (new peephole2): Split MVCs if it would turn them into up to 2
3259         forwardable MVCs.
3260
3261 2017-12-01  Richard Biener  <rguenther@suse.de>
3262
3263         PR tree-optimization/83232
3264         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
3265         detection of same access. Instead of breaking the group here
3266         do not consider the duplicate.  Add comment explaining real fix.
3267
3268 2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
3269
3270         * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo.
3271
3272 2017-12-01  Sudakshina Das  <sudi.das@arm.com>
3273
3274         * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
3275
3276 2017-12-01  Jakub Jelinek  <jakub@redhat.com>
3277
3278         * function.h (struct function): Remove cilk_frame_decl,
3279         is_cilk_function and calls_cilk_spawn fields.
3280         * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk
3281         field.
3282         * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear
3283         cilk_elemental field.
3284         * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field.
3285         * target.def: Adjust comment.
3286         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3287         Don't test cilk_elemental.
3288
3289         PR tree-optimization/83233
3290         * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use
3291         bswap_stat name for the struct.
3292
3293         PR c/79153
3294         * tree.h (SWITCH_BREAK_LABEL_P): Define.
3295         * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND
3296         starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with
3297         SWITCH_BREAK_LABEL_P set on the label.
3298         (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label
3299         added for default case if it was missing and not all cases covered.
3300         Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if
3301         switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P
3302         set on the label.
3303         * tree-chrec.c (evolution_function_is_univariate_p): Add return true;
3304         to avoid -Wimplicit-fallthrough warning.
3305         * config/i386/i386.c (ix86_expand_special_args_builtin): Add
3306         FALLTHRU comment to avoid -Wimplicit-fallthrough warning.
3307
3308         PR tree-optimization/83221
3309         * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank
3310         down by 16.
3311         (init_reassoc): Formatting fix.
3312
3313         PR sanitizer/81275
3314         * tree-cfg.c (group_case_labels_stmt): Don't optimize away
3315         C++ FE implicitly added __builtin_unreachable () until -Wreturn-type
3316         is diagnosed.
3317
3318         PR sanitizer/83219
3319         * tree-cfg.c: Include asan.h.
3320         (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable.
3321
3322 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3323
3324         * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction.
3325
3326 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3327
3328         * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for
3329         vpcmpeqd instruction.
3330
3331 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3332
3333         * config/i386/i386.c (standard_sse_constant_opcode): Fix
3334         registers type for 128bit mode.
3335
3336 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
3337
3338         * spellcheck-tree.c (test_find_closest_identifier): Use ; instead
3339         of ;;.
3340         * gengtype-state.c (read_state_pair): Likewise.
3341         * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise.
3342         * sel-sched-dump.c (dump_insn_rtx_1): Likewise.
3343         * ipa-cp.c (intersect_aggregates_with_edge): Likewise.
3344         * ifcvt.c (noce_try_store_flag_constants): Likewise.
3345         * tree-ssa-ccp.c (ccp_finalize): Likewise.
3346         * omp-grid.c (grid_process_kernel_body_copy): Likewise.
3347         * builtins.c (fold_builtin_3): Likewise.
3348         * graphite-scop-detection.c
3349         (scop_detection::stmt_has_simple_data_refs_p): Likewise.
3350         * hsa-gen.c (hsa_function_representation::hsa_function_representation):
3351         Likewise.
3352
3353 2017-12-01  Maxim Ostapenko  <m.ostapenko@samsung.com>
3354
3355         PR sanitizer/81697
3356         * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p
3357         parameter. Return true if ignore_decl_rtl_set_p is true and other
3358         conditions are satisfied.
3359         * asan.h (asan_protect_global): Add new parameter.
3360         * varasm.c (categorize_decl_for_section): Pass true as second parameter
3361         to asan_protect_global calls.
3362
3363 2017-11-30  Jim Wilson  <jimw@sifive.com>
3364
3365         * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
3366         -mno-memcpy options.  For -mplt, -mfdiv, -mdiv, -msave-restore, and
3367         -mstrict-align, add info on default value.  Delete redundant lines for
3368         -mabi.  Add missing -mexplicit-relocs docs.
3369
3370 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3371
3372         * config/arc/arc.md (trap): New pattern.
3373
3374 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3375
3376         * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL
3377         instruction to end into a delay slot.
3378         * config/arc/arc.md (cond_delay_insn): Check if the instruction
3379         can be placed into a delay slot against reg_note.
3380
3381 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3382
3383         * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start
3384         labels number of usages.
3385
3386 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
3387
3388         * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New
3389         function.
3390         (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
3391
3392 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
3393
3394         PR target/83210
3395         * internal-fn.c (expand_mul_overflow): Optimize unsigned
3396         multiplication by power of 2 constant into two shifts + comparison.
3397
3398 2017-11-30  Jan Hubicka  <hubicka@ucw.cz>
3399
3400         PR target/81616
3401         * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs.
3402
3403 2017-11-30  Richard Biener  <rguenther@suse.de>
3404
3405         PR tree-optimization/83202
3406         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
3407         allow_peel argument and guard peeling.
3408         (canonicalize_loop_induction_variables): Likewise.
3409         (canonicalize_induction_variables): Pass false.
3410         (tree_unroll_loops_completely_1): Pass unroll_outer to disallow
3411         peeling from cunrolli.
3412
3413 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
3414
3415         * combine.c (try_combine): Print a message to dump file whenever
3416         I0, I1, or I2 cannot be combined into I3.
3417
3418 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
3419
3420         PR rtl-optimization/83156
3421         PR rtl-optimization/82621
3422         * combine.c (try_combine): Don't split an I2 if one of the dests is
3423         set again before I3.  Allow unused dests.
3424
3425 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
3426
3427         * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New.
3428
3429 2017-11-29  Vladimir Makarov  <vmakarov@redhat.com>
3430
3431         PR rtl-optimization/80818
3432         * lra.c (collect_non_operand_hard_regs): New arg insn.  Pass it
3433         recursively.  Use insn code for clobber.
3434         (lra_set_insn_recog_data): Pass the new arg to
3435         collect_non_operand_hard_regs.
3436         (add_regs_to_insn_regno_info): Pass insn instead of uid.  Use insn
3437         code for clobber.
3438         (lra_update_insn_regno_info): Pass insn to
3439         add_regs_to_insn_regno_info.
3440
3441 2017-11-29  Jim Wilson  <jimw@sifive.com>
3442             Andrew Waterman  <andrew@sifive.com>
3443
3444         * config/riscv/riscv.c (SINGLE_SHIFT_COST): New.
3445         (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return
3446         SINGLE_SHIFT_COST.  Case LT and ZERO_EXTEND, likewise.  Case ASHIFT,
3447         use SINGLE_SHIFT_COST.
3448         * config/riscv/riscv.md (lshrsi3_zero_extend_1): New.
3449         (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New.
3450
3451 2017-11-29  Julia Koval  <julia.koval@intel.com>
3452
3453         * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16,
3454         _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32,
3455         _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64,
3456         _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics.
3457         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16,
3458         _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32,
3459         _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64,
3460         _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16,
3461         _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32,
3462         _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64,
3463         _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto.
3464         * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi,
3465         __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz,
3466         __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
3467         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
3468         __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
3469         __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask,
3470         __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si,
3471         __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz,
3472         __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask,
3473         __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di,
3474         __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz,
3475         __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
3476         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
3477         __builtin_ia32_vpshldv_v2di_mask,
3478         __builtin_ia32_vpshldv_v2di_maskz): New builtins.
3479         * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask,
3480         vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns.
3481
3482 2017-11-29  Julia Koval  <julia.koval@intel.com>
3483
3484         * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16,
3485         _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32,
3486         _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
3487         _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics.
3488         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16,
3489         _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32,
3490         _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64,
3491         _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16,
3492         _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32,
3493         _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64,
3494         _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto.
3495         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI,
3496         V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
3497         V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
3498         V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI,
3499         V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
3500         V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
3501         V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types.
3502         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
3503         * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask,
3504         vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern.
3505
3506 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3507
3508         * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
3509         movsi_pic_gotdata_op instruction as a load for the UT699 errata
3510         workaround.
3511
3512 2017-11-29  Martin Aberg  <maberg@gaisler.com>
3513
3514         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
3515         to prevent b2bst errata sequence.
3516         (sqrtdf2_fix): Likewise.
3517
3518 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3519
3520         * config/sparc/sparc.c (fpop_reg_depend_p): New function.
3521         (div_sqrt_insn_p): New function.
3522         (sparc_do_work_around_errata): Insert NOP instructions to
3523         prevent sequences that could trigger the TN-0013 errata for
3524         certain LEON3 processors.
3525         (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
3526         (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
3527         * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
3528         (in_branch_delay): Prevent div and sqrt in delay slot if
3529         fix_lost_divsqrt.
3530         * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
3531
3532 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3533
3534         * config/sparc/sparc.c (atomic_insn_p): New function.
3535         (sparc_do_work_around_errata): Insert NOP instructions to
3536         prevent sequences that could trigger the TN-0010 errata for
3537         UT700.
3538         * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
3539         instruction referable in atomic_insns_p.
3540
3541 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3542
3543         * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
3544         (atomic_compare_and_swap_leon3_1): Likewise.
3545         (ldstub): Likewise.
3546
3547 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
3548
3549         * config/sparc/sparc.c (fpop_insn_p): New function.
3550         (sparc_do_work_around_errata): Insert NOP instructions to
3551         prevent sequences that could trigger the TN-0012 errata for
3552         GR712RC.
3553         (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
3554         * config/sparc/sparc.md (fix_gr712rc): New attribute.
3555         (in_branch_annul_delay): Prevent floating-point instructions
3556         in delay slot of annulled integer branch.
3557
3558 2017-11-29  Richard Biener  <rguenther@suse.de>
3559
3560         PR tree-optimization/83202
3561         * tree-vect-slp.c (scalar_stmts_set_t): New typedef.
3562         (bst_fail): Use it.
3563         (vect_analyze_slp_cost_1): Add visited set, do not account SLP
3564         nodes vectorized to the same stmts multiple times.
3565         (vect_analyze_slp_cost): Allocate a visited set and pass it down.
3566         (vect_analyze_slp_instance): Adjust.
3567         (scalar_stmts_to_slp_tree_map_t): New typedef.
3568         (vect_schedule_slp_instance): Add a map recording the SLP node
3569         representing the vectorized stmts for a set of scalar stmts.
3570         Avoid code-generating redundancies.
3571         (vect_schedule_slp): Allocate map and pass it down.
3572
3573 2017-11-29  Nathan Sidwell  <nathan@acm.org>
3574
3575         PR c++/83187
3576         * tree.c (build_complex_type): Fix canonicalization.  Only fill in
3577         type if it is new.
3578
3579 2017-11-29  Wilco Dijkstra  <wdijkstr@arm.com>
3580
3581         * config/aarch64/aarch64.c (aarch64_print_operand): Add new
3582         cases for printing LDP/STP memory addresses.
3583         (aarch64_print_address_internal): Renamed from
3584         aarch64_print_operand_address, added parameter, add Pmode check.
3585         (aarch64_print_ldpstp_address): New function for LDP/STP addresses.
3586         (aarch64_print_operand_address): Indirect to
3587         aarch64_print_address_internal.
3588         * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new
3589         'y' operand output specifier.
3590
3591 2017-11-29  Jakub Jelinek  <jakub@redhat.com>
3592
3593         PR middle-end/83185
3594         * tree.c (build_simple_mem_ref_loc): Handle
3595         get_addr_base_and_unit_offset returning a MEM_REF.
3596
3597         PR middle-end/80929
3598         * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost.
3599
3600         PR target/80819
3601         * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
3602         alternative.
3603
3604 2017-11-28  David Malcolm  <dmalcolm@redhat.com>
3605
3606         * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle
3607         m_x_offset.
3608         (layout::move_to_column): Likewise.
3609
3610 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
3611
3612         PR sanitizer/81275
3613         * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P
3614         is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()).
3615
3616 2017-11-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3617             Martin Jambor  <mjambor@suse.cz>
3618
3619         PR ipa/82808
3620         * tree.h (expr_type_first_operand_type_p): Declare
3621         * tree.c (expr_type_first_operand_type_p): New function.
3622         * ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
3623         (ipa_value_from_jfunc): Adjust declaration.
3624         * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
3625         Use it as result type for arithmetics, unless it is NULL in which case
3626         be more conservative.
3627         (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
3628         ipa_get_jf_pass_through_result.
3629         (propagate_vals_across_pass_through): Likewise.
3630         (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
3631         is to propagate_vals_across_pass_through.
3632         (propagate_constants_across_call): Pass PARM_TYPE to
3633         propagate_scalar_across_jump_function.
3634         (find_more_scalar_values_for_callers_subset): Pass parameter type to
3635         ipa_value_from_jfunc.
3636         (cgraph_edge_brings_all_scalars_for_node): Likewise.
3637         * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
3638         to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
3639         * ipa-prop.c (try_make_edge_direct_simple_call): New parameter
3640         target_type, pass it to ipa_value_from_jfunc.
3641         (update_indirect_edges_after_inlining): Pass parameter type to
3642         try_make_edge_direct_simple_call.
3643
3644 2017-11-28  Jeff Law  <law@redhat.com>
3645
3646         * gimple-ssa-evrp-analyze.c
3647         (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
3648         refine ranges if scev_initialized_p returns true.
3649         * vr-values.c (vr_values::extract_range_from_phi_node): Likewise.
3650
3651 2017-11-28  Julia Koval  <julia.koval@intel.com>
3652
3653         * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
3654         _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
3655         _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64,
3656         _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics.
3657         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
3658         _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
3659         _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32,
3660         _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64,
3661         _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
3662         _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
3663         _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto.
3664         * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
3665         __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
3666         __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
3667         __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
3668         __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
3669         __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
3670         __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
3671         __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
3672         __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
3673         __builtin_ia32_vpshrd_v2di_mask): New builtins.
3674         * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern.
3675
3676 2017-11-28  Julia Koval  <julia.koval@intel.com>
3677
3678         * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16,
3679         _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32,
3680         _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
3681         _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics.
3682         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16,
3683         _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
3684         _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32,
3685         _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64,
3686         _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16,
3687         _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32,
3688         _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto.
3689         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT,
3690         V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT,
3691         V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT,
3692         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT,
3693         V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT,
3694         V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT,
3695         V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT,
3696         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT,
3697         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types.
3698         * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi,
3699         __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi,
3700         __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi,
3701         __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si,
3702         __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si,
3703         __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si,
3704         __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di,
3705         __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di,
3706         __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di,
3707         __builtin_ia32_vpshld_v2di_mask): New builtins.
3708         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
3709         * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern.
3710
3711 2017-11-28  Richard Biener  <rguenther@suse.de>
3712
3713         PR tree-optimization/80776
3714         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
3715         Declare.
3716         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
3717         New function.
3718         (evrp_range_analyzer::record_ranges_from_incoming_edges):
3719         If the incoming edge is an effective fallthru because the other
3720         edge only reaches a __builtin_unreachable () then record ranges
3721         derived from the controlling condition in SSA info.
3722         (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
3723         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
3724
3725 2017-11-28  Olivier Hainque  <hainque@adacore.com>
3726
3727         * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null
3728         on mingw build hosts.
3729
3730 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
3731
3732         PR debug/81307
3733         * dbxout.c (dbx_block_with_cold_children): Fix function comment.
3734
3735 2017-11-28  Richard Biener  <rguenther@suse.de>
3736
3737         PR middle-end/83141
3738         * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate
3739         copies generated from memcpy use a character array as reference
3740         type.
3741
3742 2017-11-28  Julia Koval  <julia.koval@intel.com>
3743             Sebastian Peryt  <sebastian.peryt@intel.com>
3744
3745         * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o,
3746         c-family/c-cilkplus.o, c-family/array-notation-common.o,
3747         cilk-common.o, cilk.h, cilk-common.c): Remove.
3748         * builtin-types.def
3749         (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
3750         * builtins.c (is_builtin_name): Remove cilkplus condition.
3751         (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
3752         * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
3753         cilk-builtins.def, cilkplus.def): Remove.
3754         * cif-code.def (CILK_SPAWN): Remove.
3755         * cilk-builtins.def: Delete.
3756         * cilk-common.c: Ditto.
3757         * cilk.h: Ditto.
3758         * cilkplus.def: Ditto.
3759         * config/darwin.h (fcilkplus): Delete.
3760         * cppbuiltin.c: Ditto.
3761         * doc/extend.texi: Remove cilkplus doc.
3762         * doc/generic.texi: Ditto.
3763         * doc/invoke.texi: Ditto.
3764         * doc/passes.texi: Ditto.
3765         * gcc.c (fcilkplus): Remove.
3766         * gengtype.c (cilk.h): Remove.
3767         * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus
3768         support.
3769         * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD):
3770         Remove.
3771         * gimplify.c (gimplify_return_expr, maybe_fold_stmt,
3772         gimplify_call_expr,
3773         is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses,
3774         gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove
3775         cilkplus conditions.
3776         * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
3777         inline_read_section): Ditto.
3778         * ipa-inline-analysis.c (cilk.h): Remove.
3779         * ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
3780         * lto-wrapper.c (merge_and_complain, append_compiler_options,
3781         append_linker_options): Remove condition for fcilkplus.
3782         * lto/lto-lang.c (cilk.h): Remove.
3783         (lto_init): Remove condition for fcilkplus.
3784         * omp-expand.c (expand_cilk_for_call): Delete.
3785         (expand_omp_taskreg, expand_omp_for_static_chunk,
3786         expand_omp_for): Remove cilkplus
3787         conditions.
3788         (expand_cilk_for): Delete.
3789         * omp-general.c (omp_extract_for_data): Remove cilkplus support.
3790         * omp-low.c (scan_sharing_clauses, create_omp_child_function,
3791         execute_lower_omp, diagnose_sb_0): Ditto.
3792         * omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
3793         * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
3794         * tree-nested.c: Ditto.
3795         * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
3796         (dump_generic_node): Ditto.
3797         * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
3798         * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt):
3799         Delete.
3800         * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
3801
3802 2017-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3803
3804         * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT.
3805         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit
3806         for vector mode and !TARGET_SIMD.
3807
3808 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
3809
3810         * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
3811         Adjust comment.
3812         * tree.h (SWITCH_LABELS): Remove.
3813         * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
3814         assert SWITCH_BODY is non-NULL.
3815         * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
3816         handling.
3817         * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
3818
3819         PR tree-optimization/80788
3820         * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
3821         has TREE_OVERFLOW set, call drop_tree_overflow.
3822
3823 2017-11-28  Richard Biener  <rguenther@suse.de>
3824
3825         PR tree-optimization/83158
3826         * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases.
3827
3828 2017-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
3829
3830         PR 81288/target
3831         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
3832         TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
3833
3834 2017-11-27  Segher Boessenkool  <segher@kernel.crashing.org>
3835
3836         * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
3837         LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
3838
3839 2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
3840
3841         PR middle_end/82333
3842         * varasm.c (compare_constant): Take the mode of the constants into
3843         account when comparing floating point constants.
3844
3845 2017-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
3846
3847         * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
3848         from explicit instantiation of debug_helper.
3849         * vec.h (DEFINE_DEBUG_VEC): Ditto.
3850
3851 2017-11-27  Richard Biener  <rguenther@suse.de>
3852
3853         * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
3854         refactor a bit.
3855
3856 2017-11-27  Richard Biener  <rguenther@suse.de>
3857
3858         * tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
3859         (type_hash_canon): Also clear int_cst_hash_table entry for
3860         TYPE_MIN/MAX_VALUE.
3861         (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.
3862
3863 2017-11-27  Tamar Christina  <tamar.christina@arm.com>
3864
3865         * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
3866         * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
3867         * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
3868
3869 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
3870
3871         * hash-map.h (gt_cleare_cache): Avoid UB.
3872
3873 2017-11-27  Eric Botcazou  <ebotcazou@adacore.com>
3874
3875         * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
3876         * loop-unroll.c (decide_unroll_constant_iterations): Implement it.
3877         (decide_unroll_runtime_iterations): Likewise.
3878         (decide_unroll_stupid): Likewise.
3879
3880 2017-11-27  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
3881
3882         PR target/83109
3883         * config/i386/i386.md: Add a loop with incssp.
3884
3885 2017-11-27  Martin Jambor  <mjambor@suse.cz>
3886
3887         PR tree-optimization/81248
3888         * tree-sra.c (splice_param_accesses): Remove size check.
3889         (decide_one_param_reduction): Fix size check.
3890         * gimple-pretty-print.c (dump_profile): Silence warning.
3891         * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
3892
3893 2017-11-27  Jakub Jelinek  <jakub@redhat.com>
3894
3895         PR debug/81307
3896         * dbxout.c (lastlineno): New variable.
3897         (dbx_debug_hooks): Use dbxout_switch_text_section as
3898         switch_text_section debug hook.
3899         (dbxout_function_end): Switch to current_function_section
3900         rather than function_section.  If crtl->has_bb_partition,
3901         output just one N_FUN, depending on in_cold_section_p.
3902         (dbxout_source_line): Remember last lineno in lastlineno.
3903         (dbxout_switch_text_section): New function.
3904         (dbxout_function_decl): Adjust dbxout_block caller.
3905         (dbx_block_with_cold_children): New function.
3906         (dbxout_block): Return true if any LBRAC/RBRAC have been
3907         emitted.  Use dbx_block_with_cold_children at depth == 0
3908         in second partition.  Add PARENT_BLOCKNUM argument, pass
3909         it optionally adjusted to children.  Output LBRAC/RBRAC
3910         around recursive call only if the block is in the current
3911         partition, if not and anything was output, emit empty
3912         range LBRAC/RBRAC.
3913         * final.c (final_scan_insn): Compute cold_function_name
3914         before calling switch_text_section debug hook.  Call
3915         that hook even if dwarf2out_do_frame if not emitting
3916         dwarf debug info.
3917
3918         PR target/83100
3919         * varasm.c (bss_initializer_p): Return true for DECL_COMMON
3920         TREE_READONLY decls.
3921
3922 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
3923
3924         PR rtl-optimization/82488
3925         * expr.c (fixup_args_size_notes): Avoid signed integer overflow.
3926
3927 2017-11-26  Julia Koval  <julia.koval@intel.com>
3928
3929         * config/i386/i386.c (processor_target_table): Add skylake_cost for
3930         skylake-avx512.
3931         * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
3932         skylake_cost): New.
3933
3934 2017-11-26  Julia Koval  <julia.koval@intel.com>
3935
3936         * config/i386/driver-i386.c (host_detect_local_cpu):
3937         Detect skylake-avx512.
3938
3939 2017-11-26  Julia Koval  <julia.koval@intel.com>
3940
3941         * config.gcc: Add -march=cannonlake.
3942         * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
3943         * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
3944         * config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
3945         (PTA_CANNONLAKE): New.
3946         (processor_target_table): Add cannonlake.
3947         (ix86_option_override_internal): Ditto.
3948         (fold_builtin_cpu): Ditto.
3949         (get_builtin_code_for_version): Handle cannonlake.
3950         (M_INTEL_COREI7_CANNONLAKE): New.
3951         * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
3952         * doc/invoke.texi: Add -march=cannonlake.
3953
3954 2017-11-14  Boris Kolpackov  <boris@codesynthesis.com>
3955
3956         * plugin.c (add_new_plugin): Use platform-specific library extensions.
3957         (try_init_one_plugin): Alternative implementation for MinGW.
3958         * Makefile.in (plugin_implib): New.
3959         (gengtype-lex.c): Fix broken AIX workaround.
3960         * configure: Regenerate.
3961         * doc/plugins.texi: Document support for MinGW.
3962
3963 2017-11-25  Jakub Jelinek  <jakub@redhat.com>
3964
3965         PR rtl-optimization/81553
3966         * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
3967         to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
3968         is a shift where C1 has different mode than the whole shift, use C1's
3969         mode for MULT rather than the shift's mode.
3970
3971         PR target/82848
3972         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold
3973         builtins not enabled in the currently selected ISA.
3974
3975 2017-11-24  Jackson Woodruff  <jackson.woodruff@arm.com>
3976
3977         PR tree-optimization/71026
3978         * tree-ssa-math-opts (is_division_by_square, is_square_of): New.
3979         (insert_reciprocals): Change to insert reciprocals before a division
3980         by a square and to insert the square of a reciprocal.
3981         (execute_cse_reciprocals_1): Change to consider division by a square.
3982         (register_division_in): Add importance parameter.
3983
3984 2017-11-24  Richard Biener  <rguenther@suse.de>
3985
3986         PR tree-optimization/82402
3987         * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
3988         set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3989
3990 2017-11-24  Marc Glisse  <marc.glisse@inria.fr>
3991
3992         * match.pd (0-ptr): New transformation.
3993
3994 2017-11-24  Jan Hubicka  <hubicka@ucw.cz>
3995
3996         PR bootstrap/83015
3997         * ipa-inline.c (inline_small_functions): Set current badnes correctly
3998         when skipping checking.
3999
4000 2017-11-24  Richard Biener  <rguenther@suse.de>
4001
4002         PR tree-optimization/83128
4003         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs.
4004         (vn_reference_lookup_3): Likewise.
4005
4006 2017-11-24  Jakub Jelinek  <jakub@redhat.com>
4007
4008         PR sanitizer/83014
4009         * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
4010         instead of pp_printf with HOST_WIDE_INT_PRINT_DEC.  Avoid calling
4011         tree_to_uhwi twice.
4012
4013         * tree-object-size.c (pass_through_call): Use gimple_call_return_flags
4014         ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
4015         check for the latter with gimple_call_builtin_p.  Do not handle
4016         BUILT_IN_STPNCPY_CHK which is not a pass through call.
4017
4018 2017-11-24  Christophe Lyon  <christophe.lyon@linaro.org>
4019
4020         * config/arm/arm_neon.h: Fix pragma GCC push_options before
4021         vdot_u32.
4022
4023 2017-11-23  Julia Koval  <julia.koval@intel.com>
4024
4025         * config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
4026         _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
4027         _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
4028         _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
4029         _mm512_maskz_expandloadu_epi16): New intrinsics.
4030         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
4031         _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
4032         _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
4033         _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
4034         _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
4035         _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
4036         _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
4037         _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
4038         _mm256_maskz_expandloadu_epi8): New intrinsics.
4039         * config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
4040         V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
4041         V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
4042         V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
4043         * config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
4044         * config/i386/sse.md (VI248_VLBW): New iterator.
4045         (expand<mode>_mask, expand<mode>_maskz): New patterns.
4046
4047 2017-11-23  Julia Koval  <julia.koval@intel.com>
4048
4049         * config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
4050         * config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
4051         _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
4052         _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
4053         _mm512_mask_compressstoreu_epi16): New.
4054         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
4055         _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
4056         _mm_mask_compress_epi16, _mm_maskz_compress_epi16,
4057         _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
4058         _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
4059         _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
4060         _mm256_mask_compressstoreu_epi8): New.
4061         * config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
4062         VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
4063         VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
4064         VOID_FTYPE_PV8HI_V8HI_UQI): New types.
4065         * config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
4066         __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
4067         __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
4068         __builtin_ia32_compresshi128_mask,
4069         __builtin_ia32_compressstoreuqi512_mask,
4070         __builtin_ia32_compressstoreuhi512_mask,
4071         __builtin_ia32_compressstoreuqi256_mask,
4072         __builtin_ia32_compressstoreuqi128_mask,
4073         __builtin_ia32_compressstoreuhi256_mask,
4074         __builtin_ia32_compressstoreuhi128_mask): New builtins.
4075         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
4076         array for flags2.
4077         (ix86_expand_special_args_builtin): Handle new types.
4078         (s4fma_expand): Handle new builtin array.
4079         * config/i386/immintrin.h: Include new headers.
4080         * config/i386/sse.md (VI12_AVX512VLBW): New iterator.
4081         (compress<mode>_mask, compressstore<mode>_mask): New patterns.
4082
4083 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
4084
4085         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
4086         fixes.  Declare temp and g variables at the top in order to avoid
4087         {} in most of the cases.
4088
4089 2017-11-23  Marc Glisse  <marc.glisse@inria.fr>
4090
4091         * match.pd (ptr-0): New transformation.
4092
4093 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
4094
4095         * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
4096         (struct addr_mode_cost_table): New.
4097         (struct tune_params): Add field addr_mode_costs.
4098         * config/arm/arm.c (generic_addr_mode_costs): New.
4099         (arm_slowmul_tune): Initialise addr_mode_costs field.
4100         (arm_fastmul_tune): Likewise.
4101         (arm_strongarm_tune): Likewise.
4102         (arm_xscale_tune): Likewise.
4103         (arm_9e_tune): Likewise.
4104         (arm_marvell_pj4_tune): Likewise.
4105         (arm_v6t2_tune): Likewise.
4106         (arm_cortex_tune): Likewise.
4107         (arm_cortex_a8_tune): Likewise.
4108         (arm_cortex_a7_tune): Likewise.
4109         (arm_cortex_a15_tune): Likewise.
4110         (arm_cortex_a35_tune): Likewise.
4111         (arm_cortex_a53_tune): Likewise.
4112         (arm_cortex_a57_tune): Likewise.
4113         (arm_exynosm1_tune): Likewise.
4114         (arm_xgene1_tune): Likewise.
4115         (arm_cortex_a5_tune): Likewise.
4116         (arm_cortex_a9_tune): Likewise.
4117         (arm_cortex_a12_tune): Likewise.
4118         (arm_cortex_a73_tune): Likewise.
4119         (arm_v7m_tune): Likewise.
4120         (arm_cortex_m7_tune): Likewise.
4121         (arm_v6m_tune): Likewise.
4122         (arm_fa726te_tune): Likewise.
4123         (arm_mem_costs): Use table lookup to calculate cost of addressing mode.
4124
4125 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
4126
4127         * config/arm/arm.c (arm_mem_costs): New function.
4128         (arm_rtx_costs_internal): Use arm_mem_costs.
4129
4130 2017-11-23  Mark Wielaard  <mark@klomp.org>
4131
4132         * dwarf2out.c (init_sections_and_labels): Use generation to create
4133         unique ranges_section_label and ranges_base_label. Return generation.
4134         (output_rnglists): Add generation argument. Use generation to create
4135         unique ranges labels.
4136         (dwarf2out_finish): Get generation from init_sections_and_labels
4137         and pass generation to output_rnglists.
4138
4139 2017-11-23  Mike Stump  <mikestump@comcast.net>
4140             Eric Botcazou  <ebotcazou@adacore.com>
4141
4142         * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand.
4143         * cfgloop.h (struct loop): Add unroll field.
4144         * function.h (struct function): Add has_unroll bitfield.
4145         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind.
4146         (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand.
4147         * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll.
4148         (pass_rtl_unroll_loops::gate): Likewise.
4149         * loop-unroll.c (decide_unrolling): Tweak note message.  Skip loops
4150         for which loop->unroll==1.
4151         (decide_unroll_constant_iterations): Use note for consistency and
4152         take loop->unroll into account.  Return early if loop->unroll is set.
4153         Fix thinko in existing test.
4154         (decide_unroll_runtime_iterations): Use note for consistency and
4155         take loop->unroll into account.
4156         (decide_unroll_stupid): Likewise.
4157         * lto-streamer-in.c (input_cfg): Read loop->unroll.
4158         * lto-streamer-out.c (output_cfg): Write loop->unroll.
4159         * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>:
4160         New case.
4161         (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise.
4162         (print_loop): Print loop->unroll if set.
4163         * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind.
4164         * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll.
4165         * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>:
4166         New case.
4167         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if
4168         loop->unroll is set and smaller than the trip count.  Otherwise bypass
4169         entirely the heuristics if loop->unroll is set.  Remove dead note.
4170         Fix off-by-one bug in other note.
4171         (try_peel_loop): Bail out if loop->unroll is set.  Fix formatting.
4172         (tree_unroll_loops_completely_1): Force unrolling if loop->unroll
4173         is greater than 1.
4174         (tree_unroll_loops_completely): Make static.
4175         (pass_complete_unroll::execute): Use correct type for variable.
4176         (pass_complete_unrolli::execute): Fix formatting.
4177         * tree.def (ANNOTATE_EXPR): Add 3rd operand.
4178
4179 2017-11-23  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4180
4181         * config/i386/i386.h (TARGET_PREFER_AVX256): Also
4182         enable when TARGET_PREFER_AVX128 is set.
4183
4184 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
4185
4186         * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of
4187         frequency.
4188         * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies.
4189         (cgraph_edge::maybe_hot_p): Use sreal frequencies.
4190
4191 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
4192
4193         * ipa-fnsummary.c (record_modified_bb_info): Use sreal
4194         frequencies. Fix estimation of aggregate parameters.
4195
4196 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
4197
4198         * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile
4199         when inlining.
4200
4201 2017-11-23  Tom de Vries  <tom@codesourcery.com>
4202
4203         * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)".
4204
4205 2017-11-23  Tom de Vries  <tom@codesourcery.com>
4206
4207         * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after
4208         macro.
4209
4210 2017-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
4211
4212         PR target/83111
4213         * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
4214         sibcall_value_pcrel_fdpic): Use local variable instead of
4215         operands[3].
4216         (calli_tbr_rel): Add missing operand 2.
4217         (call_valuei_tbr_rel): Add missing operand 3.
4218
4219 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
4220
4221         PR middle-end/82253
4222         * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
4223         bitpos/bitsize covering the whole destination, use store_expr only if
4224         the complex mode is the same.  Otherwise, use expand_normal and if
4225         it returns CONCAT, subreg each part separately instead of trying to
4226         subreg the whole result.
4227
4228 2017-11-23  Richard Biener  <rguenther@suse.de>
4229
4230         PR tree-optimization/23094
4231         * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we
4232         come here from walking over backedges in the first iteration.
4233         (vn_reference_lookup_3): Skip clobbers that store the same value.
4234
4235 2017-11-23  Richard Biener  <rguenther@suse.de>
4236
4237         PR tree-optimization/81403
4238         * tree-ssa-pre.c (get_representative_for): Add parameter specifying
4239         a block we need a leader relative to.
4240         (phi_translate_1): For nary processing require a leader from
4241         get_representative_for given we run expression simplification
4242         using match-and-simplify.  Remove previous fix.
4243
4244 2017-11-22  Jeff Law  <law@redhat.com>
4245
4246         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
4247         Use new method allocate_value_range rather than accessing the
4248         vrp_value_range_pool data member directly.
4249         * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly
4250         to use extract_range_from_stmt method to avoid need for
4251         extract_range_from_assignment method.
4252         (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete
4253         method rather than setting values_propgated data member directly.
4254         * vr-values.h (class vr_values): Privatize vrp_value_range_pool,
4255         and values propagated data members and extract_range_from_assignment
4256         method.  Reorder private data members to conform to standards.
4257         Add new methods set_lattice_propagation_complete and
4258         allocate_value_range.
4259
4260 2017-11-22  Eric Botcazou  <ebotcazou@adacore.com>
4261
4262         PR rtl-optimization/83030
4263         * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry
4264         for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs.
4265         (Insns): Delete entry for REG_CROSSING_JUMP in register notes.
4266         * bb-reorder.c (update_crossing_jump_flags): Do not test whether the
4267         CROSSING_JUMP_P flag is already set before setting it.
4268         * cfgrtl.c (fixup_partition_crossing): Likewise.
4269         * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P
4270         insn as useless.
4271
4272 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
4273
4274         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>:
4275         Handle the case where both arguments are using gen_const_vec_series.
4276
4277 2017-11-22  David Malcolm  <dmalcolm@redhat.com>
4278
4279         PR c++/62170
4280         * pretty-print.c (pp_format): Move quoting implementation to
4281         pp_begin_quote and pp_end_quote.  Update pp_format_decoder call
4282         to pass address of "quote" local.
4283         (pp_begin_quote): New function.
4284         (pp_end_quote): New function.
4285         * pretty-print.h (printer_fn): Convert penultimate param from bool
4286         to bool *.
4287         (pp_begin_quote): New decl.
4288         (pp_end_quote): New decl.
4289         * tree-diagnostic.c (default_tree_printer): Convert penultimate
4290         param from bool to bool *.
4291         * tree-diagnostic.h (default_tree_printer): Likewise.
4292
4293 2017-11-22  Jeff Law  <law@redhat.com>
4294
4295         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer)
4296         Initialize vr_values.
4297         (evrp_range_analyzer::try_find_new_range): Call methods attached to
4298         vr_values via vr_values class instance rather than delegators.
4299         (evrp_range_analyzer::record_ranges_from_phis): Likewise.
4300         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
4301         (evrp_range_analyzer::push_value_range): Likewise.
4302         (evrp_range_analyzer::pop_value_range): Likewise.
4303         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
4304         most delegators.  Those remaining are exposed as public interfaces.
4305         Make vr_values a pointer and private.
4306         (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
4307         vr_values.
4308         (evrp_range_analyzer::get_vr_value): New method.
4309         * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
4310         (evrp_folder::evrp_folder): New ctor to initialize vr_values.
4311         (class evrp_dom_walker): Attach evrp_folder class, initialize
4312         it in the ctor.  Remove temporary delegators.
4313         (evrp_dom_walker::before_dom_children): Call methods in attached
4314         evrp_range_analyzer class via class instance pointer.  Use
4315         free value_range_constant_singleton to remove need for
4316         op_with_constant_singleton_value delegator method.  Do not
4317         create a vrp_prop class instance for every call!  Narrow
4318         scope of a couple variables.
4319         (evrp_dom_walker::cleanup): Call methods in attached
4320         evrp_range_analyzer class via class instance pointer.
4321         * vr-values.h (class vr_values): Privatize many methods and
4322         data members.
4323
4324 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
4325
4326         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete.
4327         * cfgexpand.c (expand_debug_expr): Remove handling for them.
4328         * expr.c (expand_expr_real_2): Likewise.
4329         * fold-const.c (const_unop): Likewise.
4330         * optabs-tree.c (optab_for_tree_code): Likewise.
4331         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
4332         * tree-inline.c (estimate_operator_cost): Likewise.
4333         * tree-pretty-print.c (dump_generic_node): Likewise.
4334         (op_code_prio): Likewise.
4335         (op_symbol_code): Likewise.
4336         * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define.
4337         (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions.
4338         * internal-fn.c (direct_internal_fn_optab): New function.
4339         (direct_internal_fn_array, direct_internal_fn_supported_p
4340         (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN.
4341         * fold-const-call.c (fold_const_reduction): New function.
4342         (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and
4343         CFN_REDUC_MIN.
4344         * tree-vect-loop.c: Include internal-fn.h.
4345         (reduction_code_for_scalar_code): Rename to...
4346         (reduction_fn_for_scalar_code): ...this and return an internal
4347         function.
4348         (vect_model_reduction_cost): Take an internal_fn rather than
4349         a tree_code.
4350         (vect_create_epilog_for_reduction): Likewise.  Build calls rather
4351         than assignments.
4352         (vectorizable_reduction): Use internal functions rather than tree
4353         codes for the reduction operation.  Update calls to the functions
4354         above.
4355         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
4356         Use calls to internal functions rather than REDUC tree codes.
4357         * config/aarch64/aarch64-simd.md: Update comment accordingly.
4358
4359 2017-11-22  Olivier Hainque  <hainque@adacore.com>
4360
4361         * config/vxworks.c (vxworks_override_options): Pick default
4362         dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT.
4363         * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and
4364         DWARF_GNAT_ENCODINGS_DEFAULT.
4365         * config/vxworksae.h: Likewise.
4366
4367 2017-11-22  Marc Glisse  <marc.glisse@inria.fr>
4368
4369         PR tree-optimization/83104
4370         * vr-values.c (simplify_stmt_using_ranges): Check integral argument,
4371         not result.
4372
4373 2017-11-22  Marek Polacek  <polacek@redhat.com>
4374             H.J. Lu  <hongjiu.lu@intel.com>
4375             Jason Merrill  <jason@redhat.com>
4376
4377         PR c++/60336
4378         PR middle-end/67239
4379         PR target/68355
4380         * calls.c (initialize_argument_information): Call
4381         warn_parameter_passing_abi target hook.
4382         (store_one_arg): Use 0 for empty record size.  Don't push 0 size
4383         argument onto stack.
4384         (must_pass_in_stack_var_size_or_pad): Return false for empty types.
4385         * common.opt: Update -fabi-version description.
4386         * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
4387         (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
4388         int_size_in_bytes.
4389         (ix86_is_empty_record): New function.
4390         (ix86_warn_parameter_passing_abi): New function.
4391         (TARGET_EMPTY_RECORD_P): Redefine.
4392         (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
4393         * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
4394         * doc/tm.texi: Regenerated.
4395         * doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
4396         TARGET_WARN_PARAMETER_PASSING_ABI): Add.
4397         * dwarf2out.c (get_ultimate_context): Move to tree.c.
4398         * explow.c (hard_function_value): Call arg_int_size_in_bytes
4399         instead of int_size_in_bytes.
4400         * expr.c (copy_blkmode_to_reg): Likewise.
4401         * function.c (aggregate_value_p): Return 0 for empty types.
4402         (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi
4403         target hook.
4404         (locate_and_pad_parm): Call arg size_in_bytes instead
4405         size_in_bytes.
4406         * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
4407         * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
4408         * target.def (empty_record_p, warn_parameter_passing_abi): New target
4409         hooks.
4410         * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
4411         (std_gimplify_va_arg_expr): Skip empty records.  Call
4412         arg_size_in_bytes instead size_in_bytes.
4413         * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
4414         * tree-core.h (tree_type_common): Add empty_flag.
4415         (tree_decl_common): Update comments.
4416         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
4417         DECL_PADDING_P.
4418         (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
4419         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
4420         DECL_PADDING_P.
4421         (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
4422         * tree.c (default_is_empty_type): New function.
4423         (default_is_empty_record): New function.
4424         (arg_int_size_in_bytes): New function.
4425         (arg_size_in_bytes): New function.
4426         (get_ultimate_context): New function.
4427         * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
4428         TRANSLATION_UNIT_WARN_EMPTY_P.
4429         (default_is_empty_record, arg_int_size_in_bytes,
4430         arg_size_in_bytes, get_ultimate_context): Declare.
4431
4432 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4433
4434         * config/arm/arm.c (cmse_clear_registers): New function.
4435         (cmse_nonsecure_call_clear_caller_saved): Replace register clearing
4436         code by call to cmse_clear_registers.
4437         (cmse_nonsecure_entry_clear_before_return): Likewise.
4438
4439 2017-11-22  Tamar Christina  <tamar.christina@arm.com>
4440
4441         * config/arm/arm_neon.h (vdot_u32, vdotq_u32)
4442         (vdot_s32, vdotq_s32): New.
4443         (vdot_lane_u32, vdotq_lane_u32): New.
4444         (vdot_lane_s32, vdotq_lane_s32): New.
4445
4446
4447 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
4448
4449         PR middle-end/82547
4450         * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection
4451         for unsigned values with fewer HWIs than the precision.
4452         (test_overflow): New function.
4453         (wide_int_cc_tests): Call it.
4454
4455 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
4456
4457         * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
4458         has the same mode class as Pmode.
4459
4460 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4461
4462         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of
4463         padding_bits_to_clear_ptr.
4464         (cmse_nonsecure_entry_clear_before_return): Likewise.
4465
4466 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4467
4468         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use
4469         auto_sbitap instead of integer bitfield to control register needing
4470         clearing.
4471
4472 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
4473
4474         PR tree-optimization/83044
4475         * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not
4476         INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests
4477         that need the upper bound.  Subtract offset from
4478         get_addr_base_and_unit_offset only if positive and subtract it
4479         before division by eltsize rather than after it.
4480
4481         PR debug/83084
4482         * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
4483         debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
4484         (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
4485         asm.
4486
4487         PR middle-end/82875
4488         * optabs.c (expand_doubleword_mult, expand_binop): Before calling
4489         expand_binop with *mul_widen_optab, make sure at least one of the
4490         operands doesn't have VOIDmode.
4491
4492         PR debug/83034
4493         * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES.
4494
4495         PR rtl-optimization/82044
4496         PR tree-optimization/82042
4497         * dse.c (record_store): Check for overflow.
4498         (check_mem_read_rtx): Properly check for overflow if width == -1, call
4499         add_wild_read instead of clear_rhs_from_active_local_stores on
4500         overflow and log it into dump_file.
4501
4502 2017-11-22  Richard Biener  <rguenther@suse.de>
4503
4504         * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore
4505         fake edges to exit when looking for a place to insert.
4506         * tree-ssa-pre.c (clear_expression_ids): Inline into callers
4507         and remove.
4508         (insert_into_preds_of_block): Commit edge insertion immediately,
4509         assert that doesn't require new BBs.
4510         (fini_pre): Release expressions.
4511         (pass_pre::execute): Shuffle things around a bit, if the fn
4512         is too large do not compute AVAIL either as this is really the
4513         quadratic bit.
4514
4515 2017-11-22  Richard Biener  <rguenther@suse.de>
4516
4517         PR tree-optimization/83089
4518         * tree-if-conv.c (pass_if_conversion::execute): If anything
4519         changed reset SCEV and free the number of iteration estimates.
4520
4521 2017-11-21  Martin Sebor  <msebor@redhat.com>
4522
4523         PR tree-optimization/82945
4524         * calls.h (warn_nonstring_bound): Remove unused function.
4525
4526 2017-11-21  Martin Sebor  <msebor@redhat.com>
4527
4528         PR tree-optimization/82945
4529         * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg.
4530         * calls.h (maybe_warn_nonstring_arg): Declare new function.
4531         * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New
4532         functions.
4533         (initialize_argument_information): Call maybe_warn_nonstring_arg.
4534         * calls.h (get_attr_nonstring_decl): Declare new function.
4535         * doc/extend.texi (attribute nonstring): Update.
4536         * gimple-fold.c (gimple_fold_builtin_strncpy): Call
4537         get_attr_nonstring_decl and handle it.
4538         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.  Improve
4539         detection of nul-termination.
4540         (strlen_to_stridx): Change to a pointer.
4541         (handle_builtin_strlen, handle_builtin_stxncpy): Adjust.
4542         (pass_strlen::execute): Same.
4543
4544 2017-11-21  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4545
4546         * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum
4547         for the new option -mprefer-vector-width=[none|128|256|512].
4548         * config/i386/i386.c (ix86_target_string): remove old style options
4549         -mprefer-avx256 and make -mprefer-avx128 as alias.
4550         (ix86_option_override_internal):  Apply defaults for the
4551         -mprefer-vector-width=[128|256] option.
4552         * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256):
4553         Implement macros to work with -mprefer-vector-width=.
4554         * config/i386/i386.opt: Implemented option
4555         -mprefer-vector-width=[none|128|256|512].
4556         * doc/invoke.texi: Documentation for
4557         -mprefer-vector-width=[none|128|256|512].
4558
4559 2017-11-21  Pat Haugen  <pthaugen@us.ibm.com>
4560
4561         * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
4562
4563 2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
4564
4565         * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.
4566
4567 2017-11-21  Marc Glisse  <marc.glisse@inria.fr>
4568
4569         * doc/generic.texi: Document POINTER_DIFF_EXPR, update
4570         POINTER_PLUS_EXPR.
4571         * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR.
4572         * expr.c (expand_expr_real_2): Likewise.
4573         * fold-const.c (const_binop, fold_addr_of_array_ref_difference,
4574         fold_binary_loc): Likewise.
4575         * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N),
4576         P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y),
4577         (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on
4578         MINUS_EXPR transformations.
4579         * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR.
4580         * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise.
4581         * tree-inline.c (estimate_operator_cost): Likewise.
4582         * tree-pretty-print.c (dump_generic_node, op_code_prio,
4583         op_symbol_code): Likewise.
4584         * tree-vect-stmts.c (vectorizable_operation): Likewise.
4585         * vr-values.c (extract_range_from_binary_expr): Likewise.
4586         * varasm.c (initializer_constant_valid_p_1): Likewise.
4587         * tree.def: New tree code POINTER_DIFF_EXPR.
4588
4589 2017-11-21  Uros Bizjak  <ubizjak@gmail.com>
4590
4591         * config/i386/i386.md (*bswap<mode>2_movbe): Add
4592         integer suffix to movbe mnemonic.
4593         (*bswaphi2_movbe): Ditto.
4594         (bswaphi_lowpart): Merge with *bswaphi_lowpart_1.
4595
4596 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
4597
4598         PR c++/83045
4599         * tree-cfg.c (pass_warn_function_return::execute): Formatting fix.
4600         Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION.
4601         Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION.
4602
4603 2017-11-21  Martin Liska  <mliska@suse.cz>
4604
4605         * tree-inline.c (expand_call_inline): Remove not needed
4606         xstrdup_for_dump.
4607
4608 2017-11-21  James Cowgill  <James.Cowgill@imgtec.com>
4609             Jakub Jelinek  <jakub@redhat.com>
4610
4611         PR target/82880
4612         * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
4613         Remove static keyword from f variable.
4614
4615 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
4616
4617         PR tree-optimization/83086
4618         * gimple-ssa-store-merging.c
4619         (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr
4620         rather than n.base_addr.
4621
4622 2017-11-21  Martin Liska  <mliska@suse.cz>
4623
4624         PR rtl-optimization/82044
4625         PR tree-optimization/82042
4626         * dse.c (check_mem_read_rtx): Check for overflow.
4627
4628 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
4629
4630         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix
4631         typo in comment.
4632
4633 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
4634
4635         * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
4636         and its corresponding call arg location note.
4637
4638 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
4639             Andrew Burgess  <andrew.burgess@embecosm.com>
4640
4641         * config/arc/arc-protos.h (arc_compute_frame_size): Delete
4642         declaration.
4643         (arc_return_slot_offset): Likewise.
4644         (arc_eh_return_address_location): New declaration.
4645         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
4646         (MUST_SAVE_REGISTER): Add exception handler case.
4647         (MUST_SAVE_RETURN_ADDR): Likewise.
4648         (arc_frame_pointer_required): Likewise.
4649         (arc_frame_pointer_needed): New function.
4650         (arc_compute_frame_size): Changed.
4651         (arc_expand_prologue): Likewise.
4652         (arc_expand_epilogue): Likewise.
4653         (arc_initial_elimination_offset): Likewise.
4654         (arc_return_slot_offset): Delete.
4655         (arc_eh_return_address_location): New function.
4656         (arc_builtin_setjmp_frame_value): Likewise.
4657         * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers.
4658         (EH_RETURN_STACKADJ_RTX): Define.
4659         (EH_RETURN_HANDLER_RTX): Likewise.
4660         * config/arc/arc.md (eh_return): Delete.
4661
4662 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
4663
4664         * print-tree.h (debug_vec_tree): Remove prototype.
4665         * gdbinit.in (pvt): Remove macro.
4666
4667 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
4668
4669         PR tree-optimization/83047
4670         * gimple-ssa-store-merging.c
4671         (imm_store_chain_info::output_merged_store): If the loads with the
4672         same vuse are in different basic blocks, for load_gsi pick a load
4673         location that is dominated by the other loads.
4674
4675         PR c++/83059
4676         * config/i386/i386.c (ix86_memmodel_check): Start
4677         -Winvalid-memory-model diagnostics with lowercase letter.
4678
4679         PR debug/82718
4680         * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily
4681         set in_cold_section_p to the partition containing loc_list->first.
4682         When seeing loc_list->last_before_switch node, update secname and
4683         perform range_across_switch second partition handling only after that.
4684
4685         PR debug/82933
4686         * run-rtl-passes.c: Include debug.h.
4687         (run_rtl_passes): Call debug_hooks->assembly_start.
4688         * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked
4689         multiple times.
4690
4691         PR target/82981
4692         * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of
4693         OPTAB_DIRECT in calls to expand_simple_binop.
4694
4695 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
4696
4697         PR c/81404
4698         * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o.
4699
4700 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
4701
4702         PR c++/72786
4703         * spellcheck.h (best_match::blithely_get_best_candidate): New
4704         accessor.
4705
4706 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
4707
4708         * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics
4709         with lower case letter.
4710
4711 2017-11-20  Uros Bizjak  <ubizjak@gmail.com>
4712
4713         * config/i386/i386.md (bswaphi2): New expander.
4714         (*bswaphi2_movbe): New insn pattern.
4715         (bswaphi -> rorhi pepehole2): New peephole pattern.
4716
4717 2017-11-20  Jeff Law  <law@redhat.com>
4718
4719         * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o.
4720         * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c.
4721         * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c.
4722         * gimple-ssa-evrp.c: Remove bits moved into new files.  Include
4723         gimple-ssa-evrp-analyze.h.
4724
4725         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not
4726         set BB_VISITED here.
4727         (evrp_range_analyzer::enter): Set BB_VISITED here instead.
4728
4729 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
4730
4731         * tree-predcom.c: Add general comment on Store-Store chains.
4732         (split_data_refs_to_components): Postpone clearing eliminate_store_p
4733         flag in component.
4734         (get_chain_last_ref_at): Rename into...
4735         (get_chain_last_write_at): ...this.
4736         (get_chain_last_write_before_load): New function.
4737         (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to
4738         CT_STORE_STORE when write reference is added.
4739         (determine_roots_comp): Support load ref in CT_STORE_STORE chains.
4740         (is_inv_store_elimination_chain): Update get_chain_last_write_at call.
4741         (initialize_root_vars_store_elim_1): Ditto.
4742         (initialize_root_vars_store_elim_2): Ditto.  Replace rhs once default
4743         definition is created.
4744         (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE
4745         chain by replacing it with dominant stored value.
4746
4747 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
4748
4749         * tree-predcom.c (add_ref_to_chain): Remove check on distance.
4750
4751 2017-11-20  Marc Glisse  <marc.glisse@inria.fr>
4752
4753         * vr-values.c (extract_range_from_binary_expr): Use a full range
4754         for VR_VARYING.
4755
4756 2017-11-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4757
4758         * config/arm/arm.md (R4_REGNUM): Define constant.
4759         (nonsecure_call_internal): Remove r4 clobber.
4760         (nonsecure_call_value_internal): Likewise.
4761         * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second
4762         clobber and resequence match_operands.
4763         (nonsecure_call_value_reg_thumb1_v5): Likewise.
4764         * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise.
4765         (nonsecure_call_value_reg_thumb2): Likewise.
4766
4767 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
4768
4769         PR tree-optimization/78821
4770         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up
4771         if base is TARGET_MEM_REF.  If base is not MEM_REF, set base_addr
4772         to the address of the base rather than the base itself.
4773         (find_bswap_or_nop_1): Just use pointer comparison for vuse check.
4774         (find_bswap_or_nop_finalize): New function.
4775         (find_bswap_or_nop): Use it.
4776         (bswap_replace): Return a tree rather than bool, change first
4777         argument from gimple * to gimple_stmt_iterator, allow inserting
4778         into an empty sequence, allow ins_stmt to be NULL - then emit
4779         all stmts into gsi.  Fix up MEM_REF address gimplification.
4780         (pass_optimize_bswap::execute): Adjust bswap_replace caller.
4781         (struct store_immediate_info): Add N and INS_STMT non-static
4782         data members.
4783         (store_immediate_info::store_immediate_info): Initialize them
4784         from newly added ctor args.
4785         (merged_store_group::apply_stores): Formatting fixes.  Sort by
4786         bitpos at the end.
4787         (stmts_may_clobber_ref_p): For stores call also
4788         refs_anti_dependent_p.
4789         (gather_bswap_load_refs): New function.
4790         (imm_store_chain_info::try_coalesce_bswap): New method.
4791         (imm_store_chain_info::coalesce_immediate_stores): Use it.
4792         (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially.
4793         (imm_store_chain_info::output_merged_store): Fail if number of
4794         new estimated stmts is bigger or equal than old.  Handle LROTATE_EXPR
4795         and NOP_EXPR rhs_code.
4796         (pass_store_merging::process_store): Compute n and ins_stmt, if
4797         ins_stmt is non-NULL and the store rhs is otherwise invalid, use
4798         LROTATE_EXPR rhs_code.  Pass n and ins_stmt to store_immediate_info
4799         ctor.
4800         (pass_store_merging::execute): Calculate dominators.
4801
4802         * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number,
4803         BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP,
4804         CMPXCHG, do_shift_rotate, verify_symbolic_number_p,
4805         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
4806         find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap,
4807         class pass_optimize_bswap, bswap_replace,
4808         pass_optimize_bswap::execute): Moved to ...
4809         * gimple-ssa-store-merging.c: ... this file.
4810         Include optabs-tree.h.
4811         (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p,
4812         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
4813         find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into
4814         anonymous namespace, remove static keywords.
4815         (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here...
4816         (pass_optimize_bswap::execute): ... rather than here.  Formatting fix.
4817
4818 2017-11-20  Jan Hubicka  <hubicka@ucw.cz>
4819
4820         PR bootstrap/83062
4821         * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch.
4822
4823 2017-11-20  Aldy Hernandez  <aldyh@redhat.com>
4824
4825         * vec.h (debug_helper): New function.
4826         (DEFINE_DEBUG_VEC): New macro.
4827         * hash-set.h (debug_helper): New function.
4828         (DEFINE_DEBUG_HASH_SET): New macro.
4829         * cfg.c (debug_slim (edge)): New function.
4830         Call DEFINE_DEBUG_VEC for edges.
4831         Call DEFINE_DEBUG_HASH_SET for edges.
4832         * cfghooks.c (debug_slim (basic_block)): New function.
4833         Call DEFINE_DEBUG_VEC for basic blocks.
4834         Call DEFINE_DEBUG_HASH_SET for basic blocks.
4835         * print-tree.c (debug_slim): New function to handle trees.
4836         Call DEFINE_DEBUG_VEC for trees.
4837         Call DEFINE_DEBUG_HASH_SET for trees.
4838         (debug (vec<tree, va_gc>) &): Remove.
4839         (debug (<vec<tree, va_gc>) *): Remove.
4840         * print-rtl.c (debug_slim): New function to handle const_rtx.
4841         Call DEFINE_DEBUG_VEC for rtx_def.
4842         Call DEFINE_DEBUG_VEC for rtx_insn.
4843         Call DEFINE_DEBUG_HASH_SET for rtx_def.
4844         Call DEFINE_DEBUG_HASH_SET for rtx_insn.
4845         * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove.
4846         (debug (vec<rtx_insn *> *ptr): Remove.
4847         (debug_insn_vector): Remove.
4848         * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree.
4849
4850 2017-11-20  Tom de Vries  <tom@codesourcery.com>
4851
4852         PR rtl-optimization/82020
4853         * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of
4854         IF_THEN_ELSE condition.
4855
4856 2017-11-19  Jeff Law  <law@redhat.com>
4857
4858         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
4859         of degenerates resulting from ignoring an edge.
4860
4861 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
4862
4863         PR ipa/81360
4864         * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized
4865
4866 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
4867
4868         PR ipa/83001
4869         * profile-count.c (profile_count::to_sreal_scale): Fix return value
4870         for uninitialied counts.
4871
4872 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
4873
4874         PR ipa/60243
4875         * tree-inline.c (estimate_num_insns): Set to 1 at least.
4876
4877 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
4878
4879         PR target/82713
4880         * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types.
4881
4882 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4883
4884         * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after
4885         "do while (0)".
4886
4887 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4888
4889         * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after
4890         "do {} while (0)".
4891
4892 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4893
4894         * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after
4895         macro body.
4896
4897 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4898
4899         * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after
4900         "do {} while (0)".
4901         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same.
4902
4903 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4904
4905         * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after
4906         "do {} while (0)".
4907         * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing
4908         semicolon after MCORE_EXPORT_NAME call.
4909
4910 2017-11-19  Tom de Vries  <tom@codesourcery.com>
4911
4912         PR target/82961
4913         * vmsdbgout.c (vmsdbgout_early_finish): New function.
4914         (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish.
4915
4916 2017-11-18  Jan Hubicka  <hubicka@ucw.cz>
4917
4918         * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count.
4919         (cgraph_edge::clone): Cleanup updating of profile.
4920         * ipa-cp.c (update_profiling_info): Likewise.
4921         * ipa-inline-transform.c (inline_transform): Likewise.
4922         * ipa-inline.c (inline_small_functions): Add missing space to dump.
4923         * ipa-split.c (execute_split_functions): Do not split when function
4924         is cold.
4925         * predict.c (estimate_bb_frequencies): Cleanup updating of profile.
4926         * profile-count.c (profile_count::dump): Add global0.
4927         (profile_count::to_cgraph_frequency): Do not ICE when entry is
4928         undefined.
4929         (profile_count::to_sreal_scale): Likewise.
4930         (profile_count::adjust_for_ipa_scaling): Fix typo in comment.
4931         (profile_count::combine_with_ipa_count): New function.
4932         * profile-count.h (profile_guessed_global0adjusted): New.
4933         (profile_count::adjusted_zero): New.
4934         (profile_count::global0adjusted): New.
4935         (profile_count::combine_with_ipa_count): New.
4936         * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment;
4937         correct profile of return block of split functions.
4938         (copy_cfg_body): Remove unused profile_count.
4939         (copy_body): Likewise.
4940         (expand_call_inline): Update.
4941         (tree_function_versioning): Update.
4942
4943 2017-11-18  Aldy Hernandez  <aldyh@redhat.com>
4944
4945         * hash-set.h (hash_set::empty): New.
4946         * tree-ssa-threadbackward.h: Delete.
4947         * tree-ssa-threadbackward.c (class thread_jumps): New.
4948         Move max_threaded_paths into class.
4949         (fsm_find_thread_path): Remove arguments that are now in class.
4950         (profitable_jump_thread_path): Rename to...
4951         (thread_jumps::profitable_jump_thread_path): ...this.
4952         (convert_and_register_jump_thread_path): Rename to...
4953         (thread_jumps::convert_and_register_current_path): ...this.
4954         (check_subpath_and_update_thread_path): Rename to...
4955         (thread_jumps::check_subpath_and_update_thread_path): ...this.
4956         (register_jump_thread_path_if_profitable): Rename to...
4957         (thread_jumps::register_jump_thread_path_if_profitable): ...this.
4958         (handle_phi): Rename to...
4959         (thread_jumps::handle_phi): ...this.
4960         (handle_assignment): Rename to...
4961         (thread_jumps::handle_assignment): ...this.
4962         (fsm_find_control_statement_thread_paths): Rename to...
4963         (thread_jumps::fsm_find_control_statement_thread_paths): ...this.
4964         (find_jump_threads_backwards): Rename to...
4965         (thread_jumps::find_jump_threads_backwards): ...this.
4966         Initialize path local data.
4967         (pass_thread_jumps::execute): Call find_jump_threads_backwards
4968         from within thread_jumps class.
4969         (pass_early_thread_jumps::execute): Same.
4970
4971 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
4972
4973         * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts.
4974
4975 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
4976
4977         * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator
4978         to canonical location.
4979
4980 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
4981
4982         PR target/81356
4983         * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p):
4984         Remove.
4985         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define.
4986
4987 2017-11-17  H.J. Lu  <hongjiu.lu@intel.com>
4988
4989         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
4990         rcrt1.o%s/grcrt1.o%s for -static-pie.
4991
4992 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
4993
4994         * i386.c (ix86_multiplication_cost, ix86_division_cost,
4995         ix86_shift_rotate_cost): Break out from ...
4996         (ix86_rtx_costs): ... here.
4997         (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of
4998         vector operations.
4999
5000 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5001
5002         * predict.c (determine_unlikely_bbs): Set cgraph node count to 0
5003         when entry block was promoted unlikely.
5004         (estimate_bb_frequencies): Increase frequency scale.
5005         * profile-count.h (profile_count): Export precision info.
5006
5007 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5008
5009         * tree-tailcall.c (eliminate_tail_call): Be more careful about not
5010         disturbin profile of entry block.
5011
5012 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5013
5014         * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for
5015         roundoff errors.
5016
5017 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5018
5019         * ipa-cp.c (update_profiling_info): Handle conversion to local profile.
5020         * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does.
5021
5022 2017-11-17  Jeff Law  <law@redhat.com>
5023
5024         * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted
5025         from evrp_dom_walker class.  Various methods moved into new class.
5026         (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class.
5027         (evrp_range_analyzer::enter): New method.
5028         (evrp_range_analyzer::leave): New method.
5029         (evrp_dom_walker): Remove delegators no longer needed by this class.
5030         Replace vr_values data member with evrp_range_analyzer
5031
5032         * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New
5033         method extracted from evrp_dom_walker::before_dom_children.
5034         (evrp_dom_walker::record_ranges_from_stmt): Likewise.
5035         (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise.
5036
5037         * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method.
5038         Add private copy constructor and move assignment operators.
5039         Privatize methods and class data where trivially possible.
5040         (evrp_dom_walker::cleanup): New function, extracted from
5041         execute_early_vrp.  Simplify access to class data.
5042
5043         * vr-values.h (get_output_for_vrp): Prototype.
5044         * vr-values.c (get_output_for_vrp): New function extracted from
5045         vrp_visit_assignment_or_call and extract_range_from_stmt.
5046         (vrp_visit_assignment_or_call): Use get_output_for_vrp.  Simplify.
5047
5048 2017-11-17  Luis Machado  <luis.machado@linaro.org>
5049
5050         * config/aarch64/aarch64.c
5051         (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1.
5052         (qdf24xx_tunings) <autoprefetcher_model>: Set to
5053         tune_params::AUTOPREFETCHER_WEAK.
5054
5055 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
5056
5057         PR target/82641
5058         * config/arm/arm.c (arm_valid_target_attribute_rec):
5059         Parse "arch=" and "+<ext>".
5060         (arm_valid_target_attribute_tree): Re-init global options.
5061         (arm_option_override): Make non-static.
5062         (arm_options_perform_arch_sanity_checks): Make errors fatal.
5063         * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef.
5064         (__ARM_FEATURE_CRC32): Support undef.
5065         * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma.
5066         * doc/extend.texi (ARM Function Attributes): Add pragma and target.
5067
5068 2017-11-17  David Malcolm  <dmalcolm@redhat.com>
5069
5070         * gdbinit.in (break-on-diagnostic): New command.
5071
5072 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
5073
5074         * config/i386/i386.c (ix86_expand_epilogue): Change simple
5075         return to indirect jump for EH return if control-flow
5076         protection is enabled. Change explicit 'false' argument in
5077         pro_epilogue_adjust_stack with a value of
5078         flag_cf_protection.
5079         * config/i386/i386.md (simple_return_indirect_internal):
5080         Remove SImode restriction to support 64-bit.
5081
5082 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
5083
5084         * combine.c (added_notes_insn): New.
5085         (try_combine): Handle added_notes_insn like added_links_insn.
5086         Rewrite return value code.
5087         (distribute_notes): Set added_notes_insn to the earliest insn we added
5088         a note to.
5089
5090 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
5091
5092         PR rtl-optimization/82621
5093         * combine.c (try_combine): Do not split PARALLELs of two SETs if the
5094         dest of one of those SETs is unused.
5095
5096 2017-11-17  Richard Biener  <rguenther@suse.de>
5097
5098         PR fortran/83017
5099         * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind.
5100         * tree-pretty-print.c (dump_generic_node): Handle
5101         annot_expr_parallel_kind.
5102         * tree-cfg.c (replace_loop_annotate_in_block): Likewise.
5103         * gimplify.c (gimple_boolify): Likewise.
5104
5105 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
5106
5107         * config.gcc (extra_headers): Add cet.h for x86 targets.
5108         * config/i386/cet.h: New file.
5109         * doc/install.texi: Add --enable-cet/--disable-cet.
5110
5111 2017-11-17  Richard Biener  <rguenther@suse.de>
5112
5113         PR tree-optimization/83017
5114         * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread.
5115         (gen_parallel_loop): Properly count iterations.
5116         (parallelize_loops): Handle loop->can_be_parallel independent
5117         of flag_loop_parallelize_all.  Make static profitability test match
5118         the runtime one.
5119         * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New.
5120         * invoke.texi (parloops-min-per-thread): Document.
5121
5122 2017-11-17  Vineet Gupta  <vgupta@synopsys.com>
5123
5124         * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
5125         upstreaming review comments.
5126
5127 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
5128
5129         * expr.c (copy_blkmode_to_reg): Fix bitsize for targets
5130         with fast unaligned access.
5131         * doc/sourcebuild.texi (word_mode_no_slow_unalign): New.
5132
5133 2017-11-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5134
5135         * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate
5136         to_clear_arg_regs_bitmap to the same size as to_clear_bitmap.
5137
5138 2017-11-17  Richard Biener  <rguenther@suse.de>
5139
5140         * tree-ssa-pre.c (phi_translate_1): Remove redundant constant
5141         folding of references.
5142
5143 2017-11-17  Qing Zhao  <qing.zhao@oracle.com>
5144
5145         PR middle-end/78809
5146         * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling
5147         of replacing call to strncmp with corresponding call to strcmp when
5148         meeting conditions.
5149
5150 2017-11-17  Sergey Shalnov  <Sergey.Shalnov@intel.com>
5151
5152         * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning
5153         option prefer-avx256 for skylake-avx512 configuration.
5154         * config/i386/i386.c (ix86_option_override_internal): Ditto.
5155         (get_builtin_code_for_version): Ditto.
5156
5157 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
5158             Monk Chiang  <sh.chiang04@gmail.com>
5159
5160         * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify.
5161         (FIXED_REGISTERS): Reserve more register numbers.
5162         (CALL_USED_REGISTERS): Likewise.
5163         (REG_ALLOC_ORDER): Likewise.
5164         (REG_CLASS_CONTENTS): Likewise.
5165         (REGISTER_NAMES): Likewise.
5166
5167 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
5168             Kito Cheng  <kito.cheng@gmail.com>
5169
5170         * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI
5171         V2SI.
5172         * config/nds32/iterators.md: Add vector mode iterators and attributes.
5173
5174 2017-11-16  Steven Munroe  <munroesj@gcc.gnu.org>
5175
5176         * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct
5177         parameter list for vec_splats.
5178
5179 2017-11-16  Joseph Myers  <joseph@codesourcery.com>
5180
5181         * doc/invoke.texi (-std=c17): Refer to 2018 expected publication
5182         date of C17.
5183         (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases.
5184
5185 2017-11-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
5186
5187         PR bootstrap/82856
5188         * doc/install.texi: Document incompatibility of Perl >=5.6.26
5189         with the required version of automake 1.11.6.
5190
5191 2017-11-16  Pat Haugen  <pthaugen@us.ibm.com>
5192
5193         * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined
5194         for it.
5195         (DU_C2_3_power9): Correct reservation combinations.
5196         (FP_DIV_power9, VEC_DIV_power9): New.
5197         (power9-alu): Split out rotate/shift...
5198         (power9-rot): ...to here, correct dispatch resource.
5199         (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch
5200         resource.
5201         (power9-fp): Correct latency.
5202         (power9-sdiv): Add div/sqrt resource.
5203         (power9-ddiv): Correct latency, add div/sqrt resource.
5204         (power9-sqrt, power9-dsqrt): Add div/sqrt resource.
5205         (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt
5206         resource.
5207         (power9-qpdiv, power9-qpmul): Adjust resource usage.
5208
5209 2017-11-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
5210
5211         * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the
5212         switch statement mapping KF built-ins to TF built-ins if we don't
5213         have the proper ISA 3.0 assembler support.
5214
5215 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5216
5217         * tree-emutls.c (lower_emutls_data): Remove unused bb_freq.
5218         (lower_emutls_function_body): Do not compute it.
5219
5220 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5221
5222         * ipa-split.c (split_bb_info): Turn time to sreal.
5223         (split_point): Likewise.
5224         (dump_split_point): Likewise.
5225         (fine_split_points): Likewise.
5226         (execute_split_functions): Only zero split_bbs; turn time to sreals.
5227
5228 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5229
5230         * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently
5231         in sreal.
5232
5233 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5234
5235         * predict.c (combine_predictions_for_bb): Preserve zero predicted
5236         edges.
5237         (expensive_function_p): Remove useless assert.
5238         (determine_unlikely_bbs): Propagate also forward; determine cold blocks
5239
5240 2017-11-16  Martin Sebor  <msebor@redhat.com>
5241
5242         PR tree-optimization/82588
5243         PR tree-optimization/82583
5244         * tree-vrp.c (check_array_ref): Handle flexible array members,
5245         string literals, and inner indices.
5246         (search_for_addr_array): Add detail to diagnostics.
5247
5248 2017-11-16  Nathan Sidwell  <nathan@acm.org>
5249
5250         PR c++/82836
5251         PR c++/82737
5252         * tree.h (COPY_DECL_RTL): Rename parms for clarity.
5253         (SET_DECL_ASSEMBLER_NAME): Forward to
5254         overwrite_decl_assembler_name.
5255         (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity.
5256         (overwrite_decl_assembler_name): Declare.
5257         * tree.c (overwrite_decl_assembler_name): New.
5258         * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare.
5259         (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default.
5260         (LANG_HOOKS_INITIALIZER): Add it.
5261         * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name.
5262         * langhooks.c (lhd_set_decl_assembler_name): Use
5263         SET_DECL_ASSEMBLER_NAME.
5264         (lhd_overwrite_decl_assembler_name): Default implementation.
5265
5266 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
5267             Jackson Woodruff  <jackson.woodruff@arm.com>
5268
5269         PR tree-optimization/71026
5270         * match.pd: Canonicalize constant multiplies in division.
5271
5272 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
5273
5274         * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry.
5275         * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE):
5276         Remove OPT_fomit_frame_pointer entry.
5277         * common/config/arc/arc-common.c: Likewise.
5278         * common/config/arm/arm-common.c: Likewise.
5279         * common/config/avr/avr-common.c: Likewise.
5280         * common/config/c6x/c6x-common.c: Likewise.
5281         * common/config/cr16/cr16-common.c: Likewise.
5282         * common/config/cris/cris-common.c: Likewise.
5283         * common/config/epiphany/epiphany-common.c: Likewise.
5284         * common/config/fr30/fr30-common.c: Likewise.
5285         * common/config/frv/frv-common.c: Likewise.
5286         * common/config/ia64/ia64-common.c: Likewise.
5287         * common/config/iq2000/iq2000-common.c: Likewise.
5288         * common/config/lm32/lm32-common.c: Likewise.
5289         * common/config/m32r/m32r-common.c: Likewise.
5290         * common/config/mcore/mcore-common.c: Likewise.
5291         * common/config/microblaze/microblaze-common.c: Likewise.
5292         * common/config/mips/mips-common.c: Likewise.
5293         * common/config/mmix/mmix-common.c: Likewise.
5294         * common/config/mn10300/mn10300-common.c: Likewise.
5295         * common/config/nios2/nios2-common.c: Likewise.
5296         * common/config/pa/pa-common.c: Likewise.
5297         * common/config/pdp11/pdp11-common.c: Likewise.
5298         * common/config/powerpcspe/powerpcspe-common.c: Likewise.
5299         * common/config/riscv/riscv-common.c: Likewise.
5300         * common/config/rs6000/rs6000-common.c: Likewise.
5301         * common/config/rx/rx-common.c: Likewise.
5302         * common/config/s390/s390-common.c: Likewise.
5303         * common/config/sh/sh-common.c: Likewise.
5304         * common/config/sparc/sparc-common.c: Likewise.
5305         * common/config/tilegx/tilegx-common.c: Likewise.
5306         * common/config/tilepro/tilepro-common.c: Likewise.
5307         * common/config/v850/v850-common.c: Likewise.
5308         * common/config/visium/visium-common.c: Likewise.
5309         * common/config/xstormy16/xstormy16-common.c: Likewise.
5310         * common/config/xtensa/xtensa-common.c: Likewise.
5311         * invoke.texi (-fomit-frame-pointer): Update documentation.
5312
5313 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
5314
5315         * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq.
5316
5317 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5318
5319         * cfg.c (scale_bbs_frequencies_int,
5320         cale_bbs_frequencies_gcov_type): Remove.
5321         * cfg.h (scale_bbs_frequencies_int,
5322         cale_bbs_frequencies_gcov_type): Remove.
5323
5324 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5325
5326         * tree-ssa-loop-manip.c
5327         (scale_dominated_blocks_in_loop): Update to profile counts.
5328         (tree_transform_and_unroll_loop): Likewise.
5329
5330 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5331
5332         * tree-vect-loop-manip.c (vect_do_peeling): Do not use
5333         scale_bbs_frequencies_int.
5334
5335 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5336
5337         * final.c (compute_alignments): Use counts rather than frequencies.
5338
5339 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5340
5341         * cfgloopanal.c: Include sreal.h
5342         (average_num_loop_insns): Use counts and sreal for accounting.
5343
5344 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5345
5346         * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile
5347         manipulation.
5348
5349 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5350             Kito Cheng  <kito.cheng@gmail.com>
5351
5352         * config/nds32/constraints.md: Provide more constraints.
5353         * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES,
5354         REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to
5355         support constraints usage.
5356
5357 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5358
5359         * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove.
5360
5361 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5362             Kito Cheng  <kito.cheng@gmail.com>
5363
5364         * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string.
5365         * config/nds32/nds32.opt: Refine the layout.
5366         * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2,
5367         TARGET_EXT_STRING): Support new options.
5368         * config/nds32/nds32.h: Likewise.
5369         * config/nds32/nds32.md: Likewise.
5370         * config/nds32/nds32-predicates.c: Likewise.
5371         * config/nds32/constraints.md: Likewise.
5372         * common/config/nds32/nds32-common.c: Likewise.
5373
5374 2017-11-16  Julia Koval  <julia.koval@intel.com>
5375
5376         PR target/82983
5377         * config/i386/gfniintrin.h: Add sse check.
5378         * config/i386/i386.c (ix86_expand_builtin): Fix gfni check.
5379
5380 2017-11-16  Julia Koval  <julia.koval@intel.com>
5381
5382         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET,
5383         OPTION_MASK_ISA_AVX512VBMI2_UNSET): New.
5384         (ix86_handle_option): Handle -mavx512vbmi2.
5385         * config/i386/cpuid.h: Add bit_AVX512VBMI2.
5386         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
5387         * config/i386/i386-c.c (__AVX512VBMI2__): New.
5388         * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2.
5389         (ix86_valid_target_attribute_inner_p): Ditto.
5390         * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New.
5391         * config/i386/i386.opt (mavx512vbmi2): New option.
5392         * doc/invoke.texi: Add new option.
5393
5394 2017-11-16  Julia Koval  <julia.koval@intel.com>
5395
5396         * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8,
5397         _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8,
5398         _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8,
5399         _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8,
5400         _mm512_gf2p8mul_epi8): New intrinsics.
5401         * config/i386/i386-builtin-types.def
5402         (V64QI_FTYPE_V64QI_V64QI): New type.
5403         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi,
5404         __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi,
5405         __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi,
5406         __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins.
5407         * config/i386/sse.md (vgf2p8mulb_*): New pattern.
5408         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
5409
5410 2017-11-15  Uros Bizjak  <ubizjak@gmail.com>
5411
5412         * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
5413         explicitly as a stream of bytes.
5414
5415 2017-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5416
5417         * config/rs6000/altivec.h (vec_xst_be): New #define.
5418         * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename
5419         and externalize from *altivec_vperm_<mode>_internal.
5420         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro
5421         instantiation.
5422         (XL_BE_V8HI): Likewise.
5423         (XL_BE_V4SI): Likewise.
5424         (XL_BE_V4SI): Likewise.
5425         (XL_BE_V2DI): Likewise.
5426         (XL_BE_V4SF): Likewise.
5427         (XL_BE_V2DF): Likewise.
5428         (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation.
5429         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct
5430         all array entries with these keys: VSX_BUILTIN_VEC_XL,
5431         VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST.  Add entries for key
5432         VSX_BUILTIN_VEC_XST_BE.
5433         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove.
5434         (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_*
5435         built-ins.
5436         (altivec_init_builtins): Replace conditional calls to def_builtin
5437         for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and
5438         __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR
5439         with unconditional calls.  Remove calls to def_builtin for
5440         __builtin_vsx_le_be_<mode>.  Add a call to def_builtin for
5441         __builtin_vec_xst_be.
5442         * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn
5443         to define_expand, and add alternate RTL generation for P8.
5444         (*vsx_ld_elemrev_v8hi_internal): New define_insn based on
5445         vsx_ld_elemrev_v8hi.
5446         (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and
5447         add alternate RTL generation for P8.
5448         (*vsx_ld_elemrev_v16qi_internal): New define_insn based on
5449         vsx_ld_elemrev_v16qi.
5450         (vsx_st_elemrev_v8hi): Convert define_insn
5451         to define_expand, and add alternate RTL generation for P8.
5452         (*vsx_st_elemrev_v8hi_internal): New define_insn based on
5453         vsx_st_elemrev_v8hi.
5454         (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and
5455         add alternate RTL generation for P8.
5456         (*vsx_st_elemrev_v16qi_internal): New define_insn based on
5457         vsx_st_elemrev_v16qi.
5458
5459 2017-11-15  H.J. Lu  <hongjiu.lu@intel.com>
5460
5461         PR target/82990
5462         * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove
5463         TARGET_AVX512ER check.
5464         (ix86_option_override_internal): Set MASK_VZEROUPPER if
5465         neither -mzeroupper nor -mno-zeroupper is used and
5466         TARGET_EMIT_VZEROUPPER is set.
5467         * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New.
5468         * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER.
5469
5470 2017-11-15  Will Schmidt  <will_schmidt@vnet.ibm.com>
5471
5472         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
5473         folding of vector compares.
5474         (fold_build_vec_cmp): New helper function.
5475         (fold_compare_helper): New helper function.
5476         (builtin_function_type): Add compare builtins to the list of functions
5477         having unsigned arguments.  Cosmetic updates to comment indentation.
5478         * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify
5479         the not+eq combination.
5480
5481 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
5482
5483         PR tree-optimization/82726
5484         PR tree-optimization/70754
5485         * tree-predcom.c (order_drefs_by_pos): New function.
5486         (combine_chains): Move code setting has_max_use_after to...
5487         (try_combine_chains): ...here.  New parameter.  Sort combined chains
5488         according to position information.
5489         (tree_predictive_commoning_loop): Update call to above function.
5490         (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
5491
5492 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
5493
5494         PR tree-optimization/82726
5495         Revert
5496         2017-01-23  Bin Cheng  <bin.cheng@arm.com>
5497
5498         PR tree-optimization/70754
5499         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
5500         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
5501         combined stmt before it if not NULL.
5502         (combine_chains): Process refs reversely and compute dominance point
5503         for root ref.
5504
5505         Revert
5506         2017-02-23  Bin Cheng  <bin.cheng@arm.com>
5507
5508         PR tree-optimization/79663
5509         * tree-predcom.c (combine_chains): Process refs in reverse order
5510         only for ZERO length chains, and add explaining comment.
5511
5512 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
5513
5514         * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New
5515         * config/arm/arm-tables.opt (armv8.3-a): Regenerated.
5516         * doc/invoke.texi (ARM Options): Add armv8.3-a.
5517
5518 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
5519
5520         * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2.
5521
5522 2017-11-15  Martin Liska  <mliska@suse.cz>
5523
5524         * tree-cfg.c (pass_warn_function_return::execute):
5525         Compare warn_return_type for greater than zero.
5526
5527 2017-11-15  Sebastian Peryt  <sebastian.peryt@intel.com>
5528
5529         PR target/82941
5530         PR target/82942
5531         * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition
5532         to return true on Xeon and not on Xeon Phi.
5533         (ix86_check_avx256_register): Changed to ...
5534         (ix86_check_avx_upper_register): ... this. Add extra check for
5535         VALID_AVX512F_REG_OR_XI_MODE.
5536         (ix86_avx_u128_mode_needed): Changed
5537         ix86_check_avx256_register to ix86_check_avx_upper_register.
5538         (ix86_check_avx256_stores): Changed to ...
5539         (ix86_check_avx_upper_stores): ... this. Changed
5540         ix86_check_avx256_register to ix86_check_avx_upper_register.
5541         (ix86_avx_u128_mode_after): Changed
5542         avx_reg256_found to avx_upper_reg_found. Changed
5543         ix86_check_avx256_stores to ix86_check_avx_upper_stores.
5544         (ix86_avx_u128_mode_entry): Changed
5545         ix86_check_avx256_register to ix86_check_avx_upper_register.
5546         (ix86_avx_u128_mode_exit): Ditto.
5547         * config/i386/i386.h: (host_detect_local_cpu): New define.
5548
5549 2017-11-15  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
5550
5551         * config/arm/xgene1.md (xgene1): Split into automatons
5552         xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd.
5553         (xgene1_f_load): Adjust reservations and/or types.
5554         (xgene1_f_store): Likewise.
5555         (xgene1_load_pair): Likewise.
5556         (xgene1_store_pair): Likewise.
5557         (xgene1_fp_load1): Likewise.
5558         (xgene1_load1): Likewise.
5559         (xgene1_store1): Likewise.
5560         (xgene1_move): Likewise.
5561         (xgene1_alu): Likewise.
5562         (xgene1_simd): Likewise.
5563         (xgene1_bfm): Likewise.
5564         (xgene1_neon_load1): Likewise.
5565         (xgene1_neon_store1): Likewise.
5566         (xgene1_neon_logic): Likewise.
5567         (xgene1_neon_st1): Likewise.
5568         (xgene1_neon_ld1r): Likewise.
5569         (xgene1_alu_cond): Added.
5570         (xgene1_shift_reg): Likwise.
5571         (xgene1_bfx): Likewise.
5572         (xgene1_mul): Split into xgene1_mul32, xgene1_mul64.
5573
5574 2017-11-15  Jakub Jelinek  <jakub@redhat.com>
5575
5576         PR target/82981
5577         * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
5578         ssa-iterators.h.
5579         (can_widen_mult_without_libcall): New function.
5580         (expand_mul_overflow): If only checking unsigned mul overflow,
5581         not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
5582         Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
5583         no other way works.  Add MULT_HIGHPART_EXPR + MULT_EXPR support.
5584         (expand_DIVMOD): Formatting fix.
5585         * expmed.h (expand_mult): Add NO_LIBCALL argument.
5586         * expmed.c (expand_mult): Likewise.  Use OPTAB_WIDEN rather
5587         than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.
5588
5589         PR tree-optimization/82977
5590         * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy
5591         constructed temporary to strlen_to_stridx.put.
5592
5593 2017-11-15  Martin Liska  <mliska@suse.cz>
5594
5595         * configure.ac: Remove -fkeep-inline-functions from coverage_flags.
5596         * configure: Regenerate.
5597
5598 2017-11-15  Martin Liska  <mliska@suse.cz>
5599
5600         PR target/82927
5601         * config/sh/sh-mem.cc: Use proper probability for
5602         REG_BR_PROB_NOTE.
5603
5604 2017-11-14  Jeff Law  <law@redhat.com>
5605
5606         * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing
5607         the red zone for stack_clash_protection_final_dynamic_probe targets
5608         when the total dynamic stack size is zero bytes.
5609
5610         * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread
5611         blocks is post order.
5612
5613 2017-11-15  Alexandre Oliva  <aoliva@redhat.com>
5614
5615         * dumpfile.h (TDF_COMPARE_DEBUG): New.
5616         * final.c (rest_of_clean_state): Set it for the
5617         -fcompare-debug dump.
5618         * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF
5619         class when TDF_COMPARE_DEBUG is set.
5620
5621         * dwarf2out.c (gen_producer_string): Discard
5622         OPT_fcompare_debug.
5623
5624 2017-11-15  Joseph Myers  <joseph@codesourcery.com>
5625
5626         PR c/81156
5627         * doc/extend.texi (Other Builtins): Document __builtin_tgmath.
5628         * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose)
5629         (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2)
5630         (__TGMATH_REAL_2_3): Remove macros.
5631         (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2)
5632         (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using
5633         __builtin_tgmath.
5634         (frexp, ldexp, nexttoward, scalbn, scalbln): Define using
5635         __TGMATH_REAL_2.
5636         (remquo): Define using __TGMATH_REAL_3.
5637
5638 2017-11-14  Jeff Law  <law@redhat.com>
5639
5640         * vr-values.c: New file with contents extracted from tree-vrp.c.
5641         * Makefile.in (OBJS): Add vr-values.o
5642         * tree-vrp.h (set_value_range_to_nonnull): Prototype.
5643         (set_value_range, set_and_canonicalize_value_range): Likewise.
5644         (vrp_bitmap_equal_p, range_is_nonnull): Likewise.
5645         (value_range_constant_singleton, symbolic_range_p): Likewise.
5646         (compare_values, compare_values_warnv, vrp_val_is_min): Likewise.
5647         (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise.
5648         (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise.
5649         (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise.
5650         (find_case_label_range, find_case_label_index): Likewise.
5651         (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise.
5652         (range_int_cst_singleton_p, value_inside_range): Likewise.
5653         (get_single_symbol): Likewise.
5654         (switch_update): Move structure definition here.
5655         (to_remove_edges, to_update_switch_stmts): Provide externs.
5656         * tree-vrp.c: Move all methods for vr-values class to vr-values.c
5657         (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible.
5658         (vrp_val_is_min, set_value_range): Likewise.
5659         (set_and_canonicalize_value_range, copy_value_range): Likewise.
5660         (set_value_range_to_value, set_value_range_to_nonnull): Likewise.
5661         (set_value_range_to_null, vrp_bitmap_equal_p): Likewise.
5662         (range_is_nonnull, range_int_cst_p): Likewwise.
5663         (range_int_cst_singleton_p, symbolic_range_p): Likewise.
5664         (get_single_symbol, operand_less_p): Likewise
5665         (compare_values_warnv, compare_values): Likewise.
5666         (value_inside_range, value_range_constant_singleton): Likewise.
5667         (zero_nonzero_bitgs_from_vr): Likewise.
5668         (extract_range_from_binary_expr_1): Likewise.
5669         (overflow_comparison_p): Likewise.
5670         (to_remove_edges, to_update_switch_stmts): Likewise.
5671         (find_case_label-index, find_case_label_range): Likewise.
5672         (switch_update, set_value_range_to_nonnegative): Remove.
5673         (set_value_range_to_truthvalue): Likewise.
5674         (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise.
5675         (gimple_stmt_nonzero_p, compare_ranges): Likewise.
5676         (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise.
5677         (find_case_label_ranges, test_for_singularity): Likewise.
5678         (range_fits_type_p, simplify_conversion_using_ranges): LIkewise.
5679         (x_vr_values): Move to its remaining use site.
5680
5681 2017-11-10  Jeff Law  <law@redhat.com>
5682
5683         * vr-values.h (VR_INITIALIZER): Move #define here.
5684         * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
5685         * Makefile.in (OBJS): Add tree-evrp.o
5686         * tree-vrp.h (assert_info): Move structure definition here.
5687         (set_value_range_to_varying): Prototype.
5688         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
5689         (infer_value_range, register_edge_assert_for): Likewise.
5690         (stmt_interesting_for_vrp): Likewise.
5691         * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c.
5692         (set_value_range_to_varying): No longer static.
5693         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
5694         (infer_value_range, register_edge_assert_for): Likewise.
5695
5696 2017-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5697
5698         * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't
5699         generate the XXBRD instruction.
5700
5701         * config/rs6000/rs6000-c.c (is_float128_p): New helper function.
5702         (rs6000_builtin_type_compatible): Treat _Float128 and long double
5703         as being compatible if -mabi=ieeelongdouble.
5704         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros
5705         to setup float128 built-ins with hardware support.
5706         (BU_FLOAT128_HW_2): Likewise.
5707         (BU_FLOAT128_HW_3): Likewise.
5708         (BU_FLOAT128_HW_VSX_1): Likewise.
5709         (BU_FLOAT128_HW_VSX_2): Likewise.
5710         (scalar_extract_expq): Change float128 built-in functions to
5711         accommodate having both KFmode and TFmode functions.  Use the
5712         KFmode variant as the default.
5713         (scalar_extract_sigq): Likewise.
5714         (scalar_test_neg_qp): Likewise.
5715         (scalar_insert_exp_q): Likewise.
5716         (scalar_insert_exp_qp): Likewise.
5717         (scalar_test_data_class_qp): Likewise.
5718         (sqrtf128_round_to_odd): Delete processing the round to odd
5719         built-in functions as special built-in functions, and define them
5720         as float128 built-ins.  Use the KFmode variant as the default.
5721         (truncf128_round_to_odd): Likewise.
5722         (addf128_round_to_odd): Likewise.
5723         (subf128_round_to_odd): Likewise.
5724         (mulf128_round_to_odd): Likewise.
5725         (divf128_round_to_odd): Likewise.
5726         (fmaf128_round_to_odd): Likewise.
5727         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
5728         support for KFmode and TFmode xststdcqp calls.
5729         (rs6000_expand_builtin): If long double is IEEE 128-bit floating
5730         point, switch the built-in handlers for the get/set float128
5731         exponent, get float128 mantissa, float128 test built-ins, and the
5732         float128 round to odd built-in functions.  Eliminate creating the
5733         float128 round to odd built-in functions as special built-ins.
5734         (rs6000_init_builtins): Eliminate special creation of the float128
5735         round to odd built-in functions.
5736         * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in
5737         function insns to support both TFmode and KFmode variants.
5738         (xsxsigqp_<mode>): Likewise.
5739         (xsiexpqpf_<mode>): Likewise.
5740         (xsiexpqp_<mode>): Likewise.
5741         (xststdcqp_<mode>): Likewise.
5742         (xststdcnegqp_<mode>): Likewise.
5743         (xststdcqp_<mode>): Likewise.
5744
5745 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5746
5747         * tree-ssa-threadupdate.c (compute_path_counts): Remove
5748         unused path_in_freq_ptr parameter.
5749         (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq
5750
5751 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
5752
5753         * ipa-inline.c (edge_badness): Dump sreal frequency.
5754         (compute_inlined_call_time): Match natural implementaiton ...
5755         * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove
5756         forgotten division by CGRAPH_FREQ_BASE.
5757
5758 2017-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5759
5760         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
5761         Solaris 11.  Update comment.
5762         * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
5763         renaming.
5764         * config/sol2.h (STARTFILE_SPEC): Likewise.
5765         * configure: Regenerate.
5766
5767 2017-11-14  Carl Love  <cel@us.ibm.com>
5768
5769         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove
5770         le_ and be_ prefixes to swap* variables.  Remove
5771         if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case
5772         statements.
5773
5774 2017-11-14  Jason Merrill  <jason@redhat.com>
5775
5776         Support GTY((cache)) on hash_map.
5777         * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function.
5778         (ggc_cache_remove): Override it instead of ggc_mx.
5779         * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx.
5780         (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx.
5781         * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member.
5782         (simple_cache_map_traits): Override maybe_mx.
5783         * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry.
5784         (hash_map): Friend gt_cleare_cache.
5785         (gt_cleare_cache): New.
5786         * tree.h (tree_cache_traits): New hash_map traits class.
5787         (tree_cache_map): New typedef.
5788
5789 2017-11-14  Richard Biener  <rguenther@suse.de>
5790
5791         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p
5792         paramter and handling.
5793         (cleanup_control_flow_bb): Likewise.
5794         (cleanup_control_flow_pre): New helper performing a DFS walk
5795         to call cleanup_control_flow_bb in PRE order.
5796         (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb
5797         via cleanup_control_flow_pre.
5798
5799 2017-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
5800
5801         * config/aarch64/aarch64-simd.md
5802         (aarch64_simd_bsl<mode>_internal): Remove DImode.
5803         (*aarch64_simd_bsl<mode>_alt): Likewise.
5804         (aarch64_simd_bsldi_internal): New.
5805         (aarch64_simd_bsldi_alt): Likewise.
5806
5807 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5808
5809         * tracer.c (better_p): Do not compare frequencies.
5810         * reg-stack.c (better_edge): Likewise.
5811         * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
5812         and back.
5813
5814 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5815
5816         * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
5817         * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count.
5818         * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count.
5819         * lto-streamer-in.c (input_function): Use update_max_bb_count.
5820         * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count.
5821         * predict.c (maybe_hot_frequency_p): Inline to ...
5822         (maybe_hot_count_p): ... here; rewrite to counts.
5823         (counts_to_freqs): Rename to ...
5824         (update_max_bb_count): ... this one.
5825         (expensive_function_p): Use counts.
5826         (estimate_bb_frequencies): Update.
5827         (rebuild_frequencies): Update.
5828         * predict.h (counts_to_freqs): Rename to ...
5829         (update_max_bb_count): ... this one.
5830         * profile.c (compute_branch_probabilities): Add debug info
5831         * tree-inline.c (expand_call_inline): Update debug info.
5832         (optimize_inline_calls): Use update_max_bb_count..
5833         (tree_function_versioning): Use update_max_bb_count..
5834         * value-prof.c (gimple_value_profile_transformations):
5835         Do not use update_max_bb_count.
5836
5837 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5838
5839         * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time):
5840         always use frequencies.
5841
5842 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5843
5844         * bb-reorder.c: Remove frequencies from comments.
5845         (better_edge_p): Use profile counts.
5846         (find_traces): Dump profile counts.
5847         (rotate_loop): Use profile counts.
5848         (find_traces_1_round): Likewise.
5849         (connect_better_edge_p): Use counts instead of probabilities for
5850         reverse walk.
5851         (copy_bb_p): Drop early check for non-0 frequency.
5852         (sanitize_hot_paths): Update comments.
5853
5854 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5855
5856         * ipa-split.c (struct split_point): Add count.
5857         (consider_split): Do not compute incoming frequency; compute incoming
5858         count and store it to split_point.
5859         (split_function): Set count of the call to split part correctly.
5860
5861 2017-11-13  Carl Love  <cel@us.ibm.com>
5862
5863         * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand.
5864
5865 2017-11-13  Tom Tromey  <tom@tromey.com>
5866
5867         * doc/cpp.texi (Variadic Macros): Document __VA_OPT__.
5868
5869 2017-11-13  Carl Love  <cel@us.ibm.com>
5870
5871         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
5872         Add support for builtins:
5873         unsigned int vec_first_{,miss}_match_{,or_eos}index,
5874         vector {un,}signed {char,int,short},
5875         vector {un,}signed {char,int,short}) arguments.
5876         * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX,
5877         VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX):
5878         Add BU_P9V_AV_2 expansions for the builtins.
5879         * config/rs6000/altivec.h (vec_first_match_index,
5880         vec_first_mismatch_index, vec_first_match_or_eos_index,
5881         vec_first_mismatch_or_eos_index): Add #defines for the builtins.
5882         * config/rs6000/rs6000-protos.h (bytes_in_mode): Add
5883         new extern declaration.
5884         * config/rs6000/rs6000.c (bytes_in_mode): Add new function.
5885         * config/rs6000/vsx.md (first_match_index_<mode>,
5886         first_match_or_eos_index_<mode>, first_mismatch_index_<mode>,
5887         first_mismatch_or_eos_index_<mode>): Add define expand.
5888         (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb.
5889         * doc/extend.texi: Update the built-in documenation file for the new
5890         built-in functions.
5891
5892 2017-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
5893
5894         * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x
5895         into the min/max operations for _Float<N> and _Float<N>X types.
5896
5897 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
5898
5899         PR lto/81351
5900         * dwarf2out.c (do_eh_frame): New static variable.
5901         (dwarf2out_begin_prologue): Set it.
5902         (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame.
5903
5904 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5905
5906         * tree-ssa-coalesce.c (coalesce_cost): Fix formating.
5907
5908         * tree-ssa-sink.c (select_best_block): Do not use frequencies.
5909
5910 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
5911
5912         PR lto/81351
5913         * debug.h (dwarf2out_do_eh_frame): Declare.
5914         * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate.
5915         (dwarf2out_do_frame): Use it.
5916         (dwarf2out_do_cfi_asm): Likewise.
5917         * dwarf2out.c (dwarf2out_frame_finish): Likewise.
5918         (dwarf2out_assembly_start): Likewise.
5919         (dwarf2out_begin_prologue): Fix comment.
5920         * toplev.c (compile_file): Always call dwarf2out_frame_finish
5921         if the target needs either debug or unwind DWARF2 info.
5922         * lto-opts.c (lto_write_options): Do not save -fexceptions,
5923         -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros,
5924         -ftrapping-math, -ftrapv and -fwrapv.
5925
5926 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
5927
5928         * cgraph.c (cgraph_edge::sreal_frequency): New function.
5929         * cgraph.h (cgraph_edge::sreal_frequency): Declare.
5930         * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency.
5931         (estimate_edge_size_and_time): Likewise.
5932         (ipa_merge_fn_summary_after_inlining): Likewise.
5933         * ipa-inline.c (cgraph_freq_base_rec): Remove.
5934         (compute_uninlined_call_time): Use sreal_frequency.
5935         (compute_inlined_call_time): Likewise.
5936         (ipa_inline): Do not initialize cgraph_freq_base_rec.
5937         * profile-count.c: Include sreal.h.
5938         (profile_count::to_sreal_scale): New.
5939         * profile-count.h: Forward declare sreal.
5940         (profile_count::to_sreal_scale): Declare.
5941
5942 2017-11-13  Nathan Sidwell  <nathan@acm.org>
5943
5944         * diagnostic.c (maybe_line_and_column): New.
5945         (diagnostic_get_location_text): Use it.
5946         (diagnostic_report_current_module): Likewise.
5947         (test_diagnostic_get_location_text): Add tests.
5948
5949 2017-11-13  Luis Machado  <luis.machado@linaro.org>
5950
5951         * doc/md.texi (Specifying processor pipeline description): Fix
5952         incorrect latency for the div instruction example.
5953
5954 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
5955
5956         PR tree-optimization/78821
5957         * gimple-ssa-store-merging.c (compatible_load_p): Don't require
5958         that bit_not_p is the same.
5959         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
5960         (split_group): Count precisely bit_not_p bits in each statement.
5961         (invert_op): New function.
5962         (imm_store_chain_info::output_merged_store): Use invert_op to
5963         emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some
5964         but not all orig_stores have BIT_NOT_EXPR in the corresponding spots.
5965
5966 2017-11-13  Martin Liska  <mliska@suse.cz>
5967
5968         * gcov.c (struct coverage_info): Remove typedef of coverage_t.
5969         (struct source_info): Likewise.
5970         (add_branch_counts): Likewise.
5971         (add_line_counts): Likewise.
5972         (function_summary): Likewise.
5973         (output_intermediate_line): Likewise.
5974         (generate_results): Likewise.
5975
5976 2017-11-13  Martin Liska  <mliska@suse.cz>
5977
5978         * gcov.c (struct block_info): Remove typedef for block_t.
5979         (struct line_info): Likewise.
5980         (line_info::has_block): Likewise.
5981         (EXIT_BLOCK): Likewise.
5982         (unblock): Likewise.
5983         (circuit): Likewise.
5984         (get_cycles_count): Likewise.
5985         (process_file): Likewise.
5986         (read_graph_file): Likewise.
5987         (solve_flow_graph): Likewise.
5988         (find_exception_blocks): Likewise.
5989         (add_line_counts): Likewise.
5990         (accumulate_line_info): Likewise.
5991         (output_line_details): Likewise.
5992
5993 2017-11-13  Martin Liska  <mliska@suse.cz>
5994
5995         * gcov.c (struct arc_info): Remove typedef for arc_t.
5996         (struct line_info): Likewise.
5997         (add_branch_counts): Likewise.
5998         (output_branch_count): Likewise.
5999         (function_info::~function_info): Likewise.
6000         (circuit): Likewise.
6001         (output_intermediate_line): Likewise.
6002         (read_graph_file): Likewise.
6003         (solve_flow_graph): Likewise.
6004         (find_exception_blocks): Likewise.
6005         (add_line_counts): Likewise.
6006         (accumulate_line_info): Likewise.
6007         (output_line_details): Likewise.
6008         (output_function_details): Likewise.
6009
6010 2017-11-13  Martin Liska  <mliska@suse.cz>
6011
6012         * gcov.c (struct function_info): Remove typedef for function_t.
6013         (struct source_info): Likewise.
6014         (source_info::get_functions_at_location): Likewise.
6015         (solve_flow_graph): Likewise.
6016         (find_exception_blocks): Likewise.
6017         (add_line_counts): Likewise.
6018         (output_intermediate_file): Likewise.
6019         (process_file): Likewise.
6020         (generate_results): Likewise.
6021         (release_structures): Likewise.
6022         (read_graph_file): Likewise.
6023         (read_count_file): Likewise.
6024         (accumulate_line_counts): Likewise.
6025         (output_lines): Likewise.
6026
6027 2017-11-13  Martin Liska  <mliska@suse.cz>
6028
6029         * gcov.c (function_info::function_info): Remove num_counts
6030         and add vector<gcov_type>.
6031         (function_info::~function_info): Use the vector.
6032         (process_file): Likewise.
6033         (read_graph_file): Likewise.
6034         (read_count_file): Likewise.
6035         (solve_flow_graph): Likewise.
6036
6037 2017-11-13  Martin Liska  <mliska@suse.cz>
6038
6039         * gcov.c (function_info::is_artificial): New function.
6040         (process_file): Erase all artificial early.
6041         (generate_results): Skip as all artificial are already
6042         removed.
6043
6044 2017-11-13  Martin Liska  <mliska@suse.cz>
6045
6046         * gcov.c (read_graph_file): Store to global vector of functions.
6047         (read_count_file): Iterate the vector.
6048         (process_file): Likewise.
6049         (generate_results): Likewise.
6050         (release_structures): Likewise.
6051
6052 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
6053
6054         PR tree-optimization/82954
6055         * gimple-ssa-store-merging.c
6056         (imm_store_chain_info::coalesce_immediate_stores): If
6057         !infof->ops[N].base_addr, split group if info->ops[N].base_addr.
6058
6059 2017-11-13  Richard Sandiford  <richard.sandiford@linaro.org>
6060
6061         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
6062         Upddate call to ENDIAN_LANE_N.
6063         (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
6064         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
6065         (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
6066         and use aarch64_endian_lane_rtx.
6067         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
6068
6069 2017-11-12  Tom de Vries  <tom@codesourcery.com>
6070
6071         * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0).
6072
6073 2017-11-12  Tom de Vries  <tom@codesourcery.com>
6074
6075         * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body.
6076
6077 2017-11-12  Tom de Vries  <tom@codesourcery.com>
6078
6079         * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro
6080         body.
6081         * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same.
6082         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same.
6083         * defaults.h (ASM_OUTPUT_LABELREF): Same.
6084
6085 2017-11-11  Martin Sebor  <msebor@redhat.com>
6086
6087         PR c/81117
6088         * doc/extend.texi (attribute nonstring): Remove spurious argument.
6089
6090         PR bootstrap/82948
6091         * prefic.c (translate_name): Replace strncpy with memcpy to
6092         avoid -Wstringop-truncation.
6093
6094 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6095
6096         * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum.
6097
6098 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6099
6100         * predict.c (maybe_hot_frequency_p): Do not use cfun.
6101
6102 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6103
6104         * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile
6105         merging.
6106
6107 2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
6108
6109         * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
6110         enable generating XXBRH if the value is in a vector register.
6111         (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
6112         value is in a vector register.
6113         (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
6114         register to register bswap64's instead of doing the GPR sequence
6115         used on previous machines.
6116         (bswapdi2_xxbrd): New insn.
6117         (bswapdi2_reg): Disallow on ISA 3.0.
6118         (register to register bswap64 splitter): Do not split the insn on
6119         ISA 3.0 systems that use XXBRD.
6120
6121 2017-11-10  Martin Sebor  <msebor@redhat.com>
6122
6123         PR c/81117
6124         * config/darwin-c.c (framework_construct_pathname): Replace strncpy
6125         with memcpy.
6126         (find_subframework_file): Same.
6127
6128 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
6129
6130         * auto-profile.c (afdo_indirect_call): Drop frequency.
6131         * cgraph.c (symbol_table::create_edge): Drop frequency argument.
6132         (cgraph_node::create_edge): Drop frequency argument.
6133         (cgraph_node::create_indirect_edge): Drop frequency argument.
6134         (cgraph_edge::make_speculative): Drop frequency arguments.
6135         (cgraph_edge::resolve_speculation): Do not update frequencies
6136         (cgraph_edge::dump_edge_flags): Do not dump frequency.
6137         (cgraph_node::dump): Check consistency in IPA mode.
6138         (cgraph_edge::maybe_hot_p): Use IPA counter.
6139         (cgraph_edge::verify_count_and_frequency): Rename to ...
6140         (cgraph_edge::verify_count): ... this one; drop frequency checking.
6141         (cgraph_node::verify_node): Update.
6142         * cgraph.h (struct cgraph_edge): Drop frequency.
6143         (cgraph_edge::frequency): New function.
6144         * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
6145         frequencies.
6146         (cgraph_edge::rebuild_edges): Likewise.
6147         * cgraphclones.c (cgraph_edge::clone): Scale only counts.
6148         (duplicate_thunk_for_node): Do not pass frequency.
6149         (cgraph_node::create_clone): Scale only counts.
6150         (cgraph_node::create_virtual_clone): Do not pass frequency.
6151         (cgraph_node::create_edge_including_clones): Do not pass frequency.
6152         (cgraph_node::create_version_clone): Do not pass frequency.
6153         * cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
6154         (cgraph_node::expand_thunk): Do not pass frequency.
6155         (cgraph_node::create_wrapper): Do not pass frequency.
6156         * gimple-iterator.c (update_call_edge_frequencies): Do not pass
6157         frequency.
6158         * gimple-streamer-in.c (input_bb): Scale only IPA counts.
6159         * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
6160         * ipa-cp.c (ipcp_lattice::print): Use frequency function.
6161         (gather_caller_stats): Use frequency function.
6162         (ipcp_cloning_candidate_p): Use frequency function.
6163         (ipcp_propagate_stage): Use frequency function.
6164         (get_info_about_necessary_edges): Use frequency function.
6165         (update_profiling_info): Update only IPA profile.
6166         (update_specialized_profile): Use frequency functoin.
6167         (perhaps_add_new_callers): Update only IPA profile.
6168         * ipa-devirt.c (ipa_devirt): Use IPA profile.
6169         * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
6170         (dump_ipa_call_summary): Use frequency function.
6171         (estimate_edge_size_and_time): Use frequency function.
6172         (ipa_merge_fn_summary_after_inlining): Use frequency function.
6173         * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
6174         * ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
6175         (update_noncloned_counts): ... ths one; scale counts only.
6176         (clone_inlined_nodes): Do not scale frequency.
6177         (inline_call): Do not pass frequency.
6178         * ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
6179         (compute_inlined_call_time): Use IPA profile.
6180         (want_inline_small_function_p): Use IPA profile.
6181         (want_inline_self_recursive_call_p): Use IPA profile.
6182         (edge_badness): Use IPA profile.
6183         (lookup_recursive_calls): Use IPA profile.
6184         (recursive_inlining): Do not pass frequency.
6185         (resolve_noninline_speculation): Do not update frequency.
6186         (inline_small_functions): Collect max of IPA profile.
6187         (dump_overall_stats): Dump IPA porfile.
6188         (dump_inline_stats): Dump IPA porfile.
6189         (ipa_inline): Collect IPA stats.
6190         * ipa-inline.h (clone_inlined_nodes): Update prototype.
6191         * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
6192         (ipa_propagate_frequency): Use frequency function.
6193         (ipa_profile): Cleanup.
6194         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
6195         * ipa-utils.c (ipa_merge_profiles): Merge all profiles.
6196         * lto-cgraph.c (lto_output_edge): Do not stream frequency.
6197         (input_node): Do not stream frequency.
6198         (input_edge): Do not stream frequency.
6199         (merge_profile_summaries): Scale only IPA profiles.
6200         * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
6201         * predict.c (drop_profile): Do not recompute frequency.
6202         * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
6203         (ipa_tm_insert_gettmclone_call): Do not pass frequency.
6204         * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
6205         * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
6206         * tree-emutls.c (gen_emutls_addr): Do not pass frequency.
6207         * tree-inline.c (copy_bb): Do not scale frequency.
6208         (expand_call_inline): Do not scale frequency.
6209         (tree_function_versioning): Do not scale frequency.
6210         * ubsan.c (ubsan_create_edge): Do not pass frequency.
6211
6212 2017-11-10  Julia Koval  <julia.koval@intel.com>
6213
6214         * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8)
6215         (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8)
6216         (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8)
6217         (_mm256_maskz_gf2p8affine_epi64_epi8)
6218         (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8)
6219         (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
6220         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi)
6221         (__builtin_ia32_vgf2p8affineqb_v32qi)
6222         (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
6223         * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
6224
6225 2017-11-10  Tamar Christina  <tamar.christina@arm.com>
6226
6227         PR target/82641
6228         * config/arm/arm.c
6229         (arm_option_override): Refactor.
6230         (arm_option_reconfigure_globals): New.
6231         (arm_options_perform_arch_sanity_checks): New.
6232         * config/arm/arm-protos.h (arm_option_reconfigure_globals):
6233         New prototype.
6234         (arm_options_perform_arch_sanity_checks): Likewise
6235
6236 2017-11-10  Pat Haugen  <pthaugen@us.ibm.com>
6237
6238         * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
6239         (power9-qpmul): New.
6240         * rs6000/rs6000.md ("type" attr): Add qmul.
6241         (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
6242         *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
6243         *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
6244
6245 2017-11-10  Martin Sebor  <msebor@redhat.com>
6246
6247         PR c/81117
6248         * builtins.c (compute_objsize): Handle arrays that
6249         compute_builtin_object_size likes to fail for.  Make extern.
6250         * builtins.h (compute_objsize): Declare.
6251         (check_strncpy_sizes): New function.
6252         (expand_builtin_strncpy): Call check_strncpy_sizes.
6253         * gimple-fold.c (gimple_fold_builtin_strncpy): Implement
6254         -Wstringop-truncation.
6255         (gimple_fold_builtin_strncat): Same.
6256         * gimple.c (gimple_build_call_from_tree): Set call location.
6257         * tree-ssa-strlen.c (strlen_to_stridx): New global variable.
6258         (maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
6259         (handle_builtin_stxncpy, handle_builtin_strncat): Same.
6260         (handle_builtin_strlen): Use strlen_to_stridx.
6261         (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
6262         stpncpy.
6263         Use strlen_to_stridx.
6264         (pass_strlen::execute): Release strlen_to_stridx.
6265         * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
6266         (-Wstringop-truncation): Document new option.
6267
6268 2017-11-10  Martin Liska  <mliska@suse.cz>
6269
6270         PR gcov-profile/82702
6271         * gcov.c (main): Handle intermediate files in a different
6272         way.
6273         (get_gcov_intermediate_filename): New function.
6274         (output_gcov_file): Remove support of intermediate files.
6275         (generate_results): Allocate intermediate file.
6276         (release_structures): Clean-up properly fn_end.
6277         (output_intermediate_file): Start iterating with line 1.
6278
6279 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
6280
6281         PR tree-optimization/82929
6282         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
6283         ops_swapped_p non-static data member.
6284         (store_immediate_info::store_immediate_info): Clear it.
6285         (imm_store_chain_info::coalesce_immediate_stores): If swapping
6286         ops set ops_swapped_p.
6287         (count_multiple_uses): Handle ops_swapped_p.
6288
6289 2017-11-10  Martin Liska  <mliska@suse.cz>
6290
6291         * coverage.c (coverage_init): Stream information about
6292         support of has_unexecuted_blocks.
6293         * doc/gcov.texi: Document that.
6294         * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
6295         * gcov.c (read_graph_file): Likewise.
6296         (output_line_beginning): Fix a small issue with
6297         color output.
6298
6299 2017-11-10  Bin Cheng  <bin.cheng@arm.com>
6300
6301         * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
6302         reference of trivial component.
6303
6304 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
6305
6306         PR bootstrap/82916
6307         * gimple-ssa-store-merging.c
6308         (pass_store_merging::terminate_all_aliasing_chains): For
6309         gimple_store_p stmts also call refs_output_dependent_p.
6310
6311         PR rtl-optimization/82913
6312         * compare-elim.c (try_merge_compare): Punt if def_insn is not
6313         single set.
6314
6315 2017-11-09  Jeff Law  <law@redhat.com>
6316
6317         * vr-values.h: New file with vr_values class.
6318         * tree-vrp.c: Include vr-values.h
6319         (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static
6320         data objects into the vr_values class.
6321         (vr_value, values_propagated, vr_phi_edge_counts): Likewise.
6322         (get_value_range): Make it a member function within vr_values class.
6323         (set_defs_to_varying, update_value_range, add_equivalence): Likewise.
6324         (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise.
6325         (op_with_constant_singleton_value_range): Likewise.
6326         (extract_range_for_var_from_comparison_expr): Likewise.
6327         (extract_range_from_assert, extract_range_from_ssa_name): Likewise.
6328         (extract_range_from_binary_expr): Likewise.
6329         (extract_range_from_unary_expr): Likewise.
6330         (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise.
6331         (check_for_binary_op_overflow, extract_range_basic): Likewise.
6332         (extract_range_from_assignment, adjust_range_with_scev): Likewise.
6333         (dump_all_value_ranges, get_vr_for_comparison): Likewise.
6334         (compare_name_with_value, compare_names): Likewise.
6335         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise.
6336         (vrp_evaluate_conditional_warnv_with_ops): Likewise.  Remove prototype.
6337         (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise.
6338         (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise.
6339         (extract_range_from_phi_node): Likewise.
6340         (simplify_truth_ops_using_ranges): Likewise.
6341         (simplify_div_or_mod_using_ranges): Likewise.
6342         (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise.
6343         (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise.
6344         (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise.
6345         (simplify_float_conversion_using_ranges): Likewise.
6346         (simplify_internal_call_using_ranges): Likewise.
6347         (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise.
6348         (vrp_visit_assignment_or_call): Likewise.  Smuggle class instance
6349         poitner via x_vr_values for calls into gimple folder.
6350         (vrp_initialize_lattice): Make this the vr_values ctor.
6351         (vrp_free_lattice): Make this the vr_values dtor.
6352         (set_vr_value): New function.
6353         (class vrp_prop): Add vr_values data member.  Add various member
6354         functions as well as member functions that delegate to vr_values.
6355         (check_array_ref): Make a member function within vrp_prop class.
6356         (search_for_addr_array, vrp_initialize): Likewise.
6357         (vrp_finalize): Likewise.  Revamp to avoid direct access to
6358         vr_value, values_propagated, etc.
6359         (check_array_bounds): Extract vrp_prop class instance pointer from
6360         walk info structure.  Use it to call member functions.
6361         (check_all_array_refs): Make a member function within vrp_prop class.
6362         Smuggle class instance pointer via walk info structure.
6363         (x_vr_values): New local static.
6364         (vrp_valueize): Use x_vr_values to get class instance.
6365         (vr_valueize_1): Likewise.
6366         (class vrp_folder): Add vr_values data member.  Add various member
6367         functions as well as member functions that delegate to vr_values.
6368         (fold_predicate_in): Make a mber fucntion within vrp_folder class.
6369         (simplify_stmt_for_jump_threading): Extract smuggled vr_values
6370         class instance from vr_values.  Use it to call member functions.
6371         (vrp_dom_walker): Add vr_values data member.
6372         (vrp_dom_walker::after_dom_children): Smuggle vr_values class
6373         instance via x_vr_values.
6374         (identify_jump_threads): Accept vr_values as argument.  Store
6375         it into the walker structure.
6376         (evrp_dom_walker): Add vr_values class data member.  Add various
6377         delegators.
6378         (evrp_dom_walker::try_find_new_range): Use vr_values data
6379         member to access the memory allocator.
6380         (evrp_dom_walker::before_dom_children): Store vr_values class
6381         instance into the vrp_folder class.
6382         (evrp_dom_walker::push_value_range): Rework to avoid direct
6383         access to num_vr_values and vr_value.
6384         (evrp_dom_walker::pop_value_range): Likewise.
6385         (execute_early_vrp): Remove call to vrp_initialize_lattice.
6386         Use vr_values to get to dump_all_value_ranges member function.
6387         Remove call to vrp_free_lattice.  Call vrp_initialize, vrp_finalize,
6388         and simplify_cond_using_ranges_2 via vrp_prop class instance.
6389         Pass vr_values class instance down to identify_jump_threads.
6390         Remove call to vrp_free_lattice.
6391         (debug_all_value_ranges): Remove.
6392
6393         * tree-vrp.c (vrp_prop): Move class to earlier point in the file.
6394         (vrp_folder): Likewise.
6395
6396         * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack.
6397         Get it from the existing bitmap instead.
6398         (vrp_intersect_ranges_1): Likewise.
6399
6400 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
6401
6402         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
6403         bit_not_p field.
6404         (store_immediate_info::store_immediate_info): Add bitnotp argument,
6405         set bit_not_p to it.
6406         (imm_store_chain_info::coalesce_immediate_stores): Break group
6407         if bit_not_p is different.
6408         (count_multiple_uses, split_group,
6409         imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
6410         (handled_load): Avoid multiple chained BIT_NOT_EXPRs.
6411         (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
6412         result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
6413         to store_immediate_info ctor.
6414
6415 2017-11-09  Jim Wilson  <jimw@sifive.com>
6416
6417         * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support.
6418         (scan_prog_file): Likewise.
6419
6420 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
6421
6422         * bb-reorder.c (max_entry_frequency): Remove.
6423         (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p,
6424         connect_traces, push_to_next_round_p): Remove prototypes.
6425         (find_traces_1_round): Use counts only.
6426         (push_to_next_round_p): Likewise.
6427         (find_traces): Likewise.
6428         (rotate_loop): Likewise.
6429         (find_traces_1_round): Likewise.
6430         (connect_traces): Likewise.
6431         (edge_order): Likewise.
6432
6433 2017-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6434
6435         * config/arm/arm.c (output_return_instruction): Add comments to
6436         indicate requirement for cmse_nonsecure_entry return to account
6437         for the size of clearing instruction output here.
6438         (thumb_exit): Likewise.
6439         * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
6440         return in hardfloat mode.
6441
6442 2017-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
6443
6444         * config/rs6000/rs6000.c (machine_function): Add a bool,
6445         "toc_is_wrapped_separately".
6446         (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT
6447         if it wasn't explicitly set or unset, we are optimizing for speed, and
6448         doing separate shrink-wrapping.
6449         (rs6000_get_separate_components): Enable the TOC component if
6450         saving the TOC register in the prologue.
6451         (rs6000_components_for_bb): Handle the TOC component.
6452         (rs6000_emit_prologue_components): Store the TOC register where needed.
6453         (rs6000_set_handled_components): Mark TOC as handled, if handled.
6454         (rs6000_emit_prologue): Don't save the TOC if that is already done.
6455
6456 2017-11-09  Martin Jambor  <mjambor@suse.cz>
6457
6458         * ipa-param-manipulation.c: New file.
6459         * ipa-param-manipulation.h: Likewise.
6460         * Makefile.in (OBJS): Add ipa-param-manipulation.o.
6461         (PLUGIN_HEADERS): Addded ipa-param-manipulation.h
6462         * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h.
6463         (ipa_parm_adjustment): Likewise.
6464         (ipa_parm_adjustment_vec): Likewise.
6465         (ipa_get_vector_of_formal_parms): Moved declaration to
6466         ipa-param-manipulation.h.
6467         (ipa_get_vector_of_formal_parm_types): Likewise.
6468         (ipa_modify_formal_parameters): Likewise.
6469         (ipa_modify_call_arguments): Likewise.
6470         (ipa_combine_adjustments): Likewise.
6471         (ipa_dump_param_adjustments): Likewise.
6472         (ipa_modify_expr): Likewise.
6473         (ipa_get_adjustment_candidate): Likewise.
6474         * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to
6475         ipa-param-manipulation.c.
6476         (ipa_get_vector_of_formal_parm_types): Likewise.
6477         (ipa_modify_formal_parameters): Likewise.
6478         (ipa_modify_call_arguments): Likewise.
6479         (ipa_modify_expr): Likewise.
6480         (get_ssa_base_param): Likewise.
6481         (ipa_get_adjustment_candidate): Likewise.
6482         (index_in_adjustments_multiple_times_p): Likewise.
6483         (ipa_combine_adjustments): Likewise.
6484         (ipa_dump_param_adjustments): Likewise.
6485         * tree-sra.c: Also include ipa-param-manipulation.h
6486         * omp-simd-clone.c: Include ipa-param-manipulation.h instead of
6487         ipa-param.h.
6488
6489 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6490             Alan Hayward  <alan.hayward@arm.com>
6491             David Sherwood  <david.sherwood@arm.com>
6492
6493         * doc/sourcebuild.texi (vect_masked_store): Document.
6494
6495 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6496             Alan Hayward  <alan.hayward@arm.com>
6497             David Sherwood  <david.sherwood@arm.com>
6498
6499         * doc/sourcebuild.texi (vect_align_stack_vars): Document.
6500
6501 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6502             Alan Hayward  <alan.hayward@arm.com>
6503             David Sherwood  <david.sherwood@arm.com>
6504
6505         * doc/sourcebuild.texi (vect_variable_length): Document.
6506
6507 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6508             Alan Hayward  <alan.hayward@arm.com>
6509             David Sherwood  <david.sherwood@arm.com>
6510
6511         * doc/sourcebuild.texi (vect_unaligned_possible): Document.
6512
6513 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6514             Alan Hayward  <alan.hayward@arm.com>
6515             David Sherwood  <david.sherwood@arm.com>
6516
6517         * doc/sourcebuild.texi (vect_element_align_preferred): Document.
6518
6519 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6520             Alan Hayward  <alan.hayward@arm.com>
6521             David Sherwood  <david.sherwood@arm.com>
6522
6523         * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document
6524         previously undocumented selectors.
6525         (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document.
6526
6527 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6528
6529         * doc/rtl.texi (const_vector): Say that elements can be
6530         const_wide_ints too.
6531         * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare.
6532         * emit-rtl.c (valid_for_const_vec_duplicate_p): New function.
6533         (gen_vec_duplicate): Use it instead of CONSTANT_P.
6534         * optabs.c (expand_vector_broadcast): Likewise.
6535
6536 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6537             Alan Hayward  <alan.hayward@arm.com>
6538             David Sherwood  <david.sherwood@arm.com>
6539
6540         * tree-ssa-loop-ivopts.c (get_address_cost): Try using a
6541         scaled index even if the unscaled address was invalid.
6542         Don't increase the complexity of using a scale in that case.
6543
6544 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
6545             Alan Hayward  <alan.hayward@arm.com>
6546             David Sherwood  <david.sherwood@arm.com>
6547
6548         * doc/rtl.texi: Rewrite the subreg rules so that they partition
6549         the inner register into REGMODE_NATURAL_SIZE bytes rather than
6550         UNITS_PER_WORD bytes.
6551         * emit-rtl.c (validate_subreg): Divide subregs into blocks
6552         based on REGMODE_NATURAL_SIZE of the inner mode.
6553         (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and
6554         !SCALAR_FLOAT_MODE_P cases.  Use REGMODE_NATURAL_SIZE for the latter.
6555         * expmed.c (lowpart_bit_field_p): Divide the value up into
6556         chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD.
6557         * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test
6558         whether something is likely to occupy more than one register.
6559
6560 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
6561
6562         PR ipa/82879
6563         * ipa-inline-transform.c (update_noncloned_frequencies): Use
6564         profile_count::adjust_for_ipa_scaling.
6565         * tree-inline.c (copy_bb, copy_cfg_body): Likewise.
6566         * profile-count.c (profile_count::adjust_for_ipa_scaling): New member
6567         function.
6568         * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare.
6569
6570 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
6571
6572         * gimple-ssa-store-merging.c (count_multiple_uses): New function.
6573         (split_group): Add total_orig and total_new arguments, estimate the
6574         number of statements related to the store group without store merging
6575         and with store merging.
6576         (imm_store_chain_info::output_merged_store): Adjust split_group
6577         callers, punt if estimated number of statements with store merging
6578         is not smaller than estimated number of statements without it.
6579         Formatting fix.
6580         (handled_load): Remove has_single_use checks.
6581         (pass_store_merging::process_store): Likewise.
6582
6583 2017-11-09  Richard Biener  <rguenther@suse.de>
6584
6585         PR tree-optimization/82902
6586         * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
6587
6588 2017-11-09  Martin Liska  <mliska@suse.cz>
6589
6590         PR target/82863
6591         * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to
6592         uninitialized.
6593
6594 2017-11-09  Martin Liska  <mliska@suse.cz>
6595
6596         PR tree-optimization/82669
6597         * sbitmap.h (bmp_iter_set_init): Remove non needed check.
6598
6599 2017-11-09  Martin Liska  <mliska@suse.cz>
6600
6601         PR gcov-profile/48463
6602         * coverage.c (coverage_begin_function): Output also end locus
6603         of a function and information whether the function is
6604         artificial.
6605         * gcov-dump.c (tag_function): Parse and print the information.
6606         * gcov.c (INCLUDE_MAP): Add include.
6607         (INCLUDE_SET): Likewise.
6608         (struct line_info): Move earlier in the source file because
6609         of vector<line_info> in function_info structure.
6610         (line_info::line_info): Likewise.
6611         (line_info::has_block): Likewise.
6612         (struct source_info): Add new member index.
6613         (source_info::get_functions_at_location): New function.
6614         (function_info::group_line_p): New function.
6615         (output_intermediate_line): New function.
6616         (output_intermediate_file): Use the mentioned function.
6617         (struct function_start): New.
6618         (struct function_start_pair_hash): Likewise.
6619         (process_file): Add code that identifies group functions.
6620         Assign lines either to global or function scope.
6621         (generate_results): Skip artificial functions.
6622         (find_source): Assign index for each source file.
6623         (read_graph_file): Read new flag artificial and end_line.
6624         (add_line_counts): Assign it either to global of function scope.
6625         (accumulate_line_counts): Isolate core of the function to
6626         accumulate_line_info and call it for both function and global
6627         scope lines.
6628         (accumulate_line_info): New function.
6629         (output_line_beginning): Fix GNU coding style.
6630         (print_source_line): New function.
6631         (output_line_details): Likewise.
6632         (output_function_details): Likewise.
6633         (output_lines): Iterate both source (global) scope and function
6634         scope.
6635         (struct function_line_start_cmp): New class.
6636         * doc/gcov.texi: Reflect changes in documentation.
6637
6638 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
6639
6640         PR debug/82837
6641         * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT.
6642         (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...)))
6643         and similarly for not instead of neg.
6644
6645 2017-11-08  Andi Kleen  <ak@linux.intel.com>
6646
6647         * config/i386/i386.opt: Add -mforce-indirect-call.
6648         * config/i386/predicates.md: Check for flag_force_indirect_call.
6649         * doc/invoke.texi: Document -mforce-indirect-call
6650
6651 2017-11-08  Kito Cheng  <kito.cheng@gmail.com>
6652
6653         * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p):
6654         New extern.
6655         (MOVE_RATIO): Use riscv_slow_unaligned_access_p.
6656         config/riscv/riscv.c (predict.h): New include.
6657         (riscv_slow_unaligned_access_p): No longer static.
6658         (riscv_block_move_straight): Add require.
6659         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
6660
6661 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
6662
6663         PR target/82855
6664         * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
6665         <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
6666         nonimmediate_operand predicate for operand 1 instead of
6667         register_operand.
6668
6669 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6670
6671         * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>):
6672         New pattern.
6673         * config/aarch64/constraints.md (Uml): New constraint.
6674         * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New
6675         predicate.
6676
6677 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6678
6679         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
6680         of two vec_duplicates into a vec_concat.
6681
6682 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6683
6684         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
6685         Simplify vec_merge of vec_duplicate and vec_concat.
6686         * config/aarch64/constraints.md (Utq): New constraint.
6687         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New
6688         define_insn.
6689
6690 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6691
6692         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
6693         Simplify vec_merge of vec_duplicate and const_vector.
6694         * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero):
6695         New predicate.
6696         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC
6697         mode iterator.  Update predicate on operand 1 to
6698         handle non-const_vec constants.  Delete constraints.
6699         (*aarch64_combinez_be<mode>): Likewise for operand 2.
6700
6701 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
6702
6703         PR tree-optimization/78821
6704         * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p
6705         data member.
6706         (store_operand_info::store_operand_info): Initialize it to false.
6707         (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use
6708         ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each
6709         store in the group, and if chain_info is non-NULL, to ignore altogether
6710         that chain.
6711         (compatible_load_p): Fail if bit_not_p does not match.
6712         (imm_store_chain_info::output_merged_store): Handle bit_not_p loads.
6713         (handled_load): Fill in bit_not_p.  Handle BIT_NOT_EXPR.
6714         (pass_store_merging::process_store): Adjust
6715         terminate_all_aliasing_chains calls to pass NULL in all current spots,
6716         call terminate_all_aliasing_chains newly when adding a store into
6717         a chain with non-NULL chain_info.
6718
6719 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
6720
6721         * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic.
6722
6723 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
6724
6725         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
6726         Remove.
6727         (aarch64_layout_frame): Initialise emit_frame_chain.
6728         (aarch64_can_eliminate): Remove omit leaf frame pointer code.
6729         (TARGET_FRAME_POINTER_REQUIRED): Remove define.
6730
6731 2017-11-08  Martin Liska  <mliska@suse.cz>
6732
6733         * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
6734         of gimple_call_internal_p.
6735
6736 2017-11-07  Tom de Vries  <tom@codesourcery.com>
6737
6738         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)".
6739
6740 2017-11-07  Tom de Vries  <tom@codesourcery.com>
6741
6742         * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after
6743         "do {} while (0)".
6744
6745 2017-11-08  Martin Liska  <mliska@suse.cz>
6746
6747         PR sanitizer/82792
6748         * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
6749
6750 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
6751
6752         * gimple-pretty-print.c (dump_profile): Return "" instead of NULL.
6753
6754 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
6755
6756         PR target/82855
6757         * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator.
6758         (*cmp<mode>_ccz_1): New insn with $k alternative.
6759
6760         PR target/82855
6761         * config/i386/i386.c (ix86_swap_binary_operands_p): Treat
6762         RTX_COMM_COMPARE as commutative as well.
6763         (ix86_binary_operator_ok): Formatting fix.
6764         * config/i386/sse.md (*mul<mode>3<mask_name><round_name>,
6765         *<code><mode>3<mask_name><round_saeonly_name>,
6766         *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>,
6767         *<s>mul<mode>3_highpart<mask_name>,
6768         *vec_widen_umult_even_v16si<mask_name>,
6769         *vec_widen_umult_even_v8si<mask_name>,
6770         *vec_widen_umult_even_v4si<mask_name>,
6771         *vec_widen_smult_even_v16si<mask_name>,
6772         *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>,
6773         *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>,
6774         *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>,
6775         *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3,
6776         *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3,
6777         <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3,
6778         *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>,
6779         *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>,
6780         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use
6781         !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of
6782         ix86_binary_operator_ok.  Formatting fixes.
6783         (*<plusminus_insn><mode>3<mask_name><round_name>,
6784         *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting
6785         fixes.
6786
6787 2017-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
6788
6789         * config/rs6000/rs6000.md (GPR2): New mode_iterator.
6790         ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for
6791         eq and ne if TARGET_ISEL.
6792         (cmp): New code_iterator.
6793         (UNS, UNSU_, UNSIK): New code_attrs.
6794         (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split.
6795         ("eq<mode>3"): New define_expand, rename the define_insn_and_split
6796         to...
6797         ("eq<mode>3"): ... this.
6798         ("ne<mode>3"): New define_expand, rename the define_insn_and_split
6799         to...
6800         ("ne<mode>3"): ... this.
6801
6802 2017-11-07  Julia Koval  <julia.koval@intel.com>
6803
6804         PR target/82812
6805         * common/config/i386/i386-common.c
6806         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
6807         (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
6808         * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
6809         * config/i386/i386.opt: Ditto.
6810         * config/i386/i386.c (ix86_target_string): Ditto.
6811         (ix86_option_override_internal): Ditto.
6812         (ix86_init_mpx_builtins): Move MPX to args2.
6813         (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
6814         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
6815         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
6816         __builtin_ia32_vgf2p8affineinvqb_v32qi,
6817         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
6818         __builtin_ia32_vgf2p8affineinvqb_v16qi,
6819         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
6820
6821 2017-11-07  Uros Bizjak  <ubizjak@gmail.com>
6822
6823         PR target/80425
6824         * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r)
6825         and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m).
6826         (zero-extendsidi peephole2): Remove peephole.
6827
6828 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
6829
6830         PR c/53037
6831         * stor-layout.c: Include attribs.h.
6832         (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with
6833         explicit lookup of "aligned" attribute.
6834
6835 2017-11-07  Andrew Waterman  <andrew@sifive.com>
6836
6837         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype.
6838         (riscv_expand_block_move): Likewise.
6839         * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi
6840         implementation.
6841         (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define.
6842         (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define.
6843         * config/riscv/riscv.c (riscv_block_move_straight): New function.
6844         (riscv_adjust_block_mem): Likewise.
6845         (riscv_block_move_loop): Likewise.
6846         (riscv_expand_block_move): Likewise.
6847         * config/riscv/riscv.md (movmemsi): New pattern.
6848
6849 2017-11-07  Michael Clark  <michaeljclark@mac.com>
6850
6851         * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
6852         (MUSL_DYNAMIC_LINKER): Likewise.
6853
6854 2017-11-07  Richard Sandiford  <richard.sandiford@linaro.org>
6855
6856         * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
6857         (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of
6858         nonmmory_operand.
6859
6860 2017-11-07  Richard Biener  <rguenther@suse.de>
6861
6862         * match.pd: Fix build.
6863
6864 2017-11-07  Wilco Dijkstra  <wdijkstr@arm.com>
6865             Jackson Woodruff  <jackson.woodruff@arm.com>
6866
6867         PR tree-optimization/71026
6868         * match.pd: Canonicalize negate in division.
6869
6870 2017-11-07  Sudakshina Das  <sudi.das@arm.com>
6871
6872         PR middle-end/80131
6873         * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1.
6874
6875 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
6876
6877         * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b),
6878         (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations.
6879
6880 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
6881
6882         * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle
6883         non-scalar integral types.
6884         * match.pd (negate_expr_p): Handle MINUS_EXPR.
6885         (-(A-B), -(~A)): New transformations.
6886
6887 2017-11-07  Tom de Vries  <tom@codesourcery.com>
6888
6889         * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
6890         semicolon after "do {} while (0)".
6891         * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6892         * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6893         * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6894         * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6895         * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6896
6897 2017-11-07  Tom de Vries  <tom@codesourcery.com>
6898
6899         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon
6900         after "do {} while (0)".
6901         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6902         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6903         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6904         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6905         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
6906
6907 2017-11-07  Tom de Vries  <tom@codesourcery.com>
6908
6909         PR other/82784
6910         * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after
6911         "while {} do (0)".
6912         (arm_rtx_costs_internal): Add missing semicolon after
6913         HANDLE_NARROW_SHIFT_ARITH call.
6914
6915 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
6916
6917         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6918         disable isel if it was not set explicitly.
6919
6920 2017-11-06  James Bowman  <james.bowman@ftdichip.com>
6921
6922         * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers.
6923         (add_type_attribute) likewise.
6924
6925 2017-11-06  H.J. Lu  <hongjiu.lu@intel.com>
6926
6927         * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
6928         of struct ix86_frame.
6929         (ix86_initial_elimination_offset): Likewise.
6930         (ix86_expand_split_stack_prologue): Likewise.
6931
6932 2017-11-06  Marc Glisse  <marc.glisse@inria.fr>
6933
6934         * tree-vrp.h (enum value_range_type): Update stale comment.
6935
6936 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
6937             Alan Hayward  <alan.hayward@arm.com>
6938             David Sherwood  <david.sherwood@arm.com>
6939
6940         * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
6941         (aarch64_expand_vec_perm_const): Take the number of units too.
6942         * config/aarch64/aarch64.c (aarch64_expand_vec_perm)
6943         (aarch64_expand_vec_perm_const): Likewise.
6944         * config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
6945         (vec_perm<mode>): Update accordingly.
6946
6947 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
6948             Alan Hayward  <alan.hayward@arm.com>
6949             David Sherwood  <david.sherwood@arm.com>
6950
6951         * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
6952         Take the number of units too.
6953         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
6954         (aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
6955         but check for a vector mode before rather than after the call.
6956         * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
6957         (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
6958         (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
6959         (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
6960         (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
6961         (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
6962         (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
6963         (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
6964         (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
6965         (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
6966         (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
6967         (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
6968         (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
6969         (aarch64_sqdmull2_n<mode>): Update accordingly.
6970
6971 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
6972             Alan Hayward  <alan.hayward@arm.com>
6973             David Sherwood  <david.sherwood@arm.com>
6974
6975         * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
6976         the number of units too.
6977         * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
6978         * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
6979         (vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
6980         (vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
6981         (vec_store_lanesxi<mode>): Update accordingly.
6982
6983 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
6984             Alan Hayward  <alan.hayward@arm.com>
6985             David Sherwood  <david.sherwood@arm.com>
6986
6987         * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
6988         * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
6989         * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
6990         of units rather than the mode.
6991         * config/aarch64/iterators.md (nunits): New mode attribute.
6992         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
6993         Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
6994         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
6995         (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
6996         (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
6997         (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
6998         (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
6999         (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
7000         (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
7001         (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
7002         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
7003         (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
7004         (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
7005         (reduc_<maxmin_uns>_scal_<mode>): Likewise.
7006         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
7007         (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
7008         (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
7009         (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
7010         (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
7011         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
7012         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7013         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
7014         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
7015         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
7016         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
7017         (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
7018         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
7019         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
7020         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
7021         (aarch64_vec_store_lanesoi_lane<mode>): Likewise.
7022         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
7023         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
7024         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
7025         (aarch64_vec_store_lanesxi_lane<mode>): Likewise.
7026         (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
7027         (aarch64_simd_vec_setv2di): Likewise.
7028
7029 2017-11-06  Carl Love  <cel@us.ibm.com>
7030
7031         * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
7032         definitions.
7033         (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
7034         * config/rs6000/altivec.h (vec_revb): Change the #define from power 9
7035         to power 8.
7036         * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
7037         extern declaration.
7038         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
7039         * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
7040         Add power 8 macro expansions.
7041         (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
7042         * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
7043         power 8 instructions.  (VSX_XXBR): Add iterator.
7044
7045 2017-11-06  Wilco Dijkstra  <wdijkstr@arm.com>
7046
7047         * config/arm/arm.md (predicable_short_it): Change default to "no",
7048         improve documentation, remove uses that are identical to the default.
7049         (enabled_for_depr_it): Rename to enabled_for_short_it.
7050         * gcc/config/arm/arm-fixed.md (predicable_short_it):
7051         Remove default uses.
7052         * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
7053         * gcc/config/arm/sync.md (predicable_short_it): Likewise.
7054         * gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
7055         * gcc/config/arm/vfp.md (predicable_short_it): Likewise.
7056
7057 2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
7058
7059         PR target/82748
7060         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
7061         float128 helper macros, which are no longer used after deleting
7062         the old 'q' built-in functions, and moving the round to odd
7063         built-in functions to being special built-in functions.
7064         (BU_FLOAT128_2): Likewise.
7065         (BU_FLOAT128_1_HW): Likewise.
7066         (BU_FLOAT128_2_HW): Likewise.
7067         (BU_FLOAT128_3_HW): Likewise.
7068         (FABSQ): Delete old 'q' built-in functions.
7069         (COPYSIGNQ): Likewise.
7070         (SQRTF128_ODD): Move round to odd built-in functions to be
7071         special built-in functions, so that we can handle
7072         -mabi=ieeelongdouble.
7073         (TRUNCF128_ODD): Likewise.
7074         (ADDF128_ODD): Likewise.
7075         (SUBF128_ODD): Likewise.
7076         (MULF128_ODD): Likewise.
7077         (DIVF128_ODD): Likewise.
7078         (FMAF128_ODD): Likewise.
7079         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
7080         built-in names to 'f128'.
7081         * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
7082         old 'q' built-in functions, as the machine independent code for
7083         'f128' built-in functions handles this.
7084         (rs6000_expand_builtin): Add expansion for float128 round to odd
7085         functions, keying off on -mabi=ieeelongdouble of whether to use
7086         the KFmode or TFmode variant.
7087         (rs6000_init_builtins): Initialize the _Float128 round to odd
7088         built-in functions.
7089         * doc/extend.texi (PowerPC Built-in Functions): Document the old
7090         _Float128 'q' built-in functions are now mapped into the new
7091         'f128' built-in functions.
7092
7093 2017-11-06  David Edelsohn  <dje.gcc@gmail.com>
7094
7095         * collect2.c (add_lto_object): Compile for OBJECT_COFF.
7096         (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
7097
7098 2017-11-06  David Malcolm  <dmalcolm@redhat.com>
7099
7100         PR jit/82826
7101         * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
7102         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
7103         * toplev.c: Include "ipa-fnsummary.h".
7104         (toplev::finalize): Call ipa_fnsummary_c_finalize.
7105
7106 2017-11-06  Jakub Jelinek  <jakub@redhat.com>
7107
7108         PR tree-optimization/82838
7109         * gimple-ssa-store-merging.c
7110         (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
7111         on a separate gimple_seq which is then appended to seq.
7112
7113 2017-11-06  Jeff Law  <law@redhat.com>
7114
7115         PR target/82788
7116         * config/i386/i386.c (PROBE_INTERVAL): Remove.
7117         (get_probe_interval): New functions.
7118         (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
7119         (ix86_adjust_stack_and_probe): Likewise.
7120         (output_adjust_stack_and_probe): Likewise.
7121         (ix86_emit_probe_stack_range): Likewise.
7122         (ix86_expand_prologue): Likewise.
7123
7124 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7125
7126         PR tree-optimization/82816
7127         * tree-ssa-math-opts.c (convert_mult_to_widen): Return false
7128         if the modes of the two types are the same.
7129         (convert_plusminus_to_widen): Likewise.
7130
7131 2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7132
7133         * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
7134         p9_vadu<mode>3.
7135         (usadv16qi): New define_expand.
7136         (usadv8hi): New define_expand.
7137
7138 2017-11-06  Jan Hubicka  <hubicka@ucw.cz>
7139
7140         PR bootstrap/82832
7141         * ipa-inline-transform.c (update_noncloned_frequencies): Always
7142         scale.
7143         (inline_transform): Likewise.
7144         * predict.c (counts_to_freqs): Remove useless conditional.
7145         * profile-count.h (profile_count::apply_scale): Move sanity check.
7146         * tree-inline.c (copy_bb): Always scale.
7147         (copy_cfg_body): Likewise.
7148
7149 2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
7150
7151         PR target/67591
7152         * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
7153         attribute.
7154         (*cmp_ite0): Add enabled_for_depr_it attribute.
7155         (*cmp_ite1): Likewise.
7156
7157 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
7158
7159         * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
7160         TYPE_MFCRF.
7161
7162 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7163
7164         * tree-vrp.c (vrp_int_const_binop): Return true on success and
7165         return the value by pointer.
7166         (extract_range_from_multiplicative_op_1): Update accordingly.
7167         Return as soon as an operation fails.
7168
7169 2017-11-05  Tom de Vries  <tom@codesourcery.com>
7170
7171         PR other/82784
7172         * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
7173         (DEF_SANITIZER_BUILTIN): ... here.
7174         (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
7175         DEF_SANITIZER_BUILTIN in if stmt.  Add missing semicolon.
7176
7177 2017-11-05  Tom de Vries  <tom@codesourcery.com>
7178
7179         PR other/82784
7180         * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
7181         macro body.
7182         (ASM_OUTPUT_CASE_LABEL): Add semicolon after
7183         ASM_OUTPUT_BEFORE_CASE_LABEL call.
7184         * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
7185         after macro body.
7186         * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
7187         * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
7188         * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
7189
7190 2017-11-05  Tom de Vries  <tom@codesourcery.com>
7191
7192         PR other/82784
7193         * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
7194         "do {} while (0)".
7195
7196 2017-11-04  Michael Clark  <michaeljclark@mac.com>
7197
7198         * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
7199         config/riscv/riscv.md (addsi3): Use 'i' for immediates.
7200         (adddi3): Likewise.
7201         (*addsi3_extended): Likewise.
7202         (*addsi3_extended2): Likewise.
7203         (<optab>si3): Likewise.
7204         (<optab>di3): Likewise.
7205         (<optab><mode>3): Likewise.
7206         (<*optabe>si3_internal): Likewise.
7207         (zero_extendqi<SUPERQI:mode>2): Likewise.
7208         (*add<mode>hi3): Likewise.
7209         (*xor<mode>hi3): Likewise.
7210         (<optab>di3): Likewise.
7211         (*<optab>si3_extend): Likewise.
7212         (*sge<u>_<X:mode><GPR:mode>): Likewise.
7213         (*slt<u>_<X:mode><GPR:mode>): Likewise.
7214         (*sle<u>_<X:mode><GPR:mode>): Likewise.
7215
7216 2017-11-04  Andrew Waterman  <andrew@sifive.com>
7217
7218         * config/riscv/riscv.c (riscv_option_override): Conditionally set
7219         TARGET_STRICT_ALIGN based upon -mtune argument.
7220
7221 2017-11-04  Andrew Waterman  <andrew@sifive.com>
7222
7223         * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.
7224
7225 2017-11-04  Daniel Santos  <daniel.santos@pobox.com>
7226
7227         * config/i386/i386.c (choose_basereg): Use optional scratch
7228         register and add assertion.
7229         (x86_emit_outlined_ms2sysv_save): Use scratch register when
7230         needed, and don't allocate stack.
7231         (ix86_expand_prologue): Rearrange where SSE saves/stub call is
7232         emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
7233         (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.
7234
7235 2017-11-03  Jeff Law  <law@redhat.com>
7236
7237         * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype.
7238         (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence
7239         to probe at the start of a noreturn function.
7240
7241 2017-11-03  Jakub Jelinek  <jakub@redhat.com>
7242
7243         PR tree-optimization/78821
7244         * gimple-ssa-store-merging.c: Update the file comment.
7245         (MAX_STORE_ALIAS_CHECKS): Define.
7246         (struct store_operand_info): New type.
7247         (store_operand_info::store_operand_info): New constructor.
7248         (struct store_immediate_info): Add rhs_code and ops data members.
7249         (store_immediate_info::store_immediate_info): Add rhscode, op0r
7250         and op1r arguments to the ctor, initialize corresponding data members.
7251         (struct merged_store_group): Add load_align_base and load_align
7252         data members.
7253         (merged_store_group::merged_store_group): Initialize them.
7254         (merged_store_group::do_merge): Update them.
7255         (merged_store_group::apply_stores): Pick the constant for
7256         encode_tree_to_bitpos from one of the two operands, or skip
7257         encode_tree_to_bitpos if neither operand is a constant.
7258         (class pass_store_merging): Add process_store method decl.  Remove
7259         bool argument from terminate_all_aliasing_chains method decl.
7260         (pass_store_merging::terminate_all_aliasing_chains): Remove
7261         var_offset_p argument and corresponding handling.
7262         (stmts_may_clobber_ref_p): New function.
7263         (compatible_load_p): New function.
7264         (imm_store_chain_info::coalesce_immediate_stores): Terminate group
7265         if there is overlap and rhs_code is not INTEGER_CST.  For
7266         non-overlapping stores terminate group if rhs is not mergeable.
7267         (get_alias_type_for_stmts): Change first argument from
7268         auto_vec<gimple *> & to vec<gimple *> &.  Add IS_LOAD, CLIQUEP and
7269         BASEP arguments.  If IS_LOAD is true, look at rhs1 of the stmts
7270         instead of lhs.  Compute *CLIQUEP and *BASEP in addition to the
7271         alias type.
7272         (get_location_for_stmts): Change first argument from
7273         auto_vec<gimple *> & to vec<gimple *> &.
7274         (struct split_store): Remove orig_stmts data member, add orig_stores.
7275         (split_store::split_store): Create orig_stores rather than orig_stmts.
7276         (find_constituent_stmts): Renamed to ...
7277         (find_constituent_stores): ... this.  Change second argument from
7278         vec<gimple *> * to vec<store_immediate_info *> *, push pointers
7279         to info structures rather than the statements.
7280         (split_group): Rename ALLOW_UNALIGNED argument to
7281         ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle
7282         it.  Adjust find_constituent_stores caller.
7283         (imm_store_chain_info::output_merged_store): Handle rhs_code other
7284         than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and
7285         get_location_for_stmts callers.  Set MR_DEPENDENCE_CLIQUE and
7286         MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores.
7287         (mem_valid_for_store_merging): New function.
7288         (handled_load): New function.
7289         (pass_store_merging::process_store): New method.
7290         (pass_store_merging::execute): Use process_store method.  Adjust
7291         terminate_all_aliasing_chains caller.
7292
7293 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
7294
7295         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
7296         Return true for more constants, symbols and label references.
7297         (aarch64_valid_floating_const): Remove unused function.
7298
7299 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
7300
7301         PR target/82786
7302         * config/aarch64/aarch64.c (aarch64_layout_frame):
7303         Undo forcing of LR at bottom of frame.
7304
7305 2017-11-03  Jeff Law  <law@redhat.com>
7306
7307         PR target/82823
7308         * config/i386/i386.c (ix86_expand_prologue): Tighten assert
7309         for int_registers_saved.
7310
7311         * cfganal.c (single_pred_edge_ignoring_loop_edges): New function
7312         extracted from tree-ssa-dom.c.
7313         * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype.
7314         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove.
7315         (record_equivalences_from_incoming_edge): Add additional argument
7316         to single_pred_edge_ignoring_loop_edges call.
7317         * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove.
7318         (uncprop_dom_walker::before_dom_children): Add additional argument
7319         to single_pred_edge_ignoring_loop_edges call.
7320         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use
7321         single_pred_edge_ignoring_loop_edges rather than open coding.
7322         * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly.
7323
7324 2017-11-03  Marc Glisse  <marc.glisse@inria.fr>
7325
7326         * match.pd (-(-A)): Rewrite.
7327
7328 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
7329
7330         * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
7331         (rs6000_emit_int_cmove): New declaration.
7332         * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
7333         (rs6000_emit_sISEL): Delete.
7334         (rs6000_emit_int_cmove): Make non-static.
7335         * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
7336         instead of rs6000_emit_sISEL.
7337
7338 2017-11-03  Jan Hubicka  <hubicka@ucw.cz>
7339
7340         * asan.c (create_cond_insert_point): Maintain profile.
7341         * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
7342         merged.
7343         * basic-block.h (struct basic_block_def): Remove frequency.
7344         (EDGE_FREQUENCY): Use to_frequency
7345         * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
7346         heuristics.
7347         (find_traces): Update to use to_frequency.
7348         (find_traces_1_round): Likewise; use only IPA counts.
7349         (bb_to_key): Likewise.
7350         (connect_traces): Use IPA counts only.
7351         (copy_bb_p): Update to use to_frequency.
7352         (fix_up_crossing_landing_pad): Likewise.
7353         (sanitize_hot_paths): Likewise.
7354         * bt-load.c (basic_block_freq): Likewise.
7355         * cfg.c (init_flow): Set count_max to uninitialized.
7356         (check_bb_profile): Remove frequencies; check counts.
7357         (dump_bb_info): Do not dump frequencies.
7358         (update_bb_profile_for_threading): Update counts only.
7359         (scale_bbs_frequencies_int): Likewise.
7360         (MAX_SAFE_MULTIPLIER): Remove.
7361         (scale_bbs_frequencies_gcov_type): Update counts only.
7362         (scale_bbs_frequencies_profile_count): Update counts only.
7363         (scale_bbs_frequencies): Update counts only.
7364         * cfg.h (struct control_flow_graph): Add count-max.
7365         (update_bb_profile_for_threading): Update prototype.
7366         * cfgbuild.c (find_bb_boundaries): Do not update frequencies.
7367         (find_many_sub_basic_blocks): Likewise.
7368         * cfgcleanup.c (try_forward_edges): Likewise.
7369         (try_crossjump_to_edge): Likewise.
7370         * cfgexpand.c (expand_gimple_cond): Likewise.
7371         (expand_gimple_tailcall): Likewise.
7372         (construct_init_block): Likewise.
7373         (construct_exit_block): Likewise.
7374         * cfghooks.c (verify_flow_info): Check consistency of counts.
7375         (dump_bb_for_graph): Do not dump frequencies.
7376         (split_block_1): Do not update frequencies.
7377         (split_edge): Do not update frequencies.
7378         (make_forwarder_block): Do not update frequencies.
7379         (duplicate_block): Do not update frequencies.
7380         (account_profile_record): Do not update frequencies.
7381         * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
7382         for global heuristics.
7383         * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
7384         (expected_loop_iterations_unbounded): Use counts only.
7385         * cfgloopmanip.c (scale_loop_profile): Simplify.
7386         (create_empty_loop_on_edge): Simplify
7387         (loopify): Simplify
7388         (duplicate_loop_to_header_edge): Simplify
7389         * cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
7390         (update_br_prob_note): Take care of removing note when profile
7391         becomes undefined.
7392         (relink_block_chain): Do not dump frequency.
7393         (rtl_account_profile_record): Use to_frequency.
7394         * cgraph.c (symbol_table::create_edge): Convert count to ipa count.
7395         (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
7396         (cgraph_update_edges_for_call_stmt_node): Likewise.
7397         (cgraph_edge::verify_count_and_frequency): Update.
7398         (cgraph_node::verify_node): Temporarily disable frequency verification.
7399         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
7400         to_cgraph_frequency.
7401         (cgraph_edge::rebuild_edges): Convert to ipa counts.
7402         * cgraphunit.c (init_lowered_empty_function): Do not initialize
7403         frequencies.
7404         (cgraph_node::expand_thunk): Update profile.
7405         * except.c (dw2_build_landing_pads): Do not update frequency.
7406         * final.c (compute_alignments): Use to_frequency.
7407         (dump_basic_block_info): Do not dump frequency.
7408         * gimple-pretty-print.c (dump_profile): Do not dump frequency.
7409         (dump_gimple_bb_header): Do not dump frequency.
7410         * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
7411         do update count.
7412         * gimple-streamer-in.c (input_bb): Do not stream frequency.
7413         * gimple-streamer-out.c (output_bb): Do not stream frequency.
7414         * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
7415         (init_before_recovery): Do not update frequency.
7416         (sched_create_recovery_edges): Do not update frequency.
7417         * hsa-gen.c (convert_switch_statements): Do not update frequency.
7418         * ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
7419         (ipa_cp_c_finalize): Set max_count to uninitialized.
7420         * ipa-fnsummary.c (get_minimal_bb): Use counts.
7421         (param_change_prob): Use counts.
7422         * ipa-profile.c (ipa_profile_generate_summary): Do not summarize
7423         local profiles.
7424         * ipa-split.c (consider_split): Use to_frequency.
7425         (split_function): Use to_frequency.
7426         * ira-build.c (loop_compare_func): Likewise.
7427         (mark_loops_for_removal): Likewise.
7428         (mark_all_loops_for_removal): Likewise.
7429         * loop-doloop.c (doloop_modify): Do not update frequency.
7430         * loop-unroll.c (unroll_loop_runtime_iterations): Do not update
7431         frequency.
7432         * lto-streamer-in.c (input_function): Update count_max.
7433         * omp-expand.c (expand_omp_taskreg): Update count_max.
7434         * omp-simd-clone.c (simd_clone_adjust): Update profile.
7435         * predict.c (maybe_hot_frequency_p): Use to_frequency.
7436         (maybe_hot_count_p): Use ipa counts only.
7437         (maybe_hot_bb_p): Simplify.
7438         (maybe_hot_edge_p): Simplify.
7439         (probably_never_executed): Do not take frequency argument.
7440         (probably_never_executed_bb_p): Do not pass frequency.
7441         (probably_never_executed_edge_p): Likewise.
7442         (combine_predictions_for_bb): Check that profile is nonzero.
7443         (propagate_freq): Do not set frequency.
7444         (drop_profile): Simplify.
7445         (counts_to_freqs): Simplify.
7446         (expensive_function_p): Use to_frequency.
7447         (propagate_unlikely_bbs_forward): Simplify.
7448         (determine_unlikely_bbs): Simplify.
7449         (estimate_bb_frequencies): Add hack to silence graphite issues.
7450         (compute_function_frequency): Use ipa counts.
7451         (pass_profile::execute): Update.
7452         (rebuild_frequencies): Use counts only.
7453         (force_edge_cold): Use counts only.
7454         * profile-count.c (profile_count::dump): Dump new count types.
7455         (profile_count::differs_from_p): Check compatiblity.
7456         (profile_count::to_frequency): New function.
7457         (profile_count::to_cgraph_frequency): New function.
7458         * profile-count.h (struct function): Declare.
7459         (enum profile_quality): Add profile_guessed_local and
7460         profile_guessed_global0.
7461         (class profile_proability): Decrease number of bits to 29;
7462         update from_reg_br_prob_note and to_reg_br_prob_note.
7463         (class profile_count: Update comment; decrease number of bits
7464         to 61. Check compatibility.
7465         (profile_count::compatible_p): New private member function.
7466         (profile_count::ipa_p): New member function.
7467         (profile_count::operator<): Handle global zero correctly.
7468         (profile_count::operator>): Handle global zero correctly.
7469         (profile_count::operator<=): Handle global zero correctly.
7470         (profile_count::operator>=): Handle global zero correctly.
7471         (profile_count::nonzero_p): New member function.
7472         (profile_count::force_nonzero): New member function.
7473         (profile_count::max): New member function.
7474         (profile_count::apply_scale): Handle IPA scalling.
7475         (profile_count::guessed_local): New member function.
7476         (profile_count::global0): New member function.
7477         (profile_count::ipa): New member function.
7478         (profile_count::to_frequency): Declare.
7479         (profile_count::to_cgraph_frequency): Declare.
7480         * profile.c (OVERLAP_BASE): Delete.
7481         (compute_frequency_overlap): Delete.
7482         (compute_branch_probabilities): Do not use compute_frequency_overlap.
7483         * regs.h (REG_FREQ_FROM_BB): Use to_frequency.
7484         * sched-ebb.c (rank): Use counts only.
7485         * shrink-wrap.c (handle_simple_exit): Use counts only.
7486         (try_shrink_wrapping): Use counts only.
7487         (place_prologue_for_one_component): Use counts only.
7488         * tracer.c (find_best_predecessor): Use to_frequency.
7489         (find_trace): Use to_frequency.
7490         (tail_duplicate): Use to_frequency.
7491         * trans-mem.c (expand_transaction): Do not update frequency.
7492         * tree-call-cdce.c: Do not update frequency.
7493         * tree-cfg.c (gimple_find_sub_bbs): Likewise.
7494         (gimple_merge_blocks): Likewise.
7495         (gimple_split_edge): Likewise.
7496         (gimple_duplicate_sese_region): Likewise.
7497         (gimple_duplicate_sese_tail): Likewise.
7498         (move_sese_region_to_fn): Likewise.
7499         (gimple_account_profile_record): Likewise.
7500         (insert_cond_bb): Likewise.
7501         * tree-complex.c (expand_complex_div_wide): Likewise.
7502         * tree-eh.c (lower_resx): Update profile.
7503         * tree-inline.c (copy_bb): Simplify count scaling; do not scale
7504         frequencies.
7505         (initialize_cfun): Do not initialize frequencies
7506         (freqs_to_counts): Delete.
7507         (copy_cfg_body): Ignore count parameter.
7508         (copy_body): Update.
7509         (expand_call_inline): Update count_max.
7510         (optimize_inline_calls): Update count_max.
7511         (tree_function_versioning): Update count_max.
7512         * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
7513         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
7514         frequency.
7515         * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
7516         * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
7517         (try_peel_loop): Likewise.
7518         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
7519         to_frequency.
7520         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
7521         (tree_transform_and_unroll_loop): Do not use frequencies
7522         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
7523         Use reliable prediction only.
7524         * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
7525         * tree-ssa-sink.c (select_best_block): Use to_frequency.
7526         * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
7527         probability scaling.
7528         * tree-ssa-threadupdate.c (create_block_for_threading): Do
7529         not update frequency
7530         (any_remaining_duplicated_blocks): Likewise.
7531         (update_profile): Likewise.
7532         (estimated_freqs_path): Delete.
7533         (freqs_to_counts_path): Delete.
7534         (clear_counts_path): Delete.
7535         (ssa_fix_duplicate_block_edges): Likewise.
7536         (duplicate_thread_path): Likewise.
7537         * tree-switch-conversion.c (gen_inbound_check): Use counts.
7538         * tree-tailcall.c (decrease_profile): Do not update frequency.
7539         (eliminate_tail_call): Likewise.
7540         * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
7541         * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
7542         (optimize_mask_stores): Likewise.
7543         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
7544         * ubsan.c (ubsan_expand_null_ifn): Update profile.
7545         (ubsan_expand_ptr_ifn): Update profile.
7546         * value-prof.c (gimple_ic): Simplify.
7547         * value-prof.h (gimple_ic): Update prototype.
7548         * ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
7549         * ipa-inline.c (compute_uninlined_call_time): Be sure that
7550         counts are nonzero.
7551         (want_inline_self_recursive_call_p): Likewise.
7552         (resolve_noninline_speculation): Only cummulate defined counts.
7553         (inline_small_functions): Use nonzero_p.
7554         (ipa_inline): Do not access freed node.
7555
7556 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
7557
7558         * config/aarch64/aarch64.c (aarch64_override_options_internal):
7559         Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
7560
7561 2017-11-03  Kito Cheng  <kito.cheng@gmail.com>
7562
7563         * config/riscv/riscv.c (riscv_legitimize_move): Handle
7564         non-legitimate address.
7565
7566 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
7567
7568         * config/rs6000/rs6000.md (*lt0_disi): Delete.
7569         (*lt0_<mode>di, *lt0_<mode>si): New.
7570
7571 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
7572
7573         * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to
7574         TARGET_PAIRED_FLOAT.
7575
7576 2017-11-03  Siddhesh Poyarekar  <siddhesh.poyarekar@linaro.org>
7577             Jim Wilson  <jim.wilson@linaro.org>
7578
7579         * config/aarch64/aarch64-cores.def (saphira): New CPU.
7580         * config/aarch64/aarch64-tune.md: Regenerated.
7581         * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira".
7582         * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table.
7583
7584 2017-11-03  Cupertino Miranda  <cmiranda@synopsys.com>
7585
7586         * config/arc/arc.c (arc_save_restore): Corrected CFA note.
7587         (arc_expand_prologue): Restore blink for millicode.
7588         * config/arc/linux.h (LINK_EH_SPEC): Defined.
7589
7590 2017-11-03  Richard Sandiford  <richard.sandiford@linaro.org>
7591
7592         PR target/82809
7593         * config/i386/i386.c (ix86_vector_duplicate_value): Use
7594         gen_vec_duplicate after forcing the scalar into a register.
7595
7596 2017-11-02  Segher Boessenkool  <segher@kernel.crashing.org>
7597
7598         * combine (try_combine): Print the insns input to try_combine to the
7599         dump file.
7600
7601 2017-11-02  Steve Ellcey  <sellcey@cavium.com>
7602
7603         PR target/79868
7604         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
7605         Remove second argument from aarch64_process_target_attr call.
7606         * config/aarch64/aarch64-protos.h (aarch64_process_target_attr):
7607         Ditto.
7608         * config/aarch64/aarch64.c (aarch64_attribute_info): Change
7609         field type.
7610         (aarch64_handle_attr_arch): Remove second argument.
7611         (aarch64_handle_attr_cpu): Ditto.
7612         (aarch64_handle_attr_tune): Ditto.
7613         (aarch64_handle_attr_isa_flags): Ditto.
7614         (aarch64_process_one_target_attr): Ditto.
7615         (aarch64_process_target_attr): Ditto.
7616         (aarch64_option_valid_attribute_p): Remove second argument.
7617         on aarch64_process_target_attr call.
7618
7619 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
7620
7621         * diagnostic.c: Include "selftest-diagnostic.h".
7622         (selftest::assert_location_text): New function.
7623         (selftest::test_diagnostic_get_location_text): New function.
7624         (selftest::diagnostic_c_tests): Call it.
7625
7626 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
7627
7628         * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o.
7629         * diagnostic-show-locus.c: Include "selftest-diagnostic.h".
7630         (class selftest::test_diagnostic_context): Move to...
7631         * selftest-diagnostic.c: New file.
7632         * selftest-diagnostic.h: New file.
7633
7634 2017-11-02  James Bowman  <james.bowman@ftdichip.com>
7635
7636         * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase
7637         offset range for FT32B.
7638         * config/ft32/ft32.h: option "mcompress" enables relaxation.
7639         * config/ft32/ft32.md: Add TARGET_NOPM.
7640         * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm.
7641         * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm.
7642
7643 2017-11-02  Wilco Dijkstra  <wdijkstr@arm.com>
7644
7645         * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define.
7646
7647 2017-11-02  Jeff Law  <law@redhat.com>
7648
7649         * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove
7650         virtual keyword on FINAL OVERRIDE members.
7651
7652         * tree-ssa-propagate.h (ssa_propagation_engine): Group
7653         virtuals together.  Add virtual destructor.
7654         (substitute_and_fold_engine): Similarly.
7655
7656 2017-11-02  Jan Hubicka  <hubicka@ucw.cz>
7657
7658         * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+.
7659
7660 2017-11-02  Richard Biener  <rguenther@suse.de>
7661
7662         PR tree-optimization/82795
7663         * tree-if-conv.c (predicate_mem_writes): Remove bogus assert.
7664
7665 2017-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7666
7667         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require
7668         gcc_SUN_LD_VERSION.
7669         (gcc_GAS_CHECK_FEATURE): Remove.
7670         * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from
7671         gcc_AC_INITFINI_ARRAY here.  Update for Solaris 11.4 changes.
7672         * configure: Regenerate.
7673
7674 2017-11-02  Claudiu Zissulescu <claziss@synopsys.com>
7675
7676         * config/arc/arc.c (hwloop_optimize): Account for empty
7677         body loops.
7678
7679 2017-11-02  Richard Biener  <rguenther@suse.de>
7680
7681         PR middle-end/82765
7682         * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
7683         Truncate ARRAY_REF index and element size.
7684
7685 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
7686
7687         * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
7688
7689 2017-11-01  Jeff Law  <law@redhat.com>
7690
7691         * tree-ssa-ccp.c (ccp_folder): New class derived from
7692         substitute_and_fold_engine.
7693         (ccp_folder::get_value): New member function.
7694         (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt.
7695         (ccp_fold_stmt): Remove prototype.
7696         (ccp_finalize): Call substitute_and_fold from the ccp_class.
7697         * tree-ssa-copy.c (copy_folder): New class derived from
7698         substitute_and_fold_engine.
7699         (copy_folder::get_value): Renamed from get_value.
7700         (fini_copy_prop): Call substitute_and_fold from copy_folder class.
7701         * tree-vrp.c (vrp_folder): New class derived from
7702         substitute_and_fold_engine.
7703         (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt.
7704         (vrp_folder::get_value): New member function.
7705         (vrp_finalize): Call substitute_and_fold from vrp_folder class.
7706         (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in.
7707         * tree-ssa-propagate.h (substitute_and_fold_engine): New class to
7708         provide a class interface to folder/substitute routines.
7709         (ssa_prop_fold_stmt_fn): Remove typedef.
7710         (ssa_prop_get_value_fn): Likewise.
7711         (subsitute_and_fold): Remove prototype.
7712         (replace_uses_in): Likewise.
7713         * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
7714         Renamed from replace_uses_in.  Call the virtual member function
7715         (substitute_and_fold_engine::replace_phi_args_in): Similarly.
7716         (substitute_and_fold_dom_walker): Remove initialization of
7717         data member entries for calbacks.  Add substitute_and_fold_engine
7718         member and initialize it.
7719         (substitute_and_fold_dom_walker::before_dom_children0: Use the
7720         member functions for get_value, replace_phi_args_in c
7721         replace_uses_in, and fold_stmt calls.
7722         (substitute_and_fold_engine::substitute_and_fold): Renamed from
7723         substitute_and_fold.  Remove assert.   Update ctor call.
7724
7725         * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef.
7726         (ssa_prop_visit_phi_fn): Likewise.
7727         (class ssa_propagation_engine): New class to provide an interface
7728         into ssa_propagate.
7729         * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped
7730         variable.
7731         (ssa_prop_visit_phi): Likewise.
7732         (ssa_propagation_engine::simulate_stmt): Moved into class.
7733         Call visit_phi/visit_stmt from the class rather than via
7734         file scoped static variables.
7735         (ssa_propagation_engine::simulate_block): Moved into class.
7736         (ssa_propagation_engine::process_ssa_edge_worklist): Similarly.
7737         (ssa_propagation_engine::ssa_propagate): Similarly.  No longer
7738         set file scoped statics for the visit_stmt/visit_phi callbacks.
7739         * tree-complex.c (complex_propagate): New class derived from
7740         ssa_propagation_engine.
7741         (complex_propagate::visit_stmt): Renamed from complex_visit_stmt.
7742         (complex_propagate::visit_phi): Renamed from complex_visit_phi.
7743         (tree_lower_complex): Call ssa_propagate via the complex_propagate
7744         class.
7745         * tree-ssa-ccp.c: (ccp_propagate): New class derived from
7746         ssa_propagation_engine.
7747         (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node.
7748         (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt.
7749         (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class.
7750         * tree-ssa-copy.c (copy_prop): New class derived from
7751         ssa_propagation_engine.
7752         (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt.
7753         (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node.
7754         (execute_copy_prop): Call ssa_propagate from the copy_prop class.
7755         * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine.
7756         (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt.
7757         (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node.
7758         (execute_vrp): Call ssa_propagate from the vrp_prop class.
7759
7760 2017-11-01  Jakub Jelinek  <jakub@redhat.com>
7761
7762         PR rtl-optimization/82778
7763         PR rtl-optimization/82597
7764         * compare-elim.c (struct comparison): Add in_a_setter field.
7765         (find_comparison_dom_walker::before_dom_children): Remove killed
7766         bitmap and df_simulate_find_defs call, instead walk the defs.
7767         Compute last_setter and initialize in_a_setter.  Merge definitions
7768         with first initialization for a few variables.
7769         (try_validate_parallel): Use insn_invalid_p instead of
7770         recog_memoized.  Return insn rather than just the pattern.
7771         (try_merge_compare): Fix up comment.  Don't uselessly test if
7772         in_a is a REG_P.  Use cmp->in_a_setter instead of walking UD
7773         chains.
7774         (execute_compare_elim_after_reload): Remove df_chain_add_problem
7775         call.
7776
7777 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7778             Alan Hayward  <alan.hayward@arm.com>
7779             David Sherwood  <david.sherwood@arm.com>
7780
7781         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
7782         aarch64_hard_regno_nregs to get the number of registers
7783         in a mode.
7784
7785 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7786             Alan Hayward  <alan.hayward@arm.com>
7787             David Sherwood  <david.sherwood@arm.com>
7788
7789         * config/aarch64/constraints.md (Upl): Rename to...
7790         (Uaa): ...this.
7791         * config/aarch64/aarch64.md
7792         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw):
7793         Update accordingly.
7794
7795 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7796             Alan Hayward  <alan.hayward@arm.com>
7797             David Sherwood  <david.sherwood@arm.com>
7798
7799         * config/aarch64/aarch64.c (aarch64_add_constant_internal)
7800         (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move
7801         earlier in file.
7802
7803 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7804             Alan Hayward  <alan.hayward@arm.com>
7805             David Sherwood  <david.sherwood@arm.com>
7806
7807         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp)
7808         (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev)
7809         (aarch64_evpc_dup): Generate rtl direcly, rather than using
7810         named expanders.
7811         (aarch64_expand_vec_perm_const_1): Explicitly check for permutes
7812         of a single element.
7813         * config/aarch64/iterators.md: Add a comment above the permute
7814         unspecs to say that they are generated directly by
7815         aarch64_expand_vec_perm_const.
7816         * config/aarch64/aarch64-simd.md: Likewise the permute instructions.
7817
7818 2017-11-01  Nathan Sidwell  <nathan@acm.org>
7819
7820         * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P.
7821
7822 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
7823
7824         * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
7825         and medany code models, and describe what they do.
7826
7827 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7828
7829         Revert accidental duplicate:
7830
7831         * combine.c (can_change_dest_mode): Reject changes in
7832         REGMODE_NATURAL_SIZE.
7833
7834 2017-11-01  Segher Boessenkool  <segher@kernel.crashing.org>
7835
7836         PR rtl-optimization/64682
7837         PR rtl-optimization/69567
7838         PR rtl-optimization/69737
7839         PR rtl-optimization/82683
7840         * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
7841         register mentioned in the note, drop the note, unless it came from I3,
7842         in which case it should go to I3 again.
7843
7844 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7845
7846         * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap
7847         and return false if not.
7848         (clear_bytes_written_by, live_bytes_read): Update accordingly.
7849
7850 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7851
7852         * tree-ssa-alias.h (ranges_overlap_p): Return false if either
7853         range is known to be empty.
7854
7855 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7856             Alan Hayward  <alan.hayward@arm.com>
7857             David Sherwood  <david.sherwood@arm.com>
7858
7859         * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS
7860         and CONST_VECTOR_NUNITS instead of computing the number of units from
7861         the byte sizes of the vector and element.
7862         (simplify_binary_operation_1): Likewise.
7863         (simplify_const_binary_operation): Likewise.
7864         (simplify_ternary_operation): Likewise.
7865
7866 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7867             Alan Hayward  <alan.hayward@arm.com>
7868             David Sherwood  <david.sherwood@arm.com>
7869
7870         * var-tracking.c (INT_MEM_OFFSET): Replace with...
7871         (int_mem_offset): ...this new function.
7872         (var_mem_set, var_mem_delete_and_set, var_mem_delete)
7873         (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs)
7874         (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset):
7875         Update accordingly.
7876
7877 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7878             Alan Hayward  <alan.hayward@arm.com>
7879             David Sherwood  <david.sherwood@arm.com>
7880
7881         * lower-subreg.c (interesting_mode_p): New function.
7882         (compute_costs, find_decomposable_subregs, decompose_register)
7883         (simplify_subreg_concatn, can_decompose_p, resolve_simple_move)
7884         (resolve_clobber, dump_choices): Use it.
7885
7886 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7887             Alan Hayward  <alan.hayward@arm.com>
7888             David Sherwood  <david.sherwood@arm.com>
7889
7890         * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'.
7891
7892 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7893             Alan Hayward  <alan.hayward@arm.com>
7894             David Sherwood  <david.sherwood@arm.com>
7895
7896         * alias.c (find_base_value, find_base_term): Only process integer
7897         truncations.  Check the precision rather than the size.
7898
7899 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7900             Alan Hayward  <alan.hayward@arm.com>
7901             David Sherwood  <david.sherwood@arm.com>
7902
7903         * machmode.h (is_narrower_int_mode): New function
7904         * optabs.c (expand_float, expand_fix): Use it.
7905         * dwarf2out.c (rotate_loc_descriptor): Likewise.
7906
7907 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7908             Alan Hayward  <alan.hayward@arm.com>
7909             David Sherwood  <david.sherwood@arm.com>
7910
7911         * rtl.h (narrower_subreg_mode): New function.
7912         * ira-color.c (update_costs_from_allocno): Use it.
7913
7914 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7915             Alan Hayward  <alan.hayward@arm.com>
7916             David Sherwood  <david.sherwood@arm.com>
7917
7918         * optabs-query.h (convert_optab_p): New function, split out from...
7919         (convert_optab_handler): ...here.
7920         (widening_optab_handler): Delete.
7921         (find_widening_optab_handler): Remove permit_non_widening parameter.
7922         (find_widening_optab_handler_and_mode): Likewise.  Provide an
7923         override that operates on mode class wrappers.
7924         * optabs-query.c (widening_optab_handler): Delete.
7925         (find_widening_optab_handler_and_mode): Remove permit_non_widening
7926         parameter.  Assert that the two modes are the same class and that
7927         the "from" mode is narrower than the "to" mode.  Use
7928         convert_optab_handler instead of widening_optab_handler.
7929         * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler
7930         instead of widening_optab_handler.
7931         * expr.c (expand_expr_real_2): Update calls to
7932         find_widening_optab_handler.
7933         * optabs.c (expand_widen_pattern_expr): Likewise.
7934         (expand_binop_directly): Take the insn_code as a parameter.
7935         (expand_binop): Only call find_widening_optab_handler for
7936         conversion optabs; use optab_handler otherwise.  Update calls
7937         to find_widening_optab_handler and expand_binop_directly.
7938         Use convert_optab_handler instead of widening_optab_handler.
7939         * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to
7940         find_widening_optab_handler and use scalar_mode rather than
7941         machine_mode.
7942         (convert_plusminus_to_widen): Likewise.
7943
7944 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7945             Alan Hayward  <alan.hayward@arm.com>
7946             David Sherwood  <david.sherwood@arm.com>
7947
7948         * machmode.h (fixed_size_mode): New class.
7949         * rtl.h (get_pool_mode): Return fixed_size_mode.
7950         * gengtype.c (main): Add fixed_size_mode.
7951         * target.def (get_raw_result_mode): Return a fixed_size_mode.
7952         (get_raw_arg_mode): Likewise.
7953         * doc/tm.texi: Regenerate.
7954         * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode.
7955         * targhooks.c (default_get_reg_raw_mode): Likewise.
7956         * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise.
7957         * config/mips/mips.c (mips_get_reg_raw_mode): Likewise.
7958         * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise.
7959         (msp430_get_raw_result_mode): Likewise.
7960         * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode>
7961         * dbxout.c (dbxout_parms): Require fixed-size modes.
7962         * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise.
7963         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
7964         * omp-low.c (lower_oacc_reductions): Likewise.
7965         * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes.
7966         (simplify_subreg): Update accordingly.
7967         * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode.
7968         (force_const_mem): Update accordingly.  Return NULL_RTX for modes
7969         that aren't fixed-size.
7970         (get_pool_mode): Return a fixed_size_mode.
7971         (output_constant_pool_2): Take a fixed_size_mode.
7972
7973 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7974             Alan Hayward  <alan.hayward@arm.com>
7975             David Sherwood  <david.sherwood@arm.com>
7976
7977         * doc/rtl.texi (vec_series): Document.
7978         (const): Say that the operand can be a vec_series.
7979         * rtl.def (VEC_SERIES): New rtx code.
7980         * rtl.h (const_vec_series_p_1): Declare.
7981         (const_vec_series_p): New function.
7982         * emit-rtl.h (gen_const_vec_series): Declare.
7983         (gen_vec_series): Likewise.
7984         * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series)
7985         (gen_vec_series): Likewise.
7986         * optabs.c (expand_mult_highpart): Use gen_const_vec_series.
7987         * simplify-rtx.c (simplify_unary_operation): Handle negations
7988         of vector series.
7989         (simplify_binary_operation_series): New function.
7990         (simplify_binary_operation_1): Use it.  Handle VEC_SERIES.
7991         (test_vector_ops_series): New function.
7992         (test_vector_ops): Call it.
7993         * config/powerpcspe/altivec.md (altivec_lvsl): Use
7994         gen_const_vec_series.
7995         (altivec_lvsr): Likewise.
7996         * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise.
7997
7998 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
7999             Alan Hayward  <alan.hayward@arm.com>
8000             David Sherwood  <david.sherwood@arm.com>
8001
8002         * doc/rtl.texi (const): Update description of address constants.
8003         Say that vector constants are allowed too.
8004         * common.md (E, F): Use CONSTANT_P instead of checking for
8005         CONST_VECTOR.
8006         * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
8007         checking for CONST_VECTOR.
8008         * expmed.c (make_tree): Use build_vector_from_val for a CONST
8009         VEC_DUPLICATE.
8010         * expr.c (expand_expr_real_2): Check for vector modes instead
8011         of checking for CONST_VECTOR.
8012         * rtl.h (const_vec_p): New function.
8013         (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
8014         (unwrap_const_vec_duplicate): Handle them here too.
8015
8016 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8017             David Malcolm  <dmalcolm@redhat.com>
8018             Alan Hayward  <alan.hayward@arm.com>
8019             David Sherwood  <david.sherwood@arm.com>
8020
8021         * rtl.h (vec_duplicate_p): New function.
8022         * selftest-rtl.c (assert_rtx_eq_at): New function.
8023         * selftest-rtl.h (ASSERT_RTX_EQ): New macro.
8024         (assert_rtx_eq_at): Declare.
8025         * selftest.h (selftest::simplify_rtx_c_tests): Declare.
8026         * selftest-run-tests.c (selftest::run_tests): Call it.
8027         * simplify-rtx.c: Include selftest.h and selftest-rtl.h.
8028         (simplify_unary_operation_1): Recursively handle vector duplicates.
8029         (simplify_binary_operation_1): Likewise.  Handle VEC_SELECTs of
8030         vector duplicates.
8031         (simplify_subreg): Handle subregs of vector duplicates.
8032         (make_test_reg, test_vector_ops_duplicate, test_vector_ops)
8033         (selftest::simplify_rtx_c_tests): New functions.
8034
8035 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8036             Alan Hayward  <alan.hayward@arm.com>
8037             David Sherwood  <david.sherwood@arm.com>
8038
8039         * emit-rtl.h (gen_const_vec_duplicate): Declare.
8040         (gen_vec_duplicate): Likewise.
8041         * emit-rtl.c (gen_const_vec_duplicate_1): New function, split
8042         out from...
8043         (gen_const_vector): ...here.
8044         (gen_const_vec_duplicate, gen_vec_duplicate): New functions.
8045         (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants
8046         whose elements are all equal.
8047         * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate.
8048         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
8049         (simplify_relational_operation): Likewise.
8050         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
8051         Likewise.
8052         (aarch64_simd_dup_constant): Use gen_vec_duplicate.
8053         (aarch64_expand_vector_init): Likewise.
8054         * config/arm/arm.c (neon_vdup_constant): Likewise.
8055         (neon_expand_vector_init): Likewise.
8056         (arm_expand_vec_perm): Use gen_const_vec_duplicate.
8057         (arm_block_set_unaligned_vect): Likewise.
8058         (arm_block_set_aligned_vect): Likewise.
8059         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
8060         * config/i386/i386.c (ix86_expand_vec_perm): Likewise.
8061         (expand_vec_perm_even_odd_pack): Likewise.
8062         (ix86_vector_duplicate_value): Use gen_vec_duplicate.
8063         * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX.
8064         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use
8065         gen_const_vec_duplicate.
8066         * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX.
8067         * config/mips/mips.c (mips_gen_const_int_vector): Use
8068         gen_const_vec_duplicate.
8069         (mips_expand_vector_init): Use CONST0_RTX.
8070         * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise.
8071         (define_split): Use gen_const_vec_duplicate.
8072         * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX.
8073         (define_split): Use gen_const_vec_duplicate.
8074         * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise.
8075         (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise.
8076         * config/spu/spu.c (spu_const): Likewise.
8077
8078 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8079             Alan Hayward  <alan.hayward@arm.com>
8080             David Sherwood  <david.sherwood@arm.com>
8081
8082         * combine.c (can_change_dest_mode): Reject changes in
8083         REGMODE_NATURAL_SIZE.
8084
8085 2017-10-31  Sandra Loosemore  <sandra@codesourcery.com>
8086
8087         * configure.ac (--enable-libssp): New.
8088         (gcc_cv_libc_provides_ssp): Check for explicit setting before
8089         trying to determine target-specific default.  Adjust indentation.
8090         * configure: Regenerated.
8091         * doc/install.texi (Configuration): Expand --disable-libssp
8092         documentation.
8093
8094 2017-10-31  Daniel Santos  <daniel.santos@pobox.com>
8095
8096         config/i386/i386.c (ix86_expand_epilogue): Correct stack
8097         calculation.
8098
8099 2017-10-31  Martin Jambor  <mjambor@suse.cz>
8100
8101         PR c++/81702
8102         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
8103
8104 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
8105
8106         * auto-profile.c (autofdo_source_profile::read): Use
8107         UNKNOWN_LOCATION rather than 0.
8108         * diagnostic-core.h (warning_at_rich_loc): Rename to...
8109         (warning_at): ...this overload.
8110         (warning_at_rich_loc_n): Rename to...
8111         (warning_n): ...this overload.
8112         (error_at_rich_loc): Rename to...
8113         (error_at): ...this overload.
8114         (pedwarn_at_rich_loc): Rename to...
8115         (pedwarn): ...this overload.
8116         (permerror_at_rich_loc): Rename to...
8117         (permerror): ...this overload.
8118         (inform_at_rich_loc): Rename to...
8119         (inform): ...this overload.
8120         * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
8121         (diagnostic_n_impl_richloc): Rename to...
8122         (diagnostic_n_impl): ...this rich_location *-based decl.
8123         (inform_at_rich_loc): Rename to...
8124         (inform): ...this, and add an assertion.
8125         (inform_n): Update for removal of location_t-based diagnostic_n_impl.
8126         (warning_at_rich_loc): Rename to...
8127         (warning_at): ...this, and add an assertion.
8128         (warning_at_rich_loc_n): Rename to...
8129         (warning_n): ...this, and add an assertion.
8130         (warning_n): Update location_t-based implementation for removal of
8131         location_t-based diagnostic_n_impl.
8132         (pedwarn_at_rich_loc): Rename to...
8133         (pedwarn): ...this, and add an assertion.
8134         (permerror_at_rich_loc): Rename to...
8135         (permerror): ...this, and add an assertion.
8136         (error_n): Update for removal of location_t-based diagnostic_n_impl.
8137         (error_at_rich_loc): Rename to...
8138         (error_at): ...this, and add an assertion.
8139         * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
8140         (driver::do_spec_on_infiles): Likewise.
8141         * substring-locations.c (format_warning_va): Update for renaming
8142         of inform_at_rich_loc.
8143
8144 2017-10-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
8145
8146         * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
8147         _Float<N>X built-in functions so that the variant without the
8148         "__builtin_" prefix is only enabled for the GNU C and Objective C
8149         languages when they are in non-strict ANSI/ISO mode.
8150         (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
8151         * target.def (floatn_builtin_p): Add a target hook to control
8152         whether _Float<N> and _Float<N>X built-in functions without the
8153         "__builtin_" prefix are enabled, and return true for C and
8154         Objective C in the default hook.  Include langhooks.h in
8155         targhooks.c.
8156         * targhooks.h (default_floatn_builtin_p): Likewise.
8157         * targhooks.c (default_floatn_builtin_p): Likewise.
8158         * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
8159         floatn_builtin_p target hook.
8160         * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
8161
8162 2017-10-31  Matthew Fortune  <matthew.fortune@imgtec.com>
8163             Eric Botcazou  <ebotcazou@adacore.com>
8164
8165         PR rtl-optimization/81803
8166         * lra-constraints.c (curr_insn_transform): Also reload the whole
8167         register for a strict subreg no wider than a word if this is for
8168         a WORD_REGISTER_OPERATIONS target.
8169
8170 2017-10-31  Jason Merrill  <jason@redhat.com>
8171
8172         * gdbinit.in: Skip over inlines from timevar.h.
8173
8174 2017-10-31  Martin Liska  <mliska@suse.cz>
8175
8176         * doc/gcov.texi: Document new option.
8177         * gcov.c (print_usage): Likewise print it.
8178         (process_args): Support the argument.
8179         (format_count): New function.
8180         (format_gcov): Use the function.
8181
8182 2017-10-31  Martin Liska  <mliska@suse.cz>
8183
8184         * gcov.c (struct name_map): do not use typedef.
8185         Define operator== and operator<.
8186         (name_search): Remove.
8187         (name_sort): Remove.
8188         (main): Do not allocate names.
8189         (process_file): Add vertical space.
8190         (generate_results): Use std::find.
8191         (release_structures): Do not release memory.
8192         (find_source): Use std::find.
8193
8194 2017-10-31  Martin Liska  <mliska@suse.cz>
8195
8196         * gcov.c (struct line_info): Remove it's typedef.
8197         (line_info::line_info): Add proper ctor.
8198         (line_info::has_block): Do not use a typedef.
8199         (struct source_info): Do not use typedef.
8200         (circuit): Likewise.
8201         (get_cycles_count): Likewise.
8202         (output_intermediate_file): Iterate via vector iterator.
8203         (add_line_counts): Use std::vector methods.
8204         (accumulate_line_counts): Likewise.
8205         (output_lines): Likewise.
8206
8207 2017-10-31  Martin Liska  <mliska@suse.cz>
8208
8209         * gcov.c (struct source_info): Remove typedef.
8210         (source_info::source_info): Add proper ctor.
8211         (accumulate_line_counts): Use struct, not it's typedef.
8212         (output_gcov_file): Likewise.
8213         (output_lines): Likewise.
8214         (main): Do not allocate an array.
8215         (output_intermediate_file): Use size of vector container.
8216         (process_file): Resize the vector.
8217         (generate_results): Do not preallocate, use newly added vector
8218         lines.
8219         (release_structures): Do not release sources.
8220         (find_source): Use vector methods.
8221         (add_line_counts): Do not use typedef.
8222
8223 2017-10-31  Martin Liska  <mliska@suse.cz>
8224
8225         * doc/gcov.texi: Document that.
8226         * gcov.c (add_line_counts): Mark lines with a non-executed
8227         statement.
8228         (output_line_beginning): Handle such lines.
8229         (output_lines): Pass new argument.
8230         (output_intermediate_file): Print it in intermediate format.
8231
8232 2017-10-31  Martin Liska  <mliska@suse.cz>
8233
8234         * color-macros.h: New file.
8235         * diagnostic-color.c: Factor out color related to macros to
8236         color-macros.h.
8237         * doc/gcov.texi: Document -k option.
8238         * gcov.c (INCLUDE_STRING): Include string.h.
8239         (print_usage): Add -k option.
8240         (process_args): Parse it.
8241         (pad_count_string): New function.
8242         (output_line_beginning): Likewise.
8243         (DEFAULT_LINE_START): New macro.
8244         (output_lines): Support color output.
8245
8246 2017-10-31  Martin Liska  <mliska@suse.cz>
8247
8248         PR gcov-profile/82633
8249         * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
8250         their interaction with GCOV infrastructure.
8251         * configure.ac: Add -fkeep-{inline,static}-functions to
8252         coverage_flags.
8253         * configure: Regenerate.
8254
8255 2017-10-31  Uros Bizjak  <ubizjak@gmail.com>
8256
8257         PR target/82772
8258         * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
8259
8260 2017-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
8261
8262         PR target/82674
8263         * config/rs6000/rs6000.md (allocate_stack): Force update interval
8264         into a register if it does not fit into an immediate offset field.
8265
8266 2017-10-31  Olivier Hainque  <hainque@adacore.com>
8267
8268         * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
8269
8270 2017-10-31  Julia Koval  <julia.koval@intel.com>
8271
8272         * config.gcc: Add gfniintrin.h.
8273         * config/i386/gfniintrin.h: New.
8274         * config/i386/i386-builtin-types.def
8275         (__builtin_ia32_vgf2p8affineinvqb_v64qi,
8276         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
8277         __builtin_ia32_vgf2p8affineinvqb_v32qi,
8278         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
8279         __builtin_ia32_vgf2p8affineinvqb_v16qi,
8280         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
8281         * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
8282         V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
8283         V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
8284         V64QI_FTYPE_V64QI_V64QI_INT): New types.
8285         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
8286         * config/i386/immintrin.h: Include gfniintrin.h.
8287         * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
8288
8289 2017-10-30  Eric Botcazou  <ebotcazou@adacore.com>
8290
8291         * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
8292
8293 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
8294
8295         * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
8296         (arm_ashldi3_1bit): Remove pattern.
8297         (ashrdi3): Remove shift by 1 expansion.
8298         (arm_ashrdi3_1bit): Remove pattern.
8299         (lshrdi3): Remove shift by 1 expansion.
8300         (arm_lshrdi3_1bit): Remove pattern.
8301         * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
8302         cost of ashldi3 by 1.
8303         * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
8304         (<shift>di3_neon): Likewise.
8305
8306 2017-10-30  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
8307
8308         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
8309         both identically named patterns to (*aarch64_simd_mov<VD:mode>)
8310         and (*aarch64_simd_mov<VQ:mode>).
8311         (*aarch64_simd_mov<VD:mode>): Change type attribute to match
8312         pattern alternative.
8313         (*aarch64_simd_mov<VQ:mode>): Re-order and change type
8314         attributes to match pattern alternative.
8315
8316 2017-10-30  Steven Munroe  <munroesj@gcc.gnu.org>
8317
8318         * config.gcc (powerpc*-*-*): Add emmintrin.h.
8319         * config/rs6000/emmintrin.h: New file.
8320         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
8321
8322 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
8323
8324         * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
8325         * (movdi_vfp_cortexa8): Remove pattern.
8326
8327 2017-10-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8328
8329         * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
8330         etc. reference.
8331         (Specific, alpha*-dec-osf5.1): Remove.
8332         (Specific, mips-sgi-irix5): Remove.
8333         (Specific, mips-sgi-irix6): Remove.
8334
8335 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
8336
8337         PR middle-end/22141
8338         * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
8339         arguments to clear_bit_region_be.
8340
8341 2017-10-30  Jim Wilson  <wilson@tuliptree.org>
8342
8343         * gimplify.c: Include memmodel.h.
8344
8345 2017-10-30  Martin Jambor  <mjambor@suse.cz>
8346
8347         * omp-grid.c (grid_attempt_target_gridification): Also insert a
8348         condition whether loop should be executed at all.
8349
8350 2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>
8351
8352         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
8353         gimple folding of vec_madd() intrinsics.
8354         * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
8355         fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
8356         * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
8357
8358 2017-10-30  Richard Biener  <rguenther@suse.de>
8359
8360         PR tree-optimization/82762
8361         Revert
8362         2017-10-23  Richard Biener  <rguenther@suse.de>
8363
8364         PR tree-optimization/82129
8365         Revert
8366         2017-08-01  Richard Biener  <rguenther@suse.de>
8367
8368         PR tree-optimization/81181
8369         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
8370         (compute_antic): ... end of iteration here.
8371
8372 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
8373
8374         * doc/invoke.texi (C Dialect Options): Document -std=c17,
8375         -std=iso9899:2017 and -std=gnu17.
8376         * doc/standards.texi (C Language): Document C17 support.
8377         * doc/cpp.texi (Overview): Mention -std=c17.
8378         (Standard Predefined Macros): Document C11 and C17 values of
8379         __STDC_VERSION__.  Do not refer to C99 support as incomplete.
8380         * doc/extend.texi (Inline): Do not list individual options for
8381         standards newer than C99.
8382         * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
8383         "GNU C17".
8384         * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
8385         language name.
8386
8387 2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
8388
8389         * asan.c (asan_finish_file): Align asan globals array by shadow
8390         granularity.
8391
8392 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
8393
8394         PR middle-end/22141
8395         * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
8396         (struct store_immediate_info): Add bitregion_start and bitregion_end
8397         fields.
8398         (store_immediate_info::store_immediate_info): Add brs and bre
8399         arguments and initialize bitregion_{start,end} from those.
8400         (struct merged_store_group): Add bitregion_start, bitregion_end,
8401         align_base and mask fields.  Drop unnecessary struct keyword from
8402         struct store_immediate_info.  Add do_merge method.
8403         (clear_bit_region_be): Use memset instead of loop storing zeros.
8404         (merged_store_group::do_merge): New method.
8405         (merged_store_group::merge_into): Use do_merge.  Allow gaps in between
8406         stores as long as the surrounding bitregions have no gaps.
8407         (merged_store_group::merge_overlapping): Use do_merge.
8408         (merged_store_group::apply_stores): Test that bitregion_{start,end}
8409         is byte aligned, rather than requiring that start and width are
8410         byte aligned.  Drop unnecessary struct keyword from
8411         struct store_immediate_info.  Allocate and populate also mask array.
8412         Make start of the arrays relative to bitregion_start rather than
8413         start and size them according to bitregion_{end,start} difference.
8414         (struct imm_store_chain_info): Drop unnecessary struct keyword from
8415         struct store_immediate_info.
8416         (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
8417         (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
8418         struct keyword from struct store_immediate_info.
8419         (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
8420         between stores as long as the surrounding bitregions have no gaps.
8421         Formatting fixes.
8422         (struct split_store): Add orig non-static data member.
8423         (split_store::split_store): Initialize orig to false.
8424         (find_constituent_stmts): Return store_immediate_info *, non-NULL
8425         if there is exactly a single original stmt.  Change stmts argument
8426         to pointer from reference, if NULL, don't push anything to it.  Add
8427         first argument, use it to optimize skipping over orig stmts that
8428         are known to be before bitpos already.  Simplify.
8429         (split_group): Return unsigned int count how many stores are or
8430         would be needed rather than a bool.  Add allow_unaligned argument.
8431         Change split_stores argument from reference to pointer, if NULL,
8432         only do a dry run computing how many stores would be produced.
8433         Rewritten algorithm to use both alignment and misalign if
8434         !allow_unaligned and handle bitfield stores with gaps.
8435         (imm_store_chain_info::output_merged_store): Set start_byte_pos
8436         from bitregion_start instead of start.  Compute allow_unaligned
8437         here, if true, do 2 split_group dry runs to compute which one
8438         produces fewer stores and prefer aligned if equal.  Punt if
8439         new count is bigger or equal than original before emitting any
8440         statements, rather than during that.  Remove no longer needed
8441         new_ssa_names tracking.  Replace num_stmts with
8442         split_stores.length ().  Use 32-bit stack allocated entries
8443         in split_stores auto_vec.  Try to reuse original store lhs/rhs1
8444         if possible.  Handle bitfields with gaps.
8445         (pass_store_merging::execute): Ignore bitsize == 0 stores.
8446         Compute bitregion_{start,end} for the stores and construct
8447         store_immediate_info with that.  Formatting fixes.
8448
8449 2017-10-30  Uros Bizjak  <ubizjak@gmail.com>
8450
8451         PR target/82725
8452         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
8453         UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
8454
8455 2017-10-29  Jim Wilson  <wilson@tuliptree.org>
8456
8457         * gimplify.c: Include tm_p.h.
8458
8459         * common.opt (gcoff): Re-add as ignored option.
8460         (gcoff1, gcoff2, gcoff3): Likewise.
8461
8462         * Makefile.in (OBJS): Delete sdbout.o.
8463         (GTFILES): Delete $(srcdir)/sdbout.c.
8464         * debug.h: Delete sdb_debug_hooks.
8465         * final.c: Delete sdbout.h include.
8466         (final_scan_insn): Delete SDB_DEBUG check.
8467         (rest_of_clean_state): Likewise.
8468         * output.h: Delete sdb_begin_function_line.
8469         * sdbout.c: Delete.
8470         * sdbout.h: Delete.
8471         * toplev.c: Delete sdbout.h include.
8472         (process_options): Delete SDB_DEBUG check.
8473         * tree-core.h (tree_type_common): Delete pointer field of
8474         tree_type_symtab.
8475         * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
8476         TYPE_SYMTAB_POINTER.
8477         * tree.h (TYPE_SYMTAB_POINTER): Delete.
8478         (TYPE_SYMTAB_IS_POINTER): Delete.
8479         (TYPE_SYMTAB_IS_DIE): Renumber.
8480         * xcoffout.c: Refer to former sdbout.c file.
8481         (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
8482
8483         * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
8484         * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
8485         (Debugging Options): Delete -gcoff.
8486         (-gstabs): Delete SDB reference.
8487         (-gcoff): Delete.
8488         (-gcoff@var{level}): Delete.
8489         * doc/passes.texi (Debugging information output): Delete SDB and
8490         sdbout.c references.
8491         * doc/tm.texi: Regenerate.
8492         * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
8493         (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
8494         references.
8495         (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
8496         (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
8497         (SDB_DEBUGGING_INFO): Delete.
8498         (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
8499         SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
8500         * target.def (output_source_filename): Delete COFF reference.
8501
8502         * common.opt (gcoff): Delete.
8503         (gxcoff+): Update Negative chain.
8504         * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
8505         SDB_DEBUG.
8506         * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
8507         * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
8508         * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
8509         and SDB references.
8510         (expand_function_start): Change sdb reference to past tense.
8511         (expand_function_end): Change sdb reference to past tense.
8512         * gcc.c (cpp_unique_options): Delete gcoff3 reference.
8513         * opts.c (debug_type_names): Delete coff entry.
8514         (common_handle_option): Delete OPT_gcoff case.
8515         * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
8516
8517         * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
8518         * config/cris/cris.h: Delete SDB reference in comment.
8519         * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
8520         (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
8521         * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
8522         * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
8523         to past tense.
8524         (ix86_expand_prologue): Likewise.
8525         * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
8526         * config/ia64/ia64.h: Likewise.
8527         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
8528         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
8529         support.
8530         * config/mmix/mmix.h: Likewise.
8531         * config/nds32/nds32.c: Likewise.
8532         * config/stormy/storym16.h: Likewise.
8533         * config/visium/visium.h: Likewise.
8534         * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
8535
8536 2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>
8537
8538         * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
8539         * config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
8540         FRAME_POINTER_REGNUM point at high end of local var area.
8541
8542 2017-10-27  Eric Botcazou  <ebotcazou@adacore.com>
8543
8544         * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
8545         Move comment around.  Do not reset best_edge for a copiable
8546         destination if the copy would cause a partition change.
8547         (better_edge_p): Remove redundant check.
8548
8549 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
8550
8551         * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
8552
8553 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
8554
8555         * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
8556         for math functions that have _Float<N> and _Float<N>X variants.
8557         (mathfn_built_in_2): Add support for math functions that have
8558         _Float<N> and _Float<N>X variants.
8559         (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
8560         (expand_builtin_mathfn_ternary): Add support for fma with
8561         _Float<N> and _Float<N>X variants.
8562         (expand_builtin): Likewise.
8563         (fold_builtin_3): Likewise.
8564         * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
8565         create math function _Float<N> and _Float<N>X variants as external
8566         library builtins.
8567         (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
8568         DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
8569         the __builtin_ prefix and if not strict ansi, without the prefix.
8570         (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
8571         (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
8572         (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
8573         (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
8574         (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
8575         (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
8576         * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
8577         function signatures for fma _Float<N> and _Float<N>X variants.
8578         (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
8579         (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
8580         (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
8581         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
8582         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
8583         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
8584         * gencfn-macros.c (print_case_cfn): Add support for math functions
8585         that have _Float<N> and _Float<N>X variants.
8586         (print_define_operator_list): Likewise.
8587         (fltfn_suffixes): Likewise.
8588         (main): Likewise.
8589         * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
8590         for math functions that have _Float<N> and _Float<N>X variants.
8591         (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
8592         and _Float<N>X variants.
8593         (COPYSIGN): Likewise.
8594         (FMIN): Likewise.
8595         (FMAX): Likewise.
8596         * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
8597         copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
8598         variants.
8599         (integer_valued_read_call_p): Likewise.
8600         * fold-const-call.c (fold_const_call_ss): Likewise.
8601         (fold_const_call_sss): Add support for copysign, fmin, and fmax
8602         _Float<N> and _Float<N>X variants.
8603         (fold_const_call_ssss): Add support for fma _Float<N> and
8604         _Float<N>X variants.
8605         * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
8606         support for copysign and fma _Float<N> and _Float<N>X variants.
8607         (backprop::process_builtin_call_use): Likewise.
8608         * tree-call-cdce.c (can_test_argument_range); Add support for
8609         sqrt _Float<N> and _Float<N>X variants.
8610         (edom_only_function): Likewise.
8611         (get_no_error_domain): Likewise.
8612         * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
8613         * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
8614         copysign _Float<N> and _Float<N>X variants.
8615         * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
8616         handled by machine independent code.
8617         (FMAF128): Likewise.
8618         * doc/cpp.texi (Common Predefined Macros): Document defining
8619         __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
8620         fma _Float<N> and _Float<N>X variants.
8621
8622 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
8623
8624         PR target/82692
8625         * config/i386/i386-modes.def (CCFPU): Remove definition.
8626         * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
8627         (ix86_cc_modes_compatible): Ditto.
8628         (ix86_expand_carry_flag_compare): Ditto.
8629         (ix86_expand_int_movcc): Ditto.
8630         (ix86_expand_int_addcc): Ditto.
8631         (ix86_reverse_condition): Ditto.
8632         (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
8633         Return true/false for unordered/ordered fp comparisons.
8634         (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
8635         (ix86_prepare_fp_compare_args): Update for rename.
8636         (ix86_expand_fp_compare): Update for rename.  Generate unordered
8637         compare RTXes wrapped with UNSPEC_NOTRAP unspec.
8638         (ix86_expand_sse_compare_and_jump): Ditto.
8639         * config/i386/predicates.md (fcmov_comparison_operator):
8640         Remove CCFPU mode handling.
8641         (ix86_comparison_operator): Ditto.
8642         (ix86_carry_flag_operator): Ditto.
8643         * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
8644         (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
8645         (*cmpu<mode>_cc_i387): Ditto.
8646         (FPCMP): Remove mode iterator.
8647         (unord): Remove mode attribute.
8648         (unord_subst): New define_subst transformation
8649         (unord): New define_subst attribute.
8650         (unordered): Ditto.
8651         (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
8652         (*cmpi<unord>xf_i387): Ditto.
8653         * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
8654         from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
8655         using unord_subst transformation.
8656         * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
8657         (round_saeonly): Also handle CCFP mode.
8658         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
8659         Remove UNSPEC_SAHF unspec handling.
8660
8661 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
8662
8663         * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
8664
8665 2017-10-27  Jeff Law  <law@redhat.com>
8666
8667         * gimple-ssa-sprintf.c: Include domwalk.h.
8668         (class sprintf_dom_walker): New class, derived from dom_walker.
8669         (sprintf_dom_walker::before_dom_children): New function.
8670         (struct call_info): Moved into sprintf_dom_walker class
8671         (compute_formath_length, handle_gimple_call): Likewise.
8672         (sprintf_length::execute): Call the dominator walker rather
8673         than walking the statements.
8674
8675         * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
8676         gimple statement locations.
8677         (check_array_bounds): Corresponding changes.  Get the statement's
8678         location directly from wi->stmt.
8679
8680 2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>
8681
8682         PR target/82717
8683         * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
8684
8685 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
8686
8687         * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
8688         X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
8689
8690 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
8691
8692         PR target/82703
8693         * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
8694         * config/i386/i386.c (maybe_get_pool_constant): Removed.
8695         (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
8696         maybe_get_pool_constant.
8697         * config/i386/predicates.md (zero_extended_scalar_load_operand):
8698         Likewise.
8699
8700 2017-10-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8701
8702         * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
8703         2.26 caveat.  Update gas and gld versions.
8704         (Specific, *-*-solaris2*): Update binutils version.  Remove caveat
8705         reference.
8706
8707 2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8708
8709         * cgraph.h (set_malloc_flag): Declare.
8710         * cgraph.c (set_malloc_flag_1): New function.
8711         (set_malloc_flag): Likewise.
8712         * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
8713         * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
8714         false.
8715         (read_ipa_call_summary): Add support for reading is_return_callee.
8716         (write_ipa_call_summary): Stream is_return_callee.
8717         * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
8718         * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
8719         ipa-prop.h, ipa-fnsummary.h.
8720         (pure_const_names): Change to static.
8721         (malloc_state_e): Define.
8722         (malloc_state_names): Define.
8723         (funct_state_d): Add field malloc_state.
8724         (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
8725         (check_retval_uses): New function.
8726         (malloc_candidate_p): Likewise.
8727         (analyze_function): Add support for malloc attribute.
8728         (pure_const_write_summary): Stream malloc_state.
8729         (pure_const_read_summary): Add support for reading malloc_state.
8730         (dump_malloc_lattice): New function.
8731         (propagate_malloc): New function.
8732         (warn_function_malloc): New function.
8733         (ipa_pure_const::execute): Call propagate_malloc and
8734         ipa_free_fn_summary.
8735         (pass_local_pure_const::execute): Add support for malloc attribute.
8736         * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
8737         * doc/invoke.texi: Document Wsuggest-attribute=malloc.
8738
8739 2017-10-27  Martin Liska  <mliska@suse.cz>
8740
8741         PR gcov-profile/82457
8742         * doc/invoke.texi: Document that one needs a non-strict ISO mode
8743         for fork-like functions to be properly instrumented.
8744
8745 2017-10-27  Richard Biener  <rguenther@suse.de>
8746
8747         PR middle-end/81659
8748         * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
8749         info when we redirected EH.
8750
8751 2017-10-26  Michael Collison  <michael.collison@arm.com>
8752
8753         * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
8754         New pattern.
8755         (<optab>_trunchf<GPI:mode>2: New pattern.
8756         (<optab>_trunc<vgp><GPI:mode>2: New pattern.
8757         * config/aarch64/iterators.md (wv): New mode attribute.
8758         (vf, VF): New mode attributes.
8759         (vgp, VGP): New mode attributes.
8760         (s): Update attribute with SImode and DImode prefixes.
8761
8762 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
8763
8764         * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
8765         * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
8766         * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
8767         (nios2_option_overide): Initialize it.  Don't allow R0-relative
8768         addressing with PIC.
8769         (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
8770         (nios2_symbolic_constant_p): Likewise.
8771         (nios2_legitimate_address_p): Likewise.
8772         (nios2_r0rel_section_name_p): New.
8773         (nios2_symbol_ref_in_r0rel_data_p): New.
8774         (nios2_emit_move_sequence): Handle r0rel_constant_p.
8775         (r0rel_constant_p): New.
8776         (nios2_print_operand_address): Handle r0rel_constant_p.
8777         (nios2_cdx_narrow_form_p): Likewise.
8778         * config/nios2/nios2.opt (mr0rel-sec=): New option.
8779         * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
8780         (Nios II Options): Document -mr0rel-sec.
8781
8782 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
8783
8784         * config/nios2/nios2.c: Include xregex.h.
8785         (nios2_gprel_sec_regex): New.
8786         (nios2_option_overide): Initialize it.  Don't allow GP-relative
8787         addressing with PIC.
8788         (nios2_small_section_name_p): Check for regex match.
8789         * config/nios2/nios2.opt (mgprel-sec=): New option.
8790         * doc/invoke.texi (Option Summary): Add -mgprel-sec.
8791         (Nios II Options): Document -mgprel-sec.
8792
8793 2017-10-26  Jim Wilson  <wilson@tuliptree.org>
8794
8795         * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
8796
8797 2017-10-26  Tom de Vries  <tom@codesourcery.com>
8798
8799         PR tree-optimization/82707
8800         * gimple.c (gimple_copy): Fix unsharing of
8801         GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
8802
8803 2017-10-26  Olga Makhotina  <olga.makhotina@intel.com>
8804
8805         * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
8806         _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
8807         _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
8808         _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
8809         _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
8810         _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
8811         _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
8812         _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
8813         _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
8814         _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
8815         _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
8816         _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
8817         _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
8818         _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
8819         _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
8820         _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
8821         _mm512_mask_cmpunord_ps_mask): New intrinsics.
8822
8823 2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
8824
8825         * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
8826         default to IBM.
8827         * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
8828         * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
8829         warning to rs6000.c.  Remove the Undocumented flag, since it has
8830         been documented.
8831         (-mabi=ibmlongdouble): Likewise.
8832         * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
8833         already set, set the default format for long double.
8834         (rs6000_debug_reg_global): Print whether long double is IBM or
8835         IEEE.
8836         (rs6000_option_override_internal): Rework setting long double
8837         format.  Only warn if the user is changing the long double default
8838         and they did not use -Wno-psabi.
8839         * doc/invoke.texi (PowerPC options): Update the documentation for
8840         -mabi=ieeelongdouble and -mabi=ibmlongdouble.
8841
8842 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
8843             Alan Hayward  <alan.hayward@arm.com>
8844             David Sherwood  <david.sherwood@arm.com>
8845
8846         * rtl.h (wider_subreg_mode): New function.
8847         * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
8848         rather than an unsigned int *.
8849         * ira-color.c (regno_max_ref_width): Replace with...
8850         (regno_max_ref_mode): ...this new variable.
8851         (coalesced_pseudo_reg_slot_compare): Update accordingly.
8852         Use wider_subreg_mode.
8853         (ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
8854         rather than an unsigned int *.
8855         * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
8856         (process_alt_operands): Likewise.
8857         (invariant_p): Likewise.
8858         * lra-spills.c (assign_mem_slot): Likewise.
8859         (add_pseudo_to_slot): Likewise.
8860         * lra.c (collect_non_operand_hard_regs): Likewise.
8861         (add_regs_to_insn_regno_info): Likewise.
8862         * reload1.c (regno_max_ref_width): Replace with...
8863         (regno_max_ref_mode): ...this new variable.
8864         (reload): Update accordingly.  Update call to
8865         ira_sort_regnos_for_alter_reg.
8866         (alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
8867         (init_eliminable_invariants): Update to use regno_max_ref_mode.
8868         (scan_paradoxical_subregs): Likewise.
8869
8870 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
8871
8872         * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
8873         (aarch64_frame): Add emit_frame_chain boolean.
8874         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
8875         Move eh_return case to aarch64_layout_frame.
8876         (aarch64_layout_frame): Initialize emit_frame_chain.
8877         (aarch64_expand_prologue): Use emit_frame_chain.
8878
8879 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
8880
8881         * config/aarch64/aarch64.c (aarch64_layout_frame):
8882         Ensure LR is always stored at the bottom of the callee-saves.
8883         Remove rarely used frame layout which saves callee-saves at top of
8884         frame, so the store of LR can be used as a valid probe in all cases.
8885
8886 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
8887
8888         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
8889         Improve unaligned TImode/TFmode base/offset split.
8890
8891 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
8892             Alan Hayward  <alan.hayward@arm.com>
8893             David Sherwood  <david.sherwood@arm.com>
8894
8895         * caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
8896         * combine.c (find_single_use_1): Likewise.
8897         (expand_field_assignment): Likewise.
8898         (move_deaths): Likewise.
8899         * lra-constraints.c (simplify_operand_subreg): Likewise.
8900         (curr_insn_transform): Likewise.
8901         * lra.c (collect_non_operand_hard_regs): Likewise.
8902         (add_regs_to_insn_regno_info): Likewise.
8903         * rtlanal.c (reg_referenced_p): Likewise.
8904         (covers_regno_no_parallel_p): Likewise.
8905
8906 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
8907
8908         * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
8909         Don't print any bits outside the precision of the value.
8910         * wide-int.cc (test_printing): Add some new tests.
8911
8912 2017-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8913
8914         * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
8915         supports -xbrace_comment option.
8916         * configure: Regenerate.
8917         * config.in: Regenerate.
8918         * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
8919         (ASM_CPU_SPEC): Use it.
8920
8921 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
8922
8923         * target.def (static_rtx_alignment): New hook.
8924         * targhooks.h (default_static_rtx_alignment): Declare.
8925         * targhooks.c (default_static_rtx_alignment): New function.
8926         * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
8927         * doc/tm.texi: Regenerate.
8928         * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
8929         instead of targetm.constant_alignment.  Remove call to
8930         set_mem_attributes.
8931         * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
8932         (cris_preferred_mininum_alignment): New function, split out from...
8933         (cris_constant_alignment): ...here.
8934         (cris_static_rtx_alignment): New function.
8935         * config/i386/i386.c (ix86_static_rtx_alignment): New function,
8936         split out from...
8937         (ix86_constant_alignment): ...here.
8938         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
8939         * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
8940         (mmix_static_rtx_alignment): New function.
8941         * config/spu/spu.c (spu_static_rtx_alignment): New function.
8942         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
8943
8944 2017-10-26  Tamar Christina  <tamar.christina@arm.com>
8945
8946         PR target/81800
8947         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
8948         Add flag_trapping_math and flag_fp_int_builtin_inexact.
8949
8950 2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
8951
8952         * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
8953         * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
8954         mark as a sign-extending load.
8955         (local_pic_load_u): Define.
8956
8957 2017-10-25  Eric Botcazou  <ebotcazou@adacore.com>
8958
8959         PR middle-end/82062
8960         * fold-const.c (operand_equal_for_comparison_p): Also return true
8961         if ARG0 is a simple variant of ARG1 with narrower precision.
8962         (fold_ternary_loc): Always pass unstripped operands to the predicate.
8963
8964 2017-10-25  Jan Hubicka  <hubicka@ucw.cz>
8965
8966         * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
8967         cost correctly.
8968         * i386.h (processor_costs): Add gather_static, gather_per_elt,
8969         scatter_static, scatter_per_elt.
8970         * x86-tune-costs.h: Add new cost entries.
8971
8972 2017-10-25  Richard Biener  <rguenther@suse.de>
8973
8974         * tree-ssa-sccvn.h (vn_eliminate): Declare.
8975         * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
8976         class pass_fre): Move to ...
8977         * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
8978         class pass_fre): ... here and adjust for statistics.
8979
8980 2017-10-25  Jakub Jelinek  <jakub@redhat.com>
8981
8982         PR libstdc++/81706
8983         * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
8984         for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
8985         (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
8986         * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
8987         declarations.
8988
8989 2017-10-25  Richard Biener  <rguenther@suse.de>
8990
8991         * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
8992         el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
8993         eliminate_push_avail, eliminate_insert): Move inside...
8994         (class eliminate_dom_walker): ... this class in preparation
8995         of move.
8996         (fini_eliminate): Remove by merging with ...
8997         (eliminate): ... this function.  Adjust for class changes.
8998         (pass_pre::execute): Remove fini_eliminate call.
8999         (pass_fre::execute): Likewise.
9000
9001 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
9002
9003         PR target/82460
9004         * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
9005         (VPERMI2, VPERMI2I): New mode iterators.
9006         (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
9007         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
9008         patterns.
9009         (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
9010         mode iterator.  Remove 3 old define_insn patterns.
9011         (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
9012         (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
9013         VPERMI2 mode iterator, remove the other two expanders.
9014         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
9015         to use VPERMI2 mode iterator, add another alternative for vpermi2*
9016         instructions, remove the other two patterns.
9017         (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
9018         mode iterator, remove the other two patterns.
9019         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
9020         (ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
9021         arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
9022         and adjust argument order accordingly.
9023         (ix86_expand_vec_perm): Adjust caller.
9024         (expand_vec_perm_1): Likewise.
9025         (expand_vec_perm_vpermi2_vpshub2): Rename to ...
9026         (expand_vec_perm_vpermt2_vpshub2): ... this.
9027         (ix86_expand_vec_perm_const_1): Adjust caller.
9028         (ix86_vectorize_vec_perm_const_ok): Adjust comments.
9029
9030         PR target/82370
9031         * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
9032         (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
9033         (vec_shl_<mode>): Remove unused expander.
9034         (avx512bw_<shift_insn><mode>3): New define_insn.
9035         (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
9036         (<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.
9037
9038 2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
9039
9040         PR c++/82466
9041         * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
9042         description.
9043
9044 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
9045
9046         PR rtl-optimization/82396
9047         * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
9048         (autopref_multipass_init): Simplify initialization.
9049         (autopref_rank_data): Simplify sort order.
9050         * gcc/sched-int.h (autopref_multipass_data_): Remove
9051         multi_mem_insn_p, min_offset and max_offset.
9052
9053 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
9054
9055         PR middle-end/60580
9056         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
9057         Check special value of flag_omit_frame_pointer.
9058         (aarch64_can_eliminate): Likewise.
9059         (aarch64_override_options_after_change_1): Simplify handling of
9060         -fomit-frame-pointer and -fomit-leaf-frame-pointer.
9061
9062 2017-10-24  Richard Biener  <rguenther@suse.de>
9063
9064         PR tree-optimization/82697
9065         * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
9066         zero for conditional load and unconditional store.
9067
9068 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
9069
9070         * doc/install.texi: Document bootstrap-cet.
9071
9072 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
9073
9074         PR target/82659
9075         * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
9076         ENDBR instruction at function entrance if function is only
9077         called directly.
9078
9079 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
9080
9081         PR target/82628
9082         * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
9083         patterns to better describe from which operation the CF is computed.
9084         (addcarry<mode>_0, subborrow<mode>_0): New patterns.
9085         * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
9086         one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
9087         is 0, use _0 suffixed expanders instead of emitting a comparison
9088         before it.
9089
9090 2017-10-06  Sergey Shalnov  <Sergey.Shalnov@intel.com>
9091
9092         * config/i386/i386.md(*movsf_internal, *movdf_internal):
9093         Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
9094
9095 2017-10-24  Eric Botcazou  <ebotcazou@adacore.com>
9096
9097         PR middle-end/82569
9098         * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
9099         * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
9100         * loop-iv.c (iv_get_reaching_def): Likewise.
9101         * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
9102         variable is promoted and the partition contains undefined values.
9103
9104 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9105
9106         * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
9107         reflect reality.
9108         (nios2_address_cost): Define.
9109         (nios2_legitimize_address): Recognize (exp + constant) directly.
9110         (TARGET_ADDRESS_COST): Define.
9111
9112 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9113
9114         * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
9115         (nios2_symbolic_memory_operand_p): Declare.
9116         (nios2_split_large_constant): Declare.
9117         (nios2_split_symbolic_memory_operand): Declare.
9118         * config/nios2/nios2.c: Adjust includes.
9119         (nios2_symbolic_constant_allowed): New.
9120         (nios2_symbolic_constant_p): New.
9121         (nios2_plus_symbolic_constant_p): New.
9122         (nios2_valid_addr_expr_p): Recognize addresses involving
9123         symbolic constants.
9124         (nios2_legitimate_address_p): Likewise, also LO_SUM.
9125         (nios2_symbolic_memory_operand_p): New.
9126         (nios2_large_constant_p): New.
9127         (nios2_split_large_constant): New.
9128         (nios2_split_plus_large_constant): New.
9129         (nios2_split_symbolic_memory_operand): New.
9130         (nios2_legitimize_address): Code refactoring.  Handle addresses
9131         involving symbolic constants.
9132         (nios2_emit_move_sequence): Likewise.
9133         (nios2_print_operand): Improve error output.
9134         (nios2_print_operand_address): Handle LO_SUM.
9135         (nios2_cdx_narrow_form_p): Likewise.
9136         * config/nios2/nios2.md (movqi_internal): Add splitter for memory
9137         operands involving symbolic constants.
9138         (movhi_internal, movsi_internal): Likewise.
9139         (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
9140         (extendhisi2, extendqi<mode>2): Likewise.
9141
9142 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9143
9144         * tree-pass.h (PROP_rtl_split_insns): Define.
9145         * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
9146
9147 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
9148
9149         * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
9150
9151 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
9152
9153         PR debug/82630
9154         * target.def (const_not_ok_for_debug_p): Default to
9155         default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
9156         * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
9157         * targhooks.c (default_const_not_ok_for_debug_p): New function.
9158         * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
9159         which targetm.const_not_ok_for_debug_p returned true.
9160         * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
9161         for UNSPECs.
9162         * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
9163         Likewise.
9164         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
9165         * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
9166         UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
9167         if !base_term_p.
9168         (ix86_const_not_ok_for_debug_p): New function.
9169         (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
9170         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
9171
9172 2017-10-23  David Malcolm  <dmalcolm@redhat.com>
9173
9174         PR bootstrap/82610
9175         * system.h: Conditionally include "unique-ptr.h" if
9176         INCLUDE_UNIQUE_PTR is defined.
9177         * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
9178         of defining INCLUDE_UNIQUE_PTR before including "system.h".
9179
9180 2017-10-23  Sebastian Perta  <sebastian.perta@renesas.com>
9181
9182         * config/rl78/rl78.md: New define_expand "subdi3".
9183
9184 2017-10-23  H.J. Lu  <hongjiu.lu@intel.com>
9185
9186         PR target/82673
9187         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
9188         DF_REF_INSN if DF_REF_INSN_INFO is false.
9189
9190 2017-10-23  Jan Hubicka  <hubicka@ucw.cz>
9191
9192         * i386.c (dimode_scalar_chain::compute_convert_gain): Use
9193         xmm_move instead of sse_move.
9194         (sse_store_index): New function.
9195         (ix86_register_move_cost): Be more sensible about mismatch stall;
9196         model AVX moves correctly; make difference between sse->integer and
9197         integer->sse.
9198         (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
9199         moves; make difference between SSE and AVX.
9200         * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
9201         and zmm_move. Increase size of sse load and store tables;
9202         add unaligned load and store tables; add ssemmx_to_integer.
9203         * x86-tune-costs.h: Update all entries according to real
9204         move latencies from Agner Fog's manual and chip documentation.
9205
9206 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
9207
9208         PR target/82628
9209         * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
9210         * config/i386/constraints.md (Wf): New constraint.
9211         * config/i386/i386.md (UNSPEC_SBB): New unspec.
9212         (cmp<dwi>_doubleword): Removed.
9213         (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
9214         (sub<mode>3_carry_ccgz): Use unspec instead of compare.
9215         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
9216         expand with cmp<dwi>_doubleword.  For LTU and GEU use
9217         sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
9218
9219         * common.opt (gcolumn-info): Enable by default.
9220         * doc/invoke.texi (gcolumn-info): Document new default.
9221
9222 2017-10-23  Richard Biener  <rguenther@suse.de>
9223
9224         PR tree-optimization/82672
9225         * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
9226         Fold the stmt if we propagated into it.
9227
9228 2017-10-23  Richard Biener  <rguenther@suse.de>
9229
9230         * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
9231         (bitmap_remove_expr_from_set): ... this.  All callers call this
9232         for non-constant values.
9233         (bitmap_set_subtract): Rename to...
9234         (bitmap_set_subtract_expressions): ... this.  Adjust and
9235         optimize.
9236         (bitmap_set_contains_value): Remove superfluous check.
9237         (bitmap_set_replace_value): Inline into single caller ...
9238         (bitmap_value_replace_in_set): ... here and simplify.
9239         (dependent_clean): Merge into ...
9240         (clean): ... this using an overload.  Adjust.
9241         (prune_clobbered_mems): Adjust.
9242         (compute_antic_aux): Likewise.
9243         (compute_partial_antic_aux): Likewise.
9244
9245 2017-10-23  Richard Biener  <rguenther@suse.de>
9246
9247         PR tree-optimization/82129
9248         Revert
9249         2017-08-01  Richard Biener  <rguenther@suse.de>
9250
9251         PR tree-optimization/81181
9252         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
9253         (compute_antic): ... end of iteration here.
9254
9255 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9256
9257         * target.def (starting_frame_offset): New hook.
9258         * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
9259         (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
9260         * doc/tm.texi.in: Regenerate.
9261         * hooks.h (hook_hwi_void_0): Declare.
9262         * hooks.c (hook_hwi_void_0): New function.
9263         * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
9264         STARTING_FRAME_OFFSET.
9265         * builtins.c (expand_builtin_setjmp_receiver): Likewise.
9266         * reload1.c (reload): Likewise.
9267         * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
9268         instead of STARTING_FRAME_OFFSET.
9269         * function.c (try_fit_stack_local): Likewise.
9270         (assign_stack_local_1): Likewise
9271         (instantiate_virtual_regs): Likewise.
9272         * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
9273         * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
9274         * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
9275         * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
9276         * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
9277         * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
9278         * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
9279         * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
9280         * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
9281         * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
9282         * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
9283         * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
9284         * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
9285         * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
9286         * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
9287         * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
9288         * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
9289         * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
9290         * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
9291         * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
9292         * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
9293         * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
9294         * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
9295         * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
9296         * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
9297         * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
9298         * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
9299         * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
9300         * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
9301         * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
9302         * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
9303         * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
9304         * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
9305         * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
9306         * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
9307         * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
9308         * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
9309         * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
9310         * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
9311         * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
9312         * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
9313         * config/avr/avr.c (avr_starting_frame_offset): Make static and
9314         return a HOST_WIDE_INT.
9315         (avr_builtin_setjmp_frame_value): Use it instead of
9316         STARTING_FRAME_OFFSET.
9317         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9318         * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
9319         * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
9320         New function.
9321         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9322         * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
9323         * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
9324         (TARGET_CONSTANT_ALIGNMENT): Redefine.
9325         * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
9326         * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
9327         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9328         * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
9329         * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
9330         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9331         * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
9332         * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
9333         New function.
9334         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9335         * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
9336         * config/mips/mips.c (mips_compute_frame_info): Refer to
9337         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
9338         (mips_starting_frame_offset): New function.
9339         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9340         * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
9341         * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
9342         * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
9343         and return a HOST_WIDE_INT.
9344         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9345         (mmix_initial_elimination_offset): Refer to
9346         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
9347         * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
9348         * config/pa/pa.c (pa_starting_frame_offset): New function.
9349         (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
9350         (pa_expand_prologue): Likewise.
9351         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9352         * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
9353         !FRAME_GROWS_DOWNWARD handling to...
9354         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9355         * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
9356         !FRAME_GROWS_DOWNWARD handling to...
9357         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9358         * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
9359         !FRAME_GROWS_DOWNWARD handling to...
9360         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9361         * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
9362         Redefine.
9363         (rs6000_starting_frame_offset): New function.
9364         * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
9365         !FRAME_GROWS_DOWNWARD handling to...
9366         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9367         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
9368         !FRAME_GROWS_DOWNWARD handling to...
9369         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9370         * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
9371         !FRAME_GROWS_DOWNWARD handling to...
9372         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
9373         * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
9374         (rs6000_starting_frame_offset): New function.
9375         * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
9376         * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
9377         * config/vax/vax.c (vax_starting_frame_offset): New function.
9378         (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
9379         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9380         * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
9381         * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
9382         (TARGET_STARTING_FRAME_OFFSET): Redefine.
9383         * system.h (STARTING_FRAME_OFFSET): Poison.
9384
9385 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9386
9387         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
9388         SCALAR_TYPE_MODE instead of TYPE_MODE.
9389
9390 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9391             Alan Hayward  <alan.hayward@arm.com>
9392             David Sherwood  <david.sherwood@arm.com>
9393
9394         * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
9395
9396 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9397             Alan Hayward  <alan.hayward@arm.com>
9398             David Sherwood  <david.sherwood@arm.com>
9399
9400         * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
9401
9402 2017-10-23  Richard Biener  <rguenther@suse.de>
9403
9404         PR tree-optimization/82129
9405         * tree-ssa-pre.c (bitmap_set_and): Remove.
9406         (compute_antic_aux): Compute ANTIC_OUT intersection in a way
9407         canonicalizing expressions in the set to those with lowest
9408         ID rather than taking that from the first edge.
9409
9410 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
9411
9412         * combine.c (rtx_equal_for_field_assignment_p): Use
9413         byte_lowpart_offset.
9414
9415 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9416             Alan Hayward  <alan.hayward@arm.com>
9417             David Sherwood  <david.sherwood@arm.com>
9418
9419         * internal-fn.c (expand_direct_optab_fn): Don't assign directly
9420         to a SUBREG_PROMOTED_VAR.
9421
9422 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9423             Alan Hayward  <alan.hayward@arm.com>
9424             David Sherwood  <david.sherwood@arm.com>
9425
9426         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
9427         (expand_debug_source_expr): Likewise.
9428         * combine.c (combine_simplify_rtx): Likewise.
9429         * cse.c (fold_rtx): Likewise.
9430         * optabs.c (expand_float): Likewise.
9431         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9432         (simplify_binary_operation_1): Likewise.
9433
9434 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9435             Alan Hayward  <alan.hayward@arm.com>
9436             David Sherwood  <david.sherwood@arm.com>
9437
9438         * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
9439         (record_promoted_value): Likewise.
9440         * expr.c (expand_expr_real_2): Likewise.
9441         * ree.c (update_reg_equal_equiv_notes): Likewise.
9442         (combine_set_extension): Likewise.
9443         * rtlanal.c (low_bitmask_len): Likewise.
9444         * simplify-rtx.c (neg_const_int): Likewise.
9445         (simplify_binary_operation_1): Likewise.
9446
9447 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9448             Alan Hayward  <alan.hayward@arm.com>
9449             David Sherwood  <david.sherwood@arm.com>
9450
9451         * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
9452         * regcprop.c (maybe_mode_change): Likewise.
9453         * reload1.c (alter_reg): Likewise.
9454
9455 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9456
9457         * inchash.h (inchash::hash::add_wide_int): New function.
9458         * lto-streamer-out.c (hash_tree): Use it.
9459
9460 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
9461
9462         * inchash.h (inchash::hash::add_wide_int): Rename to...
9463         (inchash::hash::add_hwi): ...this.
9464         * ipa-devirt.c (hash_odr_vtable): Update accordingly.
9465         (polymorphic_call_target_hasher::hash): Likewise.
9466         * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
9467         (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
9468         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
9469         * lto-streamer-out.c (hash_tree): Likewise.
9470         * optc-save-gen.awk: Likewise.
9471         * tree.c (add_expr): Likewise.
9472
9473 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
9474
9475         PR target/52451
9476         * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
9477         for ordered inequality comparisons even with TARGET_IEEE_FP.
9478
9479 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
9480
9481         PR target/82628
9482         * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
9483         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
9484         Expand with cmp<dwi>_doubleword.
9485
9486 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
9487
9488         * extend.texi: Add x86 specific to 'nocf_check' attribute.
9489         List CET intrinsics.
9490         * invoke.texi: Add -mcet, -mibt, -mshstk options.  Add x86
9491         specific to -fcf-protection option.
9492
9493 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
9494
9495         * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
9496         (OPTION_MASK_ISA_SHSTK_SET): Likewise.
9497         (OPTION_MASK_ISA_IBT_UNSET): Likewise.
9498         (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
9499         (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
9500         * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
9501         (extra_objs): Add cet.o for Linux/x86 targets.
9502         (tmake_file): Add i386/t-cet for Linux/x86 targets.
9503         * config/i386/cet.c: New file.
9504         * config/i386/cetintrin.h: Likewise.
9505         * config/i386/t-cet: Likewise.
9506         * config/i386/cpuid.h (bit_SHSTK): New.
9507         (bit_IBT): Likewise.
9508         * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
9509         pass IBT and SHSTK bits.
9510         * config/i386/i386-builtin-types.def
9511         (VOID_FTYPE_UNSIGNED_PVOID): New.
9512         (VOID_FTYPE_UINT64_PVOID): Likewise.
9513         * config/i386/i386-builtin.def: Add CET intrinsics.
9514         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9515         OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
9516         * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
9517         * config/i386/i386-protos.h (make_pass_insert_endbranch): New
9518         prototype.
9519         * config/i386/i386.c (rest_of_insert_endbranch): New.
9520         (pass_data_insert_endbranch): Likewise.
9521         (pass_insert_endbranch): Likewise.
9522         (make_pass_insert_endbranch): Likewise.
9523         (ix86_notrack_prefixed_insn_p): Likewise.
9524         (ix86_target_string): Add -mibt, -mshstk flags.
9525         (ix86_option_override_internal): Add flag_cf_protection
9526         processing.
9527         (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
9528         (ix86_print_operand): Add 'notrack' prefix output.
9529         (ix86_init_mmx_sse_builtins): Add CET intrinsics.
9530         (ix86_expand_builtin): Expand CET intrinsics.
9531         (x86_output_mi_thunk): Add 'endbranch' instruction.
9532         * config/i386/i386.h (TARGET_IBT): New.
9533         (TARGET_IBT_P): Likewise.
9534         (TARGET_SHSTK): Likewise.
9535         (TARGET_SHSTK_P): Likewise.
9536         * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
9537         UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
9538         UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
9539         (builtin_setjmp_setup): New pattern.
9540         (builtin_longjmp): Likewise.
9541         (rdssp<mode>): Likewise.
9542         (incssp<mode>): Likewise.
9543         (saveprevssp): Likewise.
9544         (rstorssp): Likewise.
9545         (wrss<mode>): Likewise.
9546         (wruss<mode>): Likewise.
9547         (setssbsy): Likewise.
9548         (clrssbsy): Likewise.
9549         (nop_endbr): Likewise.
9550         * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
9551         options.
9552         * config/i386/immintrin.h: Include <cetintrin.h>.
9553         * config/i386/linux-common.h
9554         (file_end_indicate_exec_stack_and_cet): New prototype.
9555         (TARGET_ASM_FILE_END): New.
9556
9557 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
9558
9559         * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
9560         latencies instead of having separate table; make difference between
9561         integer and float costs.
9562         * i386.h (processor_costs): Remove scalar_stmt_cost,
9563         scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
9564         scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
9565         vec_store_cost.
9566         * x86-tune-costs.h: Remove entries which has been removed in
9567         procesor_costs from all tables; make cond_taken_branch_cost
9568         and cond_not_taken_branch_cost COST_N_INSNS based.
9569
9570 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
9571
9572         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
9573
9574 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
9575
9576         * config/i386/i386.md (isa): Remove fma_avx512f.
9577         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
9578         <avx512>_fmadd_<mode>_mask3<round_name>,
9579         <avx512>_fmsub_<mode>_mask<round_name>,
9580         <avx512>_fmsub_<mode>_mask3<round_name>,
9581         <avx512>_fnmadd_<mode>_mask<round_name>,
9582         <avx512>_fnmadd_<mode>_mask3<round_name>,
9583         <avx512>_fnmsub_<mode>_mask<round_name>,
9584         <avx512>_fnmsub_<mode>_mask3<round_name>,
9585         <avx512>_fmaddsub_<mode>_mask<round_name>,
9586         <avx512>_fmaddsub_<mode>_mask3<round_name>,
9587         <avx512>_fmsubadd_<mode>_mask<round_name>,
9588         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
9589         (*vec_widen_umult_even_v16si<mask_name>,
9590         *vec_widen_smult_even_v16si<mask_name>): Likewise.
9591         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
9592
9593 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
9594
9595         * extend.texi: Add 'nocf_check' documentation.
9596         * gimple.texi: Add second parameter to
9597         gimple_build_call_from_tree.
9598         * invoke.texi: Add -fcf-protection documentation.
9599         * rtl.texi: Add REG_CALL_NOTRACK documenation.
9600
9601 2017-10-20  Richard Biener  <rguenther@suse.de>
9602
9603         PR tree-optimization/82473
9604         * tree-vect-loop.c (vectorizable_reduction): Properly get at
9605         the largest input type.
9606
9607 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
9608
9609         * c-attribs.c (handle_nocf_check_attribute): New function.
9610         (c_common_attribute_table): Add 'nocf_check' handling.
9611         * gimple-parser.c: Add second argument NULL to
9612         gimple_build_call_from_tree.
9613         * attrib.c (comp_type_attributes): Check nocf_check attribute.
9614         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
9615         call insn.
9616         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
9617         * common.opt: Add fcf-protection flag.
9618         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
9619         * flag-types.h: Add enum cf_protection_level.
9620         * gimple.c (gimple_build_call_from_tree): Add second parameter.
9621         Add 'nocf_check' attribute propagation to gimple call.
9622         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
9623         (gimple_build_call_from_tree): Update prototype.
9624         (gimple_call_nocf_check_p): New function.
9625         (gimple_call_set_nocf_check): Likewise.
9626         * gimplify.c: Add second argument to gimple_build_call_from_tree.
9627         * ipa-icf.c: Add nocf_check attribute in statement hash.
9628         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
9629         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
9630         * toplev.c (process_options): Add flag_cf_protection handling.
9631
9632 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
9633
9634         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
9635
9636 2017-10-20  Richard Biener  <rguenther@suse.de>
9637
9638         PR tree-optimization/82603
9639         * tree-if-conv.c (predicate_mem_writes): Make sure to only
9640         remove false predicated stores.
9641
9642 2017-10-20  Richard Biener  <rguenther@suse.de>
9643
9644         * graphite-isl-ast-to-gimple.c
9645         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
9646         Remove return value and simplify, dump copied stmt after lhs
9647         adjustment.
9648         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
9649         Reduce dump verbosity.
9650         (gsi_insert_earliest): Likewise.
9651         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
9652         * graphite.c (print_global_statistics): Adjust dumping.
9653         (print_graphite_scop_statistics): Likewise.
9654         (print_graphite_statistics): Do not dump loops here.
9655         (graphite_transform_loops): But here.
9656
9657 2017-10-20  Nicolas Roche  <roche@adacore.com>
9658
9659         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
9660         * configure: Regenerate.
9661
9662 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
9663
9664         PR target/82158
9665         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
9666         functions when optimizing replace GIMPLE_RETURN stmts with
9667         calls to __builtin_unreachable ().
9668
9669         PR sanitizer/82595
9670         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
9671         for -fsanitize=thread link of executables.
9672         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
9673         link of executables.
9674
9675         PR target/82370
9676         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
9677         New mode iterators.
9678         (<shift_insn><mode>3<mask_name>): Change the last of the 3
9679         define_insns for logical vector shifts to use VI248_AVX512BW
9680         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
9681         condition, useless isa and prefix attributes.  Change the first
9682         2 of these define_insns to ...
9683         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
9684         define_insn for avx512vl.
9685         (<shift_insn><mode>3): ... and this, new define_insn without
9686         masking for non-avx512vl.
9687
9688         PR target/82370
9689         * config/i386/sse.md (*andnot<mode>3,
9690         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
9691         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
9692         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
9693         not applied use empty suffix even for TARGET_AVX512VL.
9694         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
9695         is applied, supply evex,evex or evex,evex,evex instead of just
9696         evex.
9697
9698 2017-10-20  Julia Koval  <julia.koval@intel.com>
9699
9700         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
9701         (OPTION_MASK_ISA_GFNI_UNSET): New.
9702         (ix86_handle_option): Handle OPT_mgfni.
9703         * config/i386/cpuid.h (bit_GFNI): New.
9704         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
9705         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
9706         * config/i386/i386.c (ix86_target_string): Add -mgfni.
9707         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
9708         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
9709         * config/i386/i386.opt: Add mgfni.
9710
9711 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
9712
9713         * config/msp430/msp430.c (msp430_option_override): Disable
9714         -fdelete-null-pointer-checks.
9715         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
9716
9717 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
9718
9719         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
9720         of x87 and SSE instructions.
9721
9722 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
9723
9724         * asan.c (create_cond_insert_point): Do not update edge count.
9725         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
9726         (afdo_propagate_circuit): Likewise.
9727         (afdo_calculate_branch_prob): Likewise.
9728         (afdo_annotate_cfg): Likewise.
9729         * basic-block.h (struct edge_def): Remove count.
9730         (edge_def::count): New accessor.
9731         * bb-reorder.c (rotate_loop): Update.
9732         (find_traces_1_round): Update.
9733         (connect_traces): Update.
9734         (sanitize_hot_paths): Update.
9735         * cfg.c (unchecked_make_edge): Update.
9736         (make_single_succ_edge): Update.
9737         (check_bb_profile): Update.
9738         (dump_edge_info): Update.
9739         (update_bb_profile_for_threading): Update.
9740         (scale_bbs_frequencies_int): Update.
9741         (scale_bbs_frequencies_gcov_type): Update.
9742         (scale_bbs_frequencies_profile_count): Update.
9743         (scale_bbs_frequencies): Update.
9744         * cfganal.c (connect_infinite_loops_to_exit): Update.
9745         * cfgbuild.c (compute_outgoing_frequencies): Update.
9746         (find_many_sub_basic_blocks): Update.
9747         * cfgcleanup.c (try_forward_edges): Update.
9748         (try_crossjump_to_edge): Update
9749         * cfgexpand.c (expand_gimple_cond): Update
9750         (expand_gimple_tailcall): Update
9751         (construct_exit_block): Update
9752         * cfghooks.c (verify_flow_info): Update
9753         (redirect_edge_succ_nodup): Update
9754         (split_edge): Update
9755         (make_forwarder_block): Update
9756         (duplicate_block): Update
9757         (account_profile_record): Update
9758         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
9759         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
9760         * cfgloopmanip.c (scale_loop_profile): Update.
9761         (loopify): Update.
9762         (lv_adjust_loop_entry_edge): Update.
9763         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
9764         (force_nonfallthru_and_redirect): Update.
9765         (purge_dead_edges): Update.
9766         (rtl_flow_call_edges_add): Update.
9767         * cgraphunit.c (init_lowered_empty_function): Update.
9768         (cgraph_node::expand_thunk): Update.
9769         * gimple-pretty-print.c (dump_probability): Update.
9770         (dump_edge_probability): Update.
9771         * gimple-ssa-isolate-paths.c (isolate_path): Update.
9772         * haifa-sched.c (sched_create_recovery_edges): Update.
9773         * hsa-gen.c (convert_switch_statements): Update.
9774         * ifcvt.c (dead_or_predicable): Update.
9775         * ipa-inline-transform.c (inline_transform): Update.
9776         * ipa-split.c (split_function): Update.
9777         * ipa-utils.c (ipa_merge_profiles): Update.
9778         * loop-doloop.c (add_test): Update.
9779         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
9780         * lto-streamer-in.c (input_cfg): Update.
9781         (input_function): Update.
9782         * lto-streamer-out.c (output_cfg): Update.
9783         * modulo-sched.c (sms_schedule): Update.
9784         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
9785         * predict.c (maybe_hot_edge_p): Update.
9786         (unlikely_executed_edge_p): Update.
9787         (probably_never_executed_edge_p): Update.
9788         (dump_prediction): Update.
9789         (drop_profile): Update.
9790         (propagate_unlikely_bbs_forward): Update.
9791         (determine_unlikely_bbs): Update.
9792         (force_edge_cold): Update.
9793         * profile.c (compute_branch_probabilities): Update.
9794         * reg-stack.c (better_edge): Update.
9795         * shrink-wrap.c (handle_simple_exit): Update.
9796         * tracer.c (better_p): Update.
9797         * trans-mem.c (expand_transaction): Update.
9798         (split_bb_make_tm_edge): Update.
9799         * tree-call-cdce.c: Update.
9800         * tree-cfg.c (gimple_find_sub_bbs): Update.
9801         (gimple_split_edge): Update.
9802         (gimple_duplicate_sese_region): Update.
9803         (gimple_duplicate_sese_tail): Update.
9804         (gimple_flow_call_edges_add): Update.
9805         (insert_cond_bb): Update.
9806         (execute_fixup_cfg): Update.
9807         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
9808         * tree-complex.c (expand_complex_div_wide): Update.
9809         * tree-eh.c (lower_resx): Update.
9810         (unsplit_eh): Update.
9811         (cleanup_empty_eh_move_lp): Update.
9812         * tree-inline.c (copy_edges_for_bb): Update.
9813         (freqs_to_counts): Update.
9814         (copy_cfg_body): Update.
9815         * tree-ssa-dce.c (remove_dead_stmt): Update.
9816         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
9817         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
9818         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
9819         (unloop_loops): Update.
9820         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
9821         * tree-ssa-loop-split.c (connect_loops): Update.
9822         (split_loop): Update.
9823         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
9824         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
9825         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
9826         * tree-ssa-reassoc.c (branch_fixup): Update.
9827         * tree-ssa-tail-merge.c (replace_block_by): Update.
9828         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
9829         (compute_path_counts): Update.
9830         (update_profile): Update.
9831         (recompute_probabilities): Update.
9832         (update_joiner_offpath_counts): Update.
9833         (estimated_freqs_path): Update.
9834         (freqs_to_counts_path): Update.
9835         (clear_counts_path): Update.
9836         (ssa_fix_duplicate_block_edges): Update.
9837         (duplicate_thread_path): Update.
9838         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
9839         (case_bit_test_cmp): Update.
9840         (collect_switch_conv_info): Update.
9841         (gen_inbound_check): Update.
9842         (do_jump_if_equal): Update.
9843         (emit_cmp_and_jump_insns): Update.
9844         * tree-tailcall.c (decrease_profile): Update.
9845         (eliminate_tail_call): Update.
9846         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
9847         (vect_do_peeling): Update.
9848         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
9849         * ubsan.c (ubsan_expand_null_ifn): Update.
9850         (ubsan_expand_ptr_ifn): Update.
9851         * value-prof.c (gimple_divmod_fixed_value): Update.
9852         (gimple_mod_pow2): Update.
9853         (gimple_mod_subtract): Update.
9854         (gimple_ic): Update.
9855         (gimple_stringop_fixed_value): Update.
9856
9857 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
9858
9859         PR target/82618
9860         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
9861
9862 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
9863
9864         PR rtl-optimization/82395
9865         * ira-color.c (allocno_priority_compare_func): Fix comparison step
9866         based on non_spilled_static_chain_regno_p.
9867
9868 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
9869
9870         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
9871         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
9872         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
9873
9874 2017-10-19  Martin Sebor  <msebor@redhat.com>
9875
9876         PR tree-optimization/82596
9877         * tree.c (array_at_struct_end_p): Handle STRING_CST.
9878
9879 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
9880
9881         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
9882         (get_mem_refs_of_builtin_call): Likewise.
9883         * builtins.c (expand_builtin_apply): Adjust call to
9884         allocate_dynamic_stack_space.
9885         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
9886         the third argument to allocate_dynamic_stack_space, otherwise -1.
9887         (expand_builtin): Deal with all alloca variants.
9888         (is_inexpensive_builtin): Likewise.
9889         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
9890         * calls.c (special_function_p): Deal with all alloca variants.
9891         (initialize_argument_information): Adjust call to
9892         allocate_dynamic_stack_space.
9893         (expand_call): Likewise.
9894         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
9895         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
9896         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
9897         use it for the stack usage computation.
9898         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
9899         * function.c (gimplify_parameters): Call build_alloca_call_expr.
9900         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
9901         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
9902         (in_loop_p): Remove first argument and useless check.
9903         (pass_walloca::execute): Remove useless test and adjust call to above.
9904         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
9905         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
9906         (gimplify_call_expr): Deal with all alloca variants.
9907         * hsa-gen.c (gen_hsa_alloca): Likewise.
9908         (gen_hsa_insns_for_call): Likewise.
9909         * ipa-pure-const.c (special_builtin_state): Likewise.
9910         * tree-chkp.c (chkp_build_returned_bound): Likewise.
9911         * tree-object-size.c (alloc_object_size): Likewise.
9912         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
9913         (call_may_clobber_ref_p_1): Likewise.
9914         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
9915         (ccp_fold_stmt): Likewise.
9916         (optimize_stack_restore): Likewise.
9917         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9918         (mark_all_reaching_defs_necessary_1): Likewise.
9919         (propagate_necessity): Likewise.
9920         (eliminate_unnecessary_stmts): Likewise.
9921         * tree.c (build_common_builtin_nodes): Build
9922         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
9923         (build_alloca_call_expr): New function.
9924         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
9925         (CASE_BUILT_IN_ALLOCA): Likewise.
9926         (build_alloca_call_expr): Declare.
9927         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
9928
9929 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
9930
9931         PR debug/82509
9932         * dwarf2out.c (new_die_raw): New static inline function.
9933         (new_die): Use it to create the DIE.
9934         (add_AT_external_die_ref): Likewise.
9935         (clone_die): Likewise.
9936         (clone_as_declaration): Likewise.
9937         (dwarf2out_vms_debug_main_pointer): Likewise.
9938         (base_type_die): Likewise.  Remove early return for corner cases.
9939         Do not call add_pubtype on the DIE here.
9940         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
9941         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
9942         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
9943         native order exists for base types, attach the DIE manually and call
9944         add_pubtype on it.  Do not equate a reverse order DIE to the type.
9945
9946 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
9947
9948         * config/arm/arm.c (align_ok_ldrd_strd): New function.
9949         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
9950         the mem into it.
9951         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
9952
9953 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
9954
9955         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
9956         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
9957         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
9958         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
9959         * opts.c (sanitizer_opts): Add builtin.
9960         * ubsan.c (instrument_builtin): New function.
9961         (pass_ubsan::execute): Call it.
9962         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
9963         * doc/invoke.texi: Document -fsanitize=builtin.
9964
9965         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
9966         builtins, store max (log2 (align), 0) into uchar field instead of
9967         align into uptr field.
9968         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
9969         store uchar 0 field instead of uptr 0 field.
9970         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
9971         instead of passing one address of struct with 2 locations pass
9972         two addresses of structs with 1 location each.
9973         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
9974         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
9975         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
9976         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
9977         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
9978         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
9979         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
9980         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
9981
9982 2017-10-19  Martin Liska  <mliska@suse.cz>
9983
9984         PR driver/81829
9985         * file-find.c (remove_prefix): Remove.
9986         * file-find.h (remove_prefix): Likewise.
9987         * gcc-ar.c: Remove smartness of lookup.
9988
9989 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
9990
9991         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
9992         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
9993         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
9994
9995 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
9996
9997         PR target/82580
9998         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
9999         (setcc + and to xor + setcc): New peephole2.
10000
10001 2017-10-19  Tom de Vries  <tom@codesourcery.com>
10002
10003         * doc/sourcebuild.texi (Test Directives, Variants of
10004         dg-require-support): Add dg-require-stack-size.
10005
10006 2017-10-19  Martin Liska  <mliska@suse.cz>
10007
10008         PR sanitizer/82517
10009         * gimplify.c (gimplify_decl_expr): Do not instrument variables
10010         that have a large alignment.
10011         (gimplify_target_expr): Likewise.
10012
10013 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
10014
10015         PR rtl-optimization/82602
10016         * ira.c (rtx_moveable_p): Return false for volatile asm.
10017
10018 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
10019
10020         PR target/82580
10021         * config/i386/i386-modes.def (CCGZ): New CC mode.
10022         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
10023         * config/i386/predicates.md (ix86_comparison_operator):
10024         Handle CCGZmode.
10025         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
10026         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
10027         with double-word subtraction.
10028         (put_condition_code): Handle CCGZmode.
10029
10030 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
10031
10032         * wide-int.cc (debug (const wide_int &)): New.
10033         (debug (const wide_int *)): New.
10034         (debug (const widest_int &)): New.
10035         (debug (const widest_int *)): New.
10036
10037 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
10038
10039         PR middle-end/82556
10040         * lra-constraints.c (curr_insn_transform): Use non-input operand
10041         instead of output one for matched reload.
10042
10043 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
10044
10045         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
10046         (tree-ssa-loop-ivopts.h): New header file.
10047         (struct builtin_info): New fields.
10048         (classify_builtin_1): Compute and record base and offset parts for
10049         memset builtin partition by calling strip_offset.
10050         (offset_cmp, fuse_memset_builtins): New functions.
10051         (finalize_partitions): Fuse adjacent memset partitions by calling
10052         above function.
10053         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
10054         Expose the interface.
10055         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
10056
10057 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
10058
10059         PR tree-optimization/82574
10060         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
10061         that data reference must be executed exactly once per iteration
10062         against the outermost loop in nest.
10063         (classify_partition): Update call to above function.
10064
10065 2017-10-18  Richard Biener  <rguenther@suse.de>
10066
10067         PR tree-optimization/82591
10068         * graphite.c (graphite_transform_loops): Move code gen message
10069         printing ...
10070         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
10071         Here.  Handle scop_to_isl_ast failing.
10072         (scop_to_isl_ast): Limit the number of ISL operations.
10073
10074 2017-10-18  Richard Biener  <rguenther@suse.de>
10075
10076         * graphite-isl-ast-to-gimple.c
10077         (translate_isl_ast_to_gimple::set_rename): Simplify.
10078         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
10079         (graphite_copy_stmts_from_block): ... here.
10080         (copy_bb_and_scalar_dependences): Simplify.
10081         (add_parameters_to_ivs_params): Canonicalize.
10082         (generate_entry_out_of_ssa_copies): Simplify.
10083         * graphite-sese-to-poly.c (extract_affine_name): Simplify
10084         by passing in ISL dimension.
10085         (parameter_index_in_region_1): Rename to ...
10086         (parameter_index_in_region): ... this.
10087         (extract_affine): Adjust assert, pass down parameter index.
10088         (add_param_constraints): Use range-info when available.
10089         (build_scop_context): Adjust.
10090         * sese.c (new_sese_info): Adjust.
10091         (free_sese_info): Likewise.
10092         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
10093         Remove unused typedefs.
10094         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
10095
10096 2017-10-18  Martin Liska  <mliska@suse.cz>
10097
10098         * combine.c (simplify_compare_const): Add gcc_fallthrough.
10099
10100 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
10101
10102         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
10103         (s390_sched_init): Do not reset s390_sched_state if we entered the
10104         current basic block via a fallthru edge and all others are unlikely.
10105
10106 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
10107
10108         * config/s390/s390.c (NUM_SIDES): New variable.
10109         (LONGRUNNING_THRESHOLD): New variable.
10110         (LATENCY_FACTOR): New variable.
10111         (s390_sched_score): Decrease score for long-running instructions on
10112         wrong side.
10113         (s390_sched_variable_issue): Perform bookkeeping for long-running
10114         instructions.
10115
10116 2017-10-18  Richard Biener  <rguenther@suse.de>
10117
10118         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
10119         Simplify with removal of the parameter rename map.
10120         (set_rename): Likewise.
10121         (should_copy_to_new_region): Likewise.
10122         (graphite_copy_stmts_from_block): Likewise.
10123         (copy_bb_and_scalar_dependences): Remove initialization of
10124         unused copied_bb_map.
10125         (copy_def): Remove.
10126         (copy_internal_parameters): Likewise.
10127         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
10128         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
10129         Use INTEGRAL_TYPE_P.
10130         (parameter_index_in_region_1): Rename to ...
10131         (assign_parameter_index_in_region): ... this.  Assert we have
10132         a parameter we handle.
10133         (scan_tree_for_params): Adjust.
10134         * sese.h (parameter_rename_map_t): Remove.
10135         (struct sese_info_t): Remove unused parameter_rename_map and
10136         copied_bb_map members.
10137         * sese.c (new_sese_info): Adjust.
10138         (free_sese_info): Likewise.
10139
10140 2017-10-18  Martin Liska  <mliska@suse.cz>
10141
10142         PR sanitizer/82545
10143         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
10144         on an abnormal edge.
10145
10146 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10147
10148         * doc/invoke.texi (ffunction-sections and fdata-sections):
10149         Update.
10150
10151 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
10152
10153         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
10154         the use statement can throw internally.
10155
10156 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
10157
10158         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
10159         any RTX present on the RHS of a SET.
10160         * compare-elim.c (try_eliminate_compare): Restore comment.
10161
10162 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
10163
10164         * langhooks.h (struct lang_hooks): Document that tree_size langhook
10165         may be also called on tcc_type nodes.
10166         * langhooks.c (lhd_tree_size): Likewise.
10167
10168 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
10169
10170         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
10171         format_warning_at_substring.
10172         (maybe_warn): Convert source_range * param to a location_t.  Pass
10173         UNKNOWN_LOCATION rather than NULL to fmtwarn.
10174         (format_directive): Remove code to extract source_ranges and
10175         source_range * in favor of just a location_t.
10176         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
10177         fmtwarn.
10178         * substring-locations.c (format_warning_va): Convert
10179         source_range * param to a location_t.
10180         (format_warning_at_substring): Likewise.
10181         * substring-locations.h (format_warning_va): Likewise.
10182         (format_warning_at_substring): Likewise.
10183
10184 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
10185
10186         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
10187         vec_scatter_store
10188         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
10189         and scatter/gather ops.
10190
10191         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
10192         vec_gather_load and vec_scatter_store.
10193         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
10194         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
10195         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
10196         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
10197         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
10198         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
10199
10200 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
10201
10202         * reg-stack.c (compare_for_stack_reg): Add bool argument.
10203         Detect FTST instruction and handle its register pops.  Only pop
10204         second operand if can_pop_second_op is true.
10205         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
10206         set can_pop_second_op to false in the compare_for_stack_reg call.
10207
10208         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
10209         output_fp_compare for stack register operands.
10210         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
10211         instructions here.  Do not emit stack register pops here.  Assert
10212         that FCOMPP pops next to top stack register.  Rewrite function.
10213
10214 2017-10-17  Nathan Sidwell  <nathan@acm.org>
10215
10216         PR middle-end/82577
10217         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
10218         use DECL_ASSEMBLER_NAME_RAW.
10219
10220         PR middle-end/82546
10221         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
10222         TYPE nodes.
10223
10224 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
10225             Wilco Dijkstra <wilco.dijkstra@arm.com>
10226
10227         * builtins.c (expand_builtin_update_setjmp_buf): Add a
10228         converstion to Pmode from the buf_addr.
10229
10230 2017-10-17  Richard Biener  <rguenther@suse.de>
10231
10232         * graphite-dependences.c (scop_get_reads_and_writes): Change
10233         output parameters to references.
10234
10235 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
10236
10237         PR 71026/tree-optimization
10238         * fold-const.c (distribute_real_division): Removed.
10239         (fold_binary_loc): Remove calls to distribute_real_divison.
10240
10241 2017-10-17  Richard Biener  <rguenther@suse.de>
10242
10243         * graphite-scop-detection.c
10244         (scop_detection::stmt_has_simple_data_refs_p): Always use
10245         the full nest as region.
10246         (try_generate_gimple_bb): Likewise.
10247         * sese.c (scalar_evolution_in_region): Simplify now that
10248         SCEV can handle instantiation in regions.
10249         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
10250         in the non-loop part of a function if requested.
10251
10252 2017-10-17  Richard Biener  <rguenther@suse.de>
10253
10254         PR tree-optimization/82563
10255         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
10256         New function.
10257         (graphite_regenerate_ast_isl): Call it.
10258         * graphite-scop-detection.c (build_scops): Remove entry edge split.
10259
10260 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
10261
10262         PR tree-optimization/82549
10263         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
10264         Formatting fixes.  Instead of calling make_bit_field_ref with negative
10265         bitpos return 0.
10266
10267 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
10268
10269         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
10270         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
10271         _mm_maskz_reduce_ss): New.
10272         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
10273         __builtin_ia32_reducess_mask): Ditto..
10274         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
10275         * config/i386/sse.md (reduces<mode>): Renamed to ...
10276         (reduces<mode><mask_scalar_name>): ... this.
10277         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
10278         Changed to ...
10279         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
10280         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
10281
10282 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
10283
10284         * Makefile.in (OBJS): Add unique-ptr-tests.o.
10285         * selftest-run-tests.c (selftest::run_tests): Call
10286         selftest::unique_ptr_tests_cc_tests.
10287         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
10288         * unique-ptr-tests.cc: New file.
10289
10290 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
10291
10292         PR sanitizer/82353
10293         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
10294         locations.
10295         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
10296         (make_hard_regno_born, make_hard_regno_dead): Update
10297         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
10298
10299 2017-10-16  Jeff Law  <law@redhat.com>
10300
10301         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
10302
10303 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
10304
10305         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
10306
10307 2017-10-16  Olivier Hainque  <hainque@adacore.com>
10308
10309         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
10310         with_cpu if we were configured for an e500v2 target cpu name.
10311
10312 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10313
10314         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
10315         * doc/invoke.texi: Document +nodsp as a valid extension for
10316         -mcpu=cortex-m33.
10317
10318 2017-10-16  Martin Liska  <mliska@suse.cz>
10319
10320         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
10321         (test_set_range): Likewise.
10322         (test_range_functions): Rename to ...
10323         (test_bit_in_range): ... this.
10324         (sbitmap_c_tests): Add new test.
10325
10326 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10327
10328         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
10329         New.
10330         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
10331         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
10332
10333 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10334
10335         * config/aarch64/aarch64-builtins.c
10336         (aarch64_types_quadopu_lane_qualifiers): New.
10337         (TYPES_QUADOPU_LANE): New.
10338         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
10339         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
10340         (aarch64_<sur>dot_laneq<vsi2qi>): New.
10341         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
10342         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
10343         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
10344         (Vdottype, DOTPROD): New.
10345         (sur): Add SDOT and UDOT.
10346
10347 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10348
10349         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
10350         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
10351         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
10352         Add TARGET_DOTPROD.
10353         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
10354         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
10355         Enable TARGET_DOTPROD.
10356         (cortex-a75.cortex-a55): Likewise.
10357         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
10358
10359 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10360
10361         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
10362         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
10363         New.
10364         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
10365         New.
10366         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
10367         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
10368         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
10369         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
10370         * config/arm/types.md (neon_dot, neon_dot_q): New.
10371         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
10372
10373 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
10374
10375         * config/arm/arm.h (TARGET_DOTPROD): New.
10376         * config/arm/arm.c (arm_arch_dotprod): New.
10377         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
10378         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
10379         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
10380         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
10381         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
10382         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
10383         * doc/invoke.texi (armv8.2-a): Document dotprod
10384
10385 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
10386
10387         * i386.c (ix86_vec_cost): New function.
10388         (ix86_rtx_costs): Handle vector operations better.
10389         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
10390         * x86-tune-costs.h: Add new costs to all tables.
10391
10392 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
10393
10394         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
10395         operations.
10396         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
10397         divsd, sqrtss and sqrtsd
10398         * x86-tune-costs.h: Add new entries to all costs.
10399         (znver1_cost): Fix to match real instruction latencies.
10400
10401 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10402             Michael Collison <michael.collison@arm.com>
10403
10404         * compare-elim.c: Include emit-rtl.h.
10405         (can_merge_compare_into_arith): New function.
10406         (try_validate_parallel): Likewise.
10407         (try_merge_compare): Likewise.
10408         (try_eliminate_compare): Call the above when no previous clobber
10409         is available.
10410         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
10411         dataflow problems.
10412
10413 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
10414
10415         PR middle-end/62263
10416         PR middle-end/82498
10417         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
10418         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
10419
10420         PR middle-end/62263
10421         PR middle-end/82498
10422         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
10423         to be any operand_equal_p operands.  For & (B - 1) require
10424         B to be power of 2.  Recognize
10425         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
10426
10427 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
10428
10429         PR bootstrap/82553
10430         * optabs.c (expand_memory_blockage): Fix call of
10431         targetm.have_memory_blockage.
10432
10433 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
10434
10435         PR bootstrap/82548
10436         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
10437         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
10438         objects to extra_objs instead of overwriting it.
10439
10440 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
10441
10442         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
10443         Use any_fp_register_operand as operand[3] predicate.  Simplify
10444         equality test for operands[2] and operands[4] memory location.
10445         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
10446         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
10447         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
10448         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
10449         any_fp_register_operand as operand[1] predicate.  Simplify
10450         equality test for operands[0] and operands[3] memory location.
10451         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
10452         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
10453         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
10454
10455 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
10456
10457         * target-insns.def: Add memory_blockage.
10458         * optabs.c (expand_memory_blockage): New function.
10459         (expand_asm_memory_barrier): Rename ...
10460         (expand_asm_memory_blockage): ... to this.
10461         (expand_mem_thread_fence): Call expand_memory_blockage
10462         instead of expand_asm_memory_barrier.
10463         (expand_mem_singnal_fence): Ditto.
10464         (expand_atomic_load): Ditto.
10465         (expand_atomic_store): Ditto.
10466         * doc/md.texi (Standard Pattern Names For Generation):
10467         Document memory_blockage instruction pattern.
10468
10469 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
10470
10471         * config/rl78/rl78.c (rl78_emit_libcall): New function.
10472         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
10473         * config/rl78/rl78.md: New define_expand "adddi3".
10474
10475 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
10476
10477         * cfghooks.c (verify_flow_info): Disable check that all probabilities
10478         are set correctly.
10479
10480 2017-10-13  Jeff Law  <law@redhat.com>
10481
10482         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
10483
10484 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
10485
10486         PR target/82274
10487         * internal-fn.c (expand_mul_overflow): If both operands have
10488         the same highpart of -1 or 0 and the topmost bit of lowpart
10489         is different, overflow is if res <= 0 rather than res < 0.
10490
10491 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
10492
10493         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
10494         TARGET_P9_VECTOR code for unaligned_load case.
10495
10496 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
10497
10498         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
10499
10500 2017-10-13  Nathan Sidwell  <nathan@acm.org>
10501
10502         * tree-core.h (tree_contains_struct): Make bool.
10503         * tree.c (tree_contains_struct): Likewise.
10504         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
10505         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
10506         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
10507         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
10508         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
10509
10510 2017-10-13  Richard Biener  <rguenther@suse.de>
10511
10512         * graphite-isl-ast-to-gimple.c
10513         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
10514         parameters and dominance check.
10515         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
10516         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
10517         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
10518         Do not update SSA form here or do intermediate IL verification.
10519         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
10520         (graphite_initialize): Remove check on the number of loops in
10521         the function and inline into graphite_transform_loops.
10522         (graphite_finalize): Inline into graphite_transform_loops.
10523         (graphite_transform_loops): Perform SSA update and IL verification
10524         here.
10525         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
10526
10527 2017-10-13  Richard Biener  <rguenther@suse.de>
10528
10529         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
10530         graphite_expression_type_precision): Avoid global constructor
10531         by moving ...
10532         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
10533         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
10534         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
10535         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
10536         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
10537         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
10538
10539 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
10540
10541         PR target/82499
10542         * config/i386/i386.h (ix86_red_zone_size): New.
10543         * config/i386/i386.md (push peephole2s): Replace
10544         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
10545
10546 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10547             Alan Hayward  <alan.hayward@arm.com>
10548             David Sherwood  <david.sherwood@arm.com>
10549
10550         * combine.c (can_change_dest_mode): Reject changes in
10551         REGMODE_NATURAL_SIZE.
10552
10553 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10554             Alan Hayward  <alan.hayward@arm.com>
10555             David Sherwood  <david.sherwood@arm.com>
10556
10557         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
10558         (expand_debug_source_expr): Likewise.
10559         * combine.c (combine_simplify_rtx): Likewise.
10560         * cse.c (fold_rtx): Likewise.
10561         * fwprop.c (canonicalize_address): Likewise.
10562         * targhooks.c (default_shift_truncation_mask): Likewise.
10563
10564 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10565             Alan Hayward  <alan.hayward@arm.com>
10566             David Sherwood  <david.sherwood@arm.com>
10567
10568         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
10569         (widened_mode): Likewise.
10570         (expand_unop): Likewise.
10571         * ree.c (transform_ifelse): Likewise.
10572         (merge_def_and_ext): Likewise.
10573         (combine_reaching_defs): Likewise.
10574         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10575
10576 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10577             Alan Hayward  <alan.hayward@arm.com>
10578             David Sherwood  <david.sherwood@arm.com>
10579
10580         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
10581         * combine.c (gen_lowpart_for_combine): Likewise.
10582         * dwarf2out.c (rtl_for_decl_location): Likewise.
10583         * final.c (alter_subreg): Likewise.
10584         * rtlhooks.c (gen_lowpart_general): Likewise.
10585         (gen_lowpart_if_possible): Likewise.
10586
10587 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
10588             Alan Hayward  <alan.hayward@arm.com>
10589             David Sherwood  <david.sherwood@arm.com>
10590
10591         * calls.c (expand_call): Use subreg_lowpart_offset.
10592         * cse.c (cse_insn): Likewise.
10593         * regcprop.c (copy_value): Likewise.
10594         (copyprop_hardreg_forward_1): Likewise.
10595
10596 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
10597
10598         PR target/82524
10599         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
10600         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
10601         =Q constraints to +Q and into insn condition add check
10602         that operands[0] and operands[1] are equal.
10603         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
10604         =Q constraints to +Q and into insn condition add check
10605         that operands[0] is equal to either operands[1] or operands[2].
10606
10607         PR target/82498
10608         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
10609         instead of handling MINUS_EXPR twice (once for each argument),
10610         canonicalize operand order and handle just once, use rtype where
10611         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
10612
10613         PR target/82498
10614         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
10615         any values of __C while still being pattern recognizable as a simple
10616         rotate instruction.
10617
10618 2017-10-13  Richard Biener  <rguenther@suse.de>
10619
10620         PR tree-optimization/82451
10621         Revert
10622         2017-10-02  Richard Biener  <rguenther@suse.de>
10623
10624         PR tree-optimization/82355
10625         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
10626         a mapping for the enclosing loop but avoid generating one for
10627         the loop tree root.
10628         (copy_bb_and_scalar_dependences): Remove premature codegen
10629         error on PHIs in blocks duplicated into multiple places.
10630         * graphite-scop-detection.c
10631         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
10632         in the region use it as loop and nest to analyze the DR in.
10633         (try_generate_gimple_bb): Likewise.
10634         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
10635         (add_loop_constraints): For blocks in a loop not in the region
10636         create a dimension with a single iteration.
10637         * sese.h (gbb_loop_at_index): Remove assert.
10638
10639         * cfgloop.c (loop_preheader_edge): For the loop tree root
10640         return the single successor of the entry block.
10641         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
10642         Reset the SCEV hashtable and niters.
10643         * graphite-scop-detection.c
10644         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
10645         assert that we only have POLYNOMIAL_CHREC that vary in loops
10646         contained in the region.
10647         (scop_detection::graphite_can_represent_expr): Adjust.
10648         (scop_detection::stmt_has_simple_data_refs_p): For loops
10649         not in the region set loop to NULL.  The nest is now the
10650         entry edge to the region.
10651         (try_generate_gimple_bb): Likewise.
10652         * sese.c (scalar_evolution_in_region): Adjust for
10653         instantiate_scev change.
10654         * tree-data-ref.h (graphite_find_data_references_in_stmt):
10655         Make nest parameter the edge into the region.
10656         (create_data_ref): Likewise.
10657         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
10658         entry edge into a region and adjust instantiate_scev calls.
10659         (create_data_ref): Likewise.
10660         (graphite_find_data_references_in_stmt): Likewise.
10661         (find_data_references_in_stmt): Pass the loop preheader edge
10662         from the nest argument.
10663         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
10664         parameter the edge into the region.
10665         (instantiate_parameters): Use the loop preheader edge as entry.
10666         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
10667         NULL loop.
10668         (get_instantiated_value_entry): Make instantiate_below parameter
10669         the edge into the region.
10670         (instantiate_scev_name): Likewise.  Adjust dominance checks,
10671         when we cannot use loop-based instantiation instantiate by
10672         walking use-def chains.
10673         (instantiate_scev_poly): Adjust.
10674         (instantiate_scev_binary): Likewise.
10675         (instantiate_scev_convert): Likewise.
10676         (instantiate_scev_not): Likewise.
10677         (instantiate_array_ref): Remove.
10678         (instantiate_scev_3): Likewise.
10679         (instantiate_scev_2): Likewise.
10680         (instantiate_scev_1): Likewise.
10681         (instantiate_scev_r): Do not blindly handle N-operand trees.
10682         Do not instantiate array-refs.  Handle all constants and invariants.
10683         (instantiate_scev): Make instantiate_below parameter
10684         the edge into the region.
10685         (resolve_mixers): Use the loop preheader edge for the region
10686         parameter to instantiate_scev_r.
10687         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
10688
10689 2017-10-13  Richard Biener  <rguenther@suse.de>
10690
10691         PR tree-optimization/82525
10692         * graphite-isl-ast-to-gimple.c
10693         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
10694         out from ...
10695         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
10696         Fail code generation when we cannot represent the isl integer.
10697         (binary_op_to_tree): Elide modulo operations that are no-ops
10698         in the type we code generate.  Remove now superfluous code
10699         generation errors.
10700
10701 2017-10-13  Richard Biener  <rguenther@suse.de>
10702
10703         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
10704         (scop_detection::harmful_loop_in_region): Remove premature
10705         IV type restriction.
10706         (scop_detection::graphite_can_represent_scev): We can handle
10707         pointer IVs just fine.
10708
10709 2017-10-13  Alan Modra  <amodra@gmail.com>
10710
10711         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
10712         "Clobbers and Scratch Registers".  Add paragraph on
10713         alternative to clobbers for scratch registers and OpenBLAS
10714         example.
10715
10716 2017-10-13  Alan Modra  <amodra@gmail.com>
10717
10718         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
10719         example of a memory input for a string of known length.  Move
10720         commentary out of table.  Add a number of new examples
10721         covering array memory inputs.
10722
10723 2017-10-12  Martin Liska  <mliska@suse.cz>
10724
10725         PR tree-optimization/82493
10726         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
10727         (test_range_functions): New function.
10728         (sbitmap_c_tests): Likewise.
10729         * selftest-run-tests.c (selftest::run_tests): Run new tests.
10730         * selftest.h (sbitmap_c_tests): New function.
10731
10732         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
10733
10734 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
10735
10736         * config/rs6000/amo.h: Fix spacing issue.
10737
10738 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
10739
10740         PR target/82498
10741         * config/i386/i386.md (*ashl<mode>3_mask_1,
10742         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
10743         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
10744         patterns.
10745
10746 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
10747
10748         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
10749         (profile_probability): Set max_probability
10750         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
10751         in temporaries.
10752         * profile-count.c (profile_probability::differs_from_p): Do not
10753         rely on max_probaiblity == 10000
10754
10755 2017-10-12  Jeff Law  <law@redhat.com>
10756
10757         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
10758         negative offsets.
10759
10760 2017-10-12  Martin Sebor  <msebor@redhat.com>
10761
10762         PR other/82301
10763         PR c/82435
10764         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
10765         (handle_alias_pairs): Call it.
10766         * common.opt (-Wattribute-alias): New option.
10767         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
10768         * doc/invoke.texi (-Wattribute-alias): Document.
10769
10770 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
10771
10772         Revert
10773         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
10774         PR sanitizer/82353
10775         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
10776         locations.
10777         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
10778         (make_hard_regno_born, make_hard_regno_dead): Update
10779         bb_killed_pseudos and bb_gen_pseudos.
10780
10781 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
10782
10783         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
10784
10785 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
10786
10787         * config/alpha/alpha.c (alpha_split_conditional_move):
10788         Use std::swap instead of manually swapping.
10789         (alpha_stdarg_optimize_hook): Ditto.
10790         (alpha_canonicalize_comparison): Ditto.
10791
10792 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
10793
10794         * tree-loop-distribution.c (struct builtin_info): New struct.
10795         (struct partition): Refactor fields into struct builtin_info.
10796         (partition_free): Free struct builtin_info.
10797         (build_size_arg_loc, build_addr_arg_loc): Delete.
10798         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
10799         information from struct builtin_info.
10800         (find_single_drs): New function refactored from classify_partition.
10801         Also moved builtin validity checks to this function.
10802         (compute_access_range, alloc_builtin): New functions.
10803         (classify_builtin_st, classify_builtin_ldst): New functions.
10804         (classify_partition): Refactor code into functions find_single_drs,
10805         classify_builtin_st and classify_builtin_ldst.
10806         (distribute_loop): Don't do runtime alias check when distributing
10807         loop nest.
10808         (find_seed_stmts_for_distribution): New function.
10809         (pass_loop_distribution::execute): Refactor code finding seed
10810         stmts into above function.  Support distribution for the innermost
10811         two-level loop nest.  Adjust dump information.
10812
10813 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
10814
10815         * tree-loop-distribution.c: Adjust the general comment.
10816         (NUM_PARTITION_THRESHOLD): New macro.
10817         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
10818         (classify_partition): Skip builtin pattern of loop nest's inner loop.
10819         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
10820         in call to build_partition_graph.
10821         (finalize_partitions): New parameter.  Make loop distribution more
10822         conservative by fusing more partitions.
10823         (distribute_loop): Don't do runtime alias check in case of loop nest
10824         distribution.
10825         (find_seed_stmts_for_distribution): New function.
10826         (prepare_perfect_loop_nest): New function.
10827         (pass_loop_distribution::execute): Refactor code finding seed stmts
10828         and loop nest into above functions.  Support loop nest distribution.
10829         Adjust dump information accordingly.
10830
10831 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
10832
10833         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
10834         and set PTYPE_SEQUENTIAL for merged partition.
10835
10836 2017-10-12  Richard Biener  <rguenther@suse.de>
10837
10838         PR tree-optimization/69728
10839         Revert
10840         2017-09-19  Richard Biener  <rguenther@suse.de>
10841
10842         PR tree-optimization/69728
10843         * graphite-sese-to-poly.c (schedule_error): New global.
10844         (add_loop_schedule): Handle empty domain by failing the
10845         schedule.
10846         (build_original_schedule): Handle schedule_error.
10847
10848         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
10849         domain by returning an unchanged schedule.
10850
10851 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
10852
10853         * genrecog.c (validate_pattern): For VEC_SELECT verify that
10854         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
10855
10856 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
10857
10858         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
10859         Handle params.def.
10860
10861 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
10862
10863         PR c++/82159
10864         * expr.c (store_field): Don't optimize away bitsize == 0 store
10865         from CALL_EXPR with addressable return type.
10866
10867 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
10868
10869         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
10870         * config/rs6000/rs6000.md (sel): Delete mode attribute.
10871         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
10872         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
10873         TARGET_ISEL instead of TARGET_ISEL<sel>.
10874
10875 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
10876
10877         * config/rs6000/rs6000.c
10878         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
10879
10880 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
10881
10882         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
10883         Move up in file.
10884         (reg_or_cint_operand): Fix comment.
10885         (reg_or_zero_operand): New predicate.
10886         * config/rs6000/rs6000-protos.h (output_isel): Delete.
10887         * config/rs6000/rs6000.c (output_isel): Delete.
10888         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
10889         instead of reg_or_cint_operand.  Output instruction directly (not via
10890         output_isel).
10891         (isel_unsigned_<mode>): Ditto.
10892         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
10893         gpc_reg_operand.  Add an instruction alternative for this.  Output
10894         instruction directly.
10895         (*isel_reversed_unsigned_<mode>): Ditto.
10896
10897 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
10898
10899         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
10900         (TARGET_CANONICALIZE_COMPARISON): Define.
10901
10902 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
10903
10904         PR target/81422
10905         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
10906         Check whether the dest is REG before adding REG_EQUIV note.
10907
10908 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
10909
10910         PR sanitizer/82353
10911         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
10912         locations.
10913         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
10914         (make_hard_regno_born, make_hard_regno_dead): Update
10915         bb_killed_pseudos and bb_gen_pseudos.
10916
10917 2017-10-11  Nathan Sidwell  <nathan@acm.org>
10918
10919         * incpath.h (enum incpath_kind): Name enum, prefix values.
10920         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
10921         * incpath.c (heads, tails): Use INC_MAX.
10922         (add_env_var_paths, add_standard_paths): Use incpath_kind.
10923         (merge_include_chains, split_quote_chain,
10924         register_include_chains): Update incpath_kind names.
10925         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
10926         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
10927         names.
10928         (add_framework_path, darwin_register_objc_includes): Likewise.
10929         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
10930
10931 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
10932
10933         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
10934         Do not use float_operator operator predicate.
10935         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
10936         * config/i386/predicates.md (float_operator): Remove predicate.
10937
10938 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
10939
10940         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
10941         (*jccxf_i387): Ditto.
10942         (*jcc<mode>_i387): Ditto.
10943         (*jccu<mode>_i387): Ditto.
10944         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
10945         (*jcc_*_i387 splitters): Remove.
10946         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
10947         * config/i386/i386.c (ix86_split_fp_branch): Remove.
10948         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
10949         Remove predicate.
10950
10951 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
10952
10953         * profile-count.h (slow_safe_scale_64bit): New function.
10954         (safe_scale_64bit): New inline.
10955         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
10956         * profile-count.c: Include wide-int.h
10957         (slow_safe_scale_64bit): New.
10958
10959 2017-10-11  Nathan Sidwell  <nathan@acm.org>
10960
10961         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
10962         HAS_DECL_ASSEMBLER_NAME_P.
10963         * gimple-expr.c (gimple_decl_printable_name: Check
10964         HAS_DECL_ASSEMBLER_NAME_P too.
10965         * ipa-utils.h (type_in_anonymous_namespace_p): Check
10966         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
10967         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
10968         * passes.c (rest_of_decl_compilation): Check
10969         HAS_DECL_ASSEMBLER_NAME_P too.
10970         * recog.c (verify_changes): Likewise.
10971         * tree-pretty-print.c (dump_decl_name): Likewise.
10972         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
10973
10974         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
10975         (SET_DECL_ASSEMBLER_NAME): Use it.
10976         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
10977         (COPY_DECL_ASSEMBLER_NAME): Likewise.
10978         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
10979
10980 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
10981
10982         * config.gcc (i386, x86_64): Add extra objects.
10983         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
10984         (ix86_min_insn_size): Declare.
10985         (ix86_issue_rate): Declare.
10986         (ix86_adjust_cost): Declare.
10987         (ia32_multipass_dfa_lookahead): Declare.
10988         (ix86_macro_fusion_p): Declare.
10989         (ix86_macro_fusion_pair_p): Declare.
10990         (ix86_bd_has_dispatch): Declare.
10991         (ix86_bd_do_dispatch): Declare.
10992         (ix86_core2i7_init_hooks): Declare.
10993         (ix86_atom_sched_reorder): Declare.
10994         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
10995         (COSTS_N_BYTES): Move to x86-tune-costs.h.
10996         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
10997         (rip_relative_addr_p): Rename to ...
10998         (ix86_rip_relative_addr_p): ... this one; export.
10999         (memory_address_length): Update.
11000         (ix86_issue_rate): Move to x86-tune-sched.c.
11001         (ix86_flags_dependent): Move to x86-tune-sched.c.
11002         (ix86_agi_dependent): Move to x86-tune-sched.c.
11003         (exact_dependency_1): Move to x86-tune-sched.c.
11004         (exact_store_load_dependency): Move to x86-tune-sched.c.
11005         (ix86_adjust_cost): Move to x86-tune-sched.c.
11006         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
11007         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
11008         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
11009         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
11010         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
11011         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
11012         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
11013         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
11014         (min_insn_size): Rename to ...
11015         (ix86_min_insn_size): ... this one; export.
11016         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
11017         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
11018         (core2i7_first_cycle_multipass_backtrack): Move to
11019         x86-tune-sched-core.c.
11020         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
11021         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
11022         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
11023         (ix86_avoid_jump_mispredicts): Update.
11024         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
11025         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
11026         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
11027         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
11028         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
11029         (MAX_INSN): Move to ix86-tune-sched-bd.c.
11030         (MAX_IMM): Move to ix86-tune-sched-bd.c.
11031         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
11032         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
11033         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
11034         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
11035         (MAX_STORE): Move to ix86-tune-sched-bd.c.
11036         (BIG): Move to ix86-tune-sched-bd.c.
11037         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
11038         (enum insn_path): Move to ix86-tune-sched-bd.c.
11039         (get_mem_group): Move to ix86-tune-sched-bd.c.
11040         (is_cmp): Move to ix86-tune-sched-bd.c.
11041         (dispatch_violation): Move to ix86-tune-sched-bd.c.
11042         (is_branch): Move to ix86-tune-sched-bd.c.
11043         (is_prefetch): Move to ix86-tune-sched-bd.c.
11044         (init_window): Move to ix86-tune-sched-bd.c.
11045         (allocate_window): Move to ix86-tune-sched-bd.c.
11046         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
11047         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
11048         (process_end_window): Move to ix86-tune-sched-bd.c.
11049         (allocate_next_window): Move to ix86-tune-sched-bd.c.
11050         (find_constant): Move to ix86-tune-sched-bd.c.
11051         (get_num_immediates): Move to ix86-tune-sched-bd.c.
11052         (has_immediate): Move to ix86-tune-sched-bd.c.
11053         (get_insn_path): Move to ix86-tune-sched-bd.c.
11054         (get_insn_group): Move to ix86-tune-sched-bd.c.
11055         (count_num_restricted): Move to ix86-tune-sched-bd.c.
11056         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
11057         (add_insn_window): Move to ix86-tune-sched-bd.c.
11058         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
11059         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
11060         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
11061         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
11062         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
11063         (do_dispatch): Move to ix86-tune-sched-bd.c.
11064         (has_dispatch): Move to ix86-tune-sched-bd.c.
11065         * config/i386/t-i386: Add new object files.
11066         * config/i386/x86-tune-costs.h: New file.
11067         * config/i386/x86-tune-sched-atom.c: New file.
11068         * config/i386/x86-tune-sched-bd.c: New file.
11069         * config/i386/x86-tune-sched-core.c: New file.
11070         * config/i386/x86-tune-sched.c: New file.
11071
11072 2017-10-11  Liu Hao  <lh_mouse@126.com>
11073
11074         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
11075         the generic version below instead.
11076         (should_colorize): Recognize Windows consoles as terminals
11077         for MinGW targets.
11078         * pretty-print.c [__MINGW32__] (write_all): New function.
11079         [__MINGW32__] (find_esc_head): Likewise.
11080         [__MINGW32__] (find_esc_terminator): Likewise.
11081         [__MINGW32__] (eat_esc_sequence): Likewise.
11082         [__MINGW32__] (mingw_ansi_fputs): New function that handles
11083         ANSI escape codes.
11084         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
11085         for MinGW targets.
11086
11087 2017-10-11  Richard Biener  <rguenther@suse.de>
11088
11089         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
11090         Properly call analyze_scalar_evolution with the loop of the stmt.
11091
11092 2017-10-11  Richard Biener  <rguenther@suse.de>
11093
11094         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
11095         * tree-core.h (tree_base): Add chrec_var union member.
11096         * tree.h (CHREC_VAR): Remove.
11097         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
11098         * tree-chrec.h (build_polynomial_chrec): Adjust.
11099         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
11100         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
11101
11102 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
11103
11104         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
11105         * match.pd: ... here.
11106         ((T) X == (T) Y): Relax condition.
11107
11108 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
11109
11110         PR tree-optimization/82472
11111         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
11112         comment.
11113         (break_alias_scc_partitions): Update postorder number.
11114
11115 2017-10-11  Martin Liska  <mliska@suse.cz>
11116
11117         PR sanitizer/82490
11118         * opts.c (parse_no_sanitize_attribute): Do not use error_value
11119         variable.
11120         * opts.h (parse_no_sanitize_attribute): Remove last argument.
11121
11122 2017-10-11  Martin Liska  <mliska@suse.cz>
11123
11124         * print-rtl.c (print_insn): Move declaration of idbuf
11125         to same scope as name.
11126
11127 2017-10-11  Martin Liska  <mliska@suse.cz>
11128
11129         Revert r253637:
11130
11131         PR sanitizer/82484
11132         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
11133         volatile arguments.
11134
11135 2017-10-11  Martin Liska  <mliska@suse.cz>
11136
11137         PR sanitizer/82484
11138         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
11139         volatile arguments.
11140
11141 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
11142
11143         * config.gcc (default_gnu_indirect_function): Default to yes for
11144         arm*-*-linux* with glibc.
11145
11146 2017-10-11  Richard Biener  <rguenther@suse.de>
11147
11148         * tree-scalar-evolution.c (get_scalar_evolution): Handle
11149         default-defs and types we do not want to analyze.
11150         (interpret_loop_phi): Replace unreachable code with an assert.
11151         (compute_scalar_evolution_in_loop): Remove and inline ...
11152         (analyze_scalar_evolution_1): ... here, replacing condition with
11153         what makes the intent clearer.  Remove handling of cases
11154         get_scalar_evolution now handles.
11155
11156 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
11157
11158         PR rtl-optimization/81434
11159         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
11160         comment for main loop.  In sched_group_found if, also add checks for
11161         pass and min_cost_group.
11162
11163 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
11164
11165         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
11166         (rs6000_insn_cost): New function.
11167         * config/rs6000/rs6000.md (cost): New attribute.
11168
11169 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
11170             H.J. Lu  <hongjiu.lu@intel.com>
11171
11172         PR target/79565
11173         PR target/82483
11174         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
11175         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
11176         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
11177         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
11178         to OPTION_MASK_ISA_AVX512VL - builtins that have both
11179         OPTION_MASK_ISA_MMX and some other bit set require both
11180         mmx and the ISAs without the mmx bit.
11181         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
11182         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
11183         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
11184         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
11185         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
11186         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
11187         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
11188         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
11189         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
11190         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
11191         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
11192         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
11193         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
11194         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
11195         Add OPTION_MASK_ISA_MMX.
11196
11197 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
11198
11199         * config.gcc (armv7*-*-freebsd*): New target.
11200         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
11201
11202 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
11203
11204         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
11205         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
11206         spot in the file.
11207
11208 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
11209
11210         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
11211         a template parameter.
11212         (WIDE_INT_REF_FOR): Update accordingly.
11213         * tree.h (wi::int_traits <const_tree>): Delete.
11214         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
11215         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
11216         (wi::tree_to_wide_ref): New typedef.
11217         (wi::to_wide): New function.
11218         * calls.c (get_size_range): Use wi::to_wide when operating on
11219         trees as wide_ints.
11220         * cgraph.c (cgraph_node::create_thunk): Likewise.
11221         * config/i386/i386.c (ix86_data_alignment): Likewise.
11222         (ix86_local_alignment): Likewise.
11223         * dbxout.c (stabstr_O): Likewise.
11224         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
11225         * expr.c (const_vector_from_tree): Likewise.
11226         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
11227         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
11228         (fold_negate_expr_1, int_const_binop_1, const_binop)
11229         (fold_convert_const_int_from_real, optimize_bit_field_compare)
11230         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
11231         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
11232         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
11233         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
11234         (fold_not_const, round_up_loc): Likewise.
11235         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
11236         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
11237         (alloca_call_type): Likewise.
11238         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
11239         * godump.c (go_output_typedef): Likewise.
11240         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
11241         * internal-fn.c (get_min_precision): Likewise.
11242         * ipa-cp.c (ipcp_store_vr_results): Likewise.
11243         * ipa-polymorphic-call.c
11244         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
11245         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
11246         (ipa_modify_call_arguments): Likewise.
11247         * match.pd: Likewise.
11248         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
11249         * print-tree.c (print_node_brief, print_node): Likewise.
11250         * stmt.c (expand_case): Likewise.
11251         * stor-layout.c (layout_type): Likewise.
11252         * tree-affine.c (tree_to_aff_combination): Likewise.
11253         * tree-cfg.c (group_case_labels_stmt): Likewise.
11254         * tree-data-ref.c (dr_analyze_indices): Likewise.
11255         (prune_runtime_alias_test_list): Likewise.
11256         * tree-dump.c (dequeue_and_dump): Likewise.
11257         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
11258         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
11259         * tree-pretty-print.c (dump_generic_node): Likewise.
11260         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
11261         (simple_iv_with_niters): Likewise.
11262         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
11263         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
11264         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
11265         * tree-ssa-loop-niter.c (split_to_var_and_offset)
11266         (refine_value_range_using_guard, number_of_iterations_ne_max)
11267         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
11268         (get_cst_init_from_scev, record_nonwrapping_iv)
11269         (scev_var_range_cant_overflow): Likewise.
11270         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
11271         * tree-ssa-pre.c (compute_avail): Likewise.
11272         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
11273         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
11274         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
11275         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
11276         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
11277         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
11278         (dump_case_nodes, try_switch_expansion): Likewise.
11279         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
11280         (vect_do_peeling): Likewise.
11281         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
11282         * tree-vect-stmts.c (vectorizable_load): Likewise.
11283         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
11284         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
11285         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
11286         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
11287         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
11288         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
11289         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
11290         (evrp_dom_walker::before_dom_children): Likewise.
11291         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
11292         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
11293         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
11294         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
11295         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
11296         (get_range_pos_neg): Likewise.
11297         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
11298         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
11299         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
11300         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
11301         * config/avr/avr.c (avr_fold_builtin): Likewise.
11302         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
11303         * config/msp430/msp430.c (msp430_attr): Likewise.
11304         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
11305         * config/powerpcspe/powerpcspe-c.c
11306         (altivec_resolve_overloaded_builtin): Likewise.
11307         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
11308         (rs6000_expand_ternop_builtin): Likewise.
11309         * config/rs6000/rs6000-c.c
11310         (altivec_resolve_overloaded_builtin): Likewise.
11311         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
11312         (rs6000_expand_ternop_builtin): Likewise.
11313         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
11314
11315 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11316
11317         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
11318         when copying loop nest with only one inner loop.
11319
11320 2017-10-10  Richard Biener  <rguenther@suse.de>
11321
11322         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
11323         blocks if SCEV is active.
11324         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
11325         dead code.
11326         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
11327         (scev_initialize): Assert we are not yet initialized.
11328
11329 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11330
11331         * tree-loop-distribution.c (generate_loops_for_partition): Remove
11332         inner loop's exit stmt by making it always exit the loop, otherwise
11333         we would generate an infinite empty loop.
11334
11335 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11336
11337         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
11338         renaming variables in new preheader if it's deleted.
11339
11340 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
11341
11342         * tree-loop-distribution.c (struct partition): Remove unused field
11343         loops of the structure.
11344         (partition_alloc, partition_free): Ditto.
11345         (build_rdg_partition_for_vertex): Ditto.
11346
11347 2017-10-09  Jeff Law  <law@redhat.com>
11348
11349         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
11350         return type to match prototype and documentation.
11351
11352 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11353
11354         * config/rs6000/rs6000.c (processor_costs): Move to ...
11355         * config/rs6000/rs6000.h: ... here.
11356         (rs6000_cost): Declare.
11357
11358 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
11359
11360         * except.c (setjmp_fn): New global variable.
11361         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
11362         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
11363         if DONT_USE_BUILTIN_SETJMP is defined.
11364
11365 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11366
11367         * target.def (insn_cost): New hook.
11368         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
11369         * doc/tm.texi: Regenerate.
11370         * rtlanal.c (insn_cost): Use the new hook.
11371
11372 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11373
11374         * combine.c (combine_validate_cost): Compute the new insn_cost,
11375         not just pattern_cost.
11376         (try_combine): Adjust comment.
11377
11378 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
11379
11380         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
11381         insn_cost.
11382         * combine.c (uid_insn_cost): Adjust comment.
11383         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
11384         of insn_rtx_cost
11385         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
11386         * dse.c (find_shift_sequence): Ditto.
11387         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
11388         (bb_valid_for_noce_process_p): Use pattern_cost.
11389         * rtl.h (insn_rtx_cost): Delete.
11390         (pattern_cost): New prototype.
11391         (insn_cost): New prototype.
11392         * rtlanal.c (insn_rtx_cost): Rename to...
11393         (pattern_cost): ... this.
11394         (insn_cost): New.
11395
11396 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
11397
11398         * config/i386/i386.md (*jcc_2): Remove insn pattern.
11399         (*jcc<mode>_0_r_i387): Ditto.
11400         (*jccxf_r_i387): Ditto.
11401         (*jcc<mode>_r_i387): Ditto.
11402         (*jccu<mode>_r_i387): Ditto.
11403         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
11404         (*jcc): Rename from *jcc_1.
11405
11406 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11407
11408         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
11409         deferred rescans after the lvx/stvx recombination pre-pass.
11410
11411 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
11412
11413         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
11414         memory operation instruction support.
11415         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
11416         (rs6000-ibm-aix[789]*): Likewise.
11417         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
11418         Document new functions.
11419
11420 2017-10-09  Richard Biener  <rguenther@suse.de>
11421
11422         PR tree-optimization/82397
11423         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
11424         equality only for semantically equal trees.
11425
11426 2017-10-09  Richard Biener  <rguenther@suse.de>
11427
11428         PR tree-optimization/82449
11429         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
11430         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
11431         allow constant addresses.
11432         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
11433         are linear.
11434
11435 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11436
11437         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
11438         flags.
11439
11440 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11441
11442         PR target/82463
11443         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
11444         definitions.
11445
11446 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11447
11448         PR target/82465
11449         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
11450
11451 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
11452
11453         PR target/82464
11454         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
11455         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
11456
11457 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
11458
11459         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
11460         (WI_BINARY_PREDICATE_RESULT): Likewise.
11461         (wi::binary_traits::operator_result): New type.
11462         (wi::binary_traits::predicate_result): Likewise.
11463         (generic_wide_int::operator~, unary generic_wide_int::operator-)
11464         (generic_wide_int::operator==, generic_wide_int::operator!=)
11465         (generic_wide_int::operator&, generic_wide_int::and_not)
11466         (generic_wide_int::operator|, generic_wide_int::or_not)
11467         (generic_wide_int::operator^, generic_wide_int::operator+
11468         (binary generic_wide_int::operator-, generic_wide_int::operator*):
11469         Delete.
11470         (operator~, unary operator-, operator==, operator!=, operator&)
11471         (operator|, operator^, operator+, binary operator-, operator*): New
11472         functions.
11473         * expr.c (get_inner_reference): Use wi::bit_and_not.
11474         * fold-const.c (fold_binary_loc): Likewise.
11475         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
11476         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
11477         (bit_value_binop): Likewise.
11478         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
11479         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
11480         (extract_range_from_binary_expr_1): Likewise.
11481         (masked_increment): Likewise.
11482         (simplify_bit_ops_using_ranges): Likewise.
11483
11484 2017-10-09  Martin Jambor  <mjambor@suse.cz>
11485
11486         PR hsa/82416
11487         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
11488         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
11489         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
11490         COMPLEX types.
11491         (hsa_fixup_mov_insn_type): New function.
11492         (hsa_op_with_type::get_in_type): Use it.
11493         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
11494         immediates in an assert.
11495         (hsa_op_with_type::extend_int_to_32bit): New method.
11496         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
11497         types.  Convert to dest type if necessary.
11498         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
11499         (reg_for_gimple_ssa): Pass false as min32int to
11500         hsa_type_for_scalar_tree_type.
11501         (gen_hsa_addr): Fixup type when creating addresable temporary.
11502         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
11503         (gen_hsa_unary_operation): Extend operands and convert to dest type if
11504         necessary.  Call hsa_fixup_mov_insn_type.
11505         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
11506         extend operands and convert to dest type if necessary.
11507         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
11508         to dest type if necessary.
11509         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
11510         if conversion nt necessary and size matches.
11511         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
11512         to dest type if necessary.
11513         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
11514         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
11515         necessary.
11516         (gen_hsa_clrsb): Likewise.
11517         (gen_hsa_ffs): Likewise.
11518         (gen_hsa_divmod): Extend operands and convert to dest type if
11519         necessary.
11520         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
11521
11522 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
11523
11524         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
11525         Remove empty default arguments.  Use a brace block as output
11526         statement.
11527         (conditional return): Ditto.
11528         (jump): Ditto.
11529         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
11530         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
11531         Ditto.
11532         (group_ending_nop): Ditto.
11533         (doloop_end): Ditto.
11534         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
11535         (splitters for those): Ditto.
11536
11537 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
11538
11539         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
11540         a conditional jump (and the compare for it) so that pc_rtx is the
11541         last operand.
11542         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
11543         for the deleted and renamed ctr<mode>_internal[234] patterns.
11544         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
11545         Delete second conditional return pattern.
11546         (ctr<mode>_internal2): Delete this second bdnz pattern.
11547         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
11548         (ctr<mode>_internal4): Delete this second bdz pattern.
11549
11550 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
11551
11552         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
11553         (always_initialized_rtx_for_ssa_name_p): New predicate.
11554         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
11555         (finish_out_of_ssa): Free new field of SA.
11556         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
11557         * tree-ssa-coalesce.c: Include tree-ssa.h.
11558         (get_parm_default_def_partitions): Remove extern keyword.
11559         (get_undefined_value_partitions): New function.
11560         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
11561         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
11562         uninitialized bits.
11563         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
11564
11565 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
11566
11567         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
11568
11569 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
11570
11571         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
11572         for targets that preffer 128bit.
11573
11574 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
11575
11576         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
11577
11578 2017-10-08  Olivier Hainque  <hainque@adacore.com>
11579
11580         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
11581         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
11582         prevent DSE.
11583         (thumb_set_return_address): Likewise.
11584
11585 2017-10-08  Olivier Hainque  <hainque@adacore.com>
11586
11587         * common/config/arm/arm-common.c (arm_except_unwind_info):
11588         Handle DWARF2_UNWIND_INFO.
11589
11590 2017-10-07  Michael Collison <michael.collison@arm.com>
11591
11592         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
11593         New pattern.
11594
11595 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
11596
11597         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
11598         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
11599         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
11600         defined, force the creation of a new block for a dispatch label.
11601
11602 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
11603
11604         * invoke.texi (Wsuggest-attribute=cold): Document.
11605         * common.opt (Wsuggest-attribute=cold): New
11606         * ipa-pure-const.c (warn_function_cold): New function.
11607         * predict.c (compute_function_frequency): Use it.
11608         * predict.h (warn_function_cold): Declare.
11609
11610 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
11611
11612         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
11613         Update profile.
11614
11615 2017-10-06  Martin Liska  <mliska@suse.cz>
11616
11617         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
11618         keyword for member functions.
11619         (struct sanopt_tree_couple): New struct.
11620         (struct sanopt_tree_couple_hash): New function.
11621         (struct sanopt_ctx): Add new hash_map.
11622         (has_dominating_ubsan_ptr_check): New function.
11623         (record_ubsan_ptr_check_stmt): Likewise.
11624         (maybe_optimize_ubsan_ptr_ifn): Likewise.
11625         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
11626         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
11627
11628 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
11629
11630         PR target/82440
11631         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
11632         aarch64_simd_valid_immediate on CONST_VECTORs.
11633         (aarch64_reg_or_bic_imm): Likewise.
11634
11635 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
11636
11637         PR rtl-optimization/82396
11638         * haifa-sched.c (ready_sort_real): Disable qsort checking.
11639
11640 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
11641
11642         * graphite-dependences.c (scop_get_reads): Move code to...
11643         (scop_get_must_writes): Move code to...
11644         (scop_get_may_writes): Move code to...
11645         (scop_get_reads_and_writes): ... here.
11646         (scop_get_dependences): Call scop_get_reads_and_writes.
11647
11648 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
11649
11650         PR tree-optimization/82434
11651         * fold-const.h (can_native_encode_type_p,
11652         can_native_encode_string_p): Remove.
11653         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
11654         don't encode anything, just return what would be otherwise returned.
11655         (native_encode_fixed, native_encode_complex, native_encode_vector):
11656         Likewise.
11657         (native_encode_string): Likewise.  Inline by hand
11658         can_native_encode_string_p.
11659         (can_native_encode_type_p): Remove.
11660         (can_native_encode_string_p): Remove.
11661         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
11662         STRING_CSTs using can_native_encode_string_p, test all
11663         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
11664         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
11665         argument from native_encode_expr.
11666         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
11667         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
11668         but just 2.
11669
11670 2017-10-06  Richard Biener  <rguenther@suse.de>
11671
11672         PR tree-optimization/82397
11673         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
11674         operand_equal_p but rely on data_ref_compare_tree for detecting
11675         equalities.
11676         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
11677         to match up with dr_group_sort_cmp.
11678
11679 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11680
11681         PR target/82322
11682         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
11683         builtin.
11684         * config/s390/s390-builtin-types.def: Regenerate.
11685
11686 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11687
11688         PR target/82317
11689         * config/s390/s390-builtin-types.def: Regenerate.
11690         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
11691         Change flag from B_VXE to B_VX.
11692         (s390_vec_min_dbl): Remove B_VXE flag.
11693
11694 2017-10-06  Richard Biener  <rguenther@suse.de>
11695
11696         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
11697         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
11698         translate_isl_ast_to_gimple::is_valid_rename,
11699         translate_isl_ast_to_gimple::get_rename,
11700         translate_isl_ast_to_gimple::get_def_bb_for_const,
11701         translate_isl_ast_to_gimple::get_new_name,
11702         translate_isl_ast_to_gimple::collect_all_ssa_names,
11703         translate_isl_ast_to_gimple::copy_loop_phi_args,
11704         translate_isl_ast_to_gimple::collect_all_ssa_names,
11705         translate_isl_ast_to_gimple::copy_loop_phi_args,
11706         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
11707         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
11708         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
11709         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
11710         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
11711         translate_isl_ast_to_gimple::copy_cond_phi_args,
11712         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
11713         translate_isl_ast_to_gimple::edge_for_new_close_phis,
11714         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
11715         translate_isl_ast_to_gimple::rename_uses,
11716         translate_isl_ast_to_gimple::rename_all_uses): Remove.
11717         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
11718         (set_rename_for_each_def): Likewise.
11719         (graphite_copy_stmts_from_block): Handle debug stmt resetting
11720         here.  Handle rewriting SCEV analyzable uses here.
11721         (copy_bb_and_scalar_dependences): Generate code for PHI
11722         copy-in/outs.
11723         (graphite_regenerate_ast_isl): Adjust.
11724         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
11725         (add_write, add_read): New functions.
11726         (build_cross_bb_scalars_def): Use it and simplify.
11727         (build_cross_bb_scalars_use): Likewise.
11728         (graphite_find_cross_bb_scalar_vars): Inline into...
11729         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
11730         simulating out-of-SSA.  Compute liveout and add dependencies.
11731         (build_scops): Force an empty entry block.
11732         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
11733         members.
11734         (sese_build_liveouts): Declare.
11735         (sese_trivially_empty_bb_p): Likewise.
11736         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
11737         compute liveout and debug_liveout.
11738         (sese_bad_liveouts_use): Remove.
11739         (sese_reset_debug_liveouts_bb): Likewise.
11740         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
11741         (sese_build_liveouts): Build liveout and debug_liveout and store
11742         it in region.
11743         (new_sese_info): Adjust.
11744         (free_sese_info): Likewise.
11745         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
11746         do not build liveout here.
11747         (move_sese_in_condition): Adjust region entry.
11748         (scev_analyzable_p): Match up with chrec_apply requirements.
11749         (sese_trivially_empty_bb_p): New.
11750         * tree-into-ssa.c (get_reaching_def): Properly support generating
11751         default-defs for incremental rewrite of anonymous names.
11752
11753 2017-10-06  Richard Biener  <rguenther@suse.de>
11754
11755         * graphite-sese-to-poly.c (extract_affine): For casts increasing
11756         precision do not perform modulo reduction.
11757
11758 2017-10-06  Richard Biener  <rguenther@suse.de>
11759
11760         PR tree-optimization/82436
11761         * tree-vect-slp.c (vect_supported_load_permutation_p): More
11762         conservatively choose the vectorization factor when checking
11763         whether we can perform the required load permutation.
11764         (vect_transform_slp_perm_load): Assert when we may not fail.
11765
11766 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
11767
11768         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
11769         message for incompatible -msdata=* and -mcall-* options.
11770
11771 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
11772
11773         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
11774         rate for post-reload scheduling.
11775
11776 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
11777
11778         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
11779
11780 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
11781
11782         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
11783         to improve monte carlo in scimark.
11784
11785 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
11786
11787         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
11788         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
11789         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
11790         pentium4_cost, nocona_cost): Set reassociation width to 1.
11791         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
11792         width to 2 for fp operations and 1 otherwise.
11793         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
11794         for int and fp.
11795         (atom_cost): Set reassociation width to 2.
11796         (slm_cost, generic_cost): Set fp reassociation width
11797         to 2 and 1 otherwise.
11798         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
11799         (core_cost): Set fp reassociation width to 4 and vector to 2.
11800         (ix86_reassociation_width): Rewrite using cost table; special case
11801         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
11802         and TARGET_AVX128_OPTIMAL.
11803         * config/i386/i386.h (processor_costs): Add
11804         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
11805         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
11806         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
11807         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
11808         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
11809         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
11810
11811 2017-10-05  Nathan Sidwell  <nathan@acm.org>
11812
11813         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
11814
11815 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
11816
11817         * config/arm/arm.c (arm_test_fpu_data): New.
11818         (arm_run_selftests): Call arm_test_fpu_data.
11819
11820 2017-10-04  Nathan Sidwell  <nathan@acm.org>
11821
11822         * toplev.c (toplev::main): Remove excess parens on pretty_printer
11823         decl.
11824         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
11825
11826 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
11827
11828         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
11829         check type for aarch64_simd_valid_immediate.
11830         (aarch64_output_simd_mov_immediate): Update prototype.
11831         (aarch64_simd_valid_immediate): Update prototype.
11832         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
11833         support for ORR-immediate.
11834         (and<mode>3): modified pattern to add support for BIC-immediate.
11835         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
11836         now checks for valid immediate for BIC and ORR based on new enum
11837         argument.
11838         (aarch64_output_simd_mov_immediate): Function now used to output
11839         BIC/ORR imm as well based on new enum argument.
11840         * config/aarch64/constraints.md (Do): New vector immediate constraint.
11841         (Db) : Likewise.
11842         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
11843         (aarch64_reg_or_bic_imm): Likewise.
11844
11845 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11846
11847         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
11848         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
11849
11850 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
11851
11852         Revert r253399:
11853
11854         PR rtl-optimization/82396
11855         * haifa-sched.c (autopref_multipass_init): Simplify
11856         initialization.
11857         (autopref_rank_data): Simplify sort order.
11858         * sched-int.h (autopref_multipass_data_): Remove
11859         multi_mem_insn_p, min_offset and max_offset.
11860
11861 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11862
11863         * doc/sourcebuild.texi: Document vect_peeling_profitable.
11864
11865 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11866
11867         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
11868         vect_doubleint_cvt.
11869
11870 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11871
11872         * doc/sourcebuild.texi: Document vect_long_mult.
11873
11874 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
11875
11876         PR tree-optimization/82413
11877         * fold-const.c (build_range_check): Use widest_int when comparing
11878         the maximum ETYPE value with HIGH.
11879
11880 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
11881
11882         PR rtl-optimization/82396
11883         * haifa-sched.c (autopref_multipass_init): Simplify
11884         initialization.
11885         (autopref_rank_data): Simplify sort order.
11886         * sched-int.h (autopref_multipass_data_): Remove
11887         multi_mem_insn_p, min_offset and max_offset.
11888
11889 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
11890
11891         PR tree-optimization/82381
11892         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
11893         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
11894         is not.
11895
11896         PR tree-optimization/82374
11897         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
11898         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
11899         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
11900         current_function_decl to the new decl.
11901
11902 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
11903
11904         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
11905         helper macro for IEEE float128 hardware built-in functions.
11906         (SQRTF128_ODD): Add built-in functions with the round-to-odd
11907         semantics.
11908         (TRUNCF128_ODD): Likewise.
11909         (ADDF128_ODD): Likewise.
11910         (SUBF128_ODD): Likewise.
11911         (MULF128_ODD): Likewise.
11912         (DIVF128_ODD): Likewise.
11913         (FMAF128_ODD): Likewise.
11914         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
11915         UNSPEC_TRUNC_ROUND_TO_ODD.
11916         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
11917         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
11918         floating point round to odd instructions.
11919         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
11920         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
11921         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
11922         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
11923         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
11924         (trunc<mode>sf2_hw): Change the truncate with round to odd
11925         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
11926         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
11927         to odd hardware instructions.
11928         (sub<mode>3_odd): Likewise.
11929         (mul<mode>3_odd): Likewise.
11930         (div<mode>3_odd): Likewise.
11931         (sqrt<mode>2_odd): Likewise.
11932         (fma<mode>4_odd): Likewise.
11933         (fms<mode>4_odd): Likewise.
11934         (nfma<mode>4_odd): Likewise.
11935         (nfms<mode>4_odd): Likewise.
11936         (trunc<mode>df2_odd): Change the truncate with round to odd
11937         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
11938         function.
11939         * doc/extend.texi (PowerPC built-in functions): Update documentation
11940         for existing IEEE float128-bit built-in functions.  Add built-in
11941         functions that generate the IEEE 128-bit floating point round to
11942         odd instructions.
11943
11944 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
11945
11946         PR rtl-optimization/77729
11947         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
11948         to (X&(C1&~C2))|C2 transformations.
11949
11950 2017-10-03  Martin Jambor  <mjambor@suse.cz>
11951
11952         PR tree-optimization/82363
11953         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
11954         mismatch, mark lacc written regardless of racc.
11955
11956 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
11957
11958         PR tree-optimization/82381
11959         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
11960         stmt_to_insert nor wheather SSA_NAMEs are default defs.
11961         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
11962         fallthrough into reassoc_stmt_dominates_stmt_p.
11963
11964         PR target/82386
11965         * combine.c (combine_instructions): Don't combine in unreachable
11966         basic blocks.
11967
11968 2017-10-02  Peter Bergner  <bergner@vnet.ibm.com>
11969
11970         PR target/80210
11971         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
11972         function to not use the have_cpu variable.  Do not set cpu_index,
11973         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
11974         or the default cpu.
11975         (rs6000_valid_attribute_p): Remove duplicate initializations of
11976         old_optimize and func_optimize.
11977         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
11978         (rs6000_activate_target_options): Make global.
11979         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
11980         prototype.
11981
11982 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
11983
11984         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
11985         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
11986         Set *poffset to 0 and *psize and *pmax_size to -1 if
11987         *poffset + *psize overflows in HOST_WIDE_INT.
11988
11989         PR tree-optimization/82387
11990         PR tree-optimization/82388
11991         PR tree-optimization/82389
11992         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
11993         instead of live_bytes non-NULL.
11994
11995 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
11996
11997         PR target/41076
11998         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
11999         alternative.
12000
12001 2017-10-02  Richard Biener  <rguenther@suse.de>
12002
12003         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
12004         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
12005         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
12006
12007 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
12008
12009         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
12010         requested precision matches the type's.
12011         * calls.c (alloc_max_size): Calculate the new candidate size as
12012         a widest_int and use wi::to_widest when comparing it with the
12013         current candidate size.
12014         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
12015         zero rather than integer_zero_node.
12016         * match.pd: Check for a no-op conversion before using wi::add
12017         rather than after.  Use tree_to_uhwi when summing small shift
12018         counts into an unsigned int.
12019
12020 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
12021             Alan Hayward  <alan.hayward@arm.com>
12022             David Sherwood  <david.sherwood@arm.com>
12023
12024         PR target/71307
12025         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
12026         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
12027         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
12028         POINTER_AND_FP_REGS.
12029
12030 2017-10-02  Richard Biener  <rguenther@suse.de>
12031
12032         PR tree-optimization/82355
12033         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
12034         a mapping for the enclosing loop but avoid generating one for
12035         the loop tree root.
12036         (copy_bb_and_scalar_dependences): Remove premature codegen
12037         error on PHIs in blocks duplicated into multiple places.
12038         * graphite-scop-detection.c
12039         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
12040         in the region use it as loop and nest to analyze the DR in.
12041         (try_generate_gimple_bb): Likewise.
12042         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
12043         (add_loop_constraints): For blocks in a loop not in the region
12044         create a dimension with a single iteration.
12045         * sese.h (gbb_loop_at_index): Remove assert.
12046
12047 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
12048
12049         * omp-expand.c (adjust_context_scope): New function.
12050         (expand_parallel_call): Call adjust_context_scope.
12051
12052 2017-10-01  Jeff Law  <law@redhat.com>
12053
12054         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
12055         dom_opt_dom_walker class with direct access to private members.
12056         Add comments.  Call test_for_singularity.
12057         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
12058         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
12059         m_dummy_cond anymore.
12060         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
12061         class ctor.
12062         (pass_dominator:execute): Build the dummy_cond here and pass it
12063         to the dom_opt_dom_walker ctor.
12064         (test_for_singularity): New function.
12065
12066 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
12067             Maya Rashish  <coypu@sdf.org>
12068
12069         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
12070         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
12071         (alpha*-*-netbsd*) Use nbsd_tm_file.
12072         (arm*-*-netbsdelf*) Likewise.
12073         (i[34567]86-*-netbsdelf*) Likewise.
12074         (x86_64-*-netbsd*) Likewise.
12075         (mips*-*-netbsd*) Likewise.
12076         (powerpc-*-netbsd*) Likewise.
12077         (sh*-*-netbsd*) Likewise.
12078         (sparc-*-netbsdelf*) Likewise.
12079         (sparc64-*-netbsd*) Likewise.
12080         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
12081         to tm_defines.
12082         (vax-*-netbsdelf*) Likewise.
12083         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
12084         (UINT_FAST8_TYPE) Likewise.
12085         (INT_FAST16_TYPE) Check CHAR_FAST16.
12086         (UINT_FAST16_TYPE) Likewise.
12087
12088 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
12089
12090         PR target/82361
12091         * config/i386/i386.md
12092         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
12093         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
12094         *divmodsi4_zext_2): New define_insn_and_split.
12095         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
12096         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
12097         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
12098         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
12099         New define_insn_and_split.
12100         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
12101         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
12102         operands[1] having DImode when mode is SImode.
12103
12104         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
12105         always SImode for DIV and MOD in REG_EQUAL notes.
12106
12107 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
12108
12109         PR middle-end/82319
12110         * match.pd: Fix handling of NaNs in pattern.
12111
12112 2017-09-29  Jeff Law  <law@redhat.com>
12113
12114         * sbitmap.c (bitmap_bit_in_range_p): New function.
12115         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
12116         * tree-ssa-dse.c (live_bytes_read): New function.
12117         (dse_classify_store): Ignore reads of dead bytes.
12118
12119         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
12120         typos and whitespace errors.
12121         * config/i386/predicates.md (address_no_seg_operand): Likewise.
12122         * config/s390/s390.c (s390_emit_prologue): Likewise.
12123
12124 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
12125
12126         PR target/81481
12127         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
12128         with a symbol for LRA.
12129
12130 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
12131
12132         PR rtl-optimization/82338
12133         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
12134
12135 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
12136
12137         * genmodes.c (calc_wider_mode): Suppress qsort macro.
12138         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
12139         (qsort_chk): Declare.
12140         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
12141         (qsort_chk): New function.
12142
12143 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12144
12145         PR tree-optimization/82337
12146         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
12147         phi definition if the PHI result appears in an abnormal PHI.
12148         (find_basis_for_base_expr): Don't record a basis if the LHS of the
12149         basis appears in an abnormal PHI.
12150
12151 2017-09-29  Richard Biener  <rguenther@suse.de>
12152
12153         * graphite-isl-ast-to-gimple.c
12154         (translate_isl_ast_to_gimple::set_codegen_error): New function.
12155         (binary_op_to_tree): Use it.
12156         (get_rename_from_scev): Likewise.
12157         (copy_loop_phi_nodes): Likewise.
12158         (copy_bb_and_scalar_dependences): Likewise.
12159         (translate_pending_phi_nodes): Likewise.
12160
12161 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
12162
12163         PR target/82339
12164         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
12165         for movabsq $(i32 << shift), r64.
12166
12167 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
12168
12169         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
12170         index when encoding %esp as %rsp to avoid 0x67 prefix.
12171
12172 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
12173
12174         * config/i386/i386.md (*movsf_internal, *movdf_internal):
12175         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
12176
12177 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12178
12179         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
12180         Extensions with more than 16 double VFP registers.
12181         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
12182         to_clear_mask and all code related to it.  Replace the remaining
12183         entry by a sbitmap and adapt code accordingly.
12184
12185 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
12186
12187         * brig-builtins.def: Change pure attributes to const.
12188
12189 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
12190
12191         * config.gcc (default_gnu_indirect_function): Default to yes for
12192         sparc*-*-linux* with glibc.
12193
12194 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
12195
12196         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
12197         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
12198         when creating .init_array and .fini_array sections with priority
12199         specified.
12200
12201 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
12202
12203         PR target/71727
12204         * config/aarch64/aarch64.c
12205         (aarch64_builtin_support_vector_misalignment): Always return false
12206         when misalignment is unknown.
12207
12208 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12209
12210         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
12211         this function to return false if the definition used by the swap
12212         instruction is artificial, or if the memory address from which the
12213         constant value is loaded is not represented by a base address held
12214         in a register or if the base address register is a frame or stack
12215         pointer.  Additionally, return false if the base address of the
12216         loaded constant is a SYMBOL_REF but is not considered to be a
12217         constant.
12218         (replace_swapped_load_constant): New function.
12219         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
12220         loaded constant vector with a load of a swapped constant vector.
12221
12222 2017-09-27  Carl Love  <cel@us.ibm.com>
12223
12224         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
12225         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
12226         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
12227         fctiw instruction.
12228
12229 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
12230
12231         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
12232         first, always call autopref_rank_data otherwise.
12233
12234 2017-09-27  Richard Biener  <rguenther@suse.de>
12235
12236         * graphite-scop-detection.c (find_scop_parameters): Move
12237         loop bound handling ...
12238         (gather_bbs::before_dom_children): ... here, avoiding the need
12239         to build scop_info->loop_nest.
12240         (record_loop_in_sese): Remove.
12241         * sese.h (sese_info_t::loop_nest): Remove.
12242         * sese.c (new_sese_info): Do not allocate loop_nest.
12243         (free_sese_info): Do not free loop_nest.
12244
12245 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
12246
12247         PR c++/82159
12248         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
12249         lhs from calls if the lhs has addressable type.
12250
12251 2017-09-27  Richard Biener  <rguenther@suse.de>
12252
12253         * graphite.h (scop::max_alias_set): New member.
12254         * graphite-scop-detection.c: Remove references to non-existing
12255         --param in comments.
12256         (build_alias_sets): Record the maximum alias set used for drs.
12257         (build_scops): Support zero as unlimited for
12258         --param graphite-max-arrays-per-scop.
12259         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
12260         and inline into ...
12261         (build_poly_sr_1): ... here.  Compute alias set based on the
12262         maximum alias set used for drs rather than
12263         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
12264
12265 2017-09-27  Richard Biener  <rguenther@suse.de>
12266
12267         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
12268         --param loop-block-tile-size=0 to disable tiling.
12269
12270 2017-09-27  Richard Biener  <rguenther@suse.de>
12271
12272         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
12273         (graphite-max-nb-scop-params): Document special value zero.
12274         * domwalk.h (dom_walker::STOP): New symbolical constant.
12275         (dom_walker::dom_walker): Add optional parameter for bb to
12276         RPO mapping.
12277         (dom_walker::~dom_walker): Declare.
12278         (dom_walker::before_dom_children): Document STOP return value.
12279         (dom_walker::m_user_bb_to_rpo): New member.
12280         (dom_walker::m_bb_to_rpo): Likewise.
12281         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
12282         mapping here if not provided by the user.
12283         (dom_walker::~dom_walker): Free bb to RPO mapping if not
12284         provided by the user.
12285         (dom_walker::STOP): Define.
12286         (dom_walker::walk): Do not compute bb to RPO mapping here.
12287         Support STOP return value from before_dom_children to stop
12288         walking.
12289         * graphite-optimize-isl.c (optimize_isl): If the schedule
12290         is the same still generate code if -fgraphite-identity
12291         or -floop-parallelize-all are given.
12292         * graphite-scop-detection.c: Include cfganal.h.
12293         (gather_bbs::gather_bbs): Get and pass through bb to RPO
12294         mapping.
12295         (gather_bbs::before_dom_children): Return STOP for BBs
12296         not in the region.
12297         (build_scops): Compute bb to RPO mapping and pass it to
12298         the domwalk.  Treat --param graphite-max-nb-scop-params=0
12299         as not limiting the number of params.
12300         * graphite.c (graphite_initialize): Remove limit on the
12301         number of basic-blocks in a function.
12302         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
12303         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
12304         default value of 10.
12305
12306 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12307
12308         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
12309         Adjust code to eliminate needing to do the shift right 32-bits
12310         operation after XSCVDPSPN.
12311
12312 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12313
12314         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
12315         ((X / Y) != 0 -> X >= Y): Likewise.
12316
12317 2017-09-26  Carl Love  <cel@us.ibm.com>
12318
12319         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
12320         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
12321         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
12322         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
12323         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
12324         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
12325         definitions and overloading.
12326         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
12327         statement for P9V_BUILTIN_XST_LEN_R.
12328         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
12329         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
12330         define_expand and define_insn for the instructions and builtins.
12331         * doc/extend.texi: Update the built-in documentation file for the new
12332         built-in functions.
12333         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
12334         define_insn for the instructions
12335
12336 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
12337
12338         PR target/39570
12339         * gcc/config/netbsd-protos.h: New file.
12340         * gcc/config/netbsd.c: New file.
12341         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
12342         * gcc/config/t-netbsd: New file.
12343         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
12344         (tmake_file) Add t-netbsd.
12345         (extra_objs) Add netbsd.o.
12346
12347 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
12348
12349         PR fortran/82143
12350         PR fortran/82324
12351         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
12352
12353 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
12354
12355         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
12356         sign extension from a vector register to a GPR by doing a 32-bit
12357         direct move and then an EXTSW.
12358         (extendsi<mode>2 splitter): Likewise.
12359         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
12360         right or vector extract after doing XSCVDPSPN.  Use
12361         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
12362         the GPRs.
12363         (movdi_from_sf_zero_ext): Likewise.
12364         (reload_gpr_from_vsxsf): Likewise.
12365         (p8_mfvsrd_4_disf): Delete, no longer used.
12366         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
12367         then needing to move the SFmode to a GPR to use the XSCVDPSP
12368         instruction instead of FRSP and XSCVDPSPN.
12369         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
12370         it is adjacent to the other XSCVSPDP insns.
12371         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
12372         SFmode to be in traditional Altivec registers.
12373         (vsx_xscvdpspn): Eliminate useless alternative constraint.
12374         (vsx_xscvspdpn): Likewise.
12375         (vsx_xscvspdpn_scalar): Likewise.
12376
12377 2017-09-26  Martin Jambor  <mjambor@suse.cz>
12378
12379         * tree-sra.c (compare_access_positions): Put integral types first,
12380         stabilize sorting of integral types, remove conditions putting
12381         non-full-precision integers last.
12382         (sort_and_splice_var_accesses): Disable scalarization if a
12383         non-integert would be represented by a non-full-precision integer.
12384
12385 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
12386
12387         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
12388         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
12389         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
12390         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
12391         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
12392         conditionals inside the function instead of around it.  Call
12393         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
12394         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
12395
12396 2017-09-26  Richard Biener  <rguenther@suse.de>
12397
12398         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
12399         fold in ...
12400         (scop_detection::build_scop_breadth): ... this.  Removed.
12401         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
12402         (scop_detection::harmful_stmt_in_bb): Likewise.
12403         (scop_detection::graphite_can_represent_stmt): Likewise.
12404         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
12405         (scop_detection::can_represent_loop): Remove recursion, fold in ...
12406         (scop_detection::can_represent_loop_1): ... this.  Removed.
12407         (scop_detection::harmful_loop_in_region): Simplify after inlining
12408         the above and remove more quadraticness.
12409         (build_scops): Adjust.
12410         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
12411         quadraticness.
12412
12413 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
12414
12415         PR target/82267
12416         * config/i386/i386.c (ix86_print_operand_address_as): Only test
12417         REGNO (base) == SP_REG if base is a REG.
12418
12419         PR middle-end/35691
12420         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
12421         if it is different SSA_NAME.
12422         (optimize_range_tests_cmp_bitwise): New function.
12423         (optimize_range_tests): Call it.
12424
12425 2017-09-26  Richard Biener  <rguenther@suse.de>
12426
12427         PR tree-optimization/82321
12428         * graphite.c (canonicalize_loop_closed_ssa): Properly check
12429         for the def being inside the loop.
12430
12431 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12432
12433         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
12434         assembler output.
12435         * config/s390/s390-builtins.def: Fix constraint on op4.
12436
12437 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12438
12439         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
12440         independent expanders.
12441         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
12442         ("vec_ordered", "vec_unordered"): New expanders.
12443
12444 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12445
12446         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
12447         for SFmode.
12448
12449 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12450
12451         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
12452         vec_unpacks_lo_v16qi.
12453         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
12454
12455 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12456
12457         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
12458         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
12459         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
12460
12461 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12462
12463         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
12464         predicate.
12465         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
12466         and V16QI.
12467         ("*vec_slb<mode>"): New insn pattern.
12468         ("vec_shr_<mode>"): New expander.
12469         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
12470         and force the shift count operand to V16QImode.
12471         ("vec_srb<mode>"): Set shift count mode to V16QI.
12472
12473 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12474
12475         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
12476         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
12477         ("vec_widen_smult_hi_<mode>"): New expander definitions.
12478
12479 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
12480
12481         PR target/82175
12482         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
12483
12484 2017-09-26  Richard Biener  <rguenther@suse.de>
12485
12486         PR tree-optimization/82320
12487         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
12488         isn't a change.
12489
12490 2017-09-25  Jeff Law  <law@redhat.com>
12491
12492         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
12493         prototype for new argument.
12494         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
12495         mostly extracted from rs6000_emit_allocate_stack.
12496         (rs6000_emit_probe_stack_range_stack_clash): New function.
12497         (rs6000_emit_allocate_stack): Call
12498         rs6000_emit_probe_stack_range_stack_clash as needed.
12499         (rs6000_emit_probe_stack_range): Add additional argument
12500         to call to gen_probe_stack_range{si,di}.
12501         (output_probe_stack_range): New.
12502         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
12503         (output_probe_stack_range_stack_clash): New.
12504         (rs6000_emit_prologue): Emit notes into dump file as requested.
12505         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
12506         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
12507         Add additional operand and pass it to output_probe_stack_range.
12508
12509 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
12510
12511         PR tree-optimization/82163
12512         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
12513         (checking_verify_loop_closed_ssa): New parameter.
12514         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
12515         (check_loop_closed_ssa_stmt): Delete.
12516         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
12517         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
12518         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
12519         changed loops.
12520
12521 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
12522
12523         * brig-builtins.def: Treat HSAIL barrier builtins as
12524         setjmp/longjump style functions.
12525
12526 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
12527
12528         * target.def (constant_alignment): New hook.
12529         * defaults.h (CONSTANT_ALIGNMENT): Delete.
12530         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
12531         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
12532         * doc/tm.texi: Regenerate.
12533         * targhooks.h (default_constant_alignment): Declare.
12534         (constant_alignment_word_strings): Likewise.
12535         * targhooks.c (default_constant_alignment): New function.
12536         (constant_alignment_word_strings): Likewise.
12537         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
12538         instead of CONSTANT_ALIGNMENT.
12539         * varasm.c (align_variable, get_variable_align, build_constant_desc)
12540         (force_const_mem): Likewise.
12541         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
12542         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
12543         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
12544         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12545         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
12546         definition.
12547         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
12548         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12549         constant_alignment_word_strings.
12550         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
12551         (CONSTANT_ALIGNMENT): Likewise.
12552         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12553         (arm_constant_alignment): New function.
12554         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
12555         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12556         constant_alignment_word_strings.
12557         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
12558         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12559         constant_alignment_word_strings.
12560         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
12561         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12562         (cris_constant_alignment): New function.
12563         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
12564         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12565         (epiphany_constant_alignment): New function.
12566         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
12567         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12568         constant_alignment_word_strings.
12569         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
12570         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12571         constant_alignment_word_strings.
12572         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
12573         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12574         constant_alignment_word_strings.
12575         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
12576         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
12577         * config/i386/i386.c (ix86_constant_alignment): Make static.
12578         Use the same interface as the target hook.
12579         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12580         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
12581         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12582         constant_alignment_word_strings.
12583         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
12584         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
12585         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12586         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
12587         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12588         constant_alignment_word_strings.
12589         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
12590         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12591         constant_alignment_word_strings.
12592         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
12593         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12594         constant_alignment_word_strings.
12595         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
12596         * config/microblaze/microblaze.c (microblaze_constant_alignment):
12597         New function.
12598         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12599         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
12600         * config/mips/mips.c (mips_constant_alignment): New function.
12601         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12602         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
12603         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
12604         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12605         (mmix_constant_alignment): Make static.  Use the same interface
12606         as the target hook.
12607         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
12608         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12609         constant_alignment_word_strings.
12610         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
12611         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12612         constant_alignment_word_strings.
12613         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
12614         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12615         constant_alignment_word_strings.
12616         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
12617         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12618         (rs6000_constant_alignment): New function.
12619         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
12620         * config/riscv/riscv.c (riscv_constant_alignment): New function.
12621         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12622         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
12623         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12624         (rs6000_constant_alignment): New function.
12625         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
12626         * config/s390/s390.c (s390_constant_alignment): New function.
12627         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12628         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
12629         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12630         constant_alignment_word_strings.
12631         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
12632         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12633         (sparc_constant_alignment): New function.
12634         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
12635         * config/spu/spu.c (spu_constant_alignment): New function.
12636         (TARGET_CONSTANT_ALIGNMENT): Redefine.
12637         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
12638         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12639         constant_alignment_word_strings.
12640         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
12641         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12642         constant_alignment_word_strings.
12643         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
12644         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
12645         constant_alignment_word_strings.
12646         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
12647         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12648         (visium_constant_alignment): New function.
12649         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
12650         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
12651         (xtensa_constant_alignment): New function.
12652         * system.h (CONSTANT_ALIGNMENT): Poison.
12653
12654 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
12655
12656         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
12657         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
12658         (rs6000_builtin_valid_without_lhs): New helper function.
12659         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12660         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
12661
12662 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
12663
12664         * target.h (vec_perm_indices): Use unsigned short rather than
12665         unsigned char.
12666         (auto_vec_perm_indices): Likewise.
12667         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
12668         Use unsigned int rather than unsigned char.
12669         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
12670
12671 2017-09-25  Richard Biener  <rguenther@suse.de>
12672
12673         * cfgloop.h (sort_sibling_loops): Declare.
12674         * cfgloop.c (sort_sibling_loops_cmp): New helper.
12675         (sort_sibling_loops): New function sorting the sibling loop list
12676         in RPO order.
12677         * graphite.c (graphite_transform_loops): Sort sibling loops.
12678
12679 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
12680
12681         * target.def (vec_perm_const_ok): Change sel parameter to
12682         vec_perm_indices.
12683         * optabs-query.c (can_vec_perm_p): Update accordingly.
12684         * doc/tm.texi: Regenerate.
12685         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
12686         auto_vec_perm_indices and remove separate nelt field.
12687         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
12688         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
12689         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
12690         (aarch64_expand_vec_perm_const): Update accordingly.
12691         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
12692         to vec_perm_indices.
12693         * config/arm/arm.c (expand_vec_perm_d): Change perm to
12694         auto_vec_perm_indices and remove separate nelt field.
12695         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
12696         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
12697         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
12698         accordingly.
12699         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
12700         to vec_perm_indices.
12701         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
12702         sel to vec_perm_indices.
12703         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
12704         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
12705         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
12706         Likewise.
12707         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
12708         Likewise.
12709
12710 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
12711
12712         PR debug/82155
12713         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
12714         on the FUNCTION_DECL function context if it has a DIE that is a
12715         declaration.
12716
12717 2017-09-25  Richard Biener  <rguenther@suse.de>
12718
12719         PR tree-optimization/82285
12720         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
12721         enumeral types.
12722
12723 2017-09-25  Tom de Vries  <tom@codesourcery.com>
12724
12725         PR target/80035
12726         PR target/81069
12727         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
12728         noreturn function.
12729
12730 2017-09-25  Richard Biener  <rguenther@suse.de>
12731
12732         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
12733         ISL errors other than isl_error_quota happen.  Dump if the
12734         schedule is the same.
12735         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
12736         errors instead of aborting inside ISL.
12737
12738 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
12739
12740         PR target/80556
12741         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
12742         of libgcc_eh for m64.
12743         * config/i386/darwin64.h: Likewise.
12744
12745 2017-09-25  Richard Biener  <rguenther@suse.de>
12746
12747         PR middle-end/82144
12748         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
12749         attribute for incomplete types nor twice for complete ones.
12750
12751 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
12752
12753         PR target/82267
12754         * config/i386/i386.c (ix86_print_operand_address_as): Encode
12755         %esp as %rsp to avoid 0x67 prefix if there is no index or base
12756         register.
12757
12758 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
12759
12760         PR bootstrap/82306
12761         * config/i386/i386.opt (mprefer-avx256): Use
12762         ix86_target_flags variable.
12763         * config/i386/i386.c (ix86_target_string): Move
12764         -mprefer-avx256 to flag2_opts.
12765
12766 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
12767
12768         PR middle-end/35691
12769         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
12770         and x != -1 | y != -1 into (x & y) != -1.
12771
12772 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
12773
12774         * config.gcc: Add new case statement to set
12775         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
12776         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
12777         s390x-*-linux* case statements.   Added aarch64 to the list of
12778         supported architectures.
12779
12780 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
12781
12782         PR tree-optimization/82289
12783         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
12784         STMT_VINFO_RELEVANT_P.
12785
12786 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
12787             Alan Hayward  <alan.hayward@arm.com>
12788             David Sherwood  <david.sherwood@arm.com>
12789
12790         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
12791         for VR_RANGE only; don't allow VR_ANTI_RANGE.
12792         (extract_range_from_binary_expr_1): Don't call
12793         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
12794
12795 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
12796             Alan Hayward  <alan.hayward@arm.com>
12797             David Sherwood  <david.sherwood@arm.com>
12798
12799         * target.def (preferred_vector_alignment): New hook.
12800         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
12801         hook.
12802         * doc/tm.texi: Regenerate.
12803         * targhooks.h (default_preferred_vector_alignment): Declare.
12804         * targhooks.c (default_preferred_vector_alignment): New function.
12805         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
12806         Expand commentary.
12807         (DR_TARGET_ALIGNMENT): New macro.
12808         (aligned_access_p): Update commentary.
12809         (vect_known_alignment_in_bytes): New function.
12810         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
12811         function.
12812         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
12813         Calculate the misalignment based on the target alignment rather than
12814         the vector size.
12815         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
12816         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
12817         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
12818         the target alignment, rather than masking the element misalignment
12819         with the number of elements in a vector.  Also use the target
12820         alignment when calculating the maximum number of peels.
12821         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
12822         instead of TYPE_ALIGN_UNIT.
12823         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
12824         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
12825         (vect_create_addr_base_for_vector_ref): Update call accordingly.
12826         (vect_create_data_ref_ptr): Likewise.
12827         (vect_setup_realignment): Realign by ANDing with
12828         -DR_TARGET_MISALIGNMENT.
12829         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
12830         the number of peels based on DR_TARGET_ALIGNMENT.
12831         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
12832         with the guaranteed alignment boundary when deciding whether
12833         overrun is OK.
12834         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
12835         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
12836         (ensure_base_align): Remove stmt_info parameter.  Get the
12837         target base alignment from DR_TARGET_ALIGNMENT.
12838         (vectorizable_store): Update call accordingly.   Interpret
12839         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
12840         TYPE_ALIGN_UNIT.
12841         (vectorizable_load): Likewise.
12842
12843 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
12844             Alan Hayward  <alan.hayward@arm.com>
12845             David Sherwood  <david.sherwood@arm.com>
12846
12847         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
12848         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
12849         (vect_enhance_data_refs_alignment): Likewise.
12850
12851 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
12852
12853         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
12854         error.  Only quit immediately if parsing is complete.
12855         (BEGIN): Initialize fatal_err and parse_done.
12856         (begin fpu, end fpu): Check number of arguments.
12857         (begin arch, end arch): Likewise.
12858         (begin cpu, end cpu): Likewise.
12859         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
12860         (optalias): Likewise.
12861
12862 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
12863
12864         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
12865         * config/arm/arm-isa.h: Delete.  Move definitions to ...
12866         * arm-cpus.in: ... here.  Use new feature and fgroup values.
12867         * config/arm/arm.c (arm_option_override): Use lower case for feature
12868         bit names.
12869         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
12870         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
12871         * config/arm/parsecpu.awk (END): Add new command 'isa'.
12872         (isa_pfx): Delete.
12873         (print_isa_bits_for): New function.
12874         (gen_isa): New function.
12875         (gen_comm_data): Use print_isa_bits_for.
12876         (define feature): New keyword.
12877         (define fgroup): New keyword.
12878         * config/arm/t-arm (TM_H): Remove.
12879         (GTM_H): Add arm-isa.h.
12880         (arm-isa.h): Add rule to generate file.
12881         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
12882         case for feature bit names.
12883
12884 2017-09-22  Richard Biener  <rguenther@suse.de>
12885
12886         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
12887         single caller.
12888         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
12889         print of no dependency loops ...
12890         * graphite.c (graphite_transform_loops): ... here.
12891         (canonicalize_loop_closed_ssa_form): Work from inner to outer
12892         loops.
12893         (same_close_phi_node, remove_duplicate_close_phi,
12894         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
12895         (canonicalize_loop_closed_ssa): ... here and simplify.
12896         * graphite-optimize-isl.c: Include tree-vectorizer.h.
12897         (optimize_isl): Use dump_printf_loc to tell when we stopped
12898         optimizing because of an ISL timeout.
12899
12900 2017-09-22  Richard Biener  <rguenther@suse.de>
12901
12902         PR tree-optimization/82291
12903         * tree-if-conv.c (predicate_mem_writes): Make sure to
12904         remove writes in blocks predicated with false.
12905
12906 2017-09-22  Richard Biener  <rguenther@suse.de>
12907
12908         * sese.c: Include cfganal.h.
12909         (if_region_set_false_region): Remove.
12910         (create_if_region_on_edge): Likewise.
12911         (move_sese_in_condition): Re-implement without destroying
12912         dominators.
12913
12914 2017-09-22  Richard Biener  <rguenther@suse.de>
12915
12916         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
12917         Verify both BBs contain loop PHI nodes before dispatching to
12918         copy_loop_phi_args.
12919         (graphite_regenerate_ast_isl): Do not recompute dominators,
12920         do not verify three times.  Restructure for clarity.
12921         * graphite-scop-detection.c (same_close_phi_node,
12922         remove_duplicate_close_phi, make_close_phi_nodes_unique,
12923         defined_in_loop_p, canonicalize_loop_closed_ssa,
12924         canonicalize_loop_closed_ssa_form): Simplify, remove excess
12925         checking and SSA rewrite, move to ...
12926         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
12927         (graphite_initialize): Do not pass in ctx, do not reset the
12928         SCEV cache, compute only dominators.
12929         (graphite_transform_loops): Allocate ISL ctx after
12930         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
12931         Maintain post-dominators only around build_scops.
12932         * sese.c (if_region_set_false_region): Make static.  Free
12933         and recompute dominators.
12934         (move_sese_in_condition): Assert we don't get called with
12935         post-dominators computed.
12936         * sese.h (if_region_set_false_region): Remove.
12937
12938 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
12939
12940         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
12941         mode attribute for TARGET_AVX512VL.
12942
12943 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
12944
12945         * config/i386/i386.opt (mprefer-avx256): New option.
12946         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
12947         to flag_opts.
12948         (ix86_preferred_simd_mode): Return 256-bit AVX modes
12949         for TARGET_PREFER_AVX256.
12950         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
12951
12952 2017-09-21  Jeff Law  <law@redhat.com>
12953
12954         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
12955         Fix dump output if the only stack space is for pushed registers.
12956
12957 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
12958
12959         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
12960         of insn_cost.
12961
12962 2017-09-21  Martin Sebor  <msebor@redhat.com>
12963
12964         PR c/81882
12965         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
12966         code (in C++) or code that triggers warnings.
12967
12968 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
12969
12970         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
12971
12972 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
12973
12974         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
12975         * sched-rgn.c: Ditto.
12976         * sel-sched-ir.c: Ditto.
12977
12978 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
12979
12980         * toplev.h (set_random_seed): Adjust return type.
12981         * toplev.c (init_local_tick): Move eager initialization of random_seed
12982         to get_random_seed.  Adjust comment.
12983         (init_random_seed): Inline to get_random_seed, delete.
12984         (get_random_seed): Initialize random_seed lazily.
12985         (set_random_seed): Do not return previous value.
12986         (print_switch_value): Do not call get_random_seed.
12987
12988 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
12989
12990         * cgraph.c (delete_function_version): New, broken out from...
12991         (cgraph_node::delete_function_version): ...here.  Rename to
12992         cgraph_node::delete_function_version_by_decl.  Update all uses.
12993         (cgraph_node::remove): Call delete_function_version.
12994
12995 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
12996
12997         PR sanitizer/81715
12998         * tree-inline.c (expand_call_inline): Emit clobber stmts for
12999         VAR_DECLs to which addressable non-volatile parameters are mapped
13000         and for id->retvar after the return value assignment.  Clear
13001         id->retval and id->retbnd after inlining.
13002
13003 2017-09-21  Richard Biener  <rguenther@suse.de>
13004
13005         PR tree-optimization/82276
13006         PR tree-optimization/82244
13007         * tree-vrp.c (build_assert_expr_for): Set
13008         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
13009         has it set.
13010         (remove_range_assertions): Revert earlier change.
13011
13012 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
13013
13014         PR target/71951
13015         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
13016
13017 2017-09-21  Richard Biener  <rguenther@suse.de>
13018
13019         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
13020         Restore valid IL after code generation errors.
13021         * graphite.c (graphite_transform_loops): Diagnose code
13022         generation issues as MSG_MISSED_OPTIMIZATION and continue
13023         with processing SCOPs.
13024
13025 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13026             Alan Hayward  <alan.hayward@arm.com>
13027             David Sherwood  <david.sherwood@arm.com>
13028
13029         * calls.c (compute_argument_addresses): Use simplify_gen_binary
13030         rather than choosing between plus_constant and gen_rtx_<CODE>.
13031         * expr.c (emit_push_insn): Likewise.
13032         (expand_expr_real_2): Likewise.
13033
13034 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13035             Alan Hayward  <alan.hayward@arm.com>
13036             David Sherwood  <david.sherwood@arm.com>
13037
13038         * loop-unroll.c (split_iv): Call copy_rtx on the step.
13039
13040 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13041             Alan Hayward  <alan.hayward@arm.com>
13042             David Sherwood  <david.sherwood@arm.com>
13043
13044         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
13045         calling tree_to_uhwi.
13046
13047 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13048             Alan Hayward  <alan.hayward@arm.com>
13049             David Sherwood  <david.sherwood@arm.com>
13050
13051         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
13052         INTEGER_CST rather than a negative test for ADDR_EXPR.
13053
13054 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13055             Alan Hayward  <alan.hayward@arm.com>
13056             David Sherwood  <david.sherwood@arm.com>
13057
13058         * tree-vrp.c (extract_range_from_binary_expr_1): Check
13059         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
13060
13061 2017-09-21  Richard Biener  <rguenther@suse.de>
13062
13063         PR tree-optimization/71351
13064         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
13065         graphite_create_new_loop_guard): Remove, fold remaining parts
13066         into caller ...
13067         (translate_isl_ast_node_for): ... here and simplify.
13068
13069 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
13070
13071         PR target/82260
13072         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
13073         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
13074         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
13075         alternative always use QI mode, for -Os imov (=R,R) alternative
13076         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
13077         ignore -Os.
13078
13079 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13080             Jeff Law  <law@redhat.com>
13081
13082         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
13083         (allocate_stack_space): New function, partially extracted from
13084         s390_emit_prologue.
13085         (s390_emit_prologue): Track offset to most recent stack probe.
13086         Code to allocate space moved into allocate_stack_space.
13087         Dump actions when no stack is allocated.
13088         (s390_prologue_plus_offset): New function.
13089         (s390_emit_stack_probe): Likewise.
13090
13091 2017-09-20  Alexandre Oliva  <aoliva@redhat.com>
13092
13093         * common.opt (Wa, Wl, Wp, g, gz=): Add
13094         RejectNegative.
13095         (gno-column-info): Remove.
13096         (gcolumn-info): Drop RejectNegative.
13097         (gno-): New prefix.
13098         (gno-record-gcc-switches): Remove.
13099         (grecord-gcc-switches): Drop RejectNegative.
13100         (gno-split-dwarf): Remove.
13101         (gsplit-dwarf): Drop RejectNegative.
13102         (gno-strict-dwarf): Remove.
13103         (gstrict-dwarf): Drop RejectNegative.
13104         * config/darwin.opt (gfull, gused): Add RejectNegative.
13105         * dwarf2out.c (gen_producer_string): Drop
13106         gno-record-gcc-switches handler.
13107         * optc-gen.awk: Add g to prefixes with negative forms.
13108         * opts-common.c (remapping_prefix_p): New.
13109         (find_opt): Check it.
13110         (generate_canonical_option): Test g prefix.
13111         (option_map): Add -gno- mapping.
13112         (add_misspelling_candidates): Check remapping_prefix_p.
13113
13114 2017-09-20  Jeff Law  <law@redhat.com>
13115
13116         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
13117         thinko in stack clash protection support.
13118
13119         * explow.c (compute_stack_clash_protection_loop_data): Use
13120         CONST_INT_P instead of explicit test.  Verify object is a
13121         CONST_INT_P before looking at INTVAL.
13122         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
13123         instead of explicit test.
13124
13125 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
13126
13127         PR target/77687
13128         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
13129         address instead of to r1 and r11.
13130
13131 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
13132
13133         * config.gcc: Support "knm".
13134         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
13135         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13136         PROCESSOR_KNM.
13137         * config/i386/i386.c (m_KNM): Define.
13138         (processor_target_table): Add "knm".
13139         (PTA_KNM): Define.
13140         (ix86_option_override_internal): Add "knm".
13141         (ix86_issue_rate): Add PROCESSOR_KNM.
13142         (ix86_adjust_cost): Ditto.
13143         (ia32_multipass_dfa_lookahead): Ditto.
13144         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
13145         (fold_builtin_cpu): Add M_INTEL_KNM.
13146         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
13147         (processor_type): Add PROCESSOR_KNM.
13148         * config/i386/x86-tune.def: Add m_KNM.
13149         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
13150
13151 2017-09-20  Richard Biener  <rguenther@suse.de>
13152
13153         PR tree-optimization/80213
13154         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
13155         are allowed in empty BBs as well.
13156         (canonicalize_loop_closed_ssa): Also look for other complex
13157         edges.
13158         (scop_detection::get_sese): Include the loop-closed PHI block
13159         in loop SESEs.
13160         (scop_detection::merge_sese): Remove code adding extra blocks.
13161         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
13162         (build_scops): Assert the final returned scop is invalid.
13163
13164 2017-09-20  Richard Biener  <rguenther@suse.de>
13165
13166         PR tree-optimization/82264
13167         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
13168         for GIMPLE_CONDs.
13169         (vn_phi_lookup): Likewise.
13170         (vn_phi_insert): Likewise.
13171
13172 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
13173
13174         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
13175         that fits into uhwi or shwi, add DW_AT_const_value regardless
13176         of early_dwarf without going through RTL, using add_AT_unsigned
13177         or add_AT_int.
13178
13179         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
13180         (DEBUG_LTO_ABBREV_SECTION): Likewise.
13181         (DEBUG_LTO_MACINFO_SECTION): Likewise.
13182         (DEBUG_MACRO_SECTION): Likewise.
13183         (DEBUG_LTO_MACRO_SECTION): Likewise.
13184         (DEBUG_STR_DWO_SECTION): Likewise.
13185         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
13186         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
13187         (DEBUG_LTO_DWO_LINE_SECTION): Define.
13188         (DEBUG_LTO_LINE_STR_SECTION): Define.
13189         (init_sections_and_labels): Initialize debug_line_str_section
13190         variable.  Initialize debug_loc_section for -gdwarf-5 to
13191         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
13192
13193 2017-09-20  Richard Biener  <rguenther@suse.de>
13194
13195         * graphite-sese-to-poly.c (extract_affine): Properly handle
13196         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
13197
13198 2017-09-20  Richard Biener  <rguenther@suse.de>
13199
13200         PR tree-optimization/81373
13201         * graphite-scop-detection.c (build_cross_bb_scalars_def):
13202         Force SESE live-out defs to be handled even if they are
13203         scev_analyzable_p.
13204
13205 2017-09-19  Jeff Law  <law@redhat.com>
13206
13207         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
13208         nothing for stack adjustments with REG_STACK_CHECK.
13209         * sched-deps.c (parse_add_or_inc): Reject insns with
13210         REG_STACK_CHECK from dependency breaking.
13211         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
13212         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
13213         * reg-notes.def (STACK_CHECK): New note.
13214
13215         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
13216         (ix86_expand_prologue): Dump stack clash info as needed.
13217         Call ix86_adjust_stack_and_probe_stack_clash as needed.
13218
13219         * function.c (dump_stack_clash_frame_info): New function.
13220         * function.h (dump_stack_clash_frame_info): Prototype.
13221         (enum stack_clash_probes): New enum.
13222
13223         * config/alpha/alpha.c (alpha_expand_prologue): Also check
13224         flag_stack_clash_protection.
13225         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
13226         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
13227         (arm_frame_pointer_required): Likewise.
13228         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
13229         (ia64_expand_prologue): Likewise.
13230         * config/mips/mips.c (mips_expand_prologue): Likewise.
13231         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
13232         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13233         (sparc_flat_expand_prologue): Likewise.
13234         * config/spu/spu.c (spu_expand_prologue): Likewise.
13235
13236         * explow.c: Include "params.h".
13237         (anti_adjust_stack_and_probe_stack_clash): New function.
13238         (get_stack_check_protect): Likewise.
13239         (compute_stack_clash_protection_loop_data): Likewise.
13240         (emit_stack_clash_protection_loop_start): Likewise.
13241         (emit_stack_clash_protection_loop_end): Likewise.
13242         (allocate_dynamic_stack_space): Use get_stack_check_protect.
13243         Use anti_adjust_stack_and_probe_stack_clash.
13244         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
13245         (emit_stack_clash_protection_loop_start): Likewise.
13246         (emit_stack_clash_protection_loop_end): Likewise.
13247         * rtl.h (get_stack_check_protect): Prototype.
13248         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
13249         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
13250         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
13251         Prototype.
13252         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
13253         Add @hook.
13254         * doc/tm.texi: Rebuilt.
13255         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
13256         get_stack_check_protect.
13257         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
13258         * config/arm/arm.c (arm_expand_prologue): Likewise.
13259         (arm_frame_pointer_required): Likewise.
13260         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13261         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13262         * config/mips/mips.c (mips_expand_prologue): Likewise.
13263         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
13264         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13265         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13266         (sparc_flat_expand_prologue): Likewise.
13267
13268         * common.opt (-fstack-clash-protection): New option.
13269         * flag-types.h (enum stack_check_type): Note difference between
13270         -fstack-check= and -fstack-clash-protection.
13271         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
13272         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
13273         * toplev.c (process_options): Issue warnings/errors for cases
13274         not handled with -fstack-clash-protection.
13275         * doc/invoke.texi (-fstack-clash-protection): Document new option.
13276         (-fstack-check): Note additional problem with -fstack-check=generic.
13277         Note that -fstack-check is primarily for Ada and refer users
13278         to -fstack-clash-protection for stack-clash-protection.
13279         Document new params for stack clash protection.
13280
13281 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
13282
13283         * config/i386/i386.c (ix86_split_long_move): Do not handle
13284         address used for LEA in a special way.
13285
13286 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
13287
13288         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
13289
13290 2017-09-19  Martin Sebor  <msebor@redhat.com>
13291
13292         PR c/81854
13293         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
13294         of incompatible types.
13295
13296 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
13297
13298         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
13299         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
13300         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13301         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
13302
13303 2017-09-19  Richard Biener  <rguenther@suse.de>
13304
13305         PR tree-optimization/82244
13306         * tree-vrp.c (remove_range_assertions): Do not propagate
13307         a constant to abnormals but replace the assert with a copy.
13308
13309 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
13310
13311         PR rtl-optimization/57878
13312         PR rtl-optimization/68988
13313         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
13314         avoidance test involving non_reload_pseudos.  Move frequency test
13315         below the general fragmentation avoidance test.
13316
13317 2017-09-19  Richard Biener  <rguenther@suse.de>
13318
13319         PR tree-optimization/69728
13320         * graphite-sese-to-poly.c (schedule_error): New global.
13321         (add_loop_schedule): Handle empty domain by failing the
13322         schedule.
13323         (build_original_schedule): Handle schedule_error.
13324
13325 2017-09-19  Richard Biener  <rguenther@suse.de>
13326
13327         * graphite-scop-detection.c (scop_detection::can_represent_loop):
13328         Do not iterate to sibling loops but only to siblings of inner
13329         loops.
13330
13331 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
13332
13333         PR target/81613
13334         * config/m68k/m68k.md (moveq feeding equality comparison): Check
13335         that the registers are different.
13336
13337 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
13338
13339         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
13340         to processor_model and "amdfam17h" to arch_names_table.
13341         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
13342
13343 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
13344
13345         PR c/82234
13346         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
13347
13348 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13349             Alan Hayward  <alan.hayward@arm.com>
13350             David Sherwood  <david.sherwood@arm.com>
13351
13352         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
13353         with a vec_info *.
13354         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
13355         accordingly.
13356         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
13357         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
13358         vect_schedule_slp_instance.
13359         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
13360         Update call to vect_slp_analyze_node_operations.  Simplify return
13361         value.
13362         (vect_slp_analyze_bb_1): Update call accordingly.
13363         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
13364         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
13365         (vect_schedule_slp): Update call accordingly.
13366
13367 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13368             Alan Hayward  <alan.hayward@arm.com>
13369             David Sherwood  <david.sherwood@arm.com>
13370
13371         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
13372         with types that aren't in fact scalar.
13373
13374 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13375
13376         * tree-vect-slp.c (vect_record_max_nunits): New function,
13377         split out from...
13378         (vect_build_slp_tree_1): ...here.
13379         (vect_build_slp_tree_2): Call it for phis too.
13380
13381 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13382
13383         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
13384         to vect_get_vec_def_for_operand when getting the mask operand.
13385
13386 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13387             Alan Hayward  <alan.hayward@arm.com>
13388             David Sherwood  <david.sherwood@arm.com>
13389
13390         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
13391         bitstart.
13392
13393 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13394             Alan Hayward  <alan.hayward@arm.com>
13395             David Sherwood  <david.sherwood@arm.com>
13396
13397         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
13398         calculation for vector booleans.
13399
13400 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
13401             Alan Hayward  <alan.hayward@arm.com>
13402             David Sherwood  <david.sherwood@arm.com>
13403
13404         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
13405         split out from...
13406         (vect_transform_stmt): ...here.
13407         (vect_analyze_stmt): Use it instead of calling
13408         vectorizable_live_operation directly.
13409
13410 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
13411
13412         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
13413         non-SIMT targets in acc vector loops.
13414
13415 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
13416
13417         * configure.ac: Add arc and check if assembler supports gdwarf2.
13418         * configure: Regenerate.
13419
13420 2017-09-18  Richard Biener  <rguenther@suse.de>
13421
13422         PR tree-optimization/82220
13423         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
13424         epilogue niters from the min_profitable_iters compute.
13425
13426 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
13427
13428         PR target/82145
13429         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
13430         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
13431         (ix86_init_pic_reg): Revert 2017-09-01 changes.
13432
13433 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
13434
13435         PR target/81361
13436         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
13437         switching to a new text section.
13438
13439 2017-09-18  Richard Biener  <rguenther@suse.de>
13440
13441         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
13442         Simplify.
13443         (build_alias_set): Reject aliases with no access function.
13444
13445 2017-09-18  Richard Biener  <rguenther@suse.de>
13446
13447         PR tree-optimization/79622
13448         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
13449         handle PHIs.
13450         (build_cross_bb_scalars_use): Likewise.
13451
13452 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
13453
13454         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
13455
13456 2017-09-18  Alan Modra  <amodra@gmail.com>
13457
13458         PR target/81996
13459         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
13460         stack_pointer_rtx for count 0.  Update comments.  Break up
13461         large rtl expression.
13462
13463 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
13464
13465         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
13466         Increase to 20 bytes.
13467         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
13468         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
13469         or avx version of the stub.
13470
13471 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13472
13473         PR target/82166
13474         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
13475         compute the minimum stack alignment.  Also update preferred stack
13476         boundary for leaf functions.
13477
13478 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
13479
13480         PR tree-optimization/82228
13481         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
13482         of ncopies.
13483
13484 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
13485
13486         * common/config/nds32/nds32-common.c
13487         (nds32_option_optimization_table): Refine formatting.
13488         (nds32_option_optimization_table): Use -fsched-pressure and
13489         -fomit-frame-pointer for specific optimization level.
13490
13491 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
13492
13493         * config/nds32/nds32.c: Refine formatting and comments.
13494         * config/nds32/nds32.h: Likewise.
13495         * config/nds32/nds32.md: Likewise.
13496         * config/nds32/nds32-cost.c: Likewise.
13497         * config/nds32/nds32-isr.c: Likewise.
13498         * config/nds32/nds32-md-auxiliary.c: Likewise.
13499         * config/nds32/nds32-multiple.md: Likewise.
13500         * config/nds32/nds32-predicates.c: Likewise.
13501
13502 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
13503             Jakub Jelinek  <jakub@redhat.com>
13504
13505         Add support for -std=c++2a.
13506         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
13507         or -std=gnu+2a.
13508         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
13509
13510 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
13511
13512         PR target/82066
13513         * doc/extend.texi (Common Function Attributes): Add 
13514         references to ARM, AArch64, and S/390 specific attributes.
13515         (Function Specific Option Pragmas): Add AArch64 and S/390
13516         to list of back ends that support the target pragma.
13517
13518 2017-09-15  Nathan Sidwell  <nathan@acm.org>
13519
13520         * doc/standards.texi: Fix C++17 description.  Update URLs for
13521         C++11 & 14.
13522
13523 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13524
13525         * common.opt (Wcast-align=strict): New warning option.
13526         * doc/invoke.texi: Document -Wcast-align=strict. 
13527
13528 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
13529
13530         * cgraph.h (cgraph_thunk_info): Add comments.
13531         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
13532         assert for VIRTUAL_* arguments stricter.
13533
13534 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
13535
13536         PR tree-optimization/71026
13537         * match.pd: Move RDIV patterns from fold-const.c
13538         * fold-const.c (distribute_real_division): Removed.
13539         (fold_binary_loc): Remove calls to distribute_real_divison.
13540
13541 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
13542
13543         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
13544         c++1z and gnu++1z as deprecated.  Change other references to
13545         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
13546         Change -Wc++1z-compat to -Wc++17-compat.
13547         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
13548         * dwarf2out.c (highest_c_language): Handle C++17.
13549         (gen_compile_unit_die): Likewise.
13550
13551 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
13552
13553         PR rtl-optimization/82192
13554         * combine.c (make_extraction): Don't look through non-paradoxical
13555         SUBREGs or TRUNCATE if pos + len is or might be bigger than
13556         inner's mode.
13557
13558 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
13559             Alan Hayward  <alan.hayward@arm.com>
13560             David Sherwood  <david.sherwood@arm.com>
13561
13562         * target.def (function_arg_offset): New hook.
13563         * targhooks.h (default_function_arg_offset): Declare.
13564         * targhooks.c (default_function_arg_offset): New function.
13565         * function.c (locate_and_pad_parm): Use
13566         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
13567         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
13568         (TARGET_FUNCTION_ARG_OFFSET): ...this.
13569         * doc/tm.texi: Regenerate.
13570         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
13571         * config/spu/spu.c (spu_function_arg_offset): New function.
13572         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
13573         * system.h (FUNCTION_ARG_OFFSET): Poison.
13574
13575 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
13576             Alan Hayard  <alan.hayward@arm.com>
13577             David Sherwood  <david.sherwood@arm.com>
13578
13579         * target.def (truly_noop_truncation): New hook.
13580         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
13581         than TRULY_NOOP_TRUNCATION.
13582         * hooks.h (hook_bool_uint_uint_true): Declare.
13583         * hooks.c (hook_bool_uint_uint_true): New function.
13584         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
13585         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
13586         * doc/tm.texi: Regenerate.
13587         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
13588         rather than TRULY_NOOP_TRUNCATION in comments.
13589         (simplify_comparison): Likewise.
13590         (record_truncated_value): Likewise.
13591         * expmed.c (extract_bit_field_1): Likewise.
13592         (extract_split_bit_field): Likewise.
13593         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
13594         instead of TRULY_NOOP_TRUNCATION.
13595         * function.c (assign_parm_setup_block): Likewise.
13596         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
13597         * rtlhooks.c: Include target.h.
13598         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
13599         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
13600         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
13601         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
13602         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
13603         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
13604         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
13605         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
13606         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
13607         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
13608         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
13609         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
13610         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
13611         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
13612         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
13613         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
13614         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
13615         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
13616         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
13617         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
13618         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
13619         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
13620         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
13621         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
13622         * config/mips/mips.c (mips_truly_noop_truncation): New function.
13623         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
13624         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
13625         rather than TRULY_NOOP_TRUNCATION in comments.
13626         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
13627         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
13628         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
13629         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
13630         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
13631         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
13632         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
13633         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
13634         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
13635         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
13636         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
13637         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
13638         rather than TRULY_NOOP_TRUNCATION in comments.
13639         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
13640         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
13641         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
13642         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
13643         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
13644         TRULY_NOOP_TRUNCATION condition.
13645         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
13646         (TRULY_NOOP_TRUNCATION): Delete.
13647         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
13648         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
13649         * config/spu/spu.c (spu_truly_noop_truncation): New function.
13650         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
13651         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
13652         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
13653         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
13654         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
13655         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
13656         rather than TRULY_NOOP_TRUNCATION in comments.
13657         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
13658         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
13659         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
13660         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
13661         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
13662         * system.h (TRULY_NOOP_TRUNCATION): Poison.
13663
13664 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
13665
13666         PR target/67591
13667         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
13668         (*cmp_ior): Likewise.
13669         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
13670         (*ior_scc_scc_cmp): Likewise.
13671         (*and_scc_scc): Likewise.
13672         (*and_scc_scc_cmp): Likewise.
13673
13674 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
13675             Alan Hayard  <alan.hayward@arm.com>
13676             David Sherwood  <david.sherwood@arm.com>
13677
13678         * target.def (can_change_mode_class): New hook.
13679         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
13680         (hard_regno_nregs): Likewise.
13681         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
13682         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
13683         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
13684         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
13685         (LOAD_EXTEND_OP): Update accordingly.
13686         * doc/tm.texi: Regenerate.
13687         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
13688         CANNOT_CHANGE_MODE_CLASS.
13689         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
13690         (REG_CAN_CHANGE_MODE_P): ...this new macro.
13691         * combine.c (simplify_set): Update accordingly.
13692         * emit-rtl.c (validate_subreg): Likewise.
13693         * recog.c (general_operand): Likewise.
13694         * regcprop.c (mode_change_ok): Likewise.
13695         * reload1.c (choose_reload_regs): Likewise.
13696         (inherit_piecemeal_p): Likewise.
13697         * rtlanal.c (simplify_subreg_regno): Likewise.
13698         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
13699         instead of CANNOT_CHANGE_MODE_CLASS.
13700         (reload_cse_simplify_operands): Likewise.
13701         * reload.c (push_reload): Use targetm.can_change_mode_class
13702         instead of CANNOT_CHANGE_MODE_CLASS.
13703         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
13704         REG_CANNOT_CHANGE_MODE_P.
13705         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13706         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
13707         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13708         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13709         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13710         (arm_can_change_mode_class): New function.
13711         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
13712         than CANNOT_CHANGE_MODE_CLASS in comments.
13713         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13714         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
13715         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
13716         (ix86_can_change_mode_class): ...this new function, inverting the
13717         sense of the return value.
13718         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13719         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13720         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13721         (ia64_can_change_mode_class): New function.
13722         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13723         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
13724         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
13725         (m32c_can_change_mode_class): ...this new function, inverting the
13726         sense of the return value.
13727         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13728         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13729         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
13730         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
13731         (mips_can_change_mode_class): ...this new function, inverting the
13732         sense of the return value.
13733         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13734         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13735         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13736         (msp430_can_change_mode_class): New function.
13737         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13738         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
13739         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13740         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13741         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13742         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
13743         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13744         (pa_cannot_change_mode_class): Replace with...
13745         (pa_can_change_mode_class): ...this new function, inverting the
13746         sense of the return value.
13747         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
13748         than CANNOT_CHANGE_MODE_CLASS in comments.
13749         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13750         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
13751         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13752         (pdp11_cannot_change_mode_class): Replace with...
13753         (pdp11_can_change_mode_class): ...this new function, inverting the
13754         sense of the return value.
13755         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13756         * config/powerpcspe/powerpcspe-protos.h
13757         (rs6000_cannot_change_mode_class_ptr): Delete.
13758         * config/powerpcspe/powerpcspe.c
13759         (rs6000_cannot_change_mode_class_ptr): Delete.
13760         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13761         (rs6000_option_override_internal): Assign to
13762         targetm.can_change_mode_class instead of
13763         rs6000_cannot_change_mode_class_ptr.
13764         (rs6000_cannot_change_mode_class): Replace with...
13765         (rs6000_can_change_mode_class): ...this new function, inverting the
13766         sense of the return value.
13767         (rs6000_debug_cannot_change_mode_class): Replace with...
13768         (rs6000_debug_can_change_mode_class): ...this new function.
13769         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13770         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
13771         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13772         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13773         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
13774         Delete.
13775         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
13776         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13777         (rs6000_option_override_internal): Assign to
13778         targetm.can_change_mode_class instead of
13779         rs6000_cannot_change_mode_class_ptr.
13780         (rs6000_cannot_change_mode_class): Replace with...
13781         (rs6000_can_change_mode_class): ...this new function, inverting the
13782         sense of the return value.
13783         (rs6000_debug_cannot_change_mode_class): Replace with...
13784         (rs6000_debug_can_change_mode_class): ...this new function.
13785         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13786         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
13787         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
13788         (s390_can_change_mode_class): ...this new function, inverting the
13789         sense of the return value.
13790         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13791         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13792         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
13793         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13794         (sh_cannot_change_mode_class): Replace with...
13795         (sh_can_change_mode_class): ...this new function, inverting the
13796         sense of the return value.
13797         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13798         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13799         (sparc_can_change_mode_class): New function.
13800         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13801         * config/spu/spu.c (spu_can_change_mode_class): New function.
13802         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13803         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
13804         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
13805         (visium_can_change_mode_class): New function.
13806         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
13807
13808 2017-09-15  Richard Biener  <rguenther@suse.de>
13809
13810         PR tree-optimization/82217
13811         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
13812         but not undefined case.
13813
13814 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
13815
13816         PR target/82145
13817         * postreload.c (reload_cse_simplify_operands): Skip
13818         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
13819
13820 2017-09-15  Richard Biener  <rguenther@suse.de>
13821
13822         PR tree-optimization/68823
13823         * graphite-scop-detection.c (build_alias_set): If we have a
13824         possible dependence check whether we can handle them by just
13825         looking at the DRs DR_ACCESS_FNs.
13826         (build_scops): If build_alias_set fails, fail the SCOP.
13827
13828 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
13829
13830         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
13831         to support float128 built-in functions that require the ISA 3.0
13832         hardware.
13833         (BU_FLOAT128_3_HW): Likewise.
13834         (SQRTF128): Add support for the IEEE 128-bit square root and fma
13835         built-in functions.
13836         (FMAF128): Likewise.
13837         (FMAQ): Likewise.
13838         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
13839         support for built-in functions that need the ISA 3.0 IEEE 128-bit
13840         floating point instructions.
13841         (rs6000_invalid_builtin): Likewise.
13842         (rs6000_builtin_mask_names): Likewise.
13843         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
13844         (RS6000_BTM_FLOAT128_HW): Likewise.
13845         (RS6000_BTM_COMMON): Likewise.
13846         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
13847         function.
13848         * doc/extend.texi (RS/6000 built-in functions): Document the
13849         IEEE 128-bit floating point square root and fused multiply-add
13850         built-in functions.
13851
13852 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
13853
13854         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
13855         reg (r2) isn't in the set of registers defined in the prologue.
13856
13857 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13858             Alan Hayward  <alan.hayward@arm.com>
13859             David Sherwood  <david.sherwood@arm.com>
13860
13861         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
13862         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
13863         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
13864         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
13865         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
13866         accordingly.
13867         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
13868         max_vectorization_factor.
13869         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
13870
13871 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13872             Alan Hayward  <alan.hayward@arm.com>
13873             David Sherwood  <david.sherwood@arm.com>
13874
13875         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
13876         (vect_worthwhile_without_simd_p): Declare.
13877         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
13878         (vectorizable_reduction): Use it.
13879         * tree-vect-stmts.c (vectorizable_shift): Likewise.
13880         (vectorizable_operation): Likewise.
13881
13882 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13883             Alan Hayward  <alan.hayward@arm.com>
13884             David Sherwood  <david.sherwood@arm.com>
13885
13886         * tree-vectorizer.h (vect_get_num_copies): New function.
13887         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
13888         * tree-vect-loop.c (vectorizable_reduction): Likewise.
13889         (vectorizable_induction): Likewise.
13890         (vectorizable_live_operation): Likewise.
13891         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
13892         (vectorizable_bswap): Likewise.
13893         (vectorizable_call): Likewise.
13894         (vectorizable_conversion): Likewise.
13895         (vectorizable_assignment): Likewise.
13896         (vectorizable_shift): Likewise.
13897         (vectorizable_operation): Likewise.
13898         (vectorizable_store): Likewise.
13899         (vectorizable_load): Likewise.
13900         (vectorizable_condition): Likewise.
13901         (vectorizable_comparison): Likewise.
13902         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
13903
13904 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13905             Alan Hayward  <alan.hayward@arm.com>
13906             David Sherwood  <david.sherwood@arm.com>
13907
13908         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
13909         of vect_init_vector.
13910
13911 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13912             Alan Hayward  <alan.hayward@arm.com>
13913             David Sherwood  <david.sherwood@arm.com>
13914
13915         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
13916         an inline wrapper that provides a location.
13917         (gimple_build_vector): Likewise.
13918         * gimple-fold.c (gimple_build_vector_from_val): New function.
13919         (gimple_build_vector): Likewise.
13920         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
13921         functions to build the initial value.  Always return a gimple value.
13922         (get_initial_defs_for_reduction): Likewise.  Only compute
13923         neutral_vec once.
13924         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
13925         vect_init_vector on the results from get_initial_def(s)_for_reduction.
13926         (vectorizable_induction): Use gimple_build_vector rather than
13927         vect_init_vector.
13928
13929 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13930             Alan Hayward  <alan.hayward@arm.com>
13931             David Sherwood  <david.sherwood@arm.com>
13932
13933         * target.h (vec_perm_indices): New typedef.
13934         (auto_vec_perm_indices): Likewise.
13935         * optabs-query.h: Include target.h
13936         (can_vec_perm_p): Take a vec_perm_indices *.
13937         * optabs-query.c (can_vec_perm_p): Likewise.
13938         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
13939         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
13940         * tree-vect-generic.c (lower_vec_perm): Likewise.
13941         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
13942         (vect_grouped_load_supported): Likewise.
13943         (vect_shift_permute_load_chain): Likewise.
13944         (vect_permute_store_chain): Use auto_vec_perm_indices.
13945         (vect_permute_load_chain): Likewise.
13946         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
13947         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
13948         Update uses of can_vec_perm_p.
13949         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
13950         mode with a number of elements.  Take a vec_perm_indices *.
13951         (vect_create_epilog_for_reduction): Update accordingly.
13952         Use auto_vec_perm_indices.
13953         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
13954         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
13955         (vect_transform_slp_perm_load): Likewise.
13956         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
13957         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
13958         (vect_gen_perm_mask_checked): Likewise.
13959         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
13960         (vect_gen_perm_mask_checked): Likewise.
13961         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
13962         (vectorizable_store): Likewise.
13963         (vectorizable_load): Likewise.
13964         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
13965         (vectorizable_bswap): Likewise.
13966
13967 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
13968             Alan Hayward  <alan.hayward@arm.com>
13969             David Sherwood  <david.sherwood@arm.com>
13970
13971         * tree.h (build_vector): Take a vec<tree> instead of a tree *.
13972         * tree.c (build_vector): Likewise.
13973         (build_vector_from_ctor): Update accordingly.
13974         (build_vector_from_val): Likewise.
13975         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
13976         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
13977         * tree-vect-generic.c (add_rshift): Likewise.
13978         (expand_vector_divmod): Likewise.
13979         (optimize_vector_constructor): Likewise.
13980         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
13981         (vect_transform_slp_perm_load): Likewise.
13982         (vect_schedule_slp_instance): Likewise.
13983         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
13984         (vectorizable_call): Likewise.
13985         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
13986         * expmed.c (make_tree): Likewise.
13987         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
13988         a vector passed to build_vector.
13989         (fold_convert_const): Likewise.
13990         (exact_inverse): Likewise.
13991         (fold_ternary_loc): Likewise.
13992         (fold_relational_const): Likewise.
13993         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
13994         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
13995         (const_unop): Likewise.  Store the reduction accumulator in a
13996         variable rather than an array.
13997         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
13998         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
13999         the new vector, rather than constructing it after the input arrays.
14000         (native_interpret_vector): Use auto_vec<tree> when building
14001         a vector passed to build_vector.  Add elements in order.
14002         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
14003         auto_vec<tree> when building a vector passed to build_vector.
14004         (vect_create_epilog_for_reduction): Likewise.
14005         (vectorizable_induction): Likewise.
14006         (get_initial_def_for_reduction): Likewise.  Fix indentation of
14007         case statements.
14008         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
14009         to a vec<tree> *.
14010         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
14011         passed to build_vector.
14012
14013 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14014             Alan Hayward  <alan.hayward@arm.com>
14015             David Sherwood  <david.sherwood@arm.com>
14016
14017         * tree-core.h (tree_base::u): Add an "nelts" field.
14018         (tree_vector): Use VECTOR_CST_NELTS as the length.
14019         * tree.c (tree_size): Likewise.
14020         (make_vector): Initialize VECTOR_CST_NELTS.
14021         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
14022         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
14023         TYPE_VECTOR_SUBPARTS.
14024         * expr.c (const_vector_mask_from_tree): Consistently use "units"
14025         as the number of units, setting it from VECTOR_CST_NELTS.
14026         (const_vector_from_tree): Likewise.
14027         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
14028         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
14029         (fold_negate_expr_1): Likewise.
14030         (fold_convert_const): Likewise.
14031         (const_binop): Likewise.  Differentiate the number of output and
14032         input elements.
14033         (const_unop): Likewise.
14034         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
14035         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
14036         in cases that did the opposite.
14037
14038 2017-09-14  Richard Biener  <rguenther@suse.de>
14039
14040         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
14041         to VN_TOP.
14042
14043 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
14044
14045         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
14046
14047 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
14048
14049         PR target/81325
14050         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
14051         if and where to split a bb, except for splitting before debug insn
14052         sequences followed by non-label real insn.  Delete debug insns
14053         in between basic blocks.
14054
14055         * combine.c (make_compound_operation_int): Formatting fixes.
14056
14057         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
14058         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14059         * config/netbsd.h (LINK_EH_SPEC): Likewise.
14060         * config/sol2.h (LINK_EH_SPEC): Likewise.
14061         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14062         * config/s390/linux.h (LINK_SPEC): Likewise.
14063         * config/freebsd.h (LINK_EH_SPEC): Likewise.
14064         * config/openbsd.h (LINK_EH_SPEC): Likewise.
14065         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14066         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
14067         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
14068         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14069         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
14070         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
14071
14072 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
14073
14074         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
14075         support.
14076         (ENDFILE_LINUX_SPEC): Likewise.
14077         (LINK_EH_SPEC): Likewise.
14078         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
14079         (LINK_OS_LINUX_SPEC32): Likewise.
14080         (LINK_OS_LINUX_SPEC64): Likewise.
14081         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
14082         (LINK_OS_LINUX_SPEC): Likewise.
14083
14084 2017-09-13  Martin Liska  <mliska@suse.cz>
14085
14086         PR middle-end/82154
14087         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
14088         CASE_HIGH is NULL_TREE.
14089
14090 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
14091             Alan Hayward  <alan.hayward@arm.com>
14092             David Sherwood  <david.sherwood@arm.com>
14093
14094         * target.def (secondary_memory_needed): New hook.
14095         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
14096         instead of SECONDARY_MEMORY_NEEDED.
14097         (secondary_memory_needed_mode): Likewise.
14098         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
14099         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
14100         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
14101         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
14102         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
14103         * doc/tm.texi: Regenerate.
14104         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
14105         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
14106         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14107         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
14108         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
14109         * config/i386/i386.c (inline_secondary_memory_needed): Put the
14110         mode argument first and change the reg_class arguments to reg_class_t.
14111         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
14112         Make static.  Update the call to inline_secondary_memory_needed.
14113         (ix86_register_move_cost): Update the call to
14114         inline_secondary_memory_needed.
14115         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14116         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
14117         definition.
14118         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
14119         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
14120         in comment.
14121         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
14122         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
14123         * config/mips/mips.c (mips_secondary_memory_needed): Make static
14124         and match hook interface.  Add comment from mips.h.
14125         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14126         * config/mmix/mmix.md (truncdfsf2): Refer to
14127         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
14128         in comment.
14129         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
14130         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
14131         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14132         (pa_secondary_memory_needed): New function.
14133         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
14134         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
14135         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14136         (pdp11_secondary_memory_needed): Make static and match hook interface.
14137         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
14138         * config/powerpcspe/powerpcspe-protos.h
14139         (rs6000_secondary_memory_needed_ptr): Delete.
14140         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
14141         Delete.
14142         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14143         (rs6000_option_override_internal): Assign to
14144         targetm.secondary_memory_needed rather than
14145         rs6000_secondary_memory_needed_ptr.
14146         (rs6000_secondary_memory_needed): Match hook interface.
14147         (rs6000_debug_secondary_memory_needed): Likewise.
14148         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
14149         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
14150         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
14151         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14152         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
14153         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
14154         Delete.
14155         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
14156         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14157         (rs6000_option_override_internal): Assign to
14158         targetm.secondary_memory_needed rather than
14159         rs6000_secondary_memory_needed_ptr.
14160         (rs6000_secondary_memory_needed): Match hook interface.
14161         (rs6000_debug_secondary_memory_needed): Likewise.
14162         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
14163         * config/s390/s390.c (s390_secondary_memory_needed): New function.
14164         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14165         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
14166         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
14167         (sparc_secondary_memory_needed): New function.
14168         * lra-constraints.c (check_and_process_move): Refer to
14169         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
14170         in comment.
14171         (curr_insn_transform): Likewise.
14172         (process_alt_operands): Use targetm.secondary_memory_needed
14173         instead of TARGET_SECONDARY_MEMORY_NEEDED.
14174         (check_secondary_memory_needed_p): Likewise.
14175         (choose_split_class): Likewise.
14176         * reload.c: Unconditionally include code that was previously
14177         conditional on SECONDARY_MEMORY_NEEDED.
14178         (push_secondary_reload): Use targetm.secondary_memory_needed
14179         instead of TARGET_SECONDARY_MEMORY_NEEDED.
14180         (push_reload): Likewise.
14181         * reload1.c: Unconditionally include code that was previously
14182         conditional on SECONDARY_MEMORY_NEEDED.
14183         (choose_reload_regs): Use targetm.secondary_memory_needed
14184         instead of TARGET_SECONDARY_MEMORY_NEEDED.
14185         (gen_reload): Likewise.
14186         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
14187
14188 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
14189             Alan Hayward  <alan.hayward@arm.com>
14190             David Sherwood  <david.sherwood@arm.com>
14191
14192         * target.def (secondary_memory_needed_mode): New hook:
14193         * targhooks.c (default_secondary_memory_needed_mode): Declare.
14194         * targhooks.h (default_secondary_memory_needed_mode): New function.
14195         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
14196         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
14197         * doc/tm.texi: Regenerate.
14198         * lra-constraints.c (check_and_process_move): Use
14199         targetm.secondary_memory_needed_mode instead of
14200         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
14201         (curr_insn_transform): Likewise.
14202         * reload.c (get_secondary_mem): Likewise.
14203         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14204         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
14205         function.
14206         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14207         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14208         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
14209         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14210         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
14211         Delete.
14212         * config/powerpcspe/powerpcspe-protos.h
14213         (rs6000_secondary_memory_needed_mode): Delete.
14214         * config/powerpcspe/powerpcspe.c
14215         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14216         (rs6000_secondary_memory_needed_mode): Make static.
14217         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14218         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
14219         Delete.
14220         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
14221         Redefine.
14222         (rs6000_secondary_memory_needed_mode): Make static.
14223         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14224         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
14225         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
14226         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
14227         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
14228         Redefine.
14229         (sparc_secondary_memory_needed_mode): New function.
14230         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
14231
14232 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
14233
14234         * config/aarch64/constraints.md (Umq): New constraint.
14235         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
14236         Change to use Umq.
14237         (mov<mode>): Update condition.
14238
14239 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14240
14241         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
14242         when bitposition is the same.
14243
14244 2017-09-13  Richard Biener  <rguenther@suse.de>
14245
14246         * dwarf2out.c (output_die_symbol): Remove.
14247         (output_die): Do not output a DIEs symbol.
14248
14249 2017-09-13  Richard Biener  <rguenther@suse.de>
14250
14251         PR middle-end/82128
14252         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
14253         default-def to avoid breaking iterator update with the weird
14254         interaction with cgraph_update_edges_for_call_stmt_node.
14255
14256 2017-09-13  Richard Biener  <rguenther@suse.de>
14257
14258         * tree-cfg.c (verify_gimple_assign_binary): Add verification
14259         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
14260         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
14261         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
14262
14263 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
14264
14265         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
14266         Disable pc relative literal load irrespective of
14267         TARGET_FIX_ERR_A53_84341 for default.
14268
14269 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
14270
14271         * config/sparc/sparc.c (output_return): Output the source location of
14272         the insn in the delay slot, if any.
14273         (output_sibcall): Likewise.
14274
14275 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
14276
14277         PR driver/81498
14278         * common.opt (-static-pie): New alias.
14279         (shared): Negate static-pie.
14280         (-no-pie): Update help text.
14281         (-pie): Likewise.
14282         (static-pie): New option.
14283         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
14284         -static-pie support.
14285         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
14286         (LINK_EH_SPEC): Likewise.
14287         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14288         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
14289         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
14290         * gcc.c (LINK_COMMAND_SPEC): Likewise.
14291         (init_gcc_specs): Likewise.
14292         (init_spec): Likewise.
14293         (display_help): Update help message for -pie.
14294         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
14295         -static-pie.
14296
14297 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
14298
14299         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
14300         (movdi_aarch64): Likewise.
14301         (movti_aarch64): Likewise.
14302
14303 2017-09-12 Simon Wright <simon@pushface.org>
14304
14305         PR target/80204
14306         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
14307         calculation of the minor version, always output as 0.
14308
14309 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
14310
14311         PR target/82112
14312         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
14313         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
14314         on it early, rather than manual conversion late.  For
14315         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
14316         instead of performing manual conversion.
14317
14318 2017-09-12  Carl Love  <cel@us.ibm.com>
14319
14320         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
14321         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
14322         vmulouw, vmulosw.
14323         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
14324         VMULOSW): Add definitions.
14325         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14326         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
14327         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
14328         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
14329         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
14330
14331 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
14332
14333         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
14334         types correctly.
14335         (movti_aarch64): Likewise.
14336         (movdf_aarch64): Likewise.
14337         (movtf_aarch64): Likewise.
14338         (load_pairdi): Likewise.
14339         (store_pairdi): Likewise.
14340         (load_pairdf): Likewise.
14341         (store_pairdf): Likewise.
14342         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
14343         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
14344         (ldr_got_small_<mode>): Likewise.
14345         (ldr_got_small_28k_<mode>): Likewise.
14346         (ldr_got_tiny): Likewise.
14347         * config/aarch64/iterators.md (ldst_sz): New.
14348         (ldpstp_sz): Likewise.
14349         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
14350         to store_16.
14351         (thunderx_load): Split load_8 to load_16.
14352         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
14353         load_8 to load_16.
14354         (thunderx2t99_storepair_basic): Split store_8 to store_16.
14355         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
14356         (xgene1_store_pair): Split store_8 to store_16.
14357         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
14358         (falkor_st_0_st_sd): Split store_8 to store_16.
14359
14360 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
14361
14362         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
14363         and store1/2/3/4 to store_4/8/12/16.
14364         * config/aarch64/aarch64.md: Update for rename.
14365         * config/arm/arm.md: Likewise.: Likewise.
14366         * config/arm/arm.c: Likewise.
14367         * config/arm/thumb1.md: Likewise.
14368         * config/arm/thumb2.md: Likewise.
14369         * config/arm/vfp.md: Likewise.
14370         * config/arm/arm-generic.md: Likewise.
14371         * config/arm/arm1020e.md: Likewise.
14372         * config/arm/arm1026ejs.md: Likewise.
14373         * config/arm/arm1136jfs.md: Likewise.
14374         * config/arm/arm926ejs.md: Likewise.
14375         * config/arm/cortex-a15.md: Likewise.
14376         * config/arm/cortex-a17.md: Likewise.
14377         * config/arm/cortex-a5.md: Likewise.
14378         * config/arm/cortex-a53.md: Likewise.
14379         * config/arm/cortex-a57.md: Likewise.
14380         * config/arm/cortex-a7.md: Likewise.
14381         * config/arm/cortex-a8.md: Likewise.
14382         * config/arm/cortex-a9.md: Likewise.
14383         * config/arm/cortex-m4.md: Likewise.
14384         * config/arm/cortex-m7.md: Likewise.
14385         * config/arm/cortex-r4.md: Likewise.
14386         * config/arm/exynos-m1.md: Likewise.
14387         * config/arm/fa526.md: Likewise.
14388         * config/arm/fa606te.md: Likewise.
14389         * config/arm/fa626te.md: Likewise.
14390         * config/arm/fa726te.md: Likewise.
14391         * config/arm/fmp626.md: Likewise.
14392         * config/arm/iwmmxt.md: Likewise.
14393         * config/arm/ldmstm.md: Likewise.
14394         * config/arm/marvell-pj4.md: Likewise.
14395         * config/arm/xgene1.md: Likewise.
14396         * config/aarch64/thunderx.md: Likewise.
14397         * config/aarch64/thunderx2t99.md: Likewise.
14398         * config/aarch64/falkor.md: Likewise.
14399
14400 2017-09-12  Martin Liska  <mliska@suse.cz>
14401
14402         * attribs.c (private_lookup_attribute): New function.
14403         * attribs.h (private_lookup_attribute): Declared here.
14404         (lookup_attribute): Called from this place.
14405
14406 2017-09-12  Richard Biener  <rguenther@suse.de>
14407
14408         PR tree-optimization/82157
14409         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
14410         stmts with side-effects.
14411
14412 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14413             Alan Hayward  <alan.hayward@arm.com>
14414             David Sherwood <david.sherwood@arm.com>
14415
14416         * target.def (hard_regno_nregs): New hook.
14417         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
14418         * targhooks.h (default_hard_regno_nregs): Declare.
14419         * targhooks.c (default_hard_regno_nregs): New function.
14420         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
14421         (TARGET_HARD_REGNO_NREGS): ...this hook.
14422         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
14423         (CLASS_MAX_NREGS): Likewise.
14424         * doc/tm.texi: Regenerate.
14425         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
14426         instead of HARD_REGNO_NREGS.
14427         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
14428         HARD_REGNO_NREGS in the comment.
14429         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
14430         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
14431         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
14432         Return an unsigned int.
14433         (TARGET_HARD_REGNO_NREGS): Redefine.
14434         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
14435         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
14436         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
14437         (arc_hard_regno_nregs): New function.
14438         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
14439         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
14440         (arm_hard_regno_nregs): New function.
14441         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
14442         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
14443         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
14444         (TARGET_HARD_REGNO_NREGS): Redefine.
14445         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
14446         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
14447         (HARD_REGNO_NREGS): Delete.
14448         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
14449         (cr16_hard_regno_nregs): New function.
14450         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
14451         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
14452         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
14453         (cris_hard_regno_nregs): New function.
14454         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
14455         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
14456         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
14457         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
14458         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
14459         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
14460         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
14461         (frv_hard_regno_nregs): Make static.  Take and return an
14462         unsigned int.
14463         (frv_class_max_nregs): Remove outdated copy of documentation.
14464         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
14465         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
14466         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
14467         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
14468         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
14469         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
14470         (TARGET_HARD_REGNO_NREGS): Redefine.
14471         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
14472         (CLASS_MAX_NREGS): Update comment.
14473         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
14474         (ia64_hard_regno_nregs): New function.
14475         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
14476         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
14477         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
14478         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
14479         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
14480         an unsigned int.
14481         (m32c_hard_regno_nregs): Likewise.  Make static.
14482         (TARGET_HARD_REGNO_NREGS): Redefine.
14483         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
14484         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
14485         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
14486         (m68k_hard_regno_nregs): New function.
14487         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
14488         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
14489         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
14490         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
14491         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
14492         Take and return an unsigned int.
14493         (TARGET_HARD_REGNO_NREGS): Redefine.
14494         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
14495         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
14496         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
14497         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
14498         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
14499         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
14500         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
14501         (msp430_hard_regno_nregs): Make static.  Take and return an
14502         unsigned int.
14503         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
14504         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
14505         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
14506         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
14507         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
14508         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
14509         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
14510         (TARGET_HARD_REGNO_NREGS): Redefine.
14511         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
14512         (PA_HARD_REGNO_NREGS): ...this.
14513         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
14514         (PA_HARD_REGNO_NREGS): ...this.
14515         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
14516         (pa_hard_regno_nregs): New function.
14517         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
14518         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
14519         (pdp11_hard_regno_nregs): New function.
14520         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
14521         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
14522         (rs6000_hard_regno_nregs_hook): New function.
14523         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
14524         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
14525         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
14526         Take and return an unsigned int.  Move earlier in file.
14527         (TARGET_HARD_REGNO_NREGS): Redefine.
14528         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
14529         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
14530         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
14531         (rl78_hard_regno_nregs): Make static.  Take and return an
14532         unsigned int.
14533         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
14534         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
14535         (rs6000_hard_regno_nregs_hook): New function.
14536         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
14537         * config/rx/rx.c (rx_hard_regno_nregs): New function.
14538         (TARGET_HARD_REGNO_NREGS): Redefine.
14539         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
14540         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
14541         instead of HARD_REGNO_NREGS.
14542         (s390_hard_regno_nregs): New function.
14543         (s390_hard_regno_mode_ok): Add comment from s390.h.
14544         (TARGET_HARD_REGNO_NREGS): Redefine.
14545         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
14546         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
14547         (sh_hard_regno_nregs): New function.
14548         (sh_pass_in_reg_p): Use it.
14549         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
14550         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
14551         (sparc_hard_regno_nregs): New function.
14552         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
14553         * config/spu/spu.c (spu_hard_regno_nregs): New function.
14554         (spu_function_arg_advance): Use it, supplying a valid register number.
14555         (TARGET_HARD_REGNO_NREGS): Redefine.
14556         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
14557         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
14558         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
14559         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
14560         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
14561         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
14562         (CLASS_MAX_NREGS): Remove copy of old documentation.
14563         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
14564         (visium_hard_regno_nregs): New function.
14565         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
14566         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
14567         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
14568         xtensa_hard_regno_nregs): New function.
14569         * system.h (HARD_REGNO_NREGS): Poison.
14570
14571 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14572
14573         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
14574         hard_regno_nregs instead of HARD_REGNO_NREGS.
14575         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
14576         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
14577         (c6x_expand_epilogue): Likewise.
14578         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
14579         (frv_read_iacc_argument): Likewise.
14580         * config/sh/sh.c: Include regs.h.
14581         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
14582         (regs_used): Likewise.
14583         (output_stack_adjust): Likewise.
14584         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
14585         * expmed.c: Include regs.h.
14586         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
14587         * ree.c: Include regs.h.
14588         (combine_reaching_defs): Use hard_regno_nregs instead of
14589         HARD_REGNO_NREGS.
14590         (add_removable_extension): Likewise.
14591
14592 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14593
14594         * regs.h (hard_regno_nregs): Turn into a function.
14595         (end_hard_regno): Update accordingly.
14596         * caller-save.c (setup_save_areas): Likewise.
14597         (save_call_clobbered_regs): Likewise.
14598         (replace_reg_with_saved_mem): Likewise.
14599         (insert_restore): Likewise.
14600         (insert_save): Likewise.
14601         * combine.c (can_change_dest_mode): Likewise.
14602         (move_deaths): Likewise.
14603         (distribute_notes): Likewise.
14604         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
14605         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
14606         (rs6000_split_multireg_move): Likewise.
14607         (rs6000_register_move_cost): Likewise.
14608         (rs6000_memory_move_cost): Likewise.
14609         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
14610         (rs6000_split_multireg_move): Likewise.
14611         (rs6000_register_move_cost): Likewise.
14612         (rs6000_memory_move_cost): Likewise.
14613         * cselib.c (cselib_reset_table): Likewise.
14614         (cselib_lookup_1): Likewise.
14615         * emit-rtl.c (set_mode_and_regno): Likewise.
14616         * function.c (aggregate_value_p): Likewise.
14617         * ira-color.c (setup_profitable_hard_regs): Likewise.
14618         (check_hard_reg_p): Likewise.
14619         (calculate_saved_nregs): Likewise.
14620         (assign_hard_reg): Likewise.
14621         (improve_allocation): Likewise.
14622         (calculate_spill_cost): Likewise.
14623         * ira-emit.c (modify_move_list): Likewise.
14624         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
14625         (ira_hard_reg_in_set_p): Likewise.
14626         * ira.c (setup_reg_mode_hard_regset): Likewise.
14627         (clarify_prohibited_class_mode_regs): Likewise.
14628         (check_allocation): Likewise.
14629         * lra-assigns.c (find_hard_regno_for_1): Likewise.
14630         (lra_setup_reg_renumber): Likewise.
14631         (setup_try_hard_regno_pseudos): Likewise.
14632         (spill_for): Likewise.
14633         (assign_hard_regno): Likewise.
14634         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
14635         * lra-constraints.c (in_class_p): Likewise.
14636         (lra_constraint_offset): Likewise.
14637         (simplify_operand_subreg): Likewise.
14638         (lra_constraints): Likewise.
14639         (split_reg): Likewise.
14640         (split_if_necessary): Likewise.
14641         (invariant_p): Likewise.
14642         (inherit_in_ebb): Likewise.
14643         * lra-lives.c (process_bb_lives): Likewise.
14644         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
14645         (get_hard_regs): Likewise.
14646         (do_remat): Likewise.
14647         * lra-spills.c (assign_spill_hard_regs): Likewise.
14648         * mode-switching.c (create_pre_exit): Likewise.
14649         * postreload.c (reload_combine_recognize_pattern): Likewise.
14650         * recog.c (peep2_find_free_register): Likewise.
14651         * regcprop.c (kill_value_regno): Likewise.
14652         (set_value_regno): Likewise.
14653         (copy_value): Likewise.
14654         (maybe_mode_change): Likewise.
14655         (find_oldest_value_reg): Likewise.
14656         (copyprop_hardreg_forward_1): Likewise.
14657         * regrename.c (check_new_reg_p): Likewise.
14658         (regrename_do_replace): Likewise.
14659         * reload.c (push_reload): Likewise.
14660         (combine_reloads): Likewise.
14661         (find_dummy_reload): Likewise.
14662         (operands_match_p): Likewise.
14663         (find_reloads): Likewise.
14664         (find_equiv_reg): Likewise.
14665         (reload_adjust_reg_for_mode): Likewise.
14666         * reload1.c (count_pseudo): Likewise.
14667         (count_spilled_pseudo): Likewise.
14668         (find_reg): Likewise.
14669         (clear_reload_reg_in_use): Likewise.
14670         (free_for_value_p): Likewise.
14671         (allocate_reload_reg): Likewise.
14672         (choose_reload_regs): Likewise.
14673         (reload_adjust_reg_for_temp): Likewise.
14674         (emit_reload_insns): Likewise.
14675         (delete_output_reload): Likewise.
14676         * rtlanal.c (subreg_get_info): Likewise.
14677         * sched-deps.c (sched_analyze_reg): Likewise.
14678         * sel-sched.c (init_regs_for_mode): Likewise.
14679         (mark_unavailable_hard_regs): Likewise.
14680         (choose_best_reg_1): Likewise.
14681         (verify_target_availability): Likewise.
14682         * valtrack.c (dead_debug_insert_temp): Likewise.
14683         * var-tracking.c (track_loc_p): Likewise.
14684         (emit_note_insn_var_location): Likewise.
14685         * varasm.c (make_decl_rtl): Likewise.
14686         * reginfo.c (choose_hard_reg_mode): Likewise.
14687         (init_reg_modes_target): Refer directly to
14688         this_target_regs->x_hard_regno_nregs.
14689
14690 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14691
14692         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
14693         instead of hard_regno_nregs.
14694
14695 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14696
14697         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
14698         end_hard_regno instead of hard_regno_nregs.
14699         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
14700         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
14701         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
14702         * ira-color.c (improve_allocation): Likewise.
14703         * lra-assigns.c (find_hard_regno_for_1): Likewise.
14704         * lra-lives.c (mark_regno_live): Likewise.
14705         (mark_regno_dead): Likewise.
14706         * lra-remat.c (operand_to_remat): Likewise.
14707         * lra.c (collect_non_operand_hard_regs): Likewise.
14708         * postreload.c (reload_combine_note_store): Likewise.
14709         (move2add_valid_value_p): Likewise.
14710         * reload.c (regno_clobbered_p): Likewise.
14711
14712 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14713
14714         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
14715         hard_regno_nregs.
14716         * config/v850/v850.c (v850_reorg): Likewise.
14717         * reload.c (refers_to_regno_for_reload_p): Likewise.
14718         (find_equiv_reg): Likewise.
14719         * reload1.c (reload_reg_reaches_end_p): Likewise.
14720
14721 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14722
14723         * caller-save.c (add_used_regs): Use REG_NREGS instead of
14724         hard_regno_nregs.
14725         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
14726         * config/arm/arm.c (output_move_neon): Likewise.
14727         (arm_attr_length_move_neon): Likewise.
14728         (neon_split_vcombine): Likewise.
14729         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
14730         (c6x_mark_reg_written): Likewise.
14731         (c6x_dwarf_register_span): Likewise.
14732         * config/i386/i386.c (ix86_save_reg): Likewise.
14733         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
14734         (rws_access_reg): Likewise.
14735         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
14736         * mode-switching.c (create_pre_exit): Likewise.
14737         * ree.c (combine_reaching_defs): Likewise.
14738         (add_removable_extension): Likewise.
14739         * regcprop.c (find_oldest_value_reg): Likewise.
14740         (copyprop_hardreg_forward_1): Likewise.
14741         * reload.c (reload_inner_reg_of_subreg): Likewise.
14742         (push_reload): Likewise.
14743         (combine_reloads): Likewise.
14744         (find_dummy_reload): Likewise.
14745         (reload_adjust_reg_for_mode): Likewise.
14746         * reload1.c (find_reload_regs): Likewise.
14747         (forget_old_reloads_1): Likewise.
14748         (reload_reg_free_for_value_p): Likewise.
14749         (reload_adjust_reg_for_temp): Likewise.
14750         (emit_reload_insns): Likewise.
14751         (delete_output_reload): Likewise.
14752         * sel-sched.c (choose_best_reg_1): Likewise.
14753         (choose_best_pseudo_reg): Likewise.
14754
14755 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14756             Alan Hayward  <alan.hayward@arm.com>
14757             David Sherwood <david.sherwood@arm.com>
14758
14759         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
14760         * target.def (slow_unaligned_access): New hook.
14761         * targhooks.h (default_slow_unaligned_access): Declare.
14762         * targhooks.c (default_slow_unaligned_access): New function.
14763         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
14764         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
14765         * doc/tm.texi: Regenerate.
14766         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
14767         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
14768         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
14769         definition.
14770         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
14771         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
14772         Redefine.
14773         (rs6000_slow_unaligned_access): New function.
14774         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
14775         (expand_block_compare): Likewise.
14776         (expand_strn_compare): Likewise.
14777         (rs6000_rtx_costs): Likewise.
14778         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
14779         (riscv_slow_unaligned_access): Likewise.
14780         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
14781         (riscv_slow_unaligned_access_p): ...this and make static.
14782         (riscv_option_override): Update accordingly.
14783         (riscv_slow_unaligned_access): New function.
14784         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
14785         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
14786         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
14787         (rs6000_slow_unaligned_access): New function.
14788         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
14789         (rs6000_rtx_costs): Likewise.
14790         * config/rs6000/rs6000-string.c (expand_block_compare)
14791         (expand_strn_compare): Use targetm.slow_unaligned_access instead
14792         of SLOW_UNALIGNED_ACCESS.
14793         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
14794         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
14795         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
14796         of SLOW_UNALIGNED_ACCESS.
14797         * expmed.c (simple_mem_bitfield_p): Likewise.
14798         * expr.c (alignment_for_piecewise_move): Likewise.
14799         (emit_group_load_1): Likewise.
14800         (emit_group_store): Likewise.
14801         (copy_blkmode_from_reg): Likewise.
14802         (emit_push_insn): Likewise.
14803         (expand_assignment): Likewise.
14804         (store_field): Likewise.
14805         (expand_expr_real_1): Likewise.
14806         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
14807         * lra-constraints.c (simplify_operand_subreg): Likewise.
14808         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
14809         * gimple-ssa-store-merging.c: Likewise in block comment at start
14810         of file.
14811         * tree-ssa-strlen.c: Include target.h.
14812         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
14813         of SLOW_UNALIGNED_ACCESS.
14814         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
14815
14816 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
14817
14818         PR rtl-optimization/82185
14819         * expmed.c (emit_store_flag_int): Only test tem if it has been
14820         initialized.
14821
14822 2017-09-12  Richard Biener  <rguenther@suse.de>
14823
14824         PR middle-end/82149
14825         * match.pd ((FTYPE) N CMP CST): Fix typo.
14826
14827 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
14828
14829         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
14830         attribute.
14831         (mips_near_type_p): Add 'short_call' attribute as a synonym
14832         for 'near'.
14833         * doc/extend.texi (short_call): Document new function attribute.
14834
14835 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
14836
14837         PR target/82112
14838         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
14839         assertion check that in the condition.
14840         (get_atomic_generic_size): Likewise.  Before testing if parameter
14841         has pointer type, if it has array type, call for C++
14842         default_conversion to perform array-to-pointer conversion.
14843
14844 2017-09-12  Richard Biener  <rguenther@suse.de>
14845
14846         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
14847         for operations we cannot scalarize.
14848
14849 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
14850
14851         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
14852         vectors heap vectors.  Clean up comments.
14853         Make visited_bbs a reference.
14854         (profitable_jump_thread_path): Make GC
14855         vectors heap vectors.  Clean up comments.
14856         Misc cleanups.
14857         (convert_and_register_jump_thread_path): Make GC vectors heap
14858         vectors.
14859         (check_subpath_and_update_thread_path): Same.  Clean up comments.
14860         Make visited_bbs a reference.
14861         (handle_phi): Abstract common code to to
14862         register_jump_thread_path_if_profitable.
14863         Rename VAR_BB to DEF_BB.
14864         Update comments.
14865         Make GC vectors heap vectors.
14866         Make visited_bbs a reference.
14867         (handle_assignment): Same.
14868         (register_jump_thread_path_if_profitable): New.
14869         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
14870         DEF_BB.
14871         Make GC vectors heap vectors.  Clean up comments.
14872         Make visited_bbs a reference.
14873         (find_jump_threads_backwards): Make visited_bbs live in the stack.
14874         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
14875         comment.
14876
14877 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
14878
14879         PR target/82181
14880         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
14881         words of E_DImode object are reachable by xtensa_uimm8x4 access.
14882
14883 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
14884
14885         Revert r251800 and r251799.
14886
14887 2017-09-11  Martin Jambor  <mjambor@suse.cz>
14888
14889         PR hsa/82119
14890         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
14891         arguments in advance.
14892         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
14893         use it to find predecessor edges.
14894         (naive_outof_ssa): Collect vector of predecessors.
14895
14896 2017-09-08  Jason Merrill  <jason@redhat.com>
14897
14898         PR c++/70029 - ICE with ref-qualifier and -flto
14899         * langhooks.h (struct lang_hooks_for_types): Add
14900         copy_lang_qualifiers.
14901         * attribs.c (build_type_attribute_qual_variant): Use it.
14902         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
14903         NULL.
14904         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
14905         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
14906
14907 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
14908
14909         PR target/81988
14910         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
14911         (*mulsi3_sp64): New instruction.
14912         (mulsi3): New expander.
14913
14914 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
14915
14916         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
14917
14918 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14919
14920         * sancov.c: Include memmodel.h.
14921
14922 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
14923
14924         PR target/80897
14925         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
14926         large offsets.
14927
14928 2017-09-07  Carl Love  <cel@us.ibm.com>
14929
14930         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
14931         the sldi instruction.
14932
14933 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
14934
14935         * sancov.c: Include tm_p.h.
14936
14937 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
14938
14939         PR target/81979
14940         * output.h (switch_to_other_text_partition): New declaration.
14941         * varasm.c (switch_to_other_text_partition): New function.
14942         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
14943         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
14944         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
14945         to the other text partition before emitting LCL label and switch back
14946         after emitting the word after it.
14947
14948 2017-09-07  Richard Biener  <rguenther@suse.de>
14949
14950         * passes.def (pass_split_crit_edges): Remove instance before PRE.
14951         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
14952         critical edges here, after loop init.
14953         (pass_data_pre): Remove PROP_no_crit_edges flags.
14954         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
14955         for valueization of call args to avoid leaking VN_TOP.
14956         (visit_use): Assert we do not visit default defs.
14957         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
14958         Use error_mark_node to more easily detect leaking VN_TOP.
14959         All default-defs are varying, not VN_TOP.  Mark them visited.
14960         (run_scc_vn): Make code match comment.
14961
14962 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
14963
14964         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
14965         OPTION_MASK_FLOAT128_KEYWORD.
14966         (POWERPC_MASKS): Likewise.
14967         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
14968         support for the -mfloat128-type option, and make -mfloat128
14969         default on PowerPC Linux systems.  Define or undefine
14970         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
14971         Define __float128 to be __ieee128 if IEEE 128-bit support is
14972         enabled, or undefine it.
14973         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
14974         Delete defining __FLOAT128_TYPE__.
14975         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
14976         -mfloat128-type option and make -mfloat128 default on PowerPC
14977         Linux systems.
14978         (TARGET_FLOAT128_TYPE): Likewise.
14979         (-mfloat128-type): Likewise.
14980         * config/rs6000/rs6000.c (rs6000_option_override_internal):
14981         Delete the -mfloat128-type option and make -mfloat128 default on
14982         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
14983         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
14984         128-bit floating point is enabled.  Change tests from using
14985         -mfloat128-type to -mfloat128.
14986         (rs6000_mangle_type): Use the correct mangling for the __float128
14987         type even if normal long double is restricted to 64-bits.
14988         (floatn_mode): Enable the _Float128 type by default on VSX Linux
14989         systems.
14990         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
14991         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
14992         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
14993         -mfloat128-type.
14994         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
14995         documentation for -mfloat128.
14996
14997 2017-09-06  Olivier Hainque  <hainque@adacore.com>
14998
14999         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
15000
15001 2017-09-06  Wish Wu  <wishwu007@gmail.com>
15002             Jakub Jelinek  <jakub@redhat.com>
15003
15004         * asan.c (initialize_sanitizer_builtins): Add
15005         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
15006         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
15007         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
15008         BT_FN_VOID_UINT64_PTR variables.
15009         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
15010         (BT_FN_VOID_UINT16_UINT16): Likewise.
15011         (BT_FN_VOID_UINT32_UINT32): Likewise.
15012         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
15013         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
15014         (BT_FN_VOID_UINT64_PTR): Likewise.
15015         * common.opt (flag_sanitize_coverage): New variable.
15016         (fsanitize-coverage=trace-pc): Remove.
15017         (fsanitize-coverage=): Add.
15018         * flag-types.h (enum sanitize_coverage_code): New enum.
15019         * fold-const.c (fold_range_test): Disable non-short-circuit
15020         optimization if flag_sanitize_coverage.
15021         (fold_truth_andor): Likewise.
15022         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
15023         * opts.c (COVERAGE_SANITIZER_OPT): Define.
15024         (coverage_sanitizer_opts): New array.
15025         (get_closest_sanitizer_option): Add OPTS argument, handle also
15026         OPT_fsanitize_coverage_.
15027         (parse_sanitizer_options): Adjusted to also handle
15028         OPT_fsanitize_coverage_.
15029         (common_handle_option): Add OPT_fsanitize_coverage_.
15030         * sancov.c (instrument_comparison, instrument_switch): New function.
15031         (sancov_pass): Add trace-cmp support.
15032         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
15033         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
15034         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
15035         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
15036         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
15037         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
15038         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
15039         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
15040         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
15041         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
15042
15043 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
15044
15045         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
15046         error.  Only quit immediately if parsing is complete.
15047         (BEGIN): Initialize fatal_err and parse_done.
15048         (begin fpu, end fpu): Check number of arguments.
15049         (begin arch, end arch): Likewise.
15050         (begin cpu, end cpu): Likewise.
15051         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
15052         (optalias): Likewise.
15053
15054 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
15055
15056         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
15057         * config/arm/arm-isa.h: Delete.  Move definitions to ...
15058         * arm-cpus.in: ... here.  Use new feature and fgroup values.
15059         * config/arm/arm.c (arm_option_override): Use lower case for feature
15060         bit names.
15061         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
15062         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
15063         * config/arm/parsecpu.awk (END): Add new command 'isa'.
15064         (isa_pfx): Delete.
15065         (print_isa_bits_for): New function.
15066         (gen_isa): New function.
15067         (gen_comm_data): Use print_isa_bits_for.
15068         (define feature): New keyword.
15069         (define fgroup): New keyword.
15070         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
15071         (arm-isa.h): Add rule to generate file.
15072         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
15073         case for feature bit names.
15074
15075 2017-09-06  Richard Biener  <rguenther@suse.de>
15076
15077         * tree-ssa-pre.c (NECESSARY): Remove.
15078         (create_expression_by_pieces): Do not touch pass-local flags.
15079         (insert_into_preds_of_block): Likewise.
15080         (do_pre_regular_insertion): Likewise.
15081         (eliminate_insert): Likewise.
15082         (eliminate_dom_walker::before_dom_children): Likewise.
15083         (fini_eliminate): Do not look at inserted_exprs.
15084         (mark_operand_necessary): Remove.
15085         (remove_dead_inserted_code): Replace with simple work-list
15086         algorithm based on inserted_exprs and SSA uses.
15087         (pass_pre::execute): Re-order fini_eliminate and
15088         remove_dead_inserted_code.
15089
15090 2017-09-06  Olivier Hainque  <hainque@adacore.com>
15091
15092         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
15093         for VxWorks 7.  Adjust surrounding comments.
15094
15095 2017-09-06  Richard Biener  <rguenther@suse.de>
15096
15097         * gimple-ssa-strength-reduction.c
15098         (find_candidates_dom_walker::before_dom_children): Also allow
15099         pointer types.
15100
15101 2017-09-06  Richard Biener  <rguenther@suse.de>
15102
15103         PR tree-optimization/82108
15104         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
15105         for gap in the non-permutation SLP case.
15106
15107 2017-09-06  Martin Jambor  <mjambor@suse.cz>
15108
15109         PR tree-optimization/82078
15110         * tree-sra.c (sort_and_splice_var_accesses): Move call to
15111         add_access_to_work_queue...
15112         (build_accesses_from_assign): ...here.
15113         (propagate_all_subaccesses): Make sure racc is the group
15114         representative, if there is one.
15115
15116 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
15117
15118         PR middle-end/82095
15119         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
15120         NULL DECL_INITIAL.
15121
15122 2017-09-06  Richard Biener  <rguenther@suse.de>
15123
15124         * gimple-ssa-strength-reduction.c
15125         (find_candidates_dom_walker::before_doom_children): Use a
15126         type and not a mode check.
15127
15128 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15129
15130         PR target/77308
15131         * config/arm/predicates.md (arm_general_adddi_operand): Create new
15132         non-vfp predicate.
15133         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
15134
15135 2017-09-05  Jeff Law  <law@redhat.com>
15136
15137         PR tree-optimization/64910
15138         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
15139         cases where we have 3 or more operands.
15140
15141 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
15142
15143         PR middle-end/81768
15144         * omp-low.c (lower_omp_for): Recompute tree invariant if
15145         gimple_omp_for_initial/final is ADDR_EXPR.
15146
15147         PR middle-end/81768
15148         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
15149         into gimple val before gimplification fo the COND_EXPR.
15150
15151 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
15152
15153         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
15154         REGION_COPY argument.
15155         (thread_through_all_blocks): Remove unused argument to
15156         duplicate_thread_path.
15157
15158 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15159             Alan Hayward  <alan.hayward@arm.com>
15160             David Sherwood  <david.sherwood@arm.com>
15161
15162         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
15163         Take a scalar_mode rather than a machine_mode.
15164         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
15165         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
15166         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
15167         (aarch64_gen_adjusted_ldpstp): Likewise.
15168         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
15169
15170 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15171             Alan Hayward  <alan.hayward@arm.com>
15172             David Sherwood  <david.sherwood@arm.com>
15173
15174         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
15175         Take a scalar_int_mode instead of a machine_mode.
15176         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
15177         (aarch64_output_scalar_simd_mov_immediate): Likewise.
15178         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
15179         (aarch64_simd_attr_length_rglist): Delete.
15180         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
15181         a scalar_int_mode instead of a machine_mode.
15182         (aarch64_add_offset): Likewise.
15183         (aarch64_internal_mov_immediate): Likewise
15184         (aarch64_add_constant_internal): Likewise.
15185         (aarch64_add_constant): Likewise.
15186         (aarch64_movw_imm): Likewise.
15187         (aarch64_rtx_arith_op_extract_p): Likewise.
15188         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
15189         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
15190         Remove assert that the mode isn't a vector.
15191         (aarch64_output_scalar_simd_mov_immediate): Likewise.
15192         (aarch64_expand_mov_immediate): Update calls after above changes.
15193         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
15194         (aarch64_and_bitmask_imm): Check for scalar integer modes.
15195         (aarch64_move_imm): Likewise.
15196         (aarch64_can_const_movi_rtx_p): Likewise.
15197         (aarch64_strip_extend): Likewise.
15198         (aarch64_extr_rtx_p): Likewise.
15199         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
15200         a CONST_INT when the mode parameter is VOIDmode.
15201         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
15202
15203 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15204
15205         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
15206         * stor-layout.c (bitwise_mode_for_mode): Likewise.
15207         (bitwise_type_for_mode): Update accordingly.
15208
15209 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15210
15211         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
15212         * stor-layout.c (mode_for_size_tree): Likewise.
15213         (mode_for_array): Update accordingly.
15214         (layout_decl): Likewise.
15215         (compute_record_mode): Likewise.  Only set the mode once.
15216
15217 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15218
15219         * target.def (get_mask_mode): Change return type to opt_mode.
15220         Expand commentary.
15221         * doc/tm.texi: Regenerate.
15222         * targhooks.h (default_get_mask_mode): Return an opt_mode.
15223         * targhooks.c (default_get_mask_mode): Likewise.
15224         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
15225         * optabs-query.c (can_vec_mask_load_store_p): Update use of
15226         targetm.get_mask_mode.
15227         * tree.c (build_truth_vector_type): Likewise.
15228
15229 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15230
15231         * machmode.h (mode_for_vector): Return an opt_mode.
15232         * stor-layout.c (mode_for_vector): Likewise.
15233         (mode_for_int_vector): Update accordingly.
15234         (layout_type): Likewise.
15235         * config/i386/i386.c (emit_memmov): Likewise.
15236         (ix86_expand_set_or_movmem): Likewise.
15237         (ix86_expand_vector_init): Likewise.
15238         (ix86_get_mask_mode): Likewise.
15239         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
15240         Likewise.
15241         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
15242         * expmed.c (extract_bit_field_1): Likewise.
15243         * expr.c (expand_expr_real_2): Likewise.
15244         * optabs-query.c (can_vec_perm_p): Likewise.
15245         (can_vec_mask_load_store_p): Likewise.
15246         * optabs.c (expand_vec_perm): Likewise.
15247         * targhooks.c (default_get_mask_mode): Likewise.
15248         * tree-vect-stmts.c (vectorizable_store): Likewise.
15249         (vectorizable_load): Likewise.
15250         (get_vectype_for_scalar_type_and_size): Likewise.
15251
15252 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15253
15254         * machmode.h (mode_for_int_vector): New function.
15255         * stor-layout.c (mode_for_int_vector): Likewise.
15256         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
15257         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
15258         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
15259         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
15260         (s390_expand_vcond): Likewise.
15261
15262 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15263
15264         * machmode.h (opt_machine_mode): New type.
15265         (opt_mode<T>): Allow construction from anything that can be
15266         converted to a T.
15267         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
15268         (mode_for_size): Return an opt_machine_mode.
15269         * stor-layout.c (mode_for_size): Likewise.
15270         (mode_for_size_tree): Update call accordingly.
15271         (bitwise_mode_for_mode): Likewise.
15272         (make_fract_type): Likewise.
15273         (make_accum_type): Likewise.
15274         * caller-save.c (replace_reg_with_saved_mem): Update call
15275         accordingly.
15276         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15277         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15278         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15279         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
15280         * expmed.c (extract_bit_field_1): Likewise.
15281         * reload.c (get_secondary_mem): Likewise.
15282         * varasm.c (assemble_integer): Likewise.
15283         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
15284         early-out.
15285
15286 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15287
15288         * machmode.h (decimal_float_mode_for_size): New function.
15289         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
15290         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
15291         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
15292         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
15293         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
15294         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
15295
15296 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15297
15298         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
15299         (get_builtin_sync_mode): Likewise.
15300         (expand_ifn_atomic_compare_exchange): Likewise.
15301         (expand_builtin_atomic_clear): Likewise.
15302         (expand_builtin_atomic_test_and_set): Likewise.
15303         (fold_builtin_atomic_always_lock_free): Likewise.
15304         * calls.c (compute_argument_addresses): Likewise.
15305         (emit_library_call_value_1): Likewise.
15306         (store_one_arg): Likewise.
15307         * combine.c (combine_instructions): Likewise.
15308         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
15309         * config/arm/arm.c (arm_function_value): Likewise.
15310         (aapcs_allocate_return_reg): Likewise.
15311         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
15312         * config/i386/i386.c (construct_container): Likewise.
15313         (ix86_gimplify_va_arg): Likewise.
15314         (ix86_expand_sse_cmp): Likewise.
15315         (emit_memmov): Likewise.
15316         (emit_memset): Likewise.
15317         (expand_small_movmem_or_setmem): Likewise.
15318         (ix86_expand_pextr): Likewise.
15319         (ix86_expand_pinsr): Likewise.
15320         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
15321         * config/microblaze/microblaze.c (microblaze_block_move_straight):
15322         Likewise.
15323         * config/mips/mips.c (mips_function_value_1) Likewise.
15324         (mips_block_move_straight): Likewise.
15325         (mips_expand_ins_as_unaligned_store): Likewise.
15326         * config/powerpcspe/powerpcspe.c
15327         (rs6000_darwin64_record_arg_advance_flush): Likewise.
15328         (rs6000_darwin64_record_arg_flush): Likewise.
15329         * config/rs6000/rs6000.c
15330         (rs6000_darwin64_record_arg_advance_flush): Likewise.
15331         (rs6000_darwin64_record_arg_flush): Likewise.
15332         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
15333         (sparc_function_value_1): Likewise.
15334         * config/spu/spu.c (adjust_operand): Likewise.
15335         (spu_emit_branch_or_set): Likewise.
15336         (arith_immediate_p): Likewise.
15337         * emit-rtl.c (gen_lowpart_common): Likewise.
15338         * expr.c (expand_expr_real_1): Likewise.
15339         * function.c (assign_parm_setup_block): Likewise.
15340         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
15341         * reload1.c (alter_reg): Likewise.
15342         * stor-layout.c (mode_for_vector): Likewise.
15343         (layout_type): Likewise.
15344
15345 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
15346
15347         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
15348         (spu_convert_move): Likewise.
15349         * lower-subreg.c (resolve_simple_move): Likewise.
15350
15351 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15352
15353         PR target/81833
15354         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
15355         define_insn to a define_expand.
15356         (altivec_vsum2sws_direct): New define_insn.
15357         (altivec_vsumsws): Convert from a define_insn to a define_expand.
15358
15359 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
15360
15361         * config/arm/arm.c (arm_option_params_internal): Improve setting of
15362         max_insns_skipped.
15363
15364 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
15365
15366         PR target/59501
15367         PR target/81624
15368         PR target/81769
15369         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
15370         realign stack if stack alignment needed is less than incoming
15371         stack boundary.
15372
15373 2017-09-05  Marek Polacek  <polacek@redhat.com>
15374
15375         PR sanitizer/82072
15376         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
15377         check earlier.
15378
15379 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
15380
15381         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
15382
15383 2017-09-05  Richard Biener  <rguenther@suse.de>
15384
15385         PR tree-optimization/82084
15386         * fold-const.c (can_native_encode_string_p): Handle wide characters.
15387
15388 2017-09-05  Richard Biener  <rguenther@suse.de>
15389
15390         PR tree-optimization/82102
15391         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
15392
15393 2017-09-05  Martin Liska  <mliska@suse.cz>
15394
15395         PR tree-optimization/82032
15396         * tree-cfg.c (generate_range_test): New function.
15397         * tree-cfg.h (generate_range_test): Declared here.
15398         * tree-cfgcleanup.c (convert_single_case_switch): New function.
15399         (cleanup_control_expr_graph): Use it.
15400         * tree-switch-conversion.c (try_switch_expansion): Remove
15401         assert.
15402         (emit_case_nodes): Use generate_range_test.
15403
15404 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
15405
15406         PR target/82098
15407         * config/i386/i386.md (*<btsc><mode>_mask): Add
15408         TARGET_USE_BT to insn constraint.
15409         (*btr<mode>_mask): Ditto.
15410
15411 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
15412
15413         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
15414         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
15415
15416 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15417
15418         PR target/77308
15419         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
15420         TARGET_NEON and TARGET_IWMMXT.
15421         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
15422         TARGET_NEON and TARGET_IWMMXT.
15423         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
15424
15425 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
15426
15427         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
15428         (ix86_rewrite_tls_address): Ditto.
15429         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
15430         (ix86_rewrite_tls_address_1): Ditto.
15431         (ix86_rewrite_tls_address): Ditto.
15432         * config/i386/predicates.md (tls_address_pattern): New predicate.
15433         * config/i386/i386.md (TLS address splitter): New splitter.
15434
15435 2017-09-04  Richard Biener  <rguenther@suse.de>
15436
15437         PR tree-optimization/82084
15438         * fold-const.h (can_native_encode_string_p): Declare.
15439         * fold-const.c (can_native_encode_string_p): Factor out from ...
15440         (native_encode_string): ... here.
15441         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
15442         vectorizing stores from constants we later cannot handle.
15443
15444 2017-09-04  Marek Polacek  <polacek@redhat.com>
15445
15446         PR c/81783
15447         * doc/invoke.texi: Update -Wtautological-compare documentation.
15448
15449 2017-09-04  Jeff Law  <law@redhat.com>
15450
15451         PR tree-optimization/64910
15452         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
15453         swap the first and last operand if the last is a constant.
15454
15455 2017-09-04  Marek Polacek  <polacek@redhat.com>
15456
15457         PR sanitizer/82072
15458         * convert.c (do_narrow): When sanitizing signed integer overflows,
15459         bail out for signed types.
15460         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
15461
15462 2017-09-04  Richard Biener  <rguenther@suse.de>
15463
15464         PR tree-optimization/82060
15465         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15466         Move devirtualization after stmt folding and before EH/AB/noreturn
15467         cleanup to get the stmt refs canonicalized.  Use a bool instead
15468         of gimple_modified_p since that doesn't work for NOPs.  Schedule
15469         NOPs generated by folding for removal.
15470
15471 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
15472             Alan Hayward  <alan.hayward@arm.com>
15473             David Sherwood  <david.sherwood@arm.com>
15474
15475         * coretypes.h (pad_direction): New enum.
15476         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
15477         (FUNCTION_ARG_PADDING): Likewise.
15478         * target.def (function_arg_padding): New hook.
15479         * targhooks.h (default_function_arg_padding): Declare.
15480         * targhooks.c (default_function_arg_padding): New function.
15481         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
15482         (TARGET_FUNCTION_ARG_PADDING): ...this.
15483         * doc/tm.texi: Regenerate.
15484         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
15485         instead of direction.
15486         (compute_argument_addresses): Likewise.
15487         (load_register_parameters): Likewise.
15488         (emit_library_call_value_1): Likewise.
15489         (store_one_arg): Use targetm.calls.function_arg_padding instead
15490         of FUNCTION_ARG_PADDING.
15491         (must_pass_in_stack_var_size_or_pad): Likewise.
15492         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
15493         (emit_group_store): Likewise.
15494         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
15495         instead of FUNCTION_ARG_PADDING.
15496         (emit_push_insn): Likewise, and propagate enum change throughout
15497         function.
15498         * function.h (direction): Delete.
15499         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
15500         of direction.
15501         * function.c (assign_parm_find_stack_rtl): Likewise.
15502         (assign_parm_setup_block_p): Likewise.
15503         (assign_parm_setup_block): Likewise.
15504         (gimplify_parameters): Likewise.
15505         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
15506         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
15507         function.
15508         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
15509         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
15510         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
15511         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
15512         (aarch64_function_arg_padding): ...this new function.
15513         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
15514         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15515         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
15516         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
15517         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
15518         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15519         (arm_pad_arg_upward): Replace with...
15520         (arm_function_arg_padding): ...this new function.
15521         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
15522         of direction.
15523         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
15524         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
15525         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15526         (ia64_hpux_function_arg_padding): Replace with...
15527         (ia64_function_arg_padding): ...this new function.  Use pad_direction
15528         instead of direction.  Check for TARGET_HPUX.
15529         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
15530         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15531         (iq2000_function_arg_padding): New function.
15532         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
15533         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
15534         (mips_function_arg_padding): ...this new function.
15535         (mips_pad_reg_upward): Update accordingly.
15536         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15537         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
15538         targetm.calls.function_arg_padding.
15539         (FUNCTION_ARG_PADDING): Delete.
15540         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
15541         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
15542         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
15543         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
15544         (nios2_block_reg_padding): Return pad_direction instead of direction.
15545         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
15546         instead of direction.
15547         (nios2_function_arg_padding): Likewise.  Make static.
15548         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15549         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
15550         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
15551         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
15552         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15553         (pa_function_arg_padding): Make static.  Return pad_direction instead
15554         of direction.
15555         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
15556         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
15557         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
15558         instead of direction.  Use targetm.calls.function_arg_padding.
15559         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
15560         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
15561         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
15562         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
15563         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
15564         Redefine.
15565         (function_arg_padding): Rename to...
15566         (rs6000_function_arg_padding): ...this.  Make static.  Return
15567         pad_direction instead of direction.
15568         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
15569         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
15570         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
15571         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
15572         instead of direction.  Use targetm.calls.function_arg_padding.
15573         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
15574         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
15575         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
15576         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
15577         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15578         (function_arg_padding): Rename to...
15579         (rs6000_function_arg_padding): ...this.  Make static.  Return
15580         pad_direction instead of direction.
15581         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
15582         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
15583         * config/s390/s390.c (s390_function_arg_padding): New function.
15584         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15585         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
15586         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
15587         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
15588         (function_arg_padding): Rename to...
15589         (sparc_function_arg_padding): ...this.  Make static.  Return
15590         pad_direction instead of direction.
15591         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
15592         * config/spu/spu.c (spu_function_arg_padding): New function.
15593         (TARGET_FUNCTION_ARG_PADDING): Redefine.
15594         * system.h (FUNCTION_ARG_PADDING): Poison.
15595
15596 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
15597             Alan Hayward  <alan.hayward@arm.com>
15598             David Sherwood  <david.sherwood@arm.com>
15599
15600         * target.def (modes_tieable_p): New hook.
15601         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
15602         (TARGET_MODES_TIEABLE_P): ...this.
15603         * doc/tm.texi.in: Regenerate.
15604         * hooks.h (hook_bool_mode_mode_true): Declare.
15605         * hooks.c (hook_bool_mode_mode_true): New function.
15606         * combine.c (subst): Use targetm.modes_tieable_p instead of
15607         MODES_TIEABLE_P.
15608         * dse.c (find_shift_sequence): Likewise.
15609         * expmed.c (extract_low_bits): Likewise.
15610         * lower-subreg.c: Include target.h.
15611         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
15612         MODES_TIEABLE_P.
15613         * rtlanal.c (rtx_cost): Likewise.
15614         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
15615         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
15616         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
15617         (TARGET_MODES_TIEABLE_P): Redefine.
15618         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
15619         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
15620         (TARGET_MODES_TIEABLE_P): Redefine.
15621         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
15622         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
15623         (arc_modes_tieable_p): New function.
15624         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
15625         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
15626         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
15627         (arm_modes_tieable_p): Make static.
15628         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
15629         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
15630         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
15631         (TARGET_MODES_TIEABLE_P): Redefine.
15632         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
15633         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
15634         (TARGET_MODES_TIEABLE_P): Redefine.
15635         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
15636         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
15637         (cr16_modes_tieable_p): New function.
15638         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
15639         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
15640         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
15641         (TRULY_NOOP_TRUNCATION): Update comment.
15642         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
15643         (TRULY_NOOP_TRUNCATION): Update comment.
15644         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
15645         (frv_modes_tieable_p): New function.
15646         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
15647         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
15648         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
15649         (TARGET_MODES_TIEABLE_P): Redefine.
15650         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
15651         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
15652         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
15653         (TARGET_MODES_TIEABLE_P): Redefine.
15654         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
15655         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
15656         (ia64_modes_tieable_p): New function.
15657         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
15658         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
15659         (iq2000_modes_tieable_p): New function.
15660         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
15661         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
15662         (lm32_modes_tieable_p): New function.
15663         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
15664         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
15665         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
15666         (TARGET_MODES_TIEABLE_P): Redefine.
15667         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
15668         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
15669         (m32r_modes_tieable_p): New function.
15670         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
15671         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
15672         (m68k_modes_tieable_p): New function.
15673         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
15674         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
15675         (mcore_modes_tieable_p): New function.
15676         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
15677         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
15678         function.
15679         (TARGET_MODES_TIEABLE_P): Redefine.
15680         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
15681         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
15682         * config/mips/mips.c (mips_modes_tieable_p): Make static.
15683         (TARGET_MODES_TIEABLE_P): Redefine.
15684         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
15685         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
15686         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
15687         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
15688         (mn10300_modes_tieable_p): ...this and make static.
15689         (TARGET_MODES_TIEABLE_P): Redefine.
15690         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
15691         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
15692         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
15693         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
15694         (msp430_modes_tieable_p): Make static.
15695         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
15696         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
15697         (TARGET_MODES_TIEABLE_P): Redefine.
15698         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
15699         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
15700         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
15701         (TARGET_MODES_TIEABLE_P): Redefine.
15702         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
15703         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
15704         * config/pa/pa.c (pa_modes_tieable_p): Make static.
15705         (TARGET_MODES_TIEABLE_P): Redefine.
15706         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
15707         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
15708         (pdp11_modes_tieable_p): New function.
15709         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
15710         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
15711         (rs6000_modes_tieable_p): New function.
15712         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
15713         * config/powerpcspe/powerpcspe.md: Update comment.
15714         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
15715         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
15716         (TARGET_MODES_TIEABLE_P): Redefine.
15717         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
15718         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
15719         (rl78_modes_tieable_p): New function.
15720         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
15721         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
15722         (rs6000_modes_tieable_p): New function.
15723         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
15724         * config/rs6000/rs6000.md: Update comment.
15725         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
15726         * config/rx/rx.c (rx_modes_tieable_p): New function.
15727         (TARGET_MODES_TIEABLE_P): Redefine.
15728         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
15729         * config/s390/s390.c (s390_modes_tieable_p): New function.
15730         (TARGET_MODES_TIEABLE_P): Redefine.
15731         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
15732         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
15733         (sh_modes_tieable_p): New function.
15734         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
15735         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
15736         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
15737         (sparc_modes_tieable_p): Make static.
15738         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
15739         * config/spu/spu.c (spu_modes_tieable_p): New function.
15740         (TARGET_MODES_TIEABLE_P): Redefine.
15741         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
15742         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
15743         (TARGET_MODES_TIEABLE_P): Redefine.
15744         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
15745         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
15746         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
15747         * config/v850/v850.c (v850_modes_tieable_p): New function.
15748         (TARGET_MODES_TIEABLE_P): Redefine.
15749         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
15750         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
15751         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
15752         (visium_modes_tieable_p): New function.
15753         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
15754         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
15755         (xtensa_modes_tieable_p): New function.
15756         * system.h (MODES_TIEABLE_P): Poison.
15757
15758 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
15759             Alan Hayward  <alan.hayward@arm.com>
15760             David Sherwood  <david.sherwood@arm.com>
15761
15762         * target.def (hard_regno_mode_ok): New hook.
15763         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
15764         (TARGET_HARD_REGNO_MODE_OK): ...this.
15765         * doc/tm.texi.in: Regenerate.
15766         * hooks.h (hook_bool_uint_mode_true): Declare.
15767         * hooks.c (hook_bool_uint_mode_true): New function.
15768         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
15769         HARD_REGNO_MODE_OK.
15770         * genpreds.c (write_insn_preds_c): Add an include of target.h.
15771         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
15772         instead of HARD_REGNO_MODE_OK.
15773         * caller-save.c: Include target.h.
15774         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
15775         HARD_REGNO_MODE_OK.
15776         * combine.c (can_combine_p): Likewise.
15777         (combinable_i3pat): Likewise.
15778         (can_change_dest_mode): Likewise.
15779         * expr.c (init_expr_target): Likewise.
15780         (convert_move): Likewise.
15781         (convert_modes): Likewise.
15782         * ira.c (setup_prohibited_class_mode_regs): Likewise.
15783         (setup_prohibited_mode_move_regs): Likewise.
15784         * ira.h (target_ira): Likewise.
15785         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15786         * lra-constraints.c (process_alt_operands): Likewise.
15787         (split_reg): Likewise.
15788         * recog.c (peep2_find_free_register): Likewise.
15789         * ree.c (combine_reaching_defs): Likewise.
15790         * regcprop.c (maybe_mode_change): Likewise.
15791         * reginfo.c (init_reg_sets_1): Likewise.
15792         (choose_hard_reg_mode): Likewise.
15793         (simplifiable_subregs): Likewise.
15794         * regrename.c (check_new_reg_p): Likewise.
15795         * reload.c (find_valid_class): Likewise.
15796         (find_valid_class_1): Likewise.
15797         (reload_inner_reg_of_subreg): Likewise.
15798         (push_reload): Likewise.
15799         (combine_reloads): Likewise.
15800         (find_dummy_reload): Likewise.
15801         (find_reloads): Likewise.
15802         * reload1.c (find_reg): Likewise.
15803         (set_reload_reg): Likewise.
15804         (allocate_reload_reg): Likewise.
15805         (choose_reload_regs): Likewise.
15806         (reload_adjust_reg_for_temp): Likewise.
15807         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
15808         (simplify_subreg_regno): Likewise.
15809         * sel-sched.c (init_regs_for_mode): Likewise.
15810         * varasm.c (make_decl_rtl): Likewise.
15811         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
15812         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
15813         HARD_REGNO_MODE_OK.
15814         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
15815         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
15816         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15817         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
15818         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
15819         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15820         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
15821         (arc_mode_class): Delete.
15822         (HARD_REGNO_MODE_OK): Delete.
15823         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15824         (arc_hard_regno_mode_ok): Rename old array to...
15825         (arc_hard_regno_mode_ok_modes): ...this.
15826         (arc_conditional_register_usage): Update accordingly.
15827         (arc_mode_class): Make static.
15828         (arc_hard_regno_mode_ok): New function.
15829         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
15830         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
15831         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15832         (arm_hard_regno_mode_ok): Make static.
15833         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
15834         HARD_REGNO_MODE_OK.
15835         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
15836         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
15837         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
15838         return a bool.
15839         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15840         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
15841         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
15842         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
15843         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
15844         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15845         * config/bfin/predicates.md (valid_reg_operand): Use
15846         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
15847         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
15848         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
15849         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15850         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
15851         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
15852         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15853         (cr16_hard_regno_mode_ok): Make static and return a bool.
15854         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
15855         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15856         (cris_hard_regno_mode_ok): New function.
15857         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
15858         (epiphany_mode_class): Delete.
15859         (HARD_REGNO_MODE_OK): Delete.
15860         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
15861         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15862         (hard_regno_mode_ok): Rename to...
15863         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
15864         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
15865         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
15866         HARD_REGNO_MODE_OK.
15867         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
15868         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
15869         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15870         (frv_hard_regno_mode_ok): Make static and return a bool.
15871         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
15872         HARD_REGNO_MODE_OK.
15873         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
15874         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
15875         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
15876         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
15877         and return a bool.
15878         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15879         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
15880         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
15881         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
15882         return a bool.
15883         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15884         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
15885         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15886         (ia64_hard_regno_mode_ok): New function.
15887         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
15888         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15889         (iq2000_hard_regno_mode_ok): New function.
15890         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
15891         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15892         (lm32_hard_regno_mode_ok): New function.
15893         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
15894         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
15895         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
15896         instead of HARD_REGNO_MODE_OK.
15897         (m32c_hard_regno_ok): Rename to...
15898         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
15899         (m32c_cannot_change_mode_class): Update accordingly.
15900         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15901         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
15902         (m32r_mode_class): Delete.
15903         (HARD_REGNO_MODE_OK): Delete.
15904         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15905         (m32r_hard_regno_mode_ok): Rename to...
15906         (m32r_hard_regno_modes): ...this.
15907         (m32r_mode_class): Make static.
15908         (m32r_hard_regno_mode_ok): New function.
15909         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
15910         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
15911         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15912         (m68k_hard_regno_mode_ok): Make static.
15913         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
15914         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15915         (mcore_hard_regno_mode_ok): New function.
15916         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
15917         (HARD_REGNO_MODE_OK): Delete.
15918         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
15919         Rename to...
15920         (microblaze_hard_regno_mode_ok_p): ...this and make static.
15921         (microblaze_hard_regno_mode_ok): New function.
15922         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15923         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
15924         (mips_hard_regno_mode_ok): Delete.
15925         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
15926         (mips_hard_regno_mode_ok_p): ...this and make static.
15927         (mips_hard_regno_mode_ok_p): Rename to...
15928         (mips_hard_regno_mode_ok_uncached): ...this.
15929         (mips_hard_regno_mode_ok): New function.
15930         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
15931         of HARD_REGNO_MODE_OK.
15932         (mips_option_override): Update after above name changes.
15933         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15934         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
15935         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
15936         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
15937         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
15938         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15939         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
15940         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
15941         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
15942         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15943         (msp430_hard_regno_mode_ok): Make static and return a bool.
15944         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
15945         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
15946         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
15947         and return a bool.
15948         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15949         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
15950         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
15951         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
15952         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
15953         (PA_HARD_REGNO_MODE_OK): ...this
15954         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
15955         (PA_HARD_REGNO_MODE_OK): ...this.
15956         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15957         (pa_hard_regno_mode_ok): New function.
15958         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
15959         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15960         (pdp11_hard_regno_mode_ok): New function.
15961         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
15962         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
15963         Delete.
15964         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
15965         Make static.
15966         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15967         (rs6000_hard_regno_mode_ok): Rename to...
15968         (rs6000_hard_regno_mode_ok_uncached): ...this.
15969         (rs6000_init_hard_regno_mode_ok): Update accordingly.
15970         (rs6000_hard_regno_mode_ok): New function.
15971         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
15972         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
15973         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
15974         (riscv_hard_regno_mode_ok): ...this and make static.
15975         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15976         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
15977         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
15978         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15979         (rl78_hard_regno_mode_ok): Make static and return bool.
15980         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
15981         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
15982         Delete.
15983         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
15984         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15985         (rs6000_hard_regno_mode_ok): Rename to...
15986         (rs6000_hard_regno_mode_ok_uncached): ...this.
15987         (rs6000_init_hard_regno_mode_ok): Update accordingly.
15988         (rs6000_hard_regno_mode_ok): New function.
15989         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
15990         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
15991         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15992         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
15993         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
15994         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
15995         (TARGET_HARD_REGNO_MODE_OK): Redefine.
15996         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
15997         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
15998         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
15999         (sh_hard_regno_mode_ok): Make static.
16000         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
16001         instead of HARD_REGNO_MODE_OK.
16002         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
16003         (sparc_mode_class): Delete.
16004         (HARD_REGNO_MODE_OK): Delete.
16005         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16006         (hard_regno_mode_classes): Make static.
16007         (sparc_mode_class): Likewise.
16008         (sparc_hard_regno_mode_ok): New function.
16009         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
16010         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
16011         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
16012         function.
16013         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16014         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
16015         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
16016         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
16017         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
16018         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16019         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
16020         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
16021         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16022         (visium_hard_regno_mode_ok): New function.
16023         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
16024         instead of HARD_REGNO_MODE_OK.
16025         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
16026         (HARD_REGNO_MODE_OK): Delete.
16027         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
16028         (xtensa_hard_regno_mode_ok_p): ...this and make static.
16029         (xtensa_option_override): Update accordingly.
16030         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16031         (xtensa_hard_regno_mode_ok): New function.
16032         * system.h (HARD_REGNO_MODE_OK): Poison.
16033
16034 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16035             Alan Hayward  <alan.hayward@arm.com>
16036             David Sherwood  <david.sherwood@arm.com>
16037
16038         * target.def (hard_regno_call_part_clobbered): New hook.
16039         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
16040         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
16041         * doc/tm.texi: Regenerate.
16042         * hooks.h (hook_bool_uint_mode_false): Declare.
16043         * hooks.c (hook_bool_uint_mode_false): New function.
16044         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16045         * cselib.c (cselib_process_insn): Use
16046         targetm.hard_regno_call_part_clobbered instead of
16047         HARD_REGNO_CALL_PART_CLOBBERED.
16048         * ira-conflicts.c (ira_build_conflicts): Likewise.
16049         * ira-costs.c (ira_tune_allocno_costs): Likewise.
16050         * lra-constraints.c (need_for_call_save_p): Likewise.
16051         * lra-lives.c: Include target.h.
16052         (check_pseudos_live_through_calls): Use
16053         targetm.hard_regno_call_part_clobbered instead of
16054         HARD_REGNO_CALL_PART_CLOBBERED.
16055         * regcprop.c: Include target.h.
16056         (copyprop_hardreg_forward_1): Use
16057         targetm.hard_regno_call_part_clobbered instead of
16058         HARD_REGNO_CALL_PART_CLOBBERED.
16059         * reginfo.c (choose_hard_reg_mode): Likewise.
16060         * regrename.c (check_new_reg_p): Likewise.
16061         * reload.c (find_equiv_reg): Likewise.
16062         * reload1.c (emit_reload_insns): Likewise.
16063         * sched-deps.c (deps_analyze_insn): Likewise.
16064         * sel-sched.c (init_regs_for_mode): Likewise.
16065         (mark_unavailable_hard_regs): Likewise.
16066         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
16067         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16068         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
16069         New function.
16070         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16071         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16072         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
16073         Delete.
16074         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
16075         and return a bool.
16076         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16077         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16078         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
16079         function.
16080         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16081         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16082         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
16083         function.
16084         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16085         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
16086         Delete.
16087         * config/powerpcspe/powerpcspe.c
16088         (rs6000_hard_regno_call_part_clobbered): New function.
16089         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16090         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16091         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
16092         New function.
16093         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16094         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16095         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
16096         function.
16097         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
16098         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
16099         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
16100
16101 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16102             Alan Hayward  <alan.hayward@arm.com>
16103             David Sherwood  <david.sherwood@arm.com>
16104
16105         * rtl.h (subreg_memory_offset): Declare.
16106         * emit-rtl.c (subreg_memory_offset): New function.
16107         * expmed.c (store_bit_field_1): Use it.
16108         * expr.c (undefined_operand_subword_p): Likewise.
16109         * simplify-rtx.c (simplify_subreg): Likewise.
16110
16111 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
16112
16113         PR rtl-optimization/57448
16114         PR target/67458
16115         PR target/81316
16116         * optabs.c (expand_atomic_load): Place compiler memory barriers if
16117         using atomic_load pattern.
16118         (expand_atomic_store): Likewise.
16119
16120 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
16121
16122         PR sanitizer/81981
16123         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
16124         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
16125         handling.  Use replace_call_with_value with NULL instead of
16126         gsi_replace, unlink_stmt_vdef and release_defs.
16127
16128         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
16129         instead of tab.
16130
16131         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
16132
16133 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16134
16135         PR bootstrap/82045
16136         * rtl.h (emit_library_call_value_1): Declare.
16137         (emit_library_call): Replace declaration with a series of overloads.
16138         Remove the parameter count argument.
16139         (emit_library_call_value): Likewise.
16140         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
16141         with an "rtx_mode_t *".
16142         (emit_library_call_value): Delete.
16143         (emit_library_call): Likewise.
16144         * asan.c (asan_emit_stack_protection): Update calls accordingly.
16145         (asan_emit_allocas_unpoison): Likewise.
16146         * builtins.c (expand_builtin_powi): Likewise.
16147         (expand_asan_emit_allocas_unpoison): Likewise.
16148         * cfgexpand.c (expand_main_function): Likewise.
16149         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
16150         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
16151         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
16152         * config/arm/arm.c (arm_trampoline_init): Likewise.
16153         (arm_call_tls_get_addr): Likewise.
16154         (arm_expand_divmod_libfunc): Likewise.
16155         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
16156         (smulsi3_highpart): Likewise.
16157         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
16158         (c6x_expand_compare): Likewise.
16159         (c6x_expand_movmem): Likewise.
16160         * config/frv/frv.c (frv_trampoline_init): Likewise.
16161         * config/i386/i386.c (ix86_trampoline_init): Likewise.
16162         (ix86_expand_divmod_libfunc): Likewise.
16163         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
16164         (ia64_expand_compare): Likewise.
16165         (ia64_profile_hook): Likewise.
16166         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
16167         (nonlocal_goto): Likewise.
16168         (restore_stack_nonlocal): Likewise.
16169         * config/m32r/m32r.c (block_move_call): Likewise.
16170         (m32r_trampoline_init): Likewise.
16171         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
16172         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
16173         (m68k_call_m68k_read_tp): Likewise.
16174         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
16175         (microblaze_expand_divide): Likewise.
16176         * config/mips/mips.h (mips_args): Likewise.
16177         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
16178         (MIPS_ICACHE_SYNC): Likewise.
16179         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
16180         (nios2_trampoline_init): Likewise.
16181         * config/pa/pa.c (hppa_tls_call): Likewise.
16182         (pa_trampoline_init): Likewise.
16183         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
16184         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
16185         (expand_strn_compare): Likewise.
16186         (rs6000_generate_compare): Likewise.
16187         (rs6000_expand_float128_convert): Likewise.
16188         (output_profile_hook): Likewise.
16189         (rs6000_trampoline_init): Likewise.
16190         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
16191         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
16192         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
16193         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
16194         (rs6000_generate_compare): Likewise.
16195         (rs6000_expand_float128_convert): Likewise.
16196         (output_profile_hook): Likewise.
16197         (rs6000_trampoline_init): Likewise.
16198         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
16199         * config/sh/sh.c (sh_trampoline_init): Likewise.
16200         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
16201         (sparc_emit_float_lib_cmp): Likewise.
16202         (sparc32_initialize_trampoline): Likewise.
16203         (sparc64_initialize_trampoline): Likewise.
16204         (sparc_profile_hook): Likewise.
16205         * config/spu/spu.c (ea_load_store): Likewise.
16206         * config/spu/spu.md (floatunssidf2): Likewise.
16207         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
16208         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
16209         * config/visium/visium.c (expand_block_move_4): Likewise.
16210         (expand_block_move_2): Likewise.
16211         (expand_block_move_1): Likewise.
16212         (expand_block_set_4): Likewise.
16213         (expand_block_set_2): Likewise.
16214         (expand_block_set_1): Likewise.
16215         (visium_trampoline_init): Likewise.
16216         (visium_profile_hook): Likewise.
16217         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
16218         (xtensa_setup_frame_addresses): Likewise.
16219         (xtensa_trampoline_init): Likewise.
16220         * except.c (sjlj_emit_function_enter): Likewise.
16221         (sjlj_emit_function_exit): Likewise.
16222         * explow.c (allocate_dynamic_stack_space): Likewise.
16223         (probe_stack_range): Likewise.
16224         * expr.c (convert_mode_scalar): Likewise.
16225         * optabs.c (expand_binop): Likewise.
16226         (expand_twoval_binop_libfunc): Likewise.
16227         (expand_unop): Likewise.
16228         (prepare_cmp_insn): Likewise.
16229         (prepare_float_lib_cmp): Likewise.
16230         (expand_float): Likewise.
16231         (expand_fix): Likewise.
16232         (expand_fixed_convert): Likewise.
16233         (maybe_emit_sync_lock_test_and_set): Likewise.
16234         (expand_atomic_compare_and_swap): Likewise.
16235         (expand_mem_thread_fence): Likewise.
16236         (expand_atomic_fetch_op): Likewise.
16237
16238 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
16239
16240         * doc/generic.texi (OpenACC): Adjust URL.
16241         * doc/invoke.texi (C Dialect Options): Ditto.
16242
16243 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
16244
16245         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
16246         predicate for operand 1.  Add (m,<S>) constraint.
16247         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
16248         Prevent memory operand 1 with register operand 2.
16249
16250 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
16251
16252         PR rtl-optimization/82024
16253         * combine.c (try_combine): If the combination result is a PARALLEL,
16254         and we only need to retain the SET in there that would be placed
16255         at I2, check that we can place that at I3 instead, before doing so.
16256
16257 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
16258
16259         PR target/81766
16260         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
16261         instead of void.
16262         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
16263         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
16264         and label.
16265
16266 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
16267             Jeff Law  <law@redhat.com>
16268
16269         * varasm.c (bss_initializer_p): Do not put constants into .bss
16270         (categorize_decl_for_section): Handle bss_initializer_p returning
16271         false when DECL_INITIAL is NULL.
16272
16273 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16274
16275         PR target/82012
16276         * config/s390/s390.c (s390_can_inline_p): New function.
16277
16278 2017-09-01  Jeff Law  <law@redhat.com>
16279
16280         PR tree-optimization/82052
16281         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
16282         Always initialize the returned slot after a hash table miss
16283         when INSERT is true.
16284
16285 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
16286
16287         * config/s390/s390.md (mem_signal_fence): Remove.
16288         * doc/md.texi (mem_signal_fence): Remove.
16289         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
16290         Update comments.
16291         * target-insns.def (mem_signal_fence): Remove.
16292
16293 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
16294
16295         PR sanitizer/81902
16296         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
16297
16298         PR sanitizer/81923
16299         * asan.c (create_odr_indicator): Strip name encoding from assembler
16300         name before appending it after __odr_asan_.
16301
16302 2017-09-01  Martin Liska  <mliska@suse.cz>
16303
16304         PR tree-optimization/82059
16305         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
16306         frequency only when an edge is redirected.
16307
16308 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16309
16310         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
16311         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
16312         (arc_conditional_register_usage): Remove ARC600 lp_count
16313         exception.
16314         (arc_file_start): Emit Tag_ARC_CPU_variation.
16315         (arc_can_use_doloop_p): New conditions to use ZOLs.
16316         (hwloop_fail): New function.
16317         (hwloop_optimize): Likewise.
16318         (hwloop_pattern_reg): Likewise.
16319         (arc_doloop_hooks): New struct, to be used with reorg_loops.
16320         (arc_reorg_loops): New function, calls reorg_loops.
16321         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
16322         (arc600_corereg_hazard): Remove ZOL checking, case handled by
16323         hwloop_optimize.
16324         (arc_loop_hazard): Remove function, functionality moved into
16325         hwloop_optimize.
16326         (arc_hazard): Remove arc_loop_hazard call.
16327         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
16328         into hwloop_optimize.
16329         (arc_label_align): Remove ZOL handling.
16330         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
16331         * config/arc/arc.md (doloop_begin): Remove pattern.
16332         (doloop_begin_i): Likewise.
16333         (doloop_end_i): Likewise.
16334         (doloop_fallback): Likewise.
16335         (doloop_fallback_m): Likewise.
16336         (doloop_end): Reimplement expand.
16337         (arc_lp): New pattern for LP instruction.
16338         (loop_end): New pattern.
16339         (loop_fail): Likewise.
16340         (decrement_and_branch_until_zero): Likewise.
16341         * config/arc/arc.opt (mlpc-width): New option.
16342         * doc/invoke.texi (mlpc-width): Document option.
16343
16344 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16345
16346         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
16347         (arc_ccfsm_advance): Fix checking for delay slots.
16348         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
16349
16350 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16351
16352         * config/arc/arc.md (movqi_insn): Add stores to save constant long
16353         immediates.
16354         (movhi_insn): Update store instruction constraint which are saving
16355         6-bit short immediates.
16356         (movsi_insn): Consider also short scaled load operations.
16357         (zero_extendhisi2_i): Use Usd constraint instead of T.
16358         (extendhisi2_i): Add q constraint.
16359         (arc_clzsi2): Add type and length attributes.
16360         (arc_ctzsi2): Likewise.
16361         * config/arc/constraints.md (Usc): Update constraint, the
16362         assembler can parse two relocations for a single instruction.
16363
16364 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
16365
16366         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
16367         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
16368
16369 2017-08-31  Olivier Hainque  <hainque@adacore.com>
16370
16371         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
16372         match as powerpc-wrs-vxworks*.
16373
16374 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
16375
16376         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
16377         register constraint for by-element operand.
16378         (aarch64_mls_elt_merge<mode>): Likewise.
16379
16380 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16381
16382         * config/arc/arc.c (arc_can_follow_jump): Check for short
16383         branches.
16384
16385 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16386
16387         * config.gcc: Use g.opt for arc.
16388         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
16389         functionality moved to ...
16390         (legitimate_scaled_address_p): New function, ...here.
16391         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
16392         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
16393         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
16394         condition.
16395         (arc_override_options): Handle G option.
16396         (arc_output_pic_addr_const): Correct function definition.
16397         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
16398         (arc_decl_anon_ns_mem_p): Delete.
16399         (arc_in_small_data_p): Overhaul this function to take into
16400         consideration the value given via G option.
16401         (arc_rewrite_small_data_1): Renamed and corrected old
16402         arc_rewrite_small_data function.
16403         (arc_rewrite_small_data): New function.
16404         (small_data_pattern): Don't use pic_offset_table_rtx.
16405         * config/arc/arc.h (CC1_SPEC): Recognize G option.
16406         * config/arc/simdext.md (movmisalignv2hi): Use
16407         prepare_move_operands function.
16408         (mov*): Likewise.
16409         (movmisalign*): Likewise.
16410         * doc/invoke.texi (ARC options): Document -G option.
16411
16412 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
16413
16414         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
16415         prototype.
16416         * config/arc/arc.c (arc_print_operand): Output scalled address for
16417         sdata whenever is possible.
16418         (arc_in_small_data_p): Allow sdata for 64bit datum when double
16419         load/stores are available.
16420         (compact_sda_memory_operand): Check for the alignment required by
16421         code density instructions.
16422         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
16423         constraint.
16424         * config/arc/constraints.md (Usd): Update constraint.
16425         (Us0): New constraint.
16426         (Usc): Update constraint.
16427
16428 2017-08-31  Richard Biener  <rguenther@suse.de>
16429
16430         PR middle-end/82054
16431         * dwarf2out.c (dwarf2out_early_global_decl): Process each
16432         function only once.
16433
16434 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
16435
16436         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
16437         Resize type_signature.
16438
16439 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
16440             Alan Hayward  <alan.hayward@arm.com>
16441             David Sherwood  <david.sherwood@arm.com>
16442
16443         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
16444         subregs whose inner modes can be stored in GPRs.
16445         (aarch64_classify_index): Likewise.
16446
16447 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
16448             Alan Hayward  <alan.hayward@arm.com>
16449             David Sherwood  <david.sherwood@arm.com>
16450
16451         * config/aarch64/iterators.md (V_cmp_result): Rename to...
16452         (V_INT_EQUIV): ...this.
16453         (v_cmp_result): Rename to...
16454         (v_int_equiv): ...this.
16455         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
16456         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
16457         (copysign<mode>3): Likewise.
16458         (aarch64_simd_bsl<mode>_internal): Likewise.
16459         (aarch64_simd_bsl<mode>): Likewise.
16460         (vec_cmp<mode><mode>): Likewise.
16461         (vcond<mode><mode>): Likewise.
16462         (vcond<v_cmp_mixed><mode>): Likewise.
16463         (vcondu<mode><v_cmp_mixed>): Likewise.
16464         (aarch64_cm<optab><mode>): Likewise.
16465         (aarch64_cmtst<mode>): Likewise.
16466         (aarch64_fac<optab><mode>): Likewise.
16467         (vec_perm_const<mode>): Likewise.
16468         (vcond_mask_<mode><v_cmp_result>): Rename to...
16469         (vcond_mask_<mode><v_int_equiv>): ...this.
16470         (vec_cmp<mode><v_cmp_result>): Rename to...
16471         (vec_cmp<mode><v_int_equiv>): ...this.
16472
16473 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
16474             Alan Hayward  <alan.hayward@arm.com>
16475             David Sherwood  <david.sherwood@arm.com>
16476
16477         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
16478         vector modes.
16479         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
16480         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
16481         (UNSPEC_LD4_DREG): New unspecs.
16482         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
16483         (aarch64_ld2<mode>_dreg_be): Replace with...
16484         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
16485         unspec.
16486         (aarch64_ld3<mode>_dreg_le)
16487         (aarch64_ld3<mode>_dreg_be): Replace with...
16488         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
16489         unspec.
16490         (aarch64_ld4<mode>_dreg_le)
16491         (aarch64_ld4<mode>_dreg_be): Replace with...
16492         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
16493         unspec.
16494
16495 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16496
16497         PR tree-optimization/81987
16498         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
16499         insert an initializer in a location not dominated by the stride
16500         definition.
16501
16502 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
16503
16504         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
16505         on the entire header of the finally block in the fallthru case.
16506
16507 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
16508
16509         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
16510
16511 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
16512
16513         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
16514         rs6000_emit_move_from_cr and call renamed function.
16515         (rs6000_emit_prologue): Call renamed functions.
16516         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
16517         movesi_from_cr, remove volatile CRs.
16518
16519 2017-08-30  Jon Beniston  <jon@beniston.com>
16520             Richard Biener  <rguenther@suse.de>
16521
16522         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
16523         of VECTOR_MODE_P check.
16524         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
16525         element vector types.
16526
16527 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16528
16529         * df.h (df_read_modify_subreg_p): Remove in favor of...
16530         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
16531         const_rtx instead of an rtx.
16532         * cprop.c (local_cprop_find_used_regs): Update accordingly.
16533         * df-problems.c (df_word_lr_mark_ref): Likewise.
16534         * ira-lives.c (mark_pseudo_reg_live): Likewise.
16535         (mark_pseudo_reg_dead): Likewise.
16536         (mark_ref_dead): Likewise.
16537         * reginfo.c (init_subregs_of_mode): Likewise.
16538         * sched-deps.c (sched_analyze_1): Likewise.
16539         * df-scan.c (df_def_record_1): Likewise.
16540         (df_uses_record): Likewise.
16541         (df_read_modify_subreg_p): Remove in favor of...
16542         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
16543         const_rtx instead of an rtx.
16544
16545 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16546             Alan Hayward  <alan.hayward@arm.com>
16547             David Sherwood  <david.sherwood@arm.com>
16548
16549         * rtl.h (partial_subreg_p): New function.
16550         * caller-save.c (save_call_clobbered_regs): Use it.
16551         * calls.c (expand_call): Likewise.
16552         * combine.c (combinable_i3pat): Likewise.
16553         (simplify_set): Likewise.
16554         (make_extraction): Likewise.
16555         (make_compound_operation_int): Likewise.
16556         (gen_lowpart_or_truncate): Likewise.
16557         (force_to_mode): Likewise.
16558         (make_field_assignment): Likewise.
16559         (reg_truncated_to_mode): Likewise.
16560         (record_truncated_value): Likewise.
16561         (move_deaths): Likewise.
16562         * cse.c (record_jump_cond): Likewise.
16563         (cse_insn): Likewise.
16564         * cselib.c (cselib_lookup_1): Likewise.
16565         * expmed.c (extract_bit_field_using_extv): Likewise.
16566         * function.c (assign_parm_setup_reg): Likewise.
16567         * ifcvt.c (noce_convert_multiple_sets): Likewise.
16568         * ira-build.c (create_insn_allocnos): Likewise.
16569         * lra-coalesce.c (merge_pseudos): Likewise.
16570         * lra-constraints.c (match_reload): Likewise.
16571         (simplify_operand_subreg): Likewise.
16572         (curr_insn_transform): Likewise.
16573         * lra-lives.c (process_bb_lives): Likewise.
16574         * lra.c (new_insn_reg): Likewise.
16575         (lra_substitute_pseudo): Likewise.
16576         * regcprop.c (mode_change_ok): Likewise.
16577         (maybe_mode_change): Likewise.
16578         (copyprop_hardreg_forward_1): Likewise.
16579         * reload.c (push_reload): Likewise.
16580         (find_reloads): Likewise.
16581         (find_reloads_subreg_address): Likewise.
16582         * reload1.c (alter_reg): Likewise.
16583         (eliminate_regs_1): Likewise.
16584         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
16585
16586 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
16587
16588         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
16589         back to if statements, including unpack.
16590
16591 2017-08-30  Martin Liska  <mliska@suse.cz>
16592
16593         PR inline-asm/82001
16594         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
16595         Rename to ...
16596         (func_checker::compare_asm_inputs_outputs): ... this function.
16597         (func_checker::compare_gimple_asm): Use the function to compare
16598         also ASM constrains.
16599         * ipa-icf-gimple.h: Rename the function.
16600
16601 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16602             Alan Hayward  <alan.hayward@arm.com>
16603             David Sherwood  <david.sherwood@arm.com>
16604
16605         * coretypes.h (complex_mode): New type.
16606         * gdbhooks.py (build_pretty_printer): Handle it.
16607         * machmode.h (complex_mode): New class.
16608         (complex_mode::includes_p): New function.
16609         (is_complex_int_mode): Likewise.
16610         (is_complex_float_mode): Likewise.
16611         * genmodes.c (get_mode_class): Handle complex mode classes.
16612         * function.c (expand_function_end): Use is_complex_int_mode.
16613
16614 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16615             Alan Hayward  <alan.hayward@arm.com>
16616             David Sherwood  <david.sherwood@arm.com>
16617
16618         * coretypes.h (scalar_mode_pod): New typedef.
16619         * gdbhooks.py (build_pretty_printer): Handle it.
16620         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
16621         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
16622         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
16623         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
16624         as_a <scalar_mode>.
16625
16626 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16627             Alan Hayward  <alan.hayward@arm.com>
16628             David Sherwood  <david.sherwood@arm.com>
16629
16630         * machmode.h (mode_for_vector): Take a scalar_mode instead
16631         of a machine_mode.
16632         * stor-layout.c (mode_for_vector): Likewise.
16633         * explow.c (promote_mode): Use as_a <scalar_mode>.
16634         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
16635
16636 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16637             Alan Hayward  <alan.hayward@arm.com>
16638             David Sherwood  <david.sherwood@arm.com>
16639
16640         * target.def (preferred_simd_mode): Take a scalar_mode
16641         instead of a machine_mode.
16642         * targhooks.h (default_preferred_simd_mode): Likewise.
16643         * targhooks.c (default_preferred_simd_mode): Likewise.
16644         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
16645         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
16646         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
16647         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
16648         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
16649         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
16650         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
16651         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
16652         Likewise.
16653         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
16654         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
16655         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
16656         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
16657         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
16658         * doc/tm.texi: Regenerate.
16659         * optabs-query.c (can_vec_mask_load_store_p): Return false for
16660         non-scalar modes.
16661
16662 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16663             Alan Hayward  <alan.hayward@arm.com>
16664             David Sherwood  <david.sherwood@arm.com>
16665
16666         * target.def (scalar_mode_supported_p): Take a scalar_mode
16667         instead of a machine_mode.
16668         * targhooks.h (default_scalar_mode_supported_p): Likewise.
16669         * targhooks.c (default_scalar_mode_supported_p): Likewise.
16670         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
16671         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
16672         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
16673         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
16674         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
16675         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
16676         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
16677         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
16678         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
16679         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
16680         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
16681         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
16682         Likewise.
16683         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
16684         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
16685         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
16686         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
16687         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
16688         Likewise.
16689         * doc/tm.texi: Regenerate.
16690
16691 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16692             Alan Hayward  <alan.hayward@arm.com>
16693             David Sherwood  <david.sherwood@arm.com>
16694
16695         * coretypes.h (opt_scalar_mode): New typedef.
16696         * gdbhooks.py (build_pretty_printers): Handle it.
16697         * machmode.h (mode_iterator::get_2xwider): Add overload for
16698         opt_mode<T>.
16699         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
16700         over scalar modes.
16701         * expr.c (convert_mode_scalar): Likewise.
16702         * omp-low.c (omp_clause_aligned_alignment): Likewise.
16703         * optabs.c (expand_float): Likewise.
16704         (expand_fix): Likewise.
16705         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
16706
16707 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16708             Alan Hayward  <alan.hayward@arm.com>
16709             David Sherwood  <david.sherwood@arm.com>
16710
16711         * optabs.c (expand_float): Explicitly check for scalars before
16712         using a branching expansion.
16713         (expand_fix): Likewise.
16714
16715 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16716             Alan Hayward  <alan.hayward@arm.com>
16717             David Sherwood  <david.sherwood@arm.com>
16718
16719         * expr.c (convert_mode): Split scalar handling out into...
16720         (convert_mode_scalar): ...this new function.  Treat the modes
16721         as scalar_modes.
16722
16723 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16724             Alan Hayward  <alan.hayward@arm.com>
16725             David Sherwood  <david.sherwood@arm.com>
16726
16727         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
16728         and scalar_mode.
16729         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
16730
16731 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16732             Alan Hayward  <alan.hayward@arm.com>
16733             David Sherwood  <david.sherwood@arm.com>
16734
16735         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
16736         rather than a machine_mode.
16737         (fixed_from_string): Likewise.
16738         (fixed_convert): Likewise.
16739         (fixed_convert_from_int): Likewise.
16740         (fixed_convert_from_real): Likewise.
16741         (real_convert_from_fixed): Likewise.
16742         * fixed-value.c (fixed_from_double_int): Likewise.
16743         (fixed_from_string): Likewise.
16744         (fixed_convert): Likewise.
16745         (fixed_convert_from_int): Likewise.
16746         (fixed_convert_from_real): Likewise.
16747         (real_convert_from_fixed): Likewise.
16748         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
16749
16750 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16751             Alan Hayward  <alan.hayward@arm.com>
16752             David Sherwood  <david.sherwood@arm.com>
16753
16754         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
16755         of separate mode class checks.  Do not allow vector modes here.
16756         (immed_wide_int_const): Use as_a <scalar_mode>.
16757         * explow.c (trunc_int_for_mode): Likewise.
16758         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
16759         (wi::shwi): Likewise.
16760         (wi::min_value): Likewise.
16761         (wi::max_value): Likewise.
16762         * dwarf2out.c (loc_descriptor): Likewise.
16763         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
16764         for CONST_WIDE_INT.
16765
16766 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16767             Alan Hayward  <alan.hayward@arm.com>
16768             David Sherwood  <david.sherwood@arm.com>
16769
16770         * tree.h (SCALAR_TYPE_MODE): New macro.
16771         * expr.c (expand_expr_addr_expr_1): Use it.
16772         (expand_expr_real_2): Likewise.
16773         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
16774         (fold_convert_const_fixed_from_int): Likewise.
16775         (fold_convert_const_fixed_from_real): Likewise.
16776         (native_encode_fixed): Likewise
16777         (native_encode_complex): Likewise
16778         (native_encode_vector): Likewise.
16779         (native_interpret_fixed): Likewise.
16780         (native_interpret_real): Likewise.
16781         (native_interpret_complex): Likewise.
16782         (native_interpret_vector): Likewise.
16783         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
16784         (simd_clone_adjust_argument_types): Likewise.
16785         (simd_clone_init_simd_arrays): Likewise.
16786         (simd_clone_adjust): Likewise.
16787         * stor-layout.c (layout_type): Likewise.
16788         * tree.c (build_minus_one_cst): Likewise.
16789         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
16790         * tree-inline.c (estimate_move_cost): Likewise.
16791         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
16792         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
16793         (vectorizable_reduction): Likewise.
16794         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
16795         (vect_recog_mixed_size_cond_pattern): Likewise.
16796         (check_bool_pattern): Likewise.
16797         (adjust_bool_pattern): Likewise.
16798         (search_type_for_mask_1): Likewise.
16799         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
16800         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
16801         (vectorizable_load): Likewise.
16802         (vectorizable_store): Likewise.
16803         * ubsan.c (ubsan_encode_value): Likewise.
16804         * varasm.c (output_constant): Likewise.
16805
16806 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16807             Alan Hayward  <alan.hayward@arm.com>
16808             David Sherwood  <david.sherwood@arm.com>
16809
16810         * coretypes.h (scalar_mode): New class.
16811         * machmode.h (scalar_mode): Likewise.
16812         (scalar_mode::includes_p): New function.
16813         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
16814         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
16815         * genmodes.c (get_mode_class): Handle remaining scalar modes.
16816         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
16817         * expmed.c (store_bit_field_1): Likewise.
16818         (extract_bit_field_1): Likewise.
16819         * expr.c (write_complex_part): Likewise.
16820         (read_complex_part): Likewise.
16821         (emit_move_complex_push): Likewise.
16822         (expand_expr_real_2): Likewise.
16823         * function.c (assign_parm_setup_reg): Likewise.
16824         (assign_parms_unsplit_complex): Likewise.
16825         * optabs.c (expand_binop): Likewise.
16826         * rtlanal.c (subreg_get_info): Likewise.
16827         * simplify-rtx.c (simplify_immed_subreg): Likewise.
16828         * varasm.c (output_constant_pool_2): Likewise.
16829
16830 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16831             Alan Hayward  <alan.hayward@arm.com>
16832             David Sherwood  <david.sherwood@arm.com>
16833
16834         * expmed.c (extract_high_half): Use scalar_int_mode and remove
16835         assertion.
16836         (expmed_mult_highpart_optab): Likewise.
16837         (expmed_mult_highpart): Likewise.
16838
16839 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
16840             Alan Hayward  <alan.hayward@arm.com>
16841             David Sherwood  <david.sherwood@arm.com>
16842
16843         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
16844         instead of a machine_mode.
16845         (builtin_memset_read_str): Likewise.
16846         * builtins.c (c_readstr): Likewise.
16847         (builtin_memcpy_read_str): Likewise.
16848         (builtin_strncpy_read_str): Likewise.
16849         (builtin_memset_read_str): Likewise.
16850         (builtin_memset_gen_str): Likewise.
16851         (expand_builtin_signbit): Use scalar_int_mode for local variables.
16852         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
16853         instead of a machine_mode.
16854         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
16855         variables.
16856         (make_extraction): Likewise.
16857         (try_widen_shift_mode): Take and return scalar_int_modes instead
16858         of machine_modes.
16859         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
16860         a scalar_int_mode instead of a machine_mode.
16861         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
16862         (avr_addr_space_pointer_mode): Likewise.
16863         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
16864         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
16865         (msp430_unwind_word_mode): Likewise.
16866         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
16867         (spu_addr_space_pointer_mode): Likewise.
16868         (spu_addr_space_address_mode): Likewise.
16869         (spu_libgcc_cmp_return_mode): Likewise.
16870         (spu_libgcc_shift_count_mode): Likewise.
16871         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
16872         (rl78_addr_space_pointer_mode): Likewise.
16873         (fl78_unwind_word_mode): Likewise.
16874         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
16875         machine_mode.
16876         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
16877         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
16878         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
16879         (mips_valid_pointer_mode): Likewise.
16880         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
16881         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
16882         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
16883         of a machine_mode.
16884         (ft32_addr_space_address_mode): Likewise.
16885         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
16886         scalar_int_mode instead of a machine_mode.
16887         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
16888         of a machine_mode.
16889         (m32c_addr_space_address_mode): Likewise.
16890         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
16891         (rs6000_eh_return_filter_mode): Likewise.
16892         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
16893         (rs6000_eh_return_filter_mode): Likewise.
16894         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
16895         (s390_libgcc_shift_count_mode): Likewise.
16896         (s390_unwind_word_mode): Likewise.
16897         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
16898         machine_mode.
16899         * target.def (mode_rep_extended): Likewise.
16900         (valid_pointer_mode): Likewise.
16901         (addr_space.valid_pointer_mode): Likewise.
16902         (eh_return_filter_mode): Return a scalar_int_mode rather than
16903         a machine_mode.
16904         (libgcc_cmp_return_mode): Likewise.
16905         (libgcc_shift_count_mode): Likewise.
16906         (unwind_word_mode): Likewise.
16907         (addr_space.pointer_mode): Likewise.
16908         (addr_space.address_mode): Likewise.
16909         * doc/tm.texi: Regenerate.
16910         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
16911         a machine_mode.
16912         (do_jump): Use scalar_int_mode for local variables.
16913         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
16914         rather than a machine_mode.
16915         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
16916         (scompare_loc_descriptor_wide): Likewise.
16917         (scompare_loc_descriptor_narrow): Likewise.
16918         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
16919         variables.
16920         * except.c (sjlj_emit_dispatch_table): Likewise.
16921         (expand_builtin_eh_copy_values): Likewise.
16922         * explow.c (convert_memory_address_addr_space_1): Likewise.
16923         Take a scalar_int_mode rather than a machine_mode.
16924         (convert_memory_address_addr_space): Take a scalar_int_mode rather
16925         than a machine_mode.
16926         (memory_address_addr_space): Use scalar_int_mode for local variables.
16927         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
16928         rather than a machine_mode.
16929         * expmed.c (mask_rtx): Likewise.
16930         (init_expmed_one_conv): Likewise.
16931         (expand_mult_highpart_adjust): Likewise.
16932         (extract_high_half): Likewise.
16933         (expmed_mult_highpart_optab): Likewise.
16934         (expmed_mult_highpart): Likewise.
16935         (expand_smod_pow2): Likewise.
16936         (expand_sdiv_pow2): Likewise.
16937         (emit_store_flag_int): Likewise.
16938         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
16939         variables.
16940         (extract_low_bits): Likewise.
16941         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
16942         a machine_mode.
16943         * expr.c (pieces_addr::adjust):  Likewise.
16944         (can_store_by_pieces): Likewise.
16945         (store_by_pieces): Likewise.
16946         (clear_by_pieces_1): Likewise.
16947         (expand_expr_addr_expr_1): Likewise.
16948         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
16949         (expand_expr_real_1): Likewise.
16950         (try_casesi): Likewise.
16951         * final.c (shorten_branches): Likewise.
16952         * fold-const.c (fold_convert_const_int_from_fixed): Change the
16953         type of "mode" to machine_mode.
16954         * internal-fn.c (expand_arith_overflow_result_store): Take a
16955         scalar_int_mode rather than a machine_mode.
16956         (expand_mul_overflow): Use scalar_int_mode for local variables.
16957         * loop-doloop.c (doloop_modify): Likewise.
16958         (doloop_optimize): Likewise.
16959         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
16960         than a machine_mode.
16961         (expand_doubleword_shift_condmove): Likewise.
16962         (expand_doubleword_shift): Likewise.
16963         (expand_doubleword_clz): Likewise.
16964         (expand_doubleword_popcount): Likewise.
16965         (expand_doubleword_parity): Likewise.
16966         (expand_absneg_bit): Use scalar_int_mode for local variables.
16967         (prepare_float_lib_cmp): Likewise.
16968         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
16969         rather than a machine_mode.
16970         (convert_memory_address_addr_space): Likewise.
16971         (get_mode_bounds): Likewise.
16972         (get_address_mode): Return a scalar_int_mode rather than a
16973         machine_mode.
16974         * rtlanal.c (get_address_mode): Likewise.
16975         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
16976         than a machine_mode.
16977         * targhooks.c (default_mode_rep_extended): Likewise.
16978         (default_valid_pointer_mode): Likewise.
16979         (default_addr_space_valid_pointer_mode): Likewise.
16980         (default_eh_return_filter_mode): Return a scalar_int_mode rather
16981         than a machine_mode.
16982         (default_libgcc_cmp_return_mode): Likewise.
16983         (default_libgcc_shift_count_mode): Likewise.
16984         (default_unwind_word_mode): Likewise.
16985         (default_addr_space_pointer_mode): Likewise.
16986         (default_addr_space_address_mode): Likewise.
16987         * targhooks.h (default_eh_return_filter_mode): Likewise.
16988         (default_libgcc_cmp_return_mode): Likewise.
16989         (default_libgcc_shift_count_mode): Likewise.
16990         (default_unwind_word_mode): Likewise.
16991         (default_addr_space_pointer_mode): Likewise.
16992         (default_addr_space_address_mode): Likewise.
16993         (default_mode_rep_extended): Take a scalar_int_mode rather than
16994         a machine_mode.
16995         (default_valid_pointer_mode): Likewise.
16996         (default_addr_space_valid_pointer_mode): Likewise.
16997         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
16998         local variables.
16999         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
17000         rather than a machine_mode.
17001         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
17002         for local variables.
17003         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
17004         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
17005         than a machine_mode.
17006
17007 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17008             Alan Hayward  <alan.hayward@arm.com>
17009             David Sherwood  <david.sherwood@arm.com>
17010
17011         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
17012         the mode argument to scalar_int_mode.
17013         (do_jump_by_parts_zero_rtx): Likewise.
17014         (do_jump_by_parts_equality_rtx): Likewise.
17015         (do_jump_by_parts_greater): Take a mode argument.
17016         (do_jump_by_parts_equality): Likewise.
17017         (do_jump_1): Update calls accordingly.
17018
17019 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17020             Alan Hayward  <alan.hayward@arm.com>
17021             David Sherwood  <david.sherwood@arm.com>
17022
17023         * is-a.h (safe_dyn_cast): New function.
17024         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
17025         (jump_table_for_label): Likewise.
17026         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
17027         instead of an rtx_insn *.
17028         (shorten_branches): Use dyn_cast instead of LABEL_P and
17029         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
17030         rtx_jump_table_data::get_data_mode.
17031         (final_scan_insn): Likewise.
17032
17033 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17034             Alan Hayward  <alan.hayward@arm.com>
17035             David Sherwood  <david.sherwood@arm.com>
17036
17037         * combine.c (try_combine): Use is_a <scalar_int_mode> when
17038         trying to combine a full-register integer set with a subreg
17039         integer set.
17040
17041 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17042             Alan Hayward  <alan.hayward@arm.com>
17043             David Sherwood  <david.sherwood@arm.com>
17044
17045         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
17046         that is always either address_mode or pointer_mode.
17047
17048 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17049             Alan Hayward  <alan.hayward@arm.com>
17050             David Sherwood  <david.sherwood@arm.com>
17051
17052         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
17053         when the two are known to be equal.
17054
17055 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17056             Alan Hayward  <alan.hayward@arm.com>
17057             David Sherwood  <david.sherwood@arm.com>
17058
17059         * simplify-rtx.c (simplify_const_unary_operation): Use
17060         is_a <scalar_int_mode> instead of checking for a nonzero
17061         precision.  Forcibly convert op_mode to a scalar_int_mode
17062         in that case.  More clearly differentiate the operand and
17063         result modes and use the former when deciding what the value
17064         of a count-bits operation should be.  Use is_int_mode instead
17065         of checking for a MODE_INT.  Remove redundant check for whether
17066         this mode has a zero precision.
17067
17068 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17069             Alan Hayward  <alan.hayward@arm.com>
17070             David Sherwood  <david.sherwood@arm.com>
17071
17072         * optabs.c (widen_leading): Change the type of the mode argument
17073         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
17074         (widen_bswap): Likewise.
17075         (expand_parity): Likewise.
17076         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
17077         (expand_ffs): Likewise.
17078         (epand_unop): Check for scalar integer modes before calling the
17079         above routines.
17080
17081 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17082             Alan Hayward  <alan.hayward@arm.com>
17083             David Sherwood  <david.sherwood@arm.com>
17084
17085         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
17086         Expand commentary.
17087         (expand_expr_real_1): Update call accordingly.
17088
17089 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17090             Alan Hayward  <alan.hayward@arm.com>
17091             David Sherwood  <david.sherwood@arm.com>
17092
17093         * expmed.c (store_bit_field_using_insv): Add op0_mode and
17094         value_mode arguments.  Use scalar_int_mode internally.
17095         (store_bit_field_1): Rename the new integer mode from imode
17096         to op0_mode and use it instead of GET_MODE (op0).  Update calls
17097         to store_split_bit_field, store_bit_field_using_insv and
17098         store_fixed_bit_field.
17099         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
17100         Use scalar_int_mode internally.  Use a bit count rather than a mode
17101         when calculating the largest bit size for get_best_mode.
17102         Update calls to store_split_bit_field and store_fixed_bit_field_1.
17103         (store_fixed_bit_field_1): Add mode and value_mode arguments.
17104         Remove assertion that OP0 has a scalar integer mode.
17105         (store_split_bit_field): Add op0_mode and value_mode arguments.
17106         Update calls to extract_fixed_bit_field.
17107         (extract_bit_field_using_extv): Add an op0_mode argument.
17108         Use scalar_int_mode internally.
17109         (extract_bit_field_1): Rename the new integer mode from imode to
17110         op0_mode and use it instead of GET_MODE (op0).  Update calls to
17111         extract_split_bit_field, extract_bit_field_using_extv and
17112         extract_fixed_bit_field.
17113         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
17114         to extract_split_bit_field and extract_fixed_bit_field_1.
17115         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
17116         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
17117         on the target mode.
17118         (extract_split_bit_field): Add an op0_mode argument.  Update call
17119         to extract_fixed_bit_field.
17120
17121 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17122             Alan Hayward  <alan.hayward@arm.com>
17123             David Sherwood  <david.sherwood@arm.com>
17124
17125         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
17126         * explow.c (hard_function_value): Likewise.
17127         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
17128         convert_to_mode call outside the loop.
17129         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
17130         for the mode iterator.  Require the mode specified by max_pieces
17131         to exist.
17132         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
17133         mode iterator.
17134         (copy_blkmode_to_reg): Likewise.
17135         (set_storage_via_setmem): Likewise.
17136         * optabs.c (prepare_cmp_insn): Likewise.
17137         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
17138         * stor-layout.c (finish_bitfield_representative): Likewise.
17139
17140 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17141             Alan Hayward  <alan.hayward@arm.com>
17142             David Sherwood  <david.sherwood@arm.com>
17143
17144         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
17145         * expr.c (convert_move): Use them.
17146         (convert_modes): Likewise.
17147         (store_expr_with_bounds): Likewise.
17148
17149 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17150             Alan Hayward  <alan.hayward@arm.com>
17151             David Sherwood  <david.sherwood@arm.com>
17152
17153         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
17154         parameter for the mode of "x".  Remove the "known_x", "known_mode"
17155         and "known_ret" arguments.  Change the type of the mode argument
17156         to scalar_int_mode.
17157         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
17158         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
17159         (reg_num_sign_bit_copies_for_combine): Likewise.
17160         * rtlanal.c (nonzero_bits1): Likewise.
17161         (num_sign_bit_copies1): Likewise.
17162         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
17163         (reg_num_sign_bit_copies_general): Likewise.
17164         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
17165         (reg_nonzero_bits_general): Likewise.
17166
17167 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17168             Alan Hayward  <alan.hayward@arm.com>
17169             David Sherwood  <david.sherwood@arm.com>
17170
17171         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
17172         than in subroutines.  Return 1 for non-integer modes.
17173         (cached_num_sign_bit_copies): Change the type of the mode parameter
17174         to scalar_int_mode.
17175         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
17176         classes.  Handle CONST_INT_P first and then check whether X also
17177         has a scalar integer mode.  Check the same thing for inner registers
17178         of a SUBREG and for values that are being extended or truncated.
17179
17180 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17181             Alan Hayward  <alan.hayward@arm.com>
17182             David Sherwood  <david.sherwood@arm.com>
17183
17184         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
17185         in subroutines.  Return the mode mask for non-integer modes.
17186         (cached_nonzero_bits): Change the type of the mode parameter
17187         to scalar_int_mode.
17188         (nonzero_bits1): Likewise.  Remove early exit for other mode
17189         classes.  Handle CONST_INT_P first and then check whether X
17190         also has a scalar integer mode.
17191
17192 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17193             Alan Hayward  <alan.hayward@arm.com>
17194             David Sherwood  <david.sherwood@arm.com>
17195
17196         * expr.c (widest_int_mode_for_size): Make the comment match the code.
17197         Return a scalar_int_mode and assert that the size is greater than
17198         one byte.
17199         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
17200         (op_by_pieces_d::op_by_pieces_d): Likewise.
17201         (op_by_pieces_d::run): Likewise.
17202         (can_store_by_pieces): Likewise.
17203
17204 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17205             Alan Hayward  <alan.hayward@arm.com>
17206             David Sherwood  <david.sherwood@arm.com>
17207
17208         * combine.c (extract_left_shift): Add a mode argument and update
17209         recursive calls.
17210         (make_compound_operation_int): Change the type of the mode parameter
17211         to scalar_int_mode and update the call to extract_left_shift.
17212
17213 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17214             Alan Hayward  <alan.hayward@arm.com>
17215             David Sherwood  <david.sherwood@arm.com>
17216
17217         * combine.c (simplify_and_const_int): Change the type of the mode
17218         parameter to scalar_int_mode.
17219         (simplify_and_const_int_1): Likewise.  Update recursive call.
17220
17221 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17222             Alan Hayward  <alan.hayward@arm.com>
17223             David Sherwood  <david.sherwood@arm.com>
17224
17225         * combine.c (simplify_compare_const): Check that the mode is a
17226         scalar_int_mode (rather than VOIDmode) before testing its
17227         precision.
17228         (simplify_comparison): Move COMPARISON_P handling out of the
17229         loop and restrict the latter part of the loop to scalar_int_modes.
17230         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
17231         and when considering SUBREG_REGs.  Use is_int_mode instead of
17232         checking GET_MODE_CLASS against MODE_INT.
17233
17234 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17235             Alan Hayward  <alan.hayward@arm.com>
17236             David Sherwood  <david.sherwood@arm.com>
17237
17238         * combine.c (try_widen_shift_mode): Move check for equal modes to...
17239         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
17240         shift_unit_mode and for modes involved in scalar shifts.
17241
17242 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17243             Alan Hayward  <alan.hayward@arm.com>
17244             David Sherwood  <david.sherwood@arm.com>
17245
17246         * combine.c (force_int_to_mode): New function, split out from...
17247         (force_to_mode): ...here.  Keep xmode up-to-date and use it
17248         instead of GET_MODE (x).
17249
17250 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17251             Alan Hayward  <alan.hayward@arm.com>
17252             David Sherwood  <david.sherwood@arm.com>
17253
17254         * optabs-query.h (extraction_insn::struct_mode): Change type to
17255         opt_scalar_int_mode and update comment.
17256         (extraction_insn::field_mode): Change type to scalar_int_mode.
17257         (extraction_insn::pos_mode): Likewise.
17258         * combine.c (make_extraction): Update accordingly.
17259         * optabs-query.c (get_traditional_extraction_insn): Likewise.
17260         (get_optab_extraction_insn): Likewise.
17261         * recog.c (simplify_while_replacing): Likewise.
17262         * expmed.c (narrow_bit_field_mem): Change the type of the mode
17263         parameter to opt_scalar_int_mode.
17264
17265 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17266             Alan Hayward  <alan.hayward@arm.com>
17267             David Sherwood  <david.sherwood@arm.com>
17268
17269         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
17270         to a scalar_int_mode instead of a machine_mode.
17271         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
17272         (get_best_mode): Return a boolean and use a pointer argument to store
17273         the selected mode.  Replace the limit mode parameter with a bit limit.
17274         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
17275         for the values returned by bit_field_mode_iterator::next_mode.
17276         (store_bit_field): Update call to get_best_mode.
17277         (store_fixed_bit_field): Likewise.
17278         (extract_fixed_bit_field): Likewise.
17279         * expr.c (optimize_bitfield_assignment_op): Likewise.
17280         * fold-const.c (optimize_bit_field_compare): Likewise.
17281         (fold_truth_andor_1): Likewise.
17282         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
17283         Update for new type of m_mode.
17284         (get_best_mode): As above.
17285
17286 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17287             Alan Hayward  <alan.hayward@arm.com>
17288             David Sherwood  <david.sherwood@arm.com>
17289
17290         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
17291         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
17292         (store_bit_field): Check is_a <scalar_int_mode> before calling
17293         strict_volatile_bitfield_p.
17294         (extract_bit_field): Likewise.
17295
17296 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17297             Alan Hayward  <alan.hayward@arm.com>
17298             David Sherwood  <david.sherwood@arm.com>
17299
17300         * target.def (cstore_mode): Return a scalar_int_mode.
17301         * doc/tm.texi: Regenerate.
17302         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
17303         * targhooks.h (default_cstore_mode): Likewise.
17304         * targhooks.c (default_cstore_mode): Likewise, using a forced
17305         conversion.
17306         * expmed.c (emit_cstore): Expect the target of the cstore to be
17307         a scalar_int_mode.
17308
17309 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17310             Alan Hayward  <alan.hayward@arm.com>
17311             David Sherwood  <david.sherwood@arm.com>
17312
17313         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
17314         scalar_int_mode.
17315         (niter_desc): Likewise mode.
17316         (iv_analyze): Add a mode parameter.
17317         (biv_p): Likewise.
17318         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
17319         and change its type to scalar_int_mode.
17320         * loop-iv.c: Update commentary at head of file.
17321         (iv_constant): Pass the mode paraeter before the rtx it describes
17322         and change its type to scalar_int_mode.  Remove VOIDmode handling.
17323         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
17324         (iv_extend): Likewise.
17325         (shorten_into_mode): Likewise.
17326         (iv_add): Use scalar_int_mode.
17327         (iv_mult): Likewise.
17328         (iv_shift): Likewise.
17329         (canonicalize_iv_subregs): Likewise.
17330         (get_biv_step_1): Pass the outer_mode parameter before the rtx
17331         it describes and change its mode to scalar_int_mode.   Also change
17332         the type of the returned inner_mode to scalar_int_mode.
17333         (get_biv_step): Likewise, turning outer_mode from a pointer
17334         into a direct parameter.  Update call to get_biv_step_1.
17335         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
17336         iv_constant and get_biv_step.
17337         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
17338         and change its type to scalar_int_mode.  Don't initialise iv->mode
17339         to VOIDmode and remove later checks for its still being VOIDmode.
17340         Update calls to iv_analyze_op and iv_analyze_expr.  Check
17341         is_a <scalar_int_mode> when changing the mode under consideration.
17342         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
17343         Update call to iv_analyze_expr.
17344         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
17345         inner register is not also a scalar_int_mode.  Update call to
17346         iv_analyze_biv.
17347         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
17348         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
17349         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
17350         separate mode class checks.  Update calls to iv_analyze.  Remove
17351         fix-up of VOIDmodes after iv_analyze_biv.
17352         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
17353         don't have a scalar_int_mode.  Update call to biv_p.
17354
17355 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17356             Alan Hayward  <alan.hayward@arm.com>
17357             David Sherwood  <david.sherwood@arm.com>
17358
17359         * cfgexpand.c (convert_debug_memory_address): Use
17360         as_a <scalar_int_mode>.
17361         * combine.c (expand_compound_operation): Likewise.
17362         (make_extraction): Likewise.
17363         (change_zero_ext): Likewise.
17364         (simplify_comparison): Likewise.
17365         * cse.c (cse_insn): Likewise.
17366         * dwarf2out.c (minmax_loc_descriptor): Likewise.
17367         (mem_loc_descriptor): Likewise.
17368         (loc_descriptor): Likewise.
17369         * expmed.c (init_expmed_one_mode): Likewise.
17370         (synth_mult): Likewise.
17371         (emit_store_flag_1): Likewise.
17372         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
17373         of a comparison with size.
17374         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
17375         (reduce_to_bit_field_precision): Likewise.
17376         * function.c (expand_function_end): Likewise.
17377         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
17378         * loop-doloop.c (doloop_modify): Likewise.
17379         * optabs.c (expand_binop): Likewise.
17380         (expand_unop): Likewise.
17381         (expand_copysign_absneg): Likewise.
17382         (prepare_cmp_insn): Likewise.
17383         (maybe_legitimize_operand): Likewise.
17384         * recog.c (const_scalar_int_operand): Likewise.
17385         * rtlanal.c (get_address_mode): Likewise.
17386         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17387         (simplify_cond_clz_ctz): Likewise.
17388         * tree-nested.c (get_nl_goto_field): Likewise.
17389         * tree.c (build_vector_type_for_mode): Likewise.
17390         * var-tracking.c (use_narrower_mode): Likewise.
17391
17392 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17393             Alan Hayward  <alan.hayward@arm.com>
17394             David Sherwood  <david.sherwood@arm.com>
17395
17396         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
17397         * builtins.c (expand_builtin_signbit): Use it.
17398         * cfgexpand.c (expand_debug_expr): Likewise.
17399         * dojump.c (do_jump): Likewise.
17400         (do_compare_and_jump): Likewise.
17401         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
17402         * expmed.c (make_tree): Likewise.
17403         * expr.c (expand_expr_real_2): Likewise.
17404         (expand_expr_real_1): Likewise.
17405         (try_casesi): Likewise.
17406         * fold-const-call.c (fold_const_call_ss): Likewise.
17407         * fold-const.c (unextend): Likewise.
17408         (extract_muldiv_1): Likewise.
17409         (fold_single_bit_test): Likewise.
17410         (native_encode_int): Likewise.
17411         (native_encode_string): Likewise.
17412         (native_interpret_int): Likewise.
17413         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
17414         * internal-fn.c (expand_addsub_overflow): Likewise.
17415         (expand_neg_overflow): Likewise.
17416         (expand_mul_overflow): Likewise.
17417         (expand_arith_overflow): Likewise.
17418         * match.pd: Likewise.
17419         * stor-layout.c (layout_type): Likewise.
17420         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
17421         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
17422         * tree-ssanames.c (get_range_info): Likewise.
17423         * tree-switch-conversion.c (array_value_type) Likewise.
17424         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
17425         (vect_recog_divmod_pattern): Likewise.
17426         (vect_recog_mixed_size_cond_pattern): Likewise.
17427         * tree-vrp.c (extract_range_basic): Likewise.
17428         (simplify_float_conversion_using_ranges): Likewise.
17429         * tree.c (int_fits_type_p): Likewise.
17430         * ubsan.c (instrument_bool_enum_load): Likewise.
17431         * varasm.c (mergeable_string_section): Likewise.
17432         (narrowing_initializer_constant_valid_p): Likewise.
17433         (output_constant): Likewise.
17434
17435 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17436             Alan Hayward  <alan.hayward@arm.com>
17437             David Sherwood  <david.sherwood@arm.com>
17438
17439         * machmode.h (NARROWEST_INT_MODE): New macro.
17440         * expr.c (alignment_for_piecewise_move): Use it instead of
17441         GET_CLASS_NARROWEST_MODE (MODE_INT).
17442         (push_block): Likewise.
17443         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
17444         Likewise.
17445         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
17446
17447 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17448             Alan Hayward  <alan.hayward@arm.com>
17449             David Sherwood  <david.sherwood@arm.com>
17450
17451         * postreload.c (move2add_valid_value_p): Change the type of the
17452         mode parameter to scalar_int_mode.
17453         (move2add_use_add2_insn): Add a mode parameter and use it instead
17454         of GET_MODE (reg).
17455         (move2add_use_add3_insn): Likewise.
17456         (reload_cse_move2add): Update accordingly.
17457
17458 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17459             Alan Hayward  <alan.hayward@arm.com>
17460             David Sherwood  <david.sherwood@arm.com>
17461
17462         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
17463         double-word mode.
17464         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
17465         * optabs.c (expand_unop): Likewise.
17466
17467 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17468             Alan Hayward  <alan.hayward@arm.com>
17469             David Sherwood  <david.sherwood@arm.com>
17470
17471         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
17472         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
17473         (popcount_loc_descriptor): Likewise.
17474         (bswap_loc_descriptor): Likewise.
17475         (rotate_loc_descriptor): Likewise.
17476         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
17477         calling the functions above.
17478
17479 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17480             Alan Hayward  <alan.hayward@arm.com>
17481             David Sherwood  <david.sherwood@arm.com>
17482
17483         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
17484         checks.
17485         (try_combine): Likewise.
17486         (simplify_if_then_else): Likewise.
17487         * cse.c (cse_insn): Likewise.
17488         * dwarf2out.c (mem_loc_descriptor): Likewise.
17489         * emit-rtl.c (gen_lowpart_common): Likewise.
17490         * simplify-rtx.c (simplify_truncation): Likewise.
17491         (simplify_binary_operation_1): Likewise.
17492         (simplify_const_relational_operation): Likewise.
17493         (simplify_ternary_operation): Likewise.
17494         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
17495
17496 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17497             Alan Hayward  <alan.hayward@arm.com>
17498             David Sherwood  <david.sherwood@arm.com>
17499
17500         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
17501         * reload.c (push_reload): Likewise.
17502         (find_reloads): Likewise.
17503
17504 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17505             Alan Hayward  <alan.hayward@arm.com>
17506             David Sherwood  <david.sherwood@arm.com>
17507
17508         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
17509         (make_compound_operation_int): Likewise.
17510         (change_zero_ext): Likewise.
17511         * expr.c (convert_move): Likewise.
17512         (convert_modes): Likewise.
17513         * fwprop.c (forward_propagate_subreg): Likewise.
17514         * loop-iv.c (get_biv_step_1): Likewise.
17515         * optabs.c (widen_operand): Likewise.
17516         * postreload.c (move2add_valid_value_p): Likewise.
17517         * recog.c (simplify_while_replacing): Likewise.
17518         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17519         (simplify_binary_operation_1): Likewise.  Remove redundant
17520         mode equality check.
17521
17522 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17523             Alan Hayward  <alan.hayward@arm.com>
17524             David Sherwood  <david.sherwood@arm.com>
17525
17526         * combine.c (combine_simplify_rtx): Add checks for
17527         is_a <scalar_int_mode>.
17528         (simplify_if_then_else): Likewise.
17529         (make_field_assignment): Likewise.
17530         (simplify_comparison): Likewise.
17531         * ifcvt.c (noce_try_bitop): Likewise.
17532         * loop-invariant.c (canonicalize_address_mult): Likewise.
17533         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17534
17535 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17536             Alan Hayward  <alan.hayward@arm.com>
17537             David Sherwood  <david.sherwood@arm.com>
17538
17539         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
17540         is_a <scalar_int_mode> instead of != BLKmode.
17541
17542 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17543             Alan Hayward  <alan.hayward@arm.com>
17544             David Sherwood  <david.sherwood@arm.com>
17545
17546         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
17547         instead of != VOIDmode.
17548         * combine.c (if_then_else_cond): Likewise.
17549         (change_zero_ext): Likewise.
17550         * dwarf2out.c (mem_loc_descriptor): Likewise.
17551         (loc_descriptor): Likewise.
17552         * rtlanal.c (canonicalize_condition): Likewise.
17553         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
17554
17555 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17556             Alan Hayward  <alan.hayward@arm.com>
17557             David Sherwood  <david.sherwood@arm.com>
17558
17559         * simplify-rtx.c (simplify_binary_operation_1): Use
17560         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
17561
17562 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17563             Alan Hayward  <alan.hayward@arm.com>
17564             David Sherwood  <david.sherwood@arm.com>
17565
17566         * wide-int.h (int_traits<unsigned char>) New class.
17567         (int_traits<unsigned short>) Likewise.
17568         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
17569         Use GET_MODE_UNIT_PRECISION and remove redundant test for
17570         SCALAR_INT_MODE_P.
17571         * combine.c (set_nonzero_bits_and_sign_copies): Use
17572         is_a <scalar_int_mode>.
17573         (find_split_point): Likewise.
17574         (combine_simplify_rtx): Likewise.
17575         (simplify_logical): Likewise.
17576         (expand_compound_operation): Likewise.
17577         (expand_field_assignment): Likewise.
17578         (make_compound_operation): Likewise.
17579         (extended_count): Likewise.
17580         (change_zero_ext): Likewise.
17581         (simplify_comparison): Likewise.
17582         * dwarf2out.c (scompare_loc_descriptor): Likewise.
17583         (ucompare_loc_descriptor): Likewise.
17584         (minmax_loc_descriptor): Likewise.
17585         (mem_loc_descriptor): Likewise.
17586         (loc_descriptor): Likewise.
17587         * expmed.c (init_expmed_one_mode): Likewise.
17588         * lra-constraints.c (lra_constraint_offset): Likewise.
17589         * optabs.c (prepare_libcall_arg): Likewise.
17590         * postreload.c (move2add_note_store): Likewise.
17591         * reload.c (operands_match_p): Likewise.
17592         * rtl.h (load_extend_op): Likewise.
17593         * rtlhooks.c (gen_lowpart_general): Likewise.
17594         * simplify-rtx.c (simplify_truncation): Likewise.
17595         (simplify_unary_operation_1): Likewise.
17596         (simplify_binary_operation_1): Likewise.
17597         (simplify_const_binary_operation): Likewise.
17598         (simplify_const_relational_operation): Likewise.
17599         (simplify_subreg): Likewise.
17600         * stor-layout.c (bitwise_mode_for_mode): Likewise.
17601         * var-tracking.c (adjust_mems): Likewise.
17602         (prepare_call_arguments): Likewise.
17603
17604 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17605             Alan Hayward  <alan.hayward@arm.com>
17606             David Sherwood  <david.sherwood@arm.com>
17607
17608         * machmode.h (is_int_mode): New fuction.
17609         * combine.c (find_split_point): Use it.
17610         (combine_simplify_rtx): Likewise.
17611         (simplify_if_then_else): Likewise.
17612         (simplify_set): Likewise.
17613         (simplify_shift_const_1): Likewise.
17614         (simplify_comparison): Likewise.
17615         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
17616         * cse.c (notreg_cost): Likewise.
17617         (cse_insn): Likewise.
17618         * cselib.c (cselib_lookup_1): Likewise.
17619         * dojump.c (do_jump_1): Likewise.
17620         (do_compare_rtx_and_jump): Likewise.
17621         * dse.c (get_call_args): Likewise.
17622         * dwarf2out.c (rtl_for_decl_init): Likewise.
17623         (native_encode_initializer): Likewise.
17624         * expmed.c (emit_store_flag_1): Likewise.
17625         (emit_store_flag): Likewise.
17626         * expr.c (convert_modes): Likewise.
17627         (store_field): Likewise.
17628         (expand_expr_real_1): Likewise.
17629         * fold-const.c (fold_read_from_constant_string): Likewise.
17630         * gimple-ssa-sprintf.c (get_format_string): Likewise.
17631         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
17632         * optabs.c (expand_binop): Likewise.
17633         (expand_unop): Likewise.
17634         (expand_abs_nojump): Likewise.
17635         (expand_one_cmpl_abs_nojump): Likewise.
17636         * simplify-rtx.c (mode_signbit_p): Likewise.
17637         (val_signbit_p): Likewise.
17638         (val_signbit_known_set_p): Likewise.
17639         (val_signbit_known_clear_p): Likewise.
17640         (simplify_relational_operation_1): Likewise.
17641         * tree.c (vector_type_mode): Likewise.
17642
17643 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17644             Alan Hayward  <alan.hayward@arm.com>
17645             David Sherwood  <david.sherwood@arm.com>
17646
17647         * machmode.h (smallest_mode_for_size): Fix formatting.
17648         (smallest_int_mode_for_size): New function.
17649         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
17650         instead of smallest_mode_for_size.
17651         * combine.c (make_extraction): Likewise.
17652         * config/arc/arc.c (arc_expand_movmem): Likewise.
17653         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
17654         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
17655         * config/s390/s390.c (s390_expand_insv): Likewise.
17656         * config/sparc/sparc.c (assign_int_registers): Likewise.
17657         * config/spu/spu.c (spu_function_value): Likewise.
17658         (spu_function_arg): Likewise.
17659         * coverage.c (get_gcov_type): Likewise.
17660         (get_gcov_unsigned_t): Likewise.
17661         * dse.c (find_shift_sequence): Likewise.
17662         * expmed.c (store_bit_field_1): Likewise.
17663         * expr.c (convert_move): Likewise.
17664         (store_field): Likewise.
17665         * internal-fn.c (expand_arith_overflow): Likewise.
17666         * optabs-query.c (get_best_extraction_insn): Likewise.
17667         * optabs.c (expand_twoval_binop_libfunc): Likewise.
17668         * stor-layout.c (layout_type): Likewise.
17669         (initialize_sizetypes): Likewise.
17670         * targhooks.c (default_get_mask_mode): Likewise.
17671         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
17672
17673 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17674             Alan Hayward  <alan.hayward@arm.com>
17675             David Sherwood  <david.sherwood@arm.com>
17676
17677         * machmode.h (opt_mode::else_blk): New function.
17678         (int_mode_for_mode): Declare.
17679         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
17680         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
17681         return type.
17682         * cfgexpand.c (expand_debug_expr): Likewise.
17683         * combine.c (gen_lowpart_or_truncate): Likewise.
17684         (gen_lowpart_for_combine): Likewise.
17685         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
17686         * config/avr/avr.c (avr_to_int_mode): Likewise.
17687         (avr_out_plus_1): Likewise.
17688         (avr_out_plus): Likewise.
17689         (avr_out_round): Likewise.
17690         * config/i386/i386.c (ix86_split_to_parts): Likewise.
17691         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
17692         (s390_expand_vcond): Likewise.
17693         * config/spu/spu.c (spu_split_immediate): Likewise.
17694         (spu_expand_mov): Likewise.
17695         * dse.c (get_stored_val): Likewise.
17696         * expmed.c (store_bit_field_1): Likewise.
17697         (convert_extracted_bit_field): Use int_mode_for_mode instead of
17698         int_mode_for_size.
17699         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
17700         (extract_low_bits): Likewise.
17701         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
17702         handling rather than repeating the check.
17703         (emit_group_store): Likewise.
17704         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
17705         * optabs.c (expand_absneg_bit): Likewise.
17706         (expand_copysign_absneg): Likewise.
17707         (expand_copysign_bit): Likewise.
17708         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
17709         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
17710         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
17711         * var-tracking.c (prepare_call_arguments):  Likewise.
17712         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
17713         int_mode_for_mode instead of mode_for_size.
17714         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
17715
17716 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17717             Alan Hayward  <alan.hayward@arm.com>
17718             David Sherwood  <david.sherwood@arm.com>
17719
17720         * machmode.h (int_mode_for_size): New function.
17721         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
17722         instead of mode_for_size.
17723         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
17724         explicit.
17725         * combine.c (expand_field_assignment): Use int_mode_for_size
17726         instead of mode_for_size.
17727         (make_extraction): Likewise.
17728         (simplify_shift_const_1): Likewise.
17729         (simplify_comparison): Likewise.
17730         * dojump.c (do_jump): Likewise.
17731         * dwarf2out.c (mem_loc_descriptor): Likewise.
17732         * emit-rtl.c (init_derived_machine_modes): Likewise.
17733         * expmed.c (flip_storage_order): Likewise.
17734         (convert_extracted_bit_field): Likewise.
17735         * expr.c (copy_blkmode_from_reg): Likewise.
17736         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
17737         * internal-fn.c (expand_mul_overflow): Likewise.
17738         * lower-subreg.c (simple_move): Likewise.
17739         * optabs-libfuncs.c (init_optabs): Likewise.
17740         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17741         * tree.c (vector_type_mode): Likewise.
17742         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
17743         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
17744         * tree-vect-generic.c (expand_vector_parallel): Likewise.
17745         * tree-vect-stmts.c (vectorizable_load): Likewise.
17746         (vectorizable_store): Likewise.
17747
17748 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17749             Alan Hayward  <alan.hayward@arm.com>
17750             David Sherwood  <david.sherwood@arm.com>
17751
17752         * coretypes.h (pod_mode): New type.
17753         (scalar_int_mode_pod): New typedef.
17754         * machmode.h (pod_mode): New class.
17755         (int_n_data_t::m): Change type to scalar_int_mode_pod.
17756         * genmodes.c (emit_mode_int_n): Update accordingly.
17757         * lower-subreg.h (target_lower_subreg): Change type to
17758         scalar_int_mode_pod.
17759         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
17760         scalar_int_mode_pod.
17761
17762 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17763             Alan Hayward  <alan.hayward@arm.com>
17764             David Sherwood  <david.sherwood@arm.com>
17765
17766         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
17767         machine_mode to scalar_int_mode.
17768         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
17769         (rs6000_option_override_internal): Remove cast to int.
17770         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
17771         machine_mode to scalar_int_mode.
17772         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
17773         (rs6000_option_override_internal): Remove cast to int.
17774         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
17775         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
17776         to machine_mode.
17777         * config/s390/s390.c (s390_expand_builtin): Likewise.
17778         * coretypes.h (scalar_int_mode): New type.
17779         (opt_scalar_int_mode): New typedef.
17780         * machmode.h (scalar_int_mode): New class.
17781         (scalar_int_mode::includes_p): New function.
17782         (byte_mode): Change type to scalar_int_mode.
17783         (word_mode): Likewise.
17784         (ptr_mode): Likewise.
17785         * emit-rtl.c (byte_mode): Likewise.
17786         (word_mode): Likewise.
17787         (ptr_mode): Likewise.
17788         (init_derived_machine_modes): Update accordingly.
17789         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
17790         and MODE_PARTIAL_INT.
17791         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
17792         opt_scalar_int_mode.
17793
17794 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17795             Alan Hayward  <alan.hayward@arm.com>
17796             David Sherwood  <david.sherwood@arm.com>
17797
17798         * target.def (libgcc_floating_mode_supported_p): Take a
17799         scalar_float_mode.
17800         * doc/tm.texi: Regenerate.
17801         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
17802         scalar_float_mode.
17803         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
17804         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
17805         Likewise.
17806
17807 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17808             Alan Hayward  <alan.hayward@arm.com>
17809             David Sherwood  <david.sherwood@arm.com>
17810
17811         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
17812         * doc/tm.texi: Regenerate.
17813         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
17814         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
17815         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
17816         * targhooks.h (default_floatn_mode): Likewise.
17817         * targhooks.c (default_floatn_mode): Likewise.
17818         * tree.c (build_common_tree_nodes): Update accordingly.
17819
17820 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17821             Alan Hayward  <alan.hayward@arm.com>
17822             David Sherwood  <david.sherwood@arm.com>
17823
17824         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
17825         (mode_iterator::iterate_p): Likewise.
17826         (mode_iterator::get_wider): Likewise.
17827         * expr.c (init_expr_target): Use opt_scalar_float_mode.
17828
17829 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17830             Alan Hayward  <alan.hayward@arm.com>
17831             David Sherwood  <david.sherwood@arm.com>
17832
17833         * coretypes.h (opt_scalar_float_mode): New typedef.
17834         * machmode.h (float_mode_for_size): New function.
17835         * emit-rtl.c (double_mode): Delete.
17836         (init_emit_once): Use float_mode_for_size.
17837         * stor-layout.c (layout_type): Likewise.
17838         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
17839
17840 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17841             Alan Hayward  <alan.hayward@arm.com>
17842             David Sherwood  <david.sherwood@arm.com>
17843
17844         * output.h (assemble_real): Take a scalar_float_mode.
17845         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
17846         * config/arm/arm.md (consttable_4): Likewise.
17847         (consttable_8): Likewise.
17848         (consttable_16): Likewise.
17849         * config/mips/mips.md (consttable_float): Likewise.
17850         * config/s390/s390.c (s390_output_pool_entry): Likewise.
17851         * varasm.c (assemble_real): Take a scalar_float_mode.
17852         (output_constant_pool_2): Update accordingly.
17853         (output_constant): Likewise.
17854
17855 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17856             Alan Hayward  <alan.hayward@arm.com>
17857             David Sherwood  <david.sherwood@arm.com>
17858
17859         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
17860         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
17861         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
17862         (native_encode_real): Likewise.
17863         (native_interpret_real): Likewise.
17864         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
17865         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
17866
17867 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17868             Alan Hayward  <alan.hayward@arm.com>
17869             David Sherwood  <david.sherwood@arm.com>
17870
17871         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
17872         <scalar_float_mode>.  Simplify.
17873         (gen_extend_conv_libfunc): Likewise.
17874
17875 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17876             Alan Hayward  <alan.hayward@arm.com>
17877             David Sherwood  <david.sherwood@arm.com>
17878
17879         * coretypes.h (scalar_float_mode): New type.
17880         * machmode.h (mode_traits::from_int): Use machine_mode if
17881         USE_ENUM_MODES is defined.
17882         (is_a): New function.
17883         (as_a): Likewise.
17884         (dyn_cast): Likewise.
17885         (scalar_float_mode): New class.
17886         (scalar_float_mode::includes_p): New function.
17887         (is_float_mode): Likewise.
17888         * gdbhooks.py (MachineModePrinter): New class.
17889         (build_pretty_printer): Use it for scalar_float_mode.
17890         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
17891         (format_helper::format_helper): Turn into a template.
17892         * genmodes.c (get_mode_class): New function.
17893         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
17894         or machine_mode if none.
17895         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
17896         as_a <scalar_float_mode>.
17897         * dwarf2out.c (mem_loc_descriptor): Likewise.
17898         (insert_float): Likewise.
17899         (add_const_value_attribute): Likewise.
17900         * simplify-rtx.c (simplify_immed_subreg): Likewise.
17901         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
17902         (expand_unop): Update accordingly.
17903         (expand_abs_nojump): Likewise.
17904         (expand_copysign_absneg): Take a scalar_float_mode.
17905         (expand_copysign_bit): Likewise.
17906         (expand_copysign): Update accordingly.
17907
17908 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17909             Alan Hayward  <alan.hayward@arm.com>
17910             David Sherwood  <david.sherwood@arm.com>
17911
17912         * coretypes.h (opt_mode): New class.
17913         * machmode.h (opt_mode): Likewise.
17914         (opt_mode::else_void): New function.
17915         (opt_mode::require): Likewise.
17916         (opt_mode::exists): Likewise.
17917         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
17918         (GET_MODE_2XWIDER_MODE): Likewise.
17919         (mode_iterator::get_wider): Update accordingly.
17920         (mode_iterator::get_2xwider): Likewise.
17921         (mode_iterator::get_known_wider): Likewise, turning into a template.
17922         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
17923         forcing a wider mode to exist.
17924         * config/cr16/cr16.h (LONG_REG_P): Likewise.
17925         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
17926         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
17927         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
17928         * lower-subreg.c (init_lower_subreg): Likewise.
17929         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
17930         on the final iteration.
17931         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
17932         a wider mode exists before asking for a move pattern.
17933         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
17934         forcing a wider mode to exist.
17935         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
17936         returning false if no such mode exists.
17937         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
17938         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
17939         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
17940         Avoid checking for a MODE_INT if we already know the mode is not a
17941         SCALAR_INT_MODE_P.
17942         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
17943         forcing a wider mode to exist.
17944         (expmed_mult_highpart_optab): Likewise.
17945         (expmed_mult_highpart): Likewise.
17946         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
17947         using else_void.
17948         * lto-streamer-in.c (lto_input_mode_table): Likewise.
17949         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
17950         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
17951         * internal-fn.c (expand_mul_overflow): Update use of
17952         GET_MODE_2XWIDER_MODE.
17953         * omp-low.c (omp_clause_aligned_alignment): Likewise.
17954         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
17955         GET_MODE_WIDER_MODE.
17956         (convert_plusminus_to_widen): Likewise.
17957         * tree-switch-conversion.c (array_value_type): Likewise.
17958         * var-tracking.c (emit_note_insn_var_location): Likewise.
17959         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
17960         Return false inside rather than outside the loop if no wider mode
17961         exists
17962         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
17963         and GET_MODE_2XWIDER_MODE
17964         (can_compare_p): Use else_void.
17965         * gdbhooks.py (OptMachineModePrinter): New class.
17966         (build_pretty_printer): Use it for opt_mode.
17967
17968 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17969             Alan Hayward  <alan.hayward@arm.com>
17970             David Sherwood  <david.sherwood@arm.com>
17971
17972         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
17973         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
17974
17975 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17976             Alan Hayward  <alan.hayward@arm.com>
17977             David Sherwood  <david.sherwood@arm.com>
17978
17979         * machmode.h (mode_traits): New structure.
17980         (get_narrowest_mode): New function.
17981         (mode_iterator::start): Likewise.
17982         (mode_iterator::iterate_p): Likewise.
17983         (mode_iterator::get_wider): Likewise.
17984         (mode_iterator::get_known_wider): Likewise.
17985         (mode_iterator::get_2xwider): Likewise.
17986         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
17987         (FOR_EACH_MODE): Likewise.
17988         (FOR_EACH_MODE_FROM): Likewise.
17989         (FOR_EACH_MODE_UNTIL): Likewise.
17990         (FOR_EACH_WIDER_MODE): Likewise.
17991         (FOR_EACH_2XWIDER_MODE): Likewise.
17992         * builtins.c (expand_builtin_strlen): Use new mode iterators.
17993         * combine.c (simplify_comparison): Likewise
17994         * config/i386/i386.c (type_natural_mode): Likewise.
17995         * cse.c (cse_insn): Likewise.
17996         * dse.c (find_shift_sequence): Likewise.
17997         * emit-rtl.c (init_derived_machine_modes): Likewise.
17998         (init_emit_once): Likewise.
17999         * explow.c (hard_function_value): Likewise.
18000         * expmed.c (extract_fixed_bit_field_1): Likewise.
18001         (extract_bit_field_1): Likewise.
18002         (expand_divmod): Likewise.
18003         (emit_store_flag_1): Likewise.
18004         * expr.c (init_expr_target): Likewise.
18005         (convert_move): Likewise.
18006         (alignment_for_piecewise_move): Likewise.
18007         (widest_int_mode_for_size): Likewise.
18008         (emit_block_move_via_movmem): Likewise.
18009         (copy_blkmode_to_reg): Likewise.
18010         (set_storage_via_setmem): Likewise.
18011         (compress_float_constant): Likewise.
18012         * omp-low.c (omp_clause_aligned_alignment): Likewise.
18013         * optabs-query.c (get_best_extraction_insn): Likewise.
18014         * optabs.c (expand_binop): Likewise.
18015         (expand_twoval_unop): Likewise.
18016         (expand_twoval_binop): Likewise.
18017         (widen_leading): Likewise.
18018         (widen_bswap): Likewise.
18019         (expand_parity): Likewise.
18020         (expand_unop): Likewise.
18021         (prepare_cmp_insn): Likewise.
18022         (prepare_float_lib_cmp): Likewise.
18023         (expand_float): Likewise.
18024         (expand_fix): Likewise.
18025         (expand_sfix_optab): Likewise.
18026         * postreload.c (move2add_use_add2_insn): Likewise.
18027         * reg-stack.c (reg_to_stack): Likewise.
18028         * reginfo.c (choose_hard_reg_mode): Likewise.
18029         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
18030         * stor-layout.c (mode_for_size): Likewise.
18031         (smallest_mode_for_size): Likewise.
18032         (mode_for_vector): Likewise.
18033         (finish_bitfield_representative): Likewise.
18034         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
18035         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
18036         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
18037         * var-tracking.c (prepare_call_arguments): Likewise.
18038
18039 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18040             Alan Hayward  <alan.hayward@arm.com>
18041             David Sherwood  <david.sherwood@arm.com>
18042
18043         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
18044         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
18045         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
18046         * machmode.h (mode_size): Move earlier in file.
18047         (mode_precision): Likewise.
18048         (mode_inner): Likewise.
18049         (mode_nunits): Likewise.
18050         (mode_unit_size): Likewise.
18051         (unit_unit_precision): Likewise.
18052         (mode_wider): Likewise.
18053         (mode_2xwider): Likewise.
18054         (machine_mode): New class.
18055         (mode_to_bytes): New function.
18056         (mode_to_bits): Likewise.
18057         (mode_to_precision): Likewise.
18058         (mode_to_inner): Likewise.
18059         (mode_to_unit_size): Likewise.
18060         (mode_to_unit_precision): Likewise.
18061         (mode_to_nunits): Likewise.
18062         (GET_MODE_SIZE): Use mode_to_bytes.
18063         (GET_MODE_BITSIZE): Use mode_to_bits.
18064         (GET_MODE_PRECISION): Use mode_to_precision.
18065         (GET_MODE_INNER): Use mode_to_inner.
18066         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
18067         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
18068         (GET_MODE_NUNITS): Use mode_to_nunits.
18069         * system.h (ALWAYS_INLINE): New macro.
18070         * config/powerpcspe/powerpcspe-c.c
18071         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
18072         int for arg1_mode and arg2_mode.
18073
18074 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18075             Alan Hayward  <alan.hayward@arm.com>
18076             David Sherwood  <david.sherwood@arm.com>
18077
18078         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
18079         Prefix mode names with E_ in case statements.
18080         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18081         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
18082         (aarch64_split_simd_move): Likewise.
18083         (aarch64_gen_storewb_pair): Likewise.
18084         (aarch64_gen_loadwb_pair): Likewise.
18085         (aarch64_gen_store_pair): Likewise.
18086         (aarch64_gen_load_pair): Likewise.
18087         (aarch64_get_condition_code_1): Likewise.
18088         (aarch64_constant_pool_reload_icode): Likewise.
18089         (get_rsqrte_type): Likewise.
18090         (get_rsqrts_type): Likewise.
18091         (get_recpe_type): Likewise.
18092         (get_recps_type): Likewise.
18093         (aarch64_gimplify_va_arg_expr): Likewise.
18094         (aarch64_simd_container_mode): Likewise.
18095         (aarch64_emit_load_exclusive): Likewise.
18096         (aarch64_emit_store_exclusive): Likewise.
18097         (aarch64_expand_compare_and_swap): Likewise.
18098         (aarch64_gen_atomic_cas): Likewise.
18099         (aarch64_emit_bic): Likewise.
18100         (aarch64_emit_atomic_swap): Likewise.
18101         (aarch64_emit_atomic_load_op): Likewise.
18102         (aarch64_evpc_trn): Likewise.
18103         (aarch64_evpc_uzp): Likewise.
18104         (aarch64_evpc_zip): Likewise.
18105         (aarch64_evpc_ext): Likewise.
18106         (aarch64_evpc_rev): Likewise.
18107         (aarch64_evpc_dup): Likewise.
18108         (aarch64_gen_ccmp_first): Likewise.
18109         (aarch64_gen_ccmp_next): Likewise.
18110         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
18111         (alpha_emit_xfloating_libcall): Likewise.
18112         (emit_insxl): Likewise.
18113         (alpha_arg_type): Likewise.
18114         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
18115         (arc_preferred_simd_mode): Likewise.
18116         (arc_secondary_reload): Likewise.
18117         (get_arc_condition_code): Likewise.
18118         (arc_print_operand): Likewise.
18119         (arc_legitimate_constant_p): Likewise.
18120         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18121         * config/arc/arc.md (casesi_load): Likewise.
18122         (casesi_compact_jump): Likewise.
18123         * config/arc/predicates.md (proper_comparison_operator): Likewise.
18124         (cc_use_register): Likewise.
18125         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18126         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
18127         (arm_init_iwmmxt_builtins): Likewise.
18128         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
18129         (neon_expand_vector_init): Likewise.
18130         (arm_attr_length_move_neon): Likewise.
18131         (maybe_get_arm_condition_code): Likewise.
18132         (arm_emit_vector_const): Likewise.
18133         (arm_preferred_simd_mode): Likewise.
18134         (arm_output_iwmmxt_tinsr): Likewise.
18135         (thumb1_output_casesi): Likewise.
18136         (thumb2_output_casesi): Likewise.
18137         (arm_emit_load_exclusive): Likewise.
18138         (arm_emit_store_exclusive): Likewise.
18139         (arm_expand_compare_and_swap): Likewise.
18140         (arm_evpc_neon_vuzp): Likewise.
18141         (arm_evpc_neon_vzip): Likewise.
18142         (arm_evpc_neon_vrev): Likewise.
18143         (arm_evpc_neon_vtrn): Likewise.
18144         (arm_evpc_neon_vext): Likewise.
18145         (arm_validize_comparison): Likewise.
18146         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
18147         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
18148         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
18149         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
18150         (c6x_preferred_simd_mode): Likewise.
18151         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
18152         (epiphany_rtx_costs): Likewise.
18153         * config/epiphany/predicates.md (proper_comparison_operator):
18154         Likewise.
18155         * config/frv/frv.c (condexec_memory_operand): Likewise.
18156         (frv_emit_move): Likewise.
18157         (output_move_single): Likewise.
18158         (output_condmove_single): Likewise.
18159         (frv_hard_regno_mode_ok): Likewise.
18160         (frv_matching_accg_mode): Likewise.
18161         * config/h8300/h8300.c (split_adds_subs): Likewise.
18162         (h8300_rtx_costs): Likewise.
18163         (h8300_print_operand): Likewise.
18164         (compute_mov_length): Likewise.
18165         (output_logical_op): Likewise.
18166         (compute_logical_op_length): Likewise.
18167         (compute_logical_op_cc): Likewise.
18168         (h8300_shift_needs_scratch_p): Likewise.
18169         (output_a_shift): Likewise.
18170         (compute_a_shift_length): Likewise.
18171         (compute_a_shift_cc): Likewise.
18172         (expand_a_rotate): Likewise.
18173         (output_a_rotate): Likewise.
18174         * config/i386/i386.c (classify_argument): Likewise.
18175         (function_arg_advance_32): Likewise.
18176         (function_arg_32): Likewise.
18177         (function_arg_64): Likewise.
18178         (function_value_64): Likewise.
18179         (ix86_gimplify_va_arg): Likewise.
18180         (ix86_legitimate_constant_p): Likewise.
18181         (put_condition_code): Likewise.
18182         (split_double_mode): Likewise.
18183         (ix86_avx256_split_vector_move_misalign): Likewise.
18184         (ix86_expand_vector_logical_operator): Likewise.
18185         (ix86_split_idivmod): Likewise.
18186         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
18187         (ix86_build_const_vector): Likewise.
18188         (ix86_build_signbit_mask): Likewise.
18189         (ix86_match_ccmode): Likewise.
18190         (ix86_cc_modes_compatible): Likewise.
18191         (ix86_expand_branch): Likewise.
18192         (ix86_expand_sse_cmp): Likewise.
18193         (ix86_expand_sse_movcc): Likewise.
18194         (ix86_expand_int_sse_cmp): Likewise.
18195         (ix86_expand_vec_perm_vpermi2): Likewise.
18196         (ix86_expand_vec_perm): Likewise.
18197         (ix86_expand_sse_unpack): Likewise.
18198         (ix86_expand_int_addcc): Likewise.
18199         (ix86_split_to_parts): Likewise.
18200         (ix86_vectorize_builtin_gather): Likewise.
18201         (ix86_vectorize_builtin_scatter): Likewise.
18202         (avx_vpermilp_parallel): Likewise.
18203         (inline_memory_move_cost): Likewise.
18204         (ix86_tieable_integer_mode_p): Likewise.
18205         (x86_maybe_negate_const_int): Likewise.
18206         (ix86_expand_vector_init_duplicate): Likewise.
18207         (ix86_expand_vector_init_one_nonzero): Likewise.
18208         (ix86_expand_vector_init_one_var): Likewise.
18209         (ix86_expand_vector_init_concat): Likewise.
18210         (ix86_expand_vector_init_interleave): Likewise.
18211         (ix86_expand_vector_init_general): Likewise.
18212         (ix86_expand_vector_set): Likewise.
18213         (ix86_expand_vector_extract): Likewise.
18214         (emit_reduc_half): Likewise.
18215         (ix86_emit_i387_round): Likewise.
18216         (ix86_mangle_type): Likewise.
18217         (ix86_expand_round_sse4): Likewise.
18218         (expand_vec_perm_blend): Likewise.
18219         (canonicalize_vector_int_perm): Likewise.
18220         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
18221         (expand_vec_perm_1): Likewise.
18222         (expand_vec_perm_interleave3): Likewise.
18223         (expand_vec_perm_even_odd_pack): Likewise.
18224         (expand_vec_perm_even_odd_1): Likewise.
18225         (expand_vec_perm_broadcast_1): Likewise.
18226         (ix86_vectorize_vec_perm_const_ok): Likewise.
18227         (ix86_expand_vecop_qihi): Likewise.
18228         (ix86_expand_mul_widen_hilo): Likewise.
18229         (ix86_expand_sse2_abs): Likewise.
18230         (ix86_expand_pextr): Likewise.
18231         (ix86_expand_pinsr): Likewise.
18232         (ix86_preferred_simd_mode): Likewise.
18233         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
18234         * config/i386/sse.md (*andnot<mode>3): Likewise.
18235         (<mask_codefor><code><mode>3<mask_name>): Likewise.
18236         (*<code><mode>3): Likewise.
18237         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
18238         (ia64_expand_atomic_op): Likewise.
18239         (ia64_arg_type): Likewise.
18240         (ia64_mode_to_int): Likewise.
18241         (ia64_scalar_mode_supported_p): Likewise.
18242         (ia64_vector_mode_supported_p): Likewise.
18243         (expand_vec_perm_broadcast): Likewise.
18244         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
18245         (iq2000_function_arg_advance): Likewise.
18246         (iq2000_function_arg): Likewise.
18247         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
18248         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
18249         (m68k_libcall_value): Likewise.
18250         (m68k_function_value): Likewise.
18251         (sched_attr_op_type): Likewise.
18252         * config/mcore/mcore.c (mcore_output_move): Likewise.
18253         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
18254         Likewise.
18255         (microblaze_function_arg): Likewise.
18256         * config/mips/mips.c (mips16_build_call_stub): Likewise.
18257         (mips_print_operand): Likewise.
18258         (mips_mode_ok_for_mov_fmt_p): Likewise.
18259         (mips_vector_mode_supported_p): Likewise.
18260         (mips_preferred_simd_mode): Likewise.
18261         (mips_expand_vpc_loongson_even_odd): Likewise.
18262         (mips_expand_vec_unpack): Likewise.
18263         (mips_expand_vi_broadcast): Likewise.
18264         (mips_expand_vector_init): Likewise.
18265         (mips_expand_vec_reduc): Likewise.
18266         (mips_expand_msa_cmp): Likewise.
18267         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
18268         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
18269         (cc_flags_for_mode): Likewise.
18270         * config/msp430/msp430.c (msp430_print_operand): Likewise.
18271         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
18272         (nds32_output_casesi_pc_relative): Likewise.
18273         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18274         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
18275         (nvptx_gen_unpack): Likewise.
18276         (nvptx_gen_pack): Likewise.
18277         (nvptx_gen_shuffle): Likewise.
18278         (nvptx_gen_wcast): Likewise.
18279         (nvptx_preferred_simd_mode): Likewise.
18280         * config/pa/pa.c (pa_secondary_reload): Likewise.
18281         * config/pa/predicates.md (base14_operand): Likewise.
18282         * config/powerpcspe/powerpcspe-c.c
18283         (altivec_resolve_overloaded_builtin): Likewise.
18284         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
18285         Likewise.
18286         (rs6000_preferred_simd_mode): Likewise.
18287         (output_vec_const_move): Likewise.
18288         (rs6000_expand_vector_extract): Likewise.
18289         (rs6000_split_vec_extract_var): Likewise.
18290         (reg_offset_addressing_ok_p): Likewise.
18291         (rs6000_legitimate_offset_address_p): Likewise.
18292         (rs6000_legitimize_address): Likewise.
18293         (rs6000_emit_set_const): Likewise.
18294         (rs6000_const_vec): Likewise.
18295         (rs6000_emit_move): Likewise.
18296         (spe_build_register_parallel): Likewise.
18297         (rs6000_darwin64_record_arg_recurse): Likewise.
18298         (swap_selector_for_mode): Likewise.
18299         (spe_init_builtins): Likewise.
18300         (paired_init_builtins): Likewise.
18301         (altivec_init_builtins): Likewise.
18302         (do_load_for_compare): Likewise.
18303         (rs6000_generate_compare): Likewise.
18304         (rs6000_expand_float128_convert): Likewise.
18305         (emit_load_locked): Likewise.
18306         (emit_store_conditional): Likewise.
18307         (rs6000_output_function_epilogue): Likewise.
18308         (rs6000_handle_altivec_attribute): Likewise.
18309         (rs6000_function_value): Likewise.
18310         (emit_fusion_gpr_load): Likewise.
18311         (emit_fusion_p9_load): Likewise.
18312         (emit_fusion_p9_store): Likewise.
18313         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
18314         (fusion_gpr_mem_load): Likewise.
18315         (fusion_addis_mem_combo_load): Likewise.
18316         (fusion_addis_mem_combo_store): Likewise.
18317         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
18318         (fusion_gpr_mem_load): Likewise.
18319         (fusion_addis_mem_combo_load): Likewise.
18320         (fusion_addis_mem_combo_store): Likewise.
18321         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18322         Likewise.
18323         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
18324         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
18325         (rs6000_preferred_simd_mode): Likewise.
18326         (output_vec_const_move): Likewise.
18327         (rs6000_expand_vector_extract): Likewise.
18328         (rs6000_split_vec_extract_var): Likewise.
18329         (reg_offset_addressing_ok_p): Likewise.
18330         (rs6000_legitimate_offset_address_p): Likewise.
18331         (rs6000_legitimize_address): Likewise.
18332         (rs6000_emit_set_const): Likewise.
18333         (rs6000_const_vec): Likewise.
18334         (rs6000_emit_move): Likewise.
18335         (rs6000_darwin64_record_arg_recurse): Likewise.
18336         (swap_selector_for_mode): Likewise.
18337         (paired_init_builtins): Likewise.
18338         (altivec_init_builtins): Likewise.
18339         (rs6000_expand_float128_convert): Likewise.
18340         (emit_load_locked): Likewise.
18341         (emit_store_conditional): Likewise.
18342         (rs6000_output_function_epilogue): Likewise.
18343         (rs6000_handle_altivec_attribute): Likewise.
18344         (rs6000_function_value): Likewise.
18345         (emit_fusion_gpr_load): Likewise.
18346         (emit_fusion_p9_load): Likewise.
18347         (emit_fusion_p9_store): Likewise.
18348         * config/rx/rx.c (rx_gen_move_template): Likewise.
18349         (flags_from_mode): Likewise.
18350         * config/s390/predicates.md (s390_alc_comparison): Likewise.
18351         (s390_slb_comparison): Likewise.
18352         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
18353         (s390_vector_mode_supported_p): Likewise.
18354         (s390_cc_modes_compatible): Likewise.
18355         (s390_match_ccmode_set): Likewise.
18356         (s390_canonicalize_comparison): Likewise.
18357         (s390_emit_compare_and_swap): Likewise.
18358         (s390_branch_condition_mask): Likewise.
18359         (s390_rtx_costs): Likewise.
18360         (s390_secondary_reload): Likewise.
18361         (__SECONDARY_RELOAD_CASE): Likewise.
18362         (s390_expand_cs): Likewise.
18363         (s390_preferred_simd_mode): Likewise.
18364         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
18365         * config/sh/sh.c (sh_print_operand): Likewise.
18366         (dump_table): Likewise.
18367         (sh_secondary_reload): Likewise.
18368         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18369         * config/sh/sh.md (casesi_worker_1): Likewise.
18370         (casesi_worker_2): Likewise.
18371         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
18372         (fcc_comparison_operator): Likewise.
18373         * config/sparc/sparc.c (sparc_expand_move): Likewise.
18374         (emit_soft_tfmode_cvt): Likewise.
18375         (sparc_preferred_simd_mode): Likewise.
18376         (output_cbranch): Likewise.
18377         (sparc_print_operand): Likewise.
18378         (sparc_expand_vec_perm_bmask): Likewise.
18379         (vector_init_bshuffle): Likewise.
18380         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
18381         (spu_vector_mode_supported_p): Likewise.
18382         (spu_expand_insv): Likewise.
18383         (spu_emit_branch_or_set): Likewise.
18384         (spu_handle_vector_attribute): Likewise.
18385         (spu_builtin_splats): Likewise.
18386         (spu_builtin_extract): Likewise.
18387         (spu_builtin_promote): Likewise.
18388         (spu_expand_sign_extend): Likewise.
18389         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
18390         (tilegx_simd_int): Likewise.
18391         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
18392         (tilepro_simd_int): Likewise.
18393         * config/v850/v850.c (const_double_split): Likewise.
18394         (v850_print_operand): Likewise.
18395         (ep_memory_offset): Likewise.
18396         * config/vax/vax.c (vax_rtx_costs): Likewise.
18397         (vax_output_int_move): Likewise.
18398         (vax_output_int_add): Likewise.
18399         (vax_output_int_subtract): Likewise.
18400         * config/visium/predicates.md (visium_branch_operator): Likewise.
18401         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
18402         (visium_print_operand_address): Likewise.
18403         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18404         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
18405         (xtensa_expand_conditional_branch): Likewise.
18406         (xtensa_copy_incoming_a7): Likewise.
18407         (xtensa_output_literal): Likewise.
18408         * dfp.c (decimal_real_maxval): Likewise.
18409         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
18410
18411 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18412             Alan Hayward  <alan.hayward@arm.com>
18413             David Sherwood  <david.sherwood@arm.com>
18414
18415         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
18416         (mode_nunits_inline): Likewise.
18417         (mode_inner_inline): Likewise.
18418         (mode_unit_size_inline): Likewise.
18419         (mode_unit_precision_inline): Likewise.
18420         (emit_insn_modes_h): Likewise.  Also emit a #define of the
18421         unprefixed name.
18422         (emit_mode_wider): Add an E_ prefix to mode names.
18423         (emit_mode_complex): Likewise.
18424         (emit_mode_inner): Likewise.
18425         (emit_mode_adjustments): Likewise.
18426         (emit_mode_int_n): Likewise.
18427         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
18428         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
18429         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
18430         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
18431         (CRC32_BUILTIN, ENTRY): Likewise.
18432         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
18433         (aarch64_pop_regs): Likewise.
18434         (aarch64_process_components): Likewise.
18435         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
18436         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
18437         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
18438         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
18439         * config/arm/arm.c (arm_init_libfuncs): Likewise.
18440         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
18441         Likewise.
18442         * config/i386/i386-builtin.def (pcmpestr): Likewise.
18443         (pcmpistr): Likewise.
18444         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
18445         * config/mmix/mmix.c (mmix_output_condition): Likewise.
18446         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
18447         Likewise.
18448         * config/rl78/rl78.c (mduc_regs): Likewise.
18449         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
18450         (htm_expand_builtin): Likewise.
18451         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
18452         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
18453         * config/xtensa/xtensa.c (print_operand): Likewise.
18454         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
18455         (NUM_MODE_VECTOR_INT): Likewise.
18456         * genoutput.c (null_operand): Likewise.
18457         (output_operand_data): Likewise.
18458         * genrecog.c (print_parameter_value): Likewise.
18459         * lra.c (debug_operand_data): Likewise.
18460
18461 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18462
18463         * dwarf2out.c (scompare_loc_descriptor_wide)
18464         (scompare_loc_descriptor_narrow): New functions, split out from...
18465         (scompare_loc_descriptor): ...here.
18466         * expmed.c (emit_store_flag_int): New function, split out from...
18467         (emit_store_flag): ...here.
18468
18469 2017-08-30  Richard Biener  <rguenther@suse.de>
18470
18471         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
18472         (dwarf2out_early_finish): Move setting of AT_pubnames from
18473         early debug output to early finish.
18474
18475 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
18476
18477         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
18478         and -mdata-region to the assembler.
18479
18480 2017-08-30  Richard Biener  <rguenther@suse.de>
18481
18482         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
18483         attributes.
18484         (gen_subprogram_die): Add DW_AT_object_pointer only early.
18485         (dwarf2out_early_global_decl): Only generate a DIE for the
18486         abstract origin if it doesn't already exist or is a declaration DIE.
18487         (resolve_addr): Do not add the linkage name twice when
18488         generating a stub DIE for the DW_TAG_GNU_call_site target.
18489
18490 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18491
18492         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18493         Use machine_mode rather than int for arg1_mode.
18494
18495 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
18496
18497         PR target/82015
18498         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
18499         that the second argument of the built-in functions to unpack
18500         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
18501         switch statement instead a lot of if statements.
18502         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
18503         Allow 64-bit values to be in Altivec registers as well as
18504         traditional floating point registers.
18505         (pack<mode>, FMOVE128_VSX iterator): Likewise.
18506
18507 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
18508
18509         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
18510         MAX_REGS_PER_ADDRESS == 1.
18511
18512 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
18513
18514         * config/i386/i386.opt (flag_fentry): Do not init to -1.
18515         * config/i386/i386.c (ix86_option_override_internal): Simplify
18516         setting of opts->x_flag_entry.
18517
18518 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18519             Jakub Jelinek  <jakub@redhat.com>
18520             Richard Biener  <rguenther@suse.de>
18521
18522         PR tree-optimization/81503
18523         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
18524         folded constant fits in the target type; reorder tests for clarity.
18525
18526 2017-08-29  Martin Liska  <mliska@suse.cz>
18527
18528         * passes.def: Include pass_lower_switch.
18529         * stmt.c (dump_case_nodes): Remove and move to
18530         tree-switch-conversion.
18531         (case_values_threshold): Likewise.
18532         (expand_switch_as_decision_tree_p): Likewise.
18533         (emit_case_decision_tree): Likewise.
18534         (expand_case): Likewise.
18535         (balance_case_nodes): Likewise.
18536         (node_has_low_bound): Likewise.
18537         (node_has_high_bound): Likewise.
18538         (node_is_bounded): Likewise.
18539         (emit_case_nodes): Likewise.
18540         (struct simple_case_node): New struct.
18541         (add_case_node): Remove.
18542         (emit_case_dispatch_table): Use vector instead of case_list.
18543         (reset_out_edges_aux): Remove.
18544         (compute_cases_per_edge): Likewise.
18545         (expand_case): Build list of simple_case_node.
18546         (expand_sjlj_dispatch_table): Use it.
18547         * tree-switch-conversion.c (struct case_node): Moved from
18548         stmt.c and adjusted.
18549         (emit_case_nodes): Likewise.
18550         (node_has_low_bound): Likewise.
18551         (node_has_high_bound): Likewise.
18552         (node_is_bounded): Likewise.
18553         (case_values_threshold): Likewise.
18554         (reset_out_edges_aux): Likewise.
18555         (compute_cases_per_edge): Likewise.
18556         (add_case_node): Likewise.
18557         (dump_case_nodes): Likewise.
18558         (balance_case_nodes): Likewise.
18559         (expand_switch_as_decision_tree_p): Likewise.
18560         (emit_jump): Likewise.
18561         (emit_case_decision_tree): Likewise.
18562         (try_switch_expansion): Likewise.
18563         (do_jump_if_equal): Likewise.
18564         (emit_cmp_and_jump_insns): Likewise.
18565         (fix_phi_operands_for_edge): New function.
18566         (record_phi_operand_mapping): Likewise.
18567         (class pass_lower_switch): New pass.
18568         (pass_lower_switch::execute): New function.
18569         (make_pass_lower_switch): Likewise.
18570         (conditional_probability):
18571         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
18572         * tree-pass.h: Add make_pass_lower_switch.
18573
18574 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
18575
18576         PR target/80993
18577         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
18578         handlers as used.
18579
18580 2017-08-29  Richard Biener  <rguenther@suse.de>
18581
18582         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
18583         we do not add a DW_AT_inline attribute twice.
18584         (gen_subprogram_die): Remove code setting DW_AT_inline on
18585         DECL_ABSTRACT_P nodes.
18586
18587 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
18588
18589         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
18590         calls to internal functions.
18591         (gimplify_modify_expr): Likewise.
18592         * tree-call-cdce.c (use_internal_fn): Likewise.
18593         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
18594         (convert_to_divmod): Set the nothrow flag.
18595         * tree-if-conv.c (predicate_mem_writes):  Likewise.
18596         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
18597         (vectorizable_call): Likewise.
18598         (vectorizable_store): Likewise.
18599         (vectorizable_load): Likewise.
18600         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
18601         (vect_recog_mask_conversion_pattern): Likewise.
18602
18603 2017-08-29  Martin Liska  <mliska@suse.cz>
18604
18605         PR other/39851
18606         * gcc.c (driver_handle_option): Add new argument.
18607         * opts-common.c (handle_option): Pass
18608         target_option_override_hook.
18609         * opts-global.c (lang_handle_option): Add new option.
18610         (set_default_handlers):  Add new argument.
18611         (decode_options): Likewise.
18612         * opts.c (target_handle_option): Likewise.
18613         (common_handle_option): Call target_option_override_hook.
18614         * opts.h (struct cl_option_handler_func): Add hook for
18615         target option override.
18616         (struct cl_option_handlers): Likewise.
18617         (set_default_handlers): Add new argument.
18618         (decode_options): Likewise.
18619         (common_handle_option): Likewise.
18620         (target_handle_option): Likewise.
18621         * toplev.c (toplev::main): Pass targetm.target_option.override
18622         hook.
18623
18624 2017-08-29  Richard Biener  <rguenther@suse.de>
18625         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
18626
18627         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
18628         life to the active subtree.
18629
18630 2017-08-28  Jeff Law  <law@redhat.com>
18631
18632         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
18633         derive_equivalences.
18634         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
18635         Code moved into....
18636         (edge_info::derive_equivalences): New private member function
18637
18638         * tree-ssa-dom.c (class edge_info): Changed from a struct
18639         to a class.  Add ctor/dtor, methods and data members.
18640         (edge_info::edge_info): Renamed from allocate_edge_info.
18641         Initialize additional members.
18642         (edge_info::~edge_info): New.
18643         (free_dom_edge_info): Delete the edge info.
18644         (record_edge_info): Use new class & associated member functions.
18645         Tighten forms for testing for edge equivalences.
18646         (record_temporary_equivalences): Iterate over the simple
18647         equivalences rather than assuming there's only one per edge.
18648         (cprop_into_successor_phis): Iterate over the simple
18649         equivalences rather than assuming there's only one per edge.
18650         (optimize_stmt): Use operand_equal_p rather than pointer
18651         equality for mini-DSE code.
18652
18653 2017-08-28  Nathan Sidwell  <nathan@acm.org>
18654
18655         * gcc.c (execute): Fold SIGPIPE handling into switch
18656         statement.  Adjust internal error message.
18657
18658 2017-08-28  Richard Biener  <rguenther@suse.de>
18659
18660         PR debug/81993
18661         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
18662         Do nothing for removed DIEs.
18663
18664 2017-08-28  Richard Biener  <rguenther@suse.de>
18665
18666         PR tree-optimization/81977
18667         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
18668         memcpy.
18669
18670 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
18671
18672         PR target/80640
18673         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
18674         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
18675         using targetm.gen_mem_thread_fence.
18676
18677 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
18678
18679         PR target/81995
18680         * config/i386/i386.md (*<btsc><mode>): Change operand 2
18681         predicate to register_operand.  Reorder operands.
18682         (*btr<mode>): Ditto.
18683         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
18684         (*btr<mode>_mask): Ditto.
18685
18686 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
18687
18688         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
18689         * config/rs6000/xmmintrin.h: New file.
18690         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
18691
18692 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18693
18694         PR target/81504
18695         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
18696         parameter and_insn and return it.
18697         (recombine_lvx_pattern): Insert a copy to ensure availability of
18698         the base register of the copied masking operation at the point of
18699         the instruction replacement.
18700         (recombine_stvx_pattern): Likewise.
18701
18702 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
18703
18704         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
18705         undocumented switches.
18706         (-mpower9-dform-vector): Likewise.
18707         (-mpower9-dform): Likewise.
18708         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
18709         comments to delete references to -mpower9-dform* switches.
18710         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
18711         Delete reference to -mpower9-dform* switches, test for
18712         -mpower9-vector instead.
18713         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
18714         (OTHER_P9_VECTOR_MASKS): Likewise.
18715         (POWERPC_MASKS): Likewise.
18716         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
18717         tests against -mpower9-dform* to -mpower9-vector.  Delete code
18718         that checked for -mpower9-dform* consistancy with other options.
18719         Add test for -mpower9-misc to enable other power9 switches.
18720         (rs6000_init_hard_regno_mode_ok): Likewise.
18721         (rs6000_option_override_internal): Likewise.
18722         (rs6000_emit_prologue): Likewise.
18723         (rs6000_emit_epilogue): Likewise.
18724         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
18725         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
18726         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
18727         -mpower9-vector.
18728         (emit_fusion_p9_store): Likewise.
18729         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
18730         resetting these macros if the assembler does not support ISA 3.0
18731         instructions.
18732         (TARGET_P9_DFORM_VECTOR): Likewise.
18733         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
18734         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
18735
18736 2017-08-25  Alan Modra  <amodra@gmail.com>
18737
18738         PR rtl-optimization/81747
18739         * cse.c (cse_extended_basic_block): Don't attempt to record
18740         equivalences for degenerate conditional branches that branch
18741         to their fall-through.
18742
18743 2017-08-24  Martin Sebor  <msebor@redhat.com>
18744
18745         PR middle-end/81908
18746         * gimple-fold.c (size_must_be_zero_p): New function.
18747         (gimple_fold_builtin_memory_op): Call it.
18748
18749 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
18750
18751         * config/rs6000/mm_malloc.h: New file.
18752
18753 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
18754
18755         PR tree-optimization/81913
18756         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
18757         analysis when either IVs in condition can wrap.
18758
18759 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
18760
18761         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
18762         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
18763
18764 2017-08-24  Richard Biener  <rguenther@suse.de>
18765
18766         PR target/81921
18767         * targhooks.c (default_target_can_inline_p): Properly
18768         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
18769         is present and always compare.
18770         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
18771         infer -mfpmath=sse from TARGET_SSE_P.
18772         (ix86_can_inline_p): Properly use target_option_default_node when
18773         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
18774
18775 2017-08-24  Richard Biener  <rguenther@suse.de>
18776
18777         PR debug/81936
18778         * dwarf2out.c (output_die): Handle flag_generate_offload like
18779         flag_generate_lto.
18780         (output_comp_unit): Likewise.
18781         (gen_array_type_die): Likewise.
18782         (dwarf2out_early_finish): Likewise.
18783         (note_variable_value_in_expr): Likewise.
18784         (dwarf2out_finish): Likewise.  Adjust assert.
18785         * cgraphunit.c (symbol_table::compile): Move setting of
18786         flag_generate_offload earlier ...
18787         (symbol_table::finalize_compilation_unit): ... here, before
18788         early debug finalization.
18789
18790 2017-08-24  Richard Biener  <rguenther@suse.de>
18791
18792         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
18793         and ipa-fnsummary.h.
18794         (ix86_can_inline_p): When ix86_fpmath flags do not match
18795         check whether the callee uses FP math at all.
18796
18797 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
18798
18799         PR middle-end/81931
18800         * tree-ssanames.c (get_nonzero_bits): Use element_precision
18801         instead of TYPE_PRECISION.
18802
18803 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
18804             Alan Hayward  <alan.hayward@arm.com>
18805             David Sherwood  <david.sherwood@arm.com>
18806
18807         * combine.c (make_extraction): Use subreg_offset_from_lsb.
18808
18809 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
18810
18811         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
18812         Remove field.
18813         (ix86_frame::stack_realign_allocate): New field.
18814         (struct machine_frame_state): Modify comments.
18815         (machine_frame_state::sp_realigned_fp_end): New field.
18816         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
18817         layout calculation.
18818         (sp_valid_at): Add assertion to assure no attempt to access invalid
18819         offset of a realigned stack.
18820         (fp_valid_at): Likewise.
18821         (choose_baseaddr): Modify comments.
18822         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
18823         ix86_expand_prologue.
18824         (ix86_expand_prologue): Modify stack realignment and allocation.
18825         (ix86_expand_epilogue): Modify comments.
18826         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
18827         avx2_runtime, avx512f, and avx512f_runtime.
18828
18829 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
18830
18831         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
18832         (mstackrealign): Do not init to -1.
18833         * config/i386/i386.c (ix86_option_override_internal):
18834         Check opts_set, not opts when setting default value of
18835         opts->x_ix86_force_align_arg_pointer.
18836
18837 2017-08-23  Richard Biener  <rguenther@suse.de>
18838
18839         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
18840         lang_hooks.decl_printable_name.
18841         * print-rtl-function.c (print_rtx_function): Likewise.
18842         * tree-pretty-print.c (dump_function_header): Likewise.
18843
18844 2017-08-23  Richard Biener  <rguenther@suse.de>
18845
18846         PR lto/81940
18847         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
18848         -g0 at compile-time.
18849
18850 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
18851
18852         PR middle-end/19706
18853         * doc/sourcebuild.texi (Other hardware attributes):
18854         Document xorsign.
18855
18856 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
18857
18858         PR middle-end/19706
18859         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
18860         Fix single-use check.
18861
18862 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18863
18864         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
18865
18866 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
18867
18868         * doc/install.texi: Modify to add more details on running selected
18869         tests.
18870
18871 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
18872
18873         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
18874         is combined with -mabi=ms.
18875         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
18876         ms_abi.
18877
18878 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18879
18880         PR tree-optimization/81488
18881         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
18882         and cached_basis fields.
18883         (MAX_SPREAD): New constant.
18884         (alloc_cand_and_find_basis): Initialize new fields.
18885         (clear_visited): New function.
18886         (create_phi_basis_1): Rename from create_phi_basis, set visited
18887         and cached_basis fields.
18888         (create_phi_basis): New wrapper function.
18889         (phi_add_costs_1): Rename from phi_add_costs, add spread
18890         parameter, set visited field, short-circuit when limits reached.
18891         (phi_add_costs): New wrapper function.
18892         (record_phi_increments_1): Rename from record_phi_increments, set
18893         visited field.
18894         (record_phi_increments): New wrapper function.
18895         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
18896         (phi_incr_cost): New wrapper function.
18897         (all_phi_incrs_profitable_1): Rename from
18898         all_phi_incrs_profitable, set visited field.
18899         (all_phi_incrs_profitable): New wrapper function.
18900
18901 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
18902             Alan Hayward  <alan.hayward@arm.com>
18903             David Sherwood  <david.sherwood@arm.com>
18904
18905         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
18906         that takes the outer and inner modes.
18907         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
18908         comparison as the canonical test for a paradoxical subreg.
18909         * combine.c (simplify_set): Use paradoxical_subreg_p.
18910         (make_extraction): Likewise.
18911         (force_to_mode): Likewise.
18912         (rtx_equal_for_field_assignment_p): Likewise.
18913         (gen_lowpart_for_combine): Likewise.
18914         (simplify_comparison): Likewise.
18915         * cse.c (equiv_constant): Likewise.
18916         * expmed.c (store_bit_field_1): Likewise.
18917         * final.c (alter_subreg): Likewise.
18918         * fwprop.c (propagate_rtx): Likewise.
18919         (forward_propagate_subreg): Likewise.
18920         * ira-conflicts.c (ira_build_conflicts): Likewise.
18921         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
18922         * lra-constraints.c (curr_insn_transform): Likewise.
18923         (split_reg): Likewise.
18924         * lra-eliminations.c (move_plus_up): Likewise.
18925         (lra_eliminate_regs_1): Likewise.
18926         * recog.c (general_operand): Likewise.
18927         * ree.c (combine_reaching_defs): Likewise.
18928         * reload.c (push_reload): Likewise.
18929         (find_reloads): Likewise.
18930         * reload1.c (elimination_effects): Likewise.
18931         (compute_reload_subreg_offset): Likewise.
18932         (choose_reload_regs): Likewise.
18933         * rtlanal.c (subreg_lsb_1): Likewise.
18934         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18935         (simplify_subreg): Likewise.
18936         * var-tracking.c (track_loc_p): Likewise.
18937         * emit-rtl.c (byte_lowpart_offset): Likewise.
18938         (paradoxical_subreg_p): Delete out-of-line definition.
18939
18940 2017-08-22  Jeff Law  <law@redhat.com>
18941
18942         PR tree-optimization/81741
18943         PR tree-optimization/71947
18944         * tree-ssa-dom.c: Include tree-inline.h.
18945         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
18946         equivalences if one is more expensive to compute than the other.
18947         * tree-ssa-scopedtables.h (class const_or_copies): Make
18948         record_const_or_copy_raw method private.
18949         (class avail_exprs_stack): New method simplify_binary_operation.
18950         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
18951         avail_exprs_stack::simplify_binary_operation as needed.
18952         (avail_exprs_stack::simplify_binary_operation): New function.
18953
18954 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18955
18956         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
18957         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
18958         (DOT_SYMBOLS): Likewise.
18959         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
18960         (RELOCATABLE_NEEDS_FIXUP): Likewise.
18961         (RS6000_ABI_NAME): Likewise.
18962         (TARGET_CMODEL): Likewise.
18963         (TOC_SECTION_ASM_OP): Likewise.
18964         (SET_CMODEL): New macro.
18965         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
18966
18967 2017-08-22  Richard Biener  <rguenther@suse.de>
18968
18969         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
18970         to allow for free-lang-data replacements similar to verify_type_variant.
18971
18972 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
18973             Alan Hayward  <alan.hayward@arm.com>
18974             David Sherwood  <david.sherwood@arm.com>
18975
18976         * config/aarch64/aarch64.md (casesi): Use DImode rather than
18977         VOIDmode for the LABEL_REF.
18978
18979 2017-08-22  Richard Biener  <rguenther@suse.de>
18980
18981         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
18982
18983 2017-08-22  Richard Biener  <rguenther@suse.de>
18984
18985         * common.opt (feliminate-dwarf2-dups): Ignore.
18986         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
18987         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
18988         same_die_p_wrap, compute_section_prefix,
18989         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
18990         (comdat_symbol_id, comdat_symbol_number): Likewise.
18991         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
18992         Likewise.
18993         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
18994         (output_die): Mark unreachable path unreachable.
18995         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
18996         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
18997         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
18998         (dwarf2out_early_finish): Likewise.
18999
19000 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
19001
19002         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
19003
19004 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
19005
19006         PR target/81910
19007         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
19008         not VAR_P. Filter attribute warnings with OPT_Wattributes.
19009         (avr_attribute_table) <io, io_low, address>: Initialize
19010         .decl_required with true.
19011
19012 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
19013
19014         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
19015         undocumented debugging options.
19016         (-mvsx-scalar-double): Likewise.
19017         (-mallow-df-permute): Likewise.
19018         (-mvectorize-builtins): Likewise.
19019         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
19020         (rs6000_builtin_vectorized_function): Likewise.
19021         (rs6000_builtin_md_vectorized_function): Likewise.
19022         (rs6000_opt_vars): Likewise.
19023
19024 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
19025
19026         PR target/46091
19027         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
19028         (*btrq_imm): Rename from *btrq.
19029         (*btcq_imm): Rename from *btcq.
19030         (btsc): New code attribute.
19031         (*<btsc><mode>): New insn pattern.
19032         (*btr<mode>): Ditto.
19033         (*<btsc><mode>_mask): New insn_and_split pattern.
19034         (*btr<mode>_mask): Ditto.
19035
19036 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19037             Alan Hayward  <alan.hayward@arm.com>
19038             David Sherwood  <david.sherwood@arm.com>
19039
19040         * function.c (pad_below): Simplify padding calculation.
19041
19042 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19043             Alan Hayward  <alan.hayward@arm.com>
19044             David Sherwood  <david.sherwood@arm.com>
19045
19046         * target.def (function_prologue): Remove frame size argument.
19047         (function_epilogue): Likewise.
19048         * doc/tm.texi: Regenerate.
19049         * final.c (final_start_function): Update call to function_prologue.
19050         (final_end_function): Update call to function_epilogue.
19051         (default_function_pro_epilogue): Remove frame size argument.
19052         * output.h (default_function_pro_epilogue): Likewise.
19053         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
19054         (arm_output_function_prologue): Likewise.
19055         * config/frv/frv.c (frv_function_prologue): Likewise.
19056         (frv_function_epilogue): Likewise.
19057         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
19058         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
19059         (ia64_output_function_epilogue): Likewise.
19060         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
19061         (m32r_output_function_epilogue): Likewise.
19062         * config/microblaze/microblaze.c (microblaze_function_prologue)
19063         (microblaze_function_epilogue): Likewise.
19064         * config/mips/mips.c (mips_output_function_prologue): Likewise.
19065         (mips_output_function_epilogue): Likewise.
19066         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
19067         (mmix_target_asm_function_epilogue): Likewise.
19068         * config/msp430/msp430.c (msp430_start_function): Likewise.
19069         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
19070         (nds32_asm_function_epilogue): Likewise.
19071         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
19072         * config/pa/pa.c (pa_output_function_prologue): Likewise.
19073         (pa_output_function_epilogue): Likewise.
19074         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
19075         (rs6000_output_function_epilogue): Likewise.
19076         * config/rl78/rl78.c (rl78_start_function): Likewise.
19077         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
19078         (rs6000_output_function_epilogue): Likewise.
19079         * config/rx/rx.c (rx_output_function_prologue): Likewise.
19080         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
19081         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
19082         (sparc_asm_function_epilogue): Likewise.
19083
19084 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19085
19086         * tree.h (type_has_mode_precision_p): New function.
19087         * convert.c (convert_to_integer_1): Use it.
19088         * expr.c (expand_expr_real_2): Likewise.
19089         (expand_expr_real_1): Likewise.
19090         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
19091         * match.pd: Likewise.
19092         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
19093         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
19094         * tree-tailcall.c (process_assignment): Likewise.
19095         * tree-vect-loop.c (vectorizable_reduction): Likewise.
19096         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
19097         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
19098         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
19099         (vectorizable_assignment): Likewise.
19100         (vectorizable_shift): Likewise.
19101         (vectorizable_operation): Likewise.
19102         * tree-vrp.c (register_edge_assert_for_2): Likewise.
19103
19104 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
19105
19106         * match.pd: Add pow (C, x) simplification.
19107
19108 2017-08-21  Richard Biener  <rguenther@suse.de>
19109
19110         PR tree-optimization/81900
19111         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
19112         for blocks with abnormal predecessors.
19113         (compute_antic): Do not set visited flag prematurely.
19114
19115 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
19116
19117         PR target/79883
19118         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
19119
19120 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19121
19122         * stor-layout.h (vector_type_mode): Move to...
19123         * tree.h (vector_type_mode): ...here.
19124         * stor-layout.c (vector_type_mode): Move to...
19125         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
19126
19127 2017-08-21  Richard Biener  <rguenther@suse.de>
19128
19129         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
19130         register_external_die hooks.
19131         (debug_false_tree_charstarstar_uhwistar): Declare.
19132         (debug_nothing_tree_charstar_uhwi): Likewise.
19133         * debug.c (do_nothing_debug_hooks): Adjust.
19134         (debug_false_tree_charstarstar_uhwistar): New do nothing.
19135         (debug_nothing_tree_charstar_uhwi): Likewise.
19136         * dbxout.c (dbx_debug_hooks): Adjust.
19137         (xcoff_debug_hooks): Likewise.
19138         * sdbout.c (sdb_debug_hooks): Likewise.
19139         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19140         * dwarf2out.c (macinfo_label_base): New global.
19141         (dwarf2out_register_external_die): New function for the
19142         register_external_die hook.
19143         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
19144         (dwarf2_debug_hooks): Use them.
19145         (dwarf2_lineno_debug_hooks): Adjust.
19146         (struct die_struct): Add with_offset flag.
19147         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
19148         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
19149         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
19150         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
19151         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
19152         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
19153         defining section names for the early LTO debug variants.
19154         (reset_indirect_string): New helper.
19155         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
19156         (print_dw_val): Add support for offsetted symbol references.
19157         (get_ultimate_context): Split out from is_cxx.
19158         (is_cxx): Use get_ultimate_context.
19159         (is_fortran): Add decl overload.
19160         (compute_comp_unit_symbol): Split out worker from
19161         compute_section_prefix.
19162         (compute_section_prefix): Call compute_comp_unit_symbol and
19163         set comdat_type_p here.
19164         (output_die): Skip DIE symbol output for the LTO added one.
19165         Handle DIE symbol references with offset.
19166         (output_comp_unit): Guard section name mangling properly.
19167         For LTO debug sections emit a symbol at the section beginning
19168         which we use to refer to its DIEs.
19169         (add_abstract_origin_attribute): For DIEs registered via
19170         dwarf2out_register_external_die directly refer to the early
19171         DIE rather than indirectly through the shadow one we created.
19172         Remove obsolete call to dwarf2out_abstract_function for
19173         non-function/block origins.
19174         (gen_array_type_die): When generating early LTO debug do
19175         not emit DW_AT_string_length.
19176         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
19177         late when in LTO.  As suggested place a gcc_unreachable for
19178         the DECL_ABSTRACT_P case.
19179         (gen_subprogram_die): Avoid another specification DIE
19180         for early built declarations/definitions for the late LTO case.
19181         (gen_variable_die): Add type references for late duplicated VLA dies
19182         when in late LTO.
19183         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
19184         we have the abstract instance already.
19185         (process_scope_var): Adjust decl DIE contexts in LTO which
19186         first puts them in limbo.
19187         (gen_decl_die): Do not generate type DIEs late apart from
19188         types for VLAs or for decls we do not yet have a DIE.  Do not
19189         call dwarf2out_abstract_function late.
19190         (dwarf2out_early_global_decl): Make sure to create DIEs
19191         for abstract instances of a decl first.
19192         (dwarf2out_late_global_decl): Adjust comment.
19193         (output_macinfo_op): With multiple macro sections use
19194         macinfo_label_base to distinguish labels.
19195         (output_macinfo): Likewise.  Update macinfo_label_base.
19196         Pass in the line info label.
19197         (note_variable_value_in_expr): When generating LTO resolve
19198         all variable values here by generating DIEs as needed.
19199         (init_sections_and_labels): Add early LTO debug flag parameter
19200         and generate different sections and names if set.  Add generation
19201         counter for the labels so we can have multiple of them.
19202         (reset_dies): Helper to allow DIEs to be output multiple times.
19203         (dwarf2out_finish): When outputting DIEs to the fat part of an
19204         LTO object first reset DIEs.
19205         (dwarf2out_early_finish): Output early DIEs when generating LTO.
19206         (modified_type_die): Check for decl_ultimate_origin being self
19207         before recursing.
19208         (gen_type_die_with_usage): Likewise.
19209         (gen_typedef_die): Allow decl_ultimate_origin being self.
19210         (set_decl_abstract_flags): Remove.
19211         (set_block_abstract_flags): Likewise.
19212         (dwarf2out_abstract_function): Treat the early generated DIEs
19213         as the abstract copy and only add DW_AT_inline and
19214         DW_AT_artificial here and call set_decl_origin_self.
19215         If the DIE has an abstract origin don't do anything.
19216         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
19217         if we have none yet (Go fails to build one, PR78628).
19218         (variably_modified_type_p): Prevent endless recursion for Ada
19219         cyclic pointer types.
19220         * lto-streamer-in.c: Include debug.h.
19221         (dref_queue): New global.
19222         (lto_read_tree_1): Stream in DIE references.
19223         (lto_input_tree): Register DIE references.
19224         (input_function): Stream DECL_DEBUG_ARGS.
19225         * lto-streamer-out.c: Include debug.h.
19226         (lto_write_tree_1): Output DIE references.
19227         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
19228         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
19229         (output_function): Stream DECL_DEBUG_ARGS.
19230         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19231         Stream DECL_ABSTRACT_ORIGIN.
19232         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
19233         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
19234         DECL_CONTEXT for file-scope decls.
19235         * lto-streamer.h (struct dref_entry): Declare.
19236         (dref_queue): Likewise.
19237         * cfgexpand.c (pass_expand::execute): Do not call the
19238         outlining_inline_function hook here.
19239         * lto-wrapper.c (debug_obj): New global.
19240         (tool_cleanup): Unlink it if required.
19241         (debug_objcopy): New function.
19242         (run_gcc): Handle early debug sections in the IL files by
19243         extracting them to separate files, partially linkin them and
19244         feeding the result back as result to the linker.
19245         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
19246         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
19247         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
19248         sections into a separate segment.
19249         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
19250         segments.
19251         (darwin_asm_dwarf_section): Likewise.
19252         (darwin_asm_output_dwarf_offset): Likewise.
19253         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
19254
19255 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19256             Alan Hayward  <alan.hayward@arm.com>
19257             David Sherwood  <david.sherwood@arm.com>
19258
19259         * read-md.h (md_reader::record_potential_iterator_use): Replace
19260         pointer argument with an rtx and an index.
19261         * read-rtl.c (iterator_group::apply_iterator): Likewise.
19262         (apply_mode_iterator): Likewise.
19263         (apply_code_iterator): Likewise.
19264         (apply_int_iterator): Likewise.
19265         (apply_subst_iterator): Likewise.
19266         (record_iterator_use): Likewise.
19267         (record_attribute_use): Likewise.
19268         (md_reader::record_potential_iterator_use): Likewise.  Update calls
19269         to record_iterator_use and apply_iterator.
19270         (iterator_use): Replace ptr with x and index.
19271         (attribute_use): Likewise.
19272         (apply_attribute_uses): Update calls to apply_iterator.
19273         (apply_iterators): Likewise.  Update initialization of iterator_use.
19274         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
19275         and record_potential_iterator_use.
19276         (rtx_reader::read_rtx_operand): Likewise.
19277
19278 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
19279             Alan Hayward  <alan.hayward@arm.com>
19280             David Sherwood  <david.sherwood@arm.com>
19281
19282         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
19283         CONST_WIDE_INT.
19284
19285 2017-08-21  Richard Biener  <rguenther@suse.de>
19286
19287         PR middle-end/81884
19288         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
19289         at struct end conservatively when comparing common bases.
19290
19291 2017-08-21  Richard Biener  <rguenther@suse.de>
19292
19293         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
19294         (mem_ref_in_stmt): Remove.
19295         (determine_max_movement): Use ref index to get at the reference.
19296         (invariantness_dom_walker::before_dom_children): Deal with
19297         lim data already initialized.
19298         (gather_mem_refs_stmt): Initialize lim data and record ref index.
19299
19300 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
19301
19302         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
19303         (TARGET_ISA_ROUND): Ditto.
19304         (TARGET_ROUND): Ditto.
19305         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
19306         * config/i386/i386.md: Ditto.
19307         * config/i386/sse.md: Ditto.
19308         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
19309         with OPTION_MASK_ISA_SSE4_1.
19310
19311 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
19312
19313         PR target/81894
19314         * doc/extend.texi (x86 Built-in Functions): Correct the name of
19315         __builtin_ia32_lzcnt_u16.
19316
19317 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
19318
19319         PR target/80210
19320         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
19321         (rs6000_set_current_function): Rewrite function to use it.
19322
19323 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
19324
19325         PR c/53037
19326         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
19327         and TYPE_WARN_IF_NOT_ALIGN.
19328         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
19329         (handle_warn_if_not_align): New.
19330         (place_union_field): Call handle_warn_if_not_align.
19331         (place_field): Call handle_warn_if_not_align.
19332         Copy TYPE_WARN_IF_NOT_ALIGN.
19333         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
19334         (layout_type): Likewise.
19335         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
19336         spare to 18.
19337         (tree_decl_common): Add warn_if_not_align.
19338         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
19339         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
19340         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
19341         (DECL_WARN_IF_NOT_ALIGN): Likewise.
19342         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
19343         * doc/extend.texi: Document warn_if_not_aligned attribute.
19344         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
19345
19346 2017-08-17  Martin Liska  <mliska@suse.cz>
19347
19348         PR bootstrap/81864
19349         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
19350         (get_data_dependence): Use it as pointer type.
19351         (distribute_loop): Likewise.
19352
19353 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19354
19355         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
19356         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
19357         (p8_vmrgow_<mode>_direct): New define_insn.
19358         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
19359         handle endianness for vmrgew and vmrgow permute patterns.
19360
19361 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
19362
19363         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
19364         * config/rs6000/rs6000-cpus.def: Remove comment.
19365         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
19366         (POWERPC_MASKS): Likewise.
19367         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
19368         use of TARGET_VSX_TIMODE.
19369         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
19370         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
19371         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
19372         (rs6000_option_override_internal): Remove dead code.
19373         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
19374         (rs6000_legitimize_reload_address): Likewise.
19375         (rs6000_legitimate_address_p): Likewise.
19376         (rs6000_opt_masks): Delete "vsx-timode".
19377         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
19378         from function comment.
19379         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
19380         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
19381         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
19382         condition.
19383         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
19384         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
19385         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
19386         (VSX_TI): Likewise.
19387         (VSX_M): Likewise.
19388         (define_peephole2): Likewise.
19389
19390 2017-08-17  Martin Sebor  <msebor@redhat.com>
19391
19392         PR c/81859
19393         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
19394         past the end of an array.
19395         (test_pp_format): Add test cases.
19396
19397 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
19398
19399         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
19400         missing ECF_NOTHROW flags.
19401
19402 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
19403
19404         PR target/72804
19405         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
19406         operands residing in integer registers.
19407         (*vsx_le_perm_load_<mode>): Likewise.
19408         (*vsx_le_perm_store_<mode>): Likewise.
19409         (define_peephole2): Add peepholes to optimize the above.
19410
19411 2017-08-17  Marek Polacek  <polacek@redhat.com>
19412
19413         PR middle-end/81814
19414         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
19415         to mimic what shorten_compare did.  Change the return type to bool.
19416         (fold_cond_expr_with_comparison): Update call to
19417         operand_equal_for_comparison_p.
19418         (fold_ternary_loc): Likewise.
19419
19420 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
19421
19422         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
19423         register.
19424         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
19425
19426 2017-08-17  Richard Biener  <rguenther@suse.de>
19427
19428         * tree-ssa-structalias.c (solve_graph): When propagating
19429         to successors update the graphs succ edges and avoid duplicate work.
19430
19431 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
19432
19433         PR target/81861
19434         * config/i386/i386.c (ix86_option_override_internal): Save target
19435         specific options after ix86_stack_protector_guard_reg was changed.
19436
19437 2017-08-17  Richard Biener  <rguenther@suse.de>
19438
19439         PR tree-optimization/81827
19440         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
19441         (new_var_info): Initialize it conservatively.
19442         (get_call_vi): Mark register vars.
19443         (new_scalar_tmp_constraint_exp): Likewise.
19444         (handle_rhs_call): Likewise.
19445         (handle_const_call): Likewise.
19446         (create_function_info_for): Likewise.
19447         (solve_constraints): Sort varinfos to separate register from
19448         non-register vars to pack points-to solution bitmaps during
19449         iteration.
19450
19451 2017-08-17  Marek Polacek  <polacek@redhat.com>
19452
19453         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
19454
19455 2017-08-17  Richard Biener  <rguenther@suse.de>
19456
19457         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
19458         to true when overflow is undefined and we saturated the result.
19459
19460 2017-08-17  Alan Modra  <amodra@gmail.com>
19461
19462         PR target/80938
19463         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
19464         Don't use store multiple if only one reg needs saving.
19465         (interesting_frame_related_regno): New function.
19466         (rs6000_frame_related): Don't emit frame info for regs that
19467         don't need saving.
19468         (rs6000_emit_epilogue): Likewise.
19469
19470 2017-08-16  Nathan Sidwell  <nathan@acm.org>
19471
19472         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
19473         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
19474         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
19475         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
19476         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
19477         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
19478         (verify_type): Adjust for TYPE_BINFO move.
19479         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
19480         process TYPE_BINFO directly.
19481         (hash_tree): Likewise.
19482         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
19483         Likewise.
19484         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
19485         Likewise.
19486
19487 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
19488
19489         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
19490
19491 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
19492
19493         PR target/46091
19494         * config/i386/i386.md (*anddi_1_btr): Change predicates of
19495         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
19496         Add ix86_binary_operator_ok to insn constraint.
19497         (*iordi_1_bts): Ditto.
19498         (*xordi_1_btc): Ditto.
19499         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
19500         Update corresponding peephole2 pattern.
19501         (*btrq): Ditto.
19502         (*btcq): Ditto.
19503
19504 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
19505
19506         PR tree-optimization/81832
19507         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
19508         copy loop header which has IFN_LOOP_DIST_ALIAS call.
19509
19510 2017-08-16  Marek Polacek  <polacek@redhat.com>
19511
19512         PR middle/81695
19513         * fold-const.c (fold_indirect_ref_1): Restore original behavior
19514         regarding size_zero_node.
19515
19516 2017-08-16  Martin Liska  <mliska@suse.cz>
19517
19518         PR target/81753
19519         * config.gcc: Respect previously set extra_objs in case
19520         of darwin target.
19521
19522 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
19523
19524         PR tree-optimization/81835
19525         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
19526         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
19527         not depend on the phi.
19528
19529 2017-08-16  Alan Modra  <amodra@gmail.com>
19530
19531         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
19532         dead code.
19533
19534 2017-08-16  Alan Modra  <amodra@gmail.com>
19535
19536         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
19537         (save_reg_p): ..into this.  Update all callers.
19538         (first_reg_to_save): Simplify.
19539
19540 2017-08-16  Alan Modra  <amodra@gmail.com>
19541
19542         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
19543         fixed regs.
19544
19545 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
19546
19547         PR target/78460
19548         PR target/67712
19549         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
19550         constant count if that count is less than 32.
19551
19552 2017-08-15  Nathan Sidwell  <nathan@acm.org>
19553
19554         * gcc.c (execute): Emit friendlier message if inferior is killed
19555         by an external cause.
19556
19557 2017-08-15  Richard Biener  <rguenther@suse.de>
19558
19559         PR tree-optimization/81790
19560         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
19561         CONSTRUCTORs from simplifying and VN.
19562
19563 2017-08-14  Martin Sebor  <msebor@redhat.com>
19564
19565         * builtin-attrs.def: Add comments.
19566
19567 2017-08-14  Martin Sebor  <msebor@redhat.com>
19568
19569         PR c/81117
19570         * doc/extend.texi (attribute nonstring): Document new attribute.
19571
19572 2017-08-14  Martin Sebor  <msebor@redhat.com>
19573
19574         PR c/81117
19575         * tree-diagnostic.c (default_tree_printer): Handle %G.
19576         * gimple-pretty-print.h (percent_G_format): Declare new function.
19577         * gimple-pretty-print.c (percent_G_format): Define.
19578         * tree-pretty-print.c (percent_K_format): Add argument.
19579
19580 2017-08-14  Martin Sebor  <msebor@redhat.com>
19581
19582         PR translation/79998
19583         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
19584         Remove a stray space.
19585
19586 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
19587
19588         PR target/46091
19589         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
19590         (*iordi_1_bts): Ditto.
19591         (*xordi_1_btc): Ditto.
19592
19593 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19594
19595         PR target/79845
19596         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
19597         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19598         Likewise.
19599         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
19600         quoted strings, and make more translator-friendly.
19601         (darwin_rs6000_override_options): Likewise.
19602         (rs6000_option_override_internal): Likewise.
19603         (rs6000_return_in_memory): Fix overlong line.
19604         (init_cmulative_args): Use quoted strings, and make more
19605         translator-friendly.
19606         (rs6000_pass_by_reference): Fix overlong line.
19607         (def_builtin): Use quoted strings.
19608         (altivec_expand_predicate_builtin): Use quoted strings, and make
19609         more translator-friendly.
19610         (htm_expand_builtin): Use quoted strings.
19611         (cpu_expand_builtin): Use quoted strings, and make more
19612         translator-friendly.
19613         (altivec_expand_builtin): Likewise.
19614         (paired_expand_predicate_builtin): Likewise.
19615         (rs6000_invalid_builtin): Likewise.
19616         (builtin_function_type): Use quoted strings.
19617         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
19618         more translator-friendly.
19619         (rs6000_trampoline_init): Likewise.
19620         (rs6000_handle_altivec_attribute): Likewise.
19621         (rs6000_inner_target_options): Use quoted strings.
19622         (rs6000_disable_incompatible_switches): Likewise.
19623         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
19624         strings, and make more translator-friendly.
19625         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
19626
19627 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
19628
19629         PR tree-optimization/81799
19630         * tree-loop-distribution.c (version_loop_by_alias_check): Force
19631         cond_expr to simple gimple operand.
19632
19633 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
19634
19635         PR middle-end/46932
19636         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
19637
19638 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
19639
19640         PR target/81754
19641         PR target/81268
19642         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
19643         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
19644         TARGET_GASISR_PROLOGUES.
19645         * config/avr/avr.c (avr_option_override): Same.
19646         (avr_pass_pre_proep::execute): Same.
19647
19648 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
19649
19650         PR target/81820
19651         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
19652         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
19653
19654 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
19655
19656         * config/i386/i386.md (*load_tp_<mode>): Redefine as
19657         define_insn_and_split.  Split to a memory load from 0 in
19658         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
19659         using PTR mode iterator.
19660         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
19661         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
19662         (*add_tp_<mode>): Redefine as define_insn_and_split.
19663         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
19664         address space.  Merge with *add_tp_x32 using PTR mode iterator.
19665         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
19666         Split to an add with a  memory load from 0 in
19667         DEFAULT_TLS_SEG_REG address space.
19668
19669 2017-08-12  Andrew Pinski  <apinski@cavium.com>
19670
19671         * config/aarch64/aarch64-option-extensions.def (rdma):
19672         Fix feature string to what Linux prints out in /proc/cpuinfo.
19673
19674 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
19675
19676         PR ada/79542
19677         * dwarf2out.c (modified_type_die): For C typedef types that have
19678         an ultimate origin, process the ultimate origin instead of the
19679         input type.
19680         (gen_typedef_die): Assert that input DECLs have no ultimate
19681         origin.
19682         (gen_type_die_with_usage): For typedef variants that have an
19683         ultimate origin, just call gen_decl_die on the original DECL.
19684         (process_scope_var): Avoid creating DIEs for local typedefs and
19685         concrete static variables.
19686
19687 2017-08-12  Alan Modra  <amodra@gmail.com>
19688
19689         PR target/81170
19690         PR target/81295
19691         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
19692         match gnu-user.h startfile.
19693         (ENDFILE_LINUX_SPEC): Similarly.
19694
19695 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
19696
19697         PR lto/81430
19698         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
19699         Remove function.
19700         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
19701
19702 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
19703         * config/aarch64/aarch64.md (mov<mode>): Change.
19704         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
19705         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
19706         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
19707
19708 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
19709
19710         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
19711         for storage order barriers.
19712
19713 2017-08-11  Martin Liska  <mliska@suse.cz>
19714
19715         PR tree-opt/79987
19716         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
19717         variables of void type.
19718
19719 2017-08-11  Martin Liska  <mliska@suse.cz>
19720
19721         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
19722         TARGET_SUPPORTS_ALIASES.
19723         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
19724         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
19725         (optimize_weakref): Likewise.
19726         * symtab.c (symtab_node::noninterposable_alias): Likewise.
19727         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
19728         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
19729
19730 2017-08-11  Martin Liska  <mliska@suse.cz>
19731
19732         PR ipa/81213
19733         * config/i386/i386.c (make_resolver_func): Do complete
19734         refactoring of the function.
19735
19736 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
19737
19738         PR target/81708
19739         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
19740         * config/i386/i386.c (ix86_stack_protect_guard): Use
19741         ix86_stack_protect_guard_symbol_str to generate varible declaration.
19742         * doc/invoke.texi (x86 Options): Document
19743         -mstack-protector-guard-symbol= option.
19744
19745 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
19746
19747         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
19748         * config/i386/i386.c (ix86_split_stack_guard): New function.
19749         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
19750         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
19751         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
19752         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
19753         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
19754         (split_stack_space_check): Call ix86_split_stack_guard.
19755
19756 2017-08-10  Martin Sebor  <msebor@redhat.com>
19757
19758         * print-tree.c (print_node): Print location using the established
19759         format %s:%i%i.
19760         Replace spaces with colons.
19761         (debug_raw, debug): Ditto.
19762
19763 2017-08-10  Martin Sebor  <msebor@redhat.com>
19764
19765         PR c++/81586
19766         * pretty-print.c (pp_format): Correct the handling of %s precision.
19767
19768 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
19769
19770         PR target/81736
19771         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
19772         to ...
19773         (ix86_finalize_stack_frame_flags): This.  Also clear
19774         frame_pointer_needed if -fno-omit-frame-pointer is used without
19775         stack access.
19776         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
19777         with ix86_finalize_stack_frame_flags.
19778         (ix86_expand_epilogue): Likewise.
19779         (ix86_expand_split_stack_prologue): Likewise.
19780         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
19781
19782 2017-08-10  Martin Liska  <mliska@suse.cz>
19783
19784         PR c++/81355
19785         * c-attribs.c (handle_target_attribute):
19786         Report warning for an empty string argument of target attribute.
19787
19788 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
19789
19790         PR c/81687
19791         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
19792         LABEL_DECLs.
19793         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
19794         or DECL_NONLOCAL labels.
19795         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
19796         or DECL_NONLOCAL labels here.
19797
19798 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
19799
19800         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
19801         to indicate when early gimple folding has been disabled.
19802         (rs6000_gimple_fold_builtin): Add debug content.
19803         (rs6000_invalid_builtin): Fix whitespace.
19804         (rs6000_expand_builtin): Fix whitespace.
19805         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
19806
19807 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
19808
19809         PR target/80938
19810         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
19811         SAVE_MULTIPLE if not all the registers that saves, should be saved.
19812
19813 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
19814
19815         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
19816         (qdf24xx): Likewise.
19817         * config/aarch64/aarch64.md: Include falkor.md.
19818         * config/aarch64/falkor.md: New.
19819
19820 2017-08-09  Marek Polacek  <polacek@redhat.com>
19821
19822         PR c/81233
19823         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
19824         * diagnostic.c (emit_diagnostic): Add a comment.
19825         (emit_diagnostic_valist): New function.
19826
19827 2017-08-09  Marek Polacek  <polacek@redhat.com>
19828
19829         PR c/81417
19830         * input.c (make_location): New overload.
19831         * input.h (make_location): Declare.
19832
19833 2017-08-08  Alan Modra  <amodra@gmail.com>
19834             H.J. Lu  <hongjiu.lu@intel.com>
19835
19836         PR driver/81523
19837         * gcc.c (NO_PIE_SPEC): Delete.
19838         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
19839         exclusion..
19840         (LINK_PIE_SPEC): ..to here.
19841         (LINK_COMMAND_SPEC): Support -no-pie.
19842         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
19843         chain of crtbegin*.o selection, update for PIE_SPEC changes and
19844         format.
19845         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
19846         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
19847         (ENDFILE_CRTEND_SPEC): Similarly.
19848
19849 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
19850
19851         PR target/81708
19852         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
19853         (mstack-protector-guard-offset=): Ditto.
19854         * config/i386/i386.c (ix86_option_override): Handle
19855         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
19856         options.
19857         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
19858         ix86_stack_protect_guard_offset variables.
19859         (TARGET_STACK_PROTECT_GUARD): Always define.
19860         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
19861         and -mstack-protector-guard-offset= options.
19862
19863 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
19864
19865         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
19866         boundary case for the last candidate.
19867
19868 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
19869
19870         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
19871         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
19872
19873 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
19874
19875         PR middle-end/19706
19876         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
19877         * config/aarch64/aarch64-builtins.c
19878         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
19879         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
19880         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
19881
19882 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
19883             Andrew Pinski <pinskia@gmail.com>
19884
19885         PR middle-end/19706
19886         * internal-fn.def (XORSIGN): New.
19887         * optabs.def (xorsign_optab): New.
19888         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
19889         (convert_expand_mult_copysign): New.
19890         (pass_optimize_widening_mul::execute): Call
19891         convert_expand_mult_copysign.
19892
19893 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19894
19895         PR tree-optimization/81354
19896         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
19897         Insert on edges rather than explicitly creating landing pads.
19898         (analyze_candidates_and_replace): Commit edge inserts.
19899
19900 2017-08-08  Richard Biener  <rguenther@suse.de>
19901
19902         PR middle-end/81719
19903         * tree-ssa-loop-niter.c: Include tree-dfa.h.
19904         (expand_simple_operations): Also look through ADDR_EXPRs with
19905         MEM_REF bases treating them as POINTER_PLUS_EXPR.
19906
19907 2017-08-08  Richard Biener  <rguenther@suse.de>
19908
19909         PR tree-optimization/81723
19910         * tree-vect-slp.c (struct bst_traits): New hash traits.
19911         (bst_fail): New global.
19912         (vect_build_slp_tree_2): New worker, split out from ...
19913         (vect_build_slp_tree): ... this now wrapping it with using
19914         bst_fail set to cache SLP tree build fails.  Properly handle
19915         max_tree_size.
19916         (vect_analyze_slp_instance): Allocate and free bst_fail.
19917
19918 2017-08-08  Martin Liska  <mliska@suse.cz>
19919
19920         PR tree-opt/81696
19921         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
19922         LABEL_DECLs that can be from a different function.
19923
19924 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
19925
19926         PR tree-optimization/81744
19927         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
19928         loop's number of iterations.
19929
19930 2017-08-08  Martin Liska  <mliska@suse.cz>
19931
19932         * asan.c: Include header files.
19933         * attribs.c (build_decl_attribute_variant): New function moved
19934         from tree.[ch].
19935         (build_type_attribute_qual_variant): Likewise.
19936         (cmp_attrib_identifiers): Likewise.
19937         (simple_cst_list_equal): Likewise.
19938         (omp_declare_simd_clauses_equal): Likewise.
19939         (attribute_value_equal): Likewise.
19940         (comp_type_attributes): Likewise.
19941         (build_type_attribute_variant): Likewise.
19942         (lookup_ident_attribute): Likewise.
19943         (remove_attribute): Likewise.
19944         (merge_attributes): Likewise.
19945         (merge_type_attributes): Likewise.
19946         (merge_decl_attributes): Likewise.
19947         (merge_dllimport_decl_attributes): Likewise.
19948         (handle_dll_attribute): Likewise.
19949         (attribute_list_equal): Likewise.
19950         (attribute_list_contained): Likewise.
19951         * attribs.h (lookup_attribute): New function moved from tree.[ch].
19952         (lookup_attribute_by_prefix): Likewise.
19953         * bb-reorder.c: Include header files.
19954         * builtins.c: Likewise.
19955         * calls.c: Likewise.
19956         * cfgexpand.c: Likewise.
19957         * cgraph.c: Likewise.
19958         * cgraphunit.c: Likewise.
19959         * convert.c: Likewise.
19960         * dwarf2out.c: Likewise.
19961         * final.c: Likewise.
19962         * fold-const.c: Likewise.
19963         * function.c: Likewise.
19964         * gimple-expr.c: Likewise.
19965         * gimple-fold.c: Likewise.
19966         * gimple-pretty-print.c: Likewise.
19967         * gimple.c: Likewise.
19968         * gimplify.c: Likewise.
19969         * hsa-common.c: Likewise.
19970         * hsa-gen.c: Likewise.
19971         * internal-fn.c: Likewise.
19972         * ipa-chkp.c: Likewise.
19973         * ipa-cp.c: Likewise.
19974         * ipa-devirt.c: Likewise.
19975         * ipa-fnsummary.c: Likewise.
19976         * ipa-inline.c: Likewise.
19977         * ipa-visibility.c: Likewise.
19978         * ipa.c: Likewise.
19979         * lto-cgraph.c: Likewise.
19980         * omp-expand.c: Likewise.
19981         * omp-general.c: Likewise.
19982         * omp-low.c: Likewise.
19983         * omp-offload.c: Likewise.
19984         * omp-simd-clone.c: Likewise.
19985         * opts-global.c: Likewise.
19986         * passes.c: Likewise.
19987         * predict.c: Likewise.
19988         * sancov.c: Likewise.
19989         * sanopt.c: Likewise.
19990         * symtab.c: Likewise.
19991         * toplev.c: Likewise.
19992         * trans-mem.c: Likewise.
19993         * tree-chkp.c: Likewise.
19994         * tree-eh.c: Likewise.
19995         * tree-into-ssa.c: Likewise.
19996         * tree-object-size.c: Likewise.
19997         * tree-parloops.c: Likewise.
19998         * tree-profile.c: Likewise.
19999         * tree-ssa-ccp.c: Likewise.
20000         * tree-ssa-live.c: Likewise.
20001         * tree-ssa-loop.c: Likewise.
20002         * tree-ssa-sccvn.c: Likewise.
20003         * tree-ssa-structalias.c: Likewise.
20004         * tree-ssa.c: Likewise.
20005         * tree-streamer-in.c: Likewise.
20006         * tree-vectorizer.c: Likewise.
20007         * tree-vrp.c: Likewise.
20008         * tsan.c: Likewise.
20009         * ubsan.c: Likewise.
20010         * varasm.c: Likewise.
20011         * varpool.c: Likewise.
20012         * tree.c: Remove functions moved to attribs.[ch].
20013         * tree.h: Likewise.
20014         * config/aarch64/aarch64.c: Add attrs.h header file.
20015         * config/alpha/alpha.c: Likewise.
20016         * config/arc/arc.c: Likewise.
20017         * config/arm/arm.c: Likewise.
20018         * config/avr/avr.c: Likewise.
20019         * config/bfin/bfin.c: Likewise.
20020         * config/c6x/c6x.c: Likewise.
20021         * config/cr16/cr16.c: Likewise.
20022         * config/cris/cris.c: Likewise.
20023         * config/darwin.c: Likewise.
20024         * config/epiphany/epiphany.c: Likewise.
20025         * config/fr30/fr30.c: Likewise.
20026         * config/frv/frv.c: Likewise.
20027         * config/ft32/ft32.c: Likewise.
20028         * config/h8300/h8300.c: Likewise.
20029         * config/i386/winnt.c: Likewise.
20030         * config/ia64/ia64.c: Likewise.
20031         * config/iq2000/iq2000.c: Likewise.
20032         * config/lm32/lm32.c: Likewise.
20033         * config/m32c/m32c.c: Likewise.
20034         * config/m32r/m32r.c: Likewise.
20035         * config/m68k/m68k.c: Likewise.
20036         * config/mcore/mcore.c: Likewise.
20037         * config/microblaze/microblaze.c: Likewise.
20038         * config/mips/mips.c: Likewise.
20039         * config/mmix/mmix.c: Likewise.
20040         * config/mn10300/mn10300.c: Likewise.
20041         * config/moxie/moxie.c: Likewise.
20042         * config/msp430/msp430.c: Likewise.
20043         * config/nds32/nds32-isr.c: Likewise.
20044         * config/nds32/nds32.c: Likewise.
20045         * config/nios2/nios2.c: Likewise.
20046         * config/nvptx/nvptx.c: Likewise.
20047         * config/pa/pa.c: Likewise.
20048         * config/pdp11/pdp11.c: Likewise.
20049         * config/powerpcspe/powerpcspe.c: Likewise.
20050         * config/riscv/riscv.c: Likewise.
20051         * config/rl78/rl78.c: Likewise.
20052         * config/rx/rx.c: Likewise.
20053         * config/s390/s390.c: Likewise.
20054         * config/sh/sh.c: Likewise.
20055         * config/sol2.c: Likewise.
20056         * config/sparc/sparc.c: Likewise.
20057         * config/spu/spu.c: Likewise.
20058         * config/stormy16/stormy16.c: Likewise.
20059         * config/tilegx/tilegx.c: Likewise.
20060         * config/tilepro/tilepro.c: Likewise.
20061         * config/v850/v850.c: Likewise.
20062         * config/vax/vax.c: Likewise.
20063         * config/visium/visium.c: Likewise.
20064         * config/xtensa/xtensa.c: Likewise.
20065
20066 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
20067
20068         PR target/81593
20069         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
20070         constraints since the -mupper-regs-* switches have been
20071         eliminated.
20072         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
20073         into a vector from a double word element that was extracted from
20074         another vector, and eliminate extra XXPERMDI instructions.
20075         (vsx_concat_<mode>_2): Likewise.
20076         (vsx_concat_<mode>_3): Likewise.
20077         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
20078         concat to allow optimizing inserts from previous extracts.
20079
20080 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
20081
20082         * config/i386/i386.c (ix86_stack_protect_guard): Generate
20083         memory reference to a SSP offset in TLS address space.
20084         (ix86_print_operand) <case '@'>: Remove.
20085         (ix86_print_operand_punct_valid_p): Remove '@' code.
20086         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
20087         UNSPEC_SP_TLS_TEST.
20088         (stack_tls_protect_set_<mode>): Remove.
20089         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
20090         (stack_tls_protect_test_<mode>): Remove.
20091         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
20092
20093 2017-08-07  Olivier Hainque  <hainque@adacore.com>
20094
20095         PR target/81755
20096         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
20097
20098 2017-08-07  Douglas Rupp  <rupp@adacore.com>
20099
20100         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
20101         variable was referenced as multidir in command.
20102
20103 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
20104
20105         PR c/69389
20106         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
20107         BIT_FIELD_REF.
20108
20109 2017-08-07  Martin Liska  <mliska@suse.cz>
20110
20111         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
20112         * config/rl78/rl78.c: Add include of attribs.h.
20113         * config/sh/sh.c: Likewise.
20114         * config/v850/v850.c: Likewise.
20115
20116 2017-08-07  Tom de Vries  <tom@codesourcery.com>
20117
20118         PR middle-end/78266
20119         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
20120
20121 2017-08-07  Martin Liska  <mliska@suse.cz>
20122
20123         * config/mips/mips.c: Include attribs.h.
20124
20125 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
20126
20127         PR fortran/68829
20128         * doc/invoke.texi: Document change in behvaior for -Ofast for
20129         Fortran.
20130
20131 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
20132
20133         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
20134         Use gen_frame_mem.
20135         (aarch64_pop_regs): Likewise.
20136         (aarch64_gen_load_pair): Likewise.
20137         (aarch64_save_callee_saves): Likewise.
20138         (aarch64_restore_callee_saves): Likewise.
20139
20140 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
20141
20142         * config/i386/i386.c: Revert the last change.
20143
20144 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
20145
20146         PR target/81736
20147         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
20148         to ...
20149         (ix86_finalize_stack_frame_flags): This.  Also clear
20150         frame_pointer_needed if -fno-omit-frame-pointer is used without
20151         stack access.
20152         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
20153         with ix86_finalize_stack_frame_flags.
20154         (ix86_expand_epilogue): Likewise.
20155         (ix86_expand_split_stack_prologue): Likewise.
20156
20157 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
20158
20159         PR target/81743
20160         * config/i386/i386.c (get_builtin_code_for_version): Set priority
20161         to P_AES for Westmere.
20162
20163 2017-08-07  Jonathan Yong  <10walls@gmail.com>
20164
20165         * config/i386/mingw.opt (fset-stack-executable): Removed.
20166         * config/i386/cygming.opt (fset-stack-executable): Moved
20167         from mingw.opt.
20168         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
20169
20170 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
20171
20172         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
20173
20174 2017-08-07  Marek Polacek  <polacek@redhat.com>
20175
20176         PR middle-end/81737
20177         * fold-const.c (fold_indirect_ref_1): Check type_domain.
20178
20179 2017-08-07  Martin Liska  <mliska@suse.cz>
20180
20181         * attribs.h (canonicalize_attr_name): New function.
20182         (cmp_attribs): Move from c-format.c and adjusted.
20183         (is_attribute_p): Moved from tree.h.
20184         * tree-inline.c: Add new includes.
20185         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
20186         (private_is_attribute_p): Remove.
20187         (private_lookup_attribute): Likewise.
20188         (private_lookup_attribute_by_prefix): Simplify.
20189         (remove_attribute): Use is_attribute_p.
20190         * tree.h: Remove removed declarations.
20191
20192 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
20193
20194         PR middle-end/81698
20195         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
20196         instead of computing it in the function.  Formatting fix.
20197         (expand_case): Don't rely on default_edge being the first edge,
20198         clear it if removing it, pass default_edge to
20199         emit_case_dispatch_table.
20200         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
20201         fix.
20202
20203 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
20204
20205         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
20206         insn in the function, emit NOP after the insn.
20207
20208 2017-08-06  Tom de Vries  <tom@codesourcery.com>
20209
20210         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
20211         and element loops.
20212
20213 2017-08-06  Tom de Vries  <tom@codesourcery.com>
20214
20215         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
20216         loop.
20217
20218 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
20219
20220         PR tree-optimization/57371
20221         * match.pd: New pattern.
20222
20223 2017-08-04  Marek Polacek  <polacek@redhat.com>
20224
20225         PR middle-end/81695
20226         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
20227         perform the computation in offset_int.
20228
20229 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
20230
20231         PR tree-optimization/81136
20232         * tree-vectorizer.h: Include tree-hash-traits.h.
20233         (vec_base_alignments): New typedef.
20234         (vec_info): Add a base_alignments field.
20235         (vect_record_base_alignments): Declare.
20236         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
20237         field.
20238         (DR_IS_CONDITIONAL_IN_STMT): New macro.
20239         (create_data_ref): Add an is_conditional_in_stmt argument.
20240         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
20241         the is_conditional_in_stmt field.
20242         (data_ref_loc): Add an is_conditional_in_stmt field.
20243         (get_references_in_stmt): Set the is_conditional_in_stmt field.
20244         (find_data_references_in_stmt): Update call to create_data_ref.
20245         (graphite_find_data_references_in_stmt): Likewise.
20246         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
20247         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
20248         (vect_record_base_alignment): New function.
20249         (vect_record_base_alignments): Likewise.
20250         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
20251         for nested statements even if we fail to compute a misalignment.
20252         Use pooled base alignments for unconditional references.
20253         (vect_find_same_alignment_drs): Compare base addresses instead
20254         of base objects.
20255         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
20256         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
20257
20258 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
20259
20260         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
20261         Add an explicit name for the enum.  Use auto_vec for slp_instances
20262         and grouped_stores.
20263         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
20264         for all vectors.
20265         (_bb_vec_info): Add a constructor and destructor.
20266         (vinfo_for_stmt): Return NULL for uids of -1 as well.
20267         (destroy_loop_vec_info): Delete.
20268         (vect_destroy_datarefs): Likewise.
20269         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
20270         (vec_info::vec_info): New function.
20271         (vec_info::~vec_info): Likewise.
20272         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
20273         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
20274         destroy_loop_vec_info.
20275         * tree-vect-loop.c (new_loop_vec_info): Replace with...
20276         (_loop_vec_info::_loop_vec_info): ...this.
20277         (destroy_loop_vec_info): Replace with...
20278         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
20279         the stmt_vec_infos.  Leave handling of vec_info information to its
20280         destructor.  Remove explicit vector releases.
20281         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
20282         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
20283         * tree-vect-slp.c (new_bb_vec_info): Replace with...
20284         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
20285         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
20286         (destroy_bb_vec_info): Replace with...
20287         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
20288         information to its destructor.
20289         (vect_slp_analyze_bb_1): Use new and delete instead of
20290         new_bb_vec_info and destroy_bb_vec_info.
20291         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
20292         single delete.
20293
20294 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
20295
20296         * tree-data-ref.h (subscript): Add access_fn field.
20297         (data_dependence_relation): Add could_be_independent_p.
20298         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
20299         (same_access_functions): Move to tree-data-ref.c.
20300         * tree-data-ref.c (ref_contains_union_access_p): New function.
20301         (access_fn_component_p): Likewise.
20302         (access_fn_components_comparable_p): Likewise.
20303         (dr_analyze_indices): Add a reference to access_fn_component_p.
20304         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
20305         DR_ACCESS_FN.
20306         (constant_access_functions): Likewise.
20307         (add_other_self_distances): Likewise.
20308         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
20309         (initialize_data_dependence_relation): Use XCNEW and remove
20310         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
20311         of access functions that have the same type.  Allow the
20312         subsequence to end with different bases in some circumstances.
20313         Record the chosen access functions in SUB_ACCESS_FN.
20314         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
20315         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
20316         (subscript_dependence_tester_1): Likewise dra and drb.
20317         (build_classic_dist_vector): Update calls accordingly.
20318         (subscript_dependence_tester): Likewise.
20319         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
20320         DDR_COULD_BE_INDEPENDENT_P.
20321         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
20322         comp_alias_ddrs instead of may_alias_ddrs.
20323         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
20324         New function.
20325         (vect_analyze_data_ref_dependence): Use it if
20326         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
20327         distance vectors if that fails.
20328         (dependence_distance_ge_vf): New function.
20329         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
20330         LOOP_VINFO_MAY_ALIAS_DDRS.
20331
20332 2017-08-04  Richard Biener  <rguenther@suse.de>
20333
20334         PR middle-end/81705
20335         * fold-const.c (fold_binary_loc): Properly restrict
20336         minus_var0 && minus_var1 case when associating undefined overflow
20337         entities.
20338
20339 2017-08-04  Tom de Vries  <tom@codesourcery.com>
20340
20341         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
20342
20343 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20344
20345         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
20346         Don't start diagnostic messages with a capital letter.
20347         * config/rs6000/rs6000.c (rs6000_option_override_internal):
20348         Likewise.
20349         (rs6000_invalid_builtin): Likewise.
20350         (rs6000_trampoline_init): Likewise.
20351
20352 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
20353
20354         PR target/81621
20355         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
20356         after setting changeable df flags.
20357
20358 2017-08-03  Richard Biener  <rguenther@suse.de>
20359
20360         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
20361         up if the use is in USE - X.
20362
20363 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
20364
20365         * toplev.c (dumpfile.h): New include.
20366         (internal_error_reentered): New static function.  Use it...
20367         (internal_error_function): ...here to handle reentered internal_error.
20368
20369 2017-08-03  Richard Biener  <rguenther@suse.de>
20370
20371         PR middle-end/81148
20372         * fold-const.c (split_tree): Add minus_var and minus_con
20373         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
20374         here but always use minus_*.
20375         (associate_trees): Assert we never associate with MINUS_EXPR
20376         and NULL first operand.  Do not recurse for PLUS_EXPR operands
20377         when associating as MINUS_EXPR either.
20378         (fold_binary_loc): Track minus_var and minus_con.
20379
20380 2017-08-03  Tom de Vries  <tom@codesourcery.com>
20381
20382         PR lto/81430
20383         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
20384         ACCEL_COMPILER, apply finish_options on
20385         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
20386
20387 2017-08-03  Tom de Vries  <tom@codesourcery.com>
20388
20389         PR target/81662
20390         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
20391         function_entry_patch_area_size > 0.
20392
20393 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
20394
20395         PR driver/81650
20396         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
20397         instead of 10??LU, perform unit multiplication in wide_int,
20398         don't change alloc_object_size_limit if the limit is larger
20399         than SSIZE_MAX.
20400
20401         PR tree-optimization/81655
20402         PR tree-optimization/81588
20403         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
20404         the case when ranges[i].low and high are 1 for unsigned type with
20405         precision 1.
20406
20407         PR middle-end/81052
20408         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
20409         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
20410
20411 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20412
20413         * tree-vrp.h: Add include guard.
20414
20415 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
20416
20417         PR target/81644
20418         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
20419         (ud2): New insn pattern.
20420         * config/i386/i386.c (ix86_expand_epilogue):
20421         For naked functions, generate ud2 instead of trap insn.
20422
20423 2017-08-02  Marek Polacek  <polacek@redhat.com>
20424
20425         PR other/81667
20426         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
20427
20428 2017-08-02  Tom de Vries  <tom@codesourcery.com>
20429             Cesar Philippidis  <cesar@codesourcery.com>
20430
20431         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
20432         Add missing edge probabilities.
20433
20434 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
20435
20436         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
20437         Correct endianness.
20438
20439 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
20440
20441         PR middle-end/79499
20442         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
20443         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
20444         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
20445         prologue_seq sequences - if any.
20446
20447 2017-08-02  Richard Biener  <rguenther@suse.de>
20448
20449         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
20450         via vectors if supported, integer extracts via punning if supported
20451         or otherwise vector extracts.
20452
20453 2017-08-02  Richard Biener  <rguenther@suse.de>
20454
20455         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
20456         into ...
20457         (bitmap_insert_into_set): ... this.
20458
20459 2017-08-02  Richard Biener  <rguenther@suse.de>
20460
20461         PR tree-optimization/81633
20462         Revert
20463         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
20464
20465         PR tree-optimization/71752
20466         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
20467
20468 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
20469
20470         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
20471         (machine_function::call_ms2sysv_pad_out): Remove field.
20472         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
20473         (ix86_compute_frame_layout): Likewise.
20474
20475 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
20476
20477         PR target/81654
20478         * config/i386/i386.c (ix86_set_func_type): Disallow naked
20479         attribute with interrupt attribute.
20480
20481 2017-08-01  Andrew Pinski  <apinski@cavium.com>
20482
20483         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
20484         BIT_INSERT_EXPR's operand 1
20485         to see if the types precision matches.
20486
20487 2017-08-01  Martin Liska  <mliska@suse.cz>
20488
20489         PR middle-end/70140
20490         * builtins.c (expand_builtin_memcpy_args): Remove.
20491         (expand_builtin_memcpy): Call newly added function
20492         expand_builtin_memory_copy_args.
20493         (expand_builtin_memcpy_with_bounds): Likewise.
20494         (expand_builtin_mempcpy): Remove last argument.
20495         (expand_builtin_mempcpy_with_bounds): Likewise.
20496         (expand_builtin_memory_copy_args): New function created from
20497         expand_builtin_mempcpy_args with small modifications.
20498         (expand_builtin_mempcpy_args): Remove.
20499         (expand_builtin_stpcpy): Remove unused argument.
20500         (expand_builtin): Likewise.
20501         (expand_builtin_with_bounds): Likewise.
20502
20503 2017-08-01  Martin Liska  <mliska@suse.cz>
20504
20505         Revert r250771
20506         Make mempcpy more optimal (PR middle-end/70140).
20507
20508 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
20509
20510         PR target/81622
20511         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
20512         __builtin_vec_cmpne verify both arguments are compatible vectors
20513         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
20514         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
20515         move computation of aligned to after checking the argument types.
20516         Formatting fixes.
20517
20518         PR target/80846
20519         * config/rs6000/vsx.md (vextract_fp_from_shorth,
20520         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
20521         calls.
20522
20523 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
20524             Doug Rupp  <rupp@adacore.com>
20525             Olivier Hainque  <hainque@adacore.com>
20526
20527         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
20528         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
20529         arm8 (arch v4).
20530         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
20531         for TARGET_OS_CPP_BUILTIN.
20532         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
20533         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
20534         arm_arch7.
20535         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
20536         passing required abi options to the assembler for EABI configurations.
20537         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
20538         of .text.hot and .text.unlikely sections for kernel modules when
20539         using ARM style exceptions.
20540         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
20541         options. Add EXTRA_CC1_SPEC.
20542         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
20543         toolchain options.
20544         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
20545         transition.
20546         (ARM_TARGET2_DWARF_FORMAT): Define.
20547         * config/arm/t-vxworks: Adjust multilib control to removal of the
20548         Diab command line options.
20549
20550 2017-08-01  Martin Liska  <mliska@suse.cz>
20551
20552         PR gcov-profile/81561
20553         * gcov.c (unblock): Make unblocking safe as we need to preserve
20554         index correspondence of blocks and block_lists.
20555
20556 2017-08-01  Richard Biener  <rguenther@suse.de>
20557
20558         PR tree-optimization/81181
20559         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
20560         (compute_antic): ... end of iteration here.
20561
20562 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
20563
20564         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
20565         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
20566         (ftree-slp-vectorize): Likewise.
20567         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
20568         can no longer be set independent of flag_tree_loop_vectorize.
20569         * omp-general.c (emp_max_vf): Likewise.
20570         * opts.c (enable_fdo_optimizations): Remove references to
20571         flag_tree_vectorize, these are now implicit.
20572         (common_handle_option): Remove handling for OPT_ftree_vectorize,
20573         and leave it for the options machinery.
20574
20575 2017-08-01  Martin Liska  <mliska@suse.cz>
20576
20577         PR middle-end/70140
20578         * builtins.c (expand_builtin_memcpy_args): Remove.
20579         (expand_builtin_memcpy): Call newly added function
20580         expand_builtin_memory_copy_args.
20581         (expand_builtin_memcpy_with_bounds): Likewise.
20582         (expand_builtin_mempcpy): Remove last argument.
20583         (expand_builtin_mempcpy_with_bounds): Likewise.
20584         (expand_builtin_memory_copy_args): New function created from
20585         expand_builtin_mempcpy_args with small modifications.
20586         (expand_builtin_mempcpy_args): Remove.
20587         (expand_builtin_stpcpy): Remove unused argument.
20588         (expand_builtin): Likewise.
20589         (expand_builtin_with_bounds): Likewise.
20590
20591 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
20592
20593         PR target/81641
20594         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
20595         print "ds:" only for immediates in generic address space.
20596
20597 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
20598
20599         PR target/81639
20600         * config/i386/i386.c (ix86_funciton_naked): New prototype.
20601         (ix86_function_ok_for_sibcall): Return false for naked functions.
20602
20603 2017-08-01  Richard Biener  <rguenther@suse.de>
20604
20605         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
20606         (compute_antic): Seed worklist with exit block predecessors.
20607         * cfganal.c (dfs_find_deadend): For a cycle return the source
20608         of the edge closing it.
20609
20610 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
20611
20612         * config/aarch64/aarch64.c
20613         (aarch64_can_const_movi_rtx_p): Move 0 check.
20614
20615 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
20616
20617         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
20618         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
20619         above macro.
20620         * match.pd: Ditto in address comparison pattern.
20621
20622 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
20623
20624         PR tree-optimization/81627
20625         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
20626         closed ssa form for store-store chain.
20627
20628 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
20629
20630         PR tree-optimization/81620
20631         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
20632         for store-store chain.
20633
20634 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
20635
20636         PR tree-optimization/81588
20637         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
20638         ranges[i].in_p, invert comparison code ccode.  For >/>=,
20639         swap rhs1 and rhs2 and comparison code unconditionally,
20640         for </<= don't do that.  Don't swap rhs1/rhs2 again if
20641         ranges[i].in_p, instead invert comparison code ccode if
20642         opcode or oe->rank is BIT_IOR_EXPR.
20643
20644         PR target/80846
20645         * optabs.def (vec_extract_optab, vec_init_optab): Change from
20646         a direct optab to conversion optab.
20647         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
20648         with GET_MODE_INNER as last argument instead of optab_handler.
20649         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
20650         vector extraction if possible and optab is available.
20651         * expr.c (store_constructor): Use convert_optab_handler instead
20652         of optab_handler.  Use vector initialization from smaller
20653         vectors if possible and optab is available.
20654         * tree-vect-stmts.c (vectorizable_load): Likewise.
20655         * doc/md.texi (vec_extract, vec_init): Document that the optabs
20656         now have two modes.
20657         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
20658         of vec_init from half-sized vectors with the same element mode.
20659         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
20660         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
20661         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
20662         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
20663         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
20664         after mode in gen_vec_extract* calls.
20665         (vec_extract<mode>): Renamed to ...
20666         (vec_extract<mode><ssescalarmodelower>): ... this.
20667         (vec_extract<mode><ssehalfvecmodelower>): New expander.
20668         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
20669         element mode after mode in gen_vec_init* calls.
20670         (VEC_INIT_HALF_MODE): New mode iterator.
20671         (vec_init<mode>): Renamed to ...
20672         (vec_init<mode><ssescalarmodelower>): ... this.
20673         (vec_init<mode><ssehalfvecmodelower>): New expander.
20674         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
20675         (vec_extractv2sfsf): ... this.
20676         (vec_initv2sf): Renamed to ...
20677         (vec_initv2sfsf): ... this.
20678         (vec_extractv2si): Renamed to ...
20679         (vec_extractv2sisi): ... this.
20680         (vec_initv2si): Renamed to ...
20681         (vec_initv2sisi): ... this.
20682         (vec_extractv4hi): Renamed to ...
20683         (vec_extractv4hihi): ... this.
20684         (vec_initv4hi): Renamed to ...
20685         (vec_initv4hihi): ... this.
20686         (vec_extractv8qi): Renamed to ...
20687         (vec_extractv8qiqi): ... this.
20688         (vec_initv8qi): Renamed to ...
20689         (vec_initv8qiqi): ... this.
20690         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
20691         (vec_init<mode>): Renamed to ...
20692         (vec_init<mode><VEC_base_l>): ... this.
20693         (vec_extract<mode>): Renamed to ...
20694         (vec_extract<mode><VEC_base_l>): ... this.
20695         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
20696         (vec_initv2sfsf): ... this.
20697         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
20698         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
20699         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
20700         element mode after mode in gen_vec_init* calls.
20701         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
20702         (vec_init<mode><Vel>): ... this.
20703         (vec_extract<mode>): Renamed to ...
20704         (vec_extract<mode><Vel>): ... this.
20705         * config/aarch64/iterators.md (Vel): New mode attribute.
20706         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
20707         Add element mode after mode in gen_vec_extract* calls.
20708         * config/s390/vector.md (non_vec_l): New mode attribute.
20709         (vec_extract<mode>): Renamed to ...
20710         (vec_extract<mode><non_vec_l>): ... this.
20711         (vec_init<mode>): Renamed to ...
20712         (vec_init<mode><non_vec_l>): ... this.
20713         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
20714         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
20715         vec_extract mode.
20716         * config/arm/iterators.md (V_elem_l): New mode attribute.
20717         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
20718         (vec_extract<mode><V_elem_l>): ... this.
20719         (vec_extractv2di): Renamed to ...
20720         (vec_extractv2didi): ... this.
20721         (vec_init<mode>): Renamed to ...
20722         (vec_init<mode><V_elem_l>): ... this.
20723         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
20724         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
20725         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
20726         Add element mode after gen_vec_extract* calls.
20727         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
20728         (vec_init<mode><unitmode>): ... this.
20729         (vec_extract<mode>): Renamed to ...
20730         (vec_extract<mode><unitmode>): ... this.
20731         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
20732         (vec_init<mode><unitmode>): ... this.
20733         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
20734         (vec_initv2sfsf): ... this.
20735         (vec_extractv2sf): Renamed to ...
20736         (vec_extractv2sfsf): ... this.
20737         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
20738         Add element mode after gen_vec_extract* calls.
20739         * config/mips/mips.md (unitmode): New mode iterator.
20740         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
20741         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
20742         * config/spu/spu.md (inner_l): New mode attribute.
20743         (vec_init<mode>): Renamed to ...
20744         (vec_init<mode><inner_l>): ... this.
20745         (vec_extract<mode>): Renamed to ...
20746         (vec_extract<mode><inner_l>): ... this.
20747         * config/sparc/sparc.md (veltmode): New mode iterator.
20748         (vec_init<VMALL:mode>): Renamed to ...
20749         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
20750         * config/ia64/vect.md (vec_initv2si): Renamed to ...
20751         (vec_initv2sisi): ... this.
20752         (vec_initv2sf): Renamed to ...
20753         (vec_initv2sfsf): ... this.
20754         (vec_extractv2sf): Renamed to ...
20755         (vec_extractv2sfsf): ... this.
20756         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
20757         (vec_init<mode>): Renamed to ...
20758         (vec_init<mode><VEC_base_l>): ... this.
20759         (vec_extract<mode>): Renamed to ...
20760         (vec_extract<mode><VEC_base_l>): ... this.
20761         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
20762         (vec_initv2sfsf): ... this.
20763         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
20764         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
20765         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
20766         gen_vec_init* calls.
20767
20768 2017-08-01  Richard Biener  <rguenther@suse.de>
20769
20770         PR tree-optimization/81297
20771         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
20772         TREE_OVERFLOW from INTEGER_CSTs.
20773
20774 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
20775
20776         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
20777
20778 2017-07-31  Carl Love  <cel@us.ibm.com>
20779
20780         * config/rs6000/rs6000-c: Add support for built-in functions
20781         vector signed char vec_xl_be (signed long long, signed char *);
20782         vector unsigned char vec_xl_be (signed long long, unsigned char *);
20783         vector signed int vec_xl_be (signed long long, signed int *);
20784         vector unsigned int vec_xl_be (signed long long, unsigned int *);
20785         vector signed long long vec_xl_be (signed long long, signed long long *);
20786         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
20787         vector signed short vec_xl_be (signed long long, signed short *);
20788         vector unsigned short vec_xl_be (signed long long, unsigned short *);
20789         vector double vec_xl_be (signed long long, double *);
20790         vector float vec_xl_be (signed long long, float *);
20791         * config/rs6000/altivec.h (vec_xl_be): Add #define.
20792         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
20793         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
20794         for the builtins.
20795         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
20796         (altivec_expand_builtin): Add switch statement to call
20797         altivec_expand_xl_be for each builtin.
20798         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
20799         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
20800         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
20801         __builtin_vsx_le_be_v16qi.
20802         * doc/extend.texi: Update the built-in documentation file for the
20803         new built-in functions.
20804
20805 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
20806
20807         PR target/25967
20808         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
20809         New function.
20810         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
20811
20812 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20813
20814         * config.gcc: Add z14.
20815         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
20816         CPU model numbers for z13s and z14.
20817         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
20818         arch12 with z14.
20819         * config/s390/s390-opts.h (enum processor_type): Rename
20820         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
20821         * config/s390/s390.c (processor_table): Add field for CPU name to
20822         be passed to Binutils.
20823         (s390_asm_output_machine_for_arch): Use the new field in
20824         processor_table for Binutils.
20825         (s390_expand_builtin): Replace arch12 with z14.
20826         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
20827         (s390_get_sched_attrmask): Likewise.
20828         (s390_get_unit_mask): Likewise.
20829         * config/s390/s390.opt: Add z14 to processor_type enum.
20830
20831 2017-07-31  Martin Jambor  <mjambor@suse.cz>
20832
20833         PR hsa/81477
20834         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
20835         regardless of optimization level.
20836
20837 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
20838             Martin Liska  <mliska@suse.cz>
20839
20840         * predict.def: Remove old comment and adjust probability.
20841         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
20842         PREDICT statements.
20843
20844 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
20845
20846         PR target/25967
20847         * config/i386/i386.c (ix86_function_naked): New function.
20848         (ix86_can_use_return_insn_p): Return false for naked functions.
20849         (ix86_expand_prologue): Skip prologue for naked functions.
20850         (ix86_expand_epilogue): Skip epilogue for naked functions
20851         and emit trap instruction.
20852         (ix86_warn_func_return): New function.
20853         (ix86_attribute_table): Add "naked" attribute specification.
20854         (TARGET_WARN_FUNC_RETURN): Define.
20855         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
20856
20857 2017-07-31  Martin Liska  <mliska@suse.cz>
20858
20859         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
20860         (dump_gimple_bb_header): Always dump BB info.
20861         (pp_cfg_jump): Do not append info about BB when dumping a jump.
20862
20863 2017-07-31  Martin Liska  <mliska@suse.cz>
20864
20865         PR sanitize/81530
20866         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
20867         also with current_function_decl non-null equality.
20868
20869 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
20870
20871         PR sanitizer/81604
20872         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
20873         change type to the element type, instead add eltype variable and
20874         use it where we are interested in the element type.
20875
20876         PR tree-optimization/81603
20877         * ipa-polymorphic-call.c
20878         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
20879         offset arithmetic in offset_int, bail out if the resulting bit offset
20880         doesn't fit into shwi.
20881
20882 2017-07-31  Martin Liska  <mliska@suse.cz>
20883
20884         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
20885         (gimplify_save_expr): Fix comment.
20886
20887 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
20888
20889         PR target/79793
20890         * config/i386/i386.c (ix86_function_arg): Update arguments for
20891         exception handler.
20892         (ix86_compute_frame_layout): Set the initial stack offset to
20893         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
20894         INCOMING_FRAME_SP_OFFSET.
20895         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
20896         stack before exception handler returns.
20897         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
20898         the 'ERROR_CODE' for exception handler.
20899
20900 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
20901
20902         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
20903         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
20904         (ASM_OUTPUT_REG_POP): Ditto.
20905         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
20906         instead of asm_fprintf to output pure string.
20907
20908 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
20909
20910         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
20911         to imported_module_or_decl hook.
20912         (debug_nothing_tree_tree_tree_bool): Remove.
20913         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
20914         * debug.c (do_nothing_debug_hooks): Use
20915         debug_nothing_tree_tree_tree_bool_bool instead of
20916         debug_nothing_tree_tree_tree_bool.
20917         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20918         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
20919         * sdbout.c (sdb_debug_hooks): Likewise.
20920         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
20921         (gen_namespace_die): Add DW_AT_export_symbols attribute if
20922         langhook wants it.
20923         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
20924         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
20925         attribute, don't add anything.
20926
20927 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20928
20929         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
20930         (fold_build2_stat_loc): Likewise.
20931         (fold_build3_stat_loc): Likewise.
20932         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
20933         (fold_build1_loc): Remove macro.
20934         (fold_build2_loc): Likewise.
20935         (fold_build3_loc): Likewise.
20936
20937 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20938
20939         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
20940         (gimple_build_debug_bind_source_stat): Likewise.
20941         * gimple.h (gimple_build_debug_bind): Remove macro.
20942         (gimple_build_debug_bind_source): Likewise.
20943
20944 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20945
20946         * bitmap.c (bitmap_alloc): Adjust.
20947         (bitmap_gc_alloc): Likewise.
20948         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
20949
20950 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20951
20952         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
20953         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
20954         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
20955         (bitmap_gc_alloc_stat): Likewise.
20956         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
20957
20958 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20959
20960         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
20961         * rtl.h (shallow_copy_rtx): Remove macro.
20962
20963 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20964
20965         * emit-rtl.c (gen_raw_REG): Adjust.
20966         * gengenrtl.c (gendef): Likewise.
20967         * rtl.c (rtx_alloc_stat): Remove _stat from name.
20968         * rtl.h (rtx_alloc): Remove macro.
20969
20970 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20971
20972         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
20973         (build_tree_list_stat): Likewise.
20974         * tree.h (build_tree_list): Remove macro.
20975         (build_tree_list_vec): Likewise.
20976
20977 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20978
20979         * tree.c (make_vector_stat): Remove _stat from name.
20980         (build_vector_stat): Likewise.
20981         * tree.h (make_vector_stat): Remove macro.
20982         (build_vector_stat): Likewise.
20983
20984 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20985
20986         * tree.h (build_var_debug_value): Remove prototype.
20987
20988 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20989
20990         * tree.c (tree_cons_stat): Remove _stat from name.
20991         * tree.h (tree_cons): Remove macro.
20992
20993 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20994
20995         * tree.c (build_vl_exp_stat): Remove _stat from name.
20996         * tree.h (build_vl_exp): Remove macro.
20997
20998 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20999
21000         * tree.c (build_decl_stat): Remove _stat from name.
21001         * tree.h (build_decl): Remove macro.
21002
21003 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21004
21005         * gimple.c (gimple_build_with_ops_stat): Adjust.
21006         (gimple_alloc_stat): Remove _stat from name.
21007         * gimple.h (gimple_alloc): Remove macro.
21008
21009 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21010
21011         * tree.c (make_tree_vec_stat): Remove _stat from name.
21012         (grow_tree_vec_stat): Likewise.
21013         * tree.h (make_tree_vec_stat): Adjust prototype.
21014         (grow_tree_vec_stat): Likewise.
21015         (make_tree_vec): Remove macro.
21016         (grow_tree_vec): Likewise.
21017
21018 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21019
21020         * fold-const.c (fold_build1_stat_loc): Adjust.
21021         (fold_build2_stat_loc): Likewise.
21022         (fold_build3_stat_loc): Likewise.
21023         * tree.c (build0_stat): Remove _stat from name.
21024         (build1_stat): Likewise.
21025         (build2_stat): Likewise.
21026         (build3_stat): Likewise.
21027         (build4_stat): Likewise.
21028         (build5_stat): Likewise.
21029         * tree.h (build1_loc): Remove macro, and rename _stat function
21030         to this.
21031         (build2_loc): Likewise.
21032         (build3_loc): Likewise.
21033         (build4_loc): Likewise.
21034         (build5_loc): Likewise.
21035
21036 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21037
21038         * tree.c (make_int_cst_stat): Remove _stat from name.
21039         * tree.h (make_int_cst_stat): Adjust prototype.
21040         (make_int_cst): Remove macro.
21041
21042 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21043
21044         * tree.c (make_tre_binfo_stat): Remove _stat from name.
21045         * tree.h (make_tree_binfo_stat): Adjust prototype.
21046         (make_tree_binfo): Remove.
21047
21048 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21049
21050         * tree.c (copy_node_stat): Rename to copy_node.
21051         (build_distinct_type_copy): Adjust.
21052         * tree.h (copy_node_stat): Adjust prototype.
21053         (copy_node): Remove macro.
21054
21055 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21056
21057         * tree.c (make_node_stat): rename to make_node.
21058         (build_tree_list_stat): Adjust.
21059         (build0_stat): Likewise.
21060         (build2_stat): Likewise.
21061         (build3_stat): Likewise.
21062         (build4_stat): Likewise.
21063         (build5_stat): Likewise.
21064         (build_decl_stat): Likewise.
21065         * tree.h (make_node_stat): Adjust prototype.
21066         (make_node): remove macro.
21067
21068 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
21069
21070         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
21071         (PPC_FEATURE2_SCV): Likewise.
21072         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
21073
21074 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
21075
21076         * config/aarch64/aarch64.c
21077         (aarch64_internal_mov_immediate): Add new special pattern.
21078         * config/aarch64/aarch64.md (*movdi_aarch64):
21079         Add reg/32bit const mov case.
21080
21081 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
21082             Richard Sandiford <richard.sandiford@linaro.org>
21083
21084         * config/aarch64/aarch64.md (mov<mode>): Generalize.
21085         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
21086         Add integer and movi cases.
21087         (movi-split-hf-df-sf split, fp16): New.
21088         (enabled): Added TARGET_FP_F16INST.
21089         * config/aarch64/iterators.md (GPF_HF): New.
21090         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
21091
21092 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
21093
21094         * config/aarch64/aarch64.c
21095         (aarch64_simd_container_mode): Add prototype.
21096         (aarch64_expand_mov_immediate): Add HI support.
21097         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
21098         (aarch64_can_const_movi_rtx_p): New.
21099         (aarch64_preferred_reload_class):
21100         Remove restrictions of using FP registers for certain SIMD operations.
21101         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
21102         (aarch64_valid_floating_const): Add integer move validation.
21103         (aarch64_simd_imm_scalar_p): Remove.
21104         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
21105         (aarch64_legitimate_constant_p): Expand list of supported cases.
21106         * config/aarch64/aarch64-protos.h
21107         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
21108         (aarch64_reinterpret_float_as_int): New.
21109         (aarch64_simd_imm_scalar_p): Remove.
21110         * config/aarch64/constraints.md (Uvi): New.
21111         (Dd): Split into Ds and new Dd.
21112         * config/aarch64/aarch64.md (*movsi_aarch64):
21113         Add SIMD mov case.
21114         (*movdi_aarch64): Add SIMD mov case.
21115
21116 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21117
21118         * tree-predcom.c: (struct chain): Handle store-store chain in which
21119         stores for elimination only store loop invariant values.
21120         (execute_pred_commoning_chain): Ditto.
21121         (prepare_initializers_chain_store_elim): Ditto.
21122         (prepare_finalizers): Ditto.
21123         (is_inv_store_elimination_chain): New function.
21124         (initialize_root_vars_store_elim_1): New function.
21125
21126 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21127
21128         * tree-predcom.c: Revise general description of the pass.
21129         (enum chain_type): New enum type for store elimination.
21130         (struct chain): New field supporting store elimination.
21131         (struct component): Ditto.
21132         (dump_chain): Dump store-stores chain.
21133         (release_chain): Release resources.
21134         (split_data_refs_to_components): Compute and create component
21135         contains only stores for elimination.
21136         (get_chain_last_ref_at): New function.
21137         (make_invariant_chain): Initialization.
21138         (make_rooted_chain): Specify chain type in parameter and record it.
21139         (add_looparound_copies): Skip for store-stores chain.
21140         (determine_roots_comp): Compute type of chain and pass it to
21141         make_rooted_chain.
21142         (initialize_root_vars_store_elim_2): New function.
21143         (finalize_eliminated_stores): New function.
21144         (remove_stmt): Handle store for elimination.
21145         (execute_pred_commoning_chain): Execute predictive commoning on
21146         store-store chains.
21147         (determine_unroll_factor): Skip unroll for store-stores chain.
21148         (prepare_initializers_chain_store_elim): New function.
21149         (prepare_initializers_chain): Hanlde store-store chain.
21150         (prepare_finalizers_chain, prepare_finalizers): New function.
21151         (tree_predictive_commoning_loop): Return integer value indicating
21152         if loop is unrolled or lcssa form is corrupted.
21153         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
21154
21155 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21156
21157         * tree-predcom.c (initialize_root): Delete.
21158         (execute_pred_commoning_chain): Initialize root vars and replace
21159         reference of non-combined chain directly, rather than call above
21160         function.
21161
21162 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21163
21164         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
21165         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
21166
21167 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21168
21169         * tree-predcom.c (struct chain): New field init_seq.
21170         (release_chain): Release init_seq.
21171         (prepare_initializers_chain): Record intialization stmts in above
21172         field.
21173         (insert_init_seqs): New function.
21174         (tree_predictive_commoning_loop): Call insert_init_seqs.
21175
21176 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
21177
21178         * tree-predcom.c (determine_roots_comp): Skip trivial components.
21179
21180 2017-07-28  Richard Biener  <rguenther@suse.de>
21181
21182         * match.pd: Remove superfluous :c.
21183         * genmatch.c (simplify::id): Add member.
21184         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
21185         Copy id.
21186         (current_id): New global.
21187         (dt_node::parent): Move from ...
21188         (dt_operand::parent): ... here.  Add for_id member.
21189         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
21190         (decision_tree::find_node): Relax order requirement when
21191         merging DT_TRUE nodes to ones inbetween the current simplify
21192         and the one we try to merge with.  Add diagnostic whenever
21193         we need to enforce pattern order by not merging.
21194         (decision_tree::insert): Set current_id.
21195         (decision_tree::print_node): Dump parent node and for_id.
21196         (parser::last_id): Add member.
21197         (parser::push_simplify): Assign unique id.
21198         (parser::parser): Initialize last_id.
21199
21200 2017-07-28  Martin Liska  <mliska@suse.cz>
21201
21202         PR sanitizer/81340
21203         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
21204         gimple_build_debug_bind.
21205
21206 2017-07-28  Richard Biener  <rguenther@suse.de>
21207
21208         PR tree-optimization/81502
21209         * match.pd: Add pattern combining BIT_INSERT_EXPR with
21210         BIT_FIELD_REF.
21211         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
21212         size/pos operands.
21213         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
21214         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
21215         for BIT_FIELD_REF args.
21216         * fold-const.c (make_bit_field_ref): Likewise.
21217         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
21218
21219 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
21220
21221         PR sanitizer/80998
21222         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
21223         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
21224         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
21225         Or it into SANITIZER_UNDEFINED.
21226         * ubsan.c: Include gimple-fold.h and varasm.h.
21227         (ubsan_expand_ptr_ifn): New function.
21228         (instrument_pointer_overflow): New function.
21229         (maybe_instrument_pointer_overflow): New function.
21230         (instrument_object_size): Formatting fix.
21231         (pass_ubsan::execute): Call instrument_pointer_overflow
21232         and maybe_instrument_pointer_overflow.
21233         * internal-fn.c (expand_UBSAN_PTR): New function.
21234         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
21235         * sanitizer.def (__ubsan_handle_pointer_overflow,
21236         __ubsan_handle_pointer_overflow_abort): New builtins.
21237         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
21238         * internal-fn.def (UBSAN_PTR): New internal function.
21239         * opts.c (sanitizer_opts): Add pointer-overflow.
21240         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
21241         * fold-const.c (build_range_check): Compute pointer range check in
21242         integral type if pointer arithmetics would be needed.  Formatting
21243         fixes.
21244
21245 2017-07-28  Martin Liska  <mliska@suse.cz>
21246
21247         PR sanitizer/81460
21248         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
21249         parameters that are of a variable-length.
21250
21251 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21252
21253         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
21254         rs6000/biarch64.h.
21255         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
21256         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
21257         (CRT_CALL_STATIC_FUNCTION): Likewise.
21258         (ASM_DEFAULT_SPEC): New define.
21259         (ASM_SPEC32): Likewise.
21260         (ASM_SPEC64): Likewise.
21261         (ASM_SPEC_COMMON): Likewise.
21262         (ASM_SPEC): Likewise.
21263         (INVALID_64BIT): Likewise.
21264         (LINK_OS_DEFAULT_SPEC): Likewise.
21265         (LINK_OS_SPEC32): Likewise.
21266         (LINK_OS_SPEC64): Likewise.
21267         (POWERPC_LINUX): Likewise.
21268         (PTRDIFF_TYPE): Likewise.
21269         (RESTORE_FP_PREFIX): Likewise.
21270         (RESTORE_FP_SUFFIX): Likewise.
21271         (SAVE_FP_PREFIX): Likewise.
21272         (SAVE_FP_SUFFIX): Likewise.
21273         (SIZE_TYPE): Likewise.
21274         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
21275         (TARGET_64BIT): Likewise.
21276         (TARGET_64BIT): Likewise.
21277         (TARGET_AIX): Likewise.
21278         (WCHAR_TYPE_SIZE): Likewise.
21279         (WCHAR_TYPE): Undefine.
21280         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
21281         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
21282         (CPP_OS_RTEMS_SPEC): Delete.
21283         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
21284         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
21285         link_os_spec64.
21286         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
21287
21288 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
21289
21290         PR tree-optimization/81578
21291         * tree-parloops.c (build_new_reduction): Bail out if
21292         reduction_code isn't one of the standard OpenMP reductions.
21293         Move the details printing after that decision.
21294
21295 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
21296
21297         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
21298         related to reload_in_progress.
21299         (splat_input_operand): Likewise.
21300         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
21301         Delete prototype.
21302         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
21303         field.
21304         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
21305         (TARGET_INSTANTIATE_DECLS): Likewise.
21306         (legitimate_indexed_address_p): Delete reload_in_progress code.
21307         (rs6000_debug_legitimate_address_p): Likewise.
21308         (rs6000_eliminate_indexed_memrefs): Likewise.
21309         (rs6000_emit_le_vsx_store): Likewise.
21310         (rs6000_emit_move_si_sf_subreg): Likewise.
21311         (rs6000_emit_move): Likewise.
21312         (register_to_reg_type): Likewise.
21313         (rs6000_pre_atomic_barrier): Likewise.
21314         (rs6000_machopic_legitimize_pic_address): Likewise.
21315         (rs6000_allocate_stack_temp): Likewise.
21316         (rs6000_address_for_fpconvert): Likewise.
21317         (rs6000_address_for_altivec): Likewise.
21318         (rs6000_secondary_memory_needed_rtx): Delete function.
21319         (rs6000_check_sdmode): Likewise.
21320         (rs6000_alloc_sdmode_stack_slot): Likewise.
21321         (rs6000_instantiate_decls): Likewise.
21322         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
21323         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
21324         Delete reload_in_progress.
21325         (*vec_reload_and_plus_<mptrsize>): Likewise.
21326         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
21327         (vsx_div_v2di): Likewise.
21328         (vsx_udiv_v2di): Likewise.
21329
21330 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
21331
21332         * config/rs6000/rs6000.opt (mlra): Replace with stub.
21333         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
21334         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
21335         (rs6000_debug_reg_global): Delete print of LRA status.
21336         (rs6000_option_override_internal): Delete dead LRA related code.
21337         (rs6000_lra_p): Delete function.
21338         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
21339
21340 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21341
21342         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
21343         * config/riscv/rtems.h: New file.
21344
21345 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21346             Sudakshina Das  <sudi.das@arm.com>
21347
21348         * config/aarch64/aarch64.md
21349         (define_split for and<mode>3nr_compare): Move
21350         non aarch64_logical_operand to a register.
21351         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
21352         register immediate operand to a register.
21353         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
21354
21355 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
21356
21357         PR middle-end/81564
21358         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
21359
21360 2017-07-27  Richard Biener  <rguenther@suse.de>
21361
21362         PR tree-optimization/81573
21363         PR tree-optimization/81494
21364         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
21365         multi defuse cycle case.
21366
21367 2017-07-27  Richard Biener  <rguenther@suse.de>
21368
21369         PR tree-optimization/81571
21370         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
21371         PHIs.
21372
21373 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
21374
21375         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
21376         earlier and only if MASK_FPU is set.  Adjust formatting.
21377
21378 2017-07-27  Martin Liska  <mliska@suse.cz>
21379
21380         * opt-functions.awk: Add validation of value of Init.
21381         * optc-gen.awk: Pass new argument.
21382
21383 2017-07-27  Martin Liska  <mliska@suse.cz>
21384
21385         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
21386         Fix wrong condition.
21387
21388 2017-07-27  Martin Liska  <mliska@suse.cz>
21389
21390         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
21391         BBs and edges seen by autoFDO.
21392
21393 2017-07-27  Richard Biener  <rguenther@suse.de>
21394
21395         PR tree-optimization/81502
21396         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
21397         with incompatible but same sized type.
21398         (execute_update_addresses_taken): Likewise.
21399
21400 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
21401
21402         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
21403         flag_tree_loop_vectorize rather than flag_tree_vectorize.
21404
21405 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21406
21407         PR target/81534
21408         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
21409         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
21410         Change s_operand to memory_operand.
21411
21412 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
21413
21414         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
21415         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
21416         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
21417         Emit instructions rather than returning an expression.  Handle TFmode
21418         and KFmode by casting to TImode.
21419         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
21420         (rs6000_emit_le_vsx_store): Likewise.
21421         * config/rs6000/vsx.md (VSX_TI): New iterator.
21422         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
21423         (*vsx_le_undo_permute_<mode>): Likewise.
21424         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
21425         emit the split sequence.
21426         (*vsx_le_perm_store_<mode>): Likewise.
21427
21428 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
21429
21430         PR tree-optimization/81555
21431         PR tree-optimization/81556
21432         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
21433         if true, force CHANGED for the recursive invocation.
21434         (reassociate_bb): Remember original length of ops array, pass
21435         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
21436
21437         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
21438         attributes for noipa attribute.  For naked attribute use
21439         lookup_attribute first before lookup_attribute_spec.
21440         * final.c (rest_of_handle_final): Disable IPA RA for functions with
21441         noipa attribute.
21442         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
21443         for functions with noipa attribute.
21444         (cgraph_externally_visible_p): Return true for functions with noipa
21445         attribute.
21446         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
21447         for functions with noipa attribute.
21448         * doc/extend.texi: Document noipa function attribute.
21449         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
21450         also for functions with noipa attribute.
21451         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
21452
21453 2017-07-26  Andrew Pinski  <apinski@cavium.com>
21454
21455         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
21456         vec_unalign_load_cost and vec_unalign_store_cost.
21457
21458 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
21459
21460         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
21461         -mvsx-small-integer option.
21462         (ISA_3_0_MASKS_IEEE): Likewise.
21463         (OTHER_VSX_VECTOR_MASKS): Likewise.
21464         (POWERPC_MASKS): Likewise.
21465         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
21466         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
21467         code, only testing for DImode being allowed in non-VSX floating
21468         point registers.
21469         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
21470         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
21471         another VSX test.
21472         (rs6000_option_override_internal): Delete -mvsx-small-integer.
21473         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
21474         TARGET_P8_VECTOR test.
21475         (rs6000_secondary_reload_simple_move): Likewise.
21476         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
21477         since TARGET_P9_VECTOR was already tested.
21478         (rs6000_opt_masks): Remove -mvsx-small-integer.
21479         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
21480         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
21481         used.
21482         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
21483         test for TARGET_VEXTRACTUB was used, and that uses
21484         TARGET_P9_VECTOR.
21485         (p9 extract splitter): Likewise.
21486         (vsx_extract_<mode>_di_p9): Likewise.
21487         (vsx_extract_<mode>_store_p9): Likewise.
21488         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
21489         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
21490         the elimination of TARGET_VSX_SMALL_INTEGER.
21491         (vsx_extract_<mode>_p8): Likewise.
21492         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
21493         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
21494         (vsx_set_<mode>_p9): Likewise.
21495         (vsx_set_v4sf_p9): Likewise.
21496         (vsx_set_v4sf_p9_zero): Likewise.
21497         (vsx_insert_extract_v4sf_p9): Likewise.
21498         (vsx_insert_extract_v4sf_p9_2): Likewise.
21499         * config/rs6000/rs6000.md (sign extend splitter): Change
21500         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
21501         (floatsi<mode>2_lfiwax_mem): Likewise.
21502         (floatunssi<mode>2_lfiwzx_mem): Likewise.
21503         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
21504         since a test for TARGET_P9_VECTOR was used.
21505         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
21506         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
21507         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
21508         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
21509         TARGET_P8_VECTOR test.
21510         (fix_trunc<mode>si2_stfiwx): Likewise.
21511         (fix_trunc<mode>si2_internal): Likewise.
21512         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
21513         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
21514         used.
21515         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
21516         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
21517         TARGET_P8_VECTOR test.
21518         (fixuns_trunc<mode>si2_stfiwx): Likewise.
21519         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
21520         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
21521         used.
21522         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
21523         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
21524         since a test for TARGET_P9_VECTOR was used.
21525         (splitter for loading small constants): Likewise.
21526
21527 2017-07-26  Andrew Pinski  <apinski@cavium.com>
21528
21529         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
21530         vec_fp_stmt_cost.
21531
21532 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
21533
21534         PR target/81563
21535         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
21536         (fp_valid_at): Likewise.
21537
21538 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
21539
21540         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
21541         (qdf24xx_addrcost_table): Likewise.
21542         (cortexa57_tunings): Update to use generic_branch_cost.
21543         (cortexa72_tunings): Likewise.
21544         (cortexa73_tunings): Likewise.
21545         (qdf24xx_tunings): Likewise.
21546
21547 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
21548
21549         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
21550         (thunderx2t99_branch_cost): Likewise.
21551         (cortexa35_tunings): Update to use generic_branch_cost.
21552         (cortexa53_tunings): Likewise.
21553         (cortexa57_tunings): Likewise.
21554         (cortexa72_tunings): Likewise.
21555         (cortexa73_tunings): Likewise.
21556         (thunderx2t99_tunings): Likewise.
21557
21558 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21559
21560         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
21561         (sparc_option_override): Honour MASK_FSMULD.
21562         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
21563         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
21564         * config/sparc/sparc.opt (mfsmuld): New option.
21565         * doc/invoke.texi (mfsmuld): Document option.
21566
21567 2017-07-26  Marek Polacek  <polacek@redhat.com>
21568
21569         PR middle-end/70992
21570         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
21571
21572 2017-07-26  Richard Biener  <rguenther@suse.de>
21573
21574         * gimple-match-head.c (do_valueize): Return OP if valueize
21575         returns NULL_TREE.
21576         (get_def): New helper to get at the def stmt of a SSA name
21577         if valueize allows.
21578         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
21579         do_valueize to get at the def stmt.
21580         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
21581
21582 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
21583
21584         PR middle-end/46932
21585         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
21586
21587 2017-07-26  Martin Liska  <mliska@suse.cz>
21588
21589         PR sanitize/81186
21590         * function.c (expand_function_start): Make expansion of
21591         nonlocal_goto_save_area after parm_birth_insn.
21592
21593 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21594
21595         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
21596         from all CPU target flags enable members.
21597
21598 2017-07-26  Richard Biener  <rguenther@suse.de>
21599
21600         * genmatch.c (dt_simplify::gen): Make iterator vars const.
21601         (decision_tree::gen): Make 'type' const.
21602         (write_predicate): Likewise.
21603
21604 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
21605
21606         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
21607         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
21608         (rs6000_option_override_internal): Likewise.
21609         (rs6000_expand_vector_set): Likewise.
21610         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
21611         (TARGET_UPPER_REGS_SF): Likewise.
21612         (TARGET_UPPER_REGS_DI): Likewise.
21613         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
21614         (TARGET_DIRECT_MOVE_64BIT): Likewise.
21615         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
21616         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
21617         (Splitters for DI constants in Altivec registers): Likewise.
21618         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
21619         (vsx_set_v4sf_p9): Likewise.
21620         (vsx_set_v4sf_p9_zero): Likewise.
21621         (vsx_insert_extract_v4sf_p9): Likewise.
21622         (vsx_insert_extract_v4sf_p9_2): Likewise.
21623
21624 2017-07-25  Carl Love  <cel@us.ibm.com>
21625
21626         * doc/extend.texi: Update the built-in documentation file for the
21627         existing built-in functions
21628         vector signed char vec_cnttz (vector signed char);
21629         vector unsigned char vec_cnttz (vector unsigned char);
21630         vector signed short vec_cnttz (vector signed short);
21631         vector unsigned short vec_cnttz (vector unsigned short);
21632         vector signed int vec_cnttz (vector signed int);
21633         vector unsigned int vec_cnttz (vector unsigned int);
21634         vector signed long long vec_cnttz (vector signed long long);
21635         vector unsigned long long vec_cnttz (vector unsigned long long);
21636
21637 2017-07-25  Andrew Pinski  <apinski@cavium.com>
21638
21639         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
21640         accesses where the use is for the first operand of a BIT_INSERT.
21641
21642 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
21643
21644         PR bootstrap/81521
21645         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
21646         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
21647
21648 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
21649
21650         * config/i386/gstabs.h: Delete.
21651         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
21652
21653 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
21654
21655         * config/i386/i386.c (ix86_decompose_address): Do not check for
21656         register RTX when looking at index_reg or base_reg.
21657         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
21658
21659 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
21660
21661         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
21662         to update EH info here.
21663
21664 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
21665
21666         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
21667
21668 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
21669
21670         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
21671
21672 2017-07-25  Torsten Duwe  <duwe@suse.de>
21673
21674         * common.opt: Introduce -fpatchable-function-entry
21675         command line option, and its variables function_entry_patch_area_size
21676         and function_entry_patch_area_start.
21677         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
21678         including a two-value parser.
21679         * target.def (print_patchable_function_entry): New target hook.
21680         * targhooks.h (default_print_patchable_function_entry): New function.
21681         * targhooks.c (default_print_patchable_function_entry): Likewise.
21682         * toplev.c (process_options): Switch off IPA-RA if
21683         patchable function entries are being generated.
21684         * varasm.c (assemble_start_function): Look at the
21685         patchable-function-entry command line switch and current
21686         function attributes and maybe generate NOP instructions by
21687         calling the print_patchable_function_entry hook.
21688         * doc/extend.texi: Document patchable_function_entry attribute.
21689         * doc/invoke.texi: Document -fpatchable_function_entry
21690         command line option.
21691         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
21692         New target hook.
21693         * doc/tm.texi: Re-generate.
21694
21695 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
21696
21697         PR target/81532
21698         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
21699         TARGET_AVX512DQ rather than TARGET_AVX512BW.
21700
21701 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
21702
21703         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
21704
21705 2017-07-25  Richard Biener  <rguenther@suse.de>
21706
21707         PR tree-optimization/81455
21708         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
21709         not walk in cycles when looking for guards.
21710
21711 2017-07-25  Richard Biener  <rguenther@suse.de>
21712
21713         PR tree-optimization/81529
21714         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
21715         when optimizing backedge uses.
21716
21717 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
21718
21719         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
21720         character for AIX.
21721         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
21722         to dl_section_ref.  On AIX, append an expression to subtract
21723         the size of the section length to dl_section_ref.
21724
21725 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
21726
21727         * configure.ac: If any of the config.* scripts fail, exit 1.
21728         * configure: Regenerate.
21729
21730 2017-07-25  Richard Biener  <rguenther@suse.de>
21731
21732         PR middle-end/81546
21733         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
21734         of immediate uses, be more verbose on errors.
21735
21736 2017-07-25  Richard Biener  <rguenther@suse.de>
21737
21738         PR tree-optimization/81510
21739         * tree-vect-loop.c (vect_is_simple_reduction): When the
21740         reduction stmt is not inside the loop bail out.
21741
21742 2017-07-25  Richard Biener  <rguenther@suse.de>
21743
21744         PR tree-optimization/81303
21745         * tree-vect-loop-manip.c (vect_loop_versioning): Build
21746         profitability check against LOOP_VINFO_NITERSM1.
21747
21748 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
21749
21750         * domwalk.c (cmp_bb_postorder): Simplify.
21751         (sort_bbs_postorder): New function.  Use it...
21752         (dom_walker::walk): ...here to optimize common cases.
21753
21754 2017-07-25  Martin Liska  <mliska@suse.cz>
21755
21756         PR ipa/81520
21757         * ipa-visibility.c (function_and_variable_visibility): Make the
21758         redirection just on target that supports aliasing.
21759         Fix GNU coding style.
21760
21761 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21762
21763         PR libgcc/61152
21764         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
21765         Format changes.
21766         * config/arm/rtems.h: Likewise.
21767         * config/bfin/rtems.h: Likewise.
21768         * config/i386/rtemself.h: Likewise.
21769         * config/lm32/rtems.h: Likewise.
21770         * config/m32c/rtems.h: Likewise.
21771         * config/m68k/rtemself.h: Likewise.
21772         * config/microblaze/rtems.h: Likewise.
21773         * config/mips/rtems.h: Likewise.
21774         * config/moxie/rtems.h: Likewise.
21775         * config/nios2/rtems.h: Likewise.
21776         * config/powerpcspe/rtems.h: Likewise.
21777         * config/rs6000/rtems.h: Likewise.
21778         * config/rtems.h: Likewise.
21779         * config/sh/rtems.h: Likewise.
21780         * config/sh/rtemself.h: Likewise.
21781         * config/sparc/rtemself.h: Likewise.
21782
21783 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
21784
21785         PR 81487
21786         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
21787         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
21788         * tree-ssa-structalias.c (alias_get_name): Same.
21789
21790 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
21791
21792         PR target/81414
21793         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
21794         instructions if no du chain is found.
21795
21796 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
21797
21798         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
21799
21800 2017-07-25  Richard Biener  <rguenther@suse.de>
21801
21802         PR middle-end/81505
21803         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
21804         sticky.
21805
21806 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
21807
21808         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
21809         upper-regs options.
21810         (ISA_2_7_MASKS_SERVER): Likewise.
21811         (ISA_3_0_MASKS_IEEE): Likewise.
21812         (OTHER_P8_VECTOR_MASKS): Likewise.
21813         (OTHER_VSX_VECTOR_MASKS): Likewise.
21814         (POWERPC_MASKS): Likewise.
21815         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
21816         duplicate list of options.
21817         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
21818         explicit -mupper-regs options.
21819         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
21820         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
21821         alias for -mupper-regs-df.
21822         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
21823         (rs6000_init_hard_regno_mode_ok): Likewise.
21824         (rs6000_option_override_internal): Likewise.
21825         (rs6000_opt_masks): Likewise.
21826         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
21827         options in terms of whether -mvsx or -mpower8-vector was used.
21828         (TARGET_UPPER_REGS_DI): Likewise.
21829         (TARGET_UPPER_REGS_SF): Likewise.
21830         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
21831         -mupper-regs-* options.
21832
21833 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
21834
21835         * passes.c (emergency_dump_function): Print some empty lines and a
21836         header before the RTL dump.
21837
21838 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
21839
21840         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
21841
21842 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
21843
21844         PR target/79041
21845         * config/aarch64/aarch64.c (aarch64_classify_symbol):
21846         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
21847
21848 2017-07-24  Carl Love  <cel@us.ibm.com>
21849
21850         * config/rs6000/rs6000-c.c: Add support for built-in functions
21851         vector float vec_extract_fp32_from_shorth (vector unsigned short);
21852         vector float vec_extract_fp32_from_shortl (vector unsigned short);
21853         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
21854         vec_extract_fp_from_shortl): Add defines for the two builtins.
21855         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
21856         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
21857         new builtins.
21858         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
21859         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
21860         * doc/extend.texi: Update the built-in documentation file for the
21861         new built-in function.
21862
21863 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
21864
21865         PR bootstrap/81521
21866         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
21867         documentation.
21868         * doc/generic.texi: Likewise.
21869         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
21870         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
21871
21872 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
21873
21874         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
21875         (aarch64_mls_elt_merge<mode>): Likewise.
21876
21877 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
21878
21879         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
21880         having __cxa_atexit.
21881
21882 2017-07-23  Michael Collison  <michael.collison@arm.com>
21883
21884         * config/arm/arm.c (arm_option_override): Deprecate
21885         use of -mstructure-size-boundary.
21886         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
21887         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
21888
21889 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21890
21891         PR target/80695
21892         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
21893         Reduce cost estimate for direct moves.
21894
21895 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
21896
21897         PR target/80569
21898         * config/i386/i386.c (ix86_option_override_internal): Disable
21899         BMI, BMI2 and TBM instructions for -m16.
21900
21901 2017-07-21  Carl Love  <cel@us.ibm.com>
21902
21903         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21904         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
21905         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
21906         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
21907         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
21908         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
21909         VMULOSW): New enum "unspec" values.
21910         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
21911         altivec_vmulosw): New patterns.
21912         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
21913         VMULOSW): Add definitions.
21914
21915 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
21916
21917         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
21918         (qdf24xx): Likewise.
21919         * config/aarch64/aarch64-options-extensions.def (rdma); New.
21920         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
21921         (AARCH64_FL_V8_1): Renumber.
21922         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
21923         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
21924         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
21925         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
21926         rdma to feature modifiers list.
21927
21928 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
21929
21930         PR middle-end/56727
21931         * ipa-visibility (function_and_variable_visibility): Convert
21932         recursive PLT call to direct call if appropriate.
21933
21934 2017-07-21  Andrew Pinski  <apinski@cavium.com>
21935
21936         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
21937         operand 1 to see if the types precision matches.
21938         * fold-const.c (operand_equal_p): Likewise.
21939
21940 2017-07-21  Richard Biener  <rguenther@suse.de>
21941
21942         PR tree-optimization/81303
21943         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
21944         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
21945         (vect_peeling_hash_get_lowest_cost): Adjust.
21946         (vect_enhance_data_refs_alignment): Likewise.  Use
21947         vect_get_peeling_costs_all_drs to compute the penalty for no
21948         peeling to match up costs.
21949
21950 2017-07-21  Richard Biener  <rguenther@suse.de>
21951
21952         PR tree-optimization/81500
21953         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
21954         we didn't identify a reduction path.
21955
21956 2017-07-21  Tom de Vries  <tom@codesourcery.com>
21957             Cesar Philippidis  <cesar@codesourcery.com>
21958
21959         PR gcov-profile/81442
21960         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
21961         probabilities.
21962
21963 2017-07-21  Tom de Vries  <tom@codesourcery.com>
21964
21965         PR lto/81430
21966         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
21967         function.
21968         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
21969         nvptx_override_options_after_change.
21970
21971 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
21972
21973         * dwarf2out.c (output_file_names): Avoid double testing for
21974         dwarf_version >= 5.
21975
21976 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
21977
21978         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
21979
21980 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
21981
21982         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
21983         hot/cold regions.
21984         (try_crossjump_to_edge): Do not punt on partitioned functions.
21985
21986 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
21987
21988         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
21989         Put all BBs reachable only via paths crossing cold region to cold
21990         region.
21991         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
21992
21993 2016-07-21  Richard Biener  <rguenther@suse.de>
21994
21995         PR tree-optimization/81303
21996         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
21997         into account prologue and epilogue iterations when raising
21998         min_profitable_iters to sth at least covering one vector iteration.
21999
22000 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
22001
22002         * config/arm/arm.c (arm_test_cpu_arch_dat):
22003         Check for overlap.
22004
22005 2017-07-20  Nathan Sidwell  <nathan@acm.org>
22006
22007         Remove TYPE_METHODS.
22008         * tree.h (TYPE_METHODS): Delete.
22009         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
22010         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
22011         (dbxout_type_methods): Scan TYPE_FIELDS.
22012         (dbxout_type): Don't check TYPE_METHODS here.
22013         * function.c (use_register_for_decl): Always ignore register for
22014         class types when not optimizing.
22015         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
22016         * tree.c (free_lang_data_in_type): Stitch out member functions and
22017         templates from TYPE_FIELDS.
22018         (build_distinct_type_copy, verify_type_variant,
22019         verify_type): Member fns are on TYPE_FIELDS.
22020         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
22021         * tree-pretty-print.c (dump_generic_node): Likewise.
22022
22023 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
22024
22025         PR target/80846
22026         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
22027         V2TImode and V4TImode.
22028         (ix86_expand_vector_extract): Likewise.
22029         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
22030         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
22031         (ssescalarmode): Handle V4TImode and V2TImode.
22032         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
22033         (*vec_extractv2ti, *vec_extractv4ti): New insns.
22034         (VEXTRACTI128_MODE): New mode iterator.
22035         (splitter for *vec_extractv?ti first element): New.
22036         (VEC_INIT_MODE): New mode iterator.
22037         (vec_init<mode>): Consolidate 3 expanders into one using
22038         VEC_INIT_MODE mode iterator.
22039
22040 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
22041
22042         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
22043         non_spilled_static_chain_regno_p.
22044
22045 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
22046
22047         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
22048
22049 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
22050
22051         * bb-reorder.c (connect_traces): Allow copying of blocks within
22052         single partition.
22053
22054 2017-07-20  Richard Biener  <rguenther@suse.de>
22055
22056         * gimple.h (gimple_phi_result): Add gphi * overload.
22057         (gimple_phi_result_ptr): Likewise.
22058         (gimple_phi_arg): Likewise.  Adjust index assert to only
22059         allow actual argument accesses rather than all slots available
22060         by capacity.
22061         (gimple_phi_arg_def): Add gphi * overload.
22062         * tree-phinodes.c (make_phi_node): Initialize only actual
22063         arguments.
22064         (resize_phi_node): Clear memory not covered by old node,
22065         do not initialize excess argument slots.
22066         (reserve_phi_args_for_new_edge): Initialize new argument slot
22067         completely.
22068
22069 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
22070
22071         PR tree-optimization/81388
22072         Revert r238585:
22073         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
22074
22075         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
22076         by removing computation of may_be_zero.
22077
22078 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
22079             Tom de Vries  <tom@codesourcery.com>
22080
22081         PR middle-end/81030
22082         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
22083         when gimple level profile disagrees with what RTL expander did.
22084
22085 2017-07-20  Richard Biener  <rguenther@suse.de>
22086
22087         PR tree-optimization/61171
22088         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
22089         (vect_analyze_stmt): Add slp instance parameter.
22090         (vectorizable_reduction): Likewise.
22091         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
22092         (vect_is_simple_reduction): Deal with chains not detected
22093         as SLP reduction chain, specifically not properly associated
22094         chains containing a mix of plus/minus.
22095         (get_reduction_op): Remove.
22096         (get_initial_defs_for_reduction): Simplify, pass in whether
22097         this is a reduction chain, pass in the SLP node for the PHIs.
22098         (vect_create_epilog_for_reduction): Get the SLP instance as
22099         arg and adjust.
22100         (vectorizable_reduction): Get the SLP instance as arg.
22101         During analysis remember the SLP node with the PHIs in the
22102         instance.  Simplify getting at the vectorized reduction PHIs.
22103         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
22104         through SLP instance.
22105         (vect_slp_analyze_operations): Likewise.
22106         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
22107         (vect_transform_stmt): Likewise.
22108
22109 2017-07-20  Tom de Vries  <tom@codesourcery.com>
22110
22111         PR tree-optimization/81489
22112         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
22113         read of phi arg location to before loop that modifies phi.
22114
22115 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
22116
22117         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
22118         New pattern.
22119
22120 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
22121
22122         PR middle-end/81331
22123         * except.c (execute): Fix ordering issue.
22124
22125 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
22126
22127         PR rtl-optimization/81423
22128         * combine.c (make_compound_operation_int): Don't try to optimize
22129         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
22130
22131 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
22132
22133         PR rtl-optimization/81423
22134         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
22135         with a constant that is -1 in the truncated to mode.
22136
22137 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
22138
22139         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
22140         (determine_unlikely_bbs): ... here.
22141         * predict.h (propagate_unlikely_bbs_forward): Declare.
22142         * cfgexpand.c (pass_expand::execute): Use it.
22143         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
22144         unlikely edges.
22145         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
22146         propagate_unlikely_bbs_forward.
22147
22148 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
22149
22150         PR middle-end/81331
22151         * except.c (maybe_add_nop_after_section_switch): New function.
22152         (execute): Use it.
22153
22154 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22155
22156         * gimple.h (gimple_phi_set_arg): Make assert more strict.
22157
22158 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22159
22160         * gimple.h (gimple_phi_arg): Make assert more strict.
22161
22162 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
22163
22164         * config.gcc (powerpc*-*-*): Add mmintrin.h.
22165         * config/rs6000/mmintrin.h: New file.
22166         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
22167
22168 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
22169
22170         PR tree-optimization/81346
22171         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
22172
22173 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22174
22175         * config/nvptx/nvptx.md (VECIM): Add V2DI.
22176
22177 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22178
22179         * config/nvptx/nvptx-modes.def: Add V2DImode.
22180         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
22181         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
22182         (nvptx_output_mov_insn): Handle lack of mov.b128.
22183         (nvptx_print_operand): Handle 'H' and 'L' codes.
22184         (nvptx_vector_mode_supported): Allow V2DImode.
22185         (nvptx_preferred_simd_mode): New function.
22186         (nvptx_data_alignment): New function.
22187         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
22188         nvptx_preferred_simd_mode.
22189         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
22190         64 to 128 bits.
22191         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
22192
22193 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22194
22195         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
22196         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
22197         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
22198         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
22199         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
22200         (mov<VECIM>_insn): New define_insn.
22201         (define_expand "mov<VECIM>): New define_expand.
22202
22203 2017-07-19  Tom de Vries  <tom@codesourcery.com>
22204
22205         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
22206
22207 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
22208
22209         PR tree-optimization/81346
22210         * fold-const.h (fold_div_compare, range_check_type): Declare.
22211         * fold-const.c (range_check_type): New function.
22212         (build_range_check): Use range_check_type.
22213         (fold_div_compare): No longer static, rewritten into
22214         a match.pd helper function.
22215         (fold_comparison): Don't call fold_div_compare here.
22216         * match.pd (X / C1 op C2): New optimization using fold_div_compare
22217         as helper function.
22218
22219 2017-07-19  Nathan Sidwell  <nathan@acm.org>
22220
22221         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
22222         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
22223         * tree.c (find_decls_types_r, verify_type): Use
22224         TYPE_{MIN,MAX}_VALUE_RAW.
22225         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
22226         (hash_tree): Likewise.
22227         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
22228         Likewise.
22229         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
22230         Likewise.
22231
22232 2017-07-18  Tom de Vries  <tom@codesourcery.com>
22233
22234         PR middle-end/81464
22235         * omp-expand.c (expand_omp_for_static_chunk): Handle
22236         equal-argument loop exit phi.
22237
22238 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
22239
22240         PR target/81471
22241         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
22242         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
22243         operand 2 predicate.
22244         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
22245         operand 2 predicate.
22246         (ror,rol -> rorx splitters): Use const_int_operand as
22247         operand 2 predicate.
22248
22249 2017-06-18  Richard Biener  <rguenther@suse.de>
22250
22251         PR tree-optimization/81410
22252         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
22253         the gap in the ! slp_perm SLP case after each group.
22254
22255 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
22256
22257         PR middle-end/81463
22258         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
22259         again.
22260
22261 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
22262
22263         PR middle-end/81462
22264         * predict.c (set_even_probabilities): Cleanup; do not affect
22265         probabilities that are already known.
22266         (combine_predictions_for_bb): Call even when count is set.
22267
22268 2017-07-18  Nathan Sidwell  <nathan@acm.org>
22269
22270         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
22271         TYPE_MAX_VALUE.
22272
22273 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
22274
22275         PR target/81408
22276         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
22277         optimization for loop niter analysis.
22278
22279 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
22280
22281         PR target/81473
22282         * config/avr/avr.c (avr_optimize_casesi): Don't use
22283         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
22284
22285 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
22286
22287         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
22288         body_cost_vec from _vect_peel_extended_info.
22289         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
22290         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
22291         npeel.
22292
22293 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
22294
22295         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
22296
22297 2017-07-18  Richard Biener  <rguenther@suse.de>
22298
22299         PR tree-optimization/80620
22300         PR tree-optimization/81403
22301         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
22302         info when re-using a VN table entry.
22303
22304 2017-07-18  Richard Biener  <rguenther@suse.de>
22305
22306         PR tree-optimization/81418
22307         * tree-vect-loop.c (vectorizable_reduction): Properly compute
22308         vectype_in.  Verify that with lane-reducing reduction operations
22309         we have a single def-use cycle.
22310
22311 2017-07-17  Carl Love  <cel@us.ibm.com>
22312
22313         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
22314
22315         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22316         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
22317         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
22318         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
22319         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
22320         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
22321         VMULOSW): New enum "unspec" values.
22322         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
22323         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
22324         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
22325         altivec_vmulosw): New patterns.
22326         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
22327         VMULOSW): Add definitions.
22328
22329 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
22330
22331         * config/alpha/alpha.c: Include predict.h.
22332
22333 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
22334
22335         * tree-vrp.c (compare_assert_loc): Fix comparison function
22336         to return predictable results.
22337
22338 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22339
22340         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
22341         option.
22342         (subdi3): Likewise.
22343         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
22344         * doc/invoke.texi (mexpand-adddi): Update text.
22345
22346 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22347
22348         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
22349         that also clobbers the CC register. The old expand code is moved
22350         to ...
22351         (*arc_clzsi2): ... here.
22352         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
22353         the CC register. The old expand code is moved to ...
22354         (arc_ctzsi2): ... here.
22355
22356 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22357
22358         * config/arc/arc.opt (mindexed-loads): Use initial value
22359         TARGET_INDEXED_LOADS_DEFAULT.
22360         (mauto-modify-reg): Use initial value
22361         TARGET_AUTO_MODIFY_REG_DEFAULT.
22362         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
22363         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
22364         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
22365         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
22366
22367 2017-07-17  Martin Liska  <mliska@suse.cz>
22368
22369         PR sanitizer/81302
22370         * opts.c (finish_options): Do not allow -fgnu-tm
22371         w/ -fsanitize={kernel-,}address.  Say sorry.
22372
22373 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22374
22375         PR target/81369
22376         * tree-loop-distribution.c (classify_partition): Only assert on
22377         numer of iterations.
22378         (merge_dep_scc_partitions): Delete prameter.  Update function call.
22379         (distribute_loop): Remove code handling loop with unknown niters.
22380         (pass_loop_distribution::execute): Skip loop with unknown niters.
22381
22382 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22383
22384         PR target/81369
22385         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
22386         function sort_partitions_by_post_order.
22387
22388 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
22389
22390         PR tree-optimization/81374
22391         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
22392         the max index of basic blocks, rather than number of basic blocks.
22393
22394 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22395
22396         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
22397         proto.
22398         (arc_legitimate_pic_operand_p): Likewise.
22399         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
22400         function.
22401         (arc_needs_pcl_p): Likewise.
22402         (arc_legitimate_pc_offset_p): Likewise.
22403         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
22404         function is also used in constrains.md.
22405         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
22406         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
22407         PLUS.  Only return true/false in known cases, otherwise assert.
22408         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
22409         is already called in arc_legitimate_constant_p.
22410         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
22411         pic addresses.
22412         (LEGITIMATE_PIC_OPERAND_P): Use
22413         arc_raw_symbolic_reference_mentioned_p function.
22414         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
22415         function.
22416         (Cal): Likewise.
22417         (C32): Likewise.
22418
22419 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
22420         Andrew Burgess  <andrew.burgess@embecosm.com>
22421
22422         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
22423         (arc_return_address_register): New function.
22424         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
22425         (arc_handle_fndecl_attribute): Add naked attribute.
22426         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
22427         (TARGET_WARN_FUNC_RETURN): Likewise.
22428         (arc_allocate_stack_slots_for_args): New function.
22429         (arc_warn_func_return): Likewise.
22430         (machine_function): Change type fn_type.
22431         (arc_compute_function_type): Consider new naked function type,
22432         change function return type.
22433         (arc_must_save_register): Adapt to handle new
22434         arc_compute_function_type's return type.
22435         (arc_expand_prologue): Likewise.
22436         (arc_expand_epilogue): Likewise.
22437         (arc_return_address_regs): Delete.
22438         (arc_return_address_register): New function.
22439         (arc_epilogue_uses): Use above function.
22440         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
22441         (arc_function_type): Change encoding, add naked type.
22442         (ARC_INTERRUPT_P): Change to handle the new encoding.
22443         (ARC_FAST_INTERRUPT_P): Likewise.
22444         (ARC_NORMAL_P): Define.
22445         (ARC_NAKED_P): Likewise.
22446         (arc_compute_function_type): Delete prototype.
22447         * config/arc/arc.md (in_ret_delay_slot): Use
22448         arc_return_address_register function.
22449         (simple_return): Likewise.
22450         (p_return_i): Likewise.
22451
22452 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
22453
22454         PR tree-optimization/81428
22455         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
22456         can't be built for those types.
22457
22458 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
22459
22460         Remove stuff dead since r239246.
22461
22462         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
22463         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
22464         (avr_inform_devices): Remove dead stuff.
22465
22466 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
22467
22468         * config/arm/arm_neon.h: Fix softp typo.
22469
22470 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
22471
22472         PR tree-optimization/81365
22473         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
22474         aggregate moves onto bb predecessor edges, make sure there are no
22475         loads that could alias the lhs in between the start of bb and the
22476         loads from *phi.
22477
22478 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
22479
22480         PR 80929
22481         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
22482         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
22483         [LSHIFTRT, outer_code = TRUNCATE]: Same.
22484
22485 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
22486
22487         PR tree-optimization/81396
22488         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
22489         (init_symbolic_number): Initialize it to 1.
22490         (perform_symbolic_merge): Add n_ops from both operands into the new
22491         n_ops.
22492         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
22493         without base_addr as useless if they need more than one operation.
22494         (bswap_replace): Handle !bswap case for NULL base_addr.
22495
22496 2017-07-17  Tom de Vries  <tom@codesourcery.com>
22497
22498         PR target/81069
22499         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
22500         as possible.
22501
22502 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22503
22504         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
22505         conditional builtin define __FIX_LEON3FT_B2BST.
22506
22507 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
22508
22509         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
22510         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
22511         with -mfix-ut700.
22512
22513 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
22514
22515         PR rtl-optimization/81424
22516         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
22517         to remove potential trapping from operands if -fnon-call-exceptions.
22518
22519 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22520
22521         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
22522         profile_proability for scalling.
22523         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
22524
22525 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22526
22527         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
22528
22529 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22530
22531         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
22532         fixpoint arithmetics.
22533
22534 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22535
22536         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
22537         fixpoint arithmetics.
22538
22539 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22540
22541         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
22542         fixpoint arithmetics.
22543
22544 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
22545
22546         * profile-count.h (profile_probability::from_reg_br_prob_note,
22547         profile_probability::to_reg_br_prob_note): New functions.
22548         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
22549         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
22550         * predict.c (probability_reliable_p): Update.
22551         (edge_probability_reliable_p): Update.
22552         (br_prob_note_reliable_p): Update.
22553         (invert_br_probabilities): Update.
22554         (add_reg_br_prob_note): New function.
22555         (combine_predictions_for_insn): Update.
22556         * asan.c (asan_clear_shadow): Update.
22557         * cfgbuild.c (compute_outgoing_frequencies): Update.
22558         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
22559         (update_br_prob_note): Update.
22560         (rtl_verify_edges): Update.
22561         (purge_dead_edges): Update.
22562         (fixup_reorder_chain): Update.
22563         * emit-rtl.c (try_split): Update.
22564         * ifcvt.c (cond_exec_process_insns): Update.
22565         (cond_exec_process_if_block): Update.
22566         (dead_or_predicable): Update.
22567         * internal-fn.c (expand_addsub_overflow): Update.
22568         (expand_neg_overflow): Update.
22569         (expand_mul_overflow): Update.
22570         * loop-doloop.c (doloop_modify): Update.
22571         * loop-unroll.c (compare_and_jump_seq): Update.
22572         * optabs.c (emit_cmp_and_jump_insn_1): Update.
22573         * predict.h: Update.
22574         * reorg.c (mostly_true_jump): Update.
22575         * rtl.h: Update.
22576         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
22577         * config/alpha/alpha.c (emit_unlikely_jump): Update.
22578         * config/arc/arc.c: (emit_unlikely_jump): Update.
22579         * config/arm/arm.c: (emit_unlikely_jump): Update.
22580         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
22581         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
22582         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
22583         (ix86_print_operand): Update.
22584         (ix86_split_fp_branch): Update.
22585         (predict_jump): Update.
22586         * config/ia64/ia64.c (ia64_print_operand): Update.
22587         * config/mmix/mmix.c (mmix_print_operand): Update.
22588         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
22589         (rs6000_expand_split_stack_prologue): Update.
22590         * config/rs6000/rs6000.c: Update.
22591         * config/s390/s390.c (s390_expand_vec_strlen): Update.
22592         (s390_expand_vec_movstr): Update.
22593         (s390_expand_cs_tdsi): Update.
22594         (s390_expand_split_stack_prologue): Update.
22595         * config/sh/sh.c (sh_print_operand): Update.
22596         (expand_cbranchsi4): Update.
22597         (expand_cbranchdi4): Update.
22598         * config/sparc/sparc.c (output_v9branch): Update.
22599         * config/spu/spu.c (get_branch_target): Update.
22600         (ea_load_store_inline): Update.
22601         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
22602         * config/tilepro/tilepro.c: Update.
22603
22604 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
22605
22606         * gimplify.c (mostly_copy_tree_r): Revert latest change.
22607         (gimplify_save_expr): Likewise.
22608
22609 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
22610
22611         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
22612
22613 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
22614
22615         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
22616         TV_IPA_FNSUMMARY.
22617         * timevar.def (TV_IPA_FNSUMMARY): Define.
22618
22619 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
22620
22621         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
22622         to back store errata sensitive sequence from being generated.
22623         (sqrtdf2_fix): Likewise.
22624
22625 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
22626
22627         * tree-ssa-threadupdate.c (compute_path_counts,
22628         update_joiner_offpath_counts): Use profile_probability.
22629
22630 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22631
22632         Revert:
22633         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22634
22635         * config/arm/arm-c.c (arm_cpu_builtins): Define
22636         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
22637
22638 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
22639
22640         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22641         array entries to represent __ieee128 versions of the
22642         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
22643         scalar_extract_sig, and scalar_insert_exp built-in functions.
22644         (altivec_resolve_overloaded_builtin): Add special case handling
22645         for the __builtin_scalar_insert_exp function, as represented by
22646         the P9V_BUILTIN_VEC_VSIEDP constant.
22647         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
22648         exponent support for __ieee128 argument.
22649         (VSESQP): Add scalar extract signature support for __ieee128
22650         argument.
22651         (VSTDCNQP): Add scalar test negative support for __ieee128
22652         argument.
22653         (VSIEQP): Add scalar insert exponent support for __int128 argument
22654         with __ieee128 result.
22655         (VSIEQPF): Add scalar insert exponent support for __ieee128
22656         argument with __ieee128 result.
22657         (VSTDCQP): Add scalar test data class support for __ieee128
22658         argument.
22659         (VSTDCNQP): Add overload support for scalar test negative with
22660         __ieee128 argument.
22661         (VSTDCQP): Add overload support for scalar test data class
22662         __ieee128 argument.
22663         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
22664         UNSPEC_VSX_SXSIGDP.
22665         (UNSPEC_VSX_SIEXPQP): New constant.
22666         (xsxexpqp): New insn for VSX scalar extract exponent quad
22667         precision.
22668         (xsxsigqp): New insn for VSX scalar extract significand quad
22669         precision.
22670         (xsiexpqpf): New insn for VSX scalar insert exponent quad
22671         precision with floating point argument.
22672         (xststdcqp): New expand for VSX scalar test data class quad
22673         precision.
22674         (xststdcnegqp): New expand for VSX scalar test negative quad
22675         precision.
22676         (xststdcqp): New insn to match expansions for VSX scalar test data
22677         class quad precision and VSX scalar test negative quad precision.
22678         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
22679         special case operand checking to enforce that second operand of
22680         VSX scalar test data class with quad precision argument is a 7-bit
22681         unsigned literal.
22682         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
22683         prototypes and descriptions of __ieee128 versions of
22684         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
22685         scalar_test_data_class, and scalar_test_neg built-in functions.
22686
22687 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22688
22689         PR tree-optimization/81162
22690         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
22691         replace a negate with an add.
22692
22693 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
22694
22695         * doc/invoke.texi (arm/-mcpu): Document +crypto.
22696
22697 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22698
22699         * config/arm/arm-c.c (arm_cpu_builtins): Define
22700         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
22701
22702 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22703
22704         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
22705         (armv8-r): Set ARM Cortex-R52 as default CPU.
22706         * config/arm/arm-tables.opt: Regenerate.
22707         * config/arm/arm-tune.md: Regenerate.
22708         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
22709         Cortex-R52.
22710         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
22711         extension for -mcpu=cortex-r52.
22712
22713 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22714
22715         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
22716         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
22717         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
22718         (fp-armv8): Define it as FP_ARMv8 only.
22719         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
22720         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
22721         TARGET_FPU_ARMV8.
22722         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
22723         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
22724         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
22725         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
22726         than TARGET_FPU_ARMV8.
22727         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
22728         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
22729         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
22730         TARGET_FPU_ARMV8.
22731         * config/arm/neon.md (neon_vrint): Likewise.
22732         (neon_vcvt): Likewise.
22733         (neon_<fmaxmin_op><mode>): Likewise.
22734         (<fmaxmin><mode>3): Likewise.
22735         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
22736         * config/arm/predicates.md (arm_cond_move_operator): Check against
22737         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
22738
22739 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
22740
22741         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
22742         to top of function.
22743
22744 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22745
22746         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
22747         loop in comment with memset.
22748
22749 2017-07-14  Martin Liska  <mliska@suse.cz>
22750
22751         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
22752         * dwarf2out.c (is_java): Remove the function.
22753         (output_pubname): Remove usage of the function.
22754         (lower_bound_default): Remove usage of DW_LANG_Java.
22755         (gen_compile_unit_die): Likewise.
22756         * gcc.c: Remove compiler defaults for .java and .zip files.
22757         * gimple-expr.c (remove_suffix): Change as there's no longer
22758         extension than 4-letter one.
22759         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
22760         (gimplify_save_expr): Likewise.
22761         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
22762         as it's possible even for other languages than Java.
22763         * langhooks.h (struct lang_hooks): Remove Java from a comment.
22764         * lto-opts.c (lto_write_options): Remove reference to Java.
22765         * opts.c (strip_off_ending): Update file extension handling.
22766         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
22767         * tree-eh.c (lower_resx): Likewise.
22768         * tree.c (free_lang_data_in_type): Remove dead code.
22769         (find_decls_types_r): Likewise.
22770         (build_common_builtin_nodes): Remove Java from a comment.
22771         (verify_type): Remove dead code.
22772         * varasm.c (assemble_external): Remove Java from a comment.
22773
22774 2017-07-14  Martin Liska  <mliska@suse.cz>
22775
22776         * opts.c (finish_options): Add quotes.
22777         (common_handle_option): Likewise.
22778
22779 2017-07-14  Martin Liska  <mliska@suse.cz>
22780
22781         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
22782         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
22783         Remove N_SO_PASCAL.
22784         * dwarf2out.c (lower_bound_default): Do not handle
22785         DW_LANG_Pascal83.
22786         (gen_compile_unit_die): Likewise.
22787         * gcc.c: Remove default extension binding for GNU Pascal.
22788         * stmt.c: Remove Pascal language from a comment.
22789         * xcoffout.c: Likewise.
22790
22791 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
22792
22793         PR c/81405
22794         * diagnostic-show-locus.c (fixit_cmp): New function.
22795         (layout::layout): Sort m_fixit_hints.
22796         (column_range::column_range): Assert that the values are valid.
22797         (struct char_span): New struct.
22798         (correction::overwrite): New method.
22799         (struct source_line): New struct.
22800         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
22801         calls in terms of classes source_line and char_span, and
22802         correction::overwrite.
22803         (selftest::test_overlapped_fixit_printing_2): New function.
22804         (selftest::diagnostic_show_locus_c_tests): Call it.
22805
22806 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
22807
22808         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
22809         early if there is no lhs.
22810
22811 2017-07-13  Martin Liska  <mliska@suse.cz>
22812
22813         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
22814         (gen_reference_type_die): Likewise.
22815         * stor-layout.c: Remove Pascal-related comment.
22816
22817 2017-07-13  Martin Liska  <mliska@suse.cz>
22818
22819         * opts.c (finish_options): Add quotes to error messages.
22820         (parse_sanitizer_options): Likewise.
22821
22822 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22823
22824         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
22825
22826 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
22827
22828         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
22829
22830 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
22831
22832         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
22833         during expansion.
22834         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
22835
22836 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
22837
22838         PR target/81193
22839         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
22840         provides the hardware capability bits, define the macro
22841         __BUILTIN_CPU_SUPPORTS__.
22842         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
22843         if GLIBC does not provide the hardware capability bits.  Add a
22844         gcc_unreachable call if the built-in cpu function is neither
22845         __builtin_cpu_is nor __builtin_cpu_supports.
22846         (rs6000_get_function_versions_dispatcher): Change the warning
22847         that an old GLIBC is used which does not export the capability
22848         bits to be an error.
22849         * doc/extend.texi (target_clones attribute): Document the
22850         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
22851         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
22852         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
22853         the macros defined by GCC if the newer GLIBC is available.
22854
22855 2017-07-12  Jeff Law  <law@redhat.com>
22856
22857         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
22858         remaining includes slightly.
22859         * config/riscv/riscv-builtins.c: Include profile-count.h.
22860
22861 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
22862
22863         PR target/79883
22864         * config/avr/avr.c (avr_set_current_function): In diagnostic
22865         messages: Quote keywords and (parts of) identifiers.
22866         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
22867         "INTERUPT".
22868
22869 2017-07-12  Carl Love  <cel@us.ibm.com>
22870
22871         * config/rs6000/rs6000-c.c: Add support for built-in functions
22872         vector bool char vec_revb (vector bool char);
22873         vector bool short vec_revb (vector short char);
22874         vector bool int vec_revb (vector bool int);
22875         vector bool long long vec_revb (vector bool long long);
22876         * doc/extend.texi: Update the built-in documentation file for the
22877         new built-in functions.
22878
22879 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22880
22881         * config/s390/s390.md: Remove movcc splitter.
22882
22883 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22884
22885         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
22886         load/store on condition.
22887
22888 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
22889
22890         PR target/81407
22891         * config/avr/avr.c (avr_encode_section_info)
22892         [progmem && !TREE_READONLY]: Error if progmem object needs
22893         constructing.
22894
22895 2017-07-11  Michael Collison  <michael.collison@arm.com>
22896
22897         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
22898         New pattern.
22899
22900 2017-07-11  Carl Love  <cel@us.ibm.com>
22901
22902         * config/rs6000/rs6000-c.c: Add support for builtins
22903         vector unsigned int vec_parity_lsbb (vector signed int);
22904         vector unsigned int vec_parity_lsbb (vector unsigned int);
22905         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
22906         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
22907         vector unsigned long long vec_parity_lsbb (vector signed long long);
22908         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
22909         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
22910         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
22911         * doc/extend.texi: Update the built-in documentation file for the
22912         new built-in functions.
22913
22914 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
22915
22916         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
22917         (layout::m_primary_loc): New field.
22918         (layout::layout): Initialize new field.  Move location filtering
22919         logic from here to...
22920         (layout::maybe_add_location_range): ...this new method.  Add
22921         support for filtering to just the lines already specified by other
22922         locations.
22923         (layout::will_show_line_p): New method.
22924         (gcc_rich_location::add_location_if_nearby): New method.
22925         (selftest::test_add_location_if_nearby): New test function.
22926         (selftest::diagnostic_show_locus_c_tests): Call it.
22927         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
22928         New method.
22929
22930 2017-07-11  Tom de Vries  <tom@codesourcery.com>
22931
22932         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
22933         (bb_first_real_insn): New function.
22934         (nvptx_single): Add extra initialization of broadcasted condition
22935         variables.
22936
22937 2017-07-11  Nathan Sidwell  <nathan@acm.org>
22938
22939         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
22940
22941 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
22942
22943         * doc/extend.texi (AVR Function Attributes): Remove weblink to
22944         Binutils doc as TEXI will mess them up.
22945         * doc/invoke.texi (AVR Options): Same here.
22946
22947 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
22948
22949         * config/sparc/sparc.opt (mfix-ut700): New option.
22950         (mfix-gr712rc): Likewise.
22951         (sparc_fix_b2bst): New variable.
22952         * doc/invoke.texi (SPARC options): Document them.
22953         (ARM options): Fix warnings.
22954         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
22955         instructions to prevent sequences that can trigger the store-store
22956         errata for certain LEON3FT processors.
22957         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
22958         (sparc_option_override): Set sparc_fix_b2bst appropriately.
22959         * config/sparc/sparc.md (fix_b2bst): New attribute.
22960         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
22961
22962 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
22963
22964         PR target/81375
22965         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
22966         (rcpps): Ditto.
22967         (*rsqrtsf2_sse): Ditto.
22968         (rsqrtsf2): Ditto.
22969         (div<mode>3): Macroize insn from divdf3 and divsf3
22970         using MODEF mode iterator.
22971
22972 2017-07-10  Martin Sebor  <msebor@redhat.com>
22973
22974         PR tree-optimization/80397
22975         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
22976         instead of testing for equality to INTEGER_TYPE.
22977
22978 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
22979
22980         * config.gcc: Remove uclibc from arc target spec.
22981
22982 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
22983
22984         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
22985
22986 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
22987
22988         PR lto/80838
22989         * lto-wrapper.c (remove_option): New function.
22990         (merge_and_complain): Merge PIC/PIE options more realistically.
22991
22992 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
22993
22994         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
22995
22996         PR target/20296
22997         PR target/81268
22998         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
22999         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
23000         * config.in: Regenerate.
23001         * configure: Regenerate.
23002         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
23003         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
23004         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
23005         (TARGET_GASISR_PROLOGUES): ...target mask.
23006         * common/config/avr/avr-common.c
23007         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
23008         Set -mgas-isr-prologues.
23009         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
23010         INSERT_PASS_BEFORE for it.
23011         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
23012         * config/avr/avr.c (avr_option_override)
23013         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
23014         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
23015         (avr_attribute_table) <no_gccisr>: Add new function attribute.
23016         (avr_set_current_function) <is_no_gccisr>: Init machine field.
23017         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
23018         and rtl_opt_pass.
23019         (make_avr_pass_pre_proep): New function.
23020         (emit_push_sfr) <treg>: Add argument to function and use it
23021         instead of TMP_REG.
23022         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
23023         and set machine->gasisr.yes.
23024         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
23025         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
23026         __gcc_isr.n_pushed to .L__stack_usage.
23027         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
23028         (avr_asm_final_postscan_insn): ...this new static function.
23029         * config/avr/avr.h (machine_function)
23030         <is_no_gccisr, use_L__stack_usage>: New fields.
23031         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
23032         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
23033         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
23034         (gasisr, *gasisr): New expander and insn.
23035         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
23036         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
23037         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
23038
23039 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
23040
23041         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
23042         in quoted strings.
23043
23044 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
23045
23046         Move jump-tables out of .text again.
23047
23048         PR target/81075
23049         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
23050         (ASM_OUTPUT_ADDR_VEC): New function.
23051         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
23052         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
23053         INSN_ADDRESSes as asm comment.
23054         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
23055         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
23056         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
23057         * config/avr/avr.md (*tablejump): Adjust comment.
23058         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
23059         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
23060         New detail.
23061         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
23062         (avr_output_addr_vec): New proto.
23063         (avr_log_t) <insn_addresses>: New field.
23064
23065 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
23066
23067         PR target/81313
23068         * config/i386/i386.c (ix86_function_arg_advance): Set
23069         outgoing_args_on_stack to true if there are outgoing arguments
23070         on stack.
23071         (ix86_function_arg): Likewise.
23072         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
23073         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
23074         * config/i386/i386.h (machine_function): Add
23075         outgoing_args_on_stack.
23076
23077 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
23078
23079         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
23080         supporting pthreds.
23081         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
23082
23083 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
23084
23085         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
23086         (REAL_H): Remove $(MACHMODE_H).
23087         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
23088         double-int.h.
23089         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
23090         $(MACHMODE_H) and double-int.h.
23091         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
23092         $(MACHMODE_H).
23093         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
23094         double-int.h.
23095
23096 2017-07-07  Andrew Pinski  <apinski@cavium.com>
23097
23098         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
23099         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
23100
23101 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
23102
23103         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
23104         Add warning if GCC was not configured to link against a GLIBC that
23105         exports the hardware capability bits.
23106         (make_resolver_func): Make resolver function private and not a
23107         COMDAT function.  Create the name with clone_function_name instead
23108         of make_unique_name.
23109
23110         PR target/81348
23111         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
23112         correct operand in doing the split.
23113
23114 2017-07-07 Carl Love  <cel@us.ibm.com>
23115
23116         * config/rs6000/rs6000-c: Add support for built-in function
23117         vector unsigned short vec_pack_to_short_fp32 (vector float,
23118                                                       vector float).
23119         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
23120         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
23121         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
23122         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
23123         (convert_4f32_8i16): Add define_expand.
23124         * doc/extend.texi: Update the built-in documentation file for the
23125         new built-in function.
23126
23127 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23128
23129         * config/sparc/m8.md: New file.
23130         * config/sparc/sparc.md: Include m8.md.
23131
23132 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23133
23134         * config/sparc/sparc.opt: New option -mvis4b.
23135         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
23136         (sparc_option_override): Handle VIS4B.
23137         (enum sparc_builtins): Define
23138         SPARC_BUILTIN_DICTUNPACK{8,16,32},
23139         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
23140         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
23141         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
23142         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
23143         (check_constant_argument): New function.
23144         (sparc_vis_init_builtins): Define builtins
23145         __builtin_vis_dictunpack{8,16,32},
23146         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
23147         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
23148         __builtin_vis_fpcmpde{8,16,32}shl and
23149         __builtin_vis_fpcmpur{8,16,32}shl.
23150         (sparc_expand_builtin): Check that the constant operands to
23151         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
23152         constant and in range.
23153         * config/sparc/sparc-c.c (sparc_target_macros): Handle
23154         TARGET_VIS4B.
23155         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
23156         (SPARC_IMM5_P): Likewise.
23157         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
23158         (enabled): Handle vis4b.
23159         (UNSPEC_DICTUNPACK): New unspec.
23160         (UNSPEC_FPCMPSHL): Likewise.
23161         (UNSPEC_FPUCMPSHL): Likewise.
23162         (UNSPEC_FPCMPDESHL): Likewise.
23163         (UNSPEC_FPCMPURSHL): Likewise.
23164         (cpu_feature): New CPU feature `vis4b'.
23165         (dictunpack{8,16,32}): New insns.
23166         (FPCSMODE): New mode iterator.
23167         (fpcscond): New code iterator.
23168         (fpcsucond): Likewise.
23169         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
23170         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
23171         (fpcmpde{8,16,32}{si,di}shl): Likewise.
23172         (fpcmpur{8,16,32}{si,di}shl): Likewise.
23173         * config/sparc/constraints.md: Define constraints `q' for unsigned
23174         2-bit integer constants and `t' for unsigned 5-bit integer
23175         constants.
23176         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
23177         predicate.
23178         (imm5_operand_dictunpack16): Likewise.
23179         (imm5_operand_dictunpack32): Likewise.
23180         (imm2_operand): Likewise.
23181         * doc/invoke.texi (SPARC Options): Document -mvis4b.
23182         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
23183         ditunpack* and fpcmp*shl builtins.
23184
23185 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23186
23187         * config.gcc: Handle m8 in --with-{cpu,tune} options.
23188         * config.in: Add HAVE_AS_SPARC6 define.
23189         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
23190         M8.
23191         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
23192         TARGET_CPU_m8.
23193         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
23194         (CPP_CPU_SPEC): Handle m8.
23195         (ASM_CPU_SPEC): Likewise.
23196         * config/sparc/sparc-opts.h (enum processor_type): Add
23197         PROCESSOR_M8.
23198         * config/sparc/sparc.c (m8_costs): New struct.
23199         (sparc_option_override): Handle TARGET_CPU_m8.
23200         (sparc32_initialize_trampoline): Likewise.
23201         (sparc64_initialize_trampoline): Likewise.
23202         (sparc_issue_rate): Likewise.
23203         (sparc_register_move_cost): Likewise.
23204         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
23205         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
23206         (ASM_CPU64_DEFAULT_SPEC): Likewise.
23207         (CPP_CPU_SPEC): Handle M8.
23208         (ASM_CPU_SPEC): Likewise.
23209         (AS_M8_FLAG): Define.
23210         * config/sparc/sparc.md: Add m8 to the cpu attribute.
23211         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
23212         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
23213         M8 instructions.
23214         * configure: Regenerate.
23215         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
23216         -mtune=m8.
23217
23218 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23219
23220         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
23221         subtypes.
23222         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
23223         ("*movdi_insn_sp32"): Do not set v3pipe.
23224         ("*movsi_insn"): Likewise.
23225         ("*movdi_insn_sp64"): Likewise.
23226         ("*movsf_insn"): Likewise.
23227         ("*movdf_insn_sp32"): Likewise.
23228         ("*movdf_insn_sp64"): Likewise.
23229         ("*zero_extendsidi2_insn_sp64"): Likewise.
23230         ("*sign_extendsidi2_insn"): Likewise.
23231         ("*mov<VM32:mode>_insn"): Likewise.
23232         ("*mov<VM64:mode>_insn_sp64"): Likewise.
23233         ("*mov<VM64:mode>_insn_sp32"): Likewise.
23234         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
23235         ("<vlop:code><VL:mode>3"): Likewise.
23236         ("*not_<vlop:code><VL:mode>3"): Likewise.
23237         ("*nand<VL:mode>_vis"): Likewise.
23238         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
23239         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
23240         ("one_cmpl<VL:mode>2"): Likewise.
23241         ("faligndata<VM64:mode>_vis"): Likewise.
23242         ("alignaddrsi_vis"): Likewise.
23243         ("alignaddrdi_vis"): Likweise.
23244         ("alignaddrlsi_vis"): Likewise.
23245         ("alignaddrldi_vis"): Likewise.
23246         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
23247         ("bmaskdi_vis"): Likewise.
23248         ("bmasksi_vis"): Likewise.
23249         ("bshuffle<VM64:mode>_vis"): Likewise.
23250         ("cmask8<P:mode>_vis"): Likewise.
23251         ("cmask16<P:mode>_vis"): Likewise.
23252         ("cmask32<P:mode>_vis"): Likewise.
23253         ("pdistn<P:mode>_vis"): Likewise.
23254         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
23255
23256 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23257
23258         * config/sparc/sparc.md ("subtype"): New insn attribute.
23259         ("*wrgsr_sp64"): Set insn subtype.
23260         ("*rdgsr_sp64"): Likewise.
23261         ("alignaddrsi_vis"): Likewise.
23262         ("alignaddrdi_vis"): Likewise.
23263         ("alignaddrlsi_vis"): Likewise.
23264         ("alignaddrldi_vis"): Likewise.
23265         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
23266         ("fexpand_vis"): Likewise.
23267         ("fpmerge_vis"): Likewise.
23268         ("faligndata<VM64:mode>_vis"): Likewise.
23269         ("bshuffle<VM64:mode>_vis"): Likewise.
23270         ("cmask8<P:mode>_vis"): Likewise.
23271         ("cmask16<P:mode>_vis"): Likewise.
23272         ("cmask32<P:mode>_vis"): Likewise.
23273         ("fchksm16_vis"): Likewise.
23274         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
23275         ("fmean16_vis"): Likewise.
23276         ("fp<plusminus_insn>64_vis"): Likewise.
23277         ("<plusminus_insn>v8qi3"): Likewise.
23278         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
23279         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
23280         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
23281         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
23282         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
23283         ("*movqi_insn"): Likewise.
23284         ("*movhi_insn"): Likewise.
23285         ("*movsi_insn"): Likewise.
23286         ("movsi_pic_gotdata_op"): Likewise.
23287         ("*movdi_insn_sp32"): Likewise.
23288         ("*movdi_insn_sp64"): Likewise.
23289         ("movdi_pic_gotdata_op"): Likewise.
23290         ("*movsf_insn"): Likewise.
23291         ("*movdf_insn_sp32"): Likewise.
23292         ("*movdf_insn_sp64"): Likewise.
23293         ("*zero_extendhisi2_insn"): Likewise.
23294         ("*zero_extendqihi2_insn"): Likewise.
23295         ("*zero_extendqisi2_insn"): Likewise.
23296         ("*zero_extendqidi2_insn"): Likewise.
23297         ("*zero_extendhidi2_insn"): Likewise.
23298         ("*zero_extendsidi2_insn_sp64"): Likewise.
23299         ("ldfsr"): Likewise.
23300         ("prefetch_64"): Likewise.
23301         ("prefetch_32"): Likewise.
23302         ("tie_ld32"): Likewise.
23303         ("tie_ld64"): Likewise.
23304         ("*tldo_ldub_sp32"): Likewise.
23305         ("*tldo_ldub1_sp32"): Likewise.
23306         ("*tldo_ldub2_sp32"): Likewise.
23307         ("*tldo_ldub_sp64"): Likewise.
23308         ("*tldo_ldub1_sp64"): Likewise.
23309         ("*tldo_ldub2_sp64"): Likewise.
23310         ("*tldo_ldub3_sp64"): Likewise.
23311         ("*tldo_lduh_sp32"): Likewise.
23312         ("*tldo_lduh1_sp32"): Likewise.
23313         ("*tldo_lduh_sp64"): Likewise.
23314         ("*tldo_lduh1_sp64"): Likewise.
23315         ("*tldo_lduh2_sp64"): Likewise.
23316         ("*tldo_lduw_sp32"): Likewise.
23317         ("*tldo_lduw_sp64"): Likewise.
23318         ("*tldo_lduw1_sp64"): Likewise.
23319         ("*tldo_ldx_sp64"): Likewise.
23320         ("*mov<VM32:mode>_insn"): Likewise.
23321         ("*mov<VM64:mode>_insn_sp64"): Likewise.
23322         ("*mov<VM64:mode>_insn_sp32"): Likewise.
23323
23324 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23325
23326         * config/sparc/sparc.md ("type"): New insn type viscmp.
23327         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
23328         viscmp.
23329         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
23330         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
23331         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
23332         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
23333         viscmp.
23334         ("n7_vis_logical_11cycle"): Likewise.
23335         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
23336         * config/sparc/niagara2.md ("niag3_vis": Likewise.
23337         * config/sparc/niagara.md ("niag_vis"): Likewise.
23338         * config/sparc/ultra3.md ("us3_fga"): Likewise.
23339         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
23340
23341 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
23342
23343         * config/sparc/sparc.md: New instruction type `bmask'.
23344         (bmaskdi_vis): Use the `bmask' type.
23345         (bmasksi_vis): Likewise.
23346         * config/sparc/ultra3.md (us3_array): Likewise.
23347         * config/sparc/niagara7.md (n7_array): Likewise.
23348         * config/sparc/niagara4.md (n4_array): Likewise.
23349         * config/sparc/niagara2.md (niag2_vis): Likewise.
23350         (niag3_vis): Likewise.
23351         * config/sparc/niagara.md (niag_vis): Likewise.
23352
23353 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23354
23355         * ipa-comdats.c: Remove optimize check from gate.
23356         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
23357         for functions not optimized.
23358         (ipa_fn_summary_read): Skip optimize check.
23359         (ipa_fn_summary_write): Likewise.
23360         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
23361         is optimized.
23362         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
23363         uninlinable.
23364         (can_inline_edge_p): Check flag_pcc_struct_return for match.
23365         (check_callers): Give up on caller which is not optimized.
23366         (inline_small_functions): Likewise.
23367         (ipa_inline): Do not give up when not optimizing.
23368         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
23369         away unoptimizes cdtors.
23370         (whole_program_function_and_variable_visibility): Do
23371         ipa_discover_readonly_nonaddressable_vars in LTO mode.
23372         * ipa.c (process_references): Do not check optimize.
23373         (symbol_table::remove_unreachable_nodes): Update optimize check.
23374         (set_writeonly_bit): Update optimize check.
23375         (pass_ipa_cdtor_merge::gate): Do not check optimize.
23376         (pass_ipa_single_use::gate): Remove.
23377
23378 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
23379
23380         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
23381         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
23382         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
23383         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
23384         permute_load, permute_store, adjust_extract, adjust_splat,
23385         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
23386         replace_swap_with_copy, dump_swap_insn_table,
23387         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
23388         recombine_lvx_pattern, recombine_stvx_pattern,
23389         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
23390         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
23391         to file rs6000-p8swap.c.
23392         * config/rs6000/rs6000-p8swap.c: New file.
23393         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
23394         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
23395         and rs6000*-*-* targets.
23396
23397 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
23398
23399         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
23400
23401 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23402
23403         * lto-wrapper.c (merge_and_complain): Do not merge
23404         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
23405         fsigned_zeros, ftrapping_math, fwrapv.
23406         (append_compiler_options): Do not track these options.
23407         (append_linker_options): Likewie
23408
23409 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23410
23411         * cgraphunit.c (cgraph_node::finalize_function): When
23412         !flag_toplevel_reorde set no_reorder flag.
23413         (varpool_node::finalize_decl): Likewise.
23414         (symbol_table::compile): Drop no toplevel reorder path.
23415
23416 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23417
23418         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
23419         edges; zero probability is not better than uninitialized.
23420
23421 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
23422
23423         * asan.h (asan_sanitize_allocas_p): Declare.
23424         * asan.c (asan_sanitize_allocas_p): New function.
23425         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
23426         (handle_builtin_alloca): Likewise.
23427         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
23428         if !asan_sanitize_allocas_p.
23429         * params.def (asan-instrument-allocas): Add new option.
23430         * params.h (ASAN_PROTECT_ALLOCAS): Define.
23431         * opts.c (common_handle_option): Disable allocas sanitization for
23432         KASan by default.
23433
23434 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
23435
23436         * asan.c: Include gimple-fold.h.
23437         (get_last_alloca_addr): New function.
23438         (handle_builtin_stackrestore): Likewise.
23439         (handle_builtin_alloca): Likewise.
23440         (asan_emit_allocas_unpoison): Likewise.
23441         (get_mem_refs_of_builtin_call): Add new parameter, remove const
23442         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
23443         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
23444         (instrument_builtin_call): Pass gimple iterator to
23445         get_mem_refs_of_builtin_call.
23446         (last_alloca_addr): New global.
23447         * asan.h (asan_emit_allocas_unpoison): Declare.
23448         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
23449         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
23450         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
23451         if function calls alloca.
23452         * gimple-fold.c (replace_call_with_value): Remove static keyword.
23453         * gimple-fold.h (replace_call_with_value): Declare.
23454         * internal-fn.c: Include asan.h.
23455         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
23456         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
23457
23458 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
23459
23460         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
23461         (C_SELFTEST_FLAGS): New.
23462         (CPP_SELFTEST_FLAGS): New.
23463         (SELFTEST_DEPS): New, from deps of s-selftest.
23464         (C_SELFTEST_DEPS): New, from deps of s-selftest.
23465         (CPP_SELFTEST_DEPS): New.
23466         (selftest): Add dependency on s-selftest-c++.
23467         (s-selftest): Rename to...
23468         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
23469         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
23470         than SELFTEST_FLAGS.
23471         (selftest-gdb): Rename to...
23472         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
23473         C_SELFTEST_FLAGS.
23474         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
23475         (selftest-valgrind): Rename to...
23476         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
23477         C_SELFTEST_FLAGS.
23478         (selftest-valgrind): Reintroduce as an alias for
23479         selftest-c-valgrind.
23480         (s-selftest-c++): New.
23481         (selftest-c++-gdb): New.
23482         (selftest-c++-valgrind): New.
23483
23484 2017-07-06  Olivier Hainque  <hainque@adacore.com>
23485
23486         * gcc.c (process_command): When deciding if undefined variables
23487         should be ignored when processing specs, accept "gcc -v" as well.
23488
23489 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
23490
23491         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
23492         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
23493
23494 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23495
23496         * config/arm/arm-cpus.in (armv8-r): Add new entry.
23497         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
23498         * config/arm/arm-tables.opt: Regenerate.
23499         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
23500         enumerator.
23501         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
23502
23503 2017-07-06  Carl Love  <cel@us.ibm.com>
23504
23505         * ChangeLog: Clean up from mid air collision
23506
23507 2017-07-06  Carl Love  <cel@us.ibm.com>
23508
23509         * config/rs6000/rs6000-c.c: Add support for built-in functions
23510         vector signed int vec_subc (vector signed int, vector signed int);
23511         vector signed __int128 vec_subc (vector signed __int128,
23512                                          vector signed __int128);
23513         vector unsigned __int128 vec_subc (vector unsigned __int128,
23514                                            vector unsigned __int128);
23515         vector signed int vec_sube (vector signed int, vector signed int,
23516                                     vector signed int);
23517         vector unsigned int vec_sube (vector unsigned int,
23518                                       vector unsigned int,
23519                                       vector unsigned int);
23520         vector signed __int128 vec_sube (vector signed __int128,
23521                                          vector signed __int128,
23522                                          vector signed__int128);
23523         vector unsigned __int128 vec_sube (vector unsigned __int128,
23524                                            vector unsigned __int128,
23525                                            vector unsigned __int128);
23526         vector signed int vec_subec (vector signed int, vector signed int,
23527                                      vector signed int);
23528         vector unsigned int vec_subec (vector unsigned int,
23529                                        vector unsigned int,
23530                                        vector unsigned int);
23531         vector signed __int128 vec_subec (vector signed __int128,
23532                                           vector signed __int128,
23533                                           vector signed__int128);
23534         vector unsigned __int128 vec_subec (vector unsigned __int128,
23535                                             vector unsigned __int128,
23536                                             vector unsigned __int128);
23537         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
23538         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
23539         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
23540         BU_ALTIVEC_OVERLOAD_X definitions.
23541         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
23542         * doc/extend.texi: Update the built-in documentation file for the new
23543         built-in functions.
23544
23545 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
23546
23547         PR c++/79300
23548         * diagnostic-show-locus.c (layout::layout): Use start and finish
23549         spelling location for the start and finish of each range.
23550         * genmatch.c (linemap_client_expand_location_to_spelling_point):
23551         Add unused aspect param.
23552         * input.c (expand_location_1): Add "aspect" param, and use it
23553         to access the correct part of the location.
23554         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
23555         expand_location_1.
23556         (expand_location_to_spelling_point): Likewise.
23557         (linemap_client_expand_location_to_spelling_point): Add "aspect"
23558         param, and pass it to expand_location_1.
23559
23560 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
23561
23562         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
23563         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
23564         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
23565         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
23566         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
23567         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
23568         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
23569         _mm_maskz_getmant_ss): New intrinsics.
23570         (__builtin_ia32_getexpss128_mask): Changed to ...
23571         __builtin_ia32_getexpss128_round ... this.
23572         (__builtin_ia32_getexpsd128_mask): Changed to ...
23573         __builtin_ia32_getexpsd128_round ... this.
23574         * config/i386/i386-builtin-types.def
23575         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
23576         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
23577         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
23578         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
23579         __builtin_ia32_getmantss_mask_round): New builtins.
23580         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
23581         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
23582         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
23583         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
23584         * config/i386/sse.md
23585         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
23586         avx512f_sgetexp<mode><mask_scalar_name>
23587         <round_saeonly_scalar_name> ... this.
23588         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
23589         %0, %1, %2<round_saeonly_op3>}): Changed to ...
23590         vgetexp<ssescalarmodesuffix>
23591         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
23592         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
23593         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
23594         avx512f_vgetmant<mode><mask_scalar_name>
23595         <round_saeonly_scalar_name> ... this.
23596         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
23597         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
23598         vgetmant<ssescalarmodesuffix>
23599         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
23600         %0<mask_scalar_operand4>, %1, %2
23601         <round_saeonly_scalar_mask_op4>, %3} ... this.
23602         * config/i386/subst.md (mask_scalar_operand4,
23603         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
23604         round_saeonly_scalar_nimm_predicate): New subst attributes.
23605
23606 2017-07-06  Julia Koval  <julia.koval@intel.com>
23607
23608         * config/i386/i386.c (ix86_erase_embedded_rounding):
23609         Remove code for old rounding pattern.
23610
23611 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
23612
23613         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
23614
23615 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
23616
23617         * doc/sourcebuild.texi (Test Directives, Variants of
23618         dg-require-support): Add documentation for dg-require-stack-check.
23619
23620 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
23621
23622         * config/i386/subst.md (mask_scalar, round_scalar,
23623         round_saeonly_scalar): New meta-templates.
23624         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
23625         round_scalar_mask_operand3, round_scalar_mask_op3,
23626         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
23627         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
23628         round_saeonly_scalar_constraint,
23629         round_saeonly_scalar_prefix): New subst attribute.
23630         * config/i386/sse.md
23631         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
23632         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
23633         <round_scalar_name> ... this.
23634         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
23635         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
23636         <round_scalar_name> ... this.
23637         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
23638         <sse>_vm<code><mode>3<mask_scalar_name>
23639         <round_saeonly_scalar_name> ... this.
23640         (v<plusminus_mnemonic><ssescalarmodesuffix>
23641         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
23642         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
23643         v<plusminus_mnemonic><ssescalarmodesuffix>
23644         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
23645         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
23646         (v<multdiv_mnemonic><ssescalarmodesuffix>
23647         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
23648         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
23649         v<multdiv_mnemonic><ssescalarmodesuffix>
23650         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
23651         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
23652         (v<maxmin_float><ssescalarmodesuffix>
23653         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
23654         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
23655         v<maxmin_float><ssescalarmodesuffix>
23656         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
23657         %0<mask_scalar_operand3>, %1, %<iptr>2
23658         <round_saeonly_scalar_mask_op3>} ... this.
23659
23660 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
23661
23662         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
23663         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
23664
23665 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
23666             Alan Hayward  <alan.hayward@arm.com>
23667             David Sherwood  <david.sherwood@arm.com>
23668
23669         * combine.c (simplify_if_then_else): Remove "enum" before
23670         "machine_mode".
23671         * compare-elim.c (can_eliminate_compare): Likewise.
23672         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
23673         Likewise.
23674         (aarch64_lookup_simd_builtin_type): Likewise.
23675         (aarch64_simd_builtin_type): Likewise.
23676         (aarch64_init_simd_builtin_types): Likewise.
23677         (aarch64_simd_expand_args): Likewise.
23678         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
23679         Likewise.
23680         (aarch64_reverse_mask): Likewise.
23681         (aarch64_simd_emit_reg_reg_move): Likewise.
23682         (aarch64_gen_adjusted_ldpstp): Likewise.
23683         (aarch64_ccmp_mode_to_code): Likewise.
23684         (aarch64_operands_ok_for_ldpstp): Likewise.
23685         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
23686         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
23687         Likewise.
23688         (aarch64_min_divisions_for_recip_mul): Likewise.
23689         (aarch64_reassociation_width): Likewise.
23690         (aarch64_get_condition_code_1): Likewise.
23691         (aarch64_simd_emit_reg_reg_move): Likewise.
23692         (aarch64_simd_attr_length_rglist): Likewise.
23693         (aarch64_reverse_mask): Likewise.
23694         (aarch64_operands_ok_for_ldpstp): Likewise.
23695         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
23696         (aarch64_gen_adjusted_ldpstp): Likewise.
23697         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
23698         Likewise.
23699         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
23700         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
23701         (arm_lookup_simd_builtin_type): Likewise.
23702         (arm_simd_builtin_type): Likewise.
23703         (arm_init_simd_builtin_types): Likewise.
23704         (arm_expand_builtin_args): Likewise.
23705         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
23706         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
23707         (ft32_setup_incoming_varargs): Likewise.
23708         (ft32_function_arg): Likewise.
23709         (ft32_function_arg_advance): Likewise.
23710         (ft32_pass_by_reference): Likewise.
23711         (ft32_arg_partial_bytes): Likewise.
23712         (ft32_valid_pointer_mode): Likewise.
23713         (ft32_addr_space_pointer_mode): Likewise.
23714         (ft32_addr_space_legitimate_address_p): Likewise.
23715         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
23716         Likewise.
23717         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
23718         (ix86_emit_outlined_ms2sysv_restore): Likewise.
23719         (iamcu_alignment): Likewise.
23720         (canonicalize_vector_int_perm): Likewise.
23721         (ix86_noce_conversion_profitable_p): Likewise.
23722         (ix86_mpx_bound_mode): Likewise.
23723         (ix86_operands_ok_for_move_multiple): Likewise.
23724         * config/microblaze/microblaze-protos.h
23725         (microblaze_expand_conditional_branch_reg): Likewise.
23726         * config/microblaze/microblaze.c
23727         (microblaze_expand_conditional_branch_reg): Likewise.
23728         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
23729         Likewise.
23730         (rs6000_reassociation_width): Likewise.
23731         (rs6000_invalid_binary_op): Likewise.
23732         (fusion_p9_p): Likewise.
23733         (emit_fusion_p9_load): Likewise.
23734         (emit_fusion_p9_store): Likewise.
23735         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
23736         Likewise.
23737         (riscv_hard_regno_mode_ok_p): Likewise.
23738         (riscv_address_insns): Likewise.
23739         (riscv_split_symbol): Likewise.
23740         (riscv_legitimize_move): Likewise.
23741         (riscv_function_value): Likewise.
23742         (riscv_hard_regno_nregs): Likewise.
23743         (riscv_expand_builtin): Likewise.
23744         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
23745         (riscv_build_integer): Likewise.
23746         (riscv_split_integer): Likewise.
23747         (riscv_legitimate_constant_p): Likewise.
23748         (riscv_cannot_force_const_mem): Likewise.
23749         (riscv_regno_mode_ok_for_base_p): Likewise.
23750         (riscv_valid_base_register_p): Likewise.
23751         (riscv_valid_offset_p): Likewise.
23752         (riscv_valid_lo_sum_p): Likewise.
23753         (riscv_classify_address): Likewise.
23754         (riscv_legitimate_address_p): Likewise.
23755         (riscv_address_insns): Likewise.
23756         (riscv_load_store_insns): Likewise.
23757         (riscv_force_binary): Likewise.
23758         (riscv_split_symbol): Likewise.
23759         (riscv_force_address): Likewise.
23760         (riscv_legitimize_address): Likewise.
23761         (riscv_move_integer): Likewise.
23762         (riscv_legitimize_const_move): Likewise.
23763         (riscv_legitimize_move): Likewise.
23764         (riscv_address_cost): Likewise.
23765         (riscv_subword): Likewise.
23766         (riscv_output_move): Likewise.
23767         (riscv_canonicalize_int_order_test): Likewise.
23768         (riscv_emit_int_order_test): Likewise.
23769         (riscv_function_arg_boundary): Likewise.
23770         (riscv_pass_mode_in_fpr_p): Likewise.
23771         (riscv_pass_fpr_single): Likewise.
23772         (riscv_pass_fpr_pair): Likewise.
23773         (riscv_get_arg_info): Likewise.
23774         (riscv_function_arg): Likewise.
23775         (riscv_function_arg_advance): Likewise.
23776         (riscv_arg_partial_bytes): Likewise.
23777         (riscv_function_value): Likewise.
23778         (riscv_pass_by_reference): Likewise.
23779         (riscv_setup_incoming_varargs): Likewise.
23780         (riscv_print_operand): Likewise.
23781         (riscv_elf_select_rtx_section): Likewise.
23782         (riscv_save_restore_reg): Likewise.
23783         (riscv_for_each_saved_reg): Likewise.
23784         (riscv_register_move_cost): Likewise.
23785         (riscv_hard_regno_mode_ok_p): Likewise.
23786         (riscv_hard_regno_nregs): Likewise.
23787         (riscv_class_max_nregs): Likewise.
23788         (riscv_memory_move_cost): Likewise.
23789         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
23790         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
23791         (rl78_addr_space_address_mode): Likewise.
23792         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
23793         Likewise.
23794         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
23795         (rs6000_reassociation_width): Likewise.
23796         (rs6000_invalid_binary_op): Likewise.
23797         (fusion_p9_p): Likewise.
23798         (emit_fusion_p9_load): Likewise.
23799         (emit_fusion_p9_store): Likewise.
23800         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
23801         (ok_for_simple_move_operands): Likewise.
23802         (ok_for_simple_move_strict_operands): Likewise.
23803         (ok_for_simple_arith_logic_operands): Likewise.
23804         (visium_legitimize_reload_address): Likewise.
23805         (visium_select_cc_mode): Likewise.
23806         (output_cbranch): Likewise.
23807         (visium_split_double_move): Likewise.
23808         (visium_expand_copysign): Likewise.
23809         (visium_expand_int_cstore): Likewise.
23810         (visium_expand_fp_cstore): Likewise.
23811         * config/visium/visium.c (visium_pass_by_reference): Likewise.
23812         (visium_function_arg): Likewise.
23813         (visium_function_arg_advance): Likewise.
23814         (visium_libcall_value): Likewise.
23815         (visium_setup_incoming_varargs): Likewise.
23816         (visium_legitimate_constant_p): Likewise.
23817         (visium_legitimate_address_p): Likewise.
23818         (visium_legitimize_address): Likewise.
23819         (visium_secondary_reload): Likewise.
23820         (visium_register_move_cost): Likewise.
23821         (visium_memory_move_cost): Likewise.
23822         (prepare_move_operands): Likewise.
23823         (ok_for_simple_move_operands): Likewise.
23824         (ok_for_simple_move_strict_operands): Likewise.
23825         (ok_for_simple_arith_logic_operands): Likewise.
23826         (visium_function_value_1): Likewise.
23827         (rtx_ok_for_offset_p): Likewise.
23828         (visium_legitimize_reload_address): Likewise.
23829         (visium_split_double_move): Likewise.
23830         (visium_expand_copysign): Likewise.
23831         (visium_expand_int_cstore): Likewise.
23832         (visium_expand_fp_cstore): Likewise.
23833         (visium_split_cstore): Likewise.
23834         (visium_select_cc_mode): Likewise.
23835         (visium_split_cbranch): Likewise.
23836         (output_cbranch): Likewise.
23837         (visium_print_operand_address): Likewise.
23838         * expmed.c (flip_storage_order): Likewise.
23839         * expmed.h (emit_cstore): Likewise.
23840         (flip_storage_order): Likewise.
23841         * genrecog.c (validate_pattern): Likewise.
23842         * hsa-gen.c (gen_hsa_addr): Likewise.
23843         * internal-fn.c (expand_arith_overflow): Likewise.
23844         * ira-color.c (allocno_copy_cost_saving): Likewise.
23845         * lra-assigns.c (find_hard_regno_for_1): Likewise.
23846         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
23847         (process_invariant_for_inheritance): Likewise.
23848         * lra-eliminations.c (move_plus_up): Likewise.
23849         * omp-low.c (lower_oacc_reductions): Likewise.
23850         * simplify-rtx.c (simplify_subreg): Likewise.
23851         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
23852         (TARGET_CHKP_BOUND_MODE): Likewise..
23853         * targhooks.c (default_chkp_bound_mode): Likewise.
23854         (default_setup_incoming_vararg_bounds): Likewise.
23855         * targhooks.h (default_chkp_bound_mode): Likewise.
23856         (default_setup_incoming_vararg_bounds): Likewise.
23857         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
23858         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
23859         (have_whole_vector_shift): Likewise.
23860         * tree-vect-stmts.c (vectorizable_load): Likewise.
23861         * doc/tm.texi: Regenerate.
23862
23863 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
23864
23865         Graceful degrade if Binutils PR21472 is not available.
23866
23867         PR target/81072
23868         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
23869         .rodata in flash test fails.
23870         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
23871         * confgure: Regenerate.
23872         * config.in: Regenerate.
23873         * config/avr/avr.c (avr_asm_named_section)
23874         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
23875         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
23876         (avr_asm_init_sections): Same.
23877
23878 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23879
23880         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
23881         (fma<VH:mode>4_intrinsic): Likewise.
23882         (*fmsub<VCVTF:mode>4): Likewise.
23883         (*fmsub<VH:mode>4_intrinsic): Likewise.
23884
23885 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
23886
23887         PR target/81305
23888         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
23889         Don't depend on "optimize > 0".
23890         (out_movhi_r_mr, out_movqi_mr_r): Same.
23891         (out_movhi_mr_r, out_movqi_r_mr): Same.
23892         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
23893         io_address_operand on "optimize > 0".
23894
23895 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23896
23897         * tree-loop-distribution.c: Add general explanantion on the pass.
23898         (generate_loops_for_partition): Mark distributed loop.
23899         (pg_add_dependence_edges): New parameter.  Handle alias data
23900         dependence specially and record it in the parameter if asked.
23901         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
23902         (init_partition_graph_vertices, add_partition_graph_edge): New.
23903         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
23904         (free_partition_graph_vdata, build_partition_graph): New.
23905         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
23906         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
23907         (data_ref_segment_size, latch_dominated_by_data_ref): New.
23908         (compute_alias_check_pairs, version_loop_by_alias_check): New.
23909         (version_for_distribution_p, finalize_partitions): New.
23910         (distribute_loop): Handle alias data dependence specially.  Factor
23911         out loop fusion code as functions and call these functions.
23912
23913 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23914
23915         * tree-loop-distribution.c (classify_partition): New parameter and
23916         better handle reduction statement.
23917         (rdg_build_partitions): Revise comment.
23918         (distribute_loop): Compute statements in all partitions and pass it
23919         to classify_partition.
23920
23921 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23922
23923         * tree-loop-distribution.c (enum partition_type): New.
23924         (struct partition): New field type.
23925         (partition_merge_into): Add parameter.  Update partition type.
23926         (data_dep_in_cycle_p, update_type_for_merge): New functions.
23927         (build_rdg_partition_for_vertex): Compute partition type.
23928         (rdg_build_partitions): Dump partition type.
23929         (distribute_loop): Update calls to partition_merge_into.
23930
23931 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23932
23933         * tree-loop-distribution.c (struct ddr_hasher): New.
23934         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
23935         (ddrs_table): New.
23936         (classify_partition): Call get_data_dependence.
23937         (pg_add_dependence_edges): Ditto.
23938         (distribute_loop): Release data dependence hash table.
23939
23940 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23941
23942         * tree-loop-distribution.c (ref_base_address): Delete.
23943         (similar_memory_accesses): Rename ...
23944         (share_memory_accesses): ... to this.  Check if partitions access
23945         the same memory reference.
23946         (distribute_loop): Call share_memory_accesses.
23947
23948 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23949
23950         * tree-loop-distribution.c (struct partition): New field recording
23951         its data reference.
23952         (partition_alloc, partition_free): Init and release data refs.
23953         (partition_merge_into): Merge data refs.
23954         (build_rdg_partition_for_vertex): Collect data refs for partition.
23955         (pg_add_dependence_edges): Change parameters from vector to bitmap.
23956         Update uses.
23957         (distribute_loop): Remve data refs from vertice data of partition
23958         graph.
23959
23960 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23961
23962         * tree-loop-distribution.c (params.h): Include header file.
23963         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
23964         (datarefs_vec): New global var.
23965         (create_rdg_vertices): Use datarefs_vec directly.
23966         (free_rdg): Don't free data references.
23967         (build_rdg): Update use.  Don't free data references.
23968         (distribute_loop): Compute global variable for data references.
23969         Bail out if there are too many data references.
23970
23971 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23972
23973         * tree-loop-distribution.c (loop_nest): New global var.
23974         (build_rdg): Use loop directly, rather than loop nest.
23975         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
23976         variable directly.
23977         (distribute_loop): Compute global variable loop nest.  Update use.
23978
23979 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23980
23981         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
23982         (partition_merge_into): New parameter.  Dump reason for fusion.
23983         (distribute_loop): Update use of partition_merge_into.
23984
23985 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23986
23987         * tree-loop-distribution.c (bb_top_order_index): New.
23988         (bb_top_order_index_size, bb_top_order_cmp): New.
23989         (stmts_from_loop): Use topological order.
23990         (pass_loop_distribution::execute): Compute and release topological
23991         order for basic blocks.
23992
23993 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23994
23995         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
23996         if no loops.
23997
23998 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
23999
24000         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
24001         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
24002         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
24003         * internal-fn.def (LOOP_DIST_ALIAS): New.
24004         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
24005         (fold_loop_internal_call): ... this.
24006         (vect_loop_dist_alias_call): New function.
24007         (set_uid_loop_bbs): Call fold_loop_internal_call.
24008         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
24009         internal calls.
24010
24011 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
24012
24013         PR target/81300
24014         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
24015         Require dead FLAGS_REG at the beginning of a peephole.
24016
24017 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
24018
24019         PR target/81294
24020         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
24021         arguments in the call to __builtin_ia32_sbb_u32.
24022         (_subborrow_u64): Swap _X and _Y arguments in the call to
24023         __builtin_ia32_sbb_u64.
24024
24025 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
24026
24027         PR debug/81278
24028         * tree-vrp.c (compare_assert_loc): Turn into a function template
24029         with stable template parameter.  Only test if a->e is NULL,
24030         !a->e == !b->e has been verified already.  Use e == NULL or
24031         e != NULL instead of e or ! e tests.  If stable is true, don't use
24032         iterative_hash_expr, on the other side allow a or b or both NULL
24033         and sort the NULLs last.
24034         (process_assert_insertions): Sort using compare_assert_loc<false>
24035         instead of compare_assert_loc, later sort using
24036         compare_assert_loc<true> before calling process_assert_insertions_for
24037         in a loop.  Use break instead of continue once seen NULL pointer.
24038
24039 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24040
24041         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
24042         Cortex-R7 and Cortex-R8 processors.
24043
24044 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
24045
24046         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
24047         uninitialized while src is not.
24048
24049 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
24050
24051         * common/config/arm/arm-common.c: Adjust include path for
24052         arm-cpu-cdata.h
24053         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
24054         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
24055         (arm-cpu-data.h): Likewise.
24056         (arm-cpu-cdata.h): Likewise.
24057         * config/arm/arm-cpu.h: Delete.
24058         * config/arm/arm-cpu-cdata.h: Delete.
24059         * config/arm/arm-cpu-data.h: Delete.
24060
24061 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
24062
24063         * config/arm/arm-cpus.in (cortex-a55): New.
24064         (cortex-a75): Likewise.
24065         (cortex-a75.cortex-a55): Likewise.
24066         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
24067         cortex-a75.
24068         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
24069         * config/arm/arm-cpu-cdata.h: Regenerate.
24070         * config/arm/arm-cpu-data.h: Regenerate.
24071         * config/arm/arm-cpu.h: Regenerate.
24072         * config/arm/arm-tables.opt: Regenerate.
24073         * config/arm/arm-tune.md: Regenerate.
24074
24075 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
24076
24077         * haifa-sched.c (sched_create_recovery_edges): Update profile.
24078
24079 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
24080
24081         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
24082         probability.
24083
24084 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
24085
24086         PR tree-optimization/81292
24087         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
24088         full_string_p, also call adjust_related_strinfos if the adjustment
24089         is simple, otherwise invalidate related strinfos.
24090
24091 2017-07-04  Martin Liska  <mliska@suse.cz>
24092
24093         PR sanitizer/81040
24094         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
24095         newly created variable as DECL_IGNORED_P.
24096
24097 2017-07-04  Martin Liska  <mliska@suse.cz>
24098
24099         PR ipa/81293
24100         * ipa-inline.c (inline_small_functions):
24101         Use xstrdup_for_dump.
24102
24103 2017-07-04  Tom de Vries  <tom@codesourcery.com>
24104
24105         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
24106
24107 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
24108
24109         PR target/81033
24110         * config/darwin.c (darwin_function_switched_text_sections):
24111         Fix spaces.
24112
24113 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
24114
24115         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
24116
24117 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
24118
24119         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
24120
24121 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24122
24123         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
24124         min_profitable_iters, and th as inclusive lower bounds.
24125         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
24126         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
24127         for min_profitable_iters and min_profitable_estimate.
24128         (vect_transform_loop): Treat th as an inclusive lower bound.
24129         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
24130
24131 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
24132
24133         PR target/81033
24134         * config/darwin.c (darwin_function_switched_text_sections):
24135         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
24136         in two pieces, and suppress the use of buf.
24137
24138 2017-07-03  Nathan Sidwell  <nathan@acm.org>
24139
24140         * hash-table.h (hash_table_mod1): Fix indentation.
24141
24142 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24143
24144         PR middle-end/81290
24145         * predict.c (force_edge_cold): Be more careful about propagation
24146         backward.
24147         * profile-count.h (profile_probability::guessed,
24148         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
24149         New.
24150         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
24151
24152 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
24153
24154         * doc/invoke.texi (rcpc architecture extension): Document it.
24155
24156 2017-07-03  Richard Biener  <rguenther@suse.de>
24157
24158         PR tree-optimization/60510
24159         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
24160         the scalar reduction PHI and use it.
24161         (vectorizable_reduction): Properly guard the single_defuse_cycle
24162         path for non-SLP reduction chains where we cannot use it.
24163         Rework reduc_def/index and vector type deduction.  Rework
24164         vector operand gathering during reduction op code-gen.
24165         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
24166         chains dissolve the chain and leave it to non-SLP reduction
24167         handling.
24168
24169 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24170
24171         * tree-data-ref.h (dr_alignment): Declare.
24172         * tree-data-ref.c (dr_alignment): New function.
24173         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
24174         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
24175         set it.
24176         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
24177
24178 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24179
24180         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
24181         and base_misalignment fields.
24182         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
24183         * tree-data-ref.c: Include builtins.h.
24184         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
24185         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
24186         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
24187         * tree-vect-data-refs.c: Include tree-cfg.h.
24188         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
24189         fields instead of calculating an alignment here.
24190         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
24191         innermost_loop_behavior fields.
24192
24193 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24194
24195         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
24196         field.
24197         (DR_STEP_ALIGNMENT): New macro.
24198         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
24199         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
24200         (create_data_ref): Print it.
24201         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
24202         to tell whether the step preserves vector (mis)alignment.
24203         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
24204         Move the check for an integer step and generalise to all INTEGER_CST.
24205         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
24206         Print the outer step alignment.
24207
24208 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24209
24210         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
24211         with offset_alignment.
24212         (DR_ALIGNED_TO): Delete.
24213         (DR_OFFSET_ALIGNMENT): New macro.
24214         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
24215         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
24216         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
24217         (create_data_ref): Likewise.
24218         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
24219         (vect_analyze_data_refs): Likewise.
24220         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
24221         creating dummy innermost behavior.
24222
24223 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24224
24225         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
24226         with a "innermost_loop_behavior *" and refeence tree.
24227         * tree-data-ref.c (dr_analyze_innermost): Likewise.
24228         (create_data_ref): Update call accordingly.
24229         * tree-predcom.c (find_looparound_phi): Likewise.
24230
24231 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24232
24233         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
24234         fields with dr_wrt_vec_loop.
24235         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
24236         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
24237         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
24238         (vect_dr_behavior): New function.
24239         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
24240         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
24241         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
24242         track whether the step preserves the misalignment.
24243         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
24244         Use vect_dr_behavior.
24245         (vect_setup_realignment): Update call accordingly.
24246         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
24247         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
24248         call to vect_create_addr_base_for_vector_ref.
24249         (vect_create_cond_for_align_checks): Likewise.
24250         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
24251         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
24252         (vect_recog_mask_conversion_pattern): Likewise.
24253         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
24254         (new_stmt_vec_info): Remove redundant zeroing.
24255
24256 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
24257
24258         * common/config/arm/arm-common.c (arm_be8_option): New function.
24259         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
24260         (ISA_ARMv6): Add isa_bit_be8.
24261         * config/arm/arm.h (arm_be8_option): Add prototype.
24262         (BE8_SPEC_FUNCTION): New define.
24263         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
24264         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
24265         (mlittle-endian): Similarly.
24266         (mbe8, mbe32): New options.
24267         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
24268         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
24269
24270 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24271
24272         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
24273
24274 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24275
24276         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
24277         (cleanup_tree_cfg_bb): Use it.
24278         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
24279         New functions.
24280         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
24281
24282 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24283
24284         PR bootstrap/81285
24285         * loop-doloop.c (add_test): Update profile.
24286
24287 2017-07-03  Martin Liska  <mliska@suse.cz>
24288
24289         PR sanitize/81040
24290         * sanopt.c (rewrite_usage_of_param): New function.
24291         (sanitize_rewrite_addressable_params): Likewise.
24292         (pass_sanopt::execute): Call rewrite_usage_of_param.
24293
24294 2017-07-03  Richard Biener  <rguenther@suse.de>
24295
24296         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
24297         back to using VIEW_CONVERT_EXPR.
24298
24299 2017-07-03  Martin Liska  <mliska@suse.cz>
24300
24301         PR other/78366
24302         * doc/extend.texi: Document when a resolver function is
24303         generated for target_clones.
24304
24305 2017-07-03  Martin Liska  <mliska@suse.cz>
24306
24307         * asan.c (asan_emit_stack_protection): Unpoison just red zones
24308         and shadow memory of auto variables which are subject of
24309         use-after-scope sanitization.
24310         (asan_expand_mark_ifn): Add do set only when is_poison.
24311
24312 2016-07-03  Richard Biener  <rguenther@suse.de>
24313
24314         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
24315         reduction PHIs.
24316         (vect_force_simple_reduction): Record reduction def -> phi mapping.
24317         (vectorizable_reduction): Perform reduction PHI creation when
24318         visiting a reduction PHI and adjust and simplify code generation
24319         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
24320         (vect_transform_loop): Visit reduction PHIs.
24321         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
24322         defs into the SLP tree.
24323         (vect_build_slp_tree): Reduction defs terminate the recursion.
24324         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
24325         of reduction defs.
24326         (vect_get_vec_defs_for_stmt_copy): Export.
24327         (vect_get_vec_defs): Likewise.
24328         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
24329         purpose.
24330         (vect_get_vec_defs_for_stmt_copy): Declare.
24331         (vect_get_vec_defs): Likewise.
24332
24333 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
24334
24335         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
24336         parameter with a "loop" parameter and use it instead of the
24337         loop containing DR_STMT.  Don't check simple_iv when doing
24338         BB analysis.  Describe the two analysis modes in the comment.
24339
24340 2017-07-03  Tom de Vries  <tom@codesourcery.com>
24341
24342         PR tree-optimization/69468
24343         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
24344         (find_same_succ_bb): Handle ignore_edge_flags.
24345
24346 2017-07-03  Tom de Vries  <tom@codesourcery.com>
24347
24348         PR tree-optimization/81192
24349         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
24350         hash.
24351         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
24352         differs.
24353         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
24354
24355 2017-07-03  Tom de Vries  <tom@codesourcery.com>
24356
24357         PR tree-optimization/81192
24358         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
24359         BB_SAME_SUCC (bb) == NULL.
24360
24361 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24362
24363         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
24364         consistency.
24365
24366 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24367
24368         * dumpfile.c: Include profile-count.h
24369         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
24370         update profile.
24371         (insert_cond_bb): Update profile.
24372         * tree-cfg.h (insert_cond_bb): Update prototype.
24373         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
24374         * tree-dump.c: Do not include tree-cfg.
24375
24376 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24377
24378         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
24379
24380 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24381
24382         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
24383         bb.
24384
24385 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
24386
24387         * tree-complex.c (expand_complex_div_wide): update profile.
24388
24389 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24390             Alan Hayward  <alan.hayward@arm.com>
24391             David Sherwood  <david.sherwood@arm.com>
24392
24393         * Makefile.in (MACHMODE_H): Remove insn-modes.h
24394         (CORETYPES_H): New define.
24395         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
24396         (insn-modes-inline.h, s-modes-inline-h): New rules.
24397         (generated_files): Add insn-modes-inline.h.
24398         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
24399         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
24400         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
24401         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
24402         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
24403         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
24404         (build/gencodes.o, build/genconditions.o): Likewise.
24405         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
24406         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
24407         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
24408         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
24409         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
24410         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
24411         * coretypes.h: Include everything up to real.h for generators.
24412         Include insn-modes.h first.  Include wide-int-print.h after
24413         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
24414         * machmode.h: Don't include insn-modes.h here.
24415         * function-tests.c: Remove includes of signop.h, machmode.h,
24416         double-int.h and wide-int.h.
24417         * rtl.h: Likewise.
24418         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
24419         and wide-int.h.
24420         * optc-save-gen.awk: Likewise.
24421         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
24422         * godump.c: Remove include of wide-int-print.h.
24423         * pretty-print.h: Likewise.
24424         * wide-int-print.cc: Likewise.
24425         * wide-int.cc: Likewise.
24426         * hash-map-tests.c: Remove include of signop.h.
24427         * hash-set-tests.c: Likewise.
24428         * rtl-tests.c: Likewise.
24429         * mkconfig.sh: Remove include of machmode.h.
24430         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
24431         into...
24432         (emit_insn_modes_inline_h): ...this new function.  Emit the code
24433         into an insn-modes-inline.h header file, adding appropriate
24434         include guards and end comments.
24435         (emit_insn_modes_c_header): Remove include of machmode.h.
24436         (emit_min_insn_modes_c_header): Include coretypes.h rather than
24437         machmode.h.
24438         (main): Handle -i flag and call emit_insn_modes_inline_h when
24439         it is passed.
24440
24441 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24442
24443         * tree-ssa-strlen.c (strinfo): Rename the length field to
24444         nonzero_chars.  Add a full_string_p field.
24445         (compare_nonzero_chars, zero_length_string_p): New functions.
24446         (get_addr_stridx): Add an offset_out parameter.
24447         Use compare_nonzero_chars.
24448         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
24449         (new_strinfo): Update after above changes to strinfo.
24450         (set_endptr_and_length): Set full_string_p.
24451         (get_string_length): Update after above changes to strinfo.
24452         (unshare_strinfo): Update call to new_strinfo.
24453         (maybe_invalidate): Likewise.
24454         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
24455         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
24456         as a uhwi instead of an shwi.  Update after above changes to
24457         strinfo and new_strinfo.
24458         (zero_length_string): Assert that chainsi contains full strings.
24459         Use zero_length_string_p.  Update call to new_strinfo.
24460         (adjust_related_strinfos): Update after above changes to strinfo.
24461         Copy full_string_p from origsi.
24462         (adjust_last_stmt): Use zero_length_string_p.
24463         (handle_builtin_strlen): Update after above changes to strinfo and
24464         new_strinfo.  Install the lhs as the string length if the previous
24465         entry didn't describe a full string.
24466         (handle_builtin_strchr): Update after above changes to strinfo
24467         and new_strinfo.
24468         (handle_builtin_strcpy): Likewise.
24469         (handle_builtin_strcat): Likewise.
24470         (handle_builtin_malloc): Likewise.
24471         (handle_pointer_plus): Likewise.
24472         (handle_builtin_memcpy): Likewise.  Track nonzero characters
24473         that aren't necessarily followed by a nul terminator.
24474         (handle_char_store): Likewise.
24475
24476 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24477
24478         PR tree-optimization/80769
24479         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
24480         for malloc and calloc.  Document the new invariant that all related
24481         strinfos have delayed lengths or none do.
24482         (verify_related_strinfos): Move earlier in file.
24483         (set_endptr_and_length): New function, split out from...
24484         (get_string_length): ...here.  Also set the lengths of related
24485         strinfos.
24486         (zero_length_string): Assert that chainsi has known (rather than
24487         delayed) lengths.
24488         (adjust_related_strinfos): Likewise.
24489
24490 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
24491
24492         PR tree-optimization/81136
24493         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
24494         assert that two references with the same misalignment have the same
24495         compile-time misalignment if those compile-time misalignments
24496         are known.
24497
24498 2017-07-01  Andi Kleen  <ak@linux.intel.com>
24499
24500         * print-tree.c (print_node): Print all attributes.
24501
24502 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24503
24504         * cfg.c (scale_bbs_frequencies): New function.
24505         * cfg.h (scale_bbs_frequencies): Declare it.
24506         * cfgloopanal.c (single_likely_exit): Cleanup.
24507         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
24508         as parameter.
24509         (scale_loop_profile): Likewise.
24510         (loop_version): Likewise.
24511         (create_empty_loop_on_edge): Update.
24512         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
24513         scale_loop_frequencies, scale_loop_profile, loopify,
24514         loop_version): Update prototypes.
24515         * modulo-sched.c (sms_schedule): Update.
24516         * predict.c (unlikely_executed_edge_p): Also check probability.
24517         (probably_never_executed_edge_p): Fix typo.
24518         * tree-if-conv.c (version_loop_for_if_conversion): Update.
24519         * tree-parloops.c (gen_parallel_loop): Update.
24520         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
24521         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
24522         * tree-ssa-loop-split.c (split_loop): Update.
24523         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
24524         * tree-vect-loop-manip.c (vect_do_peeling): Update.
24525         (vect_loop_versioning): Update.
24526         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
24527
24528 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24529
24530         * trans-mem.c (split_bb_make_tm_edge): Update profile.
24531
24532 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24533
24534         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
24535         to keep profile consistent.
24536
24537 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24538
24539         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
24540         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
24541         * profile-count.h (max_safe_multiplier): Make unsigned.
24542         (profile_count::guessed_zero): New.
24543
24544 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24545
24546         * bb-reorder.c (fix_up_crossing_landing_pad,
24547         fix_crossing_conditional_branches): Use make_single_succ_edge
24548         to keep profile consistent.
24549
24550 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
24551
24552         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
24553         to update profile.
24554
24555 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
24556
24557         PR sanitizer/81262
24558         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
24559         the right scopes, make sure cond_jump isn't preserved between multiple
24560         iterations.  Search for fallthru edge whenever there are 3+ edges and
24561         use find_fallthru_edge for it.
24562
24563 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
24564
24565         Patch by Alexander Monakov <amonakov@ispras.ru>
24566         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
24567         probabilities consistently.
24568
24569 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
24570
24571         * pa.c (pa_expand_compare_and_swap_loop): Update call of
24572         emit_cmp_and_jump_insns.
24573
24574 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
24575
24576         PR ipa/81261
24577         * tree-inline.c (expand_call_inline): Combine profile statuses.
24578
24579 2017-06-30  Andrew Pinski  <apinski@cavium.com>
24580
24581         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
24582         fold_stmt returned true.
24583
24584 2017-06-30  Nathan Sidwell  <nathan@acm.org>
24585
24586         * ggc.h (empty_string): Delete.
24587         * cfgexpand.c (expand_asm_stmt): Use plain "".
24588         * optabs.c (expand_asm_memory_barrier): Likewise.
24589         * stringpool.c (empty_string): Delete.
24590         (digit_vector, digit_string): Delete.
24591         (ggc_alloc_string): Use plain "", don't optimize single digit
24592         strings.  Use ggc_alloc_atomic.
24593
24594 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
24595
24596         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
24597         comparison set and one other set, use the cost of the non-comparison
24598         set.
24599
24600 2017-06-30  Nathan Sidwell  <nathan@acm.org>
24601
24602         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
24603         some formatting.
24604
24605 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
24606
24607         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
24608         loops.  Remove now unneeded calls to gimple_switch_set_label() that
24609         just set removed labels to NULL_TREE.
24610
24611 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
24612
24613         * tree-ssanames.c (set_range_info_raw): Abstract from ...
24614         (set_range_info): ...here.  Only call set_range_info_raw if domain
24615         is useful.
24616         (set_nonzero_bits): Call set_range_info_raw.
24617         * tree-ssanames.h (set_range_info_raw): New.
24618
24619 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
24620
24621         PR target/81225
24622         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
24623         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
24624         of nonimmediate_operand and <store_mask_constraint> instead of m
24625         for the input operand.  For V8FI iterator, always split if input
24626         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
24627         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
24628         <store_mask_predicate> instead of register_operand and
24629         <store_mask_constraint> instead of v for the input operand.  Make
24630         sure both operands aren't MEMs for if not <mask_applied>.
24631
24632 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
24633
24634         * lto-wrapper.c (copy_file) Close both file descriptors before
24635         exiting normally.
24636
24637 2017-06-30  Martin Liska  <mliska@suse.cz>
24638
24639         PR ipa/81214
24640         * multiple_target.c (create_dispatcher_calls): Make ifunc
24641         also for function that don't have calls or are not referenced.
24642
24643 2017-06-30  Richard Biener  <rguenther@suse.de>
24644
24645         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
24646         analyze the first scalar stmt.  Move vector type computation
24647         for the BB case here from ...
24648         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
24649         live operation processing in the SLP case properly.
24650
24651 2017-06-30  Richard Biener  <rguenther@suse.de>
24652
24653         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
24654
24655 2017-06-30  Martin Liska  <mliska@suse.cz>
24656
24657         PR sanitizer/81021
24658         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
24659         before BUILT_IN_UNWIND_RESUME when ASAN is used.
24660
24661 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
24662
24663         * doc/invoke.texi (AArch64): Add missing options and remove redundant
24664         ones.
24665
24666 2017-06-30  Richard Biener  <rguenther@suse.de>
24667
24668         PR tree-optimization/81249
24669         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
24670         condition reduction result to original scalar type.
24671
24672 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24673
24674         * profile-count.h (enum profile_quality): Fix typos and whitespace
24675         issues.
24676
24677 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24678
24679         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
24680         type for branch probabilities.
24681
24682 2017-06-29  Julian Brown  <julian@codesourcery.com>
24683             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
24684
24685         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
24686         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
24687         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
24688         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
24689
24690 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
24691
24692         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
24693         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
24694         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
24695         CC usage from generic code to here.
24696         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
24697         CC usage into the target macros.
24698
24699 2017-06-29  Maya Rashish  <coypu@sdf.org>
24700
24701         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
24702         objects.
24703
24704 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
24705
24706         * arm/arm-builtins.c: Include profile-count.h
24707         * except.c (sjlj_emit_function_enter): Use
24708         profile_probability::unlikely.
24709
24710 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
24711
24712         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
24713         and tocrel_offset be pointer args rather than implicitly using
24714         static versions.
24715         (legitimate_constant_pool_address_p, rs6000_emit_move,
24716         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
24717         tocrel_offset and use in toc_relative_expr_p call.
24718         (print_operand, print_operand_address): Use static tocrel_base_oac
24719         and tocrel_offset_oac.
24720         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
24721         tocrel_offset_oac.
24722
24723 2017-06-29  Maya Rashish  <coypu@sdf.org>
24724
24725         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
24726
24727 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
24728
24729         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
24730         objects, take into account only the alignment of 'op0' and 'mode1' if
24731         'op0' is a MEM.
24732
24733 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
24734
24735         * ccmp.c (ccmp_tree_comparison_p): New function.
24736         (ccmp_candidate_p): Update to use above function.
24737         (get_compare_parts): New function.
24738         (expand_ccmp_next): Update to use new functions.
24739         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
24740         new functions.
24741         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
24742         take mode as argument.
24743         * ccmp.h (expand_ccmp_expr): Add mode as argument.
24744         * expr.c (expand_expr_real_1): Pass mode as argument.
24745
24746 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
24747
24748         * combine.c (combine_instructions): Print insns to dump_file, together
24749         with their costs.
24750
24751 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
24752
24753         * asan.c (asan_emit_stack_protection): Update.
24754         (create_cond_insert_point): Update.
24755         * auto-profile.c (afdo_propagate_circuit): Update.
24756         * basic-block.h (struct edge_def): Turn probability to
24757         profile_probability.
24758         (EDGE_FREQUENCY): Update.
24759         * bb-reorder.c (find_traces_1_round): Update.
24760         (better_edge_p): Update.
24761         (sanitize_hot_paths): Update.
24762         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
24763         (make_single_succ_edge): Update.
24764         (check_bb_profile): Update.
24765         (dump_edge_info): Update.
24766         (update_bb_profile_for_threading): Update.
24767         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
24768         probabilitycount to 0.
24769         * cfgbuild.c (compute_outgoing_frequencies): Update.
24770         * cfgcleanup.c (try_forward_edges): Update.
24771         (outgoing_edges_match): Update.
24772         (try_crossjump_to_edge): Update.
24773         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
24774         (expand_gimple_tailcall): Update.
24775         (construct_init_block): Use make_single_succ_edge.
24776         (construct_exit_block): Use make_single_succ_edge.
24777         * cfghooks.c (verify_flow_info): Update.
24778         (redirect_edge_succ_nodup): Update.
24779         (split_edge): Update.
24780         (account_profile_record): Update.
24781         * cfgloopanal.c (single_likely_exit): Update.
24782         * cfgloopmanip.c (scale_loop_profile): Update.
24783         (set_zero_probability): Remove.
24784         (duplicate_loop_to_header_edge): Update.
24785         * cfgloopmanip.h (loop_version): Update prototype.
24786         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
24787         (force_nonfallthru_and_redirect): Update.
24788         (update_br_prob_note): Update.
24789         (rtl_verify_edges): Update.
24790         (purge_dead_edges): Update.
24791         (rtl_lv_add_condition_to_bb): Update.
24792         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
24793         * cgraphunit.c (init_lowered_empty_function): Update.
24794         (cgraph_node::expand_thunk): Update.
24795         * cilk-common.c: Include profile-count.h
24796         * dojump.c (inv): Remove.
24797         (jumpifnot): Update.
24798         (jumpifnot_1): Update.
24799         (do_jump_1): Update.
24800         (do_jump): Update.
24801         (do_jump_by_parts_greater_rtx): Update.
24802         (do_compare_rtx_and_jump): Update.
24803         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
24804         do_jump_1. do_compare_rtx_and_jump): Update prototype.
24805         * dwarf2cfi.c: Include profile-count.h
24806         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
24807         (sjlj_emit_dispatch_table): Likewise.
24808         * explow.c: Include profile-count.h
24809         * expmed.c (emit_store_flag_force): Update.
24810         (do_cmp_and_jump): Update.
24811         * expr.c (compare_by_pieces_d::generate): Update.
24812         (compare_by_pieces_d::finish_mode): Update.
24813         (emit_block_move_via_loop): Update.
24814         (store_expr_with_bounds): Update.
24815         (store_constructor): Update.
24816         (expand_expr_real_2): Update.
24817         (expand_expr_real_1): Update.
24818         * expr.h (try_casesi, try_tablejump): Update prototypes.
24819         * gimple-pretty-print.c (dump_probability): Update.
24820         (dump_profile): New.
24821         (dump_gimple_label): Update.
24822         (dump_gimple_bb_header): Update.
24823         * graph.c (draw_cfg_node_succ_edges): Update.
24824         * hsa-gen.c (convert_switch_statements): Update.
24825         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
24826         (find_if_case_1): Update.
24827         (find_if_case_2): Update.
24828         * internal-fn.c (expand_arith_overflow_result_store): Update.
24829         (expand_addsub_overflow): Update.
24830         (expand_neg_overflow): Update.
24831         (expand_mul_overflow): Update.
24832         (expand_vector_ubsan_overflow): Update.
24833         * ipa-cp.c (good_cloning_opportunity_p): Update.
24834         * ipa-split.c (split_function): Use make_single_succ_edge.
24835         * ipa-utils.c (ipa_merge_profiles): Update.
24836         * loop-doloop.c (add_test): Update.
24837         (doloop_modify): Update.
24838         * loop-unroll.c (compare_and_jump_seq): Update.
24839         (unroll_loop_runtime_iterations): Update.
24840         * lra-constraints.c (lra_inheritance): Update.
24841         * lto-streamer-in.c (input_cfg): Update.
24842         * lto-streamer-out.c (output_cfg): Update.
24843         * mcf.c (adjust_cfg_counts): Update.
24844         * modulo-sched.c (sms_schedule): Update.
24845         * omp-expand.c (expand_omp_for_init_counts): Update.
24846         (extract_omp_for_update_vars): Update.
24847         (expand_omp_ordered_sink): Update.
24848         (expand_omp_for_ordered_loops): Update.
24849         (expand_omp_for_generic): Update.
24850         (expand_omp_for_static_nochunk): Update.
24851         (expand_omp_for_static_chunk): Update.
24852         (expand_cilk_for): Update.
24853         (expand_omp_simd): Update.
24854         (expand_omp_taskloop_for_outer): Update.
24855         (expand_omp_taskloop_for_inner): Update.
24856         * omp-simd-clone.c (simd_clone_adjust): Update.
24857         * optabs.c (expand_doubleword_shift): Update.
24858         (expand_abs): Update.
24859         (emit_cmp_and_jump_insn_1): Update.
24860         (expand_compare_and_swap_loop): Update.
24861         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
24862         * predict.c (predictable_edge_p): Update.
24863         (edge_probability_reliable_p): Update.
24864         (set_even_probabilities): Update.
24865         (combine_predictions_for_insn): Update.
24866         (combine_predictions_for_bb): Update.
24867         (propagate_freq): Update.
24868         (estimate_bb_frequencies): Update.
24869         (force_edge_cold): Update.
24870         * profile-count.c (profile_count::dump): Add missing space into dump.
24871         (profile_count::debug): Add newline.
24872         (profile_count::differs_from_p): Explicitly convert to unsigned.
24873         (profile_count::stream_in): Update.
24874         (profile_probability::dump): New member function.
24875         (profile_probability::debug): New member function.
24876         (profile_probability::differs_from_p): New member function.
24877         (profile_probability::differs_lot_from_p): New member function.
24878         (profile_probability::stream_in): New member function.
24879         (profile_probability::stream_out): New member function.
24880         * profile-count.h (profile_count_quality): Rename to ...
24881         (profile_quality): ... this one.
24882         (profile_probability): New.
24883         (profile_count): Update.
24884         * profile.c (compute_branch_probabilities): Update.
24885         * recog.c (peep2_attempt): Update.
24886         * sched-ebb.c (schedule_ebbs): Update.
24887         * sched-rgn.c (find_single_block_region): Update.
24888         (compute_dom_prob_ps): Update.
24889         (schedule_region): Update.
24890         * sel-sched-ir.c (compute_succs_info): Update.
24891         * stmt.c (struct case_node): Update.
24892         (do_jump_if_equal): Update.
24893         (get_outgoing_edge_probs): Update.
24894         (conditional_probability): Update.
24895         (emit_case_dispatch_table): Update.
24896         (expand_case): Update.
24897         (expand_sjlj_dispatch_table): Update.
24898         (emit_case_nodes): Update.
24899         * targhooks.c: Update.
24900         * tracer.c (better_p): Update.
24901         (find_best_successor): Update.
24902         * trans-mem.c (expand_transaction): Update.
24903         * tree-call-cdce.c: Update.
24904         * tree-cfg.c (gimple_split_edge): Upate.
24905         (move_sese_region_to_fn): Upate.
24906         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
24907         * tree-eh.c (lower_resx): Upate.
24908         (cleanup_empty_eh_move_lp): Upate.
24909         * tree-if-conv.c (version_loop_for_if_conversion): Update.
24910         * tree-inline.c (copy_edges_for_bb): Update.
24911         (copy_cfg_body): Update.
24912         * tree-parloops.c (gen_parallel_loop): Update.
24913         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
24914         (gimple_gen_time_profiler): Update.
24915         * tree-ssa-dce.c (remove_dead_stmt): Update.
24916         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
24917         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
24918         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
24919         (unloop_loops): Update.
24920         (try_peel_loop): Update.
24921         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
24922         * tree-ssa-loop-split.c (connect_loops): Update.
24923         (split_loop): Update.
24924         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
24925         (hoist_guard): Update.
24926         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
24927         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
24928         (value_replacement): Update.
24929         * tree-ssa-reassoc.c (branch_fixup): Update.
24930         * tree-ssa-tail-merge.c (replace_block_by): Update.
24931         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
24932         (create_edge_and_update_destination_phis): Update.
24933         (compute_path_counts): Update.
24934         (recompute_probabilities): Update.
24935         (update_joiner_offpath_counts): Update.
24936         (freqs_to_counts_path): Update.
24937         (duplicate_thread_path): Update.
24938         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
24939         (struct switch_conv_info): Update.
24940         (gen_inbound_check): Update.
24941         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
24942         (vect_do_peeling): Update.
24943         (vect_loop_versioning): Update.
24944         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
24945         (optimize_mask_stores): Update.
24946         * ubsan.c (ubsan_expand_null_ifn): Update.
24947         * value-prof.c (gimple_divmod_fixed_value): Update.
24948         (gimple_divmod_fixed_value_transform): Update.
24949         (gimple_mod_pow2): Update.
24950         (gimple_mod_pow2_value_transform): Update.
24951         (gimple_mod_subtract): Update.
24952         (gimple_mod_subtract_transform): Update.
24953         (gimple_ic): Update.
24954         (gimple_stringop_fixed_value): Update.
24955         (gimple_stringops_transform): Update.
24956         * value-prof.h: Update.
24957
24958 2017-06-29  Carl Love  <cel@us.ibm.com>
24959
24960         * config/rs6000/rs6000-c.c: Add support for built-in functions
24961         vector signed int vec_signed (vector float);
24962         vector signed long long vec_signed (vector double);
24963         vector signed int vec_signed2 (vector double, vector double);
24964         vector signed int vec_signede (vector double);
24965         vector signed int vec_signedo (vector double);
24966         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
24967         instruction generator.
24968         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
24969         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
24970         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
24971         Add define_insn.
24972         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
24973         vunsignede_v2df): Add define_expands.
24974         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
24975         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
24976         VEC_UNSIGNEDO): Add definitions.
24977         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
24978         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
24979         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
24980         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
24981         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
24982         * config/rs6000/altivec.h (vec_signed, vec_signed2,
24983         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
24984         vec_unsignede, vec_unsignedo): Add builtin defines.
24985         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
24986         declaration.
24987         * doc/extend.texi: Update the built-in documentation file for the
24988         new built-in functions.
24989
24990 2017-06-29  Richard Biener  <rguenther@suse.de>
24991
24992         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
24993         reduction chains to LOOP_VINFO_REDUCTIONS.
24994         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
24995         SLP reductions after processing reduction chains.
24996
24997 2017-06-29  Nathan Sidwell  <nathan@acm.org>
24998
24999         * builtins.c (fold_builtin_FUNCTION): Use
25000         lang_hooks.decl_printable_name.
25001
25002 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
25003
25004         PR middle-end/81194
25005         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
25006         with only one label.
25007         * stmt.c (expand_case): Assert NCASES is greater than one.
25008
25009 2017-06-29  Richard Biener  <rguenther@suse.de>
25010
25011         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
25012         anything.
25013         (group_case_labels): Likewise.
25014         (find_taken_edge): Push sanity checking on val to workers...
25015         (find_taken_edge_cond_expr): ... here
25016         (find_taken_edge_switch_expr): ... and here, handle cases
25017         with just a default label.
25018         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
25019         (group_case_labels): Likewise.
25020         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
25021         group_case_labels does anything cleanup the CFG again.
25022
25023 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
25024
25025         PR tree-optimization/81196
25026         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
25027         exit condition comparing two IVs.
25028
25029 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
25030
25031         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
25032         profile to the dummy entry at the end of the list of architectures.
25033         * config/arm/arm-cpu-cdata.h: Regenerated.
25034
25035 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25036             Michael Collison <michael.collison@arm.com>
25037
25038         PR target/70119
25039         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
25040         New pattern.
25041         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
25042         (*aarch64_reg_<mode>3_minus_mask): New pattern.
25043         (*aarch64_<optab>_reg_di3_mask2): New pattern.
25044         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
25045         of shift when the shift amount is masked with constant equal to
25046         the size of the mode.
25047         * config/aarch64/predicates.md (subreg_lowpart_operator): New
25048         predicate.
25049
25050 2017-06-29  Martin Liska  <mliska@suse.cz>
25051
25052         * config/i386/i386.opt: Change range from [1,5] to [0,5].
25053
25054 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
25055
25056         PR bootstrap/80565
25057         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
25058         code.
25059         * ipa-inline.h
25060         (edge_growth_cache_entry::edge_growth_cache_entry): New
25061         function.
25062         (reset_edge_growth_cache): Update to use constructor.
25063
25064 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25065
25066         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
25067         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
25068         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
25069
25070 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
25071
25072         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
25073         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
25074
25075 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
25076
25077         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
25078         (*-linux-uclibc*): Add t-uclibc tmake_file.
25079         * config/t-musl: New.
25080         * config/t-uclibc: New.
25081
25082 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
25083
25084         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
25085         context.
25086         (gen_comm_data): Emit architectural setting of arch_prof.
25087         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
25088         profile.
25089         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
25090         (armv8-m.base, armv8-m.main): Likewise.
25091         * arm-protos.h (arm_build_target): Add profile field.
25092         (arch_option): Likewise.
25093         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
25094         the active target.
25095         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
25096         arm_active_target.profile.
25097
25098 2017-06-28  Richard Biener  <rguenther@suse.de>
25099
25100         PR middle-end/81227
25101         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
25102         TYPE_OVERFLOW_WRAPS.
25103         * match.pd (negate_expr_p): Likewise.
25104         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
25105         fold_build2, not fold_binary.
25106
25107 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
25108
25109         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
25110         Convert memory address to Pmode.
25111         (aarch64_print_operand): Assert MEM operands are always Pmode.
25112
25113 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
25114
25115         PR target/79665
25116         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
25117         Remove redundant if.
25118         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
25119         * config/arm/aarch-common-protos.h
25120         (aarch_forward_to_shift_is_not_shifted_re): Remove.
25121         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
25122
25123 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
25124
25125         PR ipa/81238
25126         * multiple_target.c (create_dispatcher_calls): Set the default
25127         clone to be static, not public.
25128
25129 2017-06-28  Richard Biener  <rguenther@suse.de>
25130
25131         * tree-vect-loop.c (vectorizable_reduction): Move special
25132         cond reduction IV var creation ...
25133         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
25134         parameter.  Use STMT_VINFO_VECTYPE.
25135         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
25136         constant_p.
25137
25138 2017-06-28  Martin Liska  <mliska@suse.cz>
25139
25140         PR ipa/81128
25141         * ipa-visibility.c (non_local_p): Handle visibility.
25142
25143 2017-06-28  Martin Liska  <mliska@suse.cz>
25144
25145         PR driver/79659
25146         * common.opt: Add IntegerRange to various options.
25147         * opt-functions.awk (integer_range_info): New function.
25148         * optc-gen.awk: Add integer_range_info to cl_options struct.
25149         * opts-common.c (decode_cmdline_option): Handle
25150         CL_ERR_INT_RANGE_ARG.
25151         (cmdline_handle_error): Likewise.
25152         * opts.c (print_filtered_help): Show valid interval in
25153         when --help is provided.
25154         * opts.h (struct cl_option): Add range_min and range_max fields.
25155         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
25156
25157 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
25158
25159         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
25160         (x * C EQ/NE y * C): New transformation.
25161
25162 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
25163
25164         * genmultilib (combination_space): Accept '+' in option names.
25165
25166 2017-06-28  Martin Liska  <mliska@suse.cz>
25167
25168         PR sanitizer/81224
25169         * asan.c (instrument_derefs): Bail out inner references
25170         that are hard register variables.
25171
25172 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
25173
25174         PR target/81175
25175         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
25176         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
25177
25178 2017-06-28  Richard Biener  <rguenther@suse.de>
25179
25180         * tree-vectorizer.h (vect_get_vec_defs): Remove.
25181         (vect_get_slp_defs): Adjust.
25182         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
25183         out from ...
25184         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
25185         simplify.
25186         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
25187         get_initial_defs_for_reduction instead of vect_get_vec_defs.
25188         (vectorizable_reduction): Adjust.
25189         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
25190         handling.
25191         (vect_get_slp_defs): Likewise.
25192         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
25193         (vectorizable_bswap): Adjust.
25194         (vectorizable_call): Likewise.
25195         (vectorizable_conversion): Likewise.
25196         (vectorizable_assignment): Likewise.
25197         (vectorizable_shift): Likewise.
25198         (vectorizable_operation): Likewise.
25199         (vectorizable_store): Likewise.
25200         (vectorizable_condition): Likewise.
25201         (vectorizable_comparison): Likewise.
25202
25203 2017-06-28  Michael Collison  <michael.collison@arm.com>
25204
25205         PR target/68535
25206         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
25207         set of base_reg
25208         (arm_gen_movmemqi): Removed unused variable 'i'.
25209         Convert 'for' loop into 'while' loop.
25210         (arm_expand_prologue): Remove last unnecessary set of insn.
25211         (thumb_pop): Remove unused variable 'pushed_words'.
25212         (thumb_exit): Remove last unnecessary set of regs_to_pop.
25213
25214 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25215
25216         * config/s390/predicates.md: Use s390_rel_address_ok_p.
25217         * config/s390/s390-protos.h: Add prototype of
25218         s390_rel_address_ok_p.
25219         * config/s390/s390.c (s390_got_symbol): New function.
25220         (s390_rel_address_ok_p): New function.
25221         (legitimize_pic_address): Use s390_rel_address_ok_p.
25222         (s390_load_got): Use s390_got_symbol.
25223         (s390_option_override): Issue error if
25224         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
25225         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
25226         New macro.
25227         * config/s390/s390.opt: New option mpic-data-is-text-relative.
25228
25229 2017-06-27  Andrew Pinski  <apinski@cavium.com>
25230
25231         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
25232         (X * copysign (1.0, X)): New pattern.
25233         (X * copysign (1.0, -X)): New pattern.
25234         (copysign (-1.0, CST)): New pattern.
25235
25236 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
25237
25238         * genmultilib (combination_space): Remove variable.
25239         Validate reuse rules against regular expression for any sequence
25240         of multilib options in any order.
25241
25242 2017-06-27  Michael Collison  <michael.collison@arm.com>
25243
25244         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
25245         call aarch64_split_simd_combine.
25246         * (aarch64_combine_internal<mode>): Delete pattern.
25247         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
25248         Allow register and subreg operands.
25249
25250 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25251
25252         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
25253         specific need, just fallback on defaults.
25254         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
25255
25256 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25257             Olivier Hainque  <hainque@adacore.com>
25258
25259         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
25260         map for 64bits.
25261         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
25262         targets. Pick a default if no particular attempt applied.
25263         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
25264         larger contexts.
25265
25266 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25267
25268         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
25269         (x86_64-wrs-vxworks7): Likewise.
25270
25271 2017-06-27  Marek Polacek  <polacek@redhat.com>
25272
25273         PR sanitizer/81223
25274         * ubsan.c (instrument_null): Check get_base_address's result for null.
25275
25276 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
25277
25278         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
25279
25280 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
25281
25282         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
25283         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
25284         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
25285         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
25286         New function types.
25287         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
25288         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
25289         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
25290         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
25291         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
25292         BUILT_IN_FEUPDATEENV): New builtins.
25293         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
25294         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
25295         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
25296         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
25297         macros.
25298         (builtin_structptr_types): Adjust size.
25299         * tree.c (builtin_structptr_types): Add four entries.
25300
25301 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25302             Olivier Hainque  <hainque@adacore.com>
25303
25304         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
25305         (TLS_SYM): New local macro, forcing reference to __tls__ on
25306         link command lines for VxWorks 7 RTPs, triggering initialization
25307         of tlsLib.
25308         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
25309         OS features TLS support, true for RTPs on VxWorks 7.
25310         * config/vxworks.c (vxworks_override_options): Setup emutls
25311         accordingly.
25312
25313 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
25314
25315         * predict.c (test_prediction_value_range): Use -1U instead of -1
25316         to avoid narrowing conversion warning.
25317         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
25318         to avoid narrowing conversion warning.
25319         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
25320         -1.
25321         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
25322
25323 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
25324
25325         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
25326         64bit configurations.
25327         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
25328         (SIZE_TYPE): Likewise.
25329         * config/vxworks.c (vxworks_emutls_var_fields): Use
25330         long_unsigned_type_node instead of unsigned_type_node as the offset
25331         field type, which is "pointer" mode in emutls.c.
25332
25333 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
25334
25335         PR sanitizer/81209
25336         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
25337
25338         PR middle-end/81207
25339         * gimple-fold.c (replace_call_with_call_and_fold): Handle
25340         gimple_vuse copying separately from gimple_vdef copying.
25341
25342 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
25343
25344         * value-prof.c (free_hist): Remove call to memset and the enclosing if
25345         condition.
25346
25347 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
25348             Olivier Hainque  <hainque@adacore.com>
25349
25350         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
25351         for all vxworks7 targets.
25352         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
25353         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
25354         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
25355         variations for VX6/VX7 and 32/64bits later on in ...
25356         (VXWORKS_LIB_SPEC): Leverage new macros.
25357         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
25358         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
25359
25360 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
25361
25362         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
25363         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
25364
25365 2017-06-26  Carl Love  <cel@us.ibm.com>
25366
25367         * config/rs6000/rs6000-c.c: Add support for built-in functions
25368         vector bool char vec_reve (vector bool char);
25369         vector signed char vec_reve (vector signed char);
25370         vector unsigned char vec_reve (vector unsigned char);
25371         vector bool int vec_reve (vector bool int);
25372         vector signed int vec_reve (vector signed int);
25373         vector unsigned int vec_reve (vector unsigned int);
25374         vector bool long long vec_reve (vector bool long long);
25375         vector signed long long vec_reve (vector signed long long);
25376         vector unsigned long long vec_reve (vector unsigned long long);
25377         vector bool short vec_reve (vector bool short);
25378         vector signed short vec_reve (vector signed short);
25379         vector double vec_reve (vector double);
25380         vector float vec_reve (vector float);
25381         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
25382         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
25383         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
25384         (altivec_vreve): New pattern.
25385         * config/rs6000/altivec.h (vec_reve): New define.
25386         * doc/extend.texi (vec_rev): Update the built-in documentation file
25387         for the new built-in functions.
25388
25389 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25390
25391         PR tree-optimization/71815
25392         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
25393         function.
25394         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
25395         has_single_use.
25396         (slsr_process_phi): Likewise.
25397         (replace_uncond_cands_and_profitable_phis): Don't replace a
25398         multiply candidate with a stride of 1 (copy or cast).
25399         (phi_incr_cost): Call uses_consumed_by_stmt rather than
25400         has_single_use.
25401         (lowest_cost_path): Likewise.
25402         (total_savings): Likewise.
25403
25404 2017-06-26  Richard Biener  <rguenther@suse.de>
25405
25406         PR target/81175
25407         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
25408         Use def_builtin_pure for all gather builtins.
25409
25410 2017-06-26  Richard Biener  <rguenther@suse.de>
25411
25412         PR tree-optimization/81203
25413         * tree-tailcall.c (find_tail_calls): Do not move stmts into
25414         non-dominating BBs.
25415
25416 2017-06-26  Marek Polacek  <polacek@redhat.com>
25417
25418         PR c/80116
25419         * doc/invoke.texi: Document -Wmultistatement-macros.
25420
25421 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
25422
25423         * doc/sourcebuild.texi (ARM-specific attributes): Document new
25424         arm_neon_ok_no_float_abi effective target.
25425
25426 2017-06-26  Richard Biener  <rguenther@suse.de>
25427
25428         PR tree-optimization/80928
25429         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
25430         (copy_bbs): Set BB_DUPLICATED flag early.
25431         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
25432         marked blocks.
25433         (execute_on_shrinking_pred): Likewise.
25434         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
25435         BB_DUPLICATED blocks.
25436         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
25437         iterate over all PHIs considering removal of *gsi.
25438
25439 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
25440
25441         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
25442         qdf24xx.
25443
25444 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25445
25446         * config/rs6000/rs6000-string.c: (expand_block_clear,
25447         do_load_for_compare, select_block_compare_mode,
25448         compute_current_alignment, expand_block_compare,
25449         expand_strncmp_align_check, expand_strn_compare,
25450         expand_block_move, rs6000_output_load_multiple)
25451         Move functions related to string/block move/compare
25452         to a separate file.
25453         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
25454         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
25455         for this function which is now used in two files.
25456         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
25457         * config.gcc: Add rs6000-string.o to extra_objs for
25458         targets powerpc*-*-* and rs6000*-*-*.
25459
25460 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
25461
25462         PR target/80510
25463         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
25464         32-bit, since indexed is not valid for DImode.
25465         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
25466         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
25467         (define_peephole2 for Altivec d-form load): Add 32-bit support.
25468         (define_peephole2 for Altivec d-form store): Likewise.
25469
25470         PR ipa/81185
25471         * multiple_target.c (create_dispatcher_calls): Only create the
25472         dispatcher call if the function is the default clone of a
25473         versioned function.
25474
25475 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
25476
25477         PR middle-end/80902
25478         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
25479         a call, force the call to not be a tail call.
25480
25481 2017-06-23  Jeff Law  <law@redhat.com>
25482
25483         * doc/contrib.texi: Add entry for Steven Pemberton's work on
25484         enquire.
25485
25486 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
25487
25488         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
25489         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
25490         handling for early expansion of vector shifts (sl,sr,sra,rl).
25491         (builtin_function_type): Add vector shift right instructions
25492         to the unsigned argument list.
25493
25494 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
25495
25496         rtl-optimizatoin/79286
25497         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
25498         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
25499         trap.  PIC register plus a const unspec without offset can never trap.
25500
25501 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
25502
25503         * tree.h (builtin_structptr_type): New type.
25504         (builtin_structptr_types): Declare new array.
25505         * tree.c (builtin_structptr_types): New array.
25506         (free_lang_data, build_common_tree_nodes): Use it.
25507
25508 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
25509
25510         PR c++/81187
25511         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
25512         -Wnoexcept.
25513
25514 2017-06-22  Matt Turner  <mattst88@gmail.com>
25515
25516         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
25517         Lake models to skylake case.  Assume skylake for unknown
25518         models with clflushopt.
25519
25520 2017-06-22  Jeff Law  <law@redhat.com>
25521
25522         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
25523         frame sizes that do not satisfy aarch64_uimm12_shift.
25524
25525 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
25526
25527         * profile-count.h (apply_probability,
25528         apply_scale, probability_in): Fix checks for zero.
25529
25530 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25531
25532         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
25533         * doc/cppdiropts.texi (-I @var{dir}): Document it.
25534
25535 2016-06-22  Richard Biener  <rguenther@suse.de>
25536
25537         * tree-vect-loop.c (vect_model_reduction_cost): Handle
25538         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
25539         REDUC_MAX_EXPR support.
25540         (vectorizable_reduction): Likewise.
25541         (vect_create_epilog_for_reduction): Likewise.
25542
25543 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
25544
25545         * match.pd (A / (1 << B) -> A >> B): New.
25546         * generic-match-head.c: Include optabs-tree.h.
25547         * gimple-match-head.c: Likewise.
25548         * optabs-tree.h (target_supports_op_p): New.
25549         * optabs-tree.c (target_supports_op_p): New.
25550
25551 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25552
25553         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
25554         $gcc_cv_ld --help output.
25555         (gcc_cv_ld_demangle): Likewise.
25556         (gcc_cv_ld_eh_frame_hdr): Likewise.
25557         (gcc_cv_ld_pie): Likewise.
25558         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
25559         (gcc_cv_ld_buildid): Likewise.
25560         (gcc_cv_ld_sysroot): Likewise.
25561         (ld_bndplt_support): Likewise.
25562         (ld_pushpopstate_support): Likewise.
25563         * configure: Regenerate.
25564         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
25565
25566 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
25567
25568         PR target/81151
25569         * config/i386/sse.md (round<mode>2): Renumber match_dup and
25570         operands indexes to avoid gap between operands and match_dups.
25571
25572 2017-06-21  Andrew Pinski  <apinski@cavium.com>
25573
25574         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
25575         Increment Arith_shift and Arith_shift_reg by 1.
25576         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
25577         New tuning flag.
25578         * config/aarch64/aarch64.c (thunderx_tunings): Enable
25579         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
25580         (aarch64_strip_extend): Add new argument and test for it.
25581         (aarch64_cheap_mult_shift_p): New function.
25582         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
25583         add a cost if it is true.
25584         Update calls to aarch64_strip_extend.
25585         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
25586
25587 2017-06-21  Andrew Pinski  <apinski@cavium.com>
25588
25589         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
25590         tunings.
25591         (thunderxt88): Likewise.
25592         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
25593         (thunderx_prefetch_tune): New variable.
25594         (thunderx2t99_prefetch_tune): Update for the correct values.
25595         (thunderxt88_tunings): New variable.
25596         (thunderx_tunings): Use thunderx_prefetch_tune instead of
25597         generic_prefetch_tune.
25598         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
25599
25600 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25601
25602         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
25603         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
25604         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
25605         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
25606         (aarch64_atomic_cas<mode>, GPI): Likewise.
25607
25608 2017-06-21  Martin Liska  <mliska@suse.cz>
25609
25610         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
25611         statements on cold and hot labels.
25612         * predict.c (tree_estimate_probability_bb): Remove the
25613         prediction from this place.
25614
25615 2017-06-21  Martin Liska  <mliska@suse.cz>
25616
25617         PR tree-optimization/79489
25618         * gimplify.c (maybe_add_early_return_predict_stmt): New
25619         function.
25620         (gimplify_return_expr): Call the function.
25621         * predict.c (tree_estimate_probability_bb): Remove handling
25622         of early return.
25623         * predict.def: Update comment about early return predictor.
25624         * gimple-predict.h (is_gimple_predict): New function.
25625         * predict.def: Change default value of early return to 66.
25626         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
25627         statements.
25628         * passes.def: Put pass_strip_predict_hints to the beginning of
25629         IPA passes.
25630
25631 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
25632
25633         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
25634         FUNCTION_DECL declarations.
25635         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
25636         declarations.
25637         (dwaf2out_decl): Likewise.
25638         * godump.c (go_early_global_decl): Skip call to the real debug hook
25639         for FUNCTION_DECL declarations.
25640         * passes.c (rest_of_decl_compilation): Skip call to the
25641         early_global_decl debug hook for FUNCTION_DECL declarations, unless
25642         -fdump-go-spec is passed.
25643
25644 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
25645
25646         * config/i386/i386.c (struct builtin_isa): New field pure_p.
25647         Reorder for compactness.
25648         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
25649         (def_builtin_pure, def_builtin_pure2): New functions.
25650         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
25651
25652 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
25653
25654         * match.pd (nop_convert): New predicate.
25655         ((A +- CST1) +- CST2): Allow some NOP conversions.
25656
25657 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
25658
25659         PR c++/81130
25660         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
25661         with ctors/dtors if GOVD_SHARED is set.
25662
25663 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
25664
25665         * config/aarch64/aarch64.md (movti_aarch64):
25666         Emit mov rather than orr.
25667         (movtf_aarch64): Likewise.
25668         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
25669         Emit mov rather than orr.
25670
25671 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
25672
25673         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
25674         Swap alternatives, make integer dup more expensive.
25675
25676 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
25677
25678         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
25679         Return true for non-tls symbols.
25680
25681 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
25682
25683         * config/aarch64/aarch64-cores.def (cortex-a55): New.
25684         (cortex-a75): Likewise.
25685         (cortex-a75.cortex-a55): Likewise.
25686         * config/aarch64/aarch64-tune.md: Regenerate.
25687         * doc/invoke.texi (-mtune): Document new values for -mtune.
25688
25689 2017-06-21  Tom de Vries  <tom@codesourcery.com>
25690
25691         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
25692         stack_size feature.
25693         (Effective-Target Keywords, Other attributes): Suggest using
25694         dg-add-options stack_size feature to get stack limit in stack_size
25695         effective target documentation.
25696
25697 2017-06-21  Julian Brown  <julian@codesourcery.com>
25698             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25699
25700         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
25701         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
25702         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
25703         reservation.
25704         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
25705         attribute type list for neon_multiply.
25706         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
25707         attribute type list for neon_multiply.
25708         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
25709         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
25710         attribute type list for neon_multiply.
25711         * config/arm/types.md (crypto_pmull): Add.
25712         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
25713         attribute type list.
25714
25715 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
25716
25717         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
25718         arm1176jzf-s.
25719
25720 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
25721
25722         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
25723         to make sure not to dereference a NULL cost_classes_ptr pointer.
25724
25725 2017-06-20  Carl Love  <cel@us.ibm.com>
25726
25727         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25728         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
25729         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
25730         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
25731         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
25732         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
25733         VMULOSW): New enum "unspec" values.
25734         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
25735         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
25736         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
25737         altivec_vmulosw): New patterns.
25738         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
25739         VMULOSW): Add definitions.
25740
25741 2017-06-20  Julia Koval  <julia.koval@intel.com>
25742
25743         * config/i386/i386.c: Fix rounding expand for new pattern.
25744         * config/i386/subst.md: Fix pattern (parallel -> unspec).
25745
25746 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
25747
25748         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
25749         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
25750
25751 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
25752
25753         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
25754         feature string.
25755
25756 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
25757
25758         * config/aarch64/aarch64-cores.def: Rearrange to sort by
25759         architecture, then by implementer ID.
25760         * config/aarch64/aarch64-tune.md: Regenerate.
25761
25762 2017-06-20  Richard Biener  <rguenther@suse.de>
25763
25764         PR middle-end/81097
25765         * fold-const.c (split_tree): Fold to type before negating.
25766
25767 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
25768
25769         * diagnostic-show-locus.c
25770         (selftest::test_fixit_deletion_affecting_newline): New function.
25771         (selftest::diagnostic_show_locus_c_tests): Call it.
25772
25773 2017-06-20  Andreas Schwab  <schwab@suse.de>
25774
25775         PR target/80970
25776         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
25777         instead of "+d".
25778
25779 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
25780
25781         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
25782         __ARM_FEATURE_COPROC according to support.
25783
25784 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
25785
25786         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
25787         Rewritten to avoid overflow for > 32-bit pointers.
25788
25789         PR sanitizer/81125
25790         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
25791         by removing enum keyword.
25792         (ubsan_type_descriptor): Likewise.  Formatting fix.
25793
25794         PR target/81121
25795         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
25796         splitter): Require TARGET_SSE2 in the condition.
25797
25798 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
25799
25800         PR target/79799
25801         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
25802         for doing vector set of SFmode on ISA 3.0.
25803         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
25804         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
25805         element.
25806         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
25807         SFmode value into a V4SF variable that was extracted from another
25808         V4SF variable without converting the element to double precision
25809         and back to single precision vector format.
25810         (vsx_insert_extract_v4sf_p9_2): Likewise.
25811
25812 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
25813
25814         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
25815         in UWHI to avoid undefined overflow.
25816
25817         PR sanitizer/81125
25818         * ubsan.h (enum ubsan_encode_value_phase): New.
25819         (ubsan_encode_value): Change second argument to
25820         enum ubsan_encode_value_phase with default value of
25821         UBSAN_ENCODE_VALUE_GENERIC.
25822         * ubsan.c (ubsan_encode_value): Change second argument to
25823         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
25824         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
25825         create_tmp_var_raw instead of create_tmp_var and use a
25826         TARGET_EXPR.
25827         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
25828         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
25829         ubsan_encode_value callers.
25830
25831         PR sanitizer/81111
25832         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
25833         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
25834         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
25835
25836 2017-06-19  Richard Biener  <rguenther@suse.de>
25837
25838         PR middle-end/81118
25839         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
25840         estimates if we changed anything.
25841
25842 2017-06-19  Richard Biener  <rguenther@suse.de>
25843
25844         PR tree-optimization/80887
25845         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
25846         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
25847         simplified lookups, then reset mprts_hook.
25848         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
25849         simplifying.
25850         (try_to_simplify): Likewise.
25851
25852 2017-06-19  Martin Liska  <mliska@suse.cz>
25853
25854         PR sanitizer/80879
25855         * gimplify.c (gimplify_switch_expr):
25856         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
25857
25858 2017-06-19  Martin Liska  <mliska@suse.cz>
25859
25860         * doc/install.texi: Document that PGO runs in 4 stages.
25861
25862 2017-06-19  Martin Liska  <mliska@suse.cz>
25863
25864         PR ipa/80732
25865         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
25866         to dispatcher function name.
25867         * multiple_target.c (replace_function_decl): New function.
25868         (create_dispatcher_calls): Redirect both edges and references.
25869
25870 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
25871
25872         * profile-count.c (profile_count::dump): Dump quality.
25873         (profile_count::differs_from_p): Update for unsigned val.
25874         * profile-count.h (profile_count_quality): New enum.
25875         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
25876
25877 2017-06-19  Richard Biener  <rguenther@suse.de>
25878
25879         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
25880         struct function as arg.
25881         (estimate_numbers_of_iterations): Export overload with loop arg.
25882         (free_numbers_of_iterations_estimates_loop): Use an overload of
25883         free_numbers_of_iterations_estimates instead.
25884         * tree-cfg.c (remove_bb): Adjust.
25885         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
25886         * tree-parloops.c (gen_parallel_loop): Likewise.
25887         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
25888         Likewise.
25889         (tree_unroll_loops_completely): Likewise.
25890         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
25891         Use an overload instead and export.
25892         (estimated_loop_iterations): Adjust.
25893         (max_loop_iterations): Likewise.
25894         (likely_max_loop_iterations): Likewise.
25895         (estimate_numbers_of_iterations): Take struct function as arg
25896         and adjust.
25897         (loop_exits_before_overflow): Adjust.
25898         (free_numbers_of_iterations_estimates_loop): Use an overload.
25899         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
25900         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
25901
25902 2017-06-19  Richard Biener  <rguenther@suse.de>
25903
25904         PR ipa/81112
25905         * ipa-prop.c (find_constructor_constant_at_offset): Handle
25906         RANGE_EXPR conservatively.
25907
25908 2017-06-16  Carl Love  <cel@us.ibm.com>
25909
25910         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25911         definitions for vec_float, vec_float2, vec_floato,
25912         vec_floate built-ins.
25913         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
25914         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
25915         floate.
25916         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
25917         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
25918         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
25919         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
25920         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
25921         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
25922         vec_floato): Add builtin defines.
25923         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
25924         Update the built-in documentation file for the new built-in
25925         functions.
25926
25927 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25928
25929         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
25930         (mthumb): Mark as the negative of -marm.
25931
25932 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25933
25934         * doc/invoke.texi (ARM Options, -mcpu): Document supported
25935         extension options.
25936         (ARM Options, -mtune): Document that this accepts the same
25937         extension options as -mcpu.
25938         (ARM Options, -mfpu): Document addition of -mfpu=auto.
25939
25940 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25941
25942         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
25943         permitted extensions.
25944
25945 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25946
25947         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
25948         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
25949         (armv8-m.main): Add option +nodsp.
25950         * config/arm/arm-cpu-cdata.h: Regenerated.
25951
25952 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25953
25954         * config/arm/t-fuchsia: New file.
25955         * config.gcc (arm*-*-fuchsia*): Use it.
25956
25957 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25958
25959         * config/arm/t-symbian: Rewrite for new option infrastructure.
25960
25961 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25962
25963         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
25964         (MULTILIB_REQUIRED): Likewise.
25965
25966 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25967
25968         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
25969         (MULTILIB_RESUE): Likewise.
25970         (MULTILIB_MATCHES): Likewise.
25971         (MULTLIB_REQUIRED): Likewise.
25972
25973 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25974
25975         * config/arm/t-rtems: Rewrite for new option framework.
25976
25977 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25978
25979         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
25980         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
25981         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
25982         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
25983         * config/arm/t-multilib: ... here.
25984         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
25985         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
25986         armv7-a and armv8*-a when A-profile libraries have not been built.
25987         * config/arm/t-rmprofile: Rewrite.
25988
25989 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25990
25991         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
25992         with a backslash.  Remove the backslash after substituting unescaped
25993         periods.
25994         * doc/fragments.texi (MULTILIB_REUSE): Document it.
25995
25996 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
25997
25998         * config.gcc: (arm*-*-*): When building a-profile libraries, force
25999         the driver to pass through the default setting of -mfloat-abi.
26000         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
26001         rather than NULL.
26002         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
26003         (all_feat_combs): New rule.
26004         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
26005         default libraries.
26006         * config/arm/t-aprofile: Rewrite.
26007
26008 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26009
26010         * config/arm/arm.h (FPUTYPE_AUTO): Define.
26011         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
26012         fpu is not specified by the user/command-line.
26013         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
26014         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
26015         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
26016         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
26017         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
26018         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
26019
26020 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26021
26022         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
26023         * config/arm/t-arm-elf: Rewritten.
26024
26025 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26026
26027         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
26028         have some floating-point instructions.
26029         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
26030         (TARGET_MAYBE_HARD_FLOAT): New macro.
26031         * config/arm/arm-builtins.c (arm_init_builtins): Use
26032         TARGET_MAYBE_HARD_FLOAT.
26033         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
26034
26035 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26036
26037         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
26038         (configargs.h): Include it.
26039         (arm_print_hint_for_fpu_option): New function.
26040         (arm_parse_fpu_option): New function.
26041         (candidate_extension): New class.
26042         (arm_canon_for_multilib): New function.
26043         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
26044         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
26045         (ARCH_CANONICAL_SPECS): New macro.
26046         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
26047
26048 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26049
26050         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
26051         are set after handling multilib fragments.  Set target_cpu_default2
26052         from with_cpu.
26053
26054 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26055
26056         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
26057         cpu name.
26058         (arm*-*-*): Set target_cpu_default2 to a quoted string.
26059         * config/arm/parsecpu.awk (check_cpu): Validate any extension
26060         options.
26061         (check_arch): Likewise.
26062         * config/arm/arm.c (arm_configure_build_target): Handle
26063         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
26064         options in the default.
26065
26066 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26067
26068         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
26069         when an option is an alias of another.
26070         * config/arm/parsecpu.awk (optalias): New parser token.
26071         (gen_comm_data): Mark non-alias options as such.  Emit entries
26072         for extension aliases.
26073         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
26074         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
26075         (armv6kz, armv6zk, armv6t2): Likewise.
26076         (armv7): Make vfpv3-d16 an alias.
26077         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
26078         canonical order.
26079         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
26080         Sort in canonical order.
26081         (armv8-a): Sort in canonical order.
26082         (armv8.1-a, armv8.2-a):  Likewise.
26083         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
26084         canonical order.
26085         (cortex-a9): Sort in canonical order.
26086         * config/arm/arm.c (selftests.h): Include it.
26087         (arm_test_cpu_arch_data): New function.
26088         (arm_run_self_tests): New function.
26089         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
26090         (targetm): Move declaration to the end of the file.
26091         * arm-cpu-cdata.h: Regenerated.
26092
26093 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26094
26095         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
26096         call to target_mode_check describing the type of option passed.
26097         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
26098         (arm_target_thumb_only): Use arm_parse_arch_option_name or
26099         arm_parse_cpu_option_name to match parameters against list of
26100         available targets.
26101         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
26102         arm_arch_core_flags data structure.
26103         * config/arm/arm-cpu_cdata.h: Regenerated.
26104
26105 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26106
26107         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
26108         config/arm/arm.c.
26109         (arm_print_hint_for_cpu_option): Likewise.
26110         (arm_print_hint_for_arch_option): Likewise.
26111         (arm_parse_cpu_option_name): Likewise.
26112         (arm_parse_arch_option_name): Likewise.
26113         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
26114         of entries in the all_fpus list.
26115         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
26116         (arm_parse_cpu_option_name): Declare.
26117         (arm_parse_arch_option_name): Declare.
26118         (arm_parse_option_features): Declare.
26119         (arm_intialize_isa): Declare.
26120         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
26121         data tables to ...
26122         (gen_comm_data): ... here.  Make definitions non-static.
26123         * config/arm/arm-cpu-data.h: Regenerated.
26124         * config/arm/arm-cpu-cdata.h: Regenerated.
26125
26126 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26127
26128         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
26129         (cpu_arch_extension): New structure.
26130         (cpu_arch_option, arch_option, cpu_option): New structures.
26131         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
26132         architecture types.
26133         (gen_data): Generate new format data tables.
26134         * config/arm/arm.c (cpu_tune): New structure.
26135         (cpu_option, processors): Delete.
26136         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
26137         (arm_print_hint_for_cpu_option): ... this and ...
26138         (arm_print_hint_for_arch_option): ... this.
26139         (arm_parse_arch_cpu_name): Delete.  Replace with ...
26140         (arm_parse_cpu_option_name): ... this and ...
26141         (arm_parse_arch_option_name): ... this.
26142         (arm_unrecognized_feature): Change type of target parameter to
26143         cpu_arch_option.
26144         (arm_parse_arch_cpu_features): Delete.  Replace with ...
26145         (arm_parse_option_features): ... this.
26146         (arm_configure_build_target): Rework to use new configuration data
26147         tables.
26148         (arm_print_tune_info): Rework for new configuration data tables.
26149         * config/arm/arm-cpu-data.h: Regenerated.
26150         * config/arm/arm-cpu.h: Regenerated.
26151
26152 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26153
26154         * Makefile.in (OBJS): Move sbitmap.o from here ...
26155         (OBJS-libcommon): ... to here.
26156
26157 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26158
26159         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
26160         (ISA_ALL_CRYPTO): New macro.
26161         (ISA_ALL_SIMD): New macro
26162         (ISA_ALL_FP): New macro.
26163         * config/arm/arm.c (fpu_bitlist): Update initializer.
26164         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
26165         simd or fp.
26166         (arm9e): Add fpu.  Add option for nofp
26167         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
26168         (arm926ej-s, arm1026ej-s): Likewise.
26169         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
26170         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
26171         neon-fp16, neon-vfpv4, nofp and nosimd.
26172         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
26173         (cortex-a8): Add fpu.  Add option for nofp.
26174         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
26175         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
26176         (cortex-r4f): Add fpu.
26177         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
26178         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
26179         for nofp.
26180         (cortex-r8): Likewise.
26181         (cortex-m4): Add fpu.  Add option for nofp.
26182         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
26183         (cortex-a17.cortex-a7): Likewise.
26184         (cortex-a32): Add fpu.  Add options for crypto and nofp.
26185         (cortex-a35, cortex-a53): Likewise.
26186         (cortex-a57): Add fpu.  Add option for crypto.
26187         (cortex-a72, cortex-a73): Likewise.
26188         (exynos-m1): Likewise.
26189         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
26190         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
26191         (cortex-m33): Add fpu.  Add option for nofp.
26192         * config/arm/arm-cpu-cdata.h: Regenerated
26193         * config/arm/arm-cpu-data.h: Regenerated.
26194
26195 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26196
26197         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
26198         (armv5te, armv5tej): Likewise.
26199         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
26200         (armv7): Add options fp and vfpv3-d16.
26201         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
26202         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
26203         nofp and nosimd.
26204         (armv7ve): Likewise.
26205         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
26206         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
26207         (armv8-a): Add nocrypto option.
26208         (armv8.1-a, armv8.2-a): Likewise.
26209         (armv8-m.main): add options fp, fp.dp and nofp.
26210
26211 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26212
26213         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
26214         nofp.
26215         (armv8-a+crc): Delete.
26216         (armv8.1-a): Add options simd, crypto and nofp.
26217         (armv8.2-a): Add options fp16, simd, crypto and nofp.
26218         (armv8.2-a+fp16): Delete.
26219         (armv8-m.main): Add option dsp.
26220         (armv8-m.main+dsp): Delete.
26221         (cortex-a8): Add fpu.  Add nofp option.
26222         (cortex-a9): Add fpu.  Add nofp and nosimd options.
26223         * config/arm/parsecpu.awk (gen_data): Generate option tables and
26224         link to main cpu and architecture data structures.
26225         (gen_comm_data): Only put isa attributes from the main architecture
26226         in common tables.
26227         (option): New statement for architecture and CPU entries.
26228         * arm.c (struct cpu_option): New structure.
26229         (struct processors): Add entry for options.
26230         (arm_unrecognized_feature): New function.
26231         (arm_parse_arch_cpu_name): Ignore any characters after the first
26232         '+' character.
26233         (arm_parse_arch_cpu_feature): New function.
26234         (arm_configure_build_target): Separate out any CPU and architecture
26235         features and parse separately.  Don't error out if -mfpu=auto is
26236         used with only an architecture string.
26237         (arm_print_asm_arch_directives): New function.
26238         (arm_file_start): Call it.
26239         * config/arm/arm-cpu-cdata.h: Regenerated.
26240         * config/arm/arm-cpu-data.h: Likewise.
26241         * config/arm/arm-tables.opt: Likewise.
26242
26243 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26244
26245         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
26246         assembler when it is not -mfpu=auto.
26247
26248 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26249
26250         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
26251         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
26252         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
26253         (ASM_CPU_SPEC): Rewrite.
26254         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
26255         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
26256         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
26257         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
26258         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
26259         copied string is NUL-terminated.  Also strip any characters prefixed
26260         by '+'.
26261         (arm_rewrite_selected_arch): New function.
26262         (arm_rewrite_march): New function.
26263
26264 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26265
26266         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
26267         (x_arm_cpu_string, x_arm_tune_string): Likewise.
26268         (march, mcpu, mtune): Convert to string-based options.
26269         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
26270         (arm_parse_arch_cpu_name): New function.
26271         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
26272         identify selected architecture or CPU.
26273         (arm_option_save): New function.
26274         (TARGET_OPTION_SAVE): Redefine.
26275         (arm_option_restore): Restore string options.
26276         (arm_option_print): Print string options.
26277
26278 2017-06-16  Martin Sebor  <msebor@redhat.com>
26279
26280         PR tree-optimization/80933
26281         PR tree-optimization/80934
26282         * builtins.c (fold_builtin_3): Do not handle bcmp here.
26283         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
26284         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
26285         (gimple_fold_builtin): Call them.
26286
26287 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26288
26289         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
26290         as unlikely; update profile.
26291
26292 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26293
26294         * predict.c (force_edge_cold): Handle declaring edges impossible
26295         more aggresively.
26296
26297 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26298
26299         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
26300         profile.
26301         (try_unroll_loop_completely): Fix reporting.
26302
26303 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26304
26305         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
26306
26307 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
26308
26309         PR target/71778
26310         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
26311         if given a non-constant argument for an intrinsic which requires a
26312         constant.
26313
26314 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26315
26316         * profile.c (compare_freqs): New function.
26317         (branch_prob): Sort edge list.
26318         (find_spanning_tree): Assume that the list is priority sorted.
26319
26320 2017-06-16  Richard Biener  <rguenther@suse.de>
26321
26322         PR tree-optimization/81090
26323         * passes.def (pass_record_bounds): Remove.
26324         * tree-pass.h (make_pass_record_bounds): Likewise.
26325         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
26326         make_pass_record_bounds): Likewise.
26327         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
26328         not free niter estimates at the beginning but at the end.
26329         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
26330
26331 2017-06-16  Richard Biener  <rguenther@suse.de>
26332
26333         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
26334         initializer to workaround ICE in host GCC 4.8.
26335
26336 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
26337
26338         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
26339         counts.
26340         (clone_inlined_nodes): Update.
26341
26342 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
26343
26344         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
26345         prefetch settings, and enable prefetching by default at -O3.
26346
26347 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
26348
26349         * config/aarch64/aarch64.c (aarch64_override_options_internal):
26350         Set flag_prefetch_loop_arrays according to tuning data.
26351
26352 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
26353
26354         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
26355         New tune structure.
26356         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
26357         [Unrelated to main purpose of the patch] Place the pointer field last
26358         to enable type checking errors when tune structure are wrongly merged.
26359         * config/aarch64/aarch64.c (generic_prefetch_tune,)
26360         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
26361         (thunderx2t99_prefetch_tune): New tune constants.
26362         (tune_params *_tunings): Update all tunings (no functional change).
26363         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
26364         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
26365         from tunings structures.
26366
26367 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
26368
26369         PR sanitizer/81094
26370         * ubsan.c (instrument_null): Add T argument, use it instead
26371         of computing it based on IS_LHS.
26372         (instrument_object_size): Likewise.
26373         (pass_ubsan::execute): Adjust instrument_null and
26374         instrument_object_size callers to pass gimple_get_lhs or
26375         gimple_assign_rhs1 result to it.  Use instrument_null instead of
26376         calling get_base_address and instrument_mem_ref.  Handle
26377         aggregate call arguments for object-size sanitization.
26378
26379 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
26380
26381         PR tree-optimization/81089
26382         * tree-vrp.c (is_masked_range_test): Validate operands of
26383         subexpression.
26384
26385 2017-06-15  Martin Sebor  <msebor@redhat.com>
26386
26387         PR c++/80560
26388         * dumpfile.c (dump_register): Avoid calling memset to initialize
26389         a class with a default ctor.
26390         * gcc.c (struct compiler): Remove const qualification.
26391         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
26392         * hash-table.h: Ditto.
26393         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
26394           assignment.
26395         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
26396         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
26397         default ctor.
26398         * params.h (struct param_info): Make struct members non-const.
26399         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
26400         with default initialization.
26401         * vec.h (vec_copy_construct, vec_default_construct): New helper
26402         functions.
26403         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
26404         with vec_copy_construct.
26405         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
26406         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
26407         * doc/invoke.texi (-Wclass-memaccess): Document.
26408
26409 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26410
26411         * emit-rtl.h (is_leaf): Update comment about local
26412         register allocator.
26413
26414 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
26415
26416         PR target/78818
26417         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
26418         for a variable to have a section before checking if the section has a
26419         name.
26420         Set section to.persistent if persistent attribute is set.
26421         Warn if .persistent attribute is used on an automatic variable.
26422
26423 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
26424
26425         PR rtl-optimization/80474
26426         * reorg.c (update_block): Do not ignore instructions in a delay slot.
26427
26428 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
26429
26430         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
26431         of REGNO.
26432
26433 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
26434
26435         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
26436         (casesi): Emit bounds checking as RTL.
26437         (casesi_internal_mips16_<mode>): Remove bounds checking.
26438
26439 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
26440
26441         * config/xtensa/xtensa.c (xtensa_option_override): Append
26442         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
26443         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
26444          xtensa_doloop_hooks): Define unconditionally.
26445         (xtensa_reorg_loops): Only call reorg_loops in the presence of
26446         TARGET_LOOPS.
26447         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
26448         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
26449         for it in xtensa_option_override.
26450         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
26451          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
26452
26453 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
26454
26455         * doc/cppopts.texi: Document '-' special value to -MF.
26456
26457 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
26458
26459         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
26460         (cortex_a53_fconst): Likewise.
26461         (cortex_a53_fpmul): Likewise.
26462         (cortex_a53_f_load_64): Likewise.
26463         (cortex_a53_f_load_many): Likewise.
26464         (cortex_a53_advsimd_alu): Likewise.
26465         (cortex_a53_advsimd_alu_q): Likewise.
26466         (cortex_a53_advsimd_mul): Likewise.
26467         (cortex_a53_advsimd_mul_q): Likewise.
26468         (fpmac bypass): Add new bypass for fpmac-fpmac case.
26469         Add missing fmul, r2f_cvt and fconst cases.
26470
26471 2017-06-14  Richard Biener  <rguenther@suse.de>
26472
26473         PR middle-end/81088
26474         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
26475         literal constants.
26476         (fold_binary_loc): When associating do not treat pre-existing
26477         TREE_OVERFLOW on literal constants as a reason to allow
26478         TREE_OVERFLOW on associated literal constants.
26479
26480 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26481
26482         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
26483         (MASK_FEATURES): New macro.
26484         * config/sparc/sparc.c (sparc_option_override): Remove the special
26485         handling of -mfpu and generalize it to all MASK_FEATURES switches.
26486
26487 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26488
26489         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
26490         a division of 0 if non-call exceptions are enabled.
26491
26492 2017-06-14  Andrew Pinski  <apinski@cavium.com>
26493             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26494
26495         PR target/71663
26496         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
26497         Improve vector initialization code gen for only variable case.
26498
26499 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26500
26501         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
26502
26503 2017-06-14  Richard Biener  <rguenther@suse.de>
26504
26505         PR tree-optimization/81083
26506         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
26507         as values.
26508
26509 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26510
26511         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
26512         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
26513         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
26514         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
26515         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
26516         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
26517
26518 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26519
26520         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
26521         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
26522
26523 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26524
26525         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
26526
26527 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26528
26529         * config/rs6000/t-rtems: Don't handle SPE.
26530
26531 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26532
26533         * config/rs6000/t-linux: Don't handle SPE.
26534
26535 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26536
26537         * config/rs6000/eabispe.h: Delete file.
26538
26539 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26540
26541         * config/rs6000/t-spe: Delete file.
26542
26543 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26544
26545         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
26546         (rs6000_legitimate_offset_address_p): Return false for anything in
26547         V2SImode or V2SFmode.
26548
26549 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
26550
26551         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
26552         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
26553         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
26554         and V4HImode.
26555         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
26556         (rs6000_legitimate_offset_address_p): Ditto.
26557         (rs6000_emit_move): Ditto.
26558         (rs6000_init_builtins): Remove V4HI_type_node.
26559
26560 2017-06-13  Martin Liska  <mliska@suse.cz>
26561
26562         PR sanitize/78204
26563         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
26564         (gate_asan): Likewise.
26565         * asan.h (asan_no_sanitize_address_p): Remove the function.
26566         (sanitize_flags_p): New function.
26567         * builtins.def: Fix coding style.
26568         * common.opt: Use renamed enum value.
26569         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
26570         * doc/extend.texi: Document no_sanitize attribute.
26571         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
26572         to SANITIZE_UNDEFINED_NONDEFAULT.
26573         * gcc.c (sanitize_spec_function): Use the renamed enum value.
26574         * gimple-fold.c (optimize_atomic_compare_exchange_p):
26575         Use sanitize_flags_p.
26576         * gimplify.c (gimplify_function_tree): Likewise.
26577         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
26578         * opts.c (parse_no_sanitize_attribute): New function.
26579         (common_handle_option): Use renamed enum value.
26580         * opts.h (parse_no_sanitize_attribute): Declare.
26581         * tree.c (sanitize_flags_p): New function.
26582         * tree.h: Declared here.
26583         * tsan.c: Use sanitize_flags_p.
26584         * ubsan.c (ubsan_expand_null_ifn): Likewise.
26585         (instrument_mem_ref): Likewise.
26586         (instrument_bool_enum_load): Likewise.
26587         (do_ubsan_in_current_function): Remove the function.
26588         (pass_ubsan::execute): Use sanitize_flags_p.
26589         * ubsan.h: Remove do_ubsan_in_current_function
26590         * tree-cfg.c (print_no_sanitize_attr_value): New function.
26591         (dump_function_to_file): Use it here.
26592
26593 2017-06-13  Martin Jambor  <mjambor@suse.cz>
26594
26595         PR tree-optimization/80803
26596         PR tree-optimization/81063
26597         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
26598         (propagate_subaccesses_across_link): Enqueue subtree whenever
26599         necessary instead of relying on the caller.
26600
26601 2017-06-13  Martin Jambor  <mjambor@suse.cz>
26602
26603         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
26604         that have a first_link.
26605         (sort_and_splice_var_accesses): Do not check first_link before
26606         enquing.
26607         (subtree_mark_written_and_enqueue): Likewise.
26608         (propagate_all_subaccesses): Likewise and do not stop at first
26609         parent with a first_link.
26610
26611 2017-06-13  Martin Jambor  <mjambor@suse.cz>
26612
26613         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
26614         instead of f.
26615
26616 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
26617
26618         * match.pd: New pattern.
26619
26620 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
26621
26622         * tree-vrp.c (is_masked_range_test): New function.
26623         (register_edge_assert_for): Determine ranges for
26624         some bit tests.
26625
26626 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
26627
26628         PR tree-optimization/67328
26629         * fold-const.c (maskable_range_p): New function.
26630         (build_range_check): Generate bittests if possible.
26631
26632 2017-06-13  Martin Liska  <mliska@suse.cz>
26633
26634         * gimple-pretty-print.c (dump_probability): Add new argument.
26635         (dump_edge_probability): Dump both probability and count.
26636         (dump_gimple_label): Likewise.
26637         (dump_gimple_bb_header): Likewise.
26638
26639 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
26640
26641         PR target/81072
26642         * config/avr/avr-devices.c: Fix indentation.
26643         * config/avr/gen-avr-mmcu-specs.c: Dito.
26644
26645 2017-06-13  Richard Biener  <rguenther@suse.de>
26646
26647         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
26648         instead get vector type from stmt_info.
26649         (vectorizable_reduction): Adjust.  Remove dead code.
26650
26651 2017-06-13  Richard Biener  <rguenther@suse.de>
26652
26653         PR middle-end/81065
26654         * fold-const.c (extract_muldiv_1): Remove bogus distribution
26655         case of C * (x * C2 + C3).
26656         (fold_addr_of_array_ref_difference): Properly fold index difference.
26657
26658 2017-06-12  David S. Miller  <davem@davemloft.net>
26659
26660         PR target/80968
26661         * config/sparc/sparc.md (return expander): Emit frame blockage if
26662         function uses alloca.
26663
26664 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
26665
26666         * combine.c (make_field_assignment): Check len rather than the mode
26667         precision when calling force_to_mode.
26668
26669 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
26670
26671         Support multilibs and devices that see flash in RAM address range.
26672
26673         PR target/81072
26674         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
26675         (avr_mcu_t) <flash_pm_offset>: New field.
26676         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
26677         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
26678         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
26679         (AVR_TINY_PM_OFFSET): Remove macro.
26680         * config/avr/avr.opt (-mshort-calls): New option.
26681         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
26682         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
26683         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
26684         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
26685         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
26686         instead of avr_arch->have_jmp_call.
26687         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
26688         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
26689         avr_arch->flash_pm_offset to define.
26690         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
26691         new field flash_pm_offset.  Add entry for avrxmega3.
26692         (avr_texinfo): Add entry for avrxmega3.
26693         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
26694         attiny212, attiny214,
26695         attiny412, attiny414, attiny416, attiny417,
26696         attiny814, attiny816, attiny817,
26697         attiny1614, attiny1616, attiny1617,
26698         attiny3214, attiny3216, attiny3217.
26699         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
26700         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
26701         (avr_print_operand_address) [AVR_TINY]: Same.
26702         (avr_asm_init_sections) <readonly_data_section>: Only patch
26703         callback if avr_arch->flash_pm_offset = 0.
26704         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
26705         for rodata if avr_arch->flash_pm_offset != 0.
26706         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
26707         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
26708         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
26709         (m_options): Append opt_rcall.
26710         (m_dirnames): Append dir_rcall.
26711         * config/avr/t-multilib: Regenerate.
26712
26713         * configure.ac [target=avr]: Check whether avrxmega3 default
26714         linker description file works as needed.
26715         * configure: Regenerate.
26716         * doc/avr-mmcu.texi: Regenerate.
26717         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
26718         <__AVR_ARCH__>: Document avrxmega3 and 103.
26719         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
26720         <__AVR_SHORT_CALLS__>: Document it.
26721         <__AVR_PM_BASE_ADDRESS__>: Document it.
26722         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
26723         (AVR Variable Attributes) <progmem>: Document this is
26724         not needed for avrxmega3.
26725         (AVR Named Address Spaces) <__flash>: Dito.
26726
26727 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
26728
26729         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
26730
26731 2017-06-12  Doug Rupp  <rupp@adacore.com>
26732
26733         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
26734         Append vxworks-stdint.h to the tm_file list.
26735         * config/vxworks-stdint.h: New file.
26736
26737 2017-06-12  Martin Liska  <mliska@suse.cz>
26738
26739         PR tree-optimization/81041
26740         * tree-profile.c (gimple_gen_ic_func_profiler):
26741         Create an extra BB in profile-generate
26742         (gimple_gen_time_profiler): Likewise.
26743
26744 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
26745
26746         PR tree-optimization/81003
26747         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
26748         (update_range_test): Use it instead of force_gimple_operand_gsi.
26749
26750 2017-06-12  Richard Biener  <rguenther@suse.de>
26751
26752         PR tree-optimization/81053
26753         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
26754         with backedge value not defined in loop.  Simplify def stmt
26755         compute.
26756
26757 2017-06-11  Tom de Vries  <tom@codesourcery.com>
26758
26759         PR target/79939
26760         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
26761         Return true.
26762         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
26763         nvptx_cannot_force_const_mem.
26764
26765 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
26766
26767         * opts.c (finish_options): Move test for flag_split_stack after
26768         it has been initialized.
26769
26770 2017-06-11  Jason Merrill  <jason@redhat.com>
26771
26772         * tree.h (id_equal): New.
26773         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
26774         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
26775         instead of strcmp of IDENTIFIER_POINTER.
26776
26777 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
26778
26779         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
26780         (mark_all_inlined_calls_cdtor): Fix formating.
26781         (inline_transform): Rescale profile before inlining.
26782
26783 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
26784
26785         * cgraph.h (cgraph_edge::clone): Update prototype.
26786         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
26787         (cgraph_node::create_clone): Update.
26788         (cgraph_node::create_version_clone): Update.
26789         * tree-inline.c (copy_bb): Update.
26790         (expand_call_inline): Update.
26791
26792 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
26793
26794         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
26795         factored out from ...
26796         (rs6000_emit_prologue): ... here.
26797
26798 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
26799
26800         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
26801         factored out from ...
26802         (rs6000_emit_prologue): ... here.
26803
26804 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
26805
26806         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
26807         edge counts.
26808         (handle_missing_profiles): Fix computation of tp_first_run.
26809         (counts_to_freqs): Do not touch freqs when count is 0.
26810
26811 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
26812
26813         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
26814         profile.
26815
26816 2017-06-10  Tom de Vries  <tom@codesourcery.com>
26817
26818         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
26819         attributes): Document signal effective target.
26820
26821 2017-06-10  Tom de Vries  <tom@codesourcery.com>
26822
26823         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
26824         Document effective target stack_size.
26825
26826 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
26827
26828         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
26829         to the edit_context if they can be auto-applied.
26830
26831 2017-06-9  Ian Lance Taylor  <iant@golang.org>
26832
26833         * opts.c (finish_options): If -fsplit-stack, disable implicit
26834         -forder-blocks-and-partition.
26835         * doc/invoke.texi (Optimize Options): Document that when using
26836         -fsplit-stack -forder-blocks-and-partition is not implicitly
26837         enabled.
26838
26839 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
26840
26841         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
26842         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
26843         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
26844         * builtins.def (abort, trap, unreachable): Declare cold.
26845         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
26846         * tree-core.h (ECF_COLD): New.
26847         * tree.c (set_call_expr_flags): Handle ECF_COLD.
26848         (build_common_builtin_nodes): Mark unreachable and abort as cold.
26849
26850 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
26851
26852         * predict.c (unlikely_executed_stmt_p): Cleanup.
26853
26854 2017-06-09  Richard Biener  <rguenther@suse.de>
26855
26856         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
26857         model if the ref is always written to.
26858
26859 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
26860
26861         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
26862
26863 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
26864
26865         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
26866         than udiv.
26867
26868 2017-06-09  Tom de Vries  <tom@codesourcery.com>
26869
26870         PR target/80855
26871         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
26872         "target cannot support label values" when encountering LABEL_REF.
26873
26874 2017-06-09  Martin Liska  <mliska@suse.cz>
26875
26876         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
26877         (gimple_gen_ic_func_profiler): Emit direct comparison
26878         of __gcov_indirect_call_callee with NULL.
26879         (gimple_gen_time_profiler): Change probability from
26880         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
26881
26882 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
26883
26884         * profile.c (edge_gcov_counts): Turn to pointer.
26885         (compute_branch_probabilities, compute_branch_probabilities): Update.
26886         (branch_prob): Do not clear edge_gcov_count.
26887         * profile.h (edge_gcov_counts): Turn to pointer.
26888         (edge_gcov_count): Update.
26889
26890 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
26891
26892         * gimple.h (gimple_check_failed): Mark cold.
26893
26894 2017-06-09  Richard Biener  <rguenther@suse.de>
26895
26896         PR tree-optimization/66623
26897         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
26898         refactor check_reduction into two parts, properly computing
26899         whether we have to check reduction validity for outer loop
26900         vectorization.
26901
26902 2017-06-09  Richard Biener  <rguenther@suse.de>
26903
26904         PR tree-optimization/79483
26905         * graphite-scop-detection.c (order): New global.
26906         (get_order): Compute bb to order mapping that satisfies code
26907         generation constraints.
26908         (cmp_pbbs): New helper.
26909         (build_scops): Start domwalk at entry block, sort generated
26910         pbbs.
26911
26912 2017-06-09  Richard Biener  <rguenther@suse.de>
26913
26914         PR middle-end/81007
26915         * ipa-polymorphic-call.c
26916         (ipa_polymorphic_call_context::restrict_to_inner_class):
26917         Skip FIELD_DECLs with error_mark_node type.
26918         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
26919         last again.
26920
26921 2017-06-09  Martin Liska  <mliska@suse.cz>
26922
26923         * predict.c (struct branch_predictor): New struct.
26924         (test_prediction_value_range): New test.
26925         (predict_c_tests): New function.
26926         * selftest-run-tests.c (selftest::run_tests): Run the function.
26927         * selftest.h: Declare new tests.
26928
26929 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
26930
26931         PR target/80966
26932         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
26933         gen_add3_insn did not fail.
26934         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
26935         r0, construct that number in a temporary reg and add that reg to r0.
26936         If asked to put the result in r0 as well, fail.
26937
26938 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
26939
26940         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
26941         for early expansion of vec_eqv.
26942
26943 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
26944
26945         PR middle-end/81005
26946         * ubsan.c (instrument_null): Avoid pointless code temporary.
26947         (pass_ubsan::execute): Instrument aggregate arguments of calls.
26948
26949 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
26950
26951         PR target/81015
26952         Revert:
26953         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
26954
26955         PR target/59874
26956         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
26957         (*clzhi2): Ditto.
26958
26959 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
26960
26961         * predict.c (unlikely_executed_edge_p): Move ahead.
26962         (probably_never_executed_edge_p): Use it.
26963
26964 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26965
26966         PR middle-end/79988
26967         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
26968         gimple_call_builtin_p call.
26969
26970 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
26971
26972         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
26973         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
26974         rtl_check_failed_type2, rtl_check_failed_code1,
26975         rtl_check_failed_code2, rtl_check_failed_code_mode,
26976         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
26977         rtvec_check_failed_bounds, rtl_check_failed_flag,
26978         _fatal_insn_not_found, _fatal_insn): Likewise.
26979         * tree.h (tree_contains_struct_check_failed,
26980         tree_check_failed, tree_not_check_failed,
26981         tree_class_check_failed, tree_range_check_failed,
26982         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
26983         tree_vec_elt_check_failed, phi_node_elt_check_failed,
26984         tree_operand_check_failed, omp_clause_check_failed,
26985         omp_clause_operand_check_failed, omp_clause_range_check_failed):
26986         Likewise.
26987
26988 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
26989
26990         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
26991         flag_branch_probabilities.
26992         * ipa-inline.c (edge_badness): Likewise.
26993         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
26994         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
26995         * predict.c (maybe_hot_frequency_p): Likewise.
26996         (probably_never_executed): Likewise.
26997         * sched-ebb.c (schedule_ebbs): Likewise.
26998         * sched-rgn.c (find_single_block_region): Likewise.
26999         * tracer.c (tail_duplicate): Likewise.
27000
27001 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27002
27003         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
27004         longer requires x_flag_profile_use.
27005
27006 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27007
27008         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
27009         instead of flag_reorder_blocks_and_partition.
27010         * dbxout.c (dbxout_function_end): Likewise.
27011         * dwarf2out.c (gen_subprogram_die): Likewise.
27012         * haifa-sched.c (sched_create_recovery_edges): Likewise.
27013         * hw-doloop.c (reorg_loops): Likewise.
27014         * varasm.c (assemble_start_function,
27015         assemble_end_function): Likewise.
27016         (decide_function_section): Do not check for
27017         flag_reorder_blocks_and_partition.
27018
27019 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27020
27021         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
27022         New function.
27023         (chkp_get_hard_register_fake_addr_expr): Ditto.
27024         (chkp_build_addr_expr): Add check for hard reg case.
27025         (chkp_parse_array_and_component_ref): Ditto.
27026         (chkp_find_bounds_1): Ditto.
27027         (chkp_process_stmt): Don't generate bounds store for
27028         hard reg case.
27029
27030 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27031
27032         * predict.c (maybe_hot_bb_p): Do not check profile status.
27033         (maybe_hot_edge_p): Likewise.
27034         (probably_never_executed): Check for zero counts even if profile
27035         is not read.
27036         (unlikely_executed_edge_p): New function.
27037         (unlikely_executed_stmt_p): New function.
27038         (unlikely_executed_bb_p): New function.
27039         (set_even_probabilities): Use unlikely predicates.
27040         (combine_predictions_for_bb): Likewise.
27041         (predict_paths_for_bb): Likewise.
27042         (predict_paths_leading_to_edge): Likewise.
27043         (determine_unlikely_bbs): New function.
27044         (estimate_bb_frequencies): Use it.
27045         (compute_function_frequency): Use zero counts even if profile is
27046         not read.
27047         * profile-count.h: Fix typo.
27048
27049 2017-08-08  Julia Koval  <julia.koval@intel.com>
27050
27051         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
27052         _mm512_mask_cvtsepi16_storeu_epi8,
27053         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
27054         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
27055         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
27056         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
27057         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
27058         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
27059         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
27060         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
27061         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
27062         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
27063         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
27064         __builtin_ia32_pmovuswb256mem_mask,
27065         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
27066         __builtin_ia32_pmovwb512mem_mask): New builtins.
27067
27068 2017-08-08  Julia Koval  <julia.koval@intel.com>
27069
27070         PR target/73350,80862
27071         * config/i386/subst.md (round): Fix round pattern.
27072         * config/i386/i386.c (ix86_erase_embedded_rounding):
27073         Fix erasing rounding for the fixed pattern.
27074
27075 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27076
27077         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
27078
27079 2017-06-08  Martin Liska  <mliska@suse.cz>
27080
27081         PR gcov-profile/80911
27082         * gcov.c (block_info::block_info): New constructor.
27083
27084 2017-06-07  Carl Love  <cel@us.ibm.com>
27085
27086         * config/rs6000/rs6000-c: The return type of the following
27087         built-in functions was implemented as int not long long.  Fix sign
27088         of return value for the unsigned version of vec_mulo and vec_mule.
27089         vector unsigned long long vec_bperm (vector unsigned long long,
27090                                              vector unsigned char)
27091         vector signed long long vec_mule (vector signed int,
27092                                           vector signed int)
27093         vector unsigned long long vec_mule (vector unsigned int,
27094                                             vector unsigned int)
27095         vector signed long long vec_mulo (vector signed int,
27096                                           vector signed int)
27097         vector unsigned long long vec_mulo (vector unsigned int,
27098                                             vector unsigned int)
27099         * doc/extend.texi: Fix the documentation for the built-in
27100         functions.
27101
27102 2017-06-07  Carl Love  <cel@us.ibm.com>
27103
27104         PR target/80982
27105         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
27106         for BE.
27107
27108 2017-06-07  Carl Love  <cel@us.ibm.com>
27109
27110         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
27111         support, Generate       doublehv for signed int/float for BE case only.
27112
27113 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
27114
27115         * doc/invoke.texi (mcx16): Rewrite.
27116
27117 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27118
27119         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
27120         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
27121         *mov<mode>_softfloat, and an anonymous splitter): Use
27122         nonimmediate_operand instead of rs6000_nonimmediate_operand.
27123
27124 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27125
27126         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
27127         SPEFSCR registers.
27128         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
27129         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
27130         (rs6000_debug_reg_global): Adjust.
27131         (rs6000_init_hard_regno_mode_ok): Adjust.
27132         (rs6000_dbx_register_number): Adjust.
27133         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
27134         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
27135         Remove SPE_ACC and SPEFSCR.
27136         (REG_ALLOC_ORDER): Ditto.
27137         (FRAME_POINTER_REGNUM): Change to 111.
27138         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
27139         (REG_CLASS_NAMES): Ditto.
27140         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
27141         (REGISTER_NAMES): Ditto.
27142         (ADDITIONAL_REG_NAMES): Ditto.
27143         (rs6000_reg_names): Ditto.
27144         * config/rs6000/rs6000.md: Renumber some register number
27145         define_constants.
27146
27147 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27148
27149         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
27150         registers.
27151         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
27152         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
27153         to 117.
27154         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
27155         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
27156         Delete the SPE high registers.
27157         (REG_ALLOC_ORDER): Ditto.
27158         (enum reg_class): Remove SPE_HIGH_REGS.
27159         (REG_CLASS_NAMES): Ditto.
27160         (REG_CLASS_CONTENTS): Delete the SPE high registers.
27161         (REGISTER_NAMES): Ditto.
27162         (rs6000_reg_names): Ditto.
27163         * doc/tm.texi.in: Remove SPE as example.
27164         * doc/tm.texi: Regenerate.
27165
27166 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27167
27168         * config/rs6000/8540.md (ppc8540_brinc): Delete.
27169         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
27170         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
27171         * config/rs6000/rs6000.md (type): Remove "brinc".
27172
27173 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27174
27175         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
27176         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
27177         * config/rs6000/linuxspe.h: Delete file.
27178         * config/rs6000/rs6000.md: Don't include spe.md.
27179         * config/rs6000/spe.h: Delete file.
27180         * config/rs6000/spe.md: Delete file.
27181         * config/rs6000/t-rs6000: Remove spe.md.
27182
27183 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27184
27185         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
27186         (reg_or_none500mem_operand): Delete.
27187         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
27188         instead of reg_or_none500mem_operand.
27189
27190 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27191
27192         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
27193         handling of SPE flags.
27194         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
27195
27196 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27197
27198         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
27199         SPE ABI handling.
27200         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
27201         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
27202         paired_divv2sf3): Similar.
27203         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
27204         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
27205         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
27206         RS6000_BUILTIN_S.
27207         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
27208         Rename the paired_* instruction patterns.
27209         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
27210         define __SPE__.
27211         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
27212         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
27213         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
27214         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
27215         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
27216         PAIRED_VECTOR_MODE.
27217         (struct machine_function): Delete field spe_insn_chain_scanned_p.
27218         (spe_func_has_64bit_regs_p): Delete.
27219         (spe_expand_predicate_builtin): Delete.
27220         (spe_expand_evsel_builtin): Delete.
27221         (TARGET_DWARF_REGISTER_SPAN): Do not define.
27222         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
27223         (invalid_e500_subreg): Delete.
27224         (rs6000_legitimize_address): Always force_reg op2 as well, for
27225         paired single memory accesses.
27226         (rs6000_member_type_forces_blk): Delete.
27227         (rs6000_spe_function_arg): Delete.
27228         (rs6000_expand_unop_builtin): Delete SPE handling.
27229         (rs6000_expand_binop_builtin): Ditto.
27230         (spe_expand_stv_builtin): Delete.
27231         (bdesc_2arg_spe): Delete.
27232         (spe_expand_builtin): Delete.
27233         (spe_expand_predicate_builtin): Delete.
27234         (spe_expand_evsel_builtin): Delete.
27235         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
27236         (spe_init_builtins): Delete.
27237         (spe_func_has_64bit_regs_p): Delete.
27238         (savres_routine_name): Delete "info" parameter.  Adjust callers.
27239         (rs6000_emit_stack_reset): Ditto.
27240         (rs6000_dwarf_register_span): Delete.
27241         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
27242         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
27243         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
27244         Delete.
27245         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
27246         Delete.
27247         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
27248         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
27249         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
27250         mulv2sf3, divv2sf3): Delete expanders.
27251
27252 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27253
27254         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
27255
27256 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27257
27258         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
27259         * config/rs6000/rs6000.c: Ditto.
27260
27261 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27262
27263         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
27264         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
27265         comparison_operator.
27266
27267 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27268
27269         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
27270         * config/rs6000/rs6000.opt: Ditto.
27271         * config/rs6000/t-rtems: Ditto.
27272
27273 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27274
27275         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
27276         TARGET_E500_SINGLE by 0, simplify.
27277         * config/rs6000/rs6000.c: Ditto.
27278         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
27279         (spe_build_register_parallel): Delete.
27280         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
27281         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
27282         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
27283         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
27284         (E500_CONVERT): Delete.
27285         * config/rs6000/spe.md: Remove many patterns and all define_constants.
27286
27287 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
27288
27289         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
27290         * config/rs6000/dfp.md: Ditto.
27291         (negdd2, *negdd2_fpr): Merge.
27292         (absdd2, *absdd2_fpr): Merge.
27293         (negtd2, *negtd2_fpr): Merge.
27294         (abstd2, *abstd2_fpr): Merge.
27295         * config/rs6000/e500.h: Delete file.
27296         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
27297         TARGET_FPRS by 1 and simplify.
27298         * config/rs6000/rs6000-c.c: Ditto.
27299         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
27300         TARGET_DF_SPE by 0.
27301         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
27302         TARGET_DF_SPE.
27303         * config/rs6000/rs6000.md: Ditto.
27304         (floatdidf2, *floatdidf2_fpr): Merge.
27305         (move_from_CR_gt_bit): Delete.
27306         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
27307         (E500_CR_IOR_COMPARE): Delete.
27308         (All patterns that require !TARGET_FPRS): Delete.
27309         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
27310
27311 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27312
27313         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
27314
27315 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27316
27317         * graphds.c (add_edge): Intitialize edge's attached data.
27318         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
27319         pointer parameter.  Call pointed function on each edge during
27320         graph traversing.  Skip traversing the edge when the function
27321         returns true.
27322         (graphds_dfs, graphds_scc): Ditto.
27323         (for_each_edge): New parameter.  Pass the new parameter to callback
27324         function.
27325         * graphds.h (skip_edge_callback): New function pointer type.
27326         (graphds_dfs, graphds_scc): New function pointer parameter.
27327         (graphds_edge_callback, for_each_edge): New parameter.
27328
27329 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27330
27331         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
27332         out code checking if runtime alias check is possible to below ...
27333         Call the new function.
27334         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
27335         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
27336
27337 2017-06-07  Marek Polacek  <polacek@redhat.com>
27338
27339         PR sanitizer/80932
27340         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
27341         TYPE_OVERFLOW_WRAPS check.
27342
27343 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27344
27345         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
27346         if versioning is required.
27347         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
27348         peeling with the check for versioning.
27349
27350 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27351
27352         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
27353         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
27354         Set true to new parameter if new ssa variable is defined.
27355         (vect_gen_vector_loop_niters): Refactor.  Set range information
27356         for the new vector loop bound variable.
27357         (vect_do_peeling): Ditto.
27358
27359 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27360
27361         * tree-affine.c (ssa.h): Include header file.
27362         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
27363         has wrapping overflow behavior.
27364
27365 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27366
27367         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
27368
27369 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27370
27371         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
27372         (tree_to_aff_combination): ... here.
27373
27374 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
27375
27376         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
27377         reg_pressure model function.
27378         (ivopts_global_cost_for_size): Delete.
27379         (determine_set_costs, iv_ca_recount_cost): Call new model function
27380         ivopts_estimate_reg_pressure.
27381
27382 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27383
27384         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
27385         expensive than udiv.  Remove floating point cases from mod.
27386
27387 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27388
27389         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
27390         Increase idiv cost.
27391
27392 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
27393
27394         * config/aarch64/aarch64.md
27395         (copysignsf3): Fix mask generation.
27396
27397 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
27398
27399         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
27400         TDI_gimple.
27401         (class dump_manager): Add register_dumps method.
27402         * dumpfile.c: Include langhooks.h.
27403         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
27404         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
27405         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
27406         (dump_manager::dump_register): Start with 512 entries instead of 32.
27407         (dump_manager::register_dumps): New method.
27408         * toplev.c (general_init): Instead of invoking register_dumps
27409         langhook, invoke register_dumps method on the dump manager.
27410         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
27411         TDI_generic.
27412
27413 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
27414
27415         * doc/md.texi: Clarify the restrictions on a define_insn condition.
27416         Say that # requires an associated define_split to exist, and that
27417         the define_split must be suitable for use after register allocation.
27418
27419 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27420
27421         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
27422         (compute_outgoing_frequencies): Also initialize zero counts.
27423         (find_many_sub_basic_blocks): Do not produce uninitialized profile
27424         around loops; preserve more of profile when nothing changes.
27425
27426 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
27427
27428         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
27429         here.
27430         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
27431         * config/arm/arm-cpu-cdata.h: Regenerate.
27432         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
27433         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
27434         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
27435         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
27436         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
27437         support.
27438         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
27439         support.
27440         * config/arm/t-rmprofile: Likewise.
27441         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
27442
27443 2017-06-06  David S. Miller  <davem@davemloft.net>
27444
27445         PR target/80968
27446         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
27447         blockage if function uses alloca.
27448
27449 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27450
27451         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
27452         New "uid" fields to hold pretty-print IDs of group and ref.
27453         Memory references are now identified as <group_id>:<ref_id>
27454         instead of using [random] addresses.
27455         (dump_mem_details): Simplify, no functional change.
27456         (dump_mem_ref): Simplify and make output more concise.
27457         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
27458         (find_or_create_group): Initialize group uid.
27459         (record_ref): Initialize ref uid.  Improve debug output.
27460         (prune_group_by_reuse, should_issue_prefetch_p,)
27461         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
27462         (mark_nontemporal_store, determine_loop_nest_reuse):
27463         Improve debug output.
27464
27465 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27466
27467         * dbgcnt.def (prefetch): New debug counter.
27468         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
27469         (schedule_prefetches): Stop issueing prefetches if debug counter
27470         tripped.
27471
27472 2017-06-06  Tom de Vries  <tom@codesourcery.com>
27473
27474         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
27475         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
27476
27477 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27478
27479         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
27480         Use aarch64_reg_or_zero predicate for operand 4.
27481         (aarch64_compare_and_swap<mode> define_insn_and_split):
27482         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
27483         (aarch64_store_exclusive<mode>): Likewise for operand 2.
27484
27485 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27486
27487         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
27488         (arm_compute_save_core_reg_mask): This.
27489         (thumb1_compute_save_reg_mask): Rename into ...
27490         (thumb1_compute_save_core_reg_mask): This.
27491         (arm_compute_save_reg0_reg12_mask): Adapt comment.
27492         (arm_compute_frame_layout): Likewise.
27493
27494 2017-06-06  Richard Biener  <rguenther@suse.de>
27495
27496         PR tree-optimization/80974
27497         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
27498         keep or clear leaders SSA info.
27499
27500 2017-06-06  Tom de Vries  <tom@codesourcery.com>
27501
27502         * config/nvptx/nvptx.c (split_mode_p): New function.
27503         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
27504
27505 2017-06-06  Tom de Vries  <tom@codesourcery.com>
27506
27507         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
27508
27509 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27510
27511         PR bootstrap/80978
27512         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
27513         profile.
27514
27515 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27516
27517         * shrink-wrap.c (handle_simple_exit): Update profile.
27518         (try_shrink_wrapping): Upate profile.
27519
27520 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27521
27522         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
27523         (tree_guess_outgoing_edge_probabilities): New.
27524         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
27525         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
27526
27527 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27528
27529         * ipa-split.c (split_function): Initialize return bb profile.
27530
27531 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
27532
27533         * profile.c (compute_branch_probabilities): Also initialize
27534         EXIT_BLOCK profile.
27535
27536 2017-06-06  Richard Biener  <rguenther@suse.de>
27537
27538         PR tree-optimization/80928
27539         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
27540         (vect_analyze_loop_operations): Properly guard analysis for
27541         pure SLP case.
27542         (vect_transform_loop): Likewise.
27543         (vect_analyze_loop_2): Also reset SLP type on PHIs.
27544         (vect_model_induction_cost): Do not cost for pure SLP.
27545         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
27546         of induction in inner loop vectorization.
27547         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
27548         (vect_get_and_check_slp_defs): Handle vect_induction_def.
27549         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
27550         recursion.
27551         (vect_analyze_slp_cost_1): Cost induction.
27552         (vect_detect_hybrid_slp_stmts): Handle PHIs.
27553         (vect_get_slp_vect_defs): Likewise.
27554         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
27555         (vect_transform_stmt): Handle SLP reductions.
27556         * tree-vectorizer.h (vectorizable_induction): Adjust.
27557
27558 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
27559
27560         * config/rs6000/rs6000.c (make_resolver_func): Update
27561         init_lowered_empty_function call.
27562
27563 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27564
27565         * doc/invoke.texi: Document the -fprofile-abs-path option.
27566         * common.opt (fprofile-abs-path): New option.
27567         * gcov-io.h (gcov_write_filename): Declare.
27568         * gcov-io.c (gcov_write_filename): New function.
27569         * coverage.c (coverage_begin_function): Use gcov_write_filename.
27570         * profile.c (output_location): Likewise.
27571
27572 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
27573
27574         * shring-wrap.c: Revert accidental commit.
27575
27576 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
27577
27578         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
27579
27580 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
27581
27582         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
27583         new edge.
27584         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
27585         profile in callgraph edge.
27586         * profile-count.h (apply_probability): If THIS is 0, then result is 0
27587         (apply_scale): Likewise.
27588         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
27589         Also scale profile when inlining function with zero profile.
27590         (initialize_cfun): Update exit block profile even when it is zero.
27591         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
27592         when profile is read.
27593
27594 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
27595
27596         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
27597         (CLONE_*): New constants to define the processors we can generate
27598         code for with the target_clone attribute.
27599         (rs6000_clone_map): New array to identify which clone processors
27600         the current program is running on.
27601         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
27602         target_clone attribute.
27603         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
27604         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
27605         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
27606         (cpu_expand_builtin): Add support for target_clone attribute.
27607         (rs6000_valid_attribute_p): Allow "default" attribute.
27608         (get_decl_name): New debug function to simplify printing the
27609         current function name in debugging statements.
27610         (rs6000_clone_priority): New functions to support the target_clone
27611         attribute, and be able to generate code to switch between ISA 2.05
27612         through ISA 3.0 (power6 through power9).
27613         (rs6000_compare_version_priority): Likewise.
27614         (rs6000_get_function_versions_dispatcher): Likewise.
27615         (make_resolver_func): Likewise.
27616         (add_condition_to_bb): Likewise.
27617         (dispatch_function_versions): Likewise.
27618         (rs6000_generate_version_dispatcher_body): Likewise.
27619         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
27620         (fusion_gpr_load_p): Fix a spacing issue.
27621         * doc/extend.texi (Common Function Attributes): Document that the
27622         PowerPC supports the target_clone attribute.
27623
27624 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27625
27626         * config/arm/arm.h: explain F symbol found in description of ARM
27627         register allocation in its legend.
27628
27629 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
27630
27631         * config/mips/frame-header-opt.c: Include profile-count.h.
27632         * config/riscv/riscv.c: Include profile-count.h
27633
27634 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
27635
27636         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
27637         update profile.
27638         (sm_set_flag_if_changed): Add bbs field.
27639         (execute_sm_if_changed_flag_set): Pass BBS.
27640         (execute_sm): Update.
27641
27642 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27643
27644         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
27645         New pattern.
27646
27647 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27648
27649         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
27650         (peephole2): New peephole2 to emit the above.
27651         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
27652
27653 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27654
27655         * config/aarch64/aarch64.c (define_peephole2 above
27656         *sub_<shift>_<mode>): New peephole.
27657
27658 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
27659
27660         * config/i386/i386.c (make_resolver_func): Update.
27661         * Makefile.in: Add profile-count.h and profile-count.o
27662         * auto-profile.c (afdo_indirect_call): Update to new API.
27663         (afdo_set_bb_count): Update.
27664         (afdo_propagate_edge): Update.
27665         (afdo_propagate_circuit): Update.
27666         (afdo_calculate_branch_prob): Update.
27667         (afdo_annotate_cfg): Update.
27668         * basic-block.h: Include profile-count.h
27669         (struct edge_def): Turn count to profile_count.
27670         (struct basic_block_def): Likewie.
27671         (REG_BR_PROB_BASE): Move to profile-count.h
27672         (RDIV): Move to profile-count.h
27673         * bb-reorder.c (max_entry_count): Turn to profile_count.
27674         (find_traces): Update.
27675         (rotate_loop):Update.
27676         (connect_traces):Update.
27677         (sanitize_hot_paths):Update.
27678         * bt-load.c (migrate_btr_defs): Update.
27679         * cfg.c (RDIV): Remove.
27680         (init_flow): Use alloc_block.
27681         (alloc_block): Uninitialize count.
27682         (unchecked_make_edge): Uninitialize count.
27683         (check_bb_profile): Update.
27684         (dump_edge_info): Update.
27685         (dump_bb_info): Update.
27686         (update_bb_profile_for_threading): Update.
27687         (scale_bbs_frequencies_int): Update.
27688         (scale_bbs_frequencies_gcov_type): Update.
27689         (scale_bbs_frequencies_profile_count): New.
27690         * cfg.h (update_bb_profile_for_threading): Update.
27691         (scale_bbs_frequencies_profile_count): Declare.
27692         * cfgbuild.c (compute_outgoing_frequencies): Update.
27693         (find_many_sub_basic_blocks): Update.
27694         * cfgcleanup.c (try_forward_edges): Update.
27695         (try_crossjump_to_edge): Update.
27696         * cfgexpand.c (expand_gimple_tailcall): Update.
27697         (construct_exit_block): Update.
27698         * cfghooks.c (verify_flow_info): Update.
27699         (dump_bb_for_graph): Update.
27700         (split_edge): Update.
27701         (make_forwarder_block): Update.
27702         (duplicate_block): Update.
27703         (account_profile_record): Update.
27704         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
27705         (get_estimated_loop_iterations): Update.
27706         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
27707         (single_likely_exit): Update.
27708         * cfgloopmanip.c (scale_loop_profile): Update.
27709         (loopify): Update.
27710         (set_zero_probability): Update.
27711         (lv_adjust_loop_entry_edge): Update.
27712         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
27713         (purge_dead_edges): Update.
27714         (rtl_account_profile_record): Update.
27715         * cgraph.c (cgraph_node::create): Uninitialize count.
27716         (symbol_table::create_edge): Uninitialize count.
27717         (cgraph_update_edges_for_call_stmt_node): Update.
27718         (cgraph_edge::dump_edge_flags): Update.
27719         (cgraph_node::dump): Update.
27720         (cgraph_edge::maybe_hot_p): Update.
27721         * cgraph.h: Include profile-count.h
27722         (create_clone), create_edge, create_indirect_edge): Update.
27723         (cgraph_node): Turn count to profile_count.
27724         (cgraph_edge0: Likewise.
27725         (make_speculative, clone): Update.
27726         (create_edge): Update.
27727         (init_lowered_empty_function): Update.
27728         * cgraphclones.c (cgraph_edge::clone): Update.
27729         (duplicate_thunk_for_node): Update.
27730         (cgraph_node::create_clone): Update.
27731         * cgraphunit.c (cgraph_node::analyze): Update.
27732         (cgraph_node::expand_thunk): Update.
27733         * final.c (dump_basic_block_info): Update.
27734         * gimple-streamer-in.c (input_bb): Update.
27735         * gimple-streamer-out.c (output_bb): Update.
27736         * graphite.c (print_global_statistics): Update.
27737         (print_graphite_scop_statistics): Update.
27738         * hsa-brig.c: Include basic-block.h.
27739         * hsa-dump.c: Include basic-block.h.
27740         * hsa-gen.c (T sum_slice): Update.
27741         (convert_switch_statements):Update.
27742         * hsa-regalloc.c: Include basic-block.h.
27743         * ipa-chkp.c (chkp_produce_thunks): Update.
27744         * ipa-cp.c (struct caller_statistics): Update.
27745         (init_caller_stats): Update.
27746         (gather_caller_stats): Update.
27747         (ipcp_cloning_candidate_p): Update.
27748         (good_cloning_opportunity_p): Update.
27749         (get_info_about_necessary_edges): Update.
27750         (dump_profile_updates): Update.
27751         (update_profiling_info): Update.
27752         (update_specialized_profile): Update.
27753         (perhaps_add_new_callers): Update.
27754         (decide_about_value): Update.
27755         (ipa_cp_c_finalize): Update.
27756         * ipa-devirt.c (struct odr_type_warn_count): Update.
27757         (struct decl_warn_count): Update.
27758         (struct final_warning_record): Update.
27759         (possible_polymorphic_call_targets): Update.
27760         (ipa_devirt): Update.
27761         * ipa-fnsummary.c (redirect_to_unreachable): Update.
27762         * ipa-icf.c (sem_function::merge): Update.
27763         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
27764         * ipa-inline.c (compute_uninlined_call_time): Update.
27765         (compute_inlined_call_time): Update.
27766         (want_inline_small_function_p): Update.
27767         (want_inline_self_recursive_call_p): Update.
27768         (edge_badness): Update.
27769         (lookup_recursive_calls): Update.
27770         (recursive_inlining): Update.
27771         (inline_small_functions): Update.
27772         (dump_overall_stats): Update.
27773         (dump_inline_stats): Update.
27774         * ipa-profile.c (ipa_profile_generate_summary): Update.
27775         (ipa_propagate_frequency): Update.
27776         (ipa_profile): Update.
27777         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
27778         * ipa-utils.c (ipa_merge_profiles): Update.
27779         * loop-doloop.c (doloop_modify): Update.
27780         * loop-unroll.c (report_unroll): Update.
27781         (unroll_loop_runtime_iterations): Update.
27782         * lto-cgraph.c (lto_output_edge): Update.
27783         (lto_output_node): Update.
27784         (input_node): Update.
27785         (input_edge): Update.
27786         (merge_profile_summaries): Update.
27787         * lto-streamer-in.c (input_cfg): Update.
27788         * lto-streamer-out.c (output_cfg): Update.
27789         * mcf.c (create_fixup_graph): Update.
27790         (adjust_cfg_counts): Update.
27791         (sum_edge_counts): Update.
27792         * modulo-sched.c (sms_schedule): Update.
27793         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
27794         * predict.c (maybe_hot_count_p): Update.
27795         (probably_never_executed): Update.
27796         (dump_prediction): Update.
27797         (combine_predictions_for_bb): Update.
27798         (propagate_freq): Update.
27799         (handle_missing_profiles): Update.
27800         (counts_to_freqs): Update.
27801         (rebuild_frequencies): Update.
27802         (force_edge_cold): Update.
27803         * predict.h: Include profile-count.h
27804         (maybe_hot_count_p, counts_to_freqs): UPdate.
27805         * print-rtl-function.c: Do not include cfg.h
27806         * print-rtl.c: Include basic-block.h
27807         * profile-count.c: New file.
27808         * profile-count.h: New file.
27809         * profile.c (is_edge_inconsistent): Update.
27810         (correct_negative_edge_counts): Update.
27811         (is_inconsistent): Update.
27812         (set_bb_counts): Update.
27813         (read_profile_edge_counts): Update.
27814         (compute_frequency_overlap): Update.
27815         (compute_branch_probabilities): Update; Initialize and deinitialize
27816         gcov_count tables.
27817         (branch_prob): Update.
27818         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
27819         (edge_gcov_count): New.
27820         (bb_gcov_count): New.
27821         * shrink-wrap.c (try_shrink_wrapping): Update.
27822         * tracer.c (better_p): Update.
27823         * trans-mem.c (expand_transaction): Update.
27824         (ipa_tm_insert_irr_call): Update.
27825         (ipa_tm_insert_gettmclone_call): Update.
27826         * tree-call-cdce.c: Update.
27827         * tree-cfg.c (gimple_duplicate_sese_region): Update.
27828         (gimple_duplicate_sese_tail): Update.
27829         (gimple_account_profile_record): Update.
27830         (execute_fixup_cfg): Update.
27831         * tree-inline.c (copy_bb): Update.
27832         (copy_edges_for_bb): Update.
27833         (initialize_cfun): Update.
27834         (freqs_to_counts): Update.
27835         (copy_cfg_body): Update.
27836         (expand_call_inline): Update.
27837         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
27838         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
27839         (try_unroll_loop_completely): Update.
27840         (try_peel_loop): Update.
27841         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
27842         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
27843         * tree-ssa-loop-split.c (connect_loops): Update.
27844         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
27845         * tree-ssa-reassoc.c (branch_fixup): Update.
27846         * tree-ssa-tail-merge.c (replace_block_by): Update.
27847         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
27848         (compute_path_counts): Update.
27849         (update_profile): Update.
27850         (recompute_probabilities): Update.
27851         (update_joiner_offpath_counts): Update.
27852         (estimated_freqs_path): Update.
27853         (freqs_to_counts_path): Update.
27854         (clear_counts_path): Update.
27855         (ssa_fix_duplicate_block_edges): Update.
27856         (duplicate_thread_path): Update.
27857         * tree-switch-conversion.c (case_bit_test_cmp): Update.
27858         (struct switch_conv_info): Update.
27859         * tree-tailcall.c (decrease_profile): Update.
27860         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
27861         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
27862         * value-prof.c (check_counter): Update.
27863         (gimple_divmod_fixed_value): Update.
27864         (gimple_mod_pow2): Update.
27865         (gimple_mod_subtract): Update.
27866         (gimple_ic_transform): Update.
27867         (gimple_stringop_fixed_value): Update.
27868         * value-prof.h (gimple_ic): Update.
27869
27870 2017-06-02  Carl Love  <cel@us.ibm.com>
27871
27872         * config/rs6000/rs6000-c: Add support for built-in functions
27873         vector double vec_doublee (vector signed int);
27874         vector double vec_doublee (vector unsigned int);
27875         vector double vec_doublee (vector float);
27876         vector double vec_doubleh (vector signed int);
27877         vector double vec_doubleh (vector unsigned int);
27878         vector double vec_doubleh (vector float);
27879         vector double vec_doublel (vector signed int);
27880         vector double vec_doublel (vector unsigned int);
27881         vector double vec_doublel (vector float);
27882         vector double vec_doubleo (vector signed int);
27883         vector double vec_doubleo (vector unsigned int);
27884         vector double vec_doubleo (vector float);.
27885         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
27886         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
27887         UNS_DOUBLEL.
27888         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
27889         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
27890         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
27891         VS_sxwsp.
27892         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
27893         vec_doublel, vec_doubleh.
27894         * doc/extend.texi: Update the built-in documentation file for the
27895         new built-in functions.
27896
27897 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
27898
27899         PR jit/80954
27900         * ipa-inline-analysis.c (free_growth_caches): Set
27901         edge_removal_hook_holder to NULL after removing it.
27902
27903 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
27904
27905         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
27906         comparision with zero.
27907
27908 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
27909         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
27910         for early expansion of vec_min and vec_max builtins.
27911         (builtin_function_type): Add min/max unsigned variants to those
27912         identified as having unsigned arguments.
27913
27914 2017-06-02  Olivier Hainque  <hainque@adacore.com>
27915
27916         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
27917
27918 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27919
27920         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
27921         Use VALL_F16 iterator rather than VALL.
27922
27923 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27924
27925         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
27926         Emit CBNZ inside loop when doing a strong exchange and comparing
27927         against zero.  Generate the CC flags after the loop.
27928
27929 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
27930
27931         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
27932         (dl_section_ref): New.
27933         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
27934         On AIX, append an expression to subtract the size of the
27935         section length to dl_section_ref.
27936
27937 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
27938
27939         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
27940         for early expansion of vector absolute builtins.
27941
27942 2017-06-02  Richard Biener  <rguenther@suse.de>
27943
27944         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
27945         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
27946
27947 2017-06-02  Richard Biener  <rguenther@suse.de>
27948
27949         PR tree-optimization/80948
27950         * tree-tailcall.c (find_tail_calls): Track stmts to move in
27951         stmt order as well.
27952
27953 2017-06-02  Richard Biener  <rguenther@suse.de>
27954
27955         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
27956         PHIs are ok.
27957         * tree-vect-stmts.c (process_use): Do not mark backedge defs
27958         for inductions as relevant.
27959
27960 2017-06-02  Richard Biener  <rguenther@suse.de>
27961
27962         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
27963         (vectorizable_induction): ... this.  Remove dead code.
27964
27965 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
27966
27967         * builtins. (expand_builtin_alloca): Remove second parameter and
27968         infer its value from the first parameter instead.
27969         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
27970
27971 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
27972
27973         PR rtl-optimization/80903
27974         * loop-doloop.c (add_test): Unshare sequence.
27975
27976 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27977
27978         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
27979
27980 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27981
27982         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
27983         static.
27984         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
27985         xlogue_layout::get_instance, logue_layout::xlogue_layout,
27986         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
27987         (xlogue_layout::get_stub_rtx): Make static.
27988         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
27989         (xlogue_layout::compute_stub_managed_regs): Rename to...
27990         (xlogue_layout::count_stub_managed_regs): ...this.
27991         (xlogue_layout::is_stub_managed_reg): New function.
27992         (xlogue_layout::m_stub_names): Rename to...
27993         (xlogue_layout::s_stub_names): ...this, make static.
27994         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
27995         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
27996         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
27997         xlogue_layout::s_stub_names): Instantiate statics.
27998         (stub_managed_regs): Remove.
27999         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
28000         (disable_call_ms2sysv_xlogues): Rename to...
28001         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
28002         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
28003         warning logic.
28004         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
28005         change after reload_completed.
28006         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
28007         directly.
28008         (ix86_expand_prologue): Likewise.
28009         (ix86_expand_epilogue): Likewise.
28010         (ix86_expand_split_stack_prologue): Likewise.
28011         (ix86_compute_frame_layout): Remove frame parameter ...
28012         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
28013         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
28014         only if necessary.
28015         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
28016         (ix86_frame): Move from here ...
28017         * config/i386/i386.h (ix86_frame): ... to here.
28018         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
28019         complete ix86_frame data structure instead.  Remove some_ld_name.
28020
28021 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
28022
28023         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
28024         symbols that hold a DECL_VALUE_EXPR.
28025
28026 2017-06-01  Martin Jambor  <mjambor@suse.cz>
28027
28028         PR tree-optimization/80898
28029         * tree-sra.c (process_subtree_disqualification): Removed.
28030         (disqualify_candidate): Do not acll
28031         process_subtree_disqualification.
28032         (subtree_mark_written_and_enqueue): New function.
28033         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
28034         RHS has been disqualified and re-queue LHS if necessary.  Apart
28035         from that, ignore disqualified RHS.
28036
28037 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28038
28039         * config/s390/s390.c (s390_emit_epilogue): Disable early return
28040         address fetch for z10 or later.
28041
28042 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28043
28044         * config/arc/arc.md (tst_movb): Add guard when splitting.
28045
28046 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28047
28048         * config/arc/arc.c (arc_can_eliminate): Test against
28049         arc_frame_pointer_needed.
28050
28051 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28052
28053         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
28054         to prevent store reordering.
28055         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
28056         (type): Add block type.
28057         (stack_tie): Define special instruction to be used in
28058         expand_prologue.
28059
28060 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28061
28062         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
28063         constraint. It is not valid for the pattern.
28064         (noncommutative_binary_comparison): Likewise.
28065
28066 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28067
28068         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
28069         scaled addresses.
28070
28071 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28072
28073         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
28074         be used by the reg-alloc.
28075
28076 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28077
28078         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
28079         reg-alloc when having mul64 or mul32x16 instructions.
28080         (mulsidi3): Likewise.
28081         (umulsidi3): Likewise.
28082         (mulsi32x16): New pattern.
28083         (mulsi64): Likewise.
28084         (mulsidi64): Likewise.
28085         (umulsidi64): Likewise.
28086         (MUL32x16_REG): Define.
28087         (mul64_600): Use MUL32x16_REG.
28088         (mac64_600): Likewise.
28089         (umul64_600): Likewise.
28090         (umac64_600): Likewise.
28091
28092 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
28093
28094         * config/arc/arc.md (mulsi3_700): Make it commutative.
28095
28096 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
28097
28098         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
28099         type for movstouw.
28100         (*sign_extendsidi2_insn): Likewise for movstosw.
28101
28102 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
28103
28104         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
28105         the type of the input discriminant value.  Convert the
28106         discriminant value of signedness vary.
28107
28108 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
28109
28110         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
28111         Add to -Wall section.
28112
28113 2017-06-01  Richard Biener  <rguenther@suse.de>
28114
28115         PR middle-end/66313
28116         * fold-const.c (fold_plusminus_mult_expr): If the factored
28117         factor may be zero use a wrapping type for the inner operation.
28118         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
28119         and handle moved defs.
28120         (process_assignment): Properly guard the unary op case.  Return a
28121         tri-state indicating that moving the stmt before the call may allow
28122         to continue.  Pass through to_move.
28123         (find_tail_calls): Handle moving unrelated defs before
28124         the call.
28125
28126 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
28127
28128         PR target/80618
28129         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
28130         splitter result in the canonical way.
28131
28132 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
28133
28134         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
28135         also for 32bit target.  Update insn attributes.
28136         (zero-extendsidi2 splitter): Allow all registers for operand 1.
28137
28138 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
28139
28140         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
28141         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
28142         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
28143         (_mm_maskz_min_ss): New intrinsics.
28144
28145 2017-05-31  Martin Liska  <mliska@suse.cz>
28146
28147         * tree-vect-loop.c (vect_create_epilog_for_reduction):
28148         Change comment style to one we normally use.
28149         (vectorizable_reduction): Likewise.
28150         (vectorizable_induction): Likewise.
28151         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
28152         (vectorizable_call): Likewise.
28153         (vectorizable_simd_clone_call): Likewise.
28154         (vectorizable_conversion): Likewise.
28155         (vectorizable_assignment): Likewise.
28156         (vectorizable_shift): Likewise.
28157         (vectorizable_operation): Likewise.
28158         (vectorizable_store): Likewise.
28159         (vectorizable_load): Likewise.
28160         * tree-vectorizer.h: Likewise.
28161
28162 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
28163
28164         * passes.c (emergency_dump_function): New.
28165         * tree-pass.h (emergency_dump_function): Declare.
28166         * plugin.c (plugins_internal_error_function): Remove.
28167         * plugin.h (plugins_internal_error_function): Remove declaration.
28168         * toplev.c (internal_error_function): New static function.  Use it...
28169         (general_init): ...here.
28170
28171 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
28172
28173         * config/arc/arc.c (arc_print_operand): Handle constant operands.
28174         (arc_rtx_costs): Add costs for new patterns.
28175         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
28176         * config/arc/predicates.md: Add _1_2_3_operand predicate.
28177
28178 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
28179
28180         * tree-ssa-strlen.c (get_next_strinfo): New function.
28181         (get_stridx_plus_constant): Use it.
28182         (zero_length_string): Likewise.
28183         (adjust_related_strinfos): Likewise.
28184         (adjust_last_stmt): Likewise.
28185
28186 2017-05-31  Richard Biener  <rguenther@suse.de>
28187
28188         PR target/80880
28189         * config/i386/i386.c (ix86_expand_builtin): Remove assert
28190         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
28191
28192 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
28193
28194         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
28195         loop_vinfo argument and use of dependence distance vectors.
28196         Check instead whether the two references differ only in their
28197         initial value and assume that they have the same alignment if the
28198         difference is a multiple of the vector alignment.
28199         (vect_analyze_data_refs_alignment): Update call accordingly.
28200
28201 2017-05-31  Martin Liska  <mliska@suse.cz>
28202
28203         PR target/79155
28204         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
28205
28206 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
28207
28208         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
28209         (create_intersect_range_checks): Move from ...
28210         * tree-data-ref.c (create_intersect_range_checks_index)
28211         (create_intersect_range_checks): ... to here.
28212         (create_runtime_alias_checks): New function factored from ...
28213         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
28214         here.  Call above function.
28215         * tree-data-ref.h (create_runtime_alias_checks): New function.
28216
28217 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
28218
28219         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
28220         segment length for dr_b and compute it in wide_int.
28221
28222 2017-05-31  Richard Biener  <rguenther@suse.de>
28223
28224         PR tree-optimization/80906
28225         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
28226         and pass through iv_map.
28227         (copy_bb_and_scalar_dependences): Adjust.
28228         (translate_pending_phi_nodes): Likewise.
28229         (copy_loop_close_phi_args): Handle code-generating IVs instead
28230         of ICEing.
28231
28232 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
28233
28234         * diagnostic-color.c (color_dict): Add "type-diff".
28235         (parse_gcc_colors): Update comment.
28236         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
28237         -fdiagnostics-show-template-tree and -fno-elide-type.
28238         (GCC_COLORS): Add type-diff to example.
28239         (type-diff=): New.
28240         (-fdiagnostics-show-template-tree): New.
28241         (-fno-elide-type): New.
28242         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
28243         the pp_format_decoder callback.  Call any m_format_postprocessor's
28244         "handle" method.
28245         (pretty_printer::pretty_printer): Initialize
28246         m_format_postprocessor.
28247         (pretty_printer::~pretty_printer): Delete any
28248         m_format_postprocessor.
28249         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
28250         (class format_postprocessor): New class.
28251         (struct pretty_printer::format_decoder): Document the new parameters.
28252         (struct pretty_printer::m_format_postprocessor): New field.
28253         * tree-diagnostic.c (default_tree_printer): Update for new
28254         bool and const char ** params.
28255         * tree-diagnostic.h (default_tree_printer): Likewise.
28256
28257 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
28258
28259         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
28260         (lwa_operand): Delete rs6000_gen_cell_microcode test.
28261         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
28262         rs6000_gen_cell_microcode code.
28263         (rs6000_final_prescan_insn): Delete.
28264         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
28265         "warn-cell-microcode" entries.
28266         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
28267         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
28268         throughout.  Change cc_reg_not_micro_cr0_operand to
28269         cc_reg_not_cr0_operand throughout.
28270         (*extendhi<mode>2_noload): Delete.
28271         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
28272         (mwarn-cell-microcode): Delete.
28273         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
28274         -mgen-cell-microcode and -mwarn-cell-microcode.
28275
28276 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
28277
28278         PR target/80833
28279         * config/i386/constraints.md (Yd): New constraint.
28280         (Ye): Ditto.
28281         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
28282         and (?Yd, r) alternatives.  Update insn attributes.
28283         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
28284         and (?*Yd, r) alternatives.  Update insn attributes.
28285         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
28286
28287 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
28288
28289         * gimplify.c (gimplify_modify_expr): Don't create a
28290         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
28291         function.
28292
28293 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
28294
28295         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
28296
28297 2017-05-30  Richard Biener  <rguenther@suse.de>
28298
28299         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
28300         and reduc_def fields.
28301         (STMT_VINFO_REDUC_TYPE): New define.
28302         (STMT_VINFO_REDUC_DEF): Likewise.
28303         (vect_force_simple_reduction): Adjust prototype.
28304         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
28305         (vect_is_simple_reduction): Remove check_reduction argument.
28306         (vect_force_simple_reduction): Adjust and set
28307         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
28308         (vectorizable_reduction): Do not re-do reduction analysis
28309         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
28310         * tree-parloops.c (gather_scalar_reductions): Adjust.
28311
28312 2017-05-30  Richard Biener  <rguenther@suse.de>
28313
28314         PR middle-end/80901
28315         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
28316         split_edge code.
28317
28318 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28319
28320         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
28321         Introduce unknown_misalignment parameter and remove vf.
28322         (vect_peeling_hash_get_lowest_cost):
28323         Pass unknown_misalignment parameter.
28324         (vect_enhance_data_refs_alignment):
28325         Fix unsupportable data ref treatment.
28326
28327 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28328
28329         * tree-vect-data-refs.c (vect_get_data_access_cost):
28330         Workaround for SLP handling.
28331         (vect_enhance_data_refs_alignment):
28332         Compute costs for doing no peeling at all, compare to the best
28333         peeling costs so far and avoid peeling if cheaper.
28334
28335 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28336
28337         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
28338         Return peeling info and set costs to zero for unlimited cost
28339         model.
28340         (vect_enhance_data_refs_alignment): Also inspect all datarefs
28341         with unknown misalignment. Compute and costs for unknown
28342         misalignment, compare them to the costs for known misalignment
28343         and choose the cheapest for peeling.
28344
28345 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28346
28347         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
28348         (vect_get_peeling_costs_all_drs): Create function.
28349         (vect_peeling_hash_get_lowest_cost):
28350         Use vect_get_peeling_costs_all_drs.
28351         (vect_peeling_supportable): Create function.
28352         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
28353
28354 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
28355
28356         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
28357         DR_HAS_NEGATIVE_STEP.
28358         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
28359         (vect_enhance_data_refs_alignment): Use.
28360         (vect_duplicate_ssa_name_ptr_info): Use.
28361         * tree-vectorizer.h (dr_misalignment): Use.
28362         (known_alignment_for_access_p): Use.
28363
28364 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
28365
28366         PR target/78838
28367         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
28368         .lowtext.
28369         (has_section_name): New function.
28370
28371 2017-05-30  Martin Liska  <mliska@suse.cz>
28372
28373         PR other/80909
28374         * auto-profile.c (get_function_decl_from_block): Fix
28375         parenthesis.
28376
28377 2017-05-30  Richard Biener  <rguenther@suse.de>
28378
28379         PR middle-end/80876
28380         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
28381
28382 2017-05-30  Martin Liska  <mliska@suse.cz>
28383
28384         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
28385         * dumpfile.h (struct dump_file_info): Remove ctors.
28386
28387 2017-05-30  Martin Liska  <mliska@suse.cz>
28388
28389         * predict.def: Fix GNU coding style.
28390
28391 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
28392
28393         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
28394         Mark 'to' argument with ATTRIBUTE_UNUSED.
28395
28396 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
28397
28398         * config/xtensa/xtensa.c (xtensa_emit_call): Use
28399         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
28400         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
28401         format string.
28402
28403 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
28404
28405         * doc/install.texi (Options specification): Restore entry of
28406         --enable-sjlj-exceptions.
28407
28408 2017-05-27  Michael Eager  <eager@eagercon.com>
28409
28410         Revert:
28411         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
28412
28413         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
28414
28415         * config/microblaze/microblaze.h
28416         (FIXED_REGISTERS): Update in macro.
28417         (CALL_USED_REGISTERS): Update in macro.
28418
28419 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
28420
28421         * doc/install.texi: Add links to macOS binary distributions.
28422
28423 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
28424
28425         PR bootstrap/80887
28426         Revert:
28427         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28428
28429         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
28430
28431 2017-05-26  Martin Liska  <mliska@suse.cz>
28432
28433         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
28434
28435 2017-05-26  Martin Liska  <mliska@suse.cz>
28436
28437         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
28438         always leading ';; '.
28439         (dump_bb_info): Likewise.
28440         (brief_dump_cfg): Likewise.
28441         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
28442         * dumpfile.c: Remove usage of TDF_VERBOSE.
28443         * dumpfile.h (enum dump_kind): Likewise.
28444         (dump_gimple_bb_header): Do not use TDF_COMMENT.
28445         * print-tree.c (debug_verbose): Remove.
28446         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
28447         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
28448         * tree-diagnostic.c (default_tree_printer): Replace
28449         TDF_DIAGNOSTIC with TDF_SLIM.
28450
28451 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28452
28453         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
28454         in parameter loop, rather than loop_vinfo.
28455         (create_intersect_range_checks): Ditto.
28456         (vect_create_cond_for_alias_checks): Update call to above functions.
28457
28458 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28459
28460         PR tree-optimization/80815
28461         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
28462         for merging runtime alias checks.  Handle negative DR_STEPs.
28463
28464 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28465
28466         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
28467         Move from ...
28468         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
28469         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
28470         out code pruning runtime alias checks.
28471         * tree-data-ref.c (prune_runtime_alias_test_list): New function
28472         factored out from above.
28473         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
28474         Move from ...
28475         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
28476         ... to here.
28477         (prune_runtime_alias_test_list): New decalaration.
28478
28479 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
28480
28481         * tree-vect-data-refs.c (compare_tree): Rename and move ...
28482         * tree-data-ref.c (data_ref_compare_tree): ... to here.
28483         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
28484         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
28485         (operator==, comp_dr_with_seg_len_pair): Ditto.
28486         (vect_prune_runtime_alias_test_list): Ditto.
28487
28488 2017-05-26  Martin Liska  <mliska@suse.cz>
28489
28490         PR ipa/80663
28491         * params.def: Bound partial-inlining-entry-probability param.
28492
28493 2017-05-26  Marek Polacek  <polacek@redhat.com>
28494
28495         PR sanitizer/80875
28496         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
28497         can be negated.
28498
28499 2017-05-26  Richard Biener  <rguenther@suse.de>
28500
28501         PR tree-optimization/80842
28502         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
28503         value.
28504
28505 2017-05-26  Richard Biener  <rguenther@suse.de>
28506
28507         PR tree-optimization/80844
28508         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
28509
28510 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
28511
28512         * doc/md.texi (Machine Constraints): Update x86 family
28513         machine constraints section to match 'config/i386/constraints.md'.
28514
28515 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
28516
28517         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
28518
28519 2017-05-25  Nathan Sidwell  <nathan@acm.org>
28520
28521         * doc/invoke.texi (--enable-languages): Update documentation.
28522
28523 2017-05-25  Martin Liska  <mliska@suse.cz>
28524
28525         * dumpfile.c: Add TDF_FOLDING.
28526         * dumpfile.h (enum dump_kind): Likewise.
28527         * genmatch.c (dt_simplify::gen_1): Use it.
28528
28529 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28530
28531         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
28532
28533 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28534
28535         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
28536         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
28537
28538 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
28539
28540         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
28541         * match.pd (X == C): Rewrite it here.
28542         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
28543         with_certain_nonzero_bits2): New predicates.
28544         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
28545
28546 2017-05-24  Nathan Sidwell  <nathan@acm.org>
28547
28548         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
28549         avoid warning.
28550
28551         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
28552         warning.
28553
28554 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
28555
28556         * config/powerpcspe: New port.  Files are copied from the rs6000
28557         port, with "rs6000" in filenames replaced by "powerpcspe".
28558
28559 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
28560
28561         PR rtl-optimization/80754
28562         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
28563
28564 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
28565
28566         * config/sparc/sparc.md (length): Return the correct value for -mflat
28567         sibcalls to match output_sibcall.
28568
28569 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
28570
28571         PR bootstrap/80860
28572         PR bootstrap/80843
28573         * config/rs6000/rs6000.c (struct machine_function): Add new field
28574         n_components.
28575         (rs6000_get_separate_components): Init that field, use it.
28576         (rs6000_components_for_bb): Use the field.
28577
28578 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28579
28580         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
28581
28582 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
28583
28584         PR middle-end/80823
28585         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
28586
28587 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28588
28589         PR target/80725
28590         * config/s390/s390.c (s390_check_qrst_address): Check incoming
28591         address against address_operand predicate.
28592         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
28593
28594 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
28595
28596         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
28597         parameters passed indirectly.
28598
28599 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
28600
28601         * config/i386/i386.md (*movdi_internal): Remove SSE4
28602         alternative 18 (?r, *v).  Update insn attributes.
28603         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
28604         Update insn attributes.
28605         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
28606         Update insn attributes.
28607         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
28608         alternative 1 (r, v). Remove isa attribute.
28609         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
28610         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
28611         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
28612
28613 2017-05-23  Tom de Vries  <tom@codesourcery.com>
28614
28615         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
28616         dg-line directive.
28617
28618 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28619
28620         * cgraphunit.c (symbol_table::process_new_functions): Update.
28621         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
28622         (inline_generate_summary): Rename to ...
28623         (ipa_fn_summary_generate): ... this one.
28624         (inline_read_summary): Rename to ...
28625         (ipa_fn_summary_read): ... this one.
28626         (inline_write_summary): Rename to ...
28627         (ipa_fn_summary_write): ... this one.
28628         (inline_free_summary): Rename to ...
28629         (ipa_free_fn_summary): ... this one.
28630         (pass_data_local_fn_summary, pass_local_fn_summary,
28631         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
28632         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
28633         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
28634         make_pass_ipa_fn_summary): New.
28635         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
28636         inline_write_summary, inline_free_summary): Remove.
28637         (ipa_free_fn_summary) : New.
28638         * ipa-inline.c (ipa_inline): Update.
28639         (pass_ipa_inline): Do not generate summaries.
28640         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
28641         Remove.
28642         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
28643         and add pass_ipa_fn_summary.
28644         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
28645         New.
28646         (make_pass_inline_parameters): Remove.
28647
28648 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
28649
28650         * omp-low.c (struct omp_context): Remove "default_kind" member.
28651         Adjust all users.
28652
28653         * omp-offload.c (execute_oacc_device_lower): Remove the
28654         parallelism dimensions function attributes for unparallelized
28655         OpenACC kernels constructs.
28656
28657 2017-05-23  Martin Liska  <mliska@suse.cz>
28658
28659         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
28660         functions.
28661         (cgraph_edge::make_speculative): Likewise.
28662         (cgraph_edge::resolve_speculation): Likewise.
28663         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
28664         (cgraph_node::dump): Likewise.
28665         * cgraph.h: Likewise.
28666         * cgraphunit.c (analyze_functions): Likewise.
28667         (symbol_table::compile): Likewise.
28668         * ipa-cp.c (print_all_lattices): Likewise.
28669         (determine_versionability): Likewise.
28670         (initialize_node_lattices): Likewise.
28671         (ipcp_verify_propagated_values): Likewise.
28672         (estimate_local_effects): Likewise.
28673         (update_profiling_info): Likewise.
28674         (create_specialized_node): Likewise.
28675         (perhaps_add_new_callers): Likewise.
28676         (decide_about_value): Likewise.
28677         (decide_whether_version_node): Likewise.
28678         (identify_dead_nodes): Likewise.
28679         (ipcp_store_bits_results): Likewise.
28680         * ipa-devirt.c (dump_targets): Likewise.
28681         (ipa_devirt): Likewise.
28682         * ipa-icf.c (sem_item::dump): Likewise.
28683         (sem_function::equals): Likewise.
28684         (sem_variable::equals): Likewise.
28685         (sem_item_optimizer::read_section): Likewise.
28686         (sem_item_optimizer::execute): Likewise.
28687         (congruence_class::dump): Likewise.
28688         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
28689         (dump_inline_summary): Likewise.
28690         (estimate_node_size_and_time): Likewise.
28691         (inline_analyze_function): Likewise.
28692         * ipa-inline-transform.c (inline_call): Likewise.
28693         * ipa-inline.c (report_inline_failed_reason): Likewise.
28694         (want_early_inline_function_p): Likewise.
28695         (edge_badness): Likewise.
28696         (update_edge_key): Likewise.
28697         (inline_small_functions): Likewise.
28698         * ipa-profile.c (ipa_profile): Likewise.
28699         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
28700         (ipa_make_edge_direct_to_target): Likewise.
28701         (remove_described_reference): Likewise.
28702         (ipa_impossible_devirt_target): Likewise.
28703         (propagate_controlled_uses): Likewise.
28704         (ipa_print_node_params): Likewise.
28705         (ipcp_transform_function): Likewise.
28706         * ipa-pure-const.c (pure_const_read_summary): Likewise.
28707         (propagate_pure_const): Likewise.
28708         * ipa-reference.c (generate_summary): Likewise.
28709         (read_write_all_from_decl): Likewise.
28710         (propagate): Likewise.
28711         (ipa_reference_read_optimization_summary): Likewise.
28712         * ipa-utils.c (ipa_merge_profiles): Likewise.
28713         * ipa.c (walk_polymorphic_call_targets): Likewise.
28714         (symbol_table::remove_unreachable_nodes): Likewise.
28715         (ipa_single_use): Likewise.
28716         * passes.c (execute_todo): Likewise.
28717         * predict.c (drop_profile): Likewise.
28718         * symtab.c (symtab_node::get_dump_name): New function.
28719         (symtab_node::dump_name): Likewise.
28720         (symtab_node::dump_asm_name): Likewise.
28721         (symtab_node::dump_references): Likewise.
28722         (symtab_node::dump_referring): Likewise.
28723         (symtab_node::dump_base): Likewise.
28724         (symtab_node::debug_symtab): Likewise.
28725         * tree-sra.c (convert_callers_for_node): Likewise.
28726         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
28727         * value-prof.c (init_node_map): Likewise.
28728
28729 2017-05-23  Martin Liska  <mliska@suse.cz>
28730
28731         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
28732         and symtab_node::debug_symtab to symbol_table::debug.
28733         * cgraphunit.c (analyze_functions): Use the renamed function.
28734         (symbol_table::compile): Likewise.
28735         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
28736         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
28737         * passes.c (execute_todo): Likewise.
28738         * symtab.c (symbol_table::dump): New function.
28739         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
28740
28741 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28742
28743         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
28744         that nonconst implies exec.
28745
28746 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28747
28748         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
28749         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
28750         (inline_edge_summary_vec): Turn into ...
28751         (ipa_call_summaries): ... this one.
28752         (redirect_to_unreachable, edge_set_predicate,
28753         evaluate_properties_for_edge, inline_summary_alloc,
28754         reset_ipa_call_summary, reset_inline_summary,
28755         inline_summary_t::duplicate): Update.
28756         (inline_edge_duplication_hook): Turn to ...
28757         (ipa_call_summary_t::duplicate): ... this one.
28758         (inline_edge_removal_hook): Turn to ...
28759         (ipa_call_summary_t::remove): ... this one.
28760         (dump_inline_edge_summary): Turn to ...
28761         (dump_ipa_call_summary): ... this one.
28762         (estimate_function_body_sizes): Update.
28763         (inline_update_callee_summaries): Update.
28764         (remap_edge_change_prob): Update.
28765         (remap_edge_summaries): Update.
28766         (inline_merge_summary): Update.
28767         (do_estimate_edge_time): Update.
28768         (inline_generate_summary): Update.
28769         (inline_read_section): Update.
28770         (inline_read_summary): Update.
28771         (inline_free_summary): Update.
28772         * ipa-inline.c (can_inline_edge_p): Update.
28773         (compute_inlined_call_time): Update.
28774         (want_inline_small_function_p): Update.
28775         (edge_badness): Update.
28776         (early_inliner): Update.
28777         * ipa-inline.h (inline_edge_summary): Turn to ...
28778         (ipa_call_summary): ... this one.
28779         (ipa_call_summary_t): New class.
28780         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
28781         (ipa_call_summaries): New.
28782         (inline_edge_summary): Remove.
28783         (estimate_edge_growth): Update.
28784         * ipa-profile.c (ipa_propagate_frequency_1): Update.
28785         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
28786         * ipa-split.c (execute_split_functions): Update.
28787         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
28788
28789 2017-05-23  Tom de Vries  <tom@codesourcery.com>
28790
28791         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
28792         attributes): Document rdrand effective target.
28793
28794 2017-05-23  Tom de Vries  <tom@codesourcery.com>
28795
28796         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
28797         attributes): Sort alphabetically.
28798
28799 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
28800
28801         * config/avr/genmultilib.awk: Use gsub instead of gensub.
28802
28803 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
28804
28805         PR target/80718
28806         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
28807         V2DF/V2DI splat into two separate patterns, one that handles
28808         registers, and the other that only handles memory.  Drop support
28809         for splatting from a GPR on ISA 2.07 and then splitting the
28810         splat into direct move and splat.
28811         (vsx_splat_<mode>_reg): Likewise.
28812         (vsx_splat_<mode>_mem): Likewise.
28813
28814 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
28815
28816         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
28817
28818 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
28819
28820         PR middle-end/80809
28821         * omp-low.c (finish_taskreg_remap): New function.
28822         (finish_taskreg_scan): If unit size of ctx->record_type
28823         is non-constant, unshare the size expression and replace
28824         decls in it with possible outer var refs.
28825
28826         PR middle-end/80809
28827         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
28828         GOVD_SHARED rather than GOVD_PRIVATE with it.
28829         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
28830         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
28831
28832         PR middle-end/80853
28833         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
28834         as last argument to build_outer_var_ref for pointer bases of array
28835         section reductions.
28836
28837 2017-05-19  Martin Sebor  <msebor@redhat.com>
28838
28839         * print-tree.c (print_node): Print DECL_READ_P flag.
28840
28841 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
28842
28843         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
28844         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
28845         * cgraph.c: Likewise.
28846         * cgraphunit.c: Likewise.
28847         * gengtype.c: Likewise.
28848         * ipa-cp.c: Likewise.
28849         * ipa-devirt.c: Likewise.
28850         * ipa-icf.c: Likewise.
28851         * ipa-predicate.c: Likewise.
28852         * ipa-profile.c: Likewise.
28853         * ipa-prop.c: Likewise.
28854         * ipa-split.c: Likewise.
28855         * ipa.c: Likewise.
28856         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
28857         edge_predicate_pool, dump_inline_hints,
28858         inline_summary::account_size_time, redirect_to_unreachable,
28859         edge_set_predicate, set_hint_predicate,
28860         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
28861         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
28862         inline_summary_t::remove, remap_hint_predicate_after_duplication,
28863         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
28864         ipa_call_summary_t::remove, initialize_growth_caches,
28865         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
28866         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
28867         mark_modified, unmodified_parm_1, unmodified_parm,
28868         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
28869         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
28870         compute_bb_predicates, will_be_nonconstant_expr_predicate,
28871         will_be_nonconstant_predicate, record_modified_bb_info,
28872         get_minimal_bb, record_modified, param_change_prob,
28873         phi_result_unknown_predicate, predicate_for_phi_result,
28874         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
28875         estimate_function_body_sizes, compute_inline_parameters,
28876         compute_inline_parameters_for_curren, pass_data_inline_parameters,
28877         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
28878         inline_update_callee_summaries, remap_edge_change_prob,
28879         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
28880         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
28881         inline_analyze_function, inline_summary_t::insert,
28882         inline_generate_summary, read_ipa_call_summary, inline_read_section,
28883         inline_read_summary, write_ipa_call_summary, inline_write_summary,
28884         inline_free_summary): Move to ipa-fnsummary.h
28885         (predicate_t): Remove.
28886         * ipa-fnsummary.c: New file.
28887         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
28888         (enum inline_hints_vals, inline_hints, agg_position_info,
28889         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
28890         inline_summaries, ipa_call_summary, ipa_call_summary_t,
28891         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
28892         dump_inline_summary, dump_inline_hints, inline_generate_summary,
28893         inline_read_summary, inline_write_summary, inline_free_summary,
28894         inline_analyze_function, initialize_inline_failed,
28895         inline_merge_summary, inline_update_overall_summary,
28896         compute_inline_parameters): Move to ipa-fnsummary.h
28897         * ipa-fnsummary.h: New file.
28898         * ipa-inline-transform.h: Include ipa-inline.h.
28899         * ipa-inline.c: LIkewise.
28900
28901 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
28902
28903         * ipa-inline.c (edge_badness): Use inlined_time instead of
28904         inline_summaries->get.
28905
28906 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
28907
28908         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
28909
28910 2017-05-22  Nathan Sidwell  <nathan@acm.org>
28911
28912         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
28913         (fdump-lang): Document 'raw' option.
28914         * dumpfile.h (TDI_tu): Delete.
28915         * dumpfile.c (dump_files): Remove translation-unit.
28916         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
28917
28918 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
28919
28920         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
28921         command option from $(AWK) call.
28922         * config/avr/genmultilib.awk: Simplify and rewrite so that it
28923         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
28924         [FORMAT]: Remove handling of variable.
28925         * config/avr/t-multilib: Regenerate.
28926
28927 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
28928
28929         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
28930         self_time.
28931         (dump_inline_summary): Do not print self_time.
28932         (estimate_function_body_sizes): Do not set self_time.
28933         (compute_inline_parameters): Likewise.
28934         (inline_read_section, inline_write_summary): Do not stream self_time.
28935         * ipa-inline.h (inline_summary): Drop self_time.
28936
28937 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
28938
28939         * ipa-inline-analysis.c (account_size_time): Rename to ...
28940         (inline_summary::account_size_time): ... this one.
28941         (reset_ipa_call_summary): Turn to ...
28942         (ipa_call_summary::reset): ... this one.
28943         (reset_inline_summary): Turn to ...
28944         (inline_summary::reset): ... this one.
28945         (inline_summary_t::remove): Update.
28946         (inline_summary_t::duplicate): Update.
28947         (ipa_call_summary_t::remove): Update.
28948         (dump_inline_summary): Update.
28949         (estimate_function_body_sizes): Update.
28950         (compute_inline_parameters): Update.
28951         (estimate_node_size_and_time): Update.
28952         (inline_merge_summary): Update.
28953         (inline_update_overall_summary): Update.
28954         (inline_read_section): Update.
28955         (inline_write_summary): Update.
28956         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
28957         add account_size_time and reset member functions.
28958         (ipa_call_summary): Add reset function.
28959         * ipa-predicate.h (predicate::operator &): Constify.
28960
28961 2017-05-22  Richard Biener  <rguenther@suse.de>
28962
28963         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
28964
28965 2017-05-19  Jason Merrill  <jason@redhat.com>
28966
28967         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
28968
28969 2017-05-19  Marek Polacek  <polacek@redhat.com>
28970
28971         PR sanitizer/80800
28972         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
28973         TYPE_OVERFLOW_WRAPS checks.
28974
28975 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
28976
28977         * tree-core.h (enum omp_clause_default_kind): Add
28978         "OMP_CLAUSE_DEFAULT_PRESENT".
28979         * tree-pretty-print.c (dump_omp_clause): Handle it.
28980         * gimplify.c (enum gimplify_omp_var_data): Add
28981         "GOVD_MAP_FORCE_PRESENT".
28982         (gimplify_adjust_omp_clauses_1): Map it to
28983         "GOMP_MAP_FORCE_PRESENT".
28984         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
28985
28986         * gimplify.c (oacc_default_clause): Clarify.
28987
28988 2017-05-19  Nathan Sidwell  <nathan@acm.org>
28989
28990         LANG_HOOK_REGISTER_DUMPS
28991         * toplev.c (general_init): Call register dump lang hook.
28992         * doc/invoke.texi: Document -fdump-lang option family.
28993         * dumpfile.c (dump_files): Remove class dump here.
28994         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
28995         * dumpfile.h (tree_dump_index): Remove TDI_class.
28996         * langhooks-def.h (lhd_register_dumps): Declare.
28997         (LANG_HOOKS_REGISTER_DUMPS): Define.
28998         (LANG_HOOKS_INITIALIZER): Add it.
28999         * langhooks.c (lhd_register_dumps): Define.
29000         * langhooks.h (struct lang_hooks): Add register_dumps.
29001
29002 2017-05-19  Nathan Sidwell  <nathan@acm.org>
29003
29004         * context.h (context::set_passes): New.
29005         * context.c (context::context): Do not create pass manager.
29006         * toplev.c (general_init): Create pass manager here.
29007
29008 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
29009
29010         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
29011         use this splitter if two add or or instructions would also work for
29012         the constant we want to generate.
29013
29014 2017-05-19  Richard Biener  <rguenther@suse.de>
29015
29016         PR build/80821
29017         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
29018         predicate evaluation.
29019
29020 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
29021
29022         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
29023         add ctor.
29024         * ipa-inline.c (want_inline_small_function_p): Do not cast to
29025         unsigned.
29026
29027 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
29028
29029         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
29030         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
29031         (inline_edge_summary_vec): Turn into ...
29032         (ipa_call_summaries): ... this one.
29033         (redirect_to_unreachable, edge_set_predicate,
29034         evaluate_properties_for_edge, inline_summary_alloc,
29035         reset_ipa_call_summary, reset_inline_summary,
29036         inline_summary_t::duplicate): Update.
29037         (inline_edge_duplication_hook): Turn to ...
29038         (ipa_call_summary_t::duplicate): ... this one.
29039         (inline_edge_removal_hook): Turn to ...
29040         (ipa_call_summary_t::remove): ... this one.
29041         (dump_inline_edge_summary): Turn to ...
29042         (dump_ipa_call_summary): ... this one.
29043         (estimate_function_body_sizes): Update.
29044         (inline_update_callee_summaries): Update.
29045         (remap_edge_change_prob): Update.
29046         (remap_edge_summaries): Update.
29047         (inline_merge_summary): Update.
29048         (do_estimate_edge_time): Update.
29049         (inline_generate_summary): Update.
29050         (inline_read_section): Update.
29051         (inline_read_summary): Update.
29052         (inline_free_summary): Update.
29053         * ipa-inline.c (can_inline_edge_p): Update.
29054         (compute_inlined_call_time): Update.
29055         (want_inline_small_function_p): Update.
29056         (edge_badness): Update.
29057         (early_inliner): Update.
29058         * ipa-inline.h (inline_edge_summary): Turn to ...
29059         (ipa_call_summary): ... this one.
29060         (ipa_call_summary_t): New class.
29061         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
29062         (ipa_call_summaries): New.
29063         (inline_edge_summary): Remove.
29064         (estimate_edge_growth): Update.
29065         * ipa-profile.c (ipa_propagate_frequency_1): Update.
29066         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
29067         * ipa-split.c (execute_split_functions): Update.
29068         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
29069
29070 2017-05-19  Richard Biener  <rguenther@suse.de>
29071
29072         PR middle-end/80764
29073         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
29074
29075 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
29076
29077         * config/rs6000/rs6000.c (struct machine_function): Add field
29078         fpr_is_wrapped_separately.
29079         (rs6000_get_separate_components): Use 64 components.  Handle the
29080         new FPR components.
29081         (rs6000_components_for_bb): Handle the FPR components.
29082         (rs6000_emit_prologue_components): Handle the FPR components.
29083         (rs6000_emit_epilogue_components): Handle the FPR components.
29084         (rs6000_set_handled_components): Handle the FPR components.
29085         (rs6000_emit_prologue): Don't output prologue code for those FPRs
29086         that are already separately shrink-wrapped.
29087         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
29088         that are already separately shrink-wrapped.
29089
29090 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
29091
29092         PR target/80510
29093         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
29094         New predicate.
29095
29096         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
29097         (define_peephole2 for Altivec d-form load): Add peepholes to catch
29098         cases where the register allocator uses a move and an offsettable
29099         memory operation to/from a FPR register on ISA 2.06/2.07.
29100         (define_peephole2 for Altivec d-form store): Likewise.
29101
29102 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
29103
29104         PR target/80799
29105         * config/i386/mmx.md (*mov<mode>_internal): Enable
29106         alternatives 11, 12, 13 and 14 also for 32bit targets.
29107         Remove alternatives 15, 16, 17 and 18.
29108         * config/i386/sse.md (vec_concatv2di): Change
29109         alternative (!x, *y) to (x, ?!*Yn).
29110
29111 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
29112
29113         * dumpfile.h (enum dump_kind): Remove stray comma.
29114
29115 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
29116
29117         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
29118         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
29119         predicate::num_conditions
29120         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
29121         (CHANGED): turn into predicate::changed.
29122         (agg_position_info): Move to ipa-predicate.h
29123         (add_condition, predicate::add_clause, predicate::operator &=,
29124         predicate::or_with, predicate::evaluate, predicate::probability,
29125         dump_condition, dump_clause, predicate::dump,
29126         predicate::remap_after_duplication, predicate::remap_after_inlining,
29127         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
29128         (evaluate_conditions_for_known_args): Update.
29129         (set_cond_stmt_execution_predicate): Update.
29130         * ipa-inline.h: Include ipa-predicate.h
29131         (condition, inline_param_summary, conditions, agg_position_info,
29132         predicate): Move to ipa-predicate.h
29133         * ipa-predicate.c: New file.
29134         * ipa-predicate.h: New file.
29135
29136 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
29137
29138         * final.c (leaf_function_p): Check we are not in a sequence.
29139
29140 2017-05-18  Martin Liska  <mliska@suse.cz>
29141
29142         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
29143         * dumpfile.c (dump_register): Use new enum dump_kind.
29144         (get_dump_file_name): Likewise.
29145         (dump_enable_all): Likewise.
29146         (dump_switch_p_1): Likewise.
29147         (enable_rtl_dump_file): Remove usage of TDF_RTL.
29148         * dumpfile.h (enum dump_kind): New enum type.
29149         (struct dump_file_info): Create constructor and
29150         format fields and comments.
29151         * passes.c (pass_manager::register_one_dump_file):
29152         Use num dump_kind.
29153         * statistics.c (statistics_early_init): Likewise.
29154         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
29155         TDF_TREE with TDF_SLIM.
29156         (gather_memory_references_ref): Likewise.
29157
29158 2017-05-18  Martin Liska  <mliska@suse.cz>
29159
29160         * vec.h (struct vnull): Use it.
29161
29162 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
29163
29164         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
29165         (true_predicate, false_predicate, true_predicate_p,
29166         false_predicate_p): Remove.
29167         (single_cond_predicate, not_inlined_predicate): Turn to member function
29168         in ipa-inline.h
29169         (add_condition): Update.
29170         (add_clause): Turn to...
29171         (predicate::add_clause): ... this one; update; allow passing NULL
29172         as parameter.
29173         (and_predicates): Turn to ...
29174         (predicate::operator &=): ... this one.
29175         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
29176         (or_predicates): Turn to ...
29177         (predicate::or_with): ... this one.
29178         (evaluate_predicate): Turn to ...
29179         (predicate::evaluate): ... this one.
29180         (predicate_probability): Turn to ...
29181         (predicate::probability): ... this one.
29182         (dump_condition): Update.
29183         (dump_predicate): Turn to ...
29184         (predicate::dump): ... this one.
29185         (account_size_time): Update.
29186         (edge_set_predicate): Update.
29187         (set_hint_predicate): UPdate.
29188         (evaluate_conditions_for_known_args): Update.
29189         (evaluate_properties_for_edge): Update.
29190         (remap_predicate_after_duplication): Turn to...
29191         (predicate::remap_after_duplication): ... this one.
29192         (remap_hint_predicate_after_duplication): Update.
29193         (inline_summary_t::duplicate): UPdate.
29194         (dump_inline_edge_summary): Update.
29195         (dump_inline_summary): Update.
29196         (set_cond_stmt_execution_predicate): Update.
29197         (set_switch_stmt_execution_predicate): Update.
29198         (compute_bb_predicates): Update.
29199         (will_be_nonconstant_expr_predicate): Update.
29200         (will_be_nonconstant_predicate): Update.
29201         (phi_result_unknown_predicate): Update.
29202         (predicate_for_phi_result): Update.
29203         (array_index_predicate): Update.
29204         (estimate_function_body_sizes): Update.
29205         (estimate_node_size_and_time): Update.
29206         (estimate_ipcp_clone_size_and_time): Update.
29207         (remap_predicate): Rename to ...
29208         (predicate::remap_after_inlining): ... this one.
29209         (remap_hint_predicate): Update.
29210         (inline_merge_summary): Update.
29211         (inline_update_overall_summary): Update.
29212         (estimate_size_after_inlining): Update.
29213         (read_predicate): Rename to ...
29214         (predicate::stream_in): ... this one.
29215         (read_inline_edge_summary): Update.
29216         (write_predicate): Rename to ...
29217         (predicate::stream_out): ... this one.
29218         (write_inline_edge_summary): Update.
29219         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
29220         (clause_t): Turn to uint32_t
29221         (predicate): Turn to class; implement constructor and operators
29222         ==, !=, &
29223         (size_time_entry): Update.
29224         (inline_summary): Update.
29225         (inline_edge_summary): Update.
29226
29227 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
29228
29229         * fold-const.c (fold_binary_loc): Move transformation...
29230         * match.pd (C - X CMP X): ... here.
29231
29232 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
29233
29234         * config/sparc/sparc.c (sparc_option_override): Set function
29235         alignment for -mcpu=niagara7 to 64 to match the I$ line.
29236         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
29237         latency to 1.
29238         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
29239         latency to 2.
29240         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
29241
29242 2017-05-18  Marek Polacek  <polacek@redhat.com>
29243
29244         PR sanitizer/80797
29245         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
29246         (pass_ubsan::execute): Call gimple_assign_single_p instead of
29247         gimple_assign_load_p.
29248
29249 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
29250
29251         PR middle-end/80692
29252         * real.c (do_compare): Give decimal_do_compare preference over
29253         comparing just the signs.
29254
29255 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
29256
29257         * doc/md.texi (Canonicalization of Instructions): Describe the
29258         canonical form of instructions that inherently set a condition
29259         code register.
29260
29261 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
29262
29263         PR middle-end/80775
29264         * tree-cfg.c: Move deletion of unreachable case statements to after
29265         the merging of consecutive case labels.
29266
29267 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29268
29269         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
29270         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
29271         restoring of callee-saved registers.
29272
29273 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
29274
29275         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
29276         * config/visium/visium.c (single_set_and_flags): Likewise.
29277         * config/visium/visium.md (Substitutions): Likewise.
29278
29279 2017-05-17  Martin Liska  <mliska@suse.cz>
29280
29281         * cfg.c: Introduce dump_flags_t type and
29282         use it instead of int type.
29283         * cfg.h: Likewise.
29284         * cfghooks.c: Likewise.
29285         * cfghooks.h (struct cfg_hooks): Likewise.
29286         * cfgrtl.c: Likewise.
29287         * cfgrtl.h: Likewise.
29288         * cgraph.c (cgraph_node::get_body): Likewise.
29289         * coretypes.h: Likewise.
29290         * domwalk.c: Likewise.
29291         * domwalk.h: Likewise.
29292         * dumpfile.c (struct dump_option_value_info): Likewise.
29293         (dump_enable_all): Likewise.
29294         (dump_switch_p_1): Likewise.
29295         (opt_info_switch_p): Likewise.
29296         * dumpfile.h (enum tree_dump_index): Likewise.
29297         (struct dump_file_info): Likewise.
29298         * genemit.c: Likewise.
29299         * generic-match-head.c: Likewise.
29300         * gengtype.c (open_base_files): Likewise.
29301         * gimple-pretty-print.c: Likewise.
29302         * gimple-pretty-print.h: Likewise.
29303         * graph.c (print_graph_cfg): Likewise.
29304         * graphite-scop-detection.c (dot_all_sese): Likewise.
29305         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
29306         * loop-unroll.c (report_unroll): Likewise.
29307         * passes.c (pass_manager::register_one_dump_file): Likewise.
29308         * print-tree.c: Likewise.
29309         * statistics.c: Likewise.
29310         * tree-cfg.c: Likewise.
29311         * tree-cfg.h: Likewise.
29312         * tree-dfa.c: Likewise.
29313         * tree-dfa.h: Likewise.
29314         * tree-dump.c (dump_function): Likewise.
29315         * tree-dump.h (struct dump_info): Likewise.
29316         * tree-pretty-print.c: Likewise.
29317         * tree-pretty-print.h: Likewise.
29318         * tree-ssa-live.c: Likewise.
29319         * tree-ssa-live.h: Likewise.
29320         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
29321         * tree-vect-loop.c: Likewise.
29322         * tree-vect-slp.c: Likewise.
29323
29324 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
29325             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29326
29327         PR tree-optimization/80457
29328         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
29329         of all arguments to a statement as scalar_to_vec operations.
29330         (vectorizable_call): Adjust call to vect_model_simple_cost for
29331         new parameter.
29332         (vectorizable_conversion): Likewise.
29333         (vectorizable_assignment): Likewise.
29334         (vectorizable_shift): Likewise.
29335         (vectorizable_operation): Likewise.
29336         (vectorizable_comparison): Likewise.
29337         (vect_is_simple_cond): Record the def types for operands.
29338         (vectorizable_condition): Likewise, call vect_model_simple_cost.
29339         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
29340         for statement argument count.
29341
29342 2017-05-16  Carl Love  <cel@us.ibm.com>
29343
29344         * config/rs6000/rs6000-c: Add support for built-in functions
29345         vector unsigned long long vec_bperm (vector unsigned long long,
29346                                              vector unsigned char)
29347         vector signed long long vec_mule (vector signed int,
29348                                           vector signed int)
29349         vector unsigned long long vec_mule (vector unsigned int,
29350                                             vector unsigned int)
29351         vector signed long long vec_mulo (vector signed int,
29352                                           vector signed int)
29353         vector unsigned long long vec_mulo (vector unsigned int,
29354                                             vector unsigned int)
29355         vector signed char vec_sldw (vector signed char,
29356                                      vector signed char,
29357                                      const int)
29358         vector unsigned char vec_sldw (vector unsigned char,
29359                                        vector unsigned char,
29360                                        const int)
29361         vector signed short vec_sldw (vector signed short,
29362                                       vector signed short,
29363                                       const int)
29364         vector unsigned short vec_sldw (vector unsigned short,
29365                                         vector unsigned short,
29366                                         const int)
29367         vector signed int vec_sldw (vector signed int,
29368                                     vector signed int,
29369                                     const int)
29370         vector unsigned int vec_sldw (vector unsigned int,
29371                                       vector unsigned int,
29372                                       const int)
29373         vector signed long long vec_sldw (vector signed long long,
29374                                           vector signed long long,
29375                                           const int)
29376         vector unsigned long long vec_sldw (vector unsigned long long,
29377                                             vector unsigned long long,
29378                                             const int)
29379         * config/rs6000/rs6000-c: Add support for built-in functions
29380         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
29381         * config/rs6000/altivec.h: Add defintion for vec_sldw.
29382         * doc/extend.texi: Update the built-in documentation for the
29383         new built-in functions.
29384
29385 2017-05-16  Marek Polacek  <polacek@redhat.com>
29386
29387         PR sanitizer/80536
29388         PR sanitizer/80386
29389         * tree.c (save_expr): Don't fold the expression.
29390
29391 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
29392
29393         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
29394         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
29395         and (?*y,m).  Update insn attributes.
29396
29397 2017-05-16  Martin Liska  <mliska@suse.cz>
29398
29399         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
29400         flags argument of print_gimple_stmt, print_gimple_expr,
29401         print_generic_stmt and print_generic_expr.
29402         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
29403         * coretypes.h: Likewise.
29404         * except.c (dump_eh_tree): Likewise.
29405         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
29406         * gimple-pretty-print.h: Likewise.
29407         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
29408         (backprop::push_to_worklist): Likewise.
29409         (backprop::pop_from_worklist): Likewise.
29410         (backprop::process_use): Likewise.
29411         (backprop::intersect_uses): Likewise.
29412         (note_replacement): Likewise.
29413         * gimple-ssa-store-merging.c
29414         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
29415         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
29416         (pass_store_merging::execute): Likewise.
29417         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
29418         (ssa_base_cand_dump_callback): Likewise.
29419         (dump_incr_vec): Likewise.
29420         (replace_refs): Likewise.
29421         (replace_mult_candidate): Likewise.
29422         (create_add_on_incoming_edge): Likewise.
29423         (create_phi_basis): Likewise.
29424         (insert_initializers): Likewise.
29425         (all_phi_incrs_profitable): Likewise.
29426         (introduce_cast_before_cand): Likewise.
29427         (replace_one_candidate): Likewise.
29428         * gimplify.c (gimplify_expr): Likewise.
29429         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
29430         (set_rename): Likewise.
29431         (rename_uses): Likewise.
29432         (copy_loop_phi_nodes): Likewise.
29433         (add_close_phis_to_merge_points): Likewise.
29434         (copy_loop_close_phi_args): Likewise.
29435         (copy_cond_phi_args): Likewise.
29436         (graphite_copy_stmts_from_block): Likewise.
29437         (translate_pending_phi_nodes): Likewise.
29438         * graphite-poly.c (print_pdr): Likewise.
29439         (dump_gbb_cases): Likewise.
29440         (dump_gbb_conditions): Likewise.
29441         (print_scop_params): Likewise.
29442         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
29443         (build_cross_bb_scalars_use): Likewise.
29444         (gather_bbs::before_dom_children): Likewise.
29445         * hsa-dump.c (dump_hsa_immed): Likewise.
29446         * ipa-cp.c (print_ipcp_constant_value): Likewise.
29447         (get_replacement_map): Likewise.
29448         * ipa-inline-analysis.c (dump_condition): Likewise.
29449         (estimate_function_body_sizes): Likewise.
29450         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
29451         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
29452         * ipa-prop.c (ipa_dump_param): Likewise.
29453         (ipa_print_node_jump_functions_for_edge): Likewise.
29454         (ipa_modify_call_arguments): Likewise.
29455         (ipa_modify_expr): Likewise.
29456         (ipa_dump_param_adjustments): Likewise.
29457         (ipa_dump_agg_replacement_values): Likewise.
29458         (ipcp_modif_dom_walker::before_dom_children): Likewise.
29459         * ipa-pure-const.c (check_stmt): Likewise.
29460         (pass_nothrow::execute): Likewise.
29461         * ipa-split.c (execute_split_functions): Likewise.
29462         * omp-offload.c (dump_oacc_loop_part): Likewise.
29463         (dump_oacc_loop): Likewise.
29464         * trans-mem.c (tm_log_emit): Likewise.
29465         (tm_memopt_accumulate_memops): Likewise.
29466         (dump_tm_memopt_set): Likewise.
29467         (dump_tm_memopt_transform): Likewise.
29468         * tree-cfg.c (gimple_verify_flow_info): Likewise.
29469         (print_loop): Likewise.
29470         * tree-chkp-opt.c (chkp_print_addr): Likewise.
29471         (chkp_gather_checks_info): Likewise.
29472         (chkp_get_check_result): Likewise.
29473         (chkp_remove_check_if_pass): Likewise.
29474         (chkp_use_outer_bounds_if_possible): Likewise.
29475         (chkp_reduce_bounds_lifetime): Likewise.
29476         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
29477         (chkp_mark_completed_bounds): Likewise.
29478         (chkp_register_incomplete_bounds): Likewise.
29479         (chkp_mark_invalid_bounds): Likewise.
29480         (chkp_maybe_copy_and_register_bounds): Likewise.
29481         (chkp_build_returned_bound): Likewise.
29482         (chkp_get_bound_for_parm): Likewise.
29483         (chkp_build_bndldx): Likewise.
29484         (chkp_get_bounds_by_definition): Likewise.
29485         (chkp_generate_extern_var_bounds): Likewise.
29486         (chkp_get_bounds_for_decl_addr): Likewise.
29487         * tree-chrec.c (chrec_apply): Likewise.
29488         * tree-data-ref.c (dump_data_reference): Likewise.
29489         (dump_subscript): Likewise.
29490         (dump_data_dependence_relation): Likewise.
29491         (analyze_overlapping_iterations): Likewise.
29492         * tree-inline.c (expand_call_inline): Likewise.
29493         (tree_function_versioning): Likewise.
29494         * tree-into-ssa.c (dump_defs_stack): Likewise.
29495         (dump_currdefs): Likewise.
29496         (dump_names_replaced_by): Likewise.
29497         (dump_update_ssa): Likewise.
29498         (update_ssa): Likewise.
29499         * tree-object-size.c (pass_object_sizes::execute): Likewise.
29500         * tree-parloops.c (build_new_reduction): Likewise.
29501         (try_create_reduction_list): Likewise.
29502         (ref_conflicts_with_region): Likewise.
29503         (oacc_entry_exit_ok_1): Likewise.
29504         (oacc_entry_exit_single_gang): Likewise.
29505         * tree-pretty-print.h: Likewise.
29506         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
29507         (get_scalar_evolution): Likewise.
29508         (add_to_evolution): Likewise.
29509         (get_loop_exit_condition): Likewise.
29510         (analyze_evolution_in_loop): Likewise.
29511         (analyze_initial_condition): Likewise.
29512         (analyze_scalar_evolution): Likewise.
29513         (instantiate_scev): Likewise.
29514         (number_of_latch_executions): Likewise.
29515         (gather_chrec_stats): Likewise.
29516         (final_value_replacement_loop): Likewise.
29517         (scev_const_prop): Likewise.
29518         * tree-sra.c (dump_access): Likewise.
29519         (disqualify_candidate): Likewise.
29520         (create_access): Likewise.
29521         (reject): Likewise.
29522         (maybe_add_sra_candidate): Likewise.
29523         (create_access_replacement): Likewise.
29524         (analyze_access_subtree): Likewise.
29525         (analyze_all_variable_accesses): Likewise.
29526         (sra_modify_assign): Likewise.
29527         (initialize_constant_pool_replacements): Likewise.
29528         (find_param_candidates): Likewise.
29529         (decide_one_param_reduction): Likewise.
29530         (replace_removed_params_ssa_names): Likewise.
29531         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
29532         * tree-ssa-copy.c (dump_copy_of): Likewise.
29533         (copy_prop_visit_cond_stmt): Likewise.
29534         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
29535         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
29536         (record_equivalences_from_stmt): Likewise.
29537         * tree-ssa-dse.c (compute_trims): Likewise.
29538         (delete_dead_call): Likewise.
29539         (delete_dead_assignment): Likewise.
29540         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
29541         (forward_propagate_into_cond): Likewise.
29542         (pass_forwprop::execute): Likewise.
29543         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
29544         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
29545         Likewise.
29546         (move_computations_worker): Likewise.
29547         (execute_sm): Likewise.
29548         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
29549         (remove_exits_and_undefined_stmts): Likewise.
29550         (remove_redundant_iv_tests): Likewise.
29551         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
29552         (adjust_iv_update_pos): Likewise.
29553         * tree-ssa-math-opts.c (bswap_replace): Likewise.
29554         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
29555         (value_replacement): Likewise.
29556         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
29557         * tree-ssa-pre.c (print_pre_expr): Likewise.
29558         (get_representative_for): Likewise.
29559         (create_expression_by_pieces): Likewise.
29560         (insert_into_preds_of_block): Likewise.
29561         (eliminate_insert): Likewise.
29562         (eliminate_dom_walker::before_dom_children): Likewise.
29563         (eliminate): Likewise.
29564         (remove_dead_inserted_code): Likewise.
29565         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
29566         * tree-ssa-reassoc.c (get_rank): Likewise.
29567         (eliminate_duplicate_pair): Likewise.
29568         (eliminate_plus_minus_pair): Likewise.
29569         (eliminate_not_pairs): Likewise.
29570         (undistribute_ops_list): Likewise.
29571         (eliminate_redundant_comparison): Likewise.
29572         (update_range_test): Likewise.
29573         (optimize_range_tests_var_bound): Likewise.
29574         (optimize_vec_cond_expr): Likewise.
29575         (rewrite_expr_tree): Likewise.
29576         (rewrite_expr_tree_parallel): Likewise.
29577         (linearize_expr): Likewise.
29578         (break_up_subtract): Likewise.
29579         (linearize_expr_tree): Likewise.
29580         (attempt_builtin_powi): Likewise.
29581         (attempt_builtin_copysign): Likewise.
29582         (transform_stmt_to_copy): Likewise.
29583         (transform_stmt_to_multiply): Likewise.
29584         (dump_ops_vector): Likewise.
29585         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
29586         (print_scc): Likewise.
29587         (set_ssa_val_to): Likewise.
29588         (visit_reference_op_store): Likewise.
29589         (visit_use): Likewise.
29590         (sccvn_dom_walker::before_dom_children): Likewise.
29591         (run_scc_vn): Likewise.
29592         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
29593         Likewise.
29594         (expr_hash_elt::print): Likewise.
29595         (const_and_copies::pop_to_marker): Likewise.
29596         (const_and_copies::record_const_or_copy_raw): Likewise.
29597         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
29598         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
29599         (dump_predicates): Likewise.
29600         (find_uninit_use): Likewise.
29601         (warn_uninitialized_phi): Likewise.
29602         (pass_late_warn_uninitialized::execute): Likewise.
29603         * tree-ssa.c (verify_vssa): Likewise.
29604         (verify_ssa): Likewise.
29605         (maybe_optimize_var): Likewise.
29606         * tree-vrp.c (dump_value_range): Likewise.
29607         (dump_all_value_ranges): Likewise.
29608         (dump_asserts_for): Likewise.
29609         (register_edge_assert_for_2): Likewise.
29610         (vrp_visit_cond_stmt): Likewise.
29611         (vrp_visit_switch_stmt): Likewise.
29612         (vrp_visit_stmt): Likewise.
29613         (vrp_visit_phi_node): Likewise.
29614         (simplify_cond_using_ranges_1): Likewise.
29615         (fold_predicate_in): Likewise.
29616         (evrp_dom_walker::before_dom_children): Likewise.
29617         (evrp_dom_walker::push_value_range): Likewise.
29618         (evrp_dom_walker::pop_value_range): Likewise.
29619         (execute_early_vrp): Likewise.
29620
29621 2017-05-16  Richard Biener  <rguenther@suse.de>
29622
29623         * dwarf2out.c (loc_list_from_tree_1): Do not create
29624         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
29625
29626 2017-05-16  Richard Biener  <rguenther@suse.de>
29627
29628         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
29629         just generated.
29630         (note_variable_value_in_expr): If we resolved the decl ref
29631         do not push to the stack.
29632
29633 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
29634
29635         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
29636         operations in fast-math mode.
29637         (vaddq_f16): Likewise.
29638         (vmul_f16): Likewise.
29639         (vmulq_f16): Likewise.
29640         (vsub_f16): Likewise.
29641         (vsubq_f16): Likewise.
29642         * config/arm/neon.md (add<mode>3): New.
29643         (sub<mode>3): New.
29644         (fma:<VH:mode>3): New.  Also remove outdated comment.
29645         (mul<mode>3): New.
29646
29647 2017-05-16  Martin Liska  <mliska@suse.cz>
29648
29649         PR ipa/79849.
29650         PR ipa/79850.
29651         * ipa-devirt.c (warn_types_mismatch): Fix typo.
29652         (odr_types_equivalent_p): Likewise.
29653
29654 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
29655
29656         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
29657
29658 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
29659
29660         PR target/80425
29661         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
29662         non-interunit SSE move alternatives with '?'.
29663         (zero-extendsidi peephole2): New peephole to skip intermediate
29664         general register in SSE zero-extend sequence.
29665
29666 2017-05-15  Jeff Law  <law@redhat.com>
29667
29668         * reorg.c (relax_delay_slots): Create a new variable to hold
29669         the temporary target rather than clobbering TARGET_LABEL.
29670
29671         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
29672         missing argument to extract_bit_field call.
29673         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
29674
29675 2017-05-15  Martin Liska  <mliska@suse.cz>
29676
29677         PR driver/31468
29678         * gcc.c (process_command): Do not allow empty argument of -o option.
29679
29680 2017-05-15  Renlin Li  <renlin.li@arm.com>
29681
29682         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
29683         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
29684         * config/aarch64/constraints.md (Usf): Add long call check.
29685         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
29686         (call_value): Likewise.
29687         (sibcall): Likewise.
29688         (sibcall_value): Likewise.
29689         (call_insn): New.
29690         (call_value_insn): New.
29691         (sibcall_insn): Update rtx pattern.
29692         (sibcall_value_insn): Likewise.
29693         (call_internal): Remove.
29694         (call_value_internal): Likewise.
29695         (sibcall_internal): Likewise.
29696         (sibcall_value_internal): Likewise.
29697         (call_reg): Likewise.
29698         (call_symbol): Likewise.
29699         (call_value_reg): Likewise.
29700         (call_value_symbol): Likewise.
29701
29702 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
29703
29704         PR target/80600
29705         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
29706
29707 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
29708
29709         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
29710         compatible with CCGOCmode and with CCZmode.
29711
29712 2017-05-14  Martin Sebor  <msebor@redhat.com>
29713
29714         PR middle-end/77671
29715         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
29716         (gimple_fold_builtin_snprintf): Same.
29717         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
29718         (gimple_fold_builtin_snprintf): Same.
29719         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
29720         of character types.
29721         (is_call_safe): New function.
29722         (try_substitute_return_value): Call it.
29723         (try_simplify_call): New function.
29724         (pass_sprintf_length::handle_gimple_call): Call it.
29725
29726 2017-05-14  Martin Sebor  <msebor@redhat.com>
29727
29728         PR middle-end/80669
29729         * builtins.c (expand_builtin_stpncpy): Simplify.
29730
29731 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
29732
29733         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
29734         * config/i386/i386.h
29735         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
29736         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
29737         (struct machine_function): Add new members call_ms2sysv,
29738         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
29739         (struct machine_frame_state): New fields sp_realigned and
29740         sp_realigned_offset.
29741         * config/i386/i386.c
29742         (enum xlogue_stub): New enum.
29743         (enum xlogue_stub_sets): New enum.
29744         (class xlogue_layout): New class.
29745         (struct ix86_frame): New fields stack_realign_allocate_offset,
29746         stack_realign_offset and outlined_save_offset.  Modify comments to
29747         detail stack layout when using out-of-line stubs.
29748         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
29749         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
29750         -mcall-ms2sysv-xlogues.
29751         (stub_managed_regs): New static variable.
29752         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
29753         registers managed by out-of-line stub.
29754         (disable_call_ms2sysv_xlogues): New function.
29755         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
29756         m->call_ms2sysv when appropriate and compute frame layout for
29757         out-of-line stubs.
29758         (sp_valid_at, fp_valid_at): New inline functions.
29759         (choose_basereg): New function.
29760         (choose_baseaddr): Add align parameter, use choose_basereg and modify
29761         all callers.
29762         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
29763         Use align parameter of choose_baseaddr to generated aligned SSE movs
29764         when possible.
29765         (pro_epilogue_adjust_stack): Modify to track
29766         machine_frame_state::sp_realigned.
29767         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
29768         (ix86_nsaved_sseregs): Likewise.
29769         (ix86_emit_save_regs): Likewise.
29770         (ix86_emit_save_regs_using_mov): Likewise.
29771         (ix86_emit_save_sse_regs_using_mov): Likewise.
29772         (get_scratch_register_on_entry): Likewise.
29773         (gen_frame_set): New function.
29774         (gen_frame_load): Likewise.
29775         (gen_frame_store): Likewise.
29776         (emit_outlined_ms2sysv_save): Likewise.
29777         (emit_outlined_ms2sysv_restore): Likewise.
29778         (ix86_expand_prologue): Modify stack re-alignment code and call
29779         emit_outlined_ms2sysv_save when appropriate.
29780         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
29781         parameter rtx_insn *insn, which allows the function to be used to only
29782         generate the notes.
29783         (ix86_expand_epilogue): Modify validity checks of frame and stack
29784         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
29785         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
29786         * config/i386/predicates.md
29787         (save_multiple): New predicate.
29788         (restore_multiple): Likewise.
29789         * config/i386/sse.md
29790         (save_multiple<mode>): New pattern.
29791         (save_multiple_realign<mode>): Likewise.
29792         (restore_multiple<mode>): Likewise.
29793         (restore_multiple_and_return<mode>): Likewise.
29794         (restore_multiple_leave_return<mode>): Likewise.
29795         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
29796
29797 2017-05-14  Julia Koval  <julia.koval@intel.com>
29798
29799         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
29800         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
29801         (__builtin_ia32_xsetbv): New builtins.
29802         * config/i386/i386.c (ix86_expand_special_args_builtin):
29803         Process new types.
29804         (ix86_expand_builtin): Special expand for new intrinsics.
29805         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
29806         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
29807         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
29808
29809 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29810
29811         * cfganal.c (inverted_post_order_compute): Change argument type
29812         to vec *.
29813         * cfganal.h (inverted_post_order_compute): Adjust prototype.
29814         * df-core.c (rest_of_handle_df_initialize): Adjust.
29815         (rest_of_handle_df_finish): Likewise.
29816         (df_analyze_1): Likewise.
29817         (df_analyze): Likewise.
29818         (loop_inverted_post_order_compute): Change argument to be a vec *.
29819         (df_analyze_loop): Adjust.
29820         (df_get_n_blocks): Likewise.
29821         (df_get_postorder): Likewise.
29822         * df.h (struct df_d): Change field to be a vec.
29823         * lcm.c (compute_laterin): Adjust.
29824         (compute_available): Likewise.
29825         * lra-lives.c (lra_create_live_ranges_1): Likewise.
29826         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
29827         * tree-ssa-pre.c (compute_antic): Likewise.
29828
29829 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29830
29831         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
29832         (depth_first_search::depth_first_search): Change structure init
29833         function to this constructor.
29834         (depth_first_search::add_bb): Rename function to this member.
29835         (depth_first_search::execute): Likewise.
29836         (flow_dfs_compute_reverse_finish): Adjust.
29837
29838 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29839
29840         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
29841         (longest_simple_path): Likewise.
29842         * shrink-wrap.c (spread_components): Likewise.
29843         (disqualify_problematic_components): Likewise.
29844         (emit_common_heads_for_components): Likewise.
29845         (emit_common_tails_for_components): Likewise.
29846         (insert_prologue_epilogue_for_components): Likewise.
29847
29848 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29849
29850         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
29851         auto_sbitmap.
29852
29853 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29854
29855         * df-core.c (df_set_blocks): Start using auto_bitmap.
29856         (df_compact_blocks): Likewise.
29857         * df-problems.c (df_rd_confluence_n): Likewise.
29858         * df-scan.c (df_insn_rescan_all): Likewise.
29859         (df_process_deferred_rescans): Likewise.
29860         (df_update_entry_block_defs): Likewise.
29861         (df_update_exit_block_uses): Likewise.
29862         (df_entry_block_bitmap_verify): Likewise.
29863         (df_exit_block_bitmap_verify): Likewise.
29864         (df_scan_verify): Likewise.
29865         * lra-constraints.c (lra_constraints): Likewise.
29866         (undo_optional_reloads): Likewise.
29867         (lra_undo_inheritance): Likewise.
29868         * lra-remat.c (calculate_gen_cands): Likewise.
29869         (do_remat): Likewise.
29870         * lra-spills.c (assign_spill_hard_regs): Likewise.
29871         (spill_pseudos): Likewise.
29872         * tree-ssa-pre.c (bitmap_set_and): Likewise.
29873         (bitmap_set_subtract_values): Likewise.
29874
29875 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29876
29877         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
29878         management with auto_bitmap.
29879         (fix_inter_tick): Likewise.
29880         (fix_recovery_deps): Likewise.
29881         * ira.c (add_store_equivs): Likewise.
29882         (find_moveable_pseudos): Likewise.
29883         (split_live_ranges_for_shrink_wrap): Likewise.
29884         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
29885         (rtx_reuse_manager::seen_def_p): Likewise.
29886         (rtx_reuse_manager::set_seen_def): Likewise.
29887         * print-rtl.h (class rtx_reuse_manager): Likewise.
29888
29889 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29890
29891         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
29892         lifetime.
29893         (migrate_btr_def): Likewise.
29894         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
29895         * df-core.c (loop_post_order_compute): Likewise.
29896         (loop_inverted_post_order_compute): Likewise.
29897         * hsa-common.h: Likewise.
29898         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
29899         * init-regs.c (initialize_uninitialized_regs): Likewise.
29900         * ipa-inline.c (resolve_noninline_speculation): Likewise.
29901         (inline_small_functions): Likewise.
29902         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
29903         * ira.c (combine_and_move_insns): Likewise.
29904         (build_insn_chain): Likewise.
29905         * loop-invariant.c (find_invariants): Likewise.
29906         * lower-subreg.c (propagate_pseudo_copies): Likewise.
29907         * predict.c (tree_predict_by_opcode): Likewise.
29908         (predict_paths_leading_to): Likewise.
29909         (predict_paths_leading_to_edge): Likewise.
29910         (estimate_loops_at_level): Likewise.
29911         (estimate_loops): Likewise.
29912         * shrink-wrap.c (try_shrink_wrapping): Likewise.
29913         (spread_components): Likewise.
29914         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
29915         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
29916         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
29917         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
29918         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
29919         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
29920         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
29921         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
29922         (mark_threaded_blocks): Likewise.
29923         (thread_through_all_blocks): Likewise.
29924         * tree-ssa.c (verify_ssa): Likewise.
29925         (execute_update_addresses_taken): Likewise.
29926         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
29927
29928 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29929
29930         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
29931         auto_vec.
29932         (post_order_compute): Likewise.
29933         (inverted_post_order_compute): Likewise.
29934         (pre_and_rev_post_order_compute_fn): Likewise.
29935
29936 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29937
29938         * genrecog.c (int_set::int_set): Explicitly construct our
29939         auto_vec base class.
29940         * vec.h (auto_vec::auto_vec): New constructor.
29941
29942 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29943
29944         * bitmap.h (class auto_bitmap): New constructor taking
29945         bitmap_obstack * argument.
29946
29947 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29948
29949         * bitmap.h (class auto_bitmap): Change type of m_bits to
29950         bitmap_head, and adjust ctor / dtor and member operators.
29951
29952 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
29953
29954         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
29955         when returned register mode doesn't match original mode.
29956
29957 2017-05-12  Jeff Law  <law@redhat.com>
29958             Jakub Jelinek  <jakub@redhat.com>
29959
29960         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
29961         we look for cc setter after the compare-elim changes.
29962         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
29963         within the vector to match what compare-elim now expects.
29964         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
29965         (xorsi3_flags, one_cmplsi2_flags): Likewise.
29966
29967         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
29968         after the compare-elim changes.
29969         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
29970         the vector to match what compare-elim now expects.
29971         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
29972         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
29973         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
29974         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
29975         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
29976
29977         * config/visium/visium.c (single_set_and_flags): Fix where
29978         we look for cc setter after the compare-elim changes.
29979         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
29980         with the vector to match what compare-elim now expects.
29981         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
29982         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
29983         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
29984         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
29985         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
29986         (neg<mode>2_insn_set_overflow): Likewise.
29987
29988 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
29989
29990         PR middle-end/79794
29991         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
29992         maybe_expand_insn call, set ops[0].target.  If still set after call,
29993         set alt_rtl.  Add extra arg to recursive calls.
29994         (extract_bit_field): Add alt_rtl argument.  Pass to
29995         extract_bit_field.
29996         * expmed.h (extract_bit_field): Fix prototype.
29997         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
29998         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
29999         to extract_bit_field_calls.
30000         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
30001         Pass alt_rtl to extract_bit_field calls.
30002         * calls.c (store_unaligned_arguments_into_psuedos)
30003         load_register_parameters): Pass extra NULL to extract_bit_field calls.
30004         * optabs.c (maybe_legitimize_operand): Clear op->target when call
30005         gen_reg_rtx.
30006         * optabs.h (struct expand_operand): Add target bitfield.
30007
30008 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
30009
30010         * compare-elim.c (try_eliminate_compare): Canonicalize
30011         operation with embedded compare to
30012         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
30013          (set (reg) (operation)].
30014
30015         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
30016
30017 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
30018
30019         PR target/80723
30020         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
30021         cost of adding a carry flag for ADC instruction.
30022         [case MINUS]: Ignore the cost of subtracting a carry flag
30023         for SBB instruction.
30024
30025 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
30026
30027         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
30028         and x86intrin.h
30029         * config/rs6000/bmiintrin.h: New file.
30030         * config/rs6000/bmi2intrin.h: New file.
30031         * config/rs6000/x86intrin.h: New file.
30032
30033 2017-05-12  Jeff Law  <law@redhat.com>
30034
30035         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
30036         markers.
30037
30038 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
30039
30040         PR middle-end/80707
30041         * tree-cfg.c: Remove cfg edges of unreachable case statements.
30042
30043 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30044
30045         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
30046         early expansion of vector divide builtins.
30047         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
30048         builtins identified as having unsigned arguments.
30049
30050 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30051
30052         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
30053         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
30054         expansion of vector logical operations (and, andc, or, xor,
30055         nor, orc, nand).
30056
30057 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30058
30059         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
30060         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
30061
30062 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
30063
30064         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
30065         early GIMPLE expansion of vector multiplies.
30066
30067 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
30068
30069         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
30070         TARGET_HAVE_MOVT conditional.
30071         (movt splitter): Likewise.
30072
30073 2017-05-12  Richard Biener  <rguenther@suse.de>
30074
30075         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
30076         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
30077         Fold all stmts not inplace.
30078
30079 2017-05-12  Richard Biener  <rguenther@suse.de>
30080
30081         PR tree-optimization/80713
30082         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
30083         inserted_exprs bit for not removed stmts.
30084
30085 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
30086
30087         PR middle-end/69921
30088         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
30089         parallelized" attribute for parallelized OpenACC kernels.
30090         * omp-offload.c (execute_oacc_device_lower): Use it.
30091
30092         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
30093         Set "oacc kernels" attribute.
30094         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
30095         parameter.  Adjust all users.
30096         (oacc_fn_attrib_kernels_p): Remove function.
30097         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
30098         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
30099         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
30100         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
30101         assert "oacc kernels" attribute is set.
30102
30103 2017-05-11  Carl Love  <cel@us.ibm.com>
30104
30105         * config/rs6000/rs6000-c: Add support for built-in functions
30106         vector unsigned char vec_popcnt (vector signed char)
30107         vector unsigned char vec_popcnt (vector unsigned char)
30108         vector unsigned short vec_popcnt (vector signed short)
30109         vector unsigned short vec_popcnt (vector unsigned short)
30110         vector unsigned int vec_popcnt (vector signed int)
30111         vector unsigned int vec_popcnt (vector unsigned int)
30112         vector unsigned long long vec_popcnt (vector signed long long)
30113         vector unsigned long long vec_popcnt (vector unsigned long long)
30114         vector signed long long vec_slo (vector signed long long,
30115                                          vector signed char)
30116         vector signed long long vec_slo (vector signed long long,
30117                                          vector unsigned char)
30118         vector unsigned long long vec_slo (vector unsigned long long,
30119                                            vector signed char)
30120         vector unsigned long long vec_slo (vector unsigned long long,
30121                                            vector unsigned char)
30122         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
30123         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
30124         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
30125         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
30126         * doc/extend.texi: Update the built-in documentation file for the
30127         new built-in functions.
30128
30129 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
30130
30131         * attribs.h (sorted_attr_string): Move machine independent
30132         functions for target clone support from the i386 port to common
30133         code.  Rename ix86_function_versions to common_function_versions.
30134         Rename make_name to make_unique_name.
30135         (common_function_versions): Likewise.
30136         (make_unique_name): Likewise.
30137         (make_dispatcher_decl): Likewise.
30138         (is_function_default_version): Likewise.
30139         * attribs.c (attr_strcmp): Likewise.
30140         (sorted_attr_string): Likewise.
30141         (common_function_versions): Likewise.
30142         (make_unique_name): Likewise.
30143         (make_dispatcher_decl): Likewise.
30144         (is_function_default_version): Likewise.
30145         * config/i386/i386.c (attr_strcmp): Likewise.
30146         (sorted_attr_string): Likewise.
30147         (ix86_function_versions): Likewise.
30148         (make_name): Likewise.
30149         (make_dispatcher_decl): Likewise.
30150         (is_function_default_version): Likewise.
30151         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
30152
30153 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30154
30155         PR target/80695
30156         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
30157         Account for direct move costs for vec_construct of integer
30158         vectors.
30159
30160 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
30161
30162         PR target/80706
30163         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
30164         (UNSPEC_STX_ATOMIC): Ditto.
30165         (loaddi_via_sse): New insn.
30166         (storedi_via_sse): Ditto.
30167         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
30168         Update corresponding peephole2 patterns.
30169         (atomic_storedi_fpu): Ditto.
30170
30171 2017-05-11  Julia Koval  <julia.koval@intel.com>
30172
30173         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
30174         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
30175         New intrinsics.
30176         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
30177         (__builtin_ia32_rsqrt14ss_mask): New builtins.
30178         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
30179
30180 2017-05-11  Nathan Sidwell  <nathan@acm.org>
30181
30182         * graphite-poly.c: Include dumpfile.h.
30183
30184         * dumpfle.h (dump_function): Declare here ...
30185         * tree-dump.h (dump_function): ... not here.
30186         * dumpfile.c: #include tree-cfg.h.
30187         (dump_function): Move here from ...
30188         * tree-dump.c (dump_function): ... here.
30189         * gimplify.c: #include splay-tree.h, not tree-dump.h.
30190         * graphite-poly.c: Don't include tree-dump.h.
30191         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
30192         * print-tree.c: Likewise.
30193         * stor-layout.c: Likewise.
30194         * tree-nested.c: Likewise.
30195
30196         * dumpfile.c (dump_start): Use TDF_FLAGS.
30197         (dump_enable_all): Fix TDF_KIND check thinko.
30198
30199 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
30200
30201         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30202         array entries to represent two legal parameterizations of the
30203         overloaded __builtin_cmpb function, as represented by the
30204         P6_OV_BUILTIN_CMPB constant.
30205         (altivec_resolve_overloaded_builtin): Add special case handling
30206         for the __builtin_cmpb function, as represented by the
30207         P6_OV_BUILTIN_CMPB constant.
30208         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
30209         (BU_P6_64BIT_2): New macro.
30210         (BU_P6_OVERLOAD_2): New macro
30211         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
30212         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
30213         (CMPB): Add overload support to represent both 32-bit and 64-bit
30214         compare-bytes function.
30215         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
30216         support for TARGET_CMPB.
30217         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
30218         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
30219         documentation of the __builtin_cmpb overloaded built-in function.
30220
30221 2017-05-11  Richard Biener  <rguenther@suse.de>
30222
30223         PR tree-optimization/80705
30224         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
30225         bases are not vectorizable.
30226
30227 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30228
30229         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
30230         when counting register pressure.
30231
30232 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30233
30234         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
30235         (iv_ca_more_deps): Renamed to ...
30236         (iv_ca_compare_deps): ... this.
30237         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
30238
30239 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30240
30241         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
30242         to ...
30243         (determine_group_iv_costs): ... here.
30244         (find_inv_vars_cb): Record inv var if it's not recorded before.
30245
30246 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30247
30248         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
30249         (get_shiftadd_cost): Ditto.
30250
30251 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30252
30253         * tree-ssa-address.c: Include header file.
30254         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
30255         address.
30256         (add_to_parts): Refactor.
30257         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
30258         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
30259         in new order.
30260
30261 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30262
30263         PR tree-optimization/53090
30264         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
30265         COMP_IV_EXPR_2.
30266         (extract_cond_operands): Detect condition with IV on both sides
30267         and return COMP_IV_EXPR_2.
30268         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
30269         (rewrite_use_compare): Simplify by removing call to function
30270         extract_cond_operands.
30271
30272 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30273
30274         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
30275         (extract_cond_operands): Detect condition comparing against non-
30276         invariant bound and return appropriate enum value.
30277         (find_interesting_uses_cond): Update use of extract_cond_operands.
30278         Handle its return value accordingly.
30279         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
30280
30281 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30282
30283         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
30284         nonlinear iv_use computation in loop invariant sensitive way.
30285
30286 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30287
30288         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
30289         (find_iv_candidates): Call relate_compare_use_with_all_cands.
30290
30291 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30292
30293         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
30294         (dump_cand): Support iv_cand.inv_exprs.
30295         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
30296         for candidates.
30297         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
30298         iv_cand.inv_exprs.
30299
30300 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30301
30302         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
30303         from ...
30304         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
30305         as local function.  Include necessary header files.
30306         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
30307
30308 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30309
30310         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
30311
30312 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30313
30314         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
30315         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
30316         RSHIFT_EXPR and BIT_NOT_EXPR.
30317
30318 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30319
30320         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
30321         (adjust_setup_cost): New parameter supporting round up adjustment.
30322         (struct address_cost_data): Delete.
30323         (force_expr_to_var_cost): Don't bound cost with spill_cost.
30324         (split_address_cost, ptr_difference_cost): Delete.
30325         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
30326         (struct ainc_cost_data): New struct.
30327         (get_address_cost_ainc): New function.
30328         (get_address_cost, get_computation_cost): Reimplement.
30329         (determine_group_iv_cost_address): Record inv_expr for all uses of
30330         a group.
30331         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
30332         (iv_ca_has_deps): Reimplemented to ...
30333         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
30334         than OLD_CP.
30335         (iv_ca_extend): Call iv_ca_more_deps.
30336
30337 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30338
30339         * tree-ssa-address.c (struct mem_address): Move to header file.
30340         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
30341         * tree-ssa-address.h (struct mem_address): Move from C file.
30342         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
30343
30344 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30345
30346         * tree-affine.h (aff_combination_type): New interface.
30347         (aff_combination_zero_p): Remove static.
30348         (aff_combination_const_p): New interface.
30349         (aff_combination_singleton_var_p): New interfaces.
30350
30351 2017-05-11  Richard Biener  <rguenther@suse.de>
30352
30353         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
30354         Skip unreachable blocks and destinations.
30355         (eliminate): Move stmt removal and fixup ...
30356         (fini_eliminate): ... here.  Skip inserted exprs.
30357         (pass_pre::execute): Move fini_pre after fini_eliminate.
30358         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
30359         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
30360         PRE to get rid of dead code that has invalid SSA form and
30361         split critical edges again.
30362
30363 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
30364
30365         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
30366
30367 2017-05-11  Richard Biener  <rguenther@suse.de>
30368
30369         * passes.c (execute_function_todo): Verify loops if they are
30370         said to be up-to-date.
30371         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
30372         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
30373
30374 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
30375
30376         PR target/80090
30377         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
30378         handle calling assemble_external ourself.
30379
30380         PR target/79027
30381         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
30382         modes with zero size.  Enhance comment.
30383
30384 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30385
30386         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
30387         built-ins for vec_xl and vec_xst with short and char pointer
30388         arguments.
30389
30390 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
30391
30392         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
30393         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
30394         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
30395         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
30396         (_mm_maskz_min_round_ss): New intrinsics.
30397         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
30398         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
30399         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
30400         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
30401         (__builtin_ia32_minss_mask_round): New builtins.
30402         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
30403         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
30404         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
30405         Rename to ...
30406         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
30407         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
30408         Change to ...
30409         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
30410         ... this.
30411
30412 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
30413
30414         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
30415         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
30416         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
30417         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
30418         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
30419         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
30420         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
30421         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
30422         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
30423         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
30424         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
30425         (__builtin_ia32_mulss_mask_round): New builtins.
30426         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
30427         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
30428         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
30429         Rename to ...
30430         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
30431         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
30432         Change to ...
30433         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
30434         ... this.
30435
30436 2017-05-10  Julia Koval  <julia.koval@intel.com>
30437
30438         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
30439         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
30440         (_mm256_setr_m128i): New intrinsics.
30441
30442 2017-05-10  Julia Koval  <julia.koval@intel.com>
30443
30444         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
30445         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
30446         (_mm_maskz_rcp14_ss): New intrinsics.
30447         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
30448         (__builtin_ia32_rcp14ss_mask): New builtins.
30449         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
30450
30451 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
30452
30453         PR tree-optimization/51513
30454         * tree-cfg.c (gimple_seq_unreachable_p): New function.
30455         (assert_unreachable_fallthru_edge_p): Use it.
30456         (group_case_labels_stmt): Likewise.
30457         * tree-cfg.h: Prototype it.
30458         * stmt.c: Include cfghooks.h and tree-cfg.h.
30459         (emit_case_dispatch_table) <gap_label>: New local variable.
30460         Use it to fill dispatch table gaps.
30461         Test for default_label before updating probabilities.
30462         (expand_case) <default_label>: Remove unneeded initialization.
30463         Test for unreachable default case statement and remove its edge.
30464         Set default_label accordingly.
30465         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
30466
30467 2017-05-10  Carl Love  <cel@us.ibm.com>
30468
30469         * config/rs6000/rs6000-c: Add support for built-in functions
30470         vector signed char      vec_neg (vector signed char)
30471         vector signed short int vec_neg (vector short int)
30472         vector signed int       vec_neg (vector signed int)
30473         vector signed long long vec_neg (vector signed long long)
30474         vector float            vec_neg (vector float)
30475         vector double           vec_neg (vector double)
30476         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
30477         overload.
30478         * config/rs6000/altivec.h: Add define for vec_neg
30479         * doc/extend.texi: Update the built-in documentation for the
30480         new built-in functions.
30481
30482 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30483
30484         PR tree-optimization/77644
30485         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
30486
30487 2017-05-10  Nathan Sidwell  <nathan@acm.org>
30488
30489         * dumpfile.h (TDI_lang_all): New.
30490         (TDF_KIND): New. Renumber others
30491         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
30492         than bits.
30493         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
30494         lang-all.
30495         (get_dump_file_name): Adjust suffix generation.
30496         (dump_enable_all): Use TDF_KIND.
30497         * doc/invoke.texi (-fdump-lang-all): Document.
30498
30499         * dumpfile.h: Tabify.
30500
30501 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
30502
30503         PR target/80671
30504         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
30505         Move member access before delete.
30506
30507 2017-05-10  Alexandre Oliva  <aoliva@redhat.com>
30508
30509         * tree-inline.c (expand_call_inline): Split block at stmt
30510         before the call.
30511
30512 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
30513
30514         PR target/68163
30515         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
30516         are now unused after splitting mov{sf,sd}_hardfloat.
30517         (f32_lr2): Likewise.
30518         (f32_lm): Likewise.
30519         (f32_lm2): Likewise.
30520         (f32_li): Likewise.
30521         (f32_li2): Likewise.
30522         (f32_lv): Likewise.
30523         (f32_sr): Likewise.
30524         (f32_sr2): Likewise.
30525         (f32_sm): Likewise.
30526         (f32_sm2): Likewise.
30527         (f32_si): Likewise.
30528         (f32_si2): Likewise.
30529         (f32_sv): Likewise.
30530         (f32_dm): Likewise.
30531         (f32_vsx): Likewise.
30532         (f32_av): Likewise.
30533         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
30534         For movsf, order stores so the VSX stores occur before the GPR
30535         store which encourages the register allocator to use a traditional
30536         FPR instead of a GPR.  For movsd, order the stores so that the GPR
30537         store comes before the VSX stores to allow the power6 to work.
30538         This is due to the power6 not having a 32-bit integer store
30539         instruction from a FPR.
30540         (movsf_hardfloat): Likewise.
30541         (movsd_hardfloat): Likewise.
30542
30543 2017-05-09  Martin Sebor  <msebor@redhat.com>
30544
30545         PR translation/80280
30546         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
30547         added in r247778.
30548
30549         PR translation/80280
30550         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
30551         data member added in r247778.
30552         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
30553
30554 2017-05-09  Nathan Sidwell  <nathan@acm.org>
30555
30556         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
30557
30558         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
30559         typedefs.
30560
30561 2017-05-09  Marek Polacek  <polacek@redhat.com>
30562
30563         * doc/invoke.texi: Fix typo.
30564
30565 2017-05-09  Richard Biener  <rguenther@suse.de>
30566
30567         * tree-vrp.c (vrp_val_is_max): Adjust comment.
30568         (vrp_val_is_min): Likewise.
30569         (set_value_range_to_value): Likewise.
30570         (set_value_range_to_nonnegative): Likewise.
30571         (gimple_assign_nonzero_p): Likewise.
30572         (gimple_stmt_nonzero_p): Likewise.
30573         (vrp_int_const_binop): Likewise.  Remove unreachable case.
30574         (adjust_range_with_scev): Adjust comments.
30575         (compare_range_with_value): Likewise.
30576         (extract_range_from_phi_node): Likewise.
30577         (test_for_singularity): Likewise.
30578
30579 2017-05-09  Richard Biener  <rguenther@suse.de>
30580
30581         * tree-vrp.c (get_single_symbol): Add assert that we don't
30582         get overflowed constants as invariant part.
30583         (compare_values_warnv): Add comment before the TREE_NO_WARNING
30584         checks.  Use wi::cmp instead of recursing for integer constants.
30585         (compare_values): Just ignore whether we assumed undefined
30586         overflow instead of failing the compare.
30587         (extract_range_for_var_from_comparison_expr): Add comment before the
30588         TREE_NO_WARNING sets.
30589         (test_for_singularity): Likewise.
30590         (extract_range_from_comparison): Do not disable optimization
30591         when we assumed undefined overflow.
30592         (extract_range_basic): Remove init of unused var.
30593
30594 2017-05-09  Richard Biener  <rguenther@suse.de>
30595
30596         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
30597         (extract_range_from_multiplicative_op_1): Adjust.
30598         (extract_range_from_binary_expr_1): Use int_const_binop.
30599
30600 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
30601
30602         PR target/80101
30603         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
30604         rs6000_store_data_bypass_p in seven define_bypass directives and
30605         in several comments.
30606         * config/rs6000/rs6000-protos.h: Add prototype for
30607         rs6000_store_data_bypass_p function.
30608         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
30609         function implements slightly different (rs6000-specific) semantics
30610         than store_data_bypass_p, returning false rather than aborting
30611         with assertion error when arguments do not satisfy the
30612         requirements of store data bypass.
30613         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
30614         rs6000_store_data_bypass_p.
30615
30616 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
30617
30618         * config/xtensa/xtensa-protos.h
30619         (xtensa_initial_elimination_offset): New declaration.
30620         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
30621         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
30622         macro definition, add case for FRAME_POINTER_REGNUM when
30623         FRAME_GROWS_DOWNWARD.
30624         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
30625         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
30626         xtensa_initial_elimination_offset.
30627
30628 2017-05-08  Nathan Sidwell  <nathan@acm.org>
30629
30630         * doc/invoke.texi: Alphabetize -fdump options.
30631
30632 2017-05-08  Martin Sebor  <msebor@redhat.com>
30633
30634         PR translation/80280
30635         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
30636
30637 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30638
30639         * target.def (compute_frame_layout): New optional target hook.
30640         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
30641         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
30642         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
30643         target hook.
30644         * reload1.c (verify_initial_elim_offsets): Likewise.
30645         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
30646         (use_simple_return_p): Call arm_compute_frame_layout if needed.
30647         (arm_get_frame_offsets): Split up into this ...
30648         (arm_compute_frame_layout): ... and this function.
30649
30650 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
30651
30652         * config/aarch64/constraints.md (Usa): New constraint.
30653         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
30654
30655 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30656
30657         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
30658         with_multilib_list after it has been checked.
30659
30660 2017-05-08  Richard Biener  <rguenther@suse.de>
30661
30662         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
30663         (bitmap_set_subtract_values): Likewise.
30664
30665 2017-05-08  Richard Biener  <rguenther@suse.de>
30666
30667         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
30668         (gimple_assign_nonzero): ... this and remove strict_overflow_p
30669         argument.
30670         (gimple_stmt_nonzero_warnv_p): Rename to ...
30671         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
30672         argument.
30673         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
30674         (extract_range_basic): Adjust, do not disable propagation on
30675         strict overflow sensitive simplification.
30676         (vrp_visit_cond_stmt): Likewise.
30677
30678 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
30679
30680         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
30681         body size unconditionally.
30682
30683 2017-05-07  Jeff Law  <law@redhat.com>
30684
30685         Revert:
30686         2017-05-06  Jeff Law  <law@redhat.com>
30687         PR tree-optimization/78496
30688         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
30689         code.
30690
30691         PR tree-optimization/78496
30692         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
30693         (simplify_stmt_using_ranges): Call it.
30694         (vrp_dom_walker::before_dom_children): Extract equivalences
30695         from an ASSERT_EXPR with an equality comparison against a
30696         constant.
30697
30698 2017-05-06  Jeff Law  <law@redhat.com>
30699
30700         PR tree-optimization/78496
30701         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
30702         code.
30703
30704         PR tree-optimization/78496
30705         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
30706         (simplify_stmt_using_ranges): Call it.
30707         (vrp_dom_walker::before_dom_children): Extract equivalences
30708         from an ASSERT_EXPR with an equality comparison against a
30709         constant.
30710
30711 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
30712
30713         * lra-constraints.c (lra_copy_reg_equiv): New function.
30714         (split_reg): Use it to copy equivalence information from the
30715         original register to the spill register.
30716
30717 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
30718
30719         PR rtl-optimization/75964
30720         * simplify-rtx.c (simplify_const_relational_operation): Remove
30721         invalid handling of comparisons of integer ABS.
30722
30723 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
30724
30725         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
30726         initialize to zero.
30727         (init_regs): Remove declaration.
30728         (function_arg_advance_32): Initialize error_p as boolean variable.
30729
30730 2017-05-05  Nathan Sidwell  <nathan@acm.org>
30731
30732         * store-motion.c (remove_reachable_equiv_notes): Reformat long
30733         lines.  Use for (;;).
30734
30735 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30736
30737         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
30738         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
30739         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
30740         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
30741         VF=2 that require versioning.
30742
30743 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30744
30745         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
30746         int.
30747
30748 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30749
30750         * diagnostic.h (diagnostic_override_option_index): Convert from
30751         macro to inline function.
30752
30753 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30754
30755         * diagnostic.c (last_module_changed_p): New function.
30756         (set_last_module): New function.
30757         (diagnostic_report_current_module): Convert macro usage to
30758         the above functions.
30759         * diagnostic.h (diagnostic_context::last_module): Strengthen
30760         from const line_map * to const line_map_ordinary *.
30761         (diagnostic_last_module_changed): Delete macro.
30762         (diagnostic_set_last_module): Delete macro.
30763
30764 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30765
30766         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
30767         with diagnostic_report_diagnostic.
30768         (diagnostic_n_impl_richloc): Likewise.
30769         * diagnostic.h (report_diagnostic): Delete macro.
30770         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
30771         with diagnostic_report_diagnostic.
30772         * substring-locations.c (format_warning_va): Likewise.
30773
30774 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30775
30776         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
30777         save/restor of format_spec.  Move option-printing code to...
30778         (print_option_information): ...this new function, and
30779         reimplement by simply printing to the pretty_printer,
30780         rather than appending to the format string.
30781
30782 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
30783
30784         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
30785         handling logic into...
30786         (update_effective_level_from_pragmas): ...this new function.
30787
30788 2017-05-04  Andrew Waterman  <andrew@sifive.com>
30789
30790         * config/riscv/riscv.opt (mstrict-align): New option.
30791         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
30792         (SLOW_UNALIGNED_ACCESS): Define.
30793         (riscv_slow_unaligned_access): Declare.
30794         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
30795         field.
30796         (riscv_slow_unaligned_access): New variable.
30797         (rocket_tune_info): Set slow_unaligned_access to true.
30798         (optimize_size_tune_info): Set slow_unaligned_access to false.
30799         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
30800         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
30801         (riscv_option_override): Set riscv_slow_unaligned_access.
30802         * doc/invoke.texi: Add -mstrict-align to RISC-V.
30803
30804 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
30805
30806         * config/riscv/riscv.md: Unify indentation.
30807
30808 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
30809
30810         PR target/79038
30811         PR target/79202
30812         PR target/79203
30813         * config/rs6000/rs6000.md (u code attribute): Add FIX and
30814         UNSIGNED_FIX.
30815         (extendsi<mode>2): Add support for doing sign extension via
30816         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
30817         don't have ISA 3.0 instructions.
30818         (extendsi<mode>2 splitter): Likewise.
30819         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
30820         generate the normal insns since SImode can now go in vector
30821         registers.  Disallow the special UNSPECs needed for previous
30822         machines to hide SImode being used.  Add new insns
30823         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
30824         (fix_trunc<mode>si2_stfiwx): Likewise.
30825         (fix_trunc<mode>si2_internal): Likewise.
30826         (fixuns_trunc<mode>si2): Likewise.
30827         (fixuns_trunc<mode>si2_stfiwx): Likewise.
30828         (fctiw<u>z_<mode>_smallint): Likewise.
30829         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
30830         of floating point to 32-bit integer from doing a direct move to
30831         the GPR registers to do a store.
30832         (fctiwz_<mode>): Break long line.
30833
30834 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
30835
30836         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
30837         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
30838         (addr_list, addr_offset_valid_p): New.
30839         (split_address_groups): Check offset validity with above function.
30840         (gt-tree-ssa-loop-ivopts.h): Include header file.
30841
30842 2017-05-05  Nathan Sidwell  <nathan@acm.org>
30843
30844         * config.gcc (arm*-*-*): Add missing 'fi'.
30845
30846 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
30847
30848         * doc/invoke.texi (-fopt-info): Explicitly say order of options
30849         included in -fopt-info does not matter.
30850         * doc/optinfo.texi (-fopt-info): Fix description of default
30851         behavour. Explicitly say order of options included in -fopt-info
30852         does not matter.
30853
30854 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30855
30856         * config.gcc: Allow combinations of aprofile and rmprofile values for
30857         --with-multilib-list.
30858         * config/arm/t-multilib: New file.
30859         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
30860         variables.  Remove setting of ISA and floating-point ABI in
30861         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
30862         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
30863         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
30864         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
30865         CPU options.
30866         * config/arm/t-rmprofile: Likewise except for the matches changes.
30867         * doc/install.texi (--with-multilib-list): Document the combination of
30868         aprofile and rmprofile values and warn about pitfalls in doing that.
30869
30870 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
30871
30872         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
30873         (movdi_aarch64): Likewise.
30874
30875 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
30876
30877         PR tree-optimization/80632
30878         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
30879         field.
30880         (build_arrays): Initialize it for virtual phis.
30881         (fix_phi_nodes): Use it for virtual phis.
30882
30883         PR tree-optimization/80558
30884         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
30885         [x, y] op z into [x op, y op z] for op & or | if conditions
30886         are met.
30887
30888 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30889             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
30890
30891         PR target/71607
30892         * config/arm/arm.md (use_literal_pool): Remove.
30893         (64-bit immediate split): No longer takes cost into consideration
30894         if arm_disable_literal_pool is enabled.
30895         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
30896         used when arm_disable_literal_pool is enabled.
30897         (arm_max_const_double_inline_cost): Remove use of
30898         arm_disable_literal_pool.
30899         (push_minipool_fix): Add assert.
30900         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
30901         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
30902         (no_literal_pool_sf_immediate): New.
30903
30904 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30905
30906         PR tree-optimization/80613
30907         * tree-ssa-dce.c (propagate_necessity): Remove cases for
30908         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
30909
30910 2017-05-05  Richard Biener  <rguenther@suse.de>
30911
30912         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
30913
30914 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
30915
30916         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
30917         of this flag from insn conditions due to removal from r247495.
30918
30919 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
30920
30921         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
30922         New function.
30923         (arm_early_store_addr_dep_ptr): Likewise.
30924         * config/arm/aarch-common-protos.h
30925         (arm_early_load_addr_dep_ptr): Add prototype.
30926         (arm_early_store_addr_dep_ptr): Likewise.
30927         * config/arm/cortex-a53.md: Add new bypasses.
30928
30929 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
30930
30931         * tree.c (next_type_uid): Change type to unsigned.
30932         (type_hash_canon): Decrement back next_type_uid if
30933         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
30934         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
30935         if possible.
30936
30937 2017-05-04  Martin Sebor  <msebor@redhat.com>
30938
30939         * builtins.c: Fix a trivial typo in a comment.
30940
30941         PR middle-end/79234
30942         * builtins.c (check_sizes): Adjust to handle reading past the end.
30943         Avoid printing excessive upper bound of ranges.  Use %E to print
30944         tree nodes instead of converting them to %wu.
30945         (expand_builtin_memchr): New function.
30946         (compute_dest_size): Rename...
30947         (compute_objsize): ...to this.
30948         (expand_builtin_memcpy): Adjust.
30949         (expand_builtin_mempcpy): Adjust.
30950         (expand_builtin_strcat): Adjust.
30951         (expand_builtin_strcpy): Adjust.
30952         (check_strncat_sizes): Adjust.
30953         (expand_builtin_strncat): Adjust.
30954         (expand_builtin_strncpy): Adjust and simplify.
30955         (expand_builtin_memset): Adjust.
30956         (expand_builtin_bzero): Adjust.
30957         (expand_builtin_memcmp): Adjust.
30958         (expand_builtin): Handle memcmp.
30959         (maybe_emit_chk_warning): Check strncat just once.
30960
30961 2017-05-04  Martin Sebor  <msebor@redhat.com>
30962
30963         PR preprocessor/79214
30964         PR middle-end/79222
30965         PR middle-end/79223
30966         * builtins.c (check_sizes): Add inlining context and issue
30967         warnings even when -Wno-system-headers is set.
30968         (check_strncat_sizes): Same.
30969         (expand_builtin_strncat): Same.
30970         (expand_builtin_memmove): New function.
30971         (expand_builtin_stpncpy): Same.
30972         (expand_builtin): Handle memmove and stpncpy.
30973
30974 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
30975
30976         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
30977         which is not used any more.
30978
30979 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
30980
30981         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
30982
30983 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
30984
30985         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
30986         (cortexa53_tunings): Likewise.
30987         (cortexa57_tunings): Likewise.
30988         (cortexa72_tunings): Likewise.
30989         (cortexa73_tunings): Likewise.
30990
30991 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
30992
30993         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
30994         Set loop alignment to 8.
30995
30996 2017-05-04  Martin Sebor  <msebor@redhat.com>
30997
30998         PR translation/80280
30999         * builtins.c (expand_builtin_object_size): Add missing quoting to
31000         %D and like directives.
31001         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
31002         (hsa_type_for_tree_type): Same.
31003         (verify_function_arguments): Same.
31004         * symtab.c (symbol_table::change_decl_assembler_name): Same.
31005         * varasm.c (get_section): Same.
31006         (mark_weak): Same.
31007
31008 2017-05-04  Martin Sebor  <msebor@redhat.com>
31009
31010         PR translation/80280
31011         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
31012
31013 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
31014
31015         * config/aarch64/aarch64.c (generic_addrcost_table):
31016         Change HI/TI mode setting.
31017
31018 2017-05-04  Martin Jambor  <mjambor@suse.cz>
31019
31020         PR tree-optimization/80622
31021         * tree-sra.c (comes_initialized_p): New function.
31022         (build_accesses_from_assign): Only set write lazily when
31023         comes_initialized_p is false.
31024         (analyze_access_subtree): Use comes_initialized_p.
31025         (propagate_subaccesses_across_link): Assert !comes_initialized_p
31026         instead of testing for PARM_DECL.
31027
31028 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31029
31030         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
31031         constraint on operand 0 to allow more general addressing modes.
31032         Adjust output template.
31033         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
31034         New function.
31035         * config/aarch64/aarch64-protos.h
31036         (aarch64_address_valid_for_prefetch_p): Declare prototype.
31037         * config/aarch64/constraints.md (Dp): New address constraint.
31038         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
31039         predicate.
31040
31041 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
31042
31043         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
31044         update use of estimate_ipcp_clone_size_and_time.
31045         (estimate_local_effects): Update use of
31046         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
31047         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
31048         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
31049         Return nonspecialized time.
31050
31051 2017-05-04  Richard Biener  <rguenther@suse.de>
31052
31053         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
31054         for the last VUSE which def dominates the PHI.  Directly call
31055         maybe_skip_until.
31056         (get_continuation_for_phi_1): Remove.
31057
31058 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
31059
31060         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
31061         to explain the use of truncating division.  Cap the number of
31062         iterations to the maximum given by nb_iterations_upper_bound,
31063         if defined.
31064
31065 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31066
31067         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
31068         * configure: Regenerate.
31069         * config.in: Regenerate.
31070         * config/i386/driver-mingw32.c: new file.
31071         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
31072         * config.host: Link driver-mingw32.o on MinGW host.
31073         * doc/install.texi: Document new --enable-mingw-wildcard configure
31074         option.
31075
31076 2017-05-04  Marek Polacek  <polacek@redhat.com>
31077
31078         PR tree-optimization/80612
31079         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
31080
31081 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31082             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
31083
31084         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
31085         (movt splitter): Likewise.
31086         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
31087         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
31088         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
31089         block for Thumb-1 with MOVT.
31090         (thumb2_legitimate_address_p): Move code block ...
31091         (can_avoid_literal_pool_for_label_p): ... into this new function.
31092         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
31093         literal pool.
31094         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
31095         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
31096         "M-profile targets with the MOVT instruction".
31097
31098 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31099
31100         * config/arm/arm-builtins.c (arm_init_builtins): Rename
31101         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
31102         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
31103
31104 2017-05-04  Martin Liska  <mliska@suse.cz>
31105
31106         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
31107         variable cond_code.
31108
31109 2017-05-04  Richard Biener  <rguenther@suse.de>
31110
31111         * tree.c (array_at_struct_end_p): Handle arrays at struct
31112         end with flexarrays more conservatively.  Refactor and treat
31113         arrays of arrays or aggregates more strict.  Fix
31114         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
31115         * tree.c (array_at_struct_end_p): Adjust prototype.
31116         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
31117         * gimple-fold.c (get_range_strlen): Likewise.
31118         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
31119
31120 2017-05-04  Richard Biener  <rguenther@suse.de>
31121
31122         PR tree-optimization/31130
31123         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
31124         false.
31125         (supports_overflow_infinity): Likewise.
31126         (is_negative_overflow_infinity): Likewise.
31127         (is_positive_overflow_infinity): Likewise.
31128         (is_overflow_infinity): Likewise.
31129         (stmt_overflow_infinity): Likewise.
31130         (overflow_infinity_range_p): Likewise.
31131         (usable_range_p): Remove as always returning true.
31132         (make_overflow_infinity): Remove.
31133         (negative_overflow_infinity): Likewise.
31134         (positive_overflow_infinity): Likewise.
31135         (avoid_overflow_infinity): Likewise.
31136         (set_value_range): Adjust accordingly.
31137         (set_value_range_to_nonnegative): Likewise, remove now unused
31138         overflow_infinity arg.
31139         (vrp_operand_equal_p): Adjust.
31140         (update_value_range): Likewise.
31141         (range_int_cst_singleton_p): Likewise.
31142         (operand_less_p): Likewise.
31143         (compare_values_warnv): Likewise.
31144         (extract_range_for_var_from_comparison_expr): Likewise.
31145         (vrp_int_const_binop): Likewise.
31146         (zero_nonzero_bits_from_vr): Likewise.
31147         (extract_range_from_multiplicative_op_1): Likewise.
31148         (extract_range_from_binary_expr_1): Likewise.
31149         (extract_range_from_unary_expr): Likewise.
31150         (extract_range_from_comparison): Likewise.
31151         (extract_range_basic): Likewise.
31152         (adjust_range_with_scev): Likewise.
31153         (compare_ranges): Likewise.
31154         (compare_range_with_value): Likewise.
31155         (dump_value_range): Likewise.
31156         (test_for_singularity): Likewise, remove strict_overflow_p parameter
31157         never used.
31158         (simplify_cond_using_ranges): Adjust.
31159
31160 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
31161
31162         * brig-builtins.def: Added a builtin for class_f64.
31163         * builtin-types.def: Added a builtin type needed by class_f64.
31164
31165 2017-05-03  Jason Merrill  <jason@redhat.com>
31166
31167         * timevar.def: Add TV_CONSTEXPR.
31168
31169 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
31170
31171         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
31172
31173 2017-05-03  Martin Jambor  <mjambor@suse.cz>
31174
31175         * ipa-prop.c (ipa_update_after_lto_read): Removed.
31176         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
31177         * ipa-cp.c (ipcp_propagate_stage): Do not call
31178         ipa_update_after_lto_read.
31179         * ipa-inline.c (ipa_inline): Likewise.
31180
31181 2017-05-03  Martin Jambor  <mjambor@suse.cz>
31182
31183         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
31184         tag.  Added a default constructor and a destructor.
31185         (ipa_edge_args_sum_t): New class;
31186         (ipa_edge_args_sum): Declare.
31187         (ipa_edge_args_vector): Remove declaration.
31188         (IPA_EDGE_REF): Use ipa_edge_args_sum.
31189         (ipa_free_edge_args_substructures): Remove declaration.
31190         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
31191         (ipa_edge_args_info_available_for_edge_p): Likewise.
31192         * ipa-prop.c (ipa_edge_args_vector): Removed.
31193         (edge_removal_hook_holder): Likewise.
31194         (edge_duplication_hook_holder): Likewise.
31195         (ipa_edge_args_sum): New variable.
31196         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
31197         ipa_edge_args_vector.
31198         (ipa_free_edge_args_substructures): Likewise.
31199         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
31200         ipa_edge_args_vector.
31201         (ipa_edge_removal_hook): Turned into method
31202         ipa_edge_args_sum_t::remove.
31203         (ipa_edge_duplication_hook): Turned into method
31204         ipa_edge_args_sum_t::duplicate.
31205         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
31206         registering edge hooks.
31207         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
31208         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
31209         ipa_edge_args_sum instead of ipa_edge_args_vector.
31210         * ipa-profile.c (ipa_profile): Likewise.
31211
31212 2017-05-03  Martin Jambor  <mjambor@suse.cz>
31213
31214         * symbol-summary.h (function_summary): New method exists.
31215         (function_summary::symtab_removal): Deallocate through release.
31216         (call_summary): New class.
31217         (gt_ggc_mx): New overload.
31218         (gt_pch_nx): Likewise.
31219         (gt_pch_nx): Likewise.
31220
31221 2017-05-03  Jeff Law  <law@redhat.com>
31222
31223         PR tree-optimization/78496
31224         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
31225         from simplify_cond_using_ranges.  Split off code to walk
31226         backwards through casts into ...
31227         (simplify_cond_using_ranges_2): New function.
31228         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
31229         (execute_vrp): After identifying jump threads, call
31230         simplify_cond_using_ranges_2.
31231
31232 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
31233
31234         PR bootstrap/80609
31235         * ipa-inline.h (inline_summary): Add ctor.
31236         (create_ggc): Do not use ggc_cleared_alloc.
31237
31238 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
31239             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31240
31241         * gcc.c (handle_braces): Support escaping in switch matching
31242         text.
31243         * doc/invoke.texi (Spec Files): Document it.
31244         Remove superfluous @code markup in items.
31245
31246 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
31247
31248         * diagnostic-show-locus.c (struct column_range): New struct.
31249         (get_affected_columns): New function.
31250         (get_printed_columns): New function.
31251         (struct correction): New struct.
31252         (correction::ensure_capacity): New function.
31253         (correction::ensure_terminated): New function.
31254         (struct line_corrections): New struct.
31255         (line_corrections::~line_corrections): New dtor.
31256         (line_corrections::add_hint): New function.
31257         (layout::print_trailing_fixits): Reimplement in terms of the new
31258         classes.
31259         (selftest::test_overlapped_fixit_printing): New function.
31260         (selftest::diagnostic_show_locus_c_tests): Call it.
31261
31262 2017-05-03  Nathan Sidwell  <nathan@acm.org>
31263
31264         Canonicalize canonical type hashing
31265         * tree.h (type_hash_canon_hash): Declare.
31266         * tree.c (type_hash_list, attribute_hash_list): Move into
31267         type_hash_canon_hash.
31268         (build_type_attribute_qual_variant): Break out hash code calc into
31269         type_hash_canon_hash.
31270         (type_hash_canon_hash): New.  Generic type hash computation.
31271         (build_range_type_1, build_array_type_1, build_function_type,
31272         build_method_type_directly, build_offset_type, build_complex_type,
31273         make_vector_type): Call it.
31274
31275 2017-05-03  Richard Biener  <rguenther@suse.de>
31276
31277         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
31278         When all DRs have unknown misaligned do not always peel
31279         when there is a store but apply the same costing model as if
31280         there were only loads.
31281
31282 2017-05-03  Richard Biener  <rguenther@suse.de>
31283
31284         Revert
31285         PR tree-optimization/80492
31286         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
31287         compare_base_decls returning dont-know properly.
31288
31289 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31290
31291         * config/arm/iterators.md (CCSI): New mode iterator.
31292         (arch): New mode attribute.
31293         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
31294         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
31295         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
31296         code iterator for success result mode.
31297         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
31298         the corresponding new insn generators.
31299
31300 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
31301
31302         Revert r247509
31303         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31304         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
31305
31306 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
31307
31308         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
31309         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
31310         (DDR_A): Wrap DDR argument in brackets.
31311         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
31312         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
31313         (DDR_REVERSED_P): Likewise.
31314
31315 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
31316
31317         PR tree-optimization/79472
31318         * tree-switch-conversion.c (struct switch_conv_info): Add
31319         contiguous_range and default_case_nonstandard fields.
31320         (collect_switch_conv_info): Compute contiguous_range and
31321         default_case_nonstandard fields, don't clear final_bb if
31322         contiguous_range and only the default case doesn't have the required
31323         structure.
31324         (check_all_empty_except_final): Set default_case_nonstandard instead
31325         of failing if contiguous_range and the default case doesn't have empty
31326         block.
31327         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
31328         and only the default case doesn't have the required constants.  Skip
31329         virtual phis.
31330         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
31331         if default_case_nonstandard.
31332         (build_constructors): Build constant 1 just once.  Assert that default
31333         values aren't inserted in between cases if contiguous_range.  Skip
31334         virtual phis.
31335         (build_arrays): Skip virtual phis.
31336         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
31337         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
31338         Handle virtual phis.
31339         (gen_inbound_check): Handle default_case_nonstandard case.
31340         (process_switch): Adjust check_final_bb caller.  Call
31341         gather_default_values with the first non-default case instead of
31342         default case if default_case_nonstandard.
31343
31344 2017-05-02  Nathan Sidwell  <nathan@acm.org>
31345
31346         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
31347         check.  Fix formatting.
31348
31349 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
31350
31351         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
31352         errors when comparing specialized and unspecialized times.
31353
31354 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
31355
31356         * diagnostic-show-locus.c
31357         (layout::should_print_annotation_line_p): Make private.
31358         (layout::print_annotation_line): Make private.
31359         (layout::annotation_line_showed_range_p): Make private.
31360         (layout::show_ruler): Make private.
31361         (layout::print_source_line): Make private.  Pass in line and
31362         line_width, rather than calling location_get_source_line.  Drop
31363         returned value.
31364         (layout::print_leading_fixits): New method.
31365         (layout::print_any_fixits): Rename to...
31366         (layout::print_trailing_fixits): ...this, and make private.
31367         Don't print newline fixits.
31368         (diagnostic_show_locus): Move logic for printing one row into...
31369         (layout::print_line): ...this new function.  Move the
31370         location_get_source_line call and error-handling from
31371         print_source_line to here.  Call print_leading_fixits, and rename
31372         print_any_fixits to print_trailing_fixits.
31373         (selftest::test_fixit_insert_containing_newline): Update now that
31374         newlines are partially supported.
31375         (selftest::test_fixit_insert_containing_newline_2): New test.
31376         (selftest::test_fixit_replace_containing_newline): Update comments.
31377         (selftest::diagnostic_show_locus_c_tests): Call the new test.
31378         * edit-context.c (class added_line): New class.
31379         (class edited_line): Describe newline handling in comment.
31380         (edited_line::actually_edited_p): New method.
31381         (edited_line::print_content): Delete redundant decl.
31382         (edited_line::m_predecessors): New field.
31383         (edited_file::print_content): Call edited_line::print_content.
31384         (edited_file::print_diff): Update to support newlines.
31385         (edited_file::print_diff_hunk): Likewise.
31386         (edited_file::print_run_of_changed_lines): New function.
31387         (edited_file::print_diff_line): Convert to...
31388         (print_diff_line): ...this.
31389         (edited_file::get_effective_line_count): New function.
31390         (edited_line::edited_line): Initialize new field m_predecessors.
31391         (edited_line::~edited_line): Clean up m_predecessors.
31392         (edited_line::apply_fixit): Handle newlines.
31393         (edited_line::get_effective_line_count): New function.
31394         (edited_line::print_content): New function.
31395         (edited_line::print_diff_lines): New function.
31396         (selftest::test_applying_fixits_insert_containing_newline): New
31397         test.
31398         (selftest::test_applying_fixits_replace_containing_newline): New
31399         test.
31400         (selftest::insert_line): New function.
31401         (selftest::test_applying_fixits_multiple_lines): Add example of
31402         inserting a line.
31403         (selftest::edit_context_c_tests): Call the new tests.
31404
31405 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31406
31407         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
31408         parameter cand.  Update dump information.
31409         (get_computation_cost): Update uses.
31410
31411 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31412
31413         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
31414         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
31415         (get_computation_at, rewrite_use_address): Update use of
31416         get_computation_aff.
31417
31418 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31419
31420         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
31421         (get_computation): Delete.
31422         (get_computation_cost): Implement like get_computation_cost_at.
31423         Use get_computation_at.
31424         (get_computation_cost_at): Delete.
31425         (rewrite_use_nonlinear_expr): Use get_computation_at.
31426         (rewrite_use_compare, remove_unused_ivs): Ditto.
31427
31428 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31429
31430         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
31431
31432 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31433
31434         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
31435         (ivopts_global_cost_for_size): Rename parameter and update uses.
31436         (iv_ca_recount_cost): Update uses.
31437         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
31438         candidates seperately in n_invs and n_cands.
31439         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
31440
31441 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31442
31443         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
31444         (find_inv_vars_cb): New.
31445         (find_depends): Renamed to ...
31446         (find_inv_vars): ... this.
31447         (add_candidate_1, force_var_cost): Call find_inv_vars.
31448         (split_address_cost, determine_group_iv_cost_cond): Ditto.
31449
31450 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31451
31452         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
31453         inv_vars.  Add inv_exprs.
31454         (struct iv_cand): Rename depends_on to inv_vars.
31455         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
31456         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
31457         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
31458         (dump_cand): Dump inv_vars.
31459         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
31460         (record_invariant, find_depends, add_candidate_1): Ditto.
31461         (set_group_iv_cost, force_var_cost): Ditto.
31462         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
31463         (get_computation_cost_at, get_computation_cost): Ditto.
31464         (determine_group_iv_cost_generic): Ditto.
31465         (determine_group_iv_cost_address): Ditto.
31466         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
31467         (determine_group_iv_costs): Ditto.
31468         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
31469         (iv_ca_set_remove_invariants): Renamed to ...
31470         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
31471         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
31472         (iv_ca_set_add_invariants):  Renamed to ...
31473         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
31474         (iv_ca_set_cp): Use iv_ca_set_add_invs.
31475         (iv_ca_has_deps): Support inv_vars and inv_exprs.
31476         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
31477         (create_new_ivs): Remove useless dump.
31478
31479 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31480
31481         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
31482         iv_cand code.
31483         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
31484         (iv_ca_set_no_cp, create_new_iv): Ditto.
31485
31486 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
31487
31488         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
31489
31490 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
31491
31492         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
31493         function tree_check2.
31494
31495 2017-05-02  Martin Liska  <mliska@suse.cz>
31496
31497         * doc/gcov.texi: Add missing preposition.
31498         * gcov.c (function_info::function_info): Properly fill up
31499         all member variables.
31500
31501 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
31502
31503         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
31504
31505 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
31506
31507         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
31508
31509 2017-05-02  Martin Liska  <mliska@suse.cz>
31510
31511         PR lto/77954.
31512         * lto-streamer-in.c (lto_read_tree_1): Remove
31513         LTO_STREAMER_DEBUG.
31514         * lto-streamer.c (struct tree_hash_entry): Likewise.
31515         (struct tree_entry_hasher): Likewise.
31516         (tree_entry_hasher::hash): Likewise.
31517         (tree_entry_hasher::equal): Likewise.
31518         (lto_streamer_init): Likewise.
31519         (lto_orig_address_map): Likewise.
31520         (lto_orig_address_get): Likewise.
31521         (lto_orig_address_remove): Likewise.
31522         * lto-streamer.h: Likewise.
31523         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
31524         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
31525
31526 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
31527
31528         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
31529         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
31530         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
31531         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
31532         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
31533         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
31534         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
31535         (mm_maskz_sub_ss): New intrinsics.
31536         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31537         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
31538         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
31539         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
31540         (__builtin_ia32_subss_mask_round): New builtins.
31541         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31542         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31543         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
31544         Renamed to ...
31545         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
31546         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
31547         Changed to ...
31548         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
31549         ... this.
31550
31551 2017-05-02  Martin Jambor  <mjambor@suse.cz>
31552
31553         PR tree-optimization/78687
31554         * tree-sra.c (access): New field parent.
31555         (process_subtree_disqualification): New function.
31556         (disqualify_candidate): Call it.
31557         (build_accesses_from_assign): Reset write flag if creating an
31558         assighnment link.
31559         (build_access_subtree): Fill in parent field and also prpagate
31560         down grp_write flag.
31561         (create_artificial_child_access): New parameter set_grp_write, set
31562         grp_write to its value.
31563         (propagate_subaccesses_across_link): Also propagate grp_write flag
31564         values.
31565         (propagate_all_subaccesses): Push the closest parent back to work
31566         queue if add_access_to_work_queue returned true.
31567
31568 2017-05-02  Richard Biener  <rguenther@suse.de>
31569
31570         * common.opt (fstrict-overflow): Alias negative to fwrapv.
31571         * doc/invoke.texi (fstrict-overflow): Remove all traces of
31572         -fstrict-overflow documentation.
31573         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
31574         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
31575         flag_strict_overflow.
31576         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
31577         * lto-opts.c (lto_write_options): Do not stream it.
31578         * lto-wrapper.c (merge_and_complain): Do not handle it.
31579         * opts.c (default_options_table): Do not set -fstrict-overflow.
31580         (finish_options): Likewise do not clear it when sanitizing.
31581         * simplify-rtx.c (simplify_const_relational_operation): Do not
31582         test flag_strict_overflow.
31583
31584 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
31585
31586         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
31587         using enabled attribute.
31588         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
31589         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
31590         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
31591         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
31592         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
31593         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
31594         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
31595         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
31596         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
31597         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
31598
31599 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
31600
31601         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
31602
31603 2017-05-02  Richard Biener  <rguenther@suse.de>
31604
31605         PR tree-optimization/80591
31606         Revert
31607         2017-04-10  Richard Biener  <rguenther@suse.de>
31608
31609         * tree-ssa-structalias.c (find_func_aliases): Properly handle
31610         asm inputs.
31611
31612 2017-05-02  Richard Biener  <rguenther@suse.de>
31613
31614         PR tree-optimization/80549
31615         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
31616         (cleanup_tree_cfg_noloop): Create forwarders to known loop
31617         headers if they do not have a preheader.
31618
31619 2017-05-02  Martin Liska  <mliska@suse.cz>
31620
31621         PR other/80589
31622         * common.opt: Fix typo.
31623         * doc/invoke.texi: Likewise.
31624
31625 2017-05-01  Jan Beulich  <jbeulich@suse.com>
31626
31627         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
31628         swapping, add (x,x,m,x,n) alternative.
31629
31630 2017-05-01  Nathan Sidwell  <nathan@acm.org>
31631
31632         * calls.c (combine_pending_stack_adjustment_and_call): Remove
31633         unnecessary unadjusted_alignment check.
31634
31635 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
31636
31637         PR c++/80038
31638         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
31639         operations here.
31640         * gimplify.c (gimplify_cilk_detach): New function.
31641         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
31642         * tree-core.h: Document EXPR_CILK_SPAWN.
31643         * tree.h (EXPR_CILK_SPAWN): Define.
31644
31645 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
31646
31647         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
31648         to use new fixit_hint representation, using the "replace" logic.
31649         (get_line_span_for_fixit_hint): Likewise.
31650         (layout::print_any_fixits): Likewise.
31651         (selftest::test_one_liner_many_fixits): Rename to...
31652         (selftest::test_one_liner_many_fixits_1): ...this, and update
31653         comment and expected output to reflect that the multiple fix-it
31654         hints are now consolidated into one insertion.
31655         (selftest::test_one_liner_many_fixits_2): New test.
31656         (selftest::test_diagnostic_show_locus_one_liner): Update for
31657         above.
31658         (selftest::test_fixit_consolidation): Update for fix-it API
31659         change.
31660         * diagnostic.c (print_parseable_fixits): Likewise.
31661         * edit-context.c (edited_line::m_line_events): Convert from
31662         auto_vec <line_event *> to auto_vec <line_event>.
31663         (class line_event): Convert from abstract base class to a concrete
31664         class, taking over the role of replace_event.
31665         (class insert_event): Delete.
31666         (class replace_event): Rename to class line_event.  Convert to
31667         half-open range.
31668         (edit_context::add_fixits): Reimplement.
31669         (edit_context::apply_insert): Delete.
31670         (edit_context::apply_replace): Rename to...
31671         (edit_context::apply_fixit): ...this.  Convert to half-open range.
31672         (edited_file::apply_insert): Delete.
31673         (edited_file::apply_replace): Rename to...
31674         (edited_file::apply_fixit): ...this.
31675         (edited_line::~edited_line): Drop deletion of events.
31676         (edited_line::apply_insert): Delete.
31677         (edited_line::apply_replace): Rename to...
31678         (edited_line::apply_fixit): ...this.  Convert to half-open range.
31679         Update for change to type of m_line_events.
31680         * edit-context.h (edit_context::apply_insert): Delete.
31681         (edit_context::apply_replace): Rename to...
31682         (edit_context::apply_fixit): ...this.
31683
31684 2017-05-01  Martin Sebor  <msebor@redhat.com>
31685
31686         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
31687         known.
31688
31689 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
31690
31691         PR target/68491
31692         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
31693         __get_cpuid_max returns 0.
31694         (__get_cpuid_count): Ditto.
31695
31696 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
31697
31698         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
31699         replacement expression is another instance of one of its arguments.
31700
31701 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
31702
31703         PR target/79430
31704         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
31705         check for stack push/pop autoinc.
31706         * config/i386/i386.c (ix86_agi_dependent): Return false
31707         if the only reason why modified_in_p returned true is that
31708         addr is SP based and set_insn is a push or pop.
31709
31710 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
31711
31712         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
31713         overflow check.
31714
31715 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
31716
31717         PR ipa/79224
31718         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
31719         (account_size_time): Use two predicates - exec_pred and
31720         nonconst_pred_ptr.
31721         (evaluate_conditions_for_known_args): Compute both clause and
31722         nonspec_clause.
31723         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
31724         (inline_summary_t::duplicate): Update.
31725         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
31726         separately.
31727         (compute_inline_parameters): Likewise.
31728         (estimate_edge_size_and_time): Update caluclation of time.
31729         (estimate_node_size_and_time): Compute both time and nonspecialized
31730         time.
31731         (estimate_ipcp_clone_size_and_time): Update.
31732         (inline_merge_summary): Update.
31733         (do_estimate_edge_time): Update.
31734         (do_estimate_edge_size): Update.
31735         (do_estimate_edge_hints): Update.
31736         (inline_read_section, inline_write_summary): Stream both new predicates.
31737         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
31738         as argument.
31739         (compute_inlined_call_time): Cleanup.
31740         (big_speedup_p): Update.
31741         (edge_badness): Update.
31742         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
31743         (size_time_entry): Replace predicate by exec_predicate and
31744         nonconst_predicate.
31745         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
31746         (estimate_edge_time): Return also nonspec_time.
31747         (reset_edge_growth_cache): Update.
31748
31749 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
31750
31751         PR rtl-optimization/80491
31752         * ifcvt.c (noce_process_if_block): When looking for x setter
31753         with missing else_bb, don't check only the insn right before
31754         cond_earliest, but look for the last insn that x is modified in
31755         within the same bb.
31756
31757         PR rtl-optimization/80491
31758         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
31759
31760 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
31761
31762         PR tree-optimization/80487
31763         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
31764
31765 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31766
31767         PR tree-optimization/79697
31768         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
31769         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
31770         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
31771         BUILT_IN_STRNDUP.
31772         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
31773         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
31774
31775 2017-04-28  Martin Sebor  <msebor@redhat.com>
31776
31777         PR tree-optimization/80523
31778         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
31779         (init_target_to_host_charmap, target_to_host, target_strtol10): New
31780         functions.
31781         (maybe_warn, format_directive, parse_directive): Use new functions.
31782         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
31783
31784 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
31785
31786         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
31787
31788 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31789
31790         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
31791         target_header_dir): Set correctly.
31792         * configure: Regenerated.
31793         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
31794         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
31795         instead of SYSTEM_HEADER_DIR.
31796
31797 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
31798
31799         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
31800         (estimate_local_effects): Likewise.
31801         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
31802         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
31803         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
31804         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
31805         do_estimate_edge_time, estimate_edge_time): Likewise.
31806         * ipa-inline-analysis.c (estimate_node_size_and_time,
31807         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
31808         (estimate_time_after_inlining): Remove.
31809
31810 2017-04-28  Martin Liska  <mliska@suse.cz>
31811
31812         * doc/gcov.texi: Enhance documentation of gcov.
31813
31814 2017-04-28  Martin Liska  <mliska@suse.cz>
31815
31816         * doc/gcov.texi: Sort options in alphabetic order.
31817         * doc/gcov-dump.texi: Likewise.
31818         * doc/gcov-tool.texi: Likewise.
31819         * gcov.c (print_usage): Likewise.
31820         * gcov-dump.c (print_usage): Likewise.
31821         * gcov-tool.c (print_merge_usage_message): Likewise.
31822         (print_rewrite_usage_message): Likewise.
31823         (print_overlap_usage_message): Likewise.
31824
31825 2017-04-28  Martin Liska  <mliska@suse.cz>
31826
31827         PR gcov-profile/53915
31828         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
31829
31830 2017-04-28  Martin Liska  <mliska@suse.cz>
31831
31832         PR gcov-profile/79891
31833         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
31834         is marked by compiler as living on a line.
31835         (get_cycles_count): Remove usage of the union.
31836         (output_intermediate_file): Likewise.
31837         (find_source): Fix GNU coding style.
31838         (accumulate_line_counts): Remove old non-all block mode.
31839         (output_lines): Remove usage of the union.
31840         * profile.c (output_location): Include all BBs, even if
31841         belonging to a same line (and file) as a previous BB.
31842
31843 2017-04-28  Martin Liska  <mliska@suse.cz>
31844
31845         * gcov.c (process_args): Handle new argument 'w'.
31846         (read_graph_file): Assign ID to BBs.
31847         (output_branch_count): Display BB # if verbose flag is set.
31848         (output_lines): Likewise for arcs.
31849         (print_usage): Add '--verbose' option help.
31850         * doc/gcov.texi: Document --verbose (-w) option.
31851
31852 2017-04-28  Martin Liska  <mliska@suse.cz>
31853
31854         * gcov.c (struct block_location_info): New struct.
31855         (process_file): Fill up the new structure.
31856         (read_graph_file): Replace usage of encoding by the newly added
31857         struct.
31858         (add_line_counts): Likewise.
31859         (accumulate_line_counts): Remove usage of the union.
31860         (function_info::function_info): New function.
31861         (function_info::~function_info): Likewise.
31862         (process_file): Call delete instead of release_function.
31863         (release_function): Release the function.
31864         (release_structures): Call delete instead of release_function.
31865         (solve_flow_graph): Replace usage of num_blocks.
31866         (find_exception_blocks): Likewise.
31867         (output_lines): Fix GNU coding style.
31868
31869 2017-04-28  Martin Liska  <mliska@suse.cz>
31870
31871         PR driver/56469
31872         * coverage.c (coverage_remove_note_file): New function.
31873         * coverage.h: Declare the function.
31874         * toplev.c (finalize): Clean if an error has been seen.
31875
31876 2017-04-28  Martin Liska  <mliska@suse.cz>
31877
31878         PR gcov-profile/80031
31879         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
31880         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
31881         * gcov.c (read_graph_file): Read just number of blocks.
31882         * profile.c (branch_prob): Do not stream 0 flags per a basic
31883         block.
31884
31885 2017-04-28  Martin Liska  <mliska@suse.cz>
31886
31887         * gcov-dump.c (tag_*): Add new argument to declarations.
31888         (dump_gcov_file): Likewise.
31889         (tag_blocks): Add and use new argument depth.
31890         (tag_arcs): Likewise.
31891         (tag_lines): Likewise.
31892         (tag_counters): Likewise.
31893         (tag_summary): Likewise.
31894         (dump_working_sets): Use depth to do a proper indentation.
31895
31896 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
31897
31898         PR bootstrap/80531
31899         * cgraph.h (symtab_node::debug_symtab): No longer inline.
31900         * symtab.c (symtab_node::debug_symtab): Move definition here.
31901
31902 2017-04-28  Richard Biener  <rguenther@suse.de>
31903
31904         * lto-streamer.h (LTO_major_version): Bump to 7.
31905
31906 2017-04-28  Richard Biener  <rguenther@suse.de>
31907
31908         * tree-vrp.c (assert_info): New struct.
31909         (add_assert_info): New helper.
31910         (register_edge_assert_for_2): Refactor to add asserts to a vector
31911         of assert_info.
31912         (register_edge_assert_for_1): Likewise.
31913         (register_edge_assert_for): Likewise.
31914         (finish_register_edge_assert_for): New helper actually registering
31915         asserts where live on edge.
31916         (find_conditional_asserts): Adjust.
31917         (find_switch_asserts): Likewise.
31918         (evrp_dom_walker::try_find_new_range): Generalize.
31919         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
31920
31921 2017-04-27  Marek Polacek  <polacek@redhat.com>
31922
31923         PR sanitizer/80349
31924         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
31925         arg10 and arg11 to itype.
31926
31927 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
31928
31929         * doc/extend.texi (Object Size Checking): Improve grammar.
31930
31931 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
31932
31933         PR target/80530
31934         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
31935         that the logic for permitting reciprocal estimates matches that
31936         in use_rsqrt_p.
31937
31938 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
31939
31940         PR c++/80534
31941         * tree.c (type_cache_hasher::equal): Only compare
31942         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
31943         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
31944         non-aggregate element types.
31945         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
31946         about the flag on ARRAY_TYPEs in the comment, formatting fix.
31947
31948 2017-04-27  Richard Biener  <rguenther@suse.de>
31949
31950         PR middle-end/80533
31951         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
31952         stripping ARRAY_REFs from MEM_EXPR make sure we're not
31953         keeping a reference to a trailing array.
31954
31955 2017-04-27  Richard Biener  <rguenther@suse.de>
31956
31957         PR middle-end/80539
31958         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
31959         being in loop-closed SSA form conservatively.
31960         (chrec_fold_multiply_poly_poly): Likewise.
31961
31962 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
31963
31964         PR middle-end/79665
31965         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
31966         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
31967
31968 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
31969
31970         PR target/77728
31971         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
31972         (aarch64_function_arg_alignment): Return unsigned int again, but still
31973         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
31974         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
31975         Don't emit -Wpsabi note.
31976         (aarch64_function_arg_boundary): Likewise.
31977         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
31978         caller.
31979
31980 2017-04-26  Nathan Sidwell  <nathan@acm.org>
31981
31982         * tree.h (crc32_unsigned_n): Declare.
31983         (crc32_unsigned, crc32_unsigned): Make inline.
31984         * tree.c (crc32_unsigned_bits): Replace with ...
31985         (crc32_unsigned_n): ... this.
31986         (crc32_unsigned, crc32_byte): Remove.
31987         (crc32_string): Remove unnecessary braces.
31988
31989 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
31990
31991         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
31992         * ipa-inline-analysis.c (MAX_TIME): Remove.
31993         (account_size_time): Use sreal for time.
31994         (dump_inline_summary): Update.
31995         (estimate_function_body_sizes): Update.
31996         (estimate_edge_size_and_time): Update.
31997         (estimate_calls_size_and_time): Update.
31998         (estimate_node_size_and_time): Update.
31999         (inline_merge_summary): Update.
32000         (inline_update_overall_summary): Update.
32001         (estimate_time_after_inlining): Update.
32002         (inline_read_section): Update.
32003         (inline_write_summary): Update.
32004         * ipa-inline.c (compute_uninlined_call_time): Update.
32005         (compute_inlined_call_time): Update.
32006         (recursive_inlining): Update.
32007         (inline_small_functions): Update.
32008         (dump_overall_stats): Update.
32009         * ipa-inline.h: Include sreal.h.
32010         (size_time_entry): Turn time to sreal.
32011         (inline_summary): Turn self_time nad time to sreal.
32012
32013 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
32014
32015         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
32016         data-streamer.h
32017         (sreal::stream_out, sreal::stream_in): New.
32018         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
32019
32020 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
32021
32022         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
32023         environment.
32024
32025 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
32026
32027         PR target/70799
32028         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
32029         Handle ASHIFTRT.
32030         (dimode_scalar_chain::compute_convert_gain): Ditto.
32031         (dimode_scalar_chain::make_vector_copies): Ditto.
32032         (dimode_scalar_chain::convert_reg): Ditto.
32033         (dimode_scalar_chain::convert_insn): Ditto.
32034         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
32035         (VI248_AVX512BW_1): New mode iterator.
32036         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
32037         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
32038         mode iterator.
32039
32040 2017-04-25  Martin Sebor  <msebor@redhat.com>
32041
32042         PR tree-optimization/80497
32043         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
32044         constants are representable in HOST_WIDE_INT.
32045         (parse_directive): Ditto.
32046
32047 2017-04-25  Martin Sebor  <msebor@redhat.com>
32048
32049         PR bootstrap/80486
32050         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
32051         (new_zero_array): Adjust signature.
32052         (dom_info::dom_init): Used unsigned rather that size_t.
32053         (dom_info::dom_info): Same.
32054
32055 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32056             Jakub Jelinek  <jakub@redhat.com>
32057
32058         PR target/77728
32059         * config/arm/arm.c: Include gimple.h.
32060         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
32061         returns negative, increment ncrn only if it returned positive.
32062         (arm_needs_doubleword_align): Return int instead of bool,
32063         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
32064         members, but if there is any such non-FIELD_DECL
32065         > PARM_BOUNDARY aligned decl, return -1 instead of false.
32066         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
32067         returns negative, increment nregs only if it returned positive.
32068         (arm_setup_incoming_varargs): Likewise.
32069         (arm_function_arg_boundary): Emit -Wpsabi note if
32070         arm_needs_doubleword_align returns negative, return
32071         DOUBLEWORD_ALIGNMENT only if it returned positive.
32072
32073 2017-04-25  Marek Polacek  <polacek@redhat.com>
32074
32075         PR sanitizer/80349
32076         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
32077         first argument to type.
32078
32079 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
32080
32081         PR target/80482
32082         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
32083         type checks to test for compatibility instead of equality.
32084
32085 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32086             Jakub Jelinek  <jakub@redhat.com>
32087
32088         PR target/77728
32089         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
32090         type.
32091         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
32092         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
32093         the alignment computation, but return their maximum in warn_alignment.
32094         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
32095         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
32096         is smaller.
32097         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
32098         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
32099         caller.
32100
32101 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32102
32103         * config/arc/simdext.md (dmpyh): Fix typo.
32104
32105 2017-04-25  Richard Biener  <rguenther@suse.de>
32106
32107         PR tree-optimization/80492
32108         * alias.c (compare_base_decls): Handle registers with asm
32109         specification conservatively.
32110         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
32111         compare_base_decls returning dont-know properly.
32112
32113 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32114
32115         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
32116         (legitimate_offset_address_p): New function.
32117         (arc_legitimate_address_p): Use above function.
32118
32119 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32120
32121         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
32122
32123 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32124
32125         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
32126         ACCH registers whenever they are available.
32127
32128 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32129
32130         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
32131         double regs fix when not used.
32132
32133 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32134
32135         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
32136         core registers.
32137         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
32138         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
32139
32140 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32141
32142         * config/arc/arc.c (arc_output_addsi): Check for h-register class
32143         when emitting short ADD instructions.
32144
32145 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
32146
32147         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
32148         constraint.
32149         (cmpsi_cc_c_insn): Likewise.
32150         (cbranchsi4_scratch): Compute proper instruction length using
32151         compact_hreg_operand.
32152         * config/arc/predicates.md (compact_hreg_operand): New predicate.
32153
32154 2017-04-25  Richard Biener  <rguenther@suse.de>
32155
32156         PR middle-end/80509
32157         * passes.c (pass_manager::pass_manager): Initialize
32158         m_name_to_pass_map.
32159
32160 2017-04-25  Richard Biener  <rguenther@suse.de>
32161
32162         PR tree-optimization/79201
32163         * tree-ssa-sink.c (statement_sink_location): Handle calls.
32164
32165 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
32166
32167         PR target/80464
32168         * config/s390/vector.md: Split MEM->GPR vector moves for
32169         non-s_operand addresses.
32170
32171 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
32172
32173         PR target/79895
32174         * config/s390/predicates.md (reload_const_wide_int_operand): New
32175         predicate.
32176         * config/s390/s390.md ("movti"): Remove d/P alternative.
32177         ("movti_bigconst"): New pattern definition.
32178
32179 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32180
32181         PR target/80080
32182         * s390-protos.h (s390_expand_cs_hqi): Removed.
32183         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
32184         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
32185         modes as well as CCZ1mode and CCZmode.
32186         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
32187         signature of s390_emit_compare_and_swap.
32188         (s390_expand_cs_hqi): Likewise, make static.
32189         (s390_expand_cs_tdsi): Generate an explicit compare before trying
32190         compare-and-swap, in some cases.
32191         (s390_expand_cs): Wrapper function.
32192         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
32193         atomic_exchange.
32194         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
32195         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
32196         patterns for small and large integers.  Forbid symref memory operands.
32197         Move expander to s390.c.  Require cc register.
32198         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
32199         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
32200         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
32201         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
32202         symref memory operands.  Remove CC mode and call s390_match_ccmode
32203         instead.
32204         ("atomic_exchange<mode>"): Allow and implement all integer modes.
32205
32206 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32207
32208         * config/s390/s390.md (define_peephole2): New peephole to help
32209         combining the load-and-test pattern with volatile memory.
32210
32211 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32212
32213         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
32214         with CCZmode for TARGET_Z196.
32215
32216 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
32217
32218         PR rtl-optimization/80501
32219         * combine.c (make_compound_operation_int): Set subreg_code to SET
32220         even for AND with mask of the sign bit of mode.
32221
32222         PR rtl-optimization/80500
32223         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
32224         sum's initial value.
32225
32226 2017-04-25  Julian Brown  <julian@codesourcery.com>
32227             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
32228
32229         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
32230
32231 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
32232
32233         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
32234
32235 2017-04-25  Julian Brown  <julian@codesourcery.com>
32236             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
32237
32238         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
32239         (thunderx2t99_sha): New Reservation.
32240
32241 2017-04-25  Julian Brown  <julian@codesourcery.com>
32242             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
32243
32244         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
32245         type for 1-element load.
32246
32247 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
32248
32249         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
32250
32251 2017-04-24  Martin Jambor  <mjambor@suse.cz>
32252
32253         PR tree-optimization/80293
32254         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
32255         char arrays not totally scalarizable if it is false.
32256         (analyze_all_variable_accesses): Pass correct value in the new
32257         parameter.  Add a statistics counter.
32258
32259 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
32260
32261         PR middle-end/79931
32262         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
32263
32264 2017-04-24  Richard Biener  <rguenther@suse.de>
32265
32266         PR tree-optimization/80494
32267         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
32268         out for complex types.
32269
32270 2017-04-24  Richard Biener  <rguenther@suse.de>
32271
32272         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
32273         * tree-ssa-sccvn.c (print_scc): Print SCC size.
32274         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
32275         (DFS): Adjust and never fail.
32276         (sccvn_dom_walker::fail): Remove.
32277         (sccvn_dom_walker::before_dom_children): Adjust.
32278         (run_scc_vn): Likewise and never fail.
32279         * tree-ssa-pre.c (pass_pre::execute): Adjust.
32280         (pass_fre::execute): Likewise.
32281
32282 2017-04-24  Richard Biener  <rguenther@suse.de>
32283
32284         PR tree-optimization/79725
32285         * tree-ssa-sink.c (statement_sink_location): Return whether
32286         failure reason was zero uses.  Move that check later.
32287         (sink_code_in_bb): Deal with zero uses by removing the stmt
32288         if possible.
32289
32290 2017-04-24  Richard Biener  <rguenther@suse.de>
32291
32292         PR c++/2972
32293         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
32294         pointer-based references.
32295
32296 2017-04-24  Richard Biener  <rguenther@suse.de>
32297
32298         PR bootstrap/79814
32299         * pass_manager.h (pass_manager::operator new): Remove.
32300         (pass_manager::operator delete): Likewise.
32301         * passes.c (pass_manager::operator new): Remove.
32302         (pass_manager::operator delete): Likewise.
32303         (pass_manager::pass_manager): Zero individual pass members.
32304
32305 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
32306
32307         PR target/70799
32308         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
32309         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
32310         Check "XEXP (src, 1)" operand here.
32311         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
32312         Check "XEXP (src, 1)" operand here.
32313         (dimode_scalar_chain::make_vector_copies): Detect count register
32314         of a shift instruction.  Zero extend count register from QImode
32315         to DImode to satisfy vector shift pattern count operand predicate.
32316         Substitute vector shift count operand with a DImode copy.
32317         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
32318         vector register.
32319
32320 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
32321
32322         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
32323         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
32324         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
32325         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
32326         (UNSPEC_NOREX_MEM): Remove definition.
32327
32328 2017-04-21  Richard Biener  <rguenther@suse.de>
32329
32330         PR tree-optimization/79547
32331         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
32332         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
32333         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
32334         without any constraints.
32335
32336 2017-04-21  Richard Biener  <rguenther@suse.de>
32337
32338         PR tree-optimization/78847
32339         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
32340
32341 2017-04-21  Richard Biener  <rguenther@suse.de>
32342
32343         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
32344         (build_distinct_type_copy): Likewise.
32345         (build_variant_type_copy): Likewise.
32346         * tree.c (build_qualified_type): Pass down mem-stat info.
32347         (build_distinct_type_copy): Likewise.
32348         (build_variant_type_copy): Likewise.
32349
32350 2017-04-21  Richard Biener  <rguenther@suse.de>
32351
32352         PR tree-optimization/80237
32353         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
32354         defaulted to NULL.
32355         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
32356         for a simplified result.
32357
32358 2016-04-21  Richard Biener  <rguenther@suse.de>
32359
32360         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
32361         sth as strict as a simple_iv but a chrec without symbols and an
32362         operand defined in the loop we are peeling (and not some subloop).
32363         (propagate_constants_for_unrolling): Propagate all constants.
32364
32365 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
32366
32367         PR target/79804
32368         * config/i386/i386.c (print_reg): Remove assert for disalowed
32369         regno values, call output_operand_lossage instead.
32370
32371 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
32372
32373         PR target/78090
32374         * config/i386/constraints.md (Yc): New register constraint.
32375         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
32376         Use Yc constraint for alternative 2 of operand 0.  Remove
32377         preferred_for_speed attribute.
32378
32379 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
32380
32381         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
32382         lastprivate clauses in SIMT case.
32383
32384 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
32385
32386         * doc/invoke.texi (-Wextra-semi): Document new warning option.
32387
32388 2017-04-20  Richard Biener  <rguenther@suse.de>
32389
32390         PR tree-optimization/57796
32391         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
32392         as N scalar stores.
32393         (vect_model_load_cost): Cost gathers as N scalar loads.
32394
32395 2017-04-20  Richard Biener  <rguenther@suse.de>
32396
32397         * ggc-page.c (ggc_allocated_p): Rename to ...
32398         (safe_lookup_page_table_entry): ... this and return the lookup
32399         result.
32400         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
32401
32402 2017-04-20  Richard Biener  <rguenther@suse.de>
32403
32404         PR tree-optimization/80453
32405         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
32406         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
32407         from the conditions.
32408         (vn_phi_eq): Pass them down.
32409         (vn_phi_lookup): Record them.
32410         (vn_phi_insert): Likewise.
32411
32412 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
32413
32414         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
32415         uninitialized variable warning to avoid buffer overrun.
32416
32417 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
32418
32419         PR other/71250
32420         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
32421         is suppressed for '{ 0 }' in C.
32422
32423 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
32424
32425         * BASE-VER: Set to 8.0.0.
32426
32427 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32428
32429         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
32430         priority .init_array and .fini_array section with SECTION_NOTYPE
32431         flag.
32432
32433 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
32434
32435         PR middle-end/80423
32436         * tree.h (build_array_type): Add typeless_storage default argument.
32437         * tree.c (type_cache_hasher::equal): Also compare
32438         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
32439         (build_array_type): Add typeless_storage argument, set
32440         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
32441         recursive call.
32442         (build_nonshared_array_type): Adjust build_array_type_1 caller.
32443         (build_array_type): Likewise.  Add typeless_storage argument.
32444
32445 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32446             Jakub Jelinek  <jakub@redhat.com>
32447
32448         PR tree-optimization/80426
32449         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
32450         operation on symbolic operands, also compute the overflow for the
32451         invariant part when the operation degenerates into a negation.
32452
32453 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
32454
32455         PR debug/80461
32456         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
32457         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
32458
32459         PR debug/80436
32460         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
32461
32462 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
32463
32464         PR target/80462
32465         * config/avr/avr.c (tree.h): Include it.
32466         (cgraph.h): Include it.
32467         (avr_encode_section_info): Don't warn for uninitialized progmem
32468         variable if it's just an alias.
32469
32470 2017-04-19  Richard Biener  <rguenther@suse.de>
32471
32472         PR ipa/65972
32473         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
32474         when needed by AutoPGO.
32475
32476 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
32477
32478         PR lto/50345
32479         * doc/lto.texi: Remove an extra 'that'.
32480
32481 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
32482
32483         PR rtl-optimization/80429
32484         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
32485         are only used in debug insns.
32486
32487 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32488             Vladimir Makarov  <vmakarov@redhat.com>
32489
32490         * config/sparc/predicates.md (input_operand): Add comment.  Return
32491         true for any memory operand when LRA is in progress.
32492         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
32493
32494 2017-04-18  Jeff Law  <law@redhat.com>
32495
32496         PR target/74563
32497         * mips.md ({return,simple_return}_internal): Do not overwrite
32498         operands[0].
32499
32500 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
32501
32502         PR tree-optimization/80443
32503         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
32504         instead of adding 1, subtract -1 and similarly instead of subtracting
32505         1 add -1.
32506
32507 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
32508
32509         PR rtl-optimization/80357
32510         * haifa-sched.c (tmp_bitmap): New variable.
32511         (model_recompute): Handle duplicate use records.
32512         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
32513         (free_global_sched_pressure_data): Free it.
32514
32515 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32516
32517         Revert:
32518         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32519         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
32520         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
32521         instead of SYSTEM_HEADER_DIR.
32522
32523 2017-04-18  Jeff Law  <law@redhat.com>
32524
32525         PR middle-end/80422
32526         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
32527         predecessors after walking up the insn chain.
32528
32529 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
32530
32531         PR debug/80263
32532         * dwarf2out.c (modified_type_die): Try harder not to emit internal
32533         sizetype type into debug info.
32534
32535 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
32536
32537         PR target/80099
32538         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
32539         unneeded test for TARGET_UPPER_REGS_SF.
32540         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
32541
32542 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
32543
32544         PR sanitizer/80444
32545         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
32546         instead of gsi_after_labels.
32547
32548 2017-04-18  Jeff Law  <law@redhat.com>
32549
32550         * regcprop.c (maybe_mode_change): Avoid creating copies of the
32551         stack pointer.
32552
32553         Revert:
32554         2017-04-13  Jeff Law  <law@redhat.com>
32555         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
32556         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
32557
32558 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
32559
32560         PR target/79453
32561         * config/avr/avr.c (intl.h): Include it.
32562         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
32563
32564 2017-04-18  Martin Liska  <mliska@suse.cz>
32565
32566         PR gcov-profile/78783
32567         * gcov-tool.c (gcov_output_files): Validate that destination
32568         file is either removed by the tool or by a user.
32569
32570 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
32571             Guy Benyei  <guybe@mellanox.com>
32572
32573         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
32574         block, and do not negate it, the stored id is already negative.
32575
32576 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
32577
32578         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
32579
32580 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32581
32582         PR target/80098
32583         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
32584         masks of options that should be turned off if the VSX vector
32585         options are turned off.
32586         (OTHER_P8_VECTOR_MASKS): Likewise.
32587         (OTHER_VSX_VECTOR_MASKS): Likewise.
32588         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
32589         rs6000_disable_incompatible_switches to validate no type switches
32590         like -mvsx.
32591         (rs6000_incompatible_switch): New function to disallow turning on
32592         other vector options if -mno-vsx, -mno-power8-vector, or
32593         -mno-power9-vector are specified.
32594
32595 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
32596
32597         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
32598
32599 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
32600
32601         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
32602         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
32603         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
32604         (ARG_POINTER_CFA_OFFSET): Likewise.
32605
32606 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
32607
32608         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
32609         conditions to take advantage of various optimizations.
32610
32611 2017-04-13  Jeff Law  <law@redhat.com>
32612
32613         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
32614         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
32615         (zero_extendsidi2_dext): Likewise.
32616
32617 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
32618
32619         PR sanitizer/80403
32620         * fold-const.c (fold_ternary_loc): Revert
32621         use op0 instead of fold_convert_loc (loc, type, arg0) part of
32622         2017-04-12 change.
32623
32624 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
32625
32626         PR rtl-optimization/80343
32627         * lra-remat.c (update_scratch_ops): Assign original hard reg to
32628         new scratch pseudo.
32629
32630 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
32631
32632         PR sanitizer/80414
32633         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
32634         to ubsan_encode_value.
32635
32636 2017-04-13  Jeff Law  <law@redhat.com>
32637
32638         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
32639         appearing in DEBUG_INSNs.
32640
32641 2017-04-13  Martin Liska  <mliska@suse.cz>
32642
32643         PR gcov-profile/80413
32644         * gcov-io.c (gcov_write_string): Copy to buffer just when
32645         allocated size is greater than zero.
32646
32647 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
32648
32649         PR debug/80321
32650         * dwarf2out.c (decls_for_scope): Ignore declarations of
32651         current_function_decl in BLOCK_NONLOCALIZED_VARS.
32652
32653 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
32654
32655         PR lto/69953
32656         * ipa-visibility.c (non_local_p): Fix typos.
32657         (localize_node): When localizing symbol in same comdat group,
32658         dissolve the group only when we know external symbols are going
32659         to be privatized.
32660         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
32661
32662 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
32663
32664         PR tree-optimization/79390
32665         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
32666         order does not result in usable sequence, retry with reversed operand
32667         order.
32668
32669         PR sanitizer/80403
32670         PR sanitizer/80404
32671         PR sanitizer/80405
32672         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
32673         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
32674         op0 instead of fold_convert_loc (loc, type, arg0).
32675
32676 2017-04-12  Jeff Law  <law@redhat.com>
32677
32678         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
32679         has a delay slot in the generated code.
32680
32681         * config/cris/cris.md (cris_preferred_reload_class): Return
32682         GENNONACR_REGS rather than GENERAL_REGS.
32683
32684 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
32685
32686         PR c/80163
32687         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
32688         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
32689         signedness of the result type.
32690
32691 2017-04-12  Richard Biener  <rguenther@suse.de>
32692             Jeff Law  <law@redhat.com>
32693
32694         PR tree-optimization/80359
32695         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
32696         trim stores to TARGET_MEM_REFs.
32697
32698 2017-04-12  Richard Biener  <rguenther@suse.de>
32699
32700         PR tree-optimization/79390
32701         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
32702         threading case even more.
32703
32704 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
32705
32706         PR target/80382
32707         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
32708         for quad_address_p for TImode, instead of just not indexed_address.
32709
32710 2017-04-12  Richard Biener  <rguenther@suse.de>
32711             Bernd Edlinger  <bernd.edlinger@hotmail.de>
32712
32713         PR middle-end/79671
32714         * alias.c (component_uses_parent_alias_set_from): Handle
32715         TYPE_TYPELESS_STORAGE.
32716         (get_alias_set): Likewise.
32717         * tree-core.h (tree_type_common): Add typeless_storage flag.
32718         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
32719         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
32720         for types containing members with TYPE_TYPELESS_STORAGE.
32721         (place_field): Likewise.
32722         (layout_type): Likewise for ARRAY_TYPE.
32723         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
32724         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
32725         TYPE_TYPELESS_STORAGE.
32726         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
32727
32728 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
32729
32730         PR sanitizer/80349
32731         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
32732         first argument to type.
32733
32734 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32735
32736         PR target/80376
32737         PR target/80315
32738         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
32739         CONST0_RTX (mode) rather than const0_rtx where appropriate.
32740         (rs6000_expand_binop_builtin): Likewise.
32741         (rs6000_expand_ternop_builtin): Likewise; also add missing
32742         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
32743         vshasigma built-ins.
32744         * doc/extend.texi: Document that vec_xxpermdi's third argument
32745         must be a constant.
32746
32747 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
32748
32749         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
32750         Use shift_const cost parameter when calculating gain of STV shifts.
32751
32752 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
32753
32754         PR rtl-optimization/70478
32755         * lra-constraints.c (process_alt_operands): Check memory for
32756         disfavoring memory insn operand.
32757
32758 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
32759
32760         PR middle-end/80100
32761         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
32762         left shift in unsigned HOST_WIDE_INT type.
32763
32764         PR rtl-optimization/80385
32765         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
32766         (not (neg X)) into (plus X -1) for complex or non-integral modes.
32767
32768         PR libgomp/80394
32769         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
32770         if they have any depend clauses.
32771
32772 2017-04-11  Martin Liska  <mliska@suse.cz>
32773
32774         PR ipa/80212
32775         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
32776         * ipa-split.c (split_function): Create a local comdat symbol
32777         if caller is in a comdat group.
32778
32779 2017-04-11  Martin Liska  <mliska@suse.cz>
32780
32781         PR ipa/80212
32782         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
32783         flags.
32784
32785 2017-04-11  Martin Sebor  <msebor@redhat.com>
32786
32787         PR middle-end/80364
32788         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
32789         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
32790         for INTEGER_TYPE.
32791         (directive::set_width, directive::set_precision, format_character):
32792         Adjust.
32793         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
32794         INTEGER_TYPE.
32795
32796 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
32797
32798         PR target/80389
32799         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
32800         conflict, set target->arch_name instead of target->cpu_name.
32801
32802 2017-04-11  Richard Biener  <rguenther@suse.de>
32803
32804         PR tree-optimization/80374
32805         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
32806         build_zero_cst, remove fold_convertible_p check again.
32807
32808 2017-04-11  Martin Liska  <mliska@suse.cz>
32809
32810         PR sanitizer/70878
32811         * ubsan.c (instrument_object_size): Do not instrument register
32812         variables.
32813
32814 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
32815
32816         PR target/80381
32817         * config/i386/i386-builtin-types.def
32818         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
32819         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
32820         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
32821         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
32822         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
32823         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
32824         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
32825         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
32826         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
32827         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
32828         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
32829         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
32830         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
32831         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
32832         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
32833         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
32834         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
32835         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
32836         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
32837         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
32838         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
32839         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
32840         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
32841         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
32842         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
32843         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
32844         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
32845         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
32846         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
32847         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
32848         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
32849         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
32850         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
32851         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
32852         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
32853         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
32854         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
32855         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
32856         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
32857         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
32858         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
32859         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
32860         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
32861         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
32862         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
32863         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
32864         aliases.
32865         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
32866         flag to second_arg_count, handle 4 argument function type _COUNT
32867         aliases, handle second_arg_count on second argument rather than last.
32868
32869 2017-04-10  Jeff Law  <law@redhat.com>
32870
32871         PR tree-optimization/80374
32872         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
32873         record anything if we can not convert integer_zero_node to the
32874         desired type.
32875
32876 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
32877
32878         PR target/80108
32879         * config/rs6000/rs6000.c (rs6000_option_override_internal):
32880         Enhance special handling given to the TARGET_P9_MINMAX option in
32881         relation to certain other options.
32882
32883 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
32884
32885         PR tree-optimization/80153
32886         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
32887         remove POINTER_PLUS_EXPR's base part directly, rather than through
32888         aff_tree.
32889
32890 2017-04-10  Richard Biener  <rguenther@suse.de>
32891             Bin Cheng  <bin.cheng@arm.com>
32892
32893         PR tree-optimization/80153
32894         * tree-affine.c (aff_combination_to_tree): Get base pointer from
32895         the first element of pointer type aff_tree.  Build result expr in
32896         aff_tree's type.
32897         (add_elt_to_tree): Convert to type unconditionally.  Remove other
32898         fold_convert calls.
32899         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
32900         (rewrite_use_nonlinear_expr): Check invariant using iv information.
32901
32902 2017-04-10  Richard Biener  <rguenther@suse.de>
32903
32904         * tree-ssa-structalias.c (find_func_aliases): Properly handle
32905         asm inputs.
32906
32907 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
32908
32909         PR rtl-optimization/70478
32910         * lra-constraints.c (curr_small_class_check): New.
32911         (update_and_check_small_class_inputs): New.
32912         (process_alt_operands): Update curr_small_class_check.  Disfavor
32913         alternative insn memory operands.  Check available regs for small
32914         class operands.
32915
32916 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
32917
32918         PR target/80057
32919         * config/mips/mips.opt (-mvirt): Update description.
32920         * doc/invoke.texi (-mvirt): Likewise.
32921
32922 2017-04-10  Richard Biener  <rguenther@suse.de>
32923
32924         PR middle-end/80362
32925         * fold-const.c (fold_binary_loc): Look at unstripped ops when
32926         looking for NEGATE_EXPR in -A / -B to A / B folding.
32927
32928 2017-04-10  Martin Liska  <mliska@suse.cz>
32929
32930         PR gcov-profile/80224
32931         * gcov.c (print_usage): Fix usage string.
32932         (get_gcov_intermediate_filename): Remove.
32933         (output_gcov_file): Use both for normal and intermediate format.
32934         (generate_results): Do not initialize special file for
32935         intermediate format.
32936
32937 2017-04-10  Richard Biener  <rguenther@suse.de>
32938
32939         PR tree-optimization/80304
32940         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
32941         for safelen.
32942
32943 2017-04-10  Nathan Sidwell  <nathan@acm.org>
32944
32945         PR target/79905
32946         * config/rs6000/rs6000.c (rs6000_vector_type): New.
32947         (rs6000_init_builtins): Use it.
32948
32949 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32950
32951         * config/arm/arm.md (<mrc>): Add mode to SET source.
32952         (<mrrc>): Likewise.
32953
32954 2017-04-10  Richard Biener  <rguenther@suse.de>
32955
32956         PR middle-end/80344
32957         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
32958
32959 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
32960
32961         PR target/80324
32962         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
32963         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
32964         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
32965         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
32966         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
32967         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
32968         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
32969         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
32970         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
32971         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
32972         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
32973         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
32974         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
32975         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
32976         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
32977         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
32978         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
32979         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
32980         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
32981         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
32982         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
32983         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
32984         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
32985
32986 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
32987
32988         PR rtl-optimization/70478
32989         * lra-constraints.c: Reverse the last patch.
32990
32991 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
32992
32993         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
32994         Add comment for WCHAR_T.
32995
32996 2017-04-08  Martin Liska  <mliska@suse.cz>
32997
32998         Revert:
32999         2017-04-07  Martin Liska  <mliska@suse.cz>
33000
33001         PR ipa/80212
33002         * ipa-split.c (split_function): Add function part to a same comdat
33003         group.
33004
33005 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
33006
33007         PR target/80358
33008         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
33009
33010 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
33011
33012         * rs6000/rs6000.c (vec_load_pendulum): Rename...
33013         (vec_pairing): ...to this.
33014         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
33015         (rs6000_sched_init): Adjust for name change.
33016         (struct rs6000_sched_context): Likewise.
33017         (rs6000_init_sched_context): Likewise.
33018         (rs6000_set_sched_context): Likewise.
33019
33020 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
33021
33022         PR target/80322
33023         PR target/80323
33024         PR target/80325
33025         PR target/80326
33026         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
33027         intrinsics.
33028         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
33029         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
33030         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
33031
33032 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
33033
33034         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
33035
33036 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33037
33038         PR rtl-optimization/70703
33039         * ira-color.c (update_conflict_hard_regno_costs): Use
33040         int64_t instead of HOST_WIDE_INT.
33041
33042 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
33043
33044         PR rtl-optimization/70478
33045         * lra-constraints.c (process_alt_operands): Disfavor alternative
33046         insn memory operands.
33047
33048 2017-04-07  Jeff Law  <law@redhat.com>
33049
33050         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
33051         CALL and NOTE_INSN_CALL_ARG_LOCATION.
33052
33053 2017-04-07  Martin Liska  <mliska@suse.cz>
33054
33055         PR target/79889
33056         * config/aarch64/aarch64.c (aarch64_process_target_attr):
33057         Show error message instead of an ICE.
33058
33059 2017-04-07  Martin Liska  <mliska@suse.cz>
33060
33061         PR ipa/80212
33062         * ipa-split.c (split_function): Add function part to a same comdat
33063         group.
33064
33065 2017-04-07  Richard Biener  <rguenther@suse.de>
33066
33067         PR middle-end/80341
33068         * tree.c (get_unwidened): Also handle ! for_type case for
33069         INTEGER_CSTs.
33070         * convert.c (do_narrow): Split out from ...
33071         (convert_to_integer_1): ... here.  Do not pass final truncation
33072         type to get_unwidened for TRUNC_DIV_EXPR.
33073
33074 2017-04-07  Richard Biener  <rguenther@suse.de>
33075
33076         * tree-affine.c (wide_int_ext_for_comb): Take type rather
33077         than aff_tree.
33078         (aff_combination_const): Adjust.
33079         (aff_combination_scale): Likewise.
33080         (aff_combination_add_elt): Likewise.
33081         (aff_combination_add_cst): Likewise.
33082         (aff_combination_convert): Likewise.
33083         (add_elt_to_tree): Likewise.  Remove unused argument.
33084         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
33085
33086 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33087
33088         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
33089         definition.
33090         * config/arm/arm.c (arm_default_short_enums): Use
33091         ARM_DEFAULT_SHORT_ENUMS.
33092         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
33093
33094 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
33095
33096         PR debug/80234
33097         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
33098         members with redundant out-of-class redeclaration.
33099
33100 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
33101
33102         PR target/80286
33103         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
33104         * config/i386/i386.md (*zero_extendsidi2):
33105         Add (?*x,*x) and (?*v,*v) alternatives.
33106
33107 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
33108
33109         PR target/79733
33110         * config/i386/i386.c (ix86_expand_builtin)
33111         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
33112         mode from insn data. Convert operands to insn operand mode.
33113         Copy operands that don't satisfy insn predicate to a register.
33114
33115 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
33116
33117         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
33118         Update comments.
33119
33120 2017-04-06  Richard Biener  <rguenther@suse.de>
33121
33122         PR tree-optimization/80334
33123         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
33124         preserve alignment of accesses.
33125
33126 2017-04-06  Richard Biener  <rguenther@suse.de>
33127
33128         PR tree-optimization/80262
33129         * tree-sra.c (build_ref_for_offset): Preserve address-space
33130         information.
33131         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
33132         Drop useless address-space information on MEM_REF offsets.
33133
33134 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
33135
33136         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
33137
33138 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
33139
33140         PR rtl-optimization/70703
33141         * ira-color.c (update_conflict_hard_regno_costs): Use
33142         HOST_WIDE_INT instead of long.
33143
33144 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
33145
33146         PR target/80298
33147         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
33148         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
33149         is not defined.
33150         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
33151         for x86_64 target.  Handle -m3dnowa option.
33152
33153 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
33154
33155         PR rtl-optimization/70703
33156         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
33157         (update_conflict_hard_regno_costs): Use long instead of unsigned
33158         arithmetic for cost calculation.
33159
33160 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
33161             Bernd Edlinger  <bernd.edlinger@hotmail.de>
33162
33163         PR sanitizer/80308
33164         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
33165         for big endian.
33166
33167 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
33168
33169         PR target/78002
33170         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
33171         ptr_mode with Pmode throughout.
33172         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
33173         into probe_stack_range and use DImode.
33174
33175 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33176
33177         PR target/79890
33178         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
33179         call_eh_return is true.
33180
33181 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33182
33183         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
33184         Initialize last_match_fntype_index.
33185
33186 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
33187
33188         PR target/80310
33189         * tree-nvr.c: Include internal-fn.h.
33190         (pass_return_slot::execute): Ignore internal calls without
33191         direct optab.
33192
33193 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
33194             Richard Biener  <rguenther@suse.de>
33195
33196         PR c++/80297
33197         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
33198         captures used multiple times, except for the last use.
33199         * generic-match-head.c: Include gimplify.h.
33200
33201 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
33202
33203         PR tree-optimization/79390
33204         * target.h (struct noce_if_info): Declare.
33205         * targhooks.h (default_noce_conversion_profitable_p): Declare.
33206         * target.def (noce_conversion_profitable_p): New target hook.
33207         * ifcvt.h (struct noce_if_info): New type, moved from ...
33208         * ifcvt.c (struct noce_if_info): ... here.
33209         (noce_conversion_profitable_p): Renamed to ...
33210         (default_noce_conversion_profitable_p): ... this.  No longer
33211         static nor inline.
33212         (noce_try_store_flag_constants, noce_try_addcc,
33213         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
33214         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
33215         instead of noce_conversion_profitable_p.
33216         * config/i386/i386.c: Include ifcvt.h.
33217         (ix86_option_override_internal): Don't override
33218         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
33219         (ix86_noce_conversion_profitable_p): New function.
33220         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
33221         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
33222         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
33223         * doc/tm.texi: Regenerated.
33224
33225 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33226
33227         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
33228         correction.
33229
33230 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33231
33232         PR target/80307
33233         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
33234         instructions for small multiply cores.
33235
33236 2017-04-04  Jeff Law  <law@redhat.com>
33237
33238         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
33239         added member.
33240         (mips_expand_vec_perm_const): Initialize elements in orig_perm
33241         that are not set by the loop over the elements.
33242
33243 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
33244
33245         PR target/80286
33246         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
33247         int mode, convert_modes it to mode as unsigned, otherwise use
33248         lowpart_subreg to mode rather than SImode.
33249         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
33250         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
33251         Use DImode instead of SImode for the shift count operand.
33252         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
33253         Likewise.
33254
33255 2017-04-04  Richard Biener  <rguenther@suse.de>
33256
33257         PR middle-end/80281
33258         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
33259         arithmetic done for the negate or the plus.  Simplify.
33260         (A - (-B) -> A + B): Likewise.
33261         * fold-const.c (split_tree): Make sure to not negate pointers.
33262
33263 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
33264
33265         PR rtl-optimization/60818
33266         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
33267         a compare of comparisons with the thing compared if this results
33268         in a different machine mode.
33269
33270 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
33271
33272         * alias.c (base_alias_check): Fix typo in comment.
33273         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
33274         * cgraphunit.c (symbol_table::compile): Likewise.
33275         * collect2.c (maybe_run_lto_and_relink): Likewise.
33276         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
33277         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
33278         * config/avr/avr.c (avr_map_op_t): Likewise.
33279         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
33280         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
33281         * config/epiphany/epiphany.md (movcc): Likewise.
33282         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
33283         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
33284         Likewise.
33285         * config/mips/mips.c (mips_save_restore_reg): Likewise.
33286         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
33287         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
33288         * config/sh/sh.c (sh_rtx_costs): Likewise.
33289         * fold-const.c (fold_truth_andor): Likewise.
33290         * genautomata.c (collapse_flag): Likewise.
33291         * gengtype.h (struct type::u::s): Likewise.
33292         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
33293         * input.c (FORMAT_AMOUNT): Likewise.
33294         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
33295         (known_aggs_to_agg_replacement_list): Likewise.
33296         * ipa-inline-analysis.c: Likewise.
33297         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
33298         * ipa-polymorphic-call.c
33299         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
33300         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
33301         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
33302         Likewise.
33303         * modulo-sched.c (apply_reg_moves): Likewise.
33304         * omp-expand.c (build_omp_regions_1): Likewise.
33305         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
33306         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
33307         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
33308         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
33309         * value-prof.c: Likewise.
33310         * var-tracking.c (val_reset): Likewise.
33311
33312 2017-04-03  Richard Biener  <rguenther@suse.de>
33313
33314         PR tree-optimization/80275
33315         * fold-const.c (split_address_to_core_and_offset): Handle
33316         POINTER_PLUS_EXPR.
33317
33318 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
33319
33320         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
33321         descriptors is at least equal to that of functions.
33322
33323 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
33324
33325         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
33326
33327 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
33328
33329         PR target/80250
33330         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
33331         (mov<IMOD4:mode>): New expander.
33332         (*mov<IMOD4:mode>_internal): New insn and split pattern.
33333
33334 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
33335
33336         PR rtl-optimization/79405
33337         * fwprop.c (propagations_left): New variable.
33338         (forward_propagate_into): Decrement it.
33339         (fwprop_init): Initialize it.
33340         (fw_prop): If the variable has reached zero, stop propagating.
33341         (fwprop_addr): Ditto.
33342
33343 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
33344
33345         PR debug/79255
33346         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
33347         a FUNCTION_DECL, pass it as decl instead of origin to
33348         process_scope_var.
33349
33350 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
33351
33352         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
33353         string.
33354
33355 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
33356
33357         PR target/80107
33358         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
33359         TARGET_VSX_SMALL_INTEGER.
33360
33361 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33362
33363         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
33364         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
33365
33366 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
33367
33368         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
33369         extraction from odd-numbered MSA register.
33370
33371 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
33372
33373         PR middle-end/80173
33374         * expmed.c (store_bit_field_1): Don't attempt to create
33375         a word subreg out of hard registers wider than word if they
33376         have HARD_REGNO_NREGS of 1 for their mode.
33377
33378         PR middle-end/80163
33379         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
33380         conversions to integer types wider than word and pointer.
33381
33382         PR debug/80025
33383         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
33384         (rtx_equal_for_cselib_p): Pass 0 to it.
33385         * cselib.c (cselib_hasher::equal): Likewise.
33386         (rtx_equal_for_cselib_1): Add depth argument.  If depth
33387         is 128, don't look up VALUE locs and punt.  Increment
33388         depth in recursive calls when walking VALUE locs.
33389
33390 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33391
33392         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
33393         (make_gcov_file_name): Use the canonical path name for generating
33394         the MD5 value.
33395         (read_line): Fix handling of files with ascii null bytes.
33396
33397 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
33398
33399         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
33400         to initialise a vector register instead
33401         of using a const_int.
33402
33403 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
33404
33405         PR translation/80189
33406         * gimplify.c (omp_default_clause): Use %qs instead of %s in
33407         diagnostic messages.
33408
33409 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
33410
33411         PR target/80246
33412         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
33413         (dfp_diex_<mode>): Update mode of operand 1.
33414         * doc/extend.texi (dxex, dxexq): Document change to return type.
33415         (diex, diexq): Document change to argument type.
33416
33417 2017-03-30  Martin Jambor  <mjambor@suse.cz>
33418
33419         PR ipa/77333
33420         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
33421         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
33422         it reflects the signature changes performed at the callee side.
33423         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
33424         to cgraph_build_function_type_skip_args.
33425         (build_function_decl_skip_args): Adjust call to the above function.
33426
33427 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
33428
33429         PR target/80206
33430         * config/i386/sse.md
33431         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
33432         register as dest whenever it is a MEM not rtx_equal_p to the
33433         corresponding dup operand, and when forcing into reg move the
33434         reg into the memory afterwards.
33435         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
33436         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
33437         for the force_reg mode.
33438         (avx512vl_vextractf128<mode>): Use register as dest either
33439         always when a MEM, or when it is a MEM not rtx_equal_p to the
33440         corresponding dup operand, or even not when it is a CONST_VECTOR
33441         depending on the mode and lo vs. hi.
33442         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
33443         parens.
33444         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
33445         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
33446         Likewise.  Require that operands[2] is even.
33447         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
33448         Remove extraneous parens.  Require that operands[2] is a multiple
33449         of 4.
33450         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
33451         operands[0] is a MEM if <mask_applied>, the predicates/constraints
33452         disallow memory then.
33453
33454 2017-03-30  Richard Biener  <rguenther@suse.de>
33455
33456         PR tree-optimization/77498
33457         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
33458         to non-constants over backedges.
33459
33460 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
33461
33462         PR rtl-optimization/80233
33463         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
33464         as last_combined_insn.  Do not test for BARRIER_P separately.
33465
33466 2017-03-29  Andreas Schwab  <schwab@suse.de>
33467
33468         PR ada/80146
33469         * calls.c (prepare_call_address): Convert funexp to Pmode before
33470         copying to temp reg.
33471
33472 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33473
33474         PR tree-optimization/80158
33475         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
33476         Handle possible future case of more than one alternate
33477         interpretation.
33478         (replace_rhs_if_not_dup): Likewise.
33479         (replace_one_candidate): Likewise.
33480
33481 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
33482
33483         PR rtl-optimization/80193
33484         * ira.c (ira): Do not check allocation for LRA.
33485
33486 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
33487
33488         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
33489         (nvptx_output_simt_exit): Declare.
33490         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
33491         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
33492         (init_softstack_frame): Move initialization of crtl->is_leaf to...
33493         (nvptx_declare_function_name): ...here.  Emit declaration of local
33494         memory space buffer for omp_simt_enter insn.
33495         (nvptx_output_unisimt_switch): New.
33496         (nvptx_output_softstack_switch): New.
33497         (nvptx_output_simt_enter): New.
33498         (nvptx_output_simt_exit): New.
33499         * config/nvptx/nvptx.h (struct machine_function): New fields
33500         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
33501         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
33502         (UNSPECV_SIMT_EXIT): Ditto.
33503         (omp_simt_enter_insn): New insn.
33504         (omp_simt_enter): New expansion.
33505         (omp_simt_exit): New insn.
33506         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
33507
33508         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
33509         (expand_GOMP_SIMT_ENTER_ALLOC): New.
33510         (expand_GOMP_SIMT_EXIT): New.
33511         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
33512         (GOMP_SIMT_ENTER_ALLOC): Ditto.
33513         (GOMP_SIMT_EXIT): Ditto.
33514         * target-insns.def (omp_simt_enter): New insn.
33515         (omp_simt_exit): Ditto.
33516         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
33517         simt_dlist.
33518         (lower_rec_simd_input_clauses): Implement SIMT privatization.
33519         (lower_rec_input_clauses): Likewise.
33520         (lower_lastprivate_clauses): Handle SIMT privatization.
33521
33522         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
33523         (ompdevlow_adjust_simt_enter): New.
33524         (find_simtpriv_var_op): New.
33525         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
33526         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
33527
33528         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
33529         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
33530         (copy_decl_for_dup_finish): Ditto.
33531
33532         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
33533
33534 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
33535
33536         PR target/53383
33537         * config/i386/i386.c (ix86_option_override_internal): Always
33538         allow -mpreferred-stack-boundary=3 for 64-bit targets.
33539
33540 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
33541
33542         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
33543
33544 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
33545
33546         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
33547         mark new edge's irreducible flag accordign to it.
33548         (vect_do_peeling): Check loop preheader edge's irreducible flag
33549         and pass it to function slpeel_add_loop_guard.
33550
33551 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
33552
33553         PR tree-optimization/80218
33554         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
33555         Update block frequencies and counts.
33556
33557 2017-03-28  Richard Biener  <rguenther@suse.de>
33558
33559         PR tree-optimization/78644
33560         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
33561         of a simplification result we may not use it at all.
33562
33563 2017-03-28  Richard Biener  <rguenther@suse.de>
33564
33565         PR ipa/80205
33566         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
33567         without arguments, generate default definition of a SSA name.
33568
33569 2017-03-28  Richard Biener  <rguenther@suse.de>
33570
33571         PR middle-end/80222
33572         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
33573         TYPE_REF_CAN_ALIAS_ALL references.
33574         * fold-const.c (fold_indirect_ref_1): Likewise.
33575
33576 2017-03-28  Martin Liska  <mliska@suse.cz>
33577
33578         PR ipa/80104
33579         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
33580         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
33581
33582 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
33583             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
33584
33585         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
33586         (EXTRA_SPECS): Define.
33587         (SUBTARGET_EXTRA_SPECS): Likewise.
33588         (SUBTARGET_CPP_SPEC): Likewise.
33589         * config/arc/elf.h (EXTRA_SPECS): Renamed to
33590         SUBTARGET_EXTRA_SPECS.
33591         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
33592
33593 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
33594
33595         * config/arc/simdext.md (vst64_insn): Update pattern.
33596         (vld32wh_insn): Likewise.
33597         (vld32wl_insn): Likewise.
33598         (vld64_insn): Likewise.
33599         (vld32_insn): Likewise.
33600
33601 2017-03-28  Marek Polacek  <polacek@redhat.com>
33602
33603         PR sanitizer/80067
33604         * fold-const.c (fold_comparison): Use protected_set_expr_location
33605         instead of SET_EXPR_LOCATION.
33606
33607 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
33608
33609         * tree.c (add_expr): Avoid name lookup warning.
33610
33611 2017-03-27  Jeff Law  <law@redhat.com>
33612
33613         PR tree-optimization/80216
33614         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
33615         function name.  Limit recursion depth.
33616         (record_temporary_equivalences): Corresponding changes.
33617
33618 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
33619
33620         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
33621         covered first.
33622
33623 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
33624
33625         PR target/80102
33626         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
33627         notes.
33628         * cfgcleanup.c (reg_note_cfa_p): New array.
33629         (insns_have_identical_cfa_notes): New function.
33630         (old_insns_match_p): Don't cross-jump in between /f
33631         and non-/f instructions.  If both i1 and i2 are frame related,
33632         verify all CFA notes, their order and content.
33633
33634 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
33635
33636         PR target/78543
33637         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
33638         HImode and SImode with zero extend to DImode to one insn.
33639         (bswap<mode>2_extenddi): Likewise.
33640         (bswapsi2_extenddi): Likewise.
33641         (bswaphi2_extendsi): Likewise.
33642         (bswaphi2): Combine bswap HImode and SImode into one insn.
33643         Separate memory insns from swapping register.
33644         (bswapsi2): Likewise.
33645         (bswap<mode>2): Likewise.
33646         (bswaphi2_internal): Delete, no longer used.
33647         (bswapsi2_internal): Likewise.
33648         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
33649         store, and gpr<-gpr swap insns.
33650         (bswap<mode>2_store): Likewise.
33651         (bswaphi2_reg): Register only splitter, combine with the splitter.
33652         (bswaphi2 splitter): Likewise.
33653         (bswapsi2_reg): Likewise.
33654         (bswapsi2 splitter): Likewise.
33655         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
33656         the insns into load, store, and register/register insns.
33657         (bswapdi2_ldbrx): Likewise.
33658         (bswapdi2_load): Likewise.
33659         (bswapdi2_store): Likewise.
33660         (bswapdi2_reg): Likewise.
33661
33662 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
33663
33664         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
33665         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
33666
33667 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
33668
33669         PR target/80103
33670         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
33671         add comments.
33672         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
33673         special handling for target option conflicts between dform
33674         options (-mpower9-dform, -mpower9-dform-vector,
33675         -mpower9-dform-scalar) and -mno-direct-move.
33676
33677 2017-03-27  Richard Biener  <rguenther@suse.de>
33678
33679         PR tree-optimization/80181
33680         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
33681
33682 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
33683
33684         * config/arc/predicates.md (move_double_src_operand): Replace the
33685         call to move_double_src_operand with a call to address_operand.
33686
33687 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
33688
33689         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
33690         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
33691         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
33692
33693 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
33694
33695         * config/arc/predicates.md (long_immediate_loadstore_operand):
33696         Consider scaled addresses cases.
33697
33698 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
33699
33700         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
33701         restored when in interrupt.
33702         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
33703         doesn't have delay slot.
33704
33705 2017-03-27  Richard Biener  <rguenther@suse.de>
33706
33707         PR ipa/79776
33708         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
33709         inlined thunk clones.
33710
33711 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
33712
33713         PR sanitizer/80168
33714         * asan.c (instrument_derefs): Copy over last operand from
33715         original COMPONENT_REF to the new COMPONENT_REF with
33716         DECL_BIT_FIELD_REPRESENTATIVE.
33717         * ubsan.c (instrument_object_size): Likewise.
33718
33719 2017-03-27  Richard Biener  <rguenther@suse.de>
33720
33721         PR tree-optimization/80170
33722         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
33723         sure DR/SCEV didnt fold in constants we do not see when looking
33724         at the reference base alignment.
33725
33726 2017-03-27  Richard Biener  <rguenther@suse.de>
33727
33728         PR middle-end/80171
33729         * gimple-fold.c (fold_ctor_reference): Properly guard against
33730         NULL return value from canonicalize_constructor_val.
33731
33732 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
33733
33734         PR target/80180
33735         * config/i386/i386.c (ix86_expand_builtin)
33736         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
33737         flags reg setting and flags reg using instructions.
33738         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
33739         clobbering instructions to zero extend op2.
33740
33741 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
33742
33743         * doc/install.texi (Configuration) <--with-aix-soname>:
33744         Update link to AIX ld.
33745
33746 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
33747
33748         PR rtl-optimization/80160
33749         PR rtl-optimization/80159
33750         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
33751         reg_alternate_class into account.
33752
33753 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
33754
33755         PR target/80148
33756         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
33757         to consider in curr_insn_transform.
33758
33759 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
33760
33761         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
33762         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
33763         and emit_mode_inner.
33764
33765 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33766
33767         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
33768         argument to the overloaded builtin variants.  Use the new flag to
33769         deprecate certain builtin variants.
33770         * config/s390/s390-builtin-types.def: Add new builtin types.
33771         * config/s390/s390-builtins.h: Support new flags field for
33772         overloaded builtins.
33773         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
33774         (s390_macro_to_expand): Enable vector float data type.
33775         (s390_cpu_cpp_builtins_internal): Indicate support of the new
33776         builtins by incrementing the __VEC__ version number.
33777         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
33778         vec_xst.
33779         (s390_resolve_overloaded_builtin): Emit error messages depending
33780         on the builtin flags.
33781         * config/s390/s390.c (s390_expand_builtin): Support additional
33782         flags argument.  Change error message to match the messages
33783         emitted in s390-c.c.
33784         * config/s390/s390.md: New UNSPEC_* constants.
33785         (op_type): Add new instruction types.
33786         * config/s390/vecintrin.h: Add new builtins and test data class
33787         constants.
33788         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
33789         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
33790         (VEC_INEXACT, VEC_NOINEXACT): New constants.
33791         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
33792         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
33793         ("vec_mergel<mode>"): V_HW -> VEC_HW.
33794
33795         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
33796         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
33797         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
33798         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
33799
33800         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
33801         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
33802         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
33803         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
33804
33805         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
33806         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
33807         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
33808         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
33809         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
33810         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
33811         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
33812
33813         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
33814         ("vec_scatter_element<V_HW_4:mode>_DI")
33815         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
33816         ("vec_fpint<mode>", "vflls")
33817         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
33818         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
33819         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
33820         ("*vec_cmphe<mode>_cc"): ... these.
33821
33822         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
33823         mode constant instead of magic value.
33824
33825 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33826
33827         * config/s390/s390.c (s390_expand_vec_compare): Support other
33828         vector floating point modes than just V2DF.
33829         (s390_expand_vcond): Likewise.
33830         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
33831         (s390_cannot_change_mode_class): Prevent mode changes between TF
33832         and V1TF in vector registers.
33833         * config/s390/s390.md (DF, SF): New mode attributes.
33834         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
33835         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
33836         SFmode support for VRs.
33837         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
33838         vector fp modes.
33839         (VFT, VF_HW): New mode iterators.
33840         (vw, sdx): New mode attributes.
33841         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
33842         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
33843         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
33844         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
33845         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
33846         also the new vector floating point modes.  Renaming to ...
33847
33848         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
33849         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
33850         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
33851         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
33852         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
33853         ("vec_unordered<mode>"): ... these.
33854
33855         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
33856         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
33857         ("*vec_extendv2df"): New insn definitions.
33858
33859 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33860
33861         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
33862         ("mulditi3_2", "*muldi3_sign"): New patterns.
33863         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
33864         rename the pattern definition.
33865
33866 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33867
33868         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
33869         expander.
33870         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
33871
33872 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33873
33874         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
33875         instruction if possible.
33876         * config/s390/vector.md (vec_halfnumelts): New mode
33877         attribute.
33878         ("*vec_vllezlf<mode>"): New pattern.
33879
33880 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33881
33882         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
33883         ("popcountv4si2", "popcountv2di2"): Rename to ...
33884         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
33885         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
33886         condition.
33887         ("popcount<mode>2_vxe"): New pattern.
33888
33889 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33890
33891         * common/config/s390/s390-common.c (processor_flags_table): Add
33892         arch12.
33893         * config.gcc: Add arch12.
33894         * config/s390/driver-native.c (s390_host_detect_local_cpu):
33895         Default to arch12 for unknown CPU model numbers.
33896         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
33897         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
33898         PROCESSOR_max sanity check.
33899         * config/s390/s390-opts.h (enum processor_type): Add
33900         PROCESSOR_ARCH12.
33901         * config/s390/s390.c (processor_table): Add arch12.
33902         (s390_expand_builtin): Add check for B_VXE flag.
33903         (s390_issue_rate): Add PROCESSOR_ARCH12.
33904         (s390_get_sched_attrmask): Likewise.
33905         (s390_get_unit_mask): Likewise.
33906         (s390_sched_score): Enable z13 scheduling for arch12.
33907         (s390_sched_reorder): Likewise.
33908         (s390_sched_variable_issue): Likewise.
33909         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
33910         PF_VXE.
33911         (s390_tune_attr): Use z13 scheduling also for arch12.
33912         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
33913         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
33914         (TARGET_VXE_P): New macros.
33915         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
33916         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
33917         * config/s390/s390.opt: Add arch12 as processor_type.
33918
33919 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33920
33921         * config/s390/s390.md
33922         ("fixuns_truncdddi2", "fixuns_trunctddi2")
33923         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
33924         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
33925
33926         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
33927         Rename expanders to ...
33928
33929         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
33930         ("fixuns_truncdddi2_emu"): ... these.
33931
33932         ("fixuns_trunc<mode>si2_emu"): New expander.
33933
33934         ("*fixuns_truncdfdi2_z13"): Rename to ...
33935         ("*fixuns_truncdfdi2_vx"): ... this.
33936
33937 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33938
33939         * config/s390/2964.md: Remove the single element vector compare
33940         instructions which are no longer used.
33941         * config/s390/s390.c (s390_select_ccmode): Remove handling of
33942         vector CCmodes.
33943         (s390_canonicalize_comparison): Remove handling of DFmode
33944         compares.
33945         (s390_expand_vec_compare_scalar): Remove function.
33946         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
33947         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
33948         pattern.
33949         ("*cmp<mode>_ccs"): Add wfcdb instruction.
33950
33951 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33952
33953         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
33954         FP zero.
33955         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
33956         will anyway by matched by mov<mode>_64dfp.
33957
33958 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33959
33960         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
33961         vlef/vstef.  Add missing operand to vleif.
33962
33963 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33964
33965         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
33966         pair for all vector types with 64 bit elements.
33967         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
33968         * config/s390/vector.md (V_HW_64): ... here.
33969         (V_128_NOSINGLE): New mode iterator.
33970         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
33971         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
33972         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
33973         ("*vec_load_pairv2di"): Change to ...
33974         ("*vec_load_pair<mode>"): ... this one.
33975
33976 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33977
33978         * config/s390/constraints.md: Add comments.
33979         (jKK): Reject element sizes > 8 bytes.
33980         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
33981         s_operands.
33982         * config/s390/s390.md: Add the s_operand checks formerly in
33983         s390_split_ok_p to various splitters where they are still
33984         required.
33985         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
33986         for 128 bit vectors.  Plus two splitters.
33987
33988 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33989
33990         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
33991         the file.
33992
33993 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33994
33995         PR target/79893
33996         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
33997         error if the boundary argument is not constant.
33998
33999 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
34000
34001         PR rtl-optimization/80112
34002         * loop-doloop.c (doloop_condition_get): Don't check condition
34003         if cmp isn't SET with IF_THEN_ELSE src.
34004
34005 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34006
34007         PR tree-optimization/80158
34008         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
34009         replacing a candidate statement, also replace it for the
34010         candidate's alternate interpretation.
34011         (replace_rhs_if_not_dup): Likewise.
34012         (replace_one_candidate): Likewise.
34013
34014 2017-03-24  Richard Biener  <rguenther@suse.de>
34015
34016         PR tree-optimization/80167
34017         * graphite-isl-ast-to-gimple.c
34018         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
34019         properly.
34020         (translate_isl_ast_to_gimple::get_rename): Likewise.
34021
34022 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34023
34024         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
34025         handling of certain combinations of target options, including the
34026         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
34027         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
34028
34029 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34030
34031         PR target/71436
34032         * config/arm/arm.md (*load_multiple): Add reload_completed to
34033         matching condition.
34034
34035 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34036             Richard Biener  <rguenth@suse.de>
34037
34038         PR tree-optimization/79908
34039         PR tree-optimization/80136
34040         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
34041         been cast away, gimplify_and_add suffices.
34042
34043 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
34044
34045         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
34046
34047 2017-03-23  Richard Biener  <rguenther@suse.de>
34048
34049         PR tree-optimization/80032
34050         * gimplify.c (gimple_push_cleanup): Forced unconditional
34051         cleanups still have to go to the conditional_cleanups
34052         sequence.
34053
34054 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
34055
34056         PR tree-optimization/80072
34057         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
34058         to unsigned int.
34059         (next_operand_entry_id): Change type to unsigned int.
34060         (sort_by_operand_rank): Make sure to return the right return value
34061         even if unsigned fields are bigger than INT_MAX.
34062         (struct oecount): Change cnt and id type to unsigned int.
34063         (oecount_hasher::equal): Formatting fix.
34064         (oecount_cmp): Make sure to return the right return value
34065         even if unsigned fields are bigger than INT_MAX.
34066         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
34067
34068         PR c++/80129
34069         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
34070         TREE_READONLY on result if writing it more than once.
34071
34072         PR sanitizer/80110
34073         * doc/invoke.texi (-fsanitize=thread): Document that with
34074         -fnon-call-exceptions atomics are not able to throw
34075         exceptions.
34076
34077         PR sanitizer/80110
34078         * tsan.c: Include tree-eh.h.
34079         (instrument_builtin_call): Call maybe_clean_eh_stmt or
34080         maybe_clean_or_replace_eh_stmt where needed.
34081         (instrument_memory_accesses): Add cfg_changed argument.
34082         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
34083         if it returned true.
34084         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
34085
34086         PR rtl-optimization/63191
34087         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
34088         wrapper function, moved the whole old content into ...
34089         (ix86_delegitimize_address_1): ... this.  New inline function.
34090         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
34091         true as last argument instead of ix86_delegitimize_address.
34092
34093 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
34094
34095         * config/aarch64/aarch64.c (generic_branch_cost): Copy
34096         cortexa57_branch_cost.
34097
34098 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
34099
34100         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
34101
34102 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34103
34104         PR target/80123
34105         * doc/md.texi (Constraints): Document wA constraint.
34106         * config/rs6000/constraints.md (wA): New.
34107         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
34108         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
34109         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
34110         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
34111
34112 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
34113
34114         PR c++/80029
34115         * gimplify.c (is_oacc_declared): New function.
34116         (oacc_default_clause): Use it to set default flags for acc declared
34117         variables inside parallel regions.
34118         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
34119         declared variables.
34120         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
34121         declare attribute to any decl as necessary.
34122
34123 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34124
34125         PR target/80082
34126         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
34127         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
34128         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
34129         (arm_arch_lpae): This.
34130         * config/arm/arm.c (arm_arch7ve): Rename into ...
34131         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
34132         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
34133         arm_arch_lpae.
34134
34135 2017-03-22  Martin Liska  <mliska@suse.cz>
34136
34137         PR target/79906
34138         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
34139         error message instead of an ICE.
34140
34141 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34142
34143         * doc/extend.texi (6.11 Additional Floating Types): Revise.
34144
34145 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34146
34147         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
34148         comments.
34149         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34150         comments.
34151
34152 2017-03-21  Martin Sebor  <msebor@redhat.com>
34153
34154         * doc/extend.texi: Use "cannot" instead of "can't."
34155         * doc/hostconfig.texi: Same.
34156         * doc/install.texi: Same.
34157         * doc/invoke.texi: Same.
34158         * doc/loop.texi: Same.
34159         * doc/md.texi: Same.
34160         * doc/objc.texi: Same.
34161         * doc/rtl.texi: Same.
34162         * doc/tm.texi: Same.
34163         * doc/tm.texi.in: Same.
34164         * doc/trouble.texi: Same.
34165
34166 2017-03-21  Alexandre Oliva  <aoliva@redhat.com>
34167
34168         PR debug/63238
34169         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
34170         (collect_checksum_attributes): Set it.
34171         (die_checksum_ordered): Use it.
34172
34173 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34174
34175         PR tree-optimization/79908
34176         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
34177         change: For a VA_ARG whose LHS has been cast away, use
34178         force_gimple_operand to construct the side effects.
34179
34180 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
34181
34182         PR translation/80001
34183         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
34184         more amenable to translation.
34185         (oacc_loop_auto_partitions): Likewise.
34186
34187 2017-03-21  Marek Polacek  <polacek@redhat.com>
34188             Martin Sebor  <msebor@redhat.com>
34189
34190         PR tree-optimization/80109
34191         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
34192         on INTEGRAL_TYPE_P.
34193
34194 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
34195             Segher Boessenkool  <segher@kernel.crashing.org>
34196
34197         PR target/80125
34198         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
34199         check reg_used_between_p between insn and one of succ or succ2
34200         depending on if succ is artificial insn not inserted into insn
34201         stream.
34202
34203 2017-03-21  Martin Liska  <mliska@suse.cz>
34204
34205         PR gcov-profile/80081
34206         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
34207         * doc/gcc.texi: Include gcov-dump stuff.
34208         * doc/gcov-dump.texi: New file.
34209
34210 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
34211
34212         PR rtl-optimization/79150
34213         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
34214         conditional jump, if the jump is the last insn of the loop.
34215
34216 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34217             Richard Biener  <rguenth@suse.de>
34218
34219         PR tree-optimization/79908
34220         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
34221         been cast away, use force_gimple_operand to construct the side
34222         effects.
34223
34224 2017-03-21  Martin Liska  <mliska@suse.cz>
34225
34226         PR libfortran/79956
34227         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
34228         to NULL.
34229
34230 2017-03-21  Brad Spengler <spender@grsecurity.net>
34231
34232         PR plugins/80094
34233         * plugin.c (htab_hash_plugin): New function.
34234         (add_new_plugin): Use it and adjust.
34235         (parse_plugin_arg_opt): Adjust.
34236         (init_one_plugin): Likewise.
34237
34238 2017-03-21  Richard Biener  <rguenther@suse.de>
34239
34240         PR tree-optimization/80032
34241         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
34242         if set force the cleanup to happen unconditionally.
34243         (gimplify_target_expr): Push inserted clobbers with force_uncond
34244         to avoid them being removed by control-dependent DCE.
34245
34246 2017-03-21  Richard Biener  <rguenther@suse.de>
34247
34248         PR tree-optimization/80122
34249         * tree-inline.c (copy_bb): Do not expans va-arg packs or
34250         va_arg_pack_len when the inlined call stmt requires pack
34251         expansion itself.
34252         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
34253
34254 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
34255
34256         PR sanitizer/78158
34257         * tsan.c (instrument_builtin_call): If the memory model argument
34258         is not a constant, assume it is valid.
34259
34260         PR c/67338
34261         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
34262         avoid UB.
34263
34264 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
34265
34266         PR rtl-optimization/79910
34267         * combine.c (can_combine_p): Do not allow combining an I0 or I1
34268         if its dest is used by an insn before I2 (other than the combined
34269         insns themselves, which are properly handled already).
34270
34271 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
34272
34273         Revert:
34274         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
34275
34276         * combine.c (record_used_regs): New static function.
34277         (try_combine): Handle situations where there is an additional
34278         instruction between I2 and I3 which needs to have a LOG_LINK
34279         updated.
34280
34281         Revert:
34282         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
34283
34284         * combine.c (try_combine): Delete redundant i1 test.  Call
34285         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
34286
34287 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34288
34289         PR target/80083
34290         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
34291         alternatives 13/14.
34292
34293 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34294
34295         PR tree-optimization/80054
34296         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
34297         the optimization if a PHI or any of its arguments is not dominated
34298         by the candidate's basis.  Use gphi* rather than gimple* as
34299         appropriate.
34300         (replace_profitable_candidates): Clean up a gimple* variable that
34301         should be a gphi* variable.
34302
34303 2017-03-20  Martin Sebor  <msebor@redhat.com>
34304
34305         PR c++/52477
34306         * doc/extend.texi (attribute constructor): Document present limitation.
34307
34308 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34309
34310         PR target/79963
34311         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
34312         __POWER9_VECTOR__ #ifdef control, change template definition to
34313         use Power9-specific built-in function.
34314         (vec_any_eq): Likewise.
34315         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
34316         to control outcomes from this test.
34317         (vector_ae_<mode>p): For VEC_F modes, likewise.
34318
34319 2017-03-20  Ian Lance Taylor  <iant@google.com>
34320
34321         * config/i386/i386.c (ix86_function_regparm): Save an extra
34322         register for -fsplit-stack with DECL_STATIC_CHAIN.
34323
34324 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
34325
34326         PR target/79912
34327         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
34328         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
34329
34330 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
34331
34332         * config/riscv/riscv.c (riscv_print_operand): Use "fence
34333         iorw,ow".
34334         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
34335         iorw,iorw".
34336
34337 2017-03-20  Marek Polacek  <polacek@redhat.com>
34338
34339         PR sanitizer/80063
34340         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
34341
34342 2017-03-20  Richard Biener  <rguenther@suse.de>
34343
34344         PR tree-optimization/80113
34345         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
34346         allocate extra SSA name for PHI def.
34347         (add_close_phis_to_outer_loops): Likewise.
34348         (add_close_phis_to_merge_points): Likewise.
34349         (copy_loop_close_phi_args): Likewise.
34350         (copy_cond_phi_nodes): Likewise.
34351
34352 2017-03-20  Martin Liska  <mliska@suse.cz>
34353
34354         PR middle-end/79753
34355         * tree-chkp.c (chkp_build_returned_bound): Do not build
34356         returned bounds for a LHS that's not a BOUNDED_P type.
34357
34358 2017-03-20  Martin Liska  <mliska@suse.cz>
34359
34360         PR target/79769
34361         PR target/79770
34362         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
34363         COMPLEX_CST and VECTOR_CST.
34364
34365 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34366
34367         PR target/78857
34368         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
34369         target operand.  A new splitter adds the clobber statement in case
34370         the target operand is dead anyway.
34371
34372 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
34373
34374         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
34375         to age-old versions of binutils and glibc.
34376
34377 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
34378
34379         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
34380
34381 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
34382
34383         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
34384
34385 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
34386
34387         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
34388         requirement for binutils 2.13.
34389
34390 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
34391
34392         * combine.c (try_combine): Delete redundant i1 test.  Call
34393         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
34394
34395 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
34396
34397         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
34398         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
34399         contents.
34400         <riscv64-*-elf>: Re-arrange section
34401         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
34402         <riscv32-*-linux>: Likewise.
34403         <riscv64-*-elf>: Likewise
34404         <riscv64-*-linux>: Likewise.
34405
34406 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
34407
34408         PR target/80052
34409         * aarch64.opt(verbose-cost-dump): Fix typo.
34410
34411 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
34412
34413         PR target/79951
34414         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
34415         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
34416
34417 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
34418
34419         * reload.c (find_reloads): When reloading a nonoffsettable address,
34420         use RELOAD_OTHER for it and its address reloads.
34421
34422         PR rtl-optimization/79910
34423         * combine.c (record_used_regs): New static function.
34424         (try_combine): Handle situations where there is an additional
34425         instruction between I2 and I3 which needs to have a LOG_LINK
34426         updated.
34427
34428 2017-03-17  Jeff Law  <law@redhat.com>
34429
34430         PR tree-optimization/71437
34431         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
34432         conditional in the hash table first.
34433         (vrp_dom_walker::before_dom_children): Extract condition from
34434         ASSERT_EXPR.  Record condition, its inverion and any implied
34435         conditions as well.
34436
34437 2017-03-17  Marek Polacek  <polacek@redhat.com>
34438             Markus Trippelsdorf  <markus@trippelsdorf.de>
34439
34440         PR tree-optimization/80079
34441         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
34442         m_stores_head.
34443
34444 2017-03-17  Richard Biener  <rguenther@suse.de>
34445
34446         PR middle-end/80075
34447         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
34448         Properly verify the LHS before the RHS possibly claims to be
34449         handled.
34450         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
34451         do not throw.
34452
34453 2017-03-17  Martin Jambor  <mjambor@suse.cz>
34454
34455         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
34456         (List of -O2 options): Likewise.
34457         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
34458         (-fipa-vrp) New.
34459
34460 2017-03-17  Tom de Vries  <tom@codesourcery.com>
34461
34462         * gcov-dump.c (print_usage): Print bug_report_url.
34463
34464 2017-03-17  Richard Biener  <rguenther@suse.de>
34465
34466         PR middle-end/80050
34467         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
34468         (parser::peek): Likewise.
34469
34470 2017-03-17  Richard Biener  <rguenther@suse.de>
34471
34472         PR tree-optimization/80048
34473         * sese.c (free_sese_info): Properly release rename_map and
34474         copied_bb_map elements.
34475
34476 2017-03-16  Alexandre Oliva  <aoliva@redhat.com>
34477
34478         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
34479         Add linked-list forward and backlinks.  Insert on
34480         construction, remove on destruction.
34481         (class pass_store_merging): Add m_stores_head field.
34482         (pass_store_merging::terminate_and_process_all_chains):
34483         Iterate over m_stores_head list.
34484         (pass_store_merging::terminate_all_aliasing_chains):
34485         Likewise.
34486         (pass_store_merging::execute): Check for debug stmts first.
34487         Push new chains onto the m_stores_head stack.
34488
34489 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
34490
34491         PR target/71294
34492         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
34493         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
34494         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
34495
34496 2017-03-16  Jeff Law  <law@redhat.com>
34497
34498         PR tree-optimization/71437
34499         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
34500         member function.  Implementation moved into after_dom_children
34501         member function and into the threader's thread_outgoing_edges
34502         function.
34503         (dom_opt_dom_walker::after_dom_children): Simplify by moving
34504         some code into new thread_outgoing_edges.
34505         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
34506         definition.  Simplify marker handling (do it here).   Assume we always
34507         have the available expression and the const/copies tables.
34508         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
34509         and tree-vrp.c
34510         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
34511         * tree-vrp.c (equiv_stack): No longer file scoped.
34512         (vrp_dom_walker): New class.
34513         (vrp_dom_walker::before_dom_children): New member function.
34514         (vrp_dom_walker::after_dom_children): Likewise.
34515         (identify_jump_threads):  Setup domwalker.  Use it rather than
34516         walking edges in a random order by hand.  Simplify setup/finalization.
34517         (finalize_jump_threads): Remove.
34518         (vrp_finalize): Do not call identify_jump_threads here.
34519         (execute_vrp): Do it here instead and call thread_through_all_blocks
34520         here too.
34521
34522         PR tree-optimization/71437
34523         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
34524         callers changed.
34525         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
34526         callers changed.
34527         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
34528         (dom_opt_dom_walker::thread_across_edge): Remove
34529         handle_dominating_asserts argument.  All callers changed.
34530         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
34531         changes.  Remove calls to lhs_of_dominating_assert.  Other
34532         uses of handle_dominating_asserts turn into unconditional code
34533         (simplify_control_stmt_condition_1): Likewise.
34534         (simplify_control_stmt_condition): Likewise.
34535         (thread_through_normal_block, thread_across_edge): Likewise.
34536         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
34537         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
34538         object if it is not an SSA_NAME.
34539         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
34540         before calling into the VRP specific simplifiers.
34541         (identify_jump_threads): Remove handle_dominating_asserts
34542         argument.
34543
34544 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
34545
34546         PR fortran/79886
34547         * tree-diagnostic.c (default_tree_printer): No longer static.
34548         * tree-diagnostic.h (default_tree_printer): New prototype.
34549
34550 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
34551
34552         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
34553         Change ins into fmov.
34554
34555 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34556
34557         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
34558         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
34559         Use h_con constraint for operand 1.
34560         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
34561         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
34562
34563 2017-03-15  Jeff Law  <law@redhat.com>
34564
34565         PR tree-optimization/71437
34566         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
34567         (record_temporary_equivalences): Use it.
34568
34569         PR tree-optimization/71437
34570         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
34571         tree-ssa-scopedtables.
34572         (lookup_avail_expr, build_and_record_new_cond): Likewise.
34573         (record_conditions, record_cond, vuse_eq): Likewise.
34574         (record_edge_info): Adjust to API tweak of record_conditions.
34575         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
34576         (record_temporary_equivalences, optimize_stmt): Likewise.
34577         (eliminate_redundant_computations): Likewise.
34578         (record_equivalences_from_stmt): Likewise.
34579         * tree-ssa-scopedtables.c: Include options.h and params.h.
34580         (vuse_eq): New function, moved from tree-ssa-dom.c
34581         (build_and_record_new_cond): Likewise.
34582         (record_conditions): Likewise.  Accept vector of conditions rather
34583         than edge_equivalence structure for first argument.
34584         for the first argument.
34585         (avail_exprs_stack::lookup_avail_expr): New member function, moved
34586         from tree-ssa-dom.c.
34587         (avail_exprs_stack::record_cond): Likewise.
34588         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
34589         from tree-ssa-dom.c.
34590         (avail_exprs_stack): Add new member functions lookup_avail_expr
34591         and record_cond.
34592         (record_conditions): Declare.
34593
34594 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
34595
34596         PR target/80017
34597         * lra-constraints.c (process_alt_operands): Increase reject for
34598         reloading an input/output operand.
34599
34600 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
34601
34602         PR target/79038
34603         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
34604         insns to convert from signed/unsigned char/short to IEEE 128-bit
34605         floating point.
34606         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
34607
34608 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
34609
34610         PR target/80019
34611         * config/i386/i386.c (ix86_vector_duplicate_value): Create
34612         subreg of inner mode for values already in registers.
34613
34614 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
34615
34616         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
34617         iteration reg is used after the loop.
34618
34619 2017-03-14  Martin Sebor  <msebor@redhat.com>
34620
34621         PR tree-optimization/79800
34622         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
34623         precision in negative-positive range.
34624         (format_floating): Call non-const overload with adjusted precision.
34625
34626 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
34627
34628         PR target/79947
34629         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
34630         -mpowerpc-gfxopt.
34631
34632 2017-03-14  Martin Sebor  <msebor@redhat.com>
34633
34634         PR middle-end/80020
34635         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
34636         * builtins.def (aligned_alloc): Use it.
34637
34638         PR c/79936
34639         * Makefile.in (GTFILES): Add calls.c.
34640         * calls.c: Include "gt-calls.h".
34641
34642 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
34643
34644         PR rtl-optimization/79728
34645         * regs.h (struct target_regs): New field
34646         x_contains_allocatable_regs_of_mode.
34647         (contains_allocatable_regs_of_mode): New macro.
34648         * reginfo.c (init_reg_sets_1): Initialize it, and change
34649         contains_reg_of_mode so it includes global regs as well.
34650         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
34651         rather than contains_regs_of_mode.
34652
34653 2017-03-14  Martin Liska  <mliska@suse.cz>
34654
34655         * doc/invoke.texi: Document options that can't be combined with
34656         -fcheck-pointer-bounds.
34657
34658 2017-03-14  Martin Liska  <mliska@suse.cz>
34659
34660         PR middle-end/79831
34661         * doc/invoke.texi (-Wchkp): Document the option.
34662
34663 2017-03-14  Martin Liska  <mliska@suse.cz>
34664
34665         * Makefile.in: Install gcov-dump.
34666
34667 2017-03-14  Martin Liska  <mliska@suse.cz>
34668
34669         * multiple_target.c (expand_target_clones): Bail out for
34670         an invalid attribute.
34671
34672 2017-03-14  Richard Biener  <rguenther@suse.de>
34673
34674         * alias.c (struct alias_set_entry): Pack properly.
34675         * cfgloop.h (struct loop): Likewise.
34676         * cse.c (struct set): Likewise.
34677         * ipa-utils.c (struct searchc_env): Likewise.
34678         * loop-invariant.c (struct invariant): Likewise.
34679         * lra-remat.c (struct cand): Likewise.
34680         * recog.c (struct change_t): Likewise.
34681         * rtl.h (struct address_info): Likewise.
34682         * symbol-summary.h (function_summary): Likewise.
34683         * tree-loop-distribution.c (struct partition): Likewise.
34684         * tree-object-size.c (struct object_size_info): Likewise.
34685         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
34686         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
34687         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
34688         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
34689         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
34690         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
34691         (struct _stmt_vec_info): Likewise.
34692
34693 2017-03-14  Martin Liska  <mliska@suse.cz>
34694
34695         PR target/79892
34696         * multiple_target.c (create_dispatcher_calls): Check that
34697         a target can create a function dispatcher.
34698
34699 2017-03-14  Martin Liska  <mliska@suse.cz>
34700
34701         PR lto/66295
34702         * multiple_target.c (expand_target_clones): Drop local.local
34703         flag for default implementation.
34704
34705 2017-03-14  Richard Biener  <rguenther@suse.de>
34706
34707         PR tree-optimization/80030
34708         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
34709
34710 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
34711
34712         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
34713         gcc_fallthrough() instead of __attribute__((fallthrough));
34714
34715 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
34716
34717         * doc/gcc.texi: Remove "up" link to (DIR).
34718         * doc/gccint.texi: Ditto.
34719
34720 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
34721
34722         * doc/install.texi (Specific) <avr>: Remove reference to
34723         binutils 2.13.
34724
34725 2017-03-13  Jeff Law  <law@redhat.com>
34726
34727         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
34728         attribute rather than comments.
34729
34730         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
34731         match_scratch operand is highest.
34732
34733 2017-03-13  Martin Liska  <mliska@suse.cz>
34734
34735         PR middle-end/78339
34736         * ipa-pure-const.c (warn_function_noreturn): If the declarations
34737         is a CHKP clone, use original declaration.
34738
34739 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
34740
34741         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
34742         (arc_conditional_register_usage): Use a different allocation order
34743         when optimizing for size.
34744         * common/config/arc/arc-common.c (arc_option_optimization_table):
34745         Section anchors default on when optimizing for size.
34746
34747 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
34748
34749         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
34750
34751 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
34752
34753         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
34754         * config/arc/arc.md (cpu_facility): Add cd variant.
34755         (*movqi_insn): Add code density variant.
34756         (*movhi_insn): Likewise.
34757         (*movqi_insn): Likewise.
34758         (*addsi3_mixed): Likewise.
34759         (subsi3_insn): Likewise.
34760
34761 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
34762
34763         * config/arc/arc.md (movsi_cond_exec): Update constraint.
34764
34765 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
34766
34767         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
34768         expressions with MINUS and UNARY ops.
34769
34770 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34771
34772         PR target/79911
34773         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
34774         Rename to...
34775         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
34776         between vec_select and vector argument.
34777         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
34778         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
34779         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
34780         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
34781         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
34782         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
34783
34784 2017-03-13  Richard Biener  <rguenther@suse.de>
34785
34786         PR other/79991
34787         * params.def (vect-max-peeling-for-alignment): Fix typo.
34788
34789 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
34790
34791         * doc/install.texi (Specific) <mips-*-*>: Remove description of
34792         issue that only occurred with binutils below 2.18.
34793
34794 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
34795
34796         * doc/install.texi (Specific) <cris-axis-elf>: No longer
34797         refer to binutils 2.11/2.12 minimum.
34798
34799 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
34800
34801         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
34802         ftp.kernel.org and simplify binutils requirement.
34803
34804 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
34805
34806         * doc/invoke.texi (Warning Options): Fix spelling of link-time
34807         optimization.
34808         (Optimize Options): Ditto.  Also remove redundancy.
34809
34810 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
34811
34812         PR translation/79848
34813         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
34814         "%qs".
34815         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
34816         to G_ to avoid double translation.
34817
34818 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
34819
34820         PR translation/79923
34821         * auto-profile.c (get_combined_location): Convert leading
34822         character of diagnostics to lower case and remove trailing period.
34823         (read_profile): Likewise for various diagnostics.
34824         * config/arm/arm.c (arm_option_override): Remove trailing period
34825         from various diagnostics.
34826         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
34827         (msp430_expand_delay_cycles): Likewise.
34828
34829 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
34830
34831         PR target/79925
34832         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
34833         full command-line argument, rather than just "str".
34834         (aarch64_validate_march): Likewise.
34835         (aarch64_validate_mtune): Likewise.
34836
34837 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
34838
34839         PR rtl-optimization/78911
34840         * lra-assigns.c (must_not_spill_p): New function.
34841         (spill_for): Use it.
34842
34843 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
34844
34845         PR tree-optimization/79981
34846         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
34847         ATOMIC_COMPARE_EXCHANGE ifn result.
34848         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
34849         IFN_ATOMIC_COMPARE_EXCHANGE.
34850
34851 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
34852
34853         PR driver/79875
34854         * opts.c (parse_sanitizer_options): Add missing question mark to
34855         "did you mean" message.
34856
34857 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34858
34859         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
34860         built-in.
34861         (VMULEUH_UNS): Likewise.
34862         (VMULOUB_UNS): Likewise.
34863         (VMULOUH_UNS): Likewise.
34864         * config/rs6000/rs6000.c (builtin_function_type): Remove
34865         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
34866
34867 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
34868
34869         PR bootstrap/79952
34870         * read-rtl-function.c (function_reader::read_rtx_operand): Update
34871         x with result of extra_parsing_for_operand_code_0.
34872         (function_reader::extra_parsing_for_operand_code_0): Convert
34873         return type from void to rtx, returning x.  When reading
34874         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
34875         larger size containing struct block_symbol.
34876
34877 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
34878
34879         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
34880         -mfloat128-hardware without -m64.
34881
34882 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
34883
34884         PR target/79941
34885         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
34886         entries to the case statement that marks unsigned arguments to
34887         overloaded functions.
34888
34889 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34890
34891         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
34892         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
34893
34894 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
34895
34896         PR target/79907
34897         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
34898         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
34899
34900 2017-03-10  Martin Liska  <mliska@suse.cz>
34901
34902         PR target/65705
34903         PR target/69804
34904         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
34905         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
34906         FIELD != NULL.
34907
34908 2017-03-10  Olivier Hainque  <hainque@adacore.com>
34909
34910         * tree-switch-conversion (array_value_type): Start by resetting
34911         candidate type to it's main variant.
34912
34913 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
34914
34915         PR rtl-optimization/79909
34916         * combine.c (try_combine): Use simplify_replace_rtx on individual
34917         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
34918         of the whole CALL_INSN_FUNCTION_USAGE.
34919
34920         PR tree-optimization/79972
34921         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
34922         get_range_info on SSA_NAMEs.  Formatting fixes.
34923
34924 2017-03-10  Richard Biener  <rguenther@suse.de>
34925             Jakub Jelinek  <jakub@redhat.com>
34926
34927         PR tree-optimization/77975
34928         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
34929         edge to be constant.
34930         (get_val_for): For constant x return it.  Formatting fix.
34931         (loop_niter_by_eval): Avoid pointless looping if the next iteration
34932         would use the same bases as the current one.
34933
34934 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34935
34936         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
34937         instead of vec_select for V1TImode.
34938         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
34939         longer needed.
34940         (VSX_LE_128): Add V1TI to this mode iterator.
34941         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
34942         (*vsx_le_perm_store_<mode>): Likewise.
34943         (pre-reload splitter for VSX stores): Likewise.
34944         (post-reload splitter for VSX stores): Likewise.
34945         (*vsx_xxpermdi2_le_<mode>): Likewise.
34946         (*vsx_lxvd2x2_le_<mode>): Likewise.
34947         (*vsx_stxvd2x2_le_<mode>): Likewise.
34948
34949 2017-03-09  Michael Eager  <eager@eagercon.com>
34950
34951         Correct failures with --enable-checking=yes,rtl.
34952
34953         * config/microblaze/microblaze.c (microblaze_expand_shift):
34954         Replace GET_CODE test with CONST_INT_P and INTVAL test with
34955         test for const0_rtx.
34956         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
34957         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
34958
34959 2017-03-09  Richard Biener  <rguenther@suse.de>
34960
34961         PR tree-optimization/79977
34962         * graphite-scop-detection.c (scop_detection::merge_sese):
34963         Handle the case of extra exits to blocks dominating the entry.
34964
34965 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
34966
34967         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
34968         Document rdynamic.
34969
34970 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
34971
34972         PR rtl-optimization/79949
34973         * lra-constraints.c (process_alt_operands): Check memory when
34974         trying to predict a cycle.  Print about the overall increase.
34975
34976 2017-03-09  Richard Biener  <rguenther@suse.de>
34977
34978         PR middle-end/79971
34979         * gimple-expr.c (useless_type_conversion_p): Preserve
34980         TYPE_SATURATING for fixed-point types.
34981
34982 2017-03-09  Richard Biener  <rguenther@suse.de>
34983
34984         PR ipa/79970
34985         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
34986         alignment of BLKmode params.
34987
34988 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34989
34990         PR target/79913
34991         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
34992         (VALL_NO_V2Q): Likewise.
34993         (VDQF_DF): Delete.
34994         * config/aarch64/aarch64-simd.md
34995         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
34996         iterator.
34997         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
34998         VALL_NO_V2Q mode iterator.
34999         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
35000
35001 2017-03-09  Martin Liska  <mliska@suse.cz>
35002
35003         PR tree-optimization/79631
35004         * tree-chkp-opt.c (chkp_is_constant_addr): Call
35005         tree_int_cst_sign_bit just for INTEGER constants.
35006
35007 2017-03-09  Martin Liska  <mliska@suse.cz>
35008
35009         PR target/65705
35010         PR target/69804
35011         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
35012         sanitizers.
35013
35014 2017-03-09  Marek Polacek  <polacek@redhat.com>
35015
35016         PR c++/79672
35017         * tree.c (inchash::add_expr): Handle TREE_VEC.
35018
35019 2017-03-09  Martin Liska  <mliska@suse.cz>
35020
35021         PR ipa/79764
35022         (chkp_narrow_size_and_offset): New function.
35023         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
35024         (void chkp_parse_bit_field_ref): New function.
35025         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
35026         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
35027
35028 2017-03-09  Martin Liska  <mliska@suse.cz>
35029
35030         PR ipa/79761
35031         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
35032         (chkp_find_bounds_1): Remove gcc_unreachable.
35033
35034 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
35035
35036         PR sanitizer/79944
35037         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
35038         BUILT_IN_SYNC*, determine the access type from the size suffix and
35039         always build a MEM_REF with that type.  Handle forgotten
35040         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
35041
35042         PR target/79932
35043         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
35044         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
35045         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
35046         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
35047         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
35048         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
35049         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
35050         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
35051         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
35052         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
35053         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
35054         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
35055         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
35056         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
35057         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
35058         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
35059         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
35060         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
35061         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
35062         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
35063         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
35064         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
35065         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
35066         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
35067         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
35068         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
35069         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
35070         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
35071         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
35072         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
35073         definitions outside of __OPTIMIZE__ guarded section.
35074
35075         PR target/79932
35076         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
35077         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
35078         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
35079         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
35080         guarded section.
35081
35082 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35083
35084         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
35085         ("vfenez<mode>"): Add missing constraints.
35086
35087 2017-03-08  Martin Sebor  <msebor@redhat.com>
35088
35089         PR target/79928
35090         * config/nds32/nds32.c (nds32_option_override):
35091         Fix misspelled diagnostic.
35092
35093 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
35094
35095         PR c/79940
35096         * gimplify.c (gimplify_omp_for): Replace index var in outer
35097         taskloop statement with an artificial variable and add
35098         OMP_CLAUSE_PRIVATE clause for it.
35099
35100 2017-03-08  Richard Biener  <rguenther@suse.de>
35101
35102         PR tree-optimization/79955
35103         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
35104         for accesses that are completely outside of the variable.
35105
35106 2017-03-08  Andrew Haley  <aph@redhat.com>
35107
35108         PR tree-optimization/79943
35109         * tree-ssa-loop-split.c (compute_new_first_bound): When
35110         calculating the new upper bound, (END-BEG) should be added, not
35111         subtracted.
35112
35113 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
35114
35115         * config/avr/avr.md (setmemhi): Make sure match_dup
35116         operand number comes before match_scratch.
35117
35118 2017-03-08  Richard Biener  <rguenther@suse.de>
35119
35120         PR tree-optimization/79920
35121         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
35122         with ncopies == 1 to ...
35123         (vect_transform_slp_perm_load): ... here.  Properly compute
35124         all element loads by iterating VF times over the group.  Do
35125         not handle ncopies (computed in a broken way) in
35126         vect_create_mask_and_perm.
35127
35128 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
35129
35130         PR sanitizer/79904
35131         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
35132         is a uniform vector, use uniform_vector_p return value instead of
35133         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
35134
35135 2017-03-07  Marek Polacek  <polacek@redhat.com>
35136
35137         PR middle-end/79809
35138         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
35139         (alloca_call_type): Likewise.
35140
35141 2017-03-07  Martin Liska  <mliska@suse.cz>
35142
35143         * gcov.c (process_args): Put comment to correct location.
35144
35145 2017-03-07  Martin Liska  <mliska@suse.cz>
35146
35147         PR middle-end/68270
35148         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
35149         Use array_at_struct_end_p instead of DECL_CHAIN (field).
35150         (chkp_narrow_bounds_for_field): Likewise.
35151         (chkp_parse_array_and_component_ref): Pass one more argument to
35152         call.
35153
35154 2017-03-07  Richard Biener  <rguenther@suse.de>
35155
35156         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
35157         preheaders.
35158
35159 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
35160
35161         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
35162         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
35163
35164 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35165
35166         PR c/79855
35167         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
35168         to end of description.
35169         (PARAM_MAX_STORES_TO_MERGE): Likewise.
35170
35171 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
35172
35173         PR rtl-optimization/79901
35174         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
35175         ...
35176         (*avx512f_<code><mode>3<mask_name>): ... this.
35177         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
35178         iterator instead of VI8_AVX2_AVX512BW.
35179
35180         PR rtl-optimization/79901
35181         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
35182         min/max expander, expand it using expand_vec_cond_expr.
35183
35184         PR sanitizer/79897
35185         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
35186         temporary.
35187
35188 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
35189
35190         PR c++/79821
35191         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
35192         to void * for PCH reasons.
35193         * dwarf2out.c (output_loc_operands, output_die): Cast
35194         v.val_vec.array to unsigned char *.
35195
35196 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
35197
35198         PR target/77850
35199         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
35200         vector types.
35201
35202 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
35203
35204         PR rtl-optimization/79571
35205         * lra-constraints.c (process_alt_operands): Calculate static
35206         reject and subtract it from overall when only addresses will be
35207         reloaded.
35208
35209 2017-03-06  Julia Koval  <julia.koval@intel.com>
35210
35211         PR target/79793
35212         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
35213         incoming stack boundary to 128 for 64-bit targets.
35214
35215 2017-03-06  Richard Biener  <rguenther@suse.de>
35216
35217         PR tree-optimization/79894
35218         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
35219         to NULL after folding it.
35220
35221 2017-03-06  Richard Biener  <rguenther@suse.de>
35222
35223         PR tree-optimization/79824
35224         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
35225         check disabling peeling for gaps.
35226
35227 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
35228
35229         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
35230         attributes): Document gettimeofday.
35231
35232 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
35233
35234         * config/s390/s390.c (s390_option_override_internal): Set
35235         PARAM_MIN_VECT_LOOP_BOUND
35236
35237 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
35238
35239         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
35240         * config/s390/s390.md: Likewise.
35241
35242 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
35243
35244         PR target/79812
35245         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
35246         (<avx2_avx512>_perm<mode>): Rename to ...
35247         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
35248         of VI8F_256_512.
35249         (<avx512>_perm<mode>_mask): Rename to ...
35250         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
35251         of VI8F_256_512.
35252         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
35253         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
35254         instead of VI8F_256_512.
35255         (avx512f_perm<mode>): New define_expand.
35256         (avx512f_perm<mode>_mask): Likewise.
35257         (avx512f_perm<mode>_1<mask_name>): New define_insn.
35258         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
35259
35260 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
35261
35262         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
35263         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
35264         if_then_else.
35265         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
35266
35267 2017-03-06  Martin Liska  <mliska@suse.cz>
35268
35269         PR sanitize/79783
35270         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
35271         when having a SSA NAME w/o VAR_DECL assigned to it.
35272
35273 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
35274
35275         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
35276         msa_dpsub_<su>_d): Fix MODE for vec_select.
35277
35278 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
35279
35280         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
35281         argument.
35282         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
35283
35284 2017-03-06  Richard Biener  <rguenther@suse.de>
35285
35286         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
35287         * plugin.c (register_plugin_info): Likewise.
35288         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
35289
35290 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
35291
35292         * config/i386/sse.md (sse_storehps, sse_storelps,
35293         avx_<castmode><avxsizesuffix>_<castmode>,
35294         avx512f_<castmode><avxsizesuffix>_<castmode>,
35295         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
35296         in condition that at least one operand is not a MEM.
35297
35298 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
35299
35300         PR middle-end/79805
35301         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
35302         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
35303         ECF_NOTHROW.
35304         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
35305         gimple_call_nothrow_p flag based on whether original builtin can throw.
35306         If it can, emit following stmts on the fallthrough edge.
35307         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
35308         don't create new bb if inserting just debug stmts on the edge, try to
35309         insert them on the fallthru bb or just reset debug stmts.
35310
35311 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
35312
35313         PR target/43763
35314         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
35315         restore recog_data (including the operand rtxes inside it) around
35316         the call to get_insn_template.
35317
35318 2017-03-03  Martin Sebor  <msebor@redhat.com>
35319
35320         PR tree-optimization/79699
35321         * context.c (context::~context): Free MPFR caches to avoid
35322         a memory leak on program exit.
35323
35324 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35325
35326         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
35327         Use wide_int::ulow () instead of .elt (0).
35328
35329 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
35330
35331         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
35332         (*pushxf): Limit oF constraint to 32bit targets and add oC
35333         constraint for 64bit targets.
35334         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
35335         (*pushdf): Change rmF constraint to rmC.
35336
35337 2017-03-03  Martin Liska  <mliska@suse.cz>
35338
35339         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
35340         Remove unused variable.
35341
35342 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
35343
35344         PR target/79807
35345         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
35346         is a memory operand, increase num_memory.
35347         (ix86_expand_args_builtin): Likewise.
35348
35349 2017-03-03  Jan Hubicka  <jh@suse.cz>
35350
35351         PR lto/79760
35352         * ipa-devirt.c (maybe_record_node): Properly handle
35353         __cxa_pure_virtual visibility.
35354
35355 2017-03-03  Martin Liska  <mliska@suse.cz>
35356
35357         PR tree-optimization/79803
35358         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
35359         assert.
35360         (pass_loop_prefetch::execute): Disabled optimization if an
35361         assumption about L1 cache size is not met.
35362
35363 2017-03-03  Martin Liska  <mliska@suse.cz>
35364
35365         PR rtl-optimization/79574
35366         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
35367         (hash_scan_set): Likewise.
35368         (dump_hash_table): Likewise.
35369         (hoist_code): Likewise.
35370
35371 2017-03-03  Richard Biener  <rguenther@suse.de>
35372
35373         * fixed-value.c (fixed_from_string): Restore use of elt (1)
35374         in place of uhigh ().
35375         (fixed_convert_from_real): Likewise.
35376
35377 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
35378
35379         PR target/79514
35380         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
35381
35382 2017-03-03  Richard Biener  <rguenther@suse.de>
35383
35384         PR middle-end/79818
35385         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
35386         TYPE_OVERFLOW_UNDEFINED check.
35387
35388 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35389
35390         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
35391         numbers.
35392         (vector_ae_<mode>_p): Likewise.
35393         (vector_nez_<mode>_p): Likewise.
35394         (vector_ne_v2di_p): Likewise.
35395         (vector_ae_v2di_p): Likewise.
35396         (vector_ne_<mode>_p): Likewise.
35397         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
35398         numbers.
35399         (vsx_tsqrt<mode>2_fe): Likewise.
35400
35401 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
35402
35403         PR target/79514
35404         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
35405
35406 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
35407
35408         PR rtl-optimization/79780
35409         * cprop.c (one_cprop_pass): When second and further conditional trap
35410         in a single basic block is turned into an unconditional trap, turn it
35411         into a deleted note to avoid RTL verification failures.
35412
35413 2017-03-02  Richard Biener  <rguenther@suse.de>
35414
35415         * fold-const.c (const_binop): Use ulow () instead of elt (0).
35416
35417 2017-03-02  Richard Biener  <rguenther@suse.de>
35418
35419         PR tree-optimization/79345
35420         PR c++/42000
35421         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
35422         param and abort the walk, returning -1 if it is hit.
35423         (walk_aliased_vdefs): Take a limit param and pass it on.
35424         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
35425         defaulting to 0 and return a signed int.
35426         * tree-ssa-uninit.c (struct check_defs_data): New struct.
35427         (check_defs): New helper.
35428         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
35429         about uninitialized memory.
35430         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
35431         bogus uninitialized warning.
35432         (fixed_convert_from_real): Likewise.
35433
35434 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
35435
35436         PR tree-optimization/66768
35437         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
35438         iv_use if base object can't be determined.
35439
35440 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
35441
35442         PR tree-optimization/79345
35443         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
35444         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
35445         (get_pattern_stats): Initialize it.
35446         * genemit.c (gen_expand): Verify match_scratch numbers come after
35447         match_operand/match_dup numbers.
35448         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
35449         match_scratch numbers.
35450         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
35451         Likewise.
35452         * config/s390/s390.md (trunctdsd2): Likewise.
35453
35454 2017-03-02  Richard Biener  <rguenther@suse.de>
35455
35456         * wide-int.h (wide_int_storage::operator=): Implement in terms
35457         of wi::copy.
35458
35459 2017-03-02  Richard Biener  <rguenther@suse.de>
35460
35461         PR tree-optimization/79777
35462         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
35463         the to insert expression to sth existing.
35464
35465 2017-03-01  Martin Sebor  <msebor@redhat.com>
35466
35467         PR middle-end/79692
35468         * gimple-ssa-sprintf.c
35469         (directive::known_width_and_precision): New function.
35470         (format_integer): Use it.
35471         (get_mpfr_format_length): Consider the full range of precision
35472         when computing %g output with the # flag.  Set the likely byte
35473         count to 3 rather than 1 when precision is indeterminate.
35474         (format_floating): Correct the lower bound of precision.
35475
35476 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35477
35478         * doc/invoke.texi: Document default code model for 64-bit Linux.
35479
35480 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
35481
35482         PR target/79752
35483         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
35484         udiv rather than div since input pattern is unsigned.
35485
35486 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
35487
35488         * config/i386/i386.c (print_reg): Warn for values of
35489         unsupported size in integer register.
35490
35491 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
35492
35493         PR target/79439
35494         * config/rs6000/predicates.md (current_file_function_operand): Do
35495         not allow self calls to be local if the function is replaceable.
35496
35497 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35498
35499         PR target/79395
35500         * config/rs6000/altivec.h (vec_ctz and others): Change the
35501         preprocessor macro that controls conditional compilation from
35502         _ARCH_PWR9 to __POWER9_VECTOR__.
35503         (vec_all_ne): Change parameterization of __altivec_scalar_pred
35504         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
35505         control (instead of _ARCH_PWR9 control) so that template
35506         definition uses power9-specific function.
35507         (vec_any_eq): Likewise.
35508         (vec_all_ne): Change macro definition to use a power9-specific
35509         expansion under #ifdef __POWER9_VECTOR__ control (instead of
35510         _ARCH_PWR9 control).
35511         (vec_any_eq) Likewise.
35512         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
35513         expansion for CMPNEF to remove support for xvcmpnesp instruction.
35514         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
35515         support for xvcmpnedp instruction.
35516         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
35517         macro expansion so that Power9 implementation of vec_all_ne does
35518         not use the AltiVec predicate framework.
35519         (VCMPNEH_P): Likewise.
35520         (VCMPNEW_P): Likewise.
35521         (VCMPNED_P): Likewise.
35522         (VCMPNEFP_P): Likewise.
35523         (VCMPNEDP_P): Likewise.
35524         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
35525         implementation of vec_any_eq to not use AltiVec predicate
35526         framework.
35527         (VCMPAEH_P): Likewise.
35528         (VCMPAEW_P): Likewise.
35529         (VCMPAED_P): Likewise.
35530         (VCMPAEFP_P): Likewise.
35531         (VCMPAEDP_P): Likewise.
35532         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
35533         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
35534         not use the AltiVec predicate framework.
35535         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
35536         of vec_any_eq to not use AltiVec predicate framework.
35537         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
35538         support for predefined __POWER9_VECTOR__ macro to indicate that
35539         Power9 instruction selection is enabled.
35540         (altivec_overloaded_builtins): Remove extraneous
35541         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
35542         function argument types RS6000_BTI_bool_V16QI and
35543         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
35544         entry for overloaded function argument types RS6000_BTI_bool_V4SI
35545         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
35546         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
35547         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
35548         Power9 for implementations of vec_cmpne.  Change the signature for
35549         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
35550         (representing vec_all_ne) to remove the previously described first
35551         argument of type RS6000_BTI_INTSI, as this was an artifact of
35552         reliance on the AltiVec predicate framework, which is no longer
35553         used in the implementation of these functions.  Add
35554         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
35555         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
35556         since, unlike the AltiVec predicate framework implementation, we
35557         do not share function descriptors between vec_alle and vec_anyeq.
35558         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
35559         set of modes that receive special treatment even when
35560         TARGET_P9_VECTOR is true.  The special treatment emits code that
35561         does not depend on Power9 instructions.
35562         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
35563         define_expand to not rely on AltiVec predicate framework.
35564         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
35565         function.
35566         (vector_ne_v2di_p): Change this define_expand to not rely on
35567         AltiVec predicate framework.
35568         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
35569         function.
35570         (vector_ne_<mode>_p): Change this define_expand to not rely on
35571         AltiVec predicate framework.
35572         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
35573         function.
35574         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
35575         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
35576         define_insn pattern.
35577         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
35578         define_insn pattern because the xvcmpne<VSs>. instruction is not
35579         supported.
35580         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
35581         instruction is not supported.
35582
35583 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
35584
35585         * config/nvptx/nvptx.c: Include intl.h.
35586
35587 2017-03-01  Martin Jambor  <mjambor@suse.cz>
35588
35589         PR lto/78140
35590         * ipa-prop.h (ipa_bits): Removed field known.
35591         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
35592         to pointers.  Adjusted their comments to warn about their sharing.
35593         (ipcp_transformation_summary): Change bits to a vector of pointers.
35594         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
35595         (ipa_get_ipa_bits_for_value): Declare.
35596         * tree-vrp.h (value_range): Mark as GTY((for_user)).
35597         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
35598         (ipa_bits_hash_table): Likewise.
35599         (ipa_vr_ggc_hash_traits): Likewise.
35600         (ipa_vr_hash_table): Likewise.
35601         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
35602         being pointers and vr_known being removed.
35603         (ipa_set_jf_unknown): Likewise.
35604         (ipa_get_ipa_bits_for_value): New function.
35605         (ipa_set_jfunc_bits): Likewise.
35606         (ipa_get_value_range): New overloaded functions.
35607         (ipa_set_jfunc_vr): Likewise.
35608         (ipa_compute_jump_functions_for_edge): Use the above functions to
35609         construct bits and vr parts of jump functions.
35610         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
35611         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
35612         exist.
35613         (ipcp_grow_transformations_if_necessary): Also allocate
35614         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
35615         exist.
35616         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
35617         them.  Fix too long lines.
35618         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
35619         vr_known being removed.
35620         (ipa_read_jump_function): Use new setter functions to construct bits
35621         and vr parts of jump functions or set them to NULL.
35622         (write_ipcp_transformation_info): Adjust for bits being pointers.
35623         (read_ipcp_transformation_info): Likewise.
35624         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
35625         space.
35626         Include gt-ipa-prop.h.
35627         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
35628         being pointers.
35629         (ipcp_store_bits_results): Likewise.
35630         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
35631         Do not write to existing jump functions but use a temporary instead.
35632
35633 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
35634
35635         PR c++/79681
35636         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
35637         attempt to use its first operand as BIT_FIELD_REF base.
35638
35639 2017-03-01  Richard Biener  <rguenther@suse.de>
35640
35641         PR middle-end/79721
35642         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
35643         interpolating formula in wrapping arithmetic.
35644         (chrec_apply): Convert chrec_evaluate return value to wanted type.
35645
35646 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
35647
35648         PR tree-optimization/79734
35649         * tree-vect-generic.c (expand_vector_condition): Optimize
35650         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
35651         Handle VEC_COND_EXPR where comparison has different inner width from
35652         type's inner width.
35653
35654 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
35655
35656         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
35657         markup, and similar issues.  Remove @opindex entries for things
35658         that aren't options.  Add missing -mmpy-option entries.
35659
35660 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
35661
35662         PR tree-optimization/79737
35663         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
35664         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
35665         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
35666         instead of byte_size.  Formatting fix.
35667         (shift_bytes_in_array_right): Formatting fix.
35668
35669 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
35670
35671         PR target/79749
35672         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
35673         condition on optimize for the leaf function test.
35674
35675 2017-02-28  Martin Liska  <mliska@suse.cz>
35676
35677         PR lto/79625
35678         * read-rtl-function.c (function_reader::handle_unknown_directive):
35679         Bail out when one uses -flto.
35680
35681 2017-02-28  Martin Liska  <mliska@suse.cz>
35682
35683         * common.opt: Replace space with tabular for options of <number>
35684         type.
35685         * config/i386/i386.opt: Show <number> value for
35686         -mlarge-data-threshold.
35687         * opts.c (print_filtered_help): Do not display number in hexadecimal
35688         format.
35689
35690 2017-02-28  Martin Liska  <mliska@suse.cz>
35691
35692         * common.opt: Fix --help=option -Q for options which are of
35693         an enum type.
35694
35695 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
35696
35697         * config/i386/i386.c (print_reg): Error out for values
35698         of 8-bit size in invalid integer register.
35699
35700 2017-02-28  Martin Sebor  <msebor@redhat.com>
35701
35702         PR tree-optimization/79691
35703         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
35704
35705 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
35706
35707         PR target/79729
35708         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
35709         gcc_unreachable with output_operand_lossage.
35710
35711 2017-02-28  Richard Biener  <rguenther@suse.de>
35712
35713         PR tree-optimization/79740
35714         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
35715         inserts.
35716         (visit_nary_op): Insert the nary into the hashtable if we
35717         pattern-matched sth.
35718         * tree-ssa-pre.c (eliminate_insert): Robustify.
35719
35720 2017-02-28  Richard Biener  <rguenther@suse.de>
35721
35722         PR middle-end/79731
35723         * fold-const.c (decode_field_reference): Reject out-of-bound
35724         accesses.
35725
35726 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
35727
35728         * config/i386/i386.c: Include intl.h.
35729         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
35730         instead of just cond ? "..." : "...".
35731         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
35732         * coverage.c (read_counts_file): Likewise.
35733         * omp-offload.c: Include intl.h.
35734         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
35735         of just cond ? "..." : "...".
35736         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
35737         of just cond ? "..." : "...".
35738
35739 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
35740
35741         PR target/79742
35742         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
35743         entry, if present.
35744         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
35745         'tune for' CPU name.
35746         * config/arm/arm-cpu-data.h: Regenerated.
35747
35748 2017-02-28  Richard Biener  <rguenther@suse.de>
35749
35750         PR tree-optimization/79732
35751         * tree-inline.c (expand_call_inline): Do not shadow var.
35752
35753 2017-02-28  Richard Biener  <rguenther@suse.de>
35754
35755         PR tree-optimization/79723
35756         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
35757         address-space properly.
35758
35759 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
35760
35761         * doc/optinfo.texi (Optimization groups): Fix option used for
35762         OPTGROUP_ALL.
35763         * doc/invoke.texi (-fopt-info): Document "omp".
35764         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
35765         (OPTGROUP_ALL): Add OPTGROUP_OMP.
35766         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
35767         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
35768         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
35769
35770         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
35771         all users.
35772         * dumpfile.c (optgroup_options): Instead of "openmp", associate
35773         OPTGROUP_OMP with "omp".
35774
35775 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
35776
35777         PR target/79544
35778         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
35779         for arithmetic shift of unsigned V2DI.
35780
35781 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
35782
35783         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
35784         arc/linux.h headers.
35785         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
35786         (LINK_SPEC): Likewise.
35787         (ARC_TLS_EXTRA_START_SPEC): Likewise.
35788         (EXTRA_SPECS): Likewise.
35789         (STARTFILE_SPEC): Likewise.
35790         (ENDFILE_SPEC): Likewise.
35791         (LIB_SPEC): Likewise.
35792         (TARGET_SDATA_DEFAULT): Likewise.
35793         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
35794         (MULTILIB_DEFAULTS): Likewise.
35795         (DWARF2_UNWIND_INFO): Likewise.
35796         * config/arc/big.h: New file.
35797         * config/arc/elf.h: Likewise.
35798         * config/arc/linux.h: Likewise.
35799         * config/arc/t-uClibc: Remove.
35800
35801 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
35802
35803         PR tree-optimization/77536
35804         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
35805         (tree_transform_and_unroll_loop): Use above function to compute the
35806         estimated niter of unrolled loop and use it when scaling profile.
35807         Also use count info rather than frequency if it's non-zero.
35808         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
35809         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
35810         (vect_transform_loop): Call above function.
35811
35812 2017-02-27  Richard Biener  <rguenther@suse.de>
35813
35814         PR tree-optimization/45397
35815         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
35816         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
35817         (visit_nary_op): Add pattern matching for CSEing sign-changed
35818         or truncated operations with wider ones.
35819
35820 2017-02-27  Richard Biener  <rguenther@suse.de>
35821
35822         PR tree-optimization/79690
35823         * tree-vect-stmts.c (vectorizable_store): Use vector type
35824         built from the DR with address-space.
35825
35826 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
35827
35828         * doc/invoke.texi (Optimize Options): Refine the description
35829         of asan-use-after-return.
35830
35831 2017-02-25  Alan Modra  <amodra@gmail.com>
35832
35833         PR rtl-optimization/79584
35834         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
35835         base, not ad->base_term, the reg within base.  Remove assertion
35836         that ad->base == ad->base_term.  Replace gen_int_mode using
35837         bogus mode with const0_rtx.
35838
35839 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
35840
35841         PR middle-end/79396
35842         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
35843         FMA_EXPR like tcc_binary or tcc_unary.
35844
35845         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
35846
35847         PR debug/77589
35848         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
35849         bitfield.
35850         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
35851         (output_loc_operands): Handle DW_OP_call_ref and
35852         DW_OP_GNU_variable_value.
35853         (struct variable_value_struct): New type.
35854         (struct variable_value_hasher): Likewise.
35855         (variable_value_hash): New variable.
35856         (string_types): Remove.
35857         (copy_loc_descr): New function.
35858         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
35859         (prepend_loc_descr_to_each): New function.
35860         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
35861         instead of add_loc_descr_to_each if the first argument is single
35862         location list and the second has multiple.
35863         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
35864         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
35865         when looking for variable value which doesn't have other location info.
35866         (loc_list_from_tree): Formatting fix.
35867         (gen_array_type_die): Simplify DW_AT_string_length handling.
35868         (adjust_string_types): Remove.
35869         (gen_subprogram_die): Don't call adjust_string_types nor test/set
35870         string_types.  Call resolve_variable_values.
35871         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
35872         (resolve_addr_in_expr): Likewise.  Add A argument.
35873         (copy_deref_exprloc): Remove deref argument.  Adjust for the
35874         original expression being DW_OP_GNU_variable_value with optionally
35875         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
35876         optionally after it.
35877         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
35878         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
35879         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
35880         (variable_value_hasher::hash, variable_value_hasher::equal): New
35881         methods.
35882         (resolve_variable_value_in_expr, resolve_variable_value,
35883         resolve_variable_values, note_variable_value_in_expr,
35884         note_variable_value): New functions.
35885         (dwarf2out_early_finish): Call note_variable_value on all toplevel
35886         DIEs.
35887
35888 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
35889
35890         PR c/79677
35891         * opts.h (handle_generated_option): Add GENERATED_P argument.
35892         * opts-common.c (handle_option): Adjust function comment.
35893         (handle_generated_option): Add GENERATED_P argument, pass it to
35894         handle_option.
35895         (control_warning_option): Pass false to handle_generated_option
35896         GENERATED_P.
35897         * opts.c (maybe_default_option): Pass true to handle_generated_option
35898         GENERATED_P.
35899         * optc-gen.awk: Likewise.
35900
35901 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35902
35903         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
35904         a REG, look at the REG it is a SUBREG of.
35905         (splitter for cmpeqsi_t): Ditto.
35906
35907 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35908
35909         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
35910         the special USEs with the pattern of the insn, not the insn itself.
35911
35912 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
35913
35914         PR target/79473
35915         * doc/invoke.texi: Document -mload-store-pairs.
35916
35917 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35918             Sandra Loosemore  <sandra@codesourcery.com>
35919
35920         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
35921         argument isn't a CONST_INT.
35922         (nios2_alternate_compare_const): Assert op is a CONST_INT.
35923         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
35924         (nios2_validate_compare): Bypass alternate compare logic if *op2
35925         is not a CONST_INT.
35926         (ldstwm_operation_p): Return false if first_base is not a REG or
35927         if first_offset is not a CONST_INT.
35928
35929 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35930
35931         * config/cris/cris.md: Use correct operand in a define_peephole2.
35932
35933 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35934
35935         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
35936
35937 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
35938
35939         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
35940         this_insn if it is an INSN or JUMP_INSN.
35941         (force_offsettable): Look at base, not at addr.
35942         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
35943         on things that aren't necessarily CONST_INTs.
35944
35945 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
35946
35947         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
35948         -mfpmath=sse is the default also for x86-32 targets with SSE2
35949         instruction set when @option{-ffast-math} is enabled
35950
35951 2017-02-24  Jeff Law  <law@redhat.com>
35952
35953         PR rtl-optimizatoin/79286
35954         * ira.c (update_equiv_regs): Drop may_trap_p exception to
35955         dominance test.
35956
35957 2017-02-24  Richard Biener  <rguenther@suse.de>
35958
35959         PR tree-optimization/79389
35960         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
35961         debug insns.
35962
35963 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
35964
35965         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
35966         function comment to reflect reality.
35967         (loop_exits_before_overflow): Fix typo in function description.
35968
35969 2017-02-24  Richard Biener  <rguenther@suse.de>
35970
35971         PR tree-optimization/79389
35972         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
35973         properly that a threading opportunity exists.  Detect conditional
35974         copy/constant propagation opportunities.
35975
35976 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
35977
35978         * config/visium/visium.md (type): Add trap.
35979         (b): New mode attribute.
35980         (*btst): Rename into...
35981         (*btst<mode>): ...this and adjust.
35982         (*cbranchsi4_btst_insn): Rename into...
35983         (*cbranch<mode>4_btst_insn): ...this and adjust.
35984         (trap): New define_insn.
35985
35986 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
35987
35988         PR tree-optimization/79389
35989         * ifcvt.c (struct noce_if_info): Add rev_cond field.
35990         (noce_reversed_cond_code): New function.
35991         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
35992         reversed_comparison_code.  Formatting fix.
35993         (noce_try_store_flag): Test rev_cond != NULL in addition to
35994         reversed_comparison_code.
35995         (noce_try_store_flag_constants): Likewise.
35996         (noce_try_store_flag_mask): Likewise.
35997         (noce_try_addcc): Use rev_cond if non-NULL instead of
35998         reversed_comparison_code.
35999         (noce_try_cmove_arith): Likewise.  Formatting fixes.
36000         (noce_try_minmax, noce_try_abs): Clear rev_cond.
36001         (noce_find_if_block): Initialize rev_cond.
36002         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
36003         instead of false as last argument never attempt to reverse it
36004         afterwards.
36005
36006 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
36007
36008         PR tree-optimization/79663
36009         * tree-predcom.c (combine_chains): Process refs in reverse order
36010         only for ZERO length chains, and add explaining comment.
36011
36012 2017-02-23  Jeff Law  <law@redhat.com>
36013
36014         PR tree-optimization/79578
36015         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
36016         in call to operand_equal_p.
36017
36018 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
36019
36020         PR target/71017
36021         * config/i386/cpuid.h: Fix another undefined behavior.
36022
36023 2017-02-23  Richard Biener  <rguenther@suse.de>
36024
36025         PR tree-optimization/79683
36026         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
36027         vector types for data-refs.
36028
36029 2017-02-23  Martin Liska  <mliska@suse.cz>
36030
36031         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
36032
36033 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
36034
36035         PR middle-end/79665
36036         * internal-fn.c (get_range_pos_neg): Moved to ...
36037         * tree.c (get_range_pos_neg): ... here.  No longer static.
36038         * tree.h (get_range_pos_neg): New prototype.
36039         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
36040         are known to be in between 0 and signed maximum inclusive, try to
36041         expand both unsigned and signed divmod and use the cheaper one from
36042         those.
36043
36044 2017-02-22  Jeff Law  <law@redhat.com>
36045
36046         PR tree-optimization/79578
36047         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
36048         to compare base operands.
36049
36050 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
36051
36052         PR target/79211
36053         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
36054         gpc_reg_operand instead of fpr_reg_operand.
36055
36056 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
36057
36058         * config/mips/mips.c (mips_return_in_memory): Force FP
36059         vector types to be returned in memory for o32 ABI.
36060
36061 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
36062
36063         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
36064         instead of DW_TAG_member for static data member declarations and don't
36065         set no_linkage_name for static inline data members.
36066         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
36067         to DW_TAG_member.
36068
36069 2017-02-22  Martin Liska  <mliska@suse.cz>
36070
36071         * doc/invoke.texi: Replace inequality signs with square brackets
36072         for -Wnormalized.
36073
36074 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
36075
36076         PR target/78660
36077         * lra-constraints.c (simplify_operand_subreg): Handle
36078         WORD_REGISTER_OPERATIONS targets.
36079
36080 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
36081
36082         PR target/70465
36083         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
36084         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
36085         elimination by swapping fld*.
36086
36087 2017-02-22  Richard Biener  <rguenther@suse.de>
36088
36089         PR tree-optimization/79673
36090         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
36091         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
36092         irrelevant address-space qualifiers and avoiding a
36093         ADDR_SPACE_CONVERT_EXPR from fold_convert.
36094
36095 2017-02-22  Richard Biener  <rguenther@suse.de>
36096
36097         PR tree-optimization/79666
36098         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
36099         to not symbolically negate if that may introduce undefined
36100         overflow.
36101
36102 2017-02-22  Martin Liska  <mliska@suse.cz>
36103
36104         PR lto/79587
36105         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
36106         * data-streamer-out.c (streamer_write_gcov_count_stream):
36107         Likewise.
36108         * value-prof.c (stream_out_histogram_value): Make assert more
36109         precise based on type of counter.
36110
36111 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
36112
36113         PR target/79593
36114         * config/i386/i386.md (standard_x87sse_constant_load splitter):
36115         Use nonimmediate_operand instead of memory_operand for operand 1.
36116         (float-extend standard_x87sse_constant_load splitter): Ditto.
36117
36118 2017-02-21  Jeff Law  <law@redhat.com>
36119
36120         PR tree-optimization/79621
36121         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
36122         blocks with edges to themselves.
36123
36124 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
36125
36126         PR target/79633
36127         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
36128         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
36129         Use gimple_call_builtin_p.
36130
36131         PR target/79570
36132         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
36133         on temporarily removed DEBUG_INSNs.
36134
36135         PR tree-optimization/79649
36136         * tree-loop-distribution.c (classify_partition): Give up on
36137         non-generic address space loads/stores.
36138
36139 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
36140
36141         * doc/loop.texi (Loop manipulation): Remove nonexistent
36142         tree_ssa_loop_version from the documentation.
36143         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
36144
36145 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
36146
36147         PR target/79494
36148         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
36149         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
36150         * config/rs6000/rs6000.c: Include except.h.
36151         (rs6000_expand_split_stack_prologue): Call
36152         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
36153
36154 2017-02-21  Martin Jambor  <mjambor@suse.cz>
36155
36156         PR lto/79579
36157         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
36158         have been analyzed.
36159
36160 2017-02-21  Martin Jambor  <mjambor@suse.cz>
36161
36162         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
36163         for backward compatibility only.
36164         * doc/invoke.texi (Option Summary): Remove all references to
36165         -fipa-cp-alignment.
36166
36167 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
36168
36169         PR target/78660
36170         Revert:
36171         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36172
36173         * lra-constraints.c (curr_insn_transform): Handle
36174         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
36175
36176 2017-02-21  Martin Liska  <mliska@suse.cz>
36177
36178         * config/i386/i386.opt: Replace -masm-dialect with -masm.
36179
36180 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
36181
36182         PR translation/79638
36183         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
36184
36185 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
36186
36187         PR ada/67205
36188         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
36189         (arm_function_ok_for_sibcall): Return false for an indirect call by
36190         descriptor if all the argument registers are used.
36191         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
36192         alignment of the function.
36193
36194 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
36195
36196         PR tree-optimization/61441
36197         * simplify-rtx.c (simplify_const_unary_operation): For
36198         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
36199         the sNaN unmodified.
36200
36201 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36202
36203         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
36204         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
36205         instead of SYSTEM_HEADER_DIR.
36206
36207 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
36208             Martin LiÅ¡ka  <mliska@suse.cz>
36209
36210         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
36211         Fix typos and grammar, use active voice, and clarify.
36212
36213 2017-02-20  Marek Polacek  <polacek@redhat.com>
36214
36215         PR middle-end/79537
36216         * gimplify.c (gimplify_expr): Handle unused *&&L;.
36217
36218         PR sanitizer/79558
36219         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
36220
36221 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
36222
36223         PR target/79568
36224         * config/i386/i386.c (ix86_expand_builtin): Handle
36225         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
36226         ix86_builtins_isa[fcode].isa as a requirement of those
36227         flags and any other flag in the bitmask.
36228         (ix86_init_mmx_sse_builtins): Use 0 instead of
36229         ~OPTION_MASK_ISA_64BIT as mask.
36230         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
36231         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
36232         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
36233         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
36234
36235 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36236
36237         PR target/78012
36238         * lra-constraints.c (split_reg): Check requested split mode
36239         is supported by the register.
36240
36241 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36242
36243         * lra-constraints.c (simplify_operand_subreg): Remove early
36244         return false.
36245
36246 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36247
36248         PR target/78660
36249         * lra-constraints.c (curr_insn_transform): Tighten condition
36250         for converting SUBREG reloads from OP_OUT to OP_INOUT.
36251
36252 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
36253
36254         PR target/78660
36255         * lra-constraints.c (curr_insn_transform): Handle
36256         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
36257
36258 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
36259
36260         Revert:
36261         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
36262
36263         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
36264
36265 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
36266
36267         PR c++/69523
36268         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
36269         description.
36270
36271 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
36272
36273         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
36274         for FMA_EXPR.
36275
36276 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
36277
36278         * final.c (last_columnnum, override_columnnum): New variables.
36279         (final_start_function): Set last_columnnum, pass it to begin_prologue
36280         hook and pass 0 to dwarf2out_begin_prologue.
36281         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
36282         to source_line debug hook.
36283         (notice_source_line): Compute last_columnnum and for debug_column_info
36284         return true on column changes.
36285         * debug.h (struct gcc_debug_hooks): Add column argument to
36286         source_line and begin_prologue hooks.
36287         (debug_nothing_int_charstar_int_bool): Remove prototype.
36288         (debug_nothing_int_int_charstar,
36289         debug_nothing_int_int_charstar_int_bool): New prototypes.
36290         (dwarf2out_begin_prologue): Add column argument.
36291         * debug.c (do_nothing_debug_hooks): Adjust source_line and
36292         begin_prologue hooks.
36293         (debug_nothing_int_charstar_int_bool): Remove.
36294         (debug_nothing_int_int_charstar,
36295         debug_nothing_int_int_charstar_int_bool): New functions.
36296         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
36297         through to dwarf2out_source_line.
36298         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
36299         (dwarf2out_source_line): Add column argument, emit it if requested.
36300         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
36301         arguments.
36302         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
36303         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
36304         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
36305         through to dwarf2out_begin_prologue.
36306         (vmsdbgout_source_line): Add column argument, pass it through to
36307         dwarf2out_source_line.
36308         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
36309         dbxout_source_line caller.
36310         (dbxout_source_line): Add column argument.
36311
36312         * common.opt (gno-column-info, gcolumn-info): New options.
36313         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
36314         (check_die): Also test for multiple DW_AT_decl_column attributes.
36315         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
36316         DW_AT_decl_column if requested.
36317         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
36318         if requested.
36319         (gen_variable_die): Likewise.
36320         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
36321         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
36322
36323         PR target/79569
36324         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
36325         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
36326         (ix86_handle_option): Handle OPT_m3dnowa.
36327         * doc/invoke.texi (-m3dnowa): Document.
36328         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
36329         -m3dnowa instead of -m3dnow -march=athlon.
36330
36331         PR target/79559
36332         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
36333         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
36334
36335 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36336
36337         PR target/79261
36338         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
36339         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
36340         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
36341         generator for vsx_xxpermdi_<mode>_be.
36342         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
36343         force big-endian semantics.
36344         (vsx_xxpermdi_<mode>_be): New define_expand with same
36345         implementation as previous version of vsx_xxpermdi_<mode>.
36346
36347 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
36348
36349         PR tree-optimization/79327
36350         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
36351         variable, its initialization and use.
36352
36353 2017-02-17  Julia Koval  <julia.koval@intel.com>
36354
36355         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
36356         (OPTION_MASK_ISA_PKU_UNSET): New.
36357         (ix86_handle_option): Handle -mrdpid.
36358         * config/i386/cpuid.h (bit_RDPID): New.
36359         * config/i386/driver-i386.c (host_detect_local_cpu):
36360         Detect RDPID feature.
36361         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
36362         * config/i386/i386-c.c (ix86_target_macros_internal):
36363         Handle RDPID flag.
36364         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
36365         (ix86_valid_target_attribute_inner_p): Add "rdpid".
36366         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
36367         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
36368         * config/i386/i386.md (define_insn "rdpid"): New.
36369         * config/i386/i386.opt Add -mrdpid.
36370         * config/i386/immintrin.h (_rdpid_u32): New.
36371
36372 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
36373
36374         PR rtl-optimization/79541
36375         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
36376         instead of transforming it into USE.
36377
36378 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
36379
36380         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
36381         If HONOR_SNANS (SFmode) force the input to a register.
36382         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
36383         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
36384         an frsp or similar insn.
36385
36386 2017-02-17  Martin Liska  <mliska@suse.cz>
36387
36388         PR rtl-optimization/79577
36389         * params.def (selsched-max-sched-times): Increase minimum to 1.
36390
36391 2017-02-17  Martin Liska  <mliska@suse.cz>
36392
36393         PR rtl-optimization/79574
36394         * gcse.c (want_to_gcse_p): Prevent integer overflow.
36395
36396 2017-02-17  Martin Liska  <mliska@suse.cz>
36397
36398         PR tree-optimization/79529
36399         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
36400         ssa_defined_default_def_p to handle cases which are implicitly
36401         defined.
36402         * tree-ssa.c (ssa_defined_default_def_p): New function.
36403         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
36404         which are implicitly defined.
36405         * tree-ssa.h (ssa_defined_default_def_p): Declare.
36406
36407 2017-02-17  Richard Biener  <rguenther@suse.de>
36408
36409         PR middle-end/79576
36410         * params.def (max-ssa-name-query-depth): Limit to 10.
36411
36412 2017-02-17  Richard Biener  <rguenther@suse.de>
36413
36414         PR tree-optimization/79552
36415         * tree-ssa-structalias.c (visit_loadstore): Properly verify
36416         default defs.
36417
36418 2017-02-17  Richard Biener  <rguenther@suse.de>
36419
36420         PR bootstrap/79567
36421         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
36422
36423 2017-02-17  Marek Polacek  <polacek@redhat.com>
36424
36425         PR middle-end/79536
36426         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
36427         (fold_negate_expr): New wrapper.
36428
36429 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
36430
36431         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
36432         Correct terminology and de-emphasize pre-standard behavior.
36433
36434 2017-02-16  Alan Modra  <amodra@gmail.com>
36435
36436         PR rtl-optimization/79286
36437         * ira.c (def_dominates_uses): New function.
36438         (update_equiv_regs): Don't create an equivalence for insns that
36439         may trap where the register def does not dominate the use.
36440
36441 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
36442
36443         PR rtl-optimization/78127
36444         * lra.c (lra): Call lra_eliminate before finish the loop after
36445         lra_constraint.
36446
36447 2017-02-16  Richard Biener  <rguenther@suse.de>
36448
36449         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
36450         isl/isl_val.h.
36451         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
36452         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
36453         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
36454         (isl_val_int_from_wi): New function.
36455         (extract_affine_gmp): Rename to ...
36456         (extract_affine_wi): ... this, take a widest_int.
36457         (extract_affine_int): Just wrap extract_affine_wi.
36458         (add_param_constraints): Use isl_val_int_from_wi.
36459         (add_loop_constraints): Likewise, and extract_affine_wi.
36460
36461 2017-02-15  Jeff Law  <law@redhat.com>
36462
36463         PR middle-end/79521
36464         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
36465         ira_init_register_move_cost_if_necessary.
36466
36467 2017-02-15  Martin Sebor  <msebor@redhat.com>
36468
36469         PR middle-end/32003
36470         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
36471         removed in a prior commit.
36472
36473 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
36474
36475         PR tree-optimization/79347
36476         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
36477         counters during peeling.
36478
36479 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
36480
36481         * Makefile.in (site.exp): Remove "set ISLVER".
36482
36483 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
36484
36485         PR target/79487
36486         * real.c (real_from_integer): Call real_convert even for decimal.
36487
36488 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
36489
36490         PR target/79421
36491         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
36492
36493 2017-02-14  Andrew Pinski  <apinski@cavium.com>
36494
36495         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
36496         cores and change the partno/implementer to be correct.
36497         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
36498         the 'B" as the implementer.
36499         * config/aarch64/aarch64-tune.md: Regenerate.
36500
36501 2017-02-14  Carl Love  <cel@us.ibm.com>
36502
36503         * config/rs6000/rs6000.c: Add case statement entry to make the
36504         xvcvuxdsp built-in argument unsigned.
36505         * config/rs6000/vsx.md: Fix the source and return operand types so they
36506         match the instruction definitions from the ISA document.  Fix typo
36507         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
36508         statement.
36509
36510 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
36511
36512         PR target/79282
36513         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
36514         member early_clobber_alts.
36515         * lra-lives.c (reg_early_clobber_p): New.
36516         (process_bb_lives): Use it.
36517         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
36518         (debug_operand_data): Initialize early_clobber_alts.
36519         (setup_operand_alternative): Set up early_clobber_alts.
36520         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
36521         alternatives to new_insn_reg.
36522         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
36523         it.
36524         (lra_update_insn_regno_info): Pass the new arg.
36525
36526 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
36527
36528         PR middle-end/79505
36529         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
36530         (new_oacc_loop_raw): Don't clear already cleared fields.
36531
36532         PR target/79481
36533         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
36534         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
36535         _mm512_prefetch_i64gather_ps): New inline functions and macros.
36536
36537 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
36538
36539         PR target/79495
36540         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
36541
36542 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
36543
36544         PR target/79498
36545         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
36546         the extra instruction to the right place to store 128-bit constant
36547         when needed.
36548
36549 2017-02-14  Martin Sebor  <msebor@redhat.com>
36550
36551         PR middle-end/79448
36552         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
36553           warning for strings of unknown length.
36554
36555 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
36556
36557         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
36558
36559 2017-02-14  Jeff Law  <law@redhat.com>
36560
36561         PR target/79404
36562         * ira-costs.c (scan_one_insn): Initialize register move costs
36563         for pseudos seen in USE/CLOBBER insns.
36564
36565         PR tree-optimization/79095
36566         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
36567         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
36568         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
36569         if the operands are known to be not equal, then the resulting range
36570         is ~[0,0].
36571         (intersect_ranges): If the new range is ~[0,0] and the old range is
36572         wide, then prefer ~[0,0].
36573         * tree-vrp.c (overflow_comparison_p_1): New function.
36574         (overflow_comparison_p): New function.
36575         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
36576         if NAME is used in an overflow test.
36577         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
36578         overflow check that can be expressed as an equality test, then adjust
36579         ops to be that equality test.
36580
36581 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
36582
36583         * config/s390/s390-builtin-types.def: Remove flags argument.
36584         * config/s390/s390.c (s390_init_builtins): Likewise.
36585
36586 2017-02-14  Martin Liska  <mliska@suse.cz>
36587
36588         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
36589         vector.  Fix trailing white spaces.
36590
36591 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
36592
36593         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
36594         HFmode.
36595
36596 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36597
36598         PR rtl-optimization/68664
36599         * config/arm/arm.c (arm_sched_can_speculate_insn):
36600         New function.  Declare prototype.
36601         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
36602
36603 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36604
36605         PR rtl-optimization/68664
36606         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
36607         New function.
36608         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
36609
36610 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
36611
36612         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
36613         max skip bytes for function, loop and jump.
36614
36615 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
36616
36617         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
36618         ABS_EXPR for gimple dump.
36619
36620 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
36621
36622         PR target/79462
36623         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
36624
36625         PR tree-optimization/79408
36626         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
36627         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
36628         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
36629         also if rhs1 is INTEGER_CST.
36630
36631 2017-02-14  Richard Biener  <rguenther@suse.de>
36632
36633         PR middle-end/79432
36634         * tree-into-ssa.c (insert_phi_nodes): When the function can
36635         have abnormal edges rewrite SSA names with broken use-def
36636         dominance out of SSA and register them for PHI insertion.
36637
36638 2017-02-13  Martin Sebor  <msebor@redhat.com>
36639
36640         PR middle-end/79496
36641         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
36642         clearing info.nowrite flag when snprintf size argument is a range.
36643
36644 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
36645
36646         * cprop.c (cprop_jump): Add missing space in string literal.
36647         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
36648         (get_constraint_for_component_ref): Likewise.
36649         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
36650         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
36651         * lra-constraints.c (process_alt_operands): Likewise.
36652         * ipa-inline.c (inline_small_functions): Likewise.
36653         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
36654         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
36655         * trans-mem.c (diagnose_tm_1_op): Likewise.
36656         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
36657         (grid_parallel_clauses_gridifiable): Likewise.
36658
36659         * config/nvptx/mkoffload.c (process): Add space in between
36660         , and %d.
36661
36662         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
36663         "MOD4_SSE_REGS" and "ALL_REGS".
36664
36665         * spellcheck.c (test_data): Add , in between "foo" and "food".
36666
36667 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
36668
36669         PR target/79449
36670         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
36671         boundary crossing check and subsequent code generation agree.
36672
36673 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36674
36675         * config/aarch64/aarch64.c (has_memory_op): Delete.
36676         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
36677         has_memory_op.
36678
36679 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
36680
36681         PR rtl-optimization/79388
36682         PR rtl-optimization/79450
36683         * combine.c (distribute_notes): When removing TEM_INSN for which
36684         corresponding dest has last value recorded, invalidate that last
36685         value.
36686
36687 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36688
36689         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
36690         of explicit '@'.  Add missing assembly comment marker on branch costs
36691         printout.
36692
36693 2017-02-13  Nathan Sidwell  <nathan@acm.org>
36694
36695         * gengtype-lex.l (<in_struct>): Add '/'.
36696
36697 2017-02-13  Martin Liska  <mliska@suse.cz>
36698
36699         PR c/79471
36700         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
36701
36702 2017-02-13  Richard Biener  <rguenther@suse.de>
36703
36704         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
36705         Remove.
36706         * configure: Re-generate.
36707         * config.in: Likewise.
36708         * graphite-dependences.c: Simplify as if
36709         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
36710         * graphite-isl-ast-to-gimple.c: Likewise.
36711         * graphite-optimize-isl.c: Likewise.
36712         * graphite-poly.c: Likewise.
36713         * graphite-sese-to-poly.c: Likewise.
36714         * graphite.h: Likewise.
36715         * toplev.c: Include isl/version.h and use isl_version () for
36716         printing the ISL version.
36717         * doc/install.texi: Update ISL requirement.
36718
36719 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
36720
36721         * doc/standards.texi (Standards): Update reference to
36722         Objective-C 2.0.
36723
36724 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
36725
36726         * doc/extend.texi (Named Address Spaces): sourceware.org now
36727         defaults to https.
36728         * doc/install.texi (Binaries): Ditto.
36729         (Specific): Ditto.
36730
36731 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
36732
36733         * doc/cpp.texi: Replace "stringify"/"stringification" with C
36734         standard terminology "stringize"/"stringizing" throughout.
36735         * doc/cppinternals.texi: Likewise.
36736
36737 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
36738
36739         * doc/extend.texi: Fix some spelling mistakes and typos.
36740         * doc/invoke.texi: Likewise.
36741
36742 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
36743
36744         PR ipa/79224
36745         * params.def (inline-min-speedup) Change from 10 to 8.
36746
36747 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
36748
36749         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
36750         4.5.
36751
36752 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
36753
36754         PR ipa/79224
36755         * ipa-inline-analysis.c (get_minimal_bb): New function.
36756         (record_modified): Use it.
36757         (remap_edge_change_prob): Handle also ancestor functions.
36758
36759 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
36760
36761         * doc/contrib.texi (Contributors): Remove broken link into
36762         the Mauve CVS repository.
36763
36764 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
36765
36766         PR middle-end/79454
36767         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
36768         result computation whenever lhs doesn't have vector mode, not
36769         just when it has BLKmode.
36770
36771 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
36772
36773         * doc/makefile.texi (profiledbootstrap): Refer to the
36774         installation instructions only in textual form.
36775
36776 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
36777
36778         PR target/79295
36779         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
36780
36781 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
36782
36783         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
36784         (Specific): Update mingw-w64 reference.
36785         (Binaries): Ditto.
36786         (Specific): Remove broken link to Renesas RX processor.
36787
36788 2017-02-10  Richard Biener  <rguenther@suse.de>
36789
36790         * toplev.c (process_options): Do not mention obsolete graphite
36791         options when printing sorry message about missing graphite support.
36792         Mention -floop-nest-optimize.
36793
36794 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
36795
36796         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
36797         (vtst_p16): Likewise.
36798         (vtstq_p8): Likewise.
36799         (vtstq_p16): Likewise.
36800         (vtst_p64): New.
36801         (vtstq_p64): Likewise.
36802         * config/arm/arm_neon.h (vgetq_lane_p64): New.
36803         (vset_lane_p64): New.
36804         (vsetq_lane_p64): New.
36805
36806 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
36807
36808         PR tree-optimization/79411
36809         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
36810         stmt operands are SSA_NAMEs used in abnormal phis.
36811         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
36812         phis.
36813
36814 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
36815
36816         PR ipa/70795
36817         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
36818         flag if needed.
36819
36820 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
36821
36822         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
36823
36824 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
36825
36826         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
36827         to avoid warning.
36828
36829         PR c/79413
36830         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
36831         not arbitrary TREE_CONSTANT.
36832
36833         PR c/79431
36834         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
36835         "omp declare target link" attribute unless is_global_var.
36836         * omp-offload.c (find_link_var_op): Likewise.
36837
36838 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
36839             Chung-Lin Tang  <cltang@codesourcery.com>
36840
36841         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
36842         OMP_CLAUSE_TILE.
36843         (gimplify_adjust_omp_clauses): Don't delete TILE.
36844         (gimplify_omp_for): Deal with TILE.
36845         * internal-fn.c (expand_GOACC_TILE): New function.
36846         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
36847         (GOACC_TILE): New.
36848         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
36849         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
36850         element fields.
36851         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
36852         avoid DIV for outermost collapse var.
36853         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
36854         Remove out of date comments, fix whitespace.
36855         * omp-general.c (omp_extract_for_data): Deal with tiling.
36856         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
36857         adjust OLF_DIM_BASE value.
36858         (struct omp_for_data): Add tiling field.
36859         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
36860         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
36861         for auto loops.  Remove default auto determining, moved to
36862         oacc_loop_fixed_partitions.
36863         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
36864         stmts, add e_mask field.
36865         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
36866         (oacc_thread_numbers): Use oacc_dim_call.
36867         (oacc_xform_tile): New.
36868         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
36869         (finish_oacc_loop): Adjust for ifns vector.
36870         (oacc_loop_discover_walk): Append loop abstraction sites to list,
36871         add case for GOACC_TILE fns.
36872         (oacc_loop_xform_loop): Delete.
36873         (oacc_loop_process): Iterate over call list directly, and add
36874         handling for GOACC_TILE fns.
36875         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
36876         dump partitioning.
36877         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
36878         vector partitioning to outer loops.  Assign 2 partitions to loops
36879         when available. Add TILE handling.
36880         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
36881         (execite_oacc_device_lower): Process GOACC_TILE fns,
36882         ignore unknown specs.
36883         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
36884         * tree.c (omp_clause_num_ops): Adjust TILE ops.
36885         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
36886
36887 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
36888
36889         * configure.ac (ACX_BUGURL): Update.
36890         * configure: Regenerate.
36891
36892 2017-02-09  Richard Biener  <rguenther@suse.de>
36893
36894         PR tree-optimization/69823
36895         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
36896         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
36897
36898 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
36899
36900         * config/arc/arc-c.def: Add __NPS400__ definition.
36901         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
36902         (TARGET_NPS400): Define.
36903
36904 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
36905
36906         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
36907         file.
36908         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
36909         pointer, arch_info.
36910         (arc_cpu_types): Fill the arch_info field with a pointer into the
36911         arc_arch_types table.
36912         (arc_selected_cpu): Declare.
36913         * config/arc/arc.c (arc_selected_cpu): Make global.
36914         (arc_selected_arch): Delete.
36915         (arc_base_cpu): Delete.
36916         (arc_override_options): Remove references to deleted variables,
36917         update access to arch information.
36918         (ARC_OPT): Update access to arch information.
36919         (ARC_OPTX): Likewise.
36920         * config/arc/arc.h (arc_base_cpu): Remove declaration.
36921         (TARGET_ARC600): Update access to arch information.
36922         (TARGET_ARC601): Likewise.
36923         (TARGET_ARC700): Likewise.
36924         (TARGET_EM): Likewise.
36925         (TARGET_HS): Likewise.
36926         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
36927         information.
36928
36929 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
36930
36931         PR target/78604
36932         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
36933         condition/operands for integer GE/LE/GEU/LEU operations.
36934
36935 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
36936
36937         PR translation/79397
36938         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
36939         of AltiVec.
36940
36941 2017-02-08  Martin Jambor  <mjambor@suse.cz>
36942
36943         PR ipa/79375
36944         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
36945         whether allocation happened.
36946         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
36947         nothing was allocated.
36948
36949 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
36950
36951         PR tree-optimization/79408
36952         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
36953         constant, but SSA_NAME with a known integer range, use the minimum
36954         of that range instead of op1 to determine if modulo can be replaced
36955         with its first operand.
36956
36957 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36958
36959         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
36960
36961 2017-02-08  Richard Biener  <rguenther@suse.de>
36962
36963         PR tree-optimization/71824
36964         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
36965         Check all loops contained in the merged region.
36966
36967 2017-02-07  Andrew Pinski  <apinski@cavium.com>
36968
36969         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
36970
36971 2017-02-07  Andrew Pinski  <apinski@cavium.com>
36972
36973         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
36974         (thunderxt88): Likewise.
36975         (thunderxt81): Disable LSE and change v8.1 to v8.
36976         (thunderxt83): Likewise.
36977
36978 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
36979             Richard Biener  <rguenther@suse.de>
36980
36981         PR middle-end/79399
36982         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
36983         type from int to size_t.
36984         * ira-costs.c (struct_costs_size): Change type from int to size_t.
36985
36986 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
36987
36988         PR rtl-optimization/79386
36989         * cprop.c (bypass_conditional_jumps): Initialize
36990         bypass_last_basic_block already before splitting bbs after
36991         unconditional traps...
36992         (bypass_conditional_jumps): ... rather than here.
36993
36994         PR target/79299
36995         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
36996         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
36997         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
36998         fix -masm=intel patterns.
36999
37000 2017-02-07  Richard Biener  <rguenther@suse.de>
37001
37002         PR tree-optimization/79256
37003         PR middle-end/79278
37004         * builtins.c (get_object_alignment_2): Use min_align_of_type
37005         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
37006         and ADJUST_FIELD_ALIGN.
37007
37008         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
37009         type parameter.
37010         * doc/tm.texi: Regenerate.
37011         * stor-layout.c (layout_decl): Adjust.
37012         (update_alignment_for_field): Likewise.
37013         (place_field): Likewise.
37014         (min_align_of_type): Likewise.
37015         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
37016         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
37017         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
37018         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
37019         * config/frv/frv.c (frv_adjust_field_align): Likewise.
37020         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
37021         * config/i386/i386.c (x86_field_alignment): Likewise.
37022         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
37023         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
37024         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
37025         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
37026         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
37027         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
37028          Likewise.
37029
37030         Revert
37031         2017-01-30  Richard Biener  <rguenther@suse.de>
37032
37033         PR tree-optimization/79256
37034         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
37035         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
37036         alignment on TYPE.
37037
37038 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
37039
37040         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
37041         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
37042         builtins to SImode and emit a zero-extend, if necessary.
37043
37044 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
37045
37046         * docs/invoke.texi (RISC-V Options): Alphabetize.
37047
37048 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
37049
37050         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
37051         options.
37052
37053 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
37054
37055         * config/riscv/riscv.c: New file.
37056         * common/config/riscv/riscv-common.c: Likewise.
37057         * config.gcc: Likewise.
37058         * config/riscv/constraints.md: Likewise.
37059         * config/riscv/elf.h: Likewise.
37060         * config/riscv/generic.md: Likewise.
37061         * config/riscv/linux.h: Likewise.
37062         * config/riscv/multilib-generator: Likewise.
37063         * config/riscv/peephole.md: Likewise.
37064         * config/riscv/pic.md: Likewise.
37065         * config/riscv/predicates.md: Likewise.
37066         * config/riscv/riscv-builtins.c: Likewise.
37067         * config/riscv/riscv-c.c: Likewise.
37068         * config/riscv/riscv-ftypes.def: Likewise.
37069         * config/riscv/riscv-modes.def: Likewise.
37070         * config/riscv/riscv-opts.h: Likewise.
37071         * config/riscv/riscv-protos.h: Likewise.
37072         * config/riscv/riscv.h: Likewise.
37073         * config/riscv/riscv.md: Likewise.
37074         * config/riscv/riscv.opt: Likewise.
37075         * config/riscv/sync.md: Likewise.
37076         * config/riscv/t-elf-multilib: Likewise.
37077         * config/riscv/t-linux: Likewise.
37078         * config/riscv/t-linux-multilib: Likewise.
37079         * config/riscv/t-riscv: Likewise.
37080         * configure.ac: Likewise.
37081         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
37082         Waterman as RISC-V maintainers.
37083         * doc/install.texi: Add RISC-V entries.
37084         * doc/invoke.texi: Add RISC-V options section.
37085         * doc/md.texi: Add RISC-V constraints section.
37086         * configure: Regenerated.
37087
37088 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
37089
37090         PR target/66144
37091         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
37092         false values to be constant vectors with all 0 or all 1 bits set.
37093         (vcondu<mode><mode>): Likewise.
37094         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
37095         predicate.
37096         (fpmask_comparison_operator): Update comment.
37097         (vecint_comparison_operator): New predicate.
37098         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
37099         vector conditionals when the true and false values are constant
37100         vectors with all 0 bits or all 1 bits set.
37101
37102 2017-02-06  Martin Sebor  <msebor@redhat.com>
37103
37104         PR  tree-optimization/79376
37105         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
37106
37107 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
37108
37109         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
37110         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
37111         to simplify split condition.
37112
37113 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
37114
37115         * omp-expand.c (oxpand_omp_atomic_fetch_op,
37116         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
37117         false.
37118
37119 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
37120
37121         PR rtl-optimization/68664
37122         * target.def (can_speculate_insn): New hook.
37123         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
37124         * doc/tm.texi: Regenerate.
37125         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
37126         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
37127         (rs6000_sched_can_speculate_insn): New function.
37128
37129 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
37130
37131         PR tree-optimization/79284
37132         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
37133         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
37134         vectorizable_mask_load_store, vectorizable_operation,
37135         vect_is_simple_cond, get_same_sized_vectype): Use it instead
37136         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
37137         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
37138         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
37139         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
37140         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
37141         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
37142         is_gimple_assign (stmt).  Replace another such test with
37143         is_gimple_assign (stmt).
37144
37145 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
37146
37147         PR target/78883
37148         * config/avr/avr.c (rtl-iter.h): Include it.
37149         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
37150         (avr_legitimate_combined_insn): ...and implementation.
37151
37152 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37153
37154         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
37155         * config/s390/s390.c (s390_const_operand_ok)
37156         (s390_canonicalize_comparison, s390_extract_part)
37157         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
37158         (s390_contiguous_bitmask_p, s390_rtx_costs)
37159         (legitimize_pic_address): Likewise.
37160         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
37161         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
37162         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
37163         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
37164         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
37165
37166 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
37167
37168         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
37169         REGNO($0) == REGNO($1).
37170
37171 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37172
37173         * config/s390/linux.h(SIZE_TYPE): Add comment.
37174
37175 2017-02-06  Julian Brown  <julian@codesourcery.com>
37176             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
37177             Virendra Pathak  <virendra.pathak@broadcom.com>
37178
37179         * config/aarch64/aarch64-cores.def: Change the scheduler
37180         to Thunderx2t99.
37181         * config/aarch64/aarch64.md: Include thunderx2t99.md.
37182         * config/aarch64/thunderx2t99.md: New file.
37183
37184 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
37185
37186         * doc/standards.texi (Go Language): Update link to language
37187         standard.
37188
37189 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
37190
37191         * tree-eh.c (lower_resx): Sanitize profile.
37192         (cleanup_empty_eh_move_lp): Likewise.
37193
37194 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
37195
37196         PR tree-ssa/79347
37197         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
37198         ELSE_PROB.
37199         * cfgloopmanip.h (loop_version): Update prototype.
37200         * modulo-sched.c (sms_schedule): Update call of loop_version.
37201         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
37202         * tree-parloops.c (gen_parallel_loop): Likewise.
37203         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
37204         * tree-ssa-loop-split.c (split_loop): Likewise.
37205         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
37206         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
37207
37208 2017-02-05  Martin Liska  <mliska@suse.cz>
37209
37210         PR bootstrap/78985
37211         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
37212         variable to NULL.
37213         (print_operand_address): Initialize a struct to zero.
37214
37215 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
37216
37217         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
37218         garbage collector only in textual form.
37219
37220 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
37221
37222         * doc/extend.texi (x86 specific memory model extensions for
37223         transactional memory): Simplify a phrase.
37224
37225 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
37226
37227         PR target/79353
37228         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
37229         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
37230         (atomic_storedi_1): Likewise.
37231
37232 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
37233
37234         PR tree-optimization/79338
37235         * tree-parloops.c (gather_scalar_reductions): Don't call
37236         vect_analyze_loop_form for loop->inner before destroying loop's
37237         loop_vinfo.
37238
37239 2017-02-03  Martin Sebor  <msebor@redhat.com>
37240
37241         PR tree-optimization/79327
37242         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
37243         when precision has resulted in leading zeros.
37244         (format_integer): Adjust the likely counter to assume an unknown
37245         argument that may be zero is non-zero.
37246
37247 2017-02-03  Jason Merrill  <jason@redhat.com>
37248
37249         PR c++/78689
37250         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
37251         avoid copying non-taken branch.
37252
37253 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
37254
37255         PR tree-optimization/79340
37256         * tree-vect-loop.c (vectorizable_reduction): Release
37257         vec_defs elements after safe_splicing them into other vectors.
37258         Formatting fixes.
37259
37260         PR tree-optimization/79327
37261         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
37262         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
37263         dirtype.
37264         (format_integer): Use wide_int_to_tree instead of build_int_cst
37265         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
37266         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
37267         of shortest and longest sequence.
37268
37269 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
37270
37271         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
37272         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
37273
37274 2017-02-03  Walter Lee  <walt@tilera.com>
37275
37276         PR target/78862
37277         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
37278         after initial stackframe link reg save.
37279         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
37280
37281 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
37282
37283         PR target/79354
37284         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
37285         wu for stxssp alternative.
37286
37287 2017-02-03  Martin Sebor  <msebor@redhat.com>
37288
37289         PR tree-optimization/79352
37290         * gimple-fold.c (get_range_strlen): Add argument.
37291         (get_range_strlen): Change return type to bool.
37292         (get_maxval_strlen): Pass in a dummy argument.
37293         * gimple-fold.h (get_range_strlen): Change return type to bool.
37294         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
37295         * tree.h (array_at_struct_end_p): Add argument.
37296         * tree.c (array_at_struct_end_p): Handle it.
37297
37298 2017-02-03  Martin Liska  <mliska@suse.cz>
37299
37300         PR lto/66295
37301         * multiple_target.c (create_dispatcher_calls): Redirect edge
37302         from a caller of a dispatcher.
37303         (expand_target_clones): Make the clones local.
37304         (ipa_target_clone): Do both target clones and resolvers.
37305         (ipa_dispatcher_calls): Remove the pass.
37306         (pass_dispatcher_calls::gate): Likewise.
37307         (make_pass_dispatcher_calls): Likewise.
37308         * passes.def (pass_target_clone): Put as very first IPA early
37309         pass.
37310
37311 2017-02-03  Martin Liska  <mliska@suse.cz>
37312
37313         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
37314         in case of a function with ifunc attribute.
37315
37316 2017-02-03  Martin Liska  <mliska@suse.cz>
37317
37318         * cgraph.c (cgraph_node::dump): Dump function version info.
37319         * symtab.c (symtab_node::dump_base): Add missing new line.
37320
37321 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
37322
37323         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
37324         (ifcombine_ifandif): Use it.
37325
37326 2017-02-03  Martin Liska  <mliska@suse.cz>
37327
37328         * doc/invoke.texi: Document default value for
37329         use-after-scope-direct-emission-threshold.
37330
37331 2017-02-03  Martin Liska  <mliska@suse.cz>
37332
37333         PR tree-optimization/79339
37334         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
37335         (format_floating): Likewise.
37336
37337 2017-02-03  Martin Liska  <mliska@suse.cz>
37338
37339         PR ipa/79337
37340         * ipa-prop.c (ipa_node_params_t::insert): Remove current
37341         implementation.
37342         (ipa_node_params_t::remove): Likewise.
37343         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
37344         initialization from removed ipa_node_params_t::insert.
37345         (ipa_node_params::~ipa_node_params): Move from removed
37346         ipa_node_params_t::release.
37347         * symbol-summary.h (symbol_summary::m_released): New member.
37348         Do not release a summary twice.  Do not allow to call finalizer
37349         for types of a summary that live in GGC memory.
37350
37351 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
37352
37353         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
37354         cmp_branch fusion.
37355
37356 2017-02-02  Martin Sebor  <msebor@redhat.com>
37357
37358         PR middle-end/79275
37359         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
37360         (format_string): Tighten up the range of output for non-constant
37361         strings and correct the expected range for wide non-constant strings.
37362
37363 2017-02-02  Martin Sebor  <msebor@redhat.com>
37364
37365         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
37366
37367         PR middle-end/32003
37368         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
37369         index.
37370         (-fdump-tree-@var): Add to index and document how to come up
37371         with pass-specific option and dump file names.
37372         (-fdump-passes): Clarify where to look for output.
37373
37374 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
37375
37376         PR middle-end/77445
37377         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
37378         statistics of the analyzed path; allow threading for speed when
37379         any of BBs along the path are optimized for speed.
37380
37381 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
37382
37383         PR middle-end/78468
37384         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
37385         settings of the virtual registers.
37386
37387         Revert again
37388         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37389
37390         * explow.c (get_dynamic_stack_size): Take known alignment of stack
37391         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
37392         needed.
37393
37394 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37395
37396         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
37397         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
37398
37399 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37400
37401         * config/s390/s390.md: Add missing comments with the expanded
37402         mnemonics.
37403         * config/s390/vector.md: Likewise.
37404         * config/s390/vx-builtins.md: Likewise.
37405
37406 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
37407
37408         PR target/79197
37409         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
37410         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
37411         conditions on a single line.
37412
37413 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37414
37415         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
37416         __S390_VX__ to __VX__.
37417
37418 2017-02-01  Andrew Pinski  <apinski@cavium.com>
37419
37420         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
37421         stmt_info to record_stmt_cost.
37422         (vect_get_known_peeling_cost): Pass stmt_info if known to
37423         record_stmt_cost.
37424         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
37425         cpu_vector_cost field into
37426         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
37427         field into vec_int_stmt_cost and vec_fp_stmt_cost.
37428         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
37429         splitting of scalar_stmt_cost and vec_stmt_cost.
37430         (thunderx_vector_cost): Likewise.
37431         (cortexa57_vector_cost): LIkewise.
37432         (exynosm1_vector_cost): Likewise.
37433         (xgene1_vector_cost): Likewise.
37434         (thunderx2t99_vector_cost): Improve after the splitting of the two
37435         fields.
37436         (aarch64_builtin_vectorization_cost): Update for the splitting of
37437         scalar_stmt_cost and vec_stmt_cost.
37438
37439 2017-02-01  Torvald Riegel  <triegel@redhat.com>
37440             Richard Henderson  <rth@redhat.com>
37441
37442         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
37443         conditional on existance of a fast atomic load.
37444         * optabs-query.c (can_atomic_load_p): New function.
37445         * optabs-query.h (can_atomic_load_p): Declare it.
37446         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
37447         no fast atomic load is available for the particular size of access.
37448         (expand_atomic_compare_and_swap): Likewise.
37449         (expand_atomic_load): Likewise.
37450         (expand_atomic_store): Likewise.
37451         (expand_atomic_fetch_op): Likewise.
37452         * testsuite/lib/target-supports.exp
37453         (check_effective_target_sync_int_128): Remove x86 because it provides
37454         no fast atomic load.
37455         (check_effective_target_sync_int_128_runtime): Likewise.
37456
37457 2017-02-01  Richard Biener  <rguenther@suse.de>
37458
37459         * graphite.c: Include tree-vectorizer.h for find_loop_location.
37460         (graphite_transform_loops): Provide opt-info for optimized nests.
37461         * tree-parloop.c (parallelize_loops): Provide opt-info for
37462         parallelized loops.
37463
37464 2017-02-01  Richard Biener  <rguenther@suse.de>
37465
37466         PR middle-end/79315
37467         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
37468         was not set before.
37469
37470 2017-02-01  Richard Biener  <rguenther@suse.de>
37471
37472         PR tree-optimization/71824
37473         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
37474         Verify the loops are valid in the merged SESE region.
37475         (scop_detection::can_represent_loop_1): Check analyzing the
37476         evolution of the number of iterations in the region succeeds.
37477
37478 2017-01-31  Ian Lance Taylor  <iant@golang.org>
37479
37480         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
37481         REG_ARGS_SIZE note to 32-bit push insns and call insn.
37482
37483 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
37484
37485         PR preprocessor/79210
37486         * input.c (get_substring_ranges_for_loc): Replace line_width
37487         assertion with error-handling.
37488
37489 2017-01-31  Richard Biener  <rguenther@suse.de>
37490
37491         PR tree-optimization/77318
37492         * graphite-sese-to-poly.c (extract_affine): Fix assert.
37493         (create_pw_aff_from_tree): Take loop parameter.
37494         (add_condition_to_pbb): Pass loop of the condition to
37495         create_pw_aff_from_tree.
37496
37497 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
37498
37499         * config/s390/s390.c (s390_asan_shadow_offset): New function.
37500         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
37501
37502 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
37503
37504         PR target/78597
37505         PR target/79038
37506         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
37507         no longer used.
37508         (convert_int_to_float128): Likewise.
37509         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
37510         (convert_int_to_float128): Likewise.
37511         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
37512         (UNSPEC_IEEE128_CONVERT): Likewise.
37513         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
37514         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
37515         Use local variables for IBM extended format.
37516         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
37517         (fix_trunc<mode>si2_fprs): Likewise.
37518         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
37519         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
37520         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
37521         to know that we can now have integers of all sizes in vector
37522         registers.
37523         (fix<uns>_<mode>di2_hw): Likewise.
37524         (float<uns>_<mode>si2_hw): Likewise.
37525         (fix_<mode>si2_hw): Likewise.
37526         (fixuns_<mode>si2_hw): Likewise.
37527         (float<uns>_<mode>di2_hw): Likewise.
37528         (float_<mode>di2_hw): Likewise.
37529         (float_<mode>si2_hw): Likewise.
37530         (floatuns_<mode>di2_hw): Likewise.
37531         (floatuns_<mode>si2_hw): Likewise.
37532         (xscvqp<su>wz_<mode>): Delete, no longer used.
37533         (xscvqp<su>dz_<mode>): Likewise.
37534         (xscv<su>dqp_<mode>): Likewise.
37535         (ieee128_mfvsrd_64bit): Likewise.
37536         (ieee128_mfvsrd_32bit): Likewise.
37537         (ieee128_mfvsrwz): Likewise.
37538         (ieee128_mtvsrw): Likewise.
37539         (ieee128_mtvsrd_64bit): Likewise.
37540         (ieee128_mtvsrd_32bit): Likewise.
37541
37542 2017-01-31  Martin Liska  <mliska@suse.cz>
37543
37544         PR ipa/79285
37545         * ipa-prop.c (ipa_free_all_node_params): Call release method
37546         instead of ~sumbol_summary to not to trigger double times
37547         dtor of hash_map.
37548
37549 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
37550
37551         PR tree-optimization/71691
37552         * bitmap.h (class auto_bitmap): New.
37553         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
37554         is_maybe_undefined instead of ssa_undefined_value_p.
37555
37556 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37557
37558         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
37559         __S390_ARCH_LEVEL__ to __ARCH__.
37560
37561 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
37562
37563         PR tree-optimization/79267
37564         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
37565         if should_remove_lhs_p is true.
37566
37567 2017-01-30  Alexandre Oliva  <aoliva@redhat.com>
37568
37569         PR debug/63238
37570         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
37571         (add_alignment_attribute): New.
37572         (base_type_die): Add alignment attribute.
37573         (subrange_type_die): Likewise.
37574         (modified_type_die): Likewise.
37575         (gen_array_type_die): Likewise.
37576         (gen_descr_array_type_die: Likewise.
37577         (gen_enumeration_type_die): Likewise.
37578         (gen_subprogram_die): Likewise.
37579         (gen_variable_die): Likewise.
37580         (gen_field_die): Likewise.
37581         (gen_ptr_to_mbr_type_die): Likewise.
37582         (gen_struct_or_union_type_die): Likewise.
37583         (gen_subroutine_type_die): Likewise.
37584         (gen_typedef_die): Likewise.
37585         (base_type_cmp): Compare alignment attribute.
37586
37587 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37588
37589         PR target/79170
37590         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
37591         (setb_unsigned) New pattern for setb with CCUNS.
37592         * config/rs6000/rs6000.c (expand_block_compare): Use a different
37593         subfc./subfe sequence to avoid overflow problems.  Generate a
37594         shorter sequence with cmpld/setb for power9.
37595         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
37596         for generating subfc. instruction.
37597         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
37598         now uses this instruction.
37599
37600 2017-01-30  Ian Lance Taylor  <iant@google.com>
37601
37602         PR debug/79289
37603         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
37604         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
37605
37606 2017-01-30  Martin Sebor  <msebor@redhat.com>
37607
37608         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
37609         Move constant to the right of a relational operator.
37610         (get_mpfr_format_length, format_character, format_string): Ditto.
37611         (should_warn_p, maybe_warn): Same.
37612
37613         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
37614
37615 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
37616
37617         PR lto/79061
37618         * asan.c (get_translation_unit_decl): Remove function.
37619         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
37620
37621 2017-01-30  Martin Liska  <mliska@suse.cz>
37622
37623         PR gcov-profile/79259
37624         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
37625         -fprofile-generate.
37626
37627 2017-01-30  Martin Liska  <mliska@suse.cz>
37628
37629         PR bootstrap/78985
37630         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
37631         Initialize variables with NULL value.
37632
37633 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
37634
37635         PR target/79260
37636         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
37637         tm_p_file.
37638         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
37639
37640 2017-01-30  Richard Biener  <rguenther@suse.de>
37641
37642         PR tree-optimization/79276
37643         * tree-vrp.c (process_assert_insertions): Properly adjust common
37644         when removing a duplicate.
37645
37646 2017-01-30  Richard Biener  <rguenther@suse.de>
37647
37648         PR tree-optimization/79256
37649         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
37650         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
37651         alignment on TYPE.
37652         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
37653
37654 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37655
37656         PR target/79240
37657         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
37658         ("*r<noxa>sbg_<mode>_sll_bitmask")
37659         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
37660         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
37661         Use contiguous_bitmask_nowrap_operand.
37662
37663 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
37664
37665         PR target/79268
37666         * config/rs6000/altivec.h (vec_xl): Revise #define.
37667         (vec_xst): Likewise.
37668
37669 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
37670
37671         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
37672
37673 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
37674
37675         PR rtl-optimization/79194
37676         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
37677         traps before call to bypass_conditional_jumps.
37678
37679 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
37680
37681         PR tree-optimization/71374
37682         * lra-constraints.c (check_conflict_input_operands): New.
37683         (match_reload): Use it.
37684
37685 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
37686
37687         PR target/79131
37688         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
37689         account to calculate conflict_set.
37690
37691 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
37692
37693         PR rtl-optimization/78559
37694         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
37695         other_insn in combine.
37696
37697 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
37698
37699         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
37700         uint16_type_node for BT_UINT16.
37701
37702 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
37703
37704         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
37705         "RTL Tests" to menu.
37706         (GIMPLE Tests): New node.
37707         (RTL Tests): New node.
37708
37709 2017-01-27  Richard Biener  <rguenther@suse.de>
37710
37711         PR tree-optimization/79245
37712         * tree-loop-distribution.c (distribute_loop): Apply cost
37713         modeling also to detected patterns.
37714
37715 2017-01-27  Richard Biener  <rguenther@suse.de>
37716
37717         PR tree-optimization/71433
37718         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
37719         (compare_assert_loc): New function.
37720         (process_assert_insertions): Sort and optimize assert locations
37721         to remove duplicates and push down identical assertions on
37722         edges to their destination block.
37723
37724 2017-01-27  Richard Biener  <rguenther@suse.de>
37725
37726         PR tree-optimization/79244
37727         * tree-vrp.c (remove_range_assertions): Forcefully propagate
37728         out SSA names even if abnormal.
37729
37730 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
37731
37732         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
37733         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
37734         instead of MPFR_RNDN.
37735
37736 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
37737
37738         PR target/79239
37739         * arm.c (arm_option_override): Don't call build_target_option_node
37740         until after doing all option overrides.
37741         (arm_valid_target_attribute_tree): Likewise.
37742
37743 2017-01-27  Martin Liska  <mliska@suse.cz>
37744
37745         * doc/invoke.texi (-fprofile-arcs): Document profiling support
37746         for {cd}tors and C++ {cd}tors.
37747
37748 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37749
37750         * config/s390/s390.md ("*setmem_long_and")
37751         ("*setmem_long_and_31z"): Use zero_extend instead of and.
37752
37753 2017-01-26  Martin Sebor  <msebor@redhat.com>
37754
37755         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
37756         of precision.
37757
37758 2017-01-26  Martin Sebor  <msebor@redhat.com>
37759
37760         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
37761         HAVE_DFmode before using XFmode or DFmode.
37762         (parse_directive): Avoid using the z length modifier to avoid
37763         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
37764
37765         PR middle-end/78703
37766         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
37767         to accept adjustment as an array.
37768         (get_int_range): New function.
37769         (struct directive): Make width and prec arrays.
37770         (directive::set_width, directive::set_precision): Call get_int_range.
37771         (format_integer, format_floating): Handle width and precision ranges.
37772         (format_string, parse_directive): Same.
37773
37774 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
37775
37776         PR debug/79129
37777         * dwarf2out.c (generate_skeleton_bottom_up): For children with
37778         comdat_type_p set, just clone them, but keep the children in the
37779         original DIE.
37780
37781         PR debug/78835
37782         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
37783         which have direct callers with -fvar-tracking-assignments enabled
37784         in the current TU.
37785         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
37786         inside of type units.
37787
37788 2017-01-26  Martin Sebor  <msebor@redhat.com>
37789
37790         PR middle-end/78703
37791         * gimple-ssa-sprintf.c (struct result_range): Add likely and
37792         unlikely counters.
37793         (struct format_result): Replace number_chars, number_chars_min,
37794         and number_chars_max with a single member of struct result_range.
37795         Remove bounded.
37796         (format_result::operator+=): Adjust.
37797         (struct fmtresult): Remove bounded.  Handle likely and unlikely
37798         counters.
37799         (fmtresult::adjust_for_width_or_precision): New function.
37800         (fmtresult:type_max_digits): New function.
37801         (bytes_remaining): Handle likely and unlikely counters.
37802         (min_bytes_remaining): Remove.
37803         (format_percent): Simplify.
37804         (format_integer, format_floating): Set likely and unlikely counters.
37805         (get_string_length, format_character, format_string): Same.
37806         (format_plain, should_warn_p): New function.
37807         (maybe_warn): Call should_warn_p.  Update diagnostic messages
37808         and handle those for all directives, including plain strings.
37809         (format_directive): Handle likely and unlikely counters.
37810         Remove unnecessary quoting from diagnostics.  Add an informational
37811         note.
37812         (add_bytes): Remove.
37813         (pass_sprintf_length::compute_format_length): Simplify.
37814         (try_substitute_return_value): Handle likely and unlikely counters.
37815
37816 2017-01-26  Carl Love  <cel@us.ibm.com>
37817
37818         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
37819         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
37820
37821 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
37822
37823         PR target/79131
37824         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
37825         endianess for subregs into account.
37826         * lra-constraints.c (lra_constraints): Do risky transformations
37827         always on the first iteration.
37828         * lra-lives.c (check_pseudos_live_through_calls): Add arg
37829         last_call_used_reg_set.
37830         (process_bb_lives): Define and use last_call_used_reg_set.
37831         * lra.c (lra): Always continue after lra_constraints on the first
37832         iteration.
37833
37834 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
37835
37836         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
37837         constant.
37838         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
37839
37840 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
37841
37842         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
37843         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
37844         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
37845         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
37846         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
37847         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
37848         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
37849         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
37850         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
37851
37852 2017-01-26  Marek Polacek  <polacek@redhat.com>
37853
37854         PR c/79199
37855         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
37856         for the third operand.
37857
37858 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
37859
37860         PR middle-end/79236
37861         * omp-low.c (struct omp_context): Add simt_stmt field.
37862         (scan_omp_for): Return omp_context *.
37863         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
37864         context to the _simt_ SIMD stmt.
37865         (lower_omp_for): For combined SIMD with sibling _simt_
37866         SIMD, make sure to use the same decls in _looptemp_
37867         clauses as in the sibling.
37868
37869 2017-01-26  David Sherwood  <david.sherwood@arm.com>
37870
37871         PR middle-end/79212
37872         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
37873         all contexts.
37874
37875 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
37876
37877         PR target/70465
37878         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
37879         emit fld b; fld a; if possible.
37880
37881         * brig-builtins.def: Update copyright years.
37882         * config/arm/arm_acle_builtins.def: Update copyright years.
37883
37884 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
37885
37886         PR target/79179
37887         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
37888         constraint instead of o for the stxsd instruction.
37889
37890 2017-01-25  Carl Love  <cel@us.ibm.com>
37891
37892         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
37893         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
37894
37895 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
37896
37897         * doc/invoke.texi (C++ Dialect Options): Fix typo.
37898
37899 2017-01-25  Richard Biener  <rguenther@suse.de>
37900
37901         PR tree-optimization/69264
37902         * target.def (vector_alignment_reachable): Improve documentation.
37903         * doc/tm.texi: Regenerate.
37904         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
37905         and add a comment.
37906         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
37907         earlier changes with respect to TYPE_USER_ALIGN.
37908         (vector_alignment_reachable_p): Likewise.  Improve dumping.
37909
37910 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37911
37912         PR target/79145
37913         * config/arm/arm.md (xordi3): Force constant operand into a register
37914         for TARGET_IWMMXT.
37915
37916 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37917
37918         * doc/invoke.texi (-fstore-merging): Correct default optimization
37919         levels at which it is enabled.
37920         (-O): Move -fstore-merging from list to...
37921         (-O2): ... Here.
37922
37923 2017-01-25  Richard Biener  <rguenther@suse.de>
37924
37925         PR debug/78363
37926         * omp-expand.c: Include debug.h.
37927         (expand_omp_taskreg): Make sure to generate early debug before
37928         outlining anything from a function.
37929         (expand_omp_target): Likewise.
37930         (grid_expand_target_grid_body): Likewise.
37931
37932 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
37933
37934         PR lto/79061
37935         * asan.c (get_translation_unit_decl): New function.
37936         (asan_add_global): Extract modules file name from globals
37937         TRANSLATION_UNIT_DECL name.
37938
37939 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
37940
37941         PR target/77439
37942         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
37943         for long calls with APCS frame and VFP.
37944
37945 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
37946
37947         * cfg.c (original_copy_tables_initialized_p): New function.
37948         * cfg.h (original_copy_tables_initialized_p): New decl.
37949         * cfgrtl.c (relink_block_chain): Guard the call to
37950         free_original_copy_tables with a call to
37951         original_copy_tables_initialized_p.
37952         * cgraph.h (symtab_node::native_rtl_p): New decl.
37953         * cgraphunit.c (symtab_node::native_rtl_p): New function.
37954         (symtab_node::needed_p): Don't assert for early assembly output
37955         for __RTL functions.
37956         (cgraph_node::finalize_function): Set "force_output" for __RTL
37957         functions.
37958         (cgraph_node::analyze): Bail out early for __RTL functions.
37959         (analyze_functions): Update assertion to support __RTL functions.
37960         (cgraph_node::expand): Bail out early for __RTL functions.
37961         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
37962         __RTL functions.
37963         * function.h (struct function): Update comment for field
37964         "pass_startwith".
37965         * gimple-expr.c: Include "tree-pass.h".
37966         (gimple_has_body_p): Return false for __RTL functions.
37967         * Makefile.in (OBJS): Add run-rtl-passes.o.
37968         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
37969         accessor.
37970         (gcc::pass_manager::get_clean_slate): New accessor.
37971         * passes.c: Include "insn-addr.h".
37972         (should_skip_pass_p): Add logging.  Update logic for running
37973         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
37974         property-provider override so it is only done for gimple passes.
37975         Don't skip dfinit.
37976         (skip_pass): New function.
37977         (execute_one_pass): Call skip_pass when skipping passes.
37978         * read-md.c (md_reader::read_char): Support filtering
37979         the input to a subset of line numbers.
37980         (md_reader::md_reader): Initialize fields
37981         m_first_line and m_last_line.
37982         (md_reader::read_file_fragment): New function.
37983         * read-md.h (md_reader::read_file_fragment): New decl.
37984         (md_reader::m_first_line): New field.
37985         (md_reader::m_last_line): New field.
37986         * read-rtl-function.c (function_reader::create_function): Only
37987         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
37988         curr_properties.  Set DECL_INITIAL to a dummy block.
37989         (read_rtl_function_body_from_file_range): New function.
37990         * read-rtl-function.h (read_rtl_function_body_from_file_range):
37991         New decl.
37992         * run-rtl-passes.c: New file.
37993         * run-rtl-passes.h: New file.
37994
37995 2017-01-24  Jeff Law  <law@redhat.com>
37996
37997         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
37998         buffer size.
37999
38000 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
38001
38002         PR tree-optimization/79159
38003         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
38004         (record_nonwrapping_iv): Improve boundary using above function if no
38005         value range information.
38006
38007 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
38008             Martin Jambor  <mjambor@suse.cz>
38009
38010         * brig-builtins.def: New file.
38011         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
38012         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
38013         (DEF_HSAIL_SAT_BUILTIN): Likewise.
38014         (DEF_HSAIL_INTR_BUILTIN): Likewise.
38015         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
38016         * builtin-types.def (BT_INT8): New.
38017         (BT_INT16): Likewise.
38018         (BT_UINT8): Likewise.
38019         (BT_UINT16): Likewise.
38020         (BT_FN_ULONG): Likewise.
38021         (BT_FN_UINT_INT): Likewise.
38022         (BT_FN_UINT_ULONG): Likewise.
38023         (BT_FN_UINT_LONG): Likewise.
38024         (BT_FN_UINT_PTR): Likewise.
38025         (BT_FN_ULONG_PTR): Likewise.
38026         (BT_FN_INT8_FLOAT): Likewise.
38027         (BT_FN_INT16_FLOAT): Likewise.
38028         (BT_FN_UINT32_FLOAT): Likewise.
38029         (BT_FN_UINT16_FLOAT): Likewise.
38030         (BT_FN_UINT8_FLOAT): Likewise.
38031         (BT_FN_UINT64_FLOAT): Likewise.
38032         (BT_FN_UINT16_UINT32): Likewise.
38033         (BT_FN_UINT32_UINT16): Likewise.
38034         (BT_FN_UINT16_UINT16_UINT16): Likewise.
38035         (BT_FN_INT_PTR_INT): Likewise.
38036         (BT_FN_UINT_PTR_UINT): Likewise.
38037         (BT_FN_LONG_PTR_LONG): Likewise.
38038         (BT_FN_ULONG_PTR_ULONG): Likewise.
38039         (BT_FN_VOID_UINT64_UINT64): Likewise.
38040         (BT_FN_UINT8_UINT8_UINT8): Likewise.
38041         (BT_FN_INT8_INT8_INT8): Likewise.
38042         (BT_FN_INT16_INT16_INT16): Likewise.
38043         (BT_FN_INT_INT_INT): Likewise.
38044         (BT_FN_UINT_FLOAT_UINT): Likewise.
38045         (BT_FN_FLOAT_UINT_UINT): Likewise.
38046         (BT_FN_ULONG_UINT_UINT): Likewise.
38047         (BT_FN_ULONG_UINT_PTR): Likewise.
38048         (BT_FN_ULONG_ULONG_ULONG): Likewise.
38049         (BT_FN_UINT_UINT_UINT): Likewise.
38050         (BT_FN_VOID_UINT_PTR): Likewise.
38051         (BT_FN_UINT_UINT_PTR: Likewise.
38052         (BT_FN_UINT32_UINT64_PTR): Likewise.
38053         (BT_FN_INT_INT_UINT_UINT): Likewise.
38054         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
38055         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
38056         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
38057         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
38058         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
38059         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
38060         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
38061         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
38062         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
38063         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
38064         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
38065         * doc/frontends.texi: List BRIG FE.
38066         * doc/install.texi (Testing): Add BRIG tesring requirements.
38067         * doc/invoke.texi (Overall Options): Mention BRIG.
38068         * doc/standards.texi (Standards): Doucment BRIG HSA version.
38069
38070 2017-01-24  Richard Biener  <rguenther@suse.de>
38071
38072         PR translation/79208
38073         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
38074
38075 2017-01-24  Martin Jambor  <mjambor@suse.cz>
38076
38077         PR bootstrap/79198
38078         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
38079         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
38080         and known_contexts.
38081
38082 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
38083
38084         PR middle-end/79123
38085         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
38086         casts from signed to unsigned really don't have a range.
38087
38088 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
38089
38090         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
38091         GMP_RNDx for compatiblity.
38092
38093 2017-01-24  Martin Liska  <mliska@suse.cz>
38094
38095         PR bootstrap/79132
38096         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
38097         that would prevent us to call alloca with -1 as argument.
38098
38099 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
38100
38101         * dwarf2out.c (output_compilation_unit_header, output_file_names):
38102         Avoid -Wformat-security warning.
38103
38104 2017-01-23  Andrew Pinski  <apinski@cavium.com>
38105
38106         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
38107         cost table.
38108
38109 2017-01-23  Martin Sebor  <msebor@redhat.com>
38110
38111         PR middle-end/78703
38112         * gimple-ssa-sprintf.c (warn_level): New global.
38113         (format_integer): Use it here and throughout the rest of the file.
38114         Use the same switch to compute sign as base.
38115         (maybe_warn): New function.
38116         (format_directive): Factor out warnings into maybe_warn.
38117         Add debugging output.  Use warn_level.
38118         (add_bytes): Use warn_level.
38119         (pass_sprintf_length::compute_format_length): Add debugging output.
38120         (try_substitute_return_value): Same.
38121         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
38122
38123         PR middle-end/78703
38124         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
38125         (struct fmtresult, format_integer, format_floating): Adjust.
38126         (fmtresult::fmtresult): Set max correctly in two argument ctor.
38127         (get_string_length, format_string,format_directive): Same.
38128         (pass_sprintf_length::compute_format_length): Same.
38129         (try_substitute_return_value): Simplify slightly.
38130
38131         PR middle-end/78703
38132         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
38133         (fmtresult::operator+=): Outlined.
38134         (struct fmtresult): Add ctors.
38135         (struct conversion_spec): Rename...
38136         (struct directive): ...to this.  Add and remove data members.
38137         (directive::set_width, directive::set_precision): New functions.
38138         (format_percent): Use fmtresult ctor.
38139         (get_width_and_precision): Remove.
38140         (format_integer): Make naming changes.  Avoid computing width and
38141         precision.
38142         (format_floating): Same.  Adjust indentation.
38143         (format_character, format_none): New functions.
38144         (format_string): Moved character handling to format_character.
38145         (format_directive): Remove arguments, change return type.
38146         (parse_directive): New function.
38147         (pass_sprintf_length::compute_format_length): Move directive
38148         parsing to parse_directive.
38149
38150 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
38151
38152         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
38153         (assign_assembler_name_if_needed): ... this.
38154         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
38155         (assign_assembler_name_if_needed): ... this.
38156         (free_lang_data_in_cgraph): Adjust callers.
38157         * cgraphunit.c (cgraph_node::analyze): Likewise.
38158         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
38159         Likewise.
38160
38161 2017-01-23  Richard Biener  <rguenther@suse.de>
38162
38163         PR tree-optimization/79088
38164         PR tree-optimization/79188
38165         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
38166         resetting loop bounds after last path deletion.  Reset loop
38167         bounds of the target loop, make code match the comments.
38168         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
38169         Make sure loops need no fixups.
38170
38171 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
38172
38173         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
38174         exponent support with double type for first argument.
38175         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
38176         type returned by __builtin_vec_extract_sig,
38177         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
38178         functions from "vector int" to "vector unsigned int" or from
38179         "vector long long int" to "vector unsigned long long int".
38180         Changed type returned by __builtin_vec_extract_exp,
38181         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
38182         functions from "vector int" to "vector unsigned int" or from
38183         "vector long long int" to "vector unsigned long long int".
38184         Changed return type of __builtin_vec_test_data_class,
38185         __builtin_vec_test_data_class_sp, and
38186         __builtin_vec_test_data_class_dp from "vector int" to
38187         "vector bool int" or from "vector long long int" to "vector bool
38188         long long int" and changed second argument type from "unsigned
38189         int" to "int".  Added new overloaded function forms "vector float
38190         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
38191         "vector float __builtin_vec_insert_exp_sp (vector float, vector
38192         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
38193         double, vector unsigned long long int)" and "vector double
38194         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
38195         long int)".  Changed return type of
38196         __builtin_scalar_test_data_class and
38197         __builtin_scalar_test_data_class_sp and
38198         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
38199         int" and changed second argument from "unsigned int" to "int".
38200         Changed type returned by __builtin_scalar_test_neg,
38201         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
38202         from "int" to "bool int".  Added new overloaded function form
38203         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
38204         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
38205         exponent double-precision with floating point first argument.
38206         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
38207         documentation of scalar_test_data_class, scalar_test_neg,
38208         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
38209         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
38210         vec_test_data_class built-in functions to reflect refinements in
38211         their type signatures.
38212
38213 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
38214
38215         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
38216         size of buf.
38217         (aarch64_elf_asm_destructor): Likewise.
38218
38219 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
38220
38221         PR rtl-optimization/78634
38222         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
38223         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
38224         * ifcvt.c (noce_try_cmove): Add missing cost check.
38225
38226         PR rtl-optimization/71724
38227         * combine.c (if_then_else_cond): Look for situations where it is
38228         beneficial to undo the work of one of the recursive calls.
38229
38230 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
38231
38232         PR tree-optimization/70754
38233         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
38234         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
38235         combined stmt before it if not NULL.
38236         (combine_chains): Process refs reversely and compute dominance point
38237         for root ref.
38238
38239 2017-01-23  Martin Liska  <mliska@suse.cz>
38240
38241         PR tree-optimization/79196
38242         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
38243         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
38244         instead of memcmp.
38245         (strlen_optimize_stmt): Call the renamed function.
38246
38247 2017-01-23  Michael Matz  <matz@suse.de>
38248
38249         PR tree-optimization/78384
38250         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
38251
38252 2017-01-23  Richard Biener  <rguenther@suse.de>
38253
38254         PR tree-optimization/79186
38255         * tree-vrp.c (register_new_assert_for): Make sure we've seen
38256         both incoming edges before moving an assert.
38257
38258 2017-01-23  Martin Jambor  <mjambor@suse.cz>
38259
38260         * ipa-prop.c (load_from_param_1): Removed.
38261         (load_from_unmodified_param): Bits from load_from_param_1 put back
38262         here.
38263         (load_from_param): Removed.
38264         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
38265         with stmt.  Reverted back to use of load_from_unmodified_param.
38266
38267 2017-01-23  Martin Jambor  <mjambor@suse.cz>
38268
38269         PR ipa/79108
38270         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
38271         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
38272         field a pointer to garbage collected vector, mark lattices and
38273         ipcp_orig_node with GTY((skip)).
38274         (ipa_get_param_count): Adjust to descriptors being a pointer.
38275         (ipa_get_param): Likewise.
38276         (ipa_get_type): Likewise.
38277         (ipa_get_param_move_cost): Likewise.
38278         (ipa_set_param_used): Likewise.
38279         (ipa_get_controlled_uses): Likewise.
38280         (ipa_set_controlled_uses): Likewise.
38281         (ipa_is_param_used): Likewise.
38282         (ipa_node_params_t): Move into garbage collector.  New methods insert
38283         and remove.
38284         (ipa_node_params_sum): Annotate wth GTY(()).
38285         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
38286         garbage collected.
38287         (ipa_load_from_parm_agg): Adjust declaration.
38288         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
38289         * ipa-profile.c (ipa_profile): Likewise.
38290         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
38291         (ipa_populate_param_decls): Make descriptors parameter garbage
38292         collected.
38293         (ipa_dump_param): Adjust to descriptors being a pointer.
38294         (ipa_alloc_node_params): Likewise.
38295         (ipa_initialize_node_params): Likewise.
38296         (load_from_param_1): Make descriptors parameter garbage collected.
38297         (load_from_unmodified_param): Likewise.
38298         (load_from_param): Likewise.
38299         (ipa_load_from_parm_agg): Likewise.
38300         (ipa_node_params::~ipa_node_params): Removed.
38301         (ipa_free_all_node_params): Remove call to delete operator.
38302         (ipa_node_params_t::insert): New.
38303         (ipa_node_params_t::remove): Likewise.
38304         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
38305         copy known_csts and known_contexts vectors.
38306         (ipa_read_node_info): Adjust to descriptors being a pointer.
38307         (ipcp_modif_dom_walker): Make m_descriptors field garbage
38308         collected.
38309         (ipcp_transform_function): Make descriptors variable garbage
38310         collected.
38311
38312 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
38313
38314         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
38315         * config/i386/avx512dqintrin.h: Ditto.
38316         * config/i386/avx512fintrin.h: Ditto.
38317         * config/i386/i386.c: Handle new builtins.
38318         * config/i386/i386-builtin.def: Add new builtins.
38319         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
38320         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
38321
38322 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
38323             Martin Liska  <mliska@suse.cz>
38324
38325         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
38326         * asan.c (asan_expand_poison_ifn): Support stores and use
38327         appropriate ASAN report function.
38328         * internal-fn.c (expand_ASAN_POISON_USE): New function.
38329         * internal-fn.def (ASAN_POISON_USE): Declare.
38330         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
38331         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
38332         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
38333         ASAN_POISON calls w/o LHS.
38334         * tree-ssa.c (execute_update_addresses_taken): Create clobber
38335         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
38336         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
38337         * gimplify.c (asan_poison_variables): Add attribute
38338         use_after_scope_memory to variables that really needs to live
38339         in memory.
38340         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
38341         having the attribute.
38342
38343 2017-01-23  Martin Liska  <mliska@suse.cz>
38344
38345         * asan.c (create_asan_shadow_var): New function.
38346         (asan_expand_poison_ifn): Likewise.
38347         * asan.h (asan_expand_poison_ifn): New declaration.
38348         * internal-fn.c (expand_ASAN_POISON): Likewise.
38349         * internal-fn.def (ASAN_POISON): New builtin.
38350         * sanopt.c (pass_sanopt::execute): Expand
38351         asan_expand_poison_ifn.
38352         * tree-inline.c (copy_decl_for_dup_finish): Make function
38353         external.
38354         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
38355         * tree-ssa.c (is_asan_mark_p): New function.
38356         (execute_update_addresses_taken): Rewrite local variables
38357         (identified just by use-after-scope as addressable) into SSA.
38358
38359 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
38360
38361         * doc/install.texi (Specific): opensource.apple.com uses https
38362         now. Remove trailing slash.
38363
38364 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
38365
38366         * README.Portability: Remove note on an Irix compatibility issue.
38367
38368 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
38369
38370         * gcov.c (INCLUDE_ALGORITHM): Define.
38371         (INCLUDE_VECTOR): Define.
38372         No longer include <vector> and <algorithm> directly.
38373
38374 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
38375
38376         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
38377         to https.
38378         * doc/invoke.texi (Code Gen Options): Ditto.
38379
38380 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
38381
38382         PR lto/78407
38383         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
38384
38385 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
38386
38387         rtl-optimization/79125
38388         * cprop.c (local_cprop_pass): Handle cases where we make an
38389         unconditional trap.
38390
38391 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
38392
38393         PR target/61729
38394         PR target/77850
38395         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
38396         read from, for big endian.
38397
38398 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
38399
38400         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
38401         register pauth builtins for LP64 only.
38402
38403 2017-01-20  Marek Polacek  <polacek@redhat.com>
38404
38405         PR c/79152
38406         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
38407         non-case labels.
38408
38409 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
38410
38411         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
38412         of safelen status.
38413         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
38414         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
38415         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
38416
38417 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38418
38419         PR target/71270
38420         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
38421         in big-endian mode when they are not a single duplicated value.
38422
38423 2017-01-20  Richard Biener  <rguenther@suse.de>
38424
38425         * BASE-VER: Bump to 7.0.1.
38426
38427 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
38428
38429         * omp-low.c (omplow_simd_context): New struct.  Use it...
38430         (lower_rec_simd_input_clauses): ...here and...
38431         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
38432         references to idx, lane, max_vf, is_simt.
38433
38434 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
38435
38436         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
38437         mcpu=nps400.
38438
38439 2017-01-20  Martin Jambor  <mjambor@suse.cz>
38440
38441         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
38442         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
38443         gt-hsa-common.h.
38444         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
38445         (GTFILES): Rename hsa.c to hsa-common.c.
38446         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
38447         * hsa-dump.c: Likewise.
38448         * hsa-gen.c: Likewise.
38449         * hsa-regalloc.c: Likewise.
38450         * ipa-hsa.c: Likewise.
38451         * omp-expand.c: Likewise.
38452         * omp-low.c: Likewise.
38453         * toplev.c: Likewise.
38454
38455 2017-01-20  Marek Polacek  <polacek@redhat.com>
38456
38457         PR c/64279
38458         * doc/invoke.texi: Document -Wduplicated-branches.
38459         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
38460         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
38461         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
38462         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
38463         return 0 only when not OEP_LEXICOGRAPHIC.
38464         (fold_build_cleanup_point_expr): Use the expression
38465         location when building CLEANUP_POINT_EXPR.
38466         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
38467         * tree.c (add_expr): Handle error_mark_node.
38468
38469 2017-01-20  Martin Liska  <mliska@suse.cz>
38470
38471         PR lto/69188
38472         * tree-profile.c (init_ic_make_global_vars): Do not call
38473         finalize_decl.
38474         (gimple_init_gcov_profiler): Likewise.
38475
38476 2017-01-20  Martin Liska  <mliska@suse.cz>
38477
38478         PR ipa/71190
38479         * cgraph.h (maybe_create_reference): Remove argument and
38480         update comment.
38481         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
38482         argument.
38483         * ipa-cp.c (create_specialized_node): Likewise.
38484         * symtab.c (symtab_node::maybe_create_reference): Handle
38485         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
38486
38487 2017-01-20  Martin Liska  <mliska@suse.cz>
38488
38489         * read-rtl-function.c (function_reader::create_function): Use
38490         build_decl instread of build_decl_stat.
38491
38492 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
38493
38494         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
38495         * config/i386/avx512dqintrin.h: Ditto.
38496         * config/i386/avx512fintrin.h: Ditto.
38497         * config/i386/i386-builtin-types.def: Add new types.
38498         * config/i386/i386.c: Handle new types.
38499         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
38500         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
38501         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
38502         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
38503         (__builtin_ia32_kshiftridi): New.
38504         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
38505
38506 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
38507
38508         PR target/78875
38509         PR target/79140
38510         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
38511         define to rs6000_init_stack_protect_guard.
38512         (rs6000_init_stack_protect_guard): New function.
38513
38514 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
38515             Yunqiang Su  <yunqiang.su@imgtec.com>
38516
38517         * config.gcc (supported_defaults): Add madd4.
38518         (with_madd4): Add validation.
38519         (all_defaults): Add madd4.
38520         * config/mips/mips.opt (mmadd4): New option.
38521         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
38522         mmadd4.
38523         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
38524         __mips_no_madd4.
38525         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
38526         (ISA_HAS_FUSED_MADD4): Likewise.
38527         * doc/invoke.texi (-mmadd4): Document the new option.
38528         * doc/install.texi (--with-madd4): Document the new option.
38529
38530 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38531
38532         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
38533         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
38534         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
38535         (aarch64_init_pauth_hint_builtins): New.
38536         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
38537         (aarch64_expand_builtin): Expand new builtins.
38538
38539 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38540
38541         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
38542         * combine-stack-adj.c (no_unhandled_cfa): Handle
38543         REG_CFA_TOGGLE_RA_MANGLE.
38544         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
38545         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
38546         info for return address signing.
38547         (aarch64_expand_epilogue): Likewise.
38548
38549 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38550
38551         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
38552         * config/aarch64/aarch64-protos.h
38553         (aarch64_return_address_signing_enabled): New declaration.
38554         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
38555         New function.
38556         (aarch64_expand_prologue): Sign return address before it's pushed onto
38557         stack.
38558         (aarch64_expand_epilogue): Authenticate return address fetched from
38559         stack.
38560         (aarch64_override_options): Sanity check for ILP32 and ISA level.
38561         (aarch64_attributes): New function attributes for "sign-return-address".
38562         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
38563         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
38564         ("*do_return"): Generate combined instructions according to key index.
38565         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
38566         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
38567         iterators.
38568         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
38569         * config/aarch64/aarch64.opt (msign-return-address=): New.
38570         * doc/extend.texi (AArch64 Function Attributes): Documents
38571         "sign-return-address=".
38572         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
38573
38574 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
38575
38576         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
38577         overall option summary.
38578
38579 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
38580
38581         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
38582         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
38583         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
38584         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
38585
38586 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
38587
38588         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
38589         -mpower9-minmax by default for -mcpu=power9.
38590         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
38591         128-bit floating point.
38592
38593 2017-01-20  Alan Modra  <amodra@gmail.com>
38594
38595         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
38596         optimizing for size.
38597
38598 2017-01-20  Alan Modra  <amodra@gmail.com>
38599
38600         PR target/79144
38601         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
38602         for strcmp and strncmp from corresponding builtin decl.
38603
38604 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
38605
38606         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
38607         instead of i386/rtems-64.h.
38608         * config/i386/rtems-64.h: Remove.
38609
38610 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
38611
38612         PR target/78478
38613         Revert:
38614         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
38615
38616         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
38617
38618 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
38619
38620         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
38621         Change int to HOST_WIDE_INT.
38622         * config/aarch64/aarch64-protos.h
38623         (aarch64_simd_gen_const_vector_dup): Likewise.
38624         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
38625
38626 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
38627
38628         * langhooks-def.h (lhd_type_for_size): New decl.
38629         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
38630         * langhooks.c (lhd_type_for_size): New function, taken from
38631         lto_type_for_size.
38632
38633 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
38634
38635         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
38636         define_bypass for CR latency.
38637         (power9-cracked-alu): Update bypass latency and remove power9-branch.
38638         (power9-alu2): Add define_bypass for CR latency.
38639         (power9-cmp): New.
38640         (power9-mul): Update insn latency.
38641         (power9-mul-compare): Update insn latency, bypass latency and remove
38642         power9-branch.
38643
38644 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38645
38646         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
38647         Delete.
38648         * config/aarch64/aarch64.md
38649         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
38650         aarch64_nopcrelative_literal_loads.
38651         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
38652
38653 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
38654
38655         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
38656         TARGET_LOONGSON_3A.
38657         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
38658
38659 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
38660
38661         PR target/78176
38662         * config.gcc (supported_defaults): Add lxc1-sxc1.
38663         (with_lxc1_sxc1): Add validation.
38664         (all_defaults): Add lxc1-sxc1.
38665         * config/mips/mips.opt (mlxc1-sxc1): New option.
38666         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
38667         mlxc1-sxc1.
38668         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
38669         __mips_no_lxc1_sxc1.
38670         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
38671         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
38672         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
38673
38674 2017-01-19  Richard Biener  <rguenther@suse.de>
38675
38676         PR tree-optimization/72488
38677         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
38678         sure to restore SSA info.
38679         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
38680
38681 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
38682
38683         PR rtl-optimization/79121
38684         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
38685         of the inner type when shifting an extended value.
38686
38687 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
38688
38689         PR lto/78407
38690         * symtab.c (symtab_node::equal_address_to): Fix comparing of
38691         interposable aliases.
38692
38693 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
38694
38695         PR target/78516
38696         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
38697         Use the evmergelohi instruction.
38698         (mov_si<mode>_e500_subreg4_2_le): Likewise.
38699         (mov_sitf_e500_subreg8_2_be): Likewise.
38700         (mov_sitf_e500_subreg12_2_le): Likewise.
38701         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
38702         (mov_si<mode>_e500_subreg4_2_be): Likewise.
38703         (mov_sitf_e500_subreg8_2_le): Likewise.
38704         (mov_sitf_e500_subreg12_2_be): Likewise.
38705
38706 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38707
38708         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
38709         attribute from vecsimple to vecperm.
38710         (altivec_vbpermq2): Likewise.
38711
38712 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38713
38714         PR target/79040
38715         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
38716
38717 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
38718         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
38719         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
38720         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
38721         case where N arg is SIZE_MAX.
38722         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
38723         (cmpstrsi): Add pattern.
38724
38725 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
38726
38727         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
38728         __builtin_vec_revb builtins.
38729         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
38730         built-in functions to support generation of the ISA 3.0 XXBR<x>
38731         vector byte reverse instructions.
38732         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
38733         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
38734         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
38735         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
38736         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
38737         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
38738         (P9V_BUILTIN_VEC_REVB): Likewise.
38739         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
38740         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
38741         (p9_xxbrq_v16qi): Likewise.
38742         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
38743         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
38744         (p9_xxbrh_v8hi): Likewise.
38745         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
38746         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
38747         vec_revb built-in functions.
38748
38749 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
38750
38751         PR rtl-optimization/78952
38752         * config/i386/i386.md (any_extract): New code iterator.
38753         (*insvqi_2): Use any_extract for source operand.
38754         (*insvqi_3): Use any_shiftrt for source operand.
38755
38756 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
38757
38758         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
38759         New function.
38760         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
38761
38762 2017-01-18  Matthias Klose  <doko@ubuntu.com>
38763
38764         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
38765
38766 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38767
38768         * config/rs6000/altivec.h (vec_bperm): Change #define.
38769         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
38770         (altivec_vbpermq2): New define_insn.
38771         (altivec_vbpermd): Likewise.
38772         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
38773         function interface.
38774         (VBPERMD): Likewise.
38775         (VBPERM): New polymorphic function interface.
38776         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
38777         Add entries for P9V_BUILTIN_VEC_VBPERM.
38778         * doc/extend.texi: Add interfaces for vec_bperm.
38779
38780 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38781
38782         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
38783         first letter of error messages.
38784         (s390_resolve_overloaded_builtin): Likewise.
38785         * config/s390/s390.c (s390_expand_builtin): Likewise.
38786         (s390_invalid_arg_for_unprototyped_fn): Likewise.
38787         (s390_valid_target_attribute_inner_p): Likewise.
38788         * config/s390/s390.md ("tabort"): Likewise.
38789
38790 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
38791
38792         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
38793         (ISA_AVOID_DIV_HILO): New macro.
38794         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
38795         (ISA_HAS_DDIV): Likewise.
38796
38797 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
38798
38799         * doc/invoke.texi (fabi-version): Correct number of occurrences.
38800
38801 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
38802
38803         * doc/invoke.texi (fabi-version): Spelling fix.
38804
38805 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
38806
38807         PR c++/70182
38808         * doc/invoke.texi (fabi-version): Mention mangling fix for
38809         operator names.
38810
38811 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
38812
38813         PR c++/77489
38814         * doc/invoke.texi (fabi-version): Document discriminator mangling.
38815
38816 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
38817
38818         PR target/78875
38819         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
38820         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
38821         the new options.
38822         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
38823         flexible settings.
38824         (stack_protect_test): Ditto.
38825         * config/rs6000/rs6000.opt (mstack-protector-guard=,
38826         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
38827         options.
38828         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
38829         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
38830         -mstack-protector-guard-offset=.
38831         (RS/6000 and PowerPC Options): Ditto.
38832
38833 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
38834
38835         * config/i386/i386.h (MASK_CLASS_P): New define.
38836         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
38837         there are no registers from different register sets also when
38838         mask registers are used.  Update function comment.
38839         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
38840         to (*k/*r) and (*k/*km) alternatives.
38841
38842 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
38843
38844         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
38845         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
38846         (EH_RETURN_HANDLER_RTX): New define.
38847         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
38848         Force frame pointer in EH return functions.
38849         (aarch64_expand_epilogue): Add barrier for eh_return.
38850         (aarch64_final_eh_return_addr): Remove.
38851         (aarch64_eh_return_handler_rtx): New function.
38852         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
38853         Remove.
38854         (aarch64_eh_return_handler_rtx): New prototype.
38855
38856 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38857
38858         * config/rs6000/altivec.h (vec_rlmi): New #define.
38859         (vec_vrlnm): Likewise.
38860         (vec_rlnm): Likewise.
38861         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
38862         (UNSPEC_VRLNM): Likewise.
38863         (VIlong): New mode iterator.
38864         (altivec_vrl<VI_char>mi): New define_insn.
38865         (altivec_vrl<VI_char>nm): Likewise.
38866         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
38867         function entry.
38868         (VRLDNM): Likewise.
38869         (RLNM): New polymorphic function entry.
38870         (VRLWMI): New monomorphic function entry.
38871         (VRLDMI): Likewise.
38872         (RLMI): New polymorphic function entry.
38873         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
38874         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
38875         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
38876         vec_vrlnm.
38877
38878 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
38879
38880         PR debug/78839
38881         * dwarf2out.c (field_byte_offset): Restore the
38882         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
38883         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
38884         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
38885         of build2 + fold.
38886
38887 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
38888
38889         PR ada/67205
38890         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
38891
38892 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
38893
38894         PR debug/71669
38895         * dwarf2out.c (add_data_member_location_attribute): For constant
38896         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
38897         instead of DW_AT_data_member_location, DW_AT_bit_offset and
38898         DW_AT_byte_size attributes.
38899
38900 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
38901
38902         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
38903         after forcing to constant memory when the code model is medium.
38904
38905 2017-01-17  Julia Koval  <julia.koval@intel.com>
38906
38907         PR target/76731
38908         * config/i386/avx512fintrin.h
38909         (_mm512_i32gather_ps): Change __addr type to void const*.
38910         (_mm512_mask_i32gather_ps): Ditto.
38911         (_mm512_i32gather_pd): Ditto.
38912         (_mm512_mask_i32gather_pd): Ditto.
38913         (_mm512_i64gather_ps): Ditto.
38914         (_mm512_mask_i64gather_ps): Ditto.
38915         (_mm512_i64gather_pd): Ditto.
38916         (_mm512_mask_i64gather_pd): Ditto.
38917         (_mm512_i32gather_epi32): Ditto.
38918         (_mm512_mask_i32gather_epi32): Ditto.
38919         (_mm512_i32gather_epi64): Ditto.
38920         (_mm512_mask_i32gather_epi64): Ditto.
38921         (_mm512_i64gather_epi32): Ditto.
38922         (_mm512_mask_i64gather_epi32): Ditto.
38923         (_mm512_i64gather_epi64): Ditto.
38924         (_mm512_mask_i64gather_epi64): Ditto.
38925         (_mm512_i32scatter_ps): Change __addr type to void*.
38926         (_mm512_mask_i32scatter_ps): Ditto.
38927         (_mm512_i32scatter_pd): Ditto.
38928         (_mm512_mask_i32scatter_pd): Ditto.
38929         (_mm512_i64scatter_ps): Ditto.
38930         (_mm512_mask_i64scatter_ps): Ditto.
38931         (_mm512_i64scatter_pd): Ditto.
38932         (_mm512_mask_i64scatter_pd): Ditto.
38933         (_mm512_i32scatter_epi32): Ditto.
38934         (_mm512_mask_i32scatter_epi32): Ditto.
38935         (_mm512_i32scatter_epi64): Ditto.
38936         (_mm512_mask_i32scatter_epi64): Ditto.
38937         (_mm512_i64scatter_epi32): Ditto.
38938         (_mm512_mask_i64scatter_epi32): Ditto.
38939         (_mm512_i64scatter_epi64): Ditto.
38940         (_mm512_mask_i64scatter_epi64): Ditto.
38941         * config/i386/avx512pfintrin.h
38942         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
38943         (_mm512_mask_prefetch_i32gather_ps): Ditto.
38944         (_mm512_mask_prefetch_i64gather_pd): Ditto.
38945         (_mm512_mask_prefetch_i64gather_ps): Ditto.
38946         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
38947         (_mm512_prefetch_i32scatter_ps): Ditto.
38948         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
38949         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
38950         (_mm512_prefetch_i64scatter_pd): Ditto.
38951         (_mm512_prefetch_i64scatter_ps): Ditto.
38952         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
38953         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
38954         * config/i386/avx512vlintrin.h
38955         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
38956         (_mm_mmask_i32gather_ps): Ditto.
38957         (_mm256_mmask_i32gather_pd): Ditto.
38958         (_mm_mmask_i32gather_pd): Ditto.
38959         (_mm256_mmask_i64gather_ps): Ditto.
38960         (_mm_mmask_i64gather_ps): Ditto.
38961         (_mm256_mmask_i64gather_pd): Ditto.
38962         (_mm_mmask_i64gather_pd): Ditto.
38963         (_mm256_mmask_i32gather_epi32): Ditto.
38964         (_mm_mmask_i32gather_epi32): Ditto.
38965         (_mm256_mmask_i32gather_epi64): Ditto.
38966         (_mm_mmask_i32gather_epi64): Ditto.
38967         (_mm256_mmask_i64gather_epi32): Ditto.
38968         (_mm_mmask_i64gather_epi32): Ditto.
38969         (_mm256_mmask_i64gather_epi64): Ditto.
38970         (_mm_mmask_i64gather_epi64): Ditto.
38971         (_mm256_i32scatter_ps): Change __addr type to void*.
38972         (_mm256_mask_i32scatter_ps): Ditto.
38973         (_mm_i32scatter_ps): Ditto.
38974         (_mm_mask_i32scatter_ps): Ditto.
38975         (_mm256_i32scatter_pd): Ditto.
38976         (_mm256_mask_i32scatter_pd): Ditto.
38977         (_mm_i32scatter_pd): Ditto.
38978         (_mm_mask_i32scatter_pd): Ditto.
38979         (_mm256_i64scatter_ps): Ditto.
38980         (_mm256_mask_i64scatter_ps): Ditto.
38981         (_mm_i64scatter_ps): Ditto.
38982         (_mm_mask_i64scatter_ps): Ditto.
38983         (_mm256_i64scatter_pd): Ditto.
38984         (_mm256_mask_i64scatter_pd): Ditto.
38985         (_mm_i64scatter_pd): Ditto.
38986         (_mm_mask_i64scatter_pd): Ditto.
38987         (_mm256_i32scatter_epi32): Ditto.
38988         (_mm256_mask_i32scatter_epi32): Ditto.
38989         (_mm_i32scatter_epi32): Ditto.
38990         (_mm_mask_i32scatter_epi32): Ditto.
38991         (_mm256_i32scatter_epi64): Ditto.
38992         (_mm256_mask_i32scatter_epi64): Ditto.
38993         (_mm_i32scatter_epi64): Ditto.
38994         (_mm_mask_i32scatter_epi64): Ditto.
38995         (_mm256_i64scatter_epi32): Ditto.
38996         (_mm256_mask_i64scatter_epi32): Ditto.
38997         (_mm_i64scatter_epi32): Ditto.
38998         (_mm_mask_i64scatter_epi32): Ditto.
38999         (_mm256_i64scatter_epi64): Ditto.
39000         (_mm256_mask_i64scatter_epi64): Ditto.
39001         (_mm_i64scatter_epi64): Ditto.
39002         (_mm_mask_i64scatter_epi64): Ditto.
39003         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
39004         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
39005         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
39006         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
39007         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
39008         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
39009         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
39010         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
39011         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
39012         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
39013         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
39014         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
39015         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
39016         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
39017         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
39018         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
39019         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
39020         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
39021         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
39022         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
39023         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
39024         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
39025         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
39026         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
39027         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
39028         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
39029         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
39030         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
39031         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
39032         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
39033         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
39034         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
39035         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
39036         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
39037         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
39038         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
39039         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
39040         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
39041         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
39042         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
39043         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
39044         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
39045         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
39046         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
39047         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
39048         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
39049         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
39050         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
39051         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
39052         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
39053         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
39054         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
39055         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
39056         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
39057         definitions accordingly.
39058
39059 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
39060             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
39061
39062         PR target/79079
39063         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
39064         gen_lowpart.
39065
39066 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
39067
39068         PR target/79058
39069         * ira-conflicts.c (ira_build_conflicts): Update total conflict
39070         hard regs for inner regno.
39071
39072 2017-01-17  Martin Liska  <mliska@suse.cz>
39073
39074         PR ipa/71207
39075         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
39076         assumption and add comment.
39077
39078 2017-01-17  Nathan Sidwell  <nathan@acm.org>
39079
39080         * ipa-visibility.c (localize_node): New function, broken out of ...
39081         (function_and_variable_visibility): ... here. Call it.
39082
39083 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
39084
39085         PR middle-end/77445
39086         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
39087         correctly set frequency of oudgoing edge.
39088         (duplicate_thread_path): Fix profile updating.
39089
39090 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39091
39092         PR other/79046
39093         * configure.ac: Add GCC_BASE_VER.
39094         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
39095         version from BASE-VER file.
39096         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
39097         (gcc.o): Depend on $(BASEVER).
39098         * common.opt (dumpfullversion): New option.
39099         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
39100         * doc/invoke.texi: Document -dumpfullversion.
39101         * doc/install.texi: Document --with-gcc-major-version-only.
39102         * configure: Regenerated.
39103
39104 2017-01-17  Richard Biener  <rguenther@suse.de>
39105
39106         PR tree-optimization/71433
39107         * tree-vrp.c (register_new_assert_for): Merge same asserts
39108         on all incoming edges.
39109         (process_assert_insertions_for): Handle insertions at the
39110         beginning of BBs.
39111
39112 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
39113
39114         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
39115         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
39116
39117 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
39118
39119         PR target/78633
39120         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
39121         RTL sharing.
39122
39123 2017-01-17  Alan Modra  <amodra@gmail.com>
39124
39125         PR target/79066
39126         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
39127         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
39128         symbolic stack limit when pic.
39129
39130 2017-01-16  Martin Sebor  <msebor@redhat.com>
39131
39132         PR tree-optimization/78608
39133         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
39134
39135 2017-01-16  Jeff Law  <law@redhat.com>
39136
39137         Revert:
39138         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
39139         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
39140         for several include directories that may be relative to sysroot.
39141         * config/i386/x-mingw32 (gplus_includedir): Define.
39142         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
39143         (native_system_includedir): Likewise.
39144         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
39145         override if TARGET_SYSTEM_ROOT is defined.
39146         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
39147
39148         PR tree-optimization/79090
39149         PR tree-optimization/33562
39150         PR tree-optimization/61912
39151         PR tree-optimization/77485
39152         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
39153         and computed trims into the dump file.
39154
39155 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
39156
39157         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
39158
39159 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
39160
39161         PR c/79089
39162         * gimplify.c (gimplify_init_constructor): If want_value and
39163         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
39164         fix.
39165
39166         PR target/79080
39167         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
39168         sequence.  Formatting fixes.
39169         (doloop_optimize): Formatting fixes.
39170
39171         PR driver/49726
39172         * gcc.c (debug_level_greater_than_spec_func): New function.
39173         (static_spec_functions): Add debug-level-gt spec function.
39174         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
39175         !g0.
39176         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
39177         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
39178         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
39179         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
39180         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
39181         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
39182
39183 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
39184
39185         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
39186         QImode fixups to general and mask registers only.
39187
39188 2017-01-16  Carl Love  <cel@us.ibm.com>
39189
39190         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
39191         for built-in functions
39192         vector signed char vec_nabs (vector signed char)
39193         vector signed short vec_nabs (vector signed short)
39194         vector signed int vec_nabs (vector signed int)
39195         vector signed long long vec_nabs (vector signed long long)
39196         vector float vec_nabs (vector float)
39197         vector double vec_nabs (vector double)
39198         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
39199         and NABS overload.
39200         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
39201         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
39202         * doc/extend.texi: Update the documentation file for the new built-in
39203         functions.
39204
39205 2017-01-16  Martin Sebor  <msebor@redhat.com>
39206
39207         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
39208         message.
39209
39210 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39211
39212         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
39213         UNSPEC_VSX__XXSPLTD to require special splat handling.
39214
39215 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
39216
39217         PR bootstrap/78616
39218         * system.h: Poison strndup.
39219
39220 2017-01-16  Alan Modra  <amodra@gmail.com>
39221
39222         PR target/79098
39223         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
39224         use a switch.
39225
39226 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
39227
39228         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
39229
39230 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
39231
39232         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
39233         call recog here.  Assert that INSN_CODE (insn) is non-negative.
39234
39235 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
39236
39237         PR target/72749
39238         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
39239         fallthrough.
39240         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
39241         in the currently scheduled RTL fragment.
39242
39243 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
39244
39245         PR rtl-optimization/78751
39246         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
39247         give up.
39248
39249 2017-01-14  Jeff Law  <law@redhat.com>
39250
39251         PR tree-optimization/79090
39252         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
39253         variable length stores.
39254         (compute_trims): Delete dead assignment to *trim_tail.
39255         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
39256         zero length.
39257
39258 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
39259
39260         PR rtl-optimization/78626
39261         PR rtl-optimization/78727
39262         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
39263         of a block, and split such blocks after everything else is finished.
39264
39265 2017-01-14  Alan Modra  <amodra@gmail.com>
39266
39267         PR target/72749
39268         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
39269         target legitimate_combined_insn.
39270         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
39271         (rs6000_legitimate_combined_insn): New function.
39272         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
39273         all uses.
39274         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
39275         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
39276         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
39277
39278 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
39279
39280         * doc/frontends.texi (G++ and GCC): Remove references to Java.
39281
39282 2017-01-13  Jeff Law  <law@redhat.com>
39283
39284         PR tree-optimization/33562
39285         PR tree-optimization/61912
39286         PR tree-optimization/77485
39287         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
39288         a statement.
39289         (delete_dead_assignment): Likewise.
39290         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
39291         statement to delete_dead_call and delete_dead_assignment.
39292
39293 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
39294
39295         PR c/78304
39296         * substring-locations.c (format_warning_va): Strengthen case 1 so
39297         that both endpoints of the substring must be within the format
39298         range for just the substring to be printed.
39299
39300 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
39301
39302         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
39303         * config/i386/i386.c (ix86_target_string): Add missing options
39304         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
39305         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
39306         flags_other and ix86_target_other to flags2_other.  Display unknown
39307         isa2 options.
39308         (ix86_valid_target_attribute_inner_p): Add missing options and
39309         reorder options by implied ISAs, as in ix86_target_string.
39310
39311 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
39312
39313         * hash-table.h (hash_table::too_empty_p): New function.
39314         (hash_table::expand): Use it.
39315         (hash_table::traverse): Likewise.
39316         (hash_table::empty_slot): Use sizeof (value_type) instead of
39317         sizeof (PTR) to convert bytes to elements.  Shrink the table
39318         if the current size is excessive for the current number of
39319         elements.
39320
39321 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
39322
39323         * ira-costs.c (record_reg_classes): Break from the inner loop
39324         early once alt_fail is known to be true.  Update outer loop
39325         handling accordingly.
39326
39327 2017-01-13  Jeff Law  <law@redhat.com>
39328
39329         * tree-ssa-dse.c (decrement_count): New function.
39330         (increment_start_addr, maybe_trim_memstar_call): Likewise.
39331         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
39332         when we know the partially dead statement is a mem* function.
39333
39334         PR tree-optimization/61912
39335         PR tree-optimization/77485
39336         * tree-ssa-dse.c: Include expr.h.
39337         (maybe_trim_constructor_store): New function.
39338         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
39339
39340         PR tree-optimization/33562
39341         PR tree-optimization/61912
39342         PR tree-optimization/77485
39343         * doc/invoke.texi: Document new dse-max-object-size param.
39344         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
39345         * tree-ssa-dse.c: Include params.h.
39346         (dse_store_status): New enum.
39347         (initialize_ao_ref_for_dse): New, partially extracted from
39348         dse_optimize_stmt.
39349         (valid_ao_ref_for_dse, normalize_ref): New.
39350         (setup_live_bytes_from_ref, compute_trims): Likewise.
39351         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
39352         (maybe_trim_partially_dead_store): Likewise.
39353         (maybe_trim_complex_store): Likewise.
39354         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
39355         Track what bytes live from the original store.  Return tri-state
39356         for dead, partially dead or live.
39357         (dse_dom_walker): Add constructor, destructor and new private members.
39358         (delete_dead_call, delete_dead_assignment): New extracted from
39359         dse_optimize_stmt.
39360         (dse_optimize_stmt): Make a member of dse_dom_walker.
39361         Use initialize_ao_ref_for_dse.
39362
39363         PR tree-optimization/33562
39364         PR tree-optimization/61912
39365         PR tree-optimization/77485
39366         * sbitmap.h (bitmap_count_bits): Prototype.
39367         (bitmap_clear_range, bitmap_set_range): Likewise.
39368         * sbitmap.c (bitmap_clear_range): New function.
39369         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
39370
39371 2017-01-13  Martin Liska  <mliska@suse.cz>
39372
39373         PR ipa/79043
39374         * function.c (set_cfun): Add new argument force.
39375         * function.h (set_cfun): Likewise.
39376         * ipa-inline-transform.c (inline_call): Use the function when
39377         strict alising from is dropped for function we inline to.
39378
39379 2017-01-13  Richard Biener  <rguenther@suse.de>
39380
39381         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
39382         for dumping GIMPLE INTEGER_CSTs.
39383
39384 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39385
39386         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
39387         to 201112L since C++17.
39388
39389 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
39390
39391         PR sanitizer/78887
39392         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
39393         if -fsanitize=kernel-address is present.
39394
39395 2017-01-13  Richard Biener  <rguenther@suse.de>
39396
39397         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
39398         as _Literal ( type ) number in case usual suffixes do not
39399         preserve all information.
39400
39401 2017-01-13  Richard Biener  <rguenther@suse.de>
39402
39403         PR tree-optimization/77283
39404         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
39405         and ssa-iterators.h.
39406         (is_feasible_trace): Implement a cost model based on joiner
39407         PHI node uses.
39408
39409 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
39410
39411         PR target/79004
39412         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
39413         char or short to __float128/_Float128 directly.
39414
39415 2017-01-12  Martin Sebor  <msebor@redhat.com>
39416
39417         to -Wformat-overflow.
39418         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
39419         (min_bytes_remaining): Same.
39420         (get_string_length): Same.
39421         (format_string): Same.
39422         (format_directive): Same.
39423         (add_bytes): Same.
39424         (pass_sprintf_length::handle_gimple_call): Same.
39425
39426 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
39427
39428         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
39429         info.nowrite calls with no lhs that can't throw.  Return bool
39430         whether gsi_remove has been called or not.
39431         (pass_sprintf_length::handle_gimple_call): Return bool whether
39432         try_substitute_return_value called gsi_remove.  Formatting fix.
39433         (pass_sprintf_length::execute): Don't use gsi_remove if
39434         handle_gimple_call returned true.
39435
39436         PR bootstrap/79069
39437         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
39438         be removed due to side-effects, don't remove following barrier nor
39439         turn the successor edge into fallthru edge.
39440
39441 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39442
39443         PR target/79044
39444         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
39445         element-reversing loads and stores as not swappable.
39446
39447 2017-01-12  Nathan Sidwell  <nathan@acm.org>
39448             Nicolai Stange  <nicstange@gmail.com>
39449
39450         * combine.c (try_combine): Don't ignore result of overlap checking
39451         loop.  Combine overlap & asm check into single loop.
39452
39453 2017-01-12  Richard Biener  <rguenther@suse.de>
39454
39455         * tree-pretty-print.c (dump_generic_node): Provide -gimple
39456         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
39457
39458 2017-01-12  Richard Biener  <rguenther@suse.de>
39459
39460         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
39461         and TS_TARGET_OPTION directly derive from TS_BASE.
39462         * tree-core.h (tree_optimization_option): Derive from tree_base.
39463         (tree_target_option): Likewise.
39464
39465 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
39466
39467         * config/i386/i386.c (memory_address_length): Increase len
39468         only when rip_relative_addr_p returns false.
39469
39470 2017-01-11  Julia Koval  <julia.koval@intel.com>
39471
39472         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
39473         (OPTION_MASK_ISA_SGX_SET): New.
39474         (ix86_handle_option): Handle OPT_msgx.
39475         * config.gcc: Added sgxintrin.h.
39476         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
39477         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
39478         * config/i386/i386.c (ix86_target_string): Add -msgx.
39479         (PTA_SGX): New.
39480         (ix86_option_override_internal): Handle new options.
39481         (ix86_valid_target_attribute_inner_p): Add sgx.
39482         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
39483         * config/i386/i386.opt: Add msgx.
39484         * config/i386/sgxintrin.h: New file.
39485         * config/i386/x86intrin.h: Add sgxintrin.h.
39486
39487 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
39488
39489         PR c++/71537
39490         * fold-const.c (maybe_nonzero_address): Return 1 for function
39491         local objects.
39492         (tree_single_nonzero_warnv_p): Don't handle function local objects
39493         here.
39494
39495         PR c++/72813
39496         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
39497         of c-header.
39498
39499 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
39500
39501         PR driver/78877
39502         * opts.c: Include "spellcheck.h"
39503         (struct string_fragment): New struct.
39504         (struct edit_distance_traits<const string_fragment &>): New
39505         struct.
39506         (get_closest_sanitizer_option): New function.
39507         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
39508
39509 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
39510
39511         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
39512         by 12.
39513         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
39514         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
39515         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
39516         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
39517         for initial die_offset if dwarf_split_debug_info.
39518         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
39519         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
39520         fields.
39521         (output_skeleton_debug_sections): Formatting fix.  Use
39522         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
39523         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
39524
39525 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
39526
39527         * config/arm/cortex-a53.md: Add bypasses for
39528         cortex_a53_r2f_cvt.
39529         (cortex_a53_r2f): Only use for transfers.
39530         (cortex_a53_f2r): Likewise.
39531         (cortex_a53_r2f_cvt): Add reservation for conversions.
39532         (cortex_a53_f2r_cvt): Likewise.
39533
39534 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
39535
39536         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
39537         to all inlined functions, change static to extern.
39538
39539 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
39540
39541         PR target/78253
39542         * config/arm/arm.c (legitimize_pic_address): Handle reference to
39543         weak symbol.
39544         (arm_assemble_integer): Likewise.
39545
39546 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
39547
39548         * config.gcc: Use new awk script to check CPU, FPU and architecture
39549         parameters for --with-... options.
39550         * config/arm/parsecpu.awk: New file
39551         * config/arm/arm-cpus.in: New file.
39552         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
39553         files.
39554         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
39555         files.
39556         * config/arm/t-arm: Update dependency rules.
39557         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
39558         of processing .def files.
39559         * config/arm/genopt.sh: Deleted.
39560         * config/arm/gentune.sh: Deleted.
39561         * config/arm/arm-cores.def: Deleted.
39562         * config/arm/arm-arches.def: Deleted.
39563         * config/arm/arm-fpus.def: Deleted.
39564         * config/arm/arm-tune.md: Regenerated.
39565         * config/arm/arm-tables.opt: Regenerated.
39566         * config/arm/arm-cpu.h: New generated file.
39567         * config/arm/arm-cpu-data.h: New generated file.
39568         * config/arm/arm-cpu-cdata.h: New generated file.
39569
39570 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
39571
39572         PR lto/79042
39573         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
39574         bit.
39575         (input_varpool_node): Unpack dynamically_initialized bit.
39576
39577 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
39578
39579         PR rtl-optimization/79032
39580         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
39581         the alignment of the adjusted memory reference against that of MODE,
39582         instead of the alignment of the original memory reference.
39583
39584 2017-01-11  Martin Jambor  <mjambor@suse.cz>
39585
39586         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
39587         test.
39588         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
39589         decorated functions.
39590
39591 2017-01-11  Richard Biener  <rguenther@suse.de>
39592
39593         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
39594         set range/nonnull info for PHI results.  Do not set it on
39595         stmts marked for removal.
39596
39597 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
39598
39599         * expr.c (store_field): In the bitfield case, fetch the return value
39600         from the registers before applying a single big-endian adjustment.
39601         Always do a final load for a BLKmode value not larger than a word.
39602
39603 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
39604
39605         PR c++/77949
39606         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
39607         that we correctly handle column numbers greater than
39608         LINE_MAP_MAX_COLUMN_NUMBER.
39609
39610 2017-01-10  Martin Sebor  <msebor@redhat.com>
39611
39612         PR middle-end/78245
39613         * gimple-ssa-sprintf.c (get_destination_size): Call
39614         {init,fini}object_sizes.
39615         * tree-object-size.c (addr_object_size): Adjust.
39616         (pass_through_call): Adjust.
39617         (pass_object_sizes::execute): Adjust.
39618         * tree-object-size.h (fini_object_sizes): Declare.
39619
39620 2017-01-10  Martin Sebor  <msebor@redhat.com>
39621
39622         PR tree-optimization/78775
39623         * builtins.c (get_size_range): Move...
39624         * calls.c: ...to here.
39625         (alloc_max_size): Accept zero argument.
39626         (operand_signed_p): Remove.
39627         (maybe_warn_alloc_args_overflow): Call get_size_range.
39628         * calls.h (get_size_range): Declare.
39629
39630 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
39631
39632         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
39633         from TI's devices.csv file as of September 2016.
39634         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
39635
39636 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
39637
39638         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
39639         * doc/invoke.texi: Likewise.
39640         * doc/md.texi: Likewise.
39641         * doc/objc.texi: Likewise.
39642
39643 2017-01-10  Joshua Conner  <joshconner@google.com>
39644
39645         * config/arm/fuchsia-elf.h: New file.
39646         * config/fuchsia.h: New file.
39647         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
39648         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
39649         targets.
39650         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
39651
39652 2016-01-10  Richard Biener  <rguenther@suse.de>
39653
39654         PR tree-optimization/79034
39655         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
39656         Propagate out degenerate PHIs in the joiner.
39657
39658 2017-01-10  Martin Liska  <mliska@suse.cz>
39659
39660         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
39661         (sort_congruence_classes_by_decl_uid): Likewise.
39662         (sort_congruence_class_groups_by_decl_uid): Likewise.
39663         (sem_item_optimizer::merge_classes): Sort class, groups in these
39664         classes and members in the groups by DECL_UID of declarations.
39665         This would make merge operations stable.
39666
39667 2017-01-10  Martin Liska  <mliska@suse.cz>
39668
39669         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
39670         usage of m_classes_vec.
39671         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
39672         (sem_item_optimizer::get_group_by_hash): Likewise.
39673         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
39674         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
39675         (sem_item_optimizer::verify_classes): Likewise.
39676         (sem_item_optimizer::process_cong_reduction): Likewise.
39677         (sem_item_optimizer::dump_cong_classes): Likewise.
39678         (sem_item_optimizer::merge_classes): Likewise.
39679         * ipa-icf.h (congruence_class_hash): Rename from
39680         congruence_class_group_hash.  Remove declaration of m_classes_vec.
39681
39682 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
39683
39684         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
39685         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
39686         * config.gcc: Add avx512vpopcntdqintrin.h.
39687         * config/i386/avx512vpopcntdqintrin.h: New.
39688         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
39689         * config/i386/i386-builtin-types.def: Add new types.
39690         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
39691         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
39692         __builtin_ia32_vpopcountq_v8di_mask): New.
39693         * config/i386/i386-c.c (ix86_target_macros_internal): Define
39694         __AVX512VPOPCNTDQ__.
39695         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
39696         (PTA_AVX512VPOPCNTDQ): Define.
39697         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
39698         TARGET_AVX512VPOPCNTDQ_P): Define.
39699         * config/i386/i386.opt: Add mavx512vpopcntdq.
39700         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
39701         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
39702
39703 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
39704
39705         PR middle-end/77484
39706         * predict.def (PRED_CALL): Set to 67.
39707
39708 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
39709
39710         * expr.c (store_field): In the bitfield case, if the value comes from
39711         a function call and is of an aggregate type returned in registers, do
39712         not modify the field mode; extract the value in all cases if the mode
39713         is BLKmode and the size is not larger than a word.
39714
39715 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
39716
39717         PR target/71017
39718         * config/i386/cpuid.h: Fix undefined behavior.
39719
39720 2017-01-04  Jeff Law  <law@redhat.com>
39721
39722         PR tree-optimization/79007
39723         PR tree-optimization/67955
39724         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
39725         conservative for pt.null when flag_non_call_exceptions is on.
39726
39727 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
39728
39729         PR translation/79019
39730         PR translation/79020
39731         * params.def (PARAM_INLINE_MIN_SPEEDUP,
39732         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
39733         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
39734         in descriptions.
39735         * config/avr/avr.opt (maccumulate-args): Likewise.
39736         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
39737         * common.opt (freport-bug): Likewise.
39738         * cif-code.def (CIF_FINAL_ERROR): Likewise.
39739         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
39740         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
39741         translatable string.
39742         * config/i386/i386.c (function_value_32): Likewise.
39743         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
39744         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
39745         Likewise.
39746         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
39747         * common/config/msp430/msp430-common.c (msp430_handle_option):
39748         Likewise.
39749         * symtab.c (symtab_node::verify_base): Likewise.
39750         * opts.c (set_debug_level): Likewise.
39751         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
39752         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
39753         missing whitespace to translatable strings.
39754         * config/avr/avr.md (bswapsi2): Fix typo in comment.
39755         * config/sh/superh.h: Likewise.
39756         * config/i386/xopintrin.h: Likewise.
39757         * config/i386/znver1.md: Likewise.
39758         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
39759         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
39760         * double-int.h (struct double_int): Likewise.
39761         * double-int.c (div_and_round_double): Likewise.
39762         * wide-int.cc: Likewise.
39763         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
39764         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
39765         * cfgcleanup.c (crossjumps_occured): Renamed to ...
39766         (crossjumps_occurred): ... this.
39767         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
39768         Adjust all uses.
39769
39770         PR tree-optimization/78899
39771         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
39772         returning bool return struct loop *, NULL for failure and the new
39773         loop on success.
39774         (versionable_outer_loop_p): Don't version outer loop if it has
39775         dont_vectorized bit set.
39776         (tree_if_conversion): When versioning outer loop, ensure
39777         tree_if_conversion is performed also on the inner loop of the
39778         non-vectorizable outer loop copy.
39779         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
39780         LOOP_VECTORIZED in inner loop of the scalar outer loop and
39781         prevent vectorization of it.
39782         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
39783         the outer loop vectorization of the non-scalar version is attempted
39784         before vectorization of the inner loop in scalar version.  If
39785         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
39786         vectorization of its inner loop.
39787         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
39788         has 2 inner loops, rename also on edges from bb whose single pred
39789         is outer_loop->header.  Fix typo in function comment.
39790
39791 2017-01-09  Martin Sebor  <msebor@redhat.com>
39792
39793         PR bootstrap/79033
39794         * asan.c (asan_emit_stack_protection): Increase local buffer size
39795         to avoid snprintf truncation warning.
39796
39797 2017-01-09  Andrew Pinski  <apinski@cavium.com>
39798
39799         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
39800         to reference thunderx2t99 for the tuning structure
39801         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
39802         Rename to ...
39803         (thunderx2t99_extra_costs): This.
39804         * config/aarch64/aarch64-tune.md: Regenerate.
39805         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
39806         (vulcan_addrcost_table): This.
39807         (vulcan_regmove_cost): Rename to ...
39808         (thunderx2t99_regmove_cost): This.
39809         (vulcan_vector_cost): Rename to ...
39810         (thunderx2t99_vector_cost): this.
39811         (vulcan_branch_cost): Rename to ...
39812         (thunderx2t99_branch_cost): This.
39813         (vulcan_tunings): Rename to ...
39814         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
39815         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
39816
39817 2017-01-09  Martin Jambor  <mjambor@suse.cz>
39818
39819         PR ipa/78365
39820         PR ipa/78599
39821         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
39822         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
39823         (propagate_vr_accross_jump_function): Use the above function for all
39824         value range computations for pass-through jump functions and type
39825         converasion from explicit value range values.
39826         (ipcp_propagate_stage): Do not attempt to deduce types of formal
39827         parameters from TYPE_ARG_TYPES.
39828         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
39829         (ipa_write_node_info): Stream type of the actual argument.
39830         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
39831
39832 2017-01-09  Martin Liska  <mliska@suse.cz>
39833
39834         PR pch/78970
39835         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
39836         (lookup_compiler): Do not show error message with have_E.
39837
39838 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
39839
39840         PR tree-optimization/78938
39841         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
39842         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
39843         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
39844         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
39845         fixes.
39846
39847 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39848
39849         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
39850         is const0_rtx.
39851
39852 2017-01-09  Richard Biener  <rguenther@suse.de>
39853
39854         PR tree-optimization/78997
39855         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
39856         name condition properly.
39857
39858 2017-01-09  Richard Biener  <rguenther@suse.de>
39859
39860         PR debug/79000
39861         * dwarf2out.c (is_cxx): New overload with context.
39862         (is_naming_typedef_decl): Use it.
39863
39864 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
39865
39866         * invoke.texi (Option Summary): Correct spacing in option lists
39867         and add line breaks to fix over-long lines.
39868
39869 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
39870
39871         PR middle-end/17660
39872
39873         * extend.texi (Common Variable Attributes): Add xref to GCC
39874         Internals manual to explain mode attribute keywords.
39875
39876 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
39877
39878         PR other/16519
39879         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
39880         and Preprocessor Options.
39881         (Options for Linking): Document -pthread here....
39882         (RS/6000 and PowerPC Options): ...not here.
39883         (Solaris 2 Options): ...or here.
39884         * doc/cppopts.texi: Document -pthread.
39885
39886 2017-01-08  Martin Sebor  <msebor@redhat.com>
39887
39888         PR middle-end/77708
39889         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
39890         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
39891         New member functions.
39892         (format_directive): Used them.
39893         (add_bytes): Same.
39894         (pass_sprintf_length::handle_gimple_call): Same.
39895         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
39896         to avoid truncation for any argument.
39897         (extract_affine_mul): Same.
39898         * tree.c (get_file_function_name): Same.
39899
39900 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
39901
39902         PR middle-end/77484
39903         * predict.def (PRED_INDIR_CALL): Set to 86.
39904
39905 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
39906
39907         PR preprocessor/54124
39908         * doc/cppopts.texi: Reformat -d subtable to list the full name
39909         of the options.  Add cross-reference to the docs for the general
39910         compiler -d options.
39911         * doc/invoke.texi (Developer Options): Add cross-reference to the
39912         preprocessor-specific -d option documentation.
39913
39914 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
39915
39916         PR preprocessor/13498
39917         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
39918         redudant material, and reflect new command-line options.
39919         (System Headers): Likewise.
39920
39921 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
39922
39923         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
39924         -isystem, and -idirafter.  Copy-edit.
39925         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
39926         default for -ftrack-macro-expansion.  Delete obsolete and
39927         badly-formatted implementation details about -fdebug-cpp output.
39928         * doc/cppwarnopts.texi: Copy-edit.
39929
39930 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
39931
39932         PR c++/72803
39933         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
39934         that the transition from a max line width >= 1<<10 to narrower
39935         lines works correctly.
39936
39937 2017-01-07  Alexandre Oliva  <aoliva@redhat.com>
39938
39939         * doc/options.texi (PerFunction): New.
39940         * opt-functions.awk (switch_flags): Map both Optimization and
39941         PerFunction to CL_OPTIMIZATION.
39942         * opth-gen.awk: Test for PerFunction flag along with
39943         Optimization.
39944         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
39945         it only when the latter is present.  Skip those that don't in
39946         the hash function generator.
39947         * common.opt (fvar-tracking): Mark as PerFunction instead of
39948         Optimization.
39949         (fvar-tracking-assignments): Likewise.
39950         (fvar-tracking-assignments-toggle): Likewise.
39951         (fvar-tracking-uninit): Likewise.
39952
39953 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
39954
39955         PR translation/79018
39956         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
39957         the and store.
39958
39959 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
39960
39961         PR target/57583
39962         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
39963         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
39964         TARGET_LONG_JUMP_TABLE_OFFSETS.
39965         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
39966         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
39967         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
39968         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
39969         * config/m68k/m68k.md (tablejump expander): Likewise.
39970         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
39971         TARGET_LONG_JUMP_TABLE_OFFSETS.
39972         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
39973         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
39974
39975 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
39976             David Holsgrove <david.holsgrove@xilinx.com>
39977
39978         * common/config/microblaze/microblaze-common.c
39979         (TARGET_EXCEPT_UNWIND_INFO): Remove.
39980         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
39981         New prototype.
39982         * config/microblaze/microblaze.c (microblaze_must_save_register)
39983         (microblaze_expand_epilogue, microblaze_return_addr): Handle
39984         calls_eh_return.
39985         (microblaze_eh_return): New function.
39986         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
39987         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
39988         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
39989         * config/microblaze/microblaze.md (eh_return): New pattern.
39990
39991 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
39992
39993         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
39994         GCC_DIAGNOSTIC_STRINGIFY): Define.
39995
39996         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
39997
39998 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
39999
40000         * config/arm/arm.md (<mcrr>): New.
40001         (<mrrc>): New.
40002         * config/arm/arm.c (arm_arch5te): New.
40003         (arm_option_override): Set arm_arch5te.
40004         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
40005         and mrrc2.
40006         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
40007         (arm_mcrr_qualifiers): ... this. New.
40008         (MRRC_QUALIFIERS): Define to...
40009         (arm_mrrc_qualifiers): ... this. New.
40010         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
40011         __arm_mrrc2): New.
40012         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
40013         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
40014         (MRRCI, mrrc, MRRC): New.
40015         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
40016         VUNSPEC_MRRC2): New.
40017
40018 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40019
40020         * config/arm/arm.md (<mcr>): New.
40021         (<mrc>): New.
40022         * config/arm/arm.c (arm_coproc_builtin_available): Add
40023         support for mcr, mrc, mcr2 and mrc2.
40024         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
40025         (arm_mcr_qualifiers): ... this. New.
40026         (MRC_QUALIFIERS): Define to ...
40027         (arm_mrc_qualifiers): ... this. New.
40028         (MCR_QUALIFIERS): Define to ...
40029         (arm_mcr_qualifiers): ... this. New.
40030         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
40031         __arm_mrc2): New.
40032         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
40033         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
40034         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
40035         VUNSPEC_MRC2): New.
40036
40037 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40038
40039         * config/arm/arm.md (*ldc): New.
40040         (*stc): New.
40041         (<ldc>): New.
40042         (<stc>): New.
40043         * config/arm/arm.c (arm_coproc_builtin_available): Add
40044         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
40045         (arm_coproc_ldc_stc_legitimate_address): New.
40046         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
40047         'qualifier_const_pointer'.
40048         (LDC_QUALIFIERS): Define to...
40049         (arm_ldc_qualifiers): ... this. New.
40050         (STC_QUALIFIERS): Define to...
40051         (arm_stc_qualifiers): ... this. New.
40052         * config/arm/arm-protos.h
40053         (arm_coproc_ldc_stc_legitimate_address): New.
40054         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
40055         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
40056         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
40057         stc2, stcl, stc2l): New.
40058         * config/arm/constraints.md (Uz): New.
40059         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
40060         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
40061         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
40062         VUNSPEC_STC2L): New.
40063
40064 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40065
40066         * config/arm/arm.md (<cdp>): New.
40067         * config/arm/arm.c (neon_const_bounds): Rename this ...
40068         (arm_const_bounds): ... this.
40069         (arm_coproc_builtin_available): New.
40070         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
40071         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
40072         (CDP_QUALIFIERS): Define to...
40073         (arm_cdp_qualifiers): ... this. New.
40074         (void_UP): Define.
40075         (arm_expand_builtin_args): Add case for 6 arguments.
40076         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
40077         (arm_const_bounds): ... this.
40078         (arm_coproc_builtin_available): New.
40079         * config/arm/arm_acle.h (__arm_cdp): New.
40080         (__arm_cdp2): New.
40081         * config/arm/arm_acle_builtins.def (cdp): New.
40082         (cdp2): New.
40083         * config/arm/iterators.md (CDPI,CDP,cdp): New.
40084         * config/arm/neon.md: Rename all 'neon_const_bounds' to
40085         'arm_const_bounds'.
40086         * config/arm/types.md (coproc): New.
40087         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
40088         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
40089         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
40090         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
40091
40092 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40093
40094         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
40095         (UBINOP_QUALIFIERS): New.
40096         (si_UP): Define.
40097         (acle_builtin_data): New. Change comment.
40098         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
40099         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
40100         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
40101         arm_acle_builtins.def.
40102         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
40103         (arm_init_acle_builtins): New.
40104         (CRC32_BUILTIN): Remove.
40105         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
40106         crc32cb, crc32ch and crc32cw.
40107         (arm_init_crc32_builtins): Remove.
40108         (arm_init_builtins): Use arm_init_acle_builtins rather
40109         than arm_init_crc32_builtins.
40110         (arm_expand_acle_builtin): New.
40111         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
40112         * config/arm/arm_acle_builtins.def: New.
40113
40114 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
40115
40116         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
40117         (arm_builtin_datum): ... this.
40118         (arm_init_neon_builtin): Rename to ...
40119         (arm_init_builtin): ... this. Add a new parameters PREFIX
40120         and USE_SIG_IN_NAME.
40121         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
40122         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
40123         'arm_builtin_datum'.
40124         (arm_init_vfp_builtins): Likewise.
40125         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
40126         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
40127         (arm_expand_neon_args): Rename to ...
40128         (arm_expand_builtin_args): ... this. Rename builtin_arg
40129         enum values and differentiate between ARG_BUILTIN_MEMORY
40130         and ARG_BUILTIN_NEON_MEMORY.
40131         (arm_expand_neon_builtin_1): Rename to ...
40132         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
40133         values, arm_expand_builtin_args and add bool parameter NEON.
40134         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
40135         (arm_expand_vfp_builtin): Likewise.
40136         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
40137
40138 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40139
40140         PR middle-end/77484
40141         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
40142         * predict.c (tree_estimate_probability_bb): Reverse direction of
40143         polymorphic call predictor.
40144
40145 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
40146
40147         * passes.c (execute_one_pass): Split out pass-skipping logic into...
40148         (determine_pass_name_match): ...this new function and...
40149         (should_skip_pass_p): ...this new function.
40150
40151 2017-01-06  Nathan Sidwell  <nathan@acm.org>
40152
40153         * ipa-visibility.c (function_and_variable_visibility): Reformat
40154         comments and long lines.  Remove extrneous if.
40155         * symtab.c (symtab_node::make_decl_local): Fix code format.
40156         (symtab_node::set_section_for_node): Fix comment typo.
40157
40158 2017-01-06  Martin Liska  <mliska@suse.cz>
40159
40160         PR bootstrap/79003
40161         * lra-constraints.c: Rename invariant to lra_invariant.
40162         * predict.c (set_even_probabilities): Initialize e to NULL.
40163
40164 2017-01-05  Martin Sebor  <msebor@redhat.com>
40165
40166         PR tree-optimization/78910
40167         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
40168         (format_integer): Correct off-by-one error in the handling
40169         of precision with negative numbers in signed conversions..
40170
40171 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
40172
40173         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
40174
40175 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
40176
40177         PR tree-optimization/71016
40178         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
40179         factor_out_conditional_conversion.  Formatting fix.
40180         (factor_out_conditional_conversion): Add cond_stmt argument.
40181         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
40182         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
40183         Formatting fix.
40184
40185 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
40186
40187         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
40188         read-rtl-function.o, and selftest-rtl.o.
40189         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
40190         (selftest::aarch64_test_loading_full_dump): New function.
40191         (selftest::aarch64_run_selftests): New function.
40192         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
40193         selftest::aarch64_run_selftests.
40194         * config/i386/i386.c
40195         (selftest::ix86_test_loading_dump_fragment_1): New function.
40196         (selftest::ix86_test_loading_call_insn): New function.
40197         (selftest::ix86_test_loading_full_dump): New function.
40198         (selftest::ix86_test_loading_unspec): New function.
40199         (selftest::ix86_run_selftests): Call the new functions.
40200         * emit-rtl.c (maybe_set_max_label_num): New function.
40201         * emit-rtl.h (maybe_set_max_label_num): New decl.
40202         * function.c (instantiate_decls): Guard call to
40203         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
40204         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
40205         "static".
40206         * gensupport.c (gen_reader::gen_reader): Pass "false"
40207         for new "compact" param of rtx_reader.
40208         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
40209         rather than an empty string for NULL strings.
40210         * read-md.c: Potentially include config.h rather than bconfig.h.
40211         Wrap include of errors.h with #ifdef GENERATOR_FILE.
40212         (have_error): New global, copied from errors.c.
40213         (md_reader::read_name): Rename to...
40214         (md_reader::read_name_1): ...this, adding "out_loc" param,
40215         and converting "missing name or number" to returning false, rather
40216         than failing.
40217         (md_reader::read_name): Reimplement in terms of read_name_1.
40218         (md_reader::read_name_or_nil): New function.
40219         (md_reader::read_string): Handle "(nil)" by returning NULL.
40220         (md_reader::md_reader): Add new param "compact".
40221         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
40222         (md_reader::read_file): New method.
40223         * read-md.h (md_reader::md_reader): Add new param "compact".
40224         (md_reader::read_file): New method.
40225         (md_reader::is_compact): New accessor.
40226         (md_reader::read_name): Convert return type from void to file_location.
40227         (md_reader::read_name_or_nil): New decl.
40228         (md_reader::read_name_1): New decl.
40229         (md_reader::m_compact): New field.
40230         (noop_reader::noop_reader): Pass "false" for new "compact" param
40231         of rtx_reader.
40232         (rtx_reader::rtx_reader): Add new "compact" param.
40233         (rtx_reader::read_rtx_operand): Make virtual and convert return
40234         type from void to rtx.
40235         (rtx_reader::read_until): New decl.
40236         (rtx_reader::handle_any_trailing_information): New virtual function.
40237         (rtx_reader::postprocess): New virtual function.
40238         (rtx_reader::finalize_string): New virtual function.
40239         (rtx_reader::m_in_call_function_usage): New field.
40240         (rtx_reader::m_reuse_rtx_by_id): New field.
40241         * read-rtl-function.c: New file.
40242         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
40243         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
40244         (selftest::verify_three_block_rtl_cfg): New decl.
40245         * read-rtl-function.h: New file.
40246         * read-rtl.c: Potentially include config.h rather than bconfig.h.
40247         For host, include function.h, memmodel.h, and emit-rtl.h.
40248         (one_time_initialization): New function.
40249         (struct compact_insn_name): New struct.
40250         (compact_insn_names): New array.
40251         (find_code): Handle insn codes in compact dumps.
40252         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
40253         (bind_subst_iter_and_attr): Likewise.
40254         (add_condition_to_string): Likewise.
40255         (add_condition_to_rtx): Likewise.
40256         (apply_attribute_uses): Likewise.
40257         (add_current_iterators): Likewise.
40258         (apply_iterators): Likewise.
40259         (initialize_iterators): Guard usage of apply_subst_iterator with
40260         #ifdef GENERATOR_FILE.
40261         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
40262         (md_reader::read_mapping): Likewise.
40263         (add_define_attr_for_define_subst): Likewise.
40264         (add_define_subst_attr): Likewise.
40265         (read_subst_mapping): Likewise.
40266         (check_code_iterator): Likewise.
40267         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
40268         logic to...
40269         (one_time_initialization): New function.
40270         (rtx_reader::read_until): New method.
40271         (read_flags): New function.
40272         (parse_reg_note_name): New function.
40273         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
40274         Handle reuse_rtx ids.
40275         Wrap iterator lookup within #ifdef GENERATOR_FILE.
40276         Add parsing support for RTL dumps, mirroring the special-cases in
40277         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
40278         values, and calling handle_any_trailing_information.
40279         (rtx_reader::read_rtx_operand): Convert return type from void
40280         to rtx, returning return_rtx.  Handle case 'e'.  Call
40281         finalize_string on XSTR and XTMPL fields.
40282         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
40283          "(nil)" values were omitted.  Call the postprocess vfunc on the
40284         return_rtx.
40285         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
40286         class ctor.  Initialize m_in_call_function_usage.  Call
40287         one_time_initialization.
40288         * rtl-tests.c (selftest::test_uncond_jump): Call
40289         set_new_first_and_last_insn.
40290         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
40291         * selftest-rtl.c: New file.
40292         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
40293         (selftest::get_insn_by_uid): New decl.
40294         * selftest-run-tests.c (selftest::run_tests): Call
40295         read_rtl_function_c_tests.
40296         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
40297         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
40298         dumps.
40299
40300 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
40301
40302         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
40303         operands in a special way.  Assert that pos+len <= mode precision.
40304
40305 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
40306
40307         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
40308         3 argument Alias with unlimited for the negative form.
40309         (fno-vect-cost-model): Removed.
40310
40311 2017-01-05  Martin Liska  <mliska@suse.cz>
40312
40313         * hsa-gen.c (gen_hsa_divmod): New function.
40314         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
40315
40316 2017-01-05  Martin Liska  <mliska@suse.cz>
40317
40318         PR pch/78970
40319         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
40320         header.
40321
40322 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
40323
40324         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
40325         small constant length operands.
40326
40327 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
40328
40329         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
40330         between loop iterations.
40331
40332 2017-01-05  Martin Liska  <mliska@suse.cz>
40333
40334         PR sanitizer/78815
40335         * gimplify.c (gimplify_decl_expr): Compare to
40336         asan_poisoned_variables instread of checking flags.
40337         (gimplify_target_expr): Likewise.
40338         (gimplify_expr): Likewise.
40339         (gimplify_function_tree): Conditionally initialize
40340         asan_poisoned_variables.
40341
40342 2017-01-04  Jeff Law  <law@redhat.com>
40343
40344         PR tree-optimizatin/78812
40345         * rtl.h (contains_mem_rtx_p): Prototype.
40346         * ifcvt.c (containts_mem_rtx_p): Move from here to...
40347         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
40348         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
40349         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
40350         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
40351
40352 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40353
40354         * input.c (assert_char_at_range): Default-initialize actual_range.
40355
40356 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40357
40358         * df-scan.c (df_ref_create_structure): Make regno unsigned,
40359         to match the caller.
40360
40361 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40362
40363         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
40364         insns after final jump in test to emit dummy move.
40365
40366 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40367
40368         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
40369         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
40370
40371 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
40372
40373         * multiple_target.c (create_dispatcher_calls): Init e_next.
40374         * tree-ssa-loop-split.c (split_loop): Init border.
40375         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
40376         scalar_type.
40377
40378 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
40379
40380         PR target/71977
40381         PR target/70568
40382         PR target/78823
40383         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
40384         (altivec_register_operand): Do not return true if the operand
40385         contains a SUBREG mixing SImode and SFmode.
40386         (vsx_register_operand): Likewise.
40387         (vsx_reg_sfsubreg_ok): New predicate.
40388         (vfloat_operand): Do not return true if the operand contains a
40389         SUBREG mixing SImode and SFmode.
40390         (vint_operand): Likewise.
40391         (vlogical_operand): Likewise.
40392         (gpc_reg_operand): Likewise.
40393         (int_reg_operand): Likewise.
40394         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
40395         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
40396         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
40397         SImode and SFmode.
40398         (rs6000_emit_move_si_sf_subreg): New helper function.
40399         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
40400         fixup SUBREGs involving SImode and SFmode.
40401         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
40402         numbers for the new peephole2 optimization.
40403         (peephole2 for SFmode unions): New peephole2 to optimize cases in
40404         the GLIBC math library that do AND/IOR/XOR operations on single
40405         precision floating point.
40406         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
40407         target macros to say whether we need to avoid SUBREGs mixing
40408         SImode and SFmode.
40409         (TARGET_ALLOW_SF_SUBREG): Likewise.
40410         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
40411         (UNSPEC_SI_FROM_SF): Likewise.
40412         (iorxor): Change spacing.
40413         (and_ior_xor): New iterator for AND, IOR, and XOR.
40414         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
40415         (movdi_from_sf_zero_ext): Likewise.
40416         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
40417         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
40418         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
40419         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
40420         (fms<mode>4): Likewise.
40421         (fnma<mode>4): Likewise.
40422         (fnms<mode>4): Likewise.
40423         (nfma<mode>4): Likewise.
40424         (nfms<mode>4): Likewise.
40425
40426 2017-01-04  Marek Polacek  <polacek@redhat.com>
40427
40428         PR c++/64767
40429         * doc/invoke.texi: Document -Wpointer-compare.
40430
40431 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
40432
40433         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
40434         RejectNegative.
40435
40436         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
40437         descriptions for -gdwarf-5 and emit them as uleb128 instead of
40438         2-byte data.
40439
40440 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
40441
40442         PR target/78056
40443         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
40444         documentation of the powerpc_popcntb_ok attribute.
40445         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
40446         code to issue warning messages if a requested CPU configuration is
40447         not supported by the binary (assembler and loader) toolchain.
40448         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
40449         made to define a built-in function that has been disabled.
40450         (paired_init_builtins): Add assertion to prevent ICE if attempt is
40451         made to define a built-in function that has been disabled.
40452         (altivec_init_builtins): Add comment explaining why definition
40453         of the DST built-in functions is not preceded by an assertion
40454         check.  Add assertions to prevent ICE if attempts are made to
40455         define an altivec predicate or an abs* built-in function that has
40456         been disabled.
40457         (htm_init_builtins): Add comment explaining why definition of the
40458         htm built-in functions is not preceded by an assertion check.
40459
40460 2017-01-04  Jeff Law  <law@redhat.com>
40461
40462         PR tree-optimizatin/67955
40463         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
40464         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
40465         the points-to solution does not include pt_null.  Use DECL_PT_UID
40466         unconditionally.
40467
40468 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
40469
40470         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
40471         Use gen_int_mode instead of gen_lopwart for const_int operands.
40472
40473 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
40474
40475         PR tree-optimization/71563
40476         * match.pd: Simplify X << Y into X if Y is known to be 0 or
40477         out of range value - has low bits known to be zero.
40478
40479 2017-01-04  Alan Modra  <amodra@gmail.com>
40480
40481         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
40482         * configure: Regenerate.
40483         * config.in: Regenerate.
40484
40485 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
40486
40487         PR bootstrap/77569
40488         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
40489         a substring of the message, but strcmp with the whole message.  Ifdef
40490         ENABLE_NLS, translate the message first using dgettext.
40491
40492 2017-01-03  Jeff Law  <law@redhat.com>
40493
40494         PR tree-optimizatin/78856
40495         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
40496         (mark_threaded_blocks): Remove code to truncate thread paths that
40497         cross multiple loop headers.  Instead invalidate the cached loop
40498         iteration information and handle case of a thread path walking
40499         into an irreducible region.
40500
40501 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
40502
40503         PR target/78900
40504         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
40505         assertions.  Add support for doing the signbit if the IEEE 128-bit
40506         floating point value is in a GPR.
40507         * config/rs6000/rs6000.md (Fsignbit): Delete.
40508         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
40509         Update the length attribute if the value is in a GPR.
40510         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
40511         the sign or zero extension instruction, since the value is always 0/1.
40512         (signbit<mode>2_dm2): Delete using <Fsignbit>.
40513
40514         PR target/78953
40515         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
40516         extracting SImode to a GPR register so that we can generate a
40517         store, limit the vector to be in a traditional Altivec register
40518         for the vextuwrx instruction.
40519
40520 2017-01-03  Ian Lance Taylor  <iant@google.com>
40521
40522         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
40523
40524 2017-01-03  Martin Sebor  <msebor@redhat.com>
40525
40526         PR tree-optimization/78696
40527         * gimple-ssa-sprintf.c (format_floating): Correct handling of
40528         precision.  Use MPFR for %f for greater fidelity.  Correct handling
40529         of %g.
40530         (pass_sprintf_length::compute_format_length): Set width and precision
40531         specified by asrerisk to void_node for vararg functions.
40532         (try_substitute_return_value): Adjust dump output.
40533
40534 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
40535
40536         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
40537
40538 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
40539
40540         * doc/invoke.texi (SPARC options): Document -mlra as the default.
40541         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
40542         -mlra/-mno-lra was passed to the compiler.
40543
40544 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
40545
40546         PR rtl-optimization/65618
40547         * emit-rtl.c (try_split): Move initialization of "before" and
40548         "after" to just before the call to emit_insn_after_setloc.
40549
40550 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
40551
40552         * doc/md.texi (Standard Names): Remove reference to Java frontend.
40553
40554 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
40555
40556         * dwarf2out.c (gen_enumeration_type_die): When
40557         -gno-strict-dwarf, add a DW_AT_encoding attribute.
40558
40559 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
40560
40561         PR tree-optimization/78965
40562         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
40563         Change first argument from const call_info & to call_info &.  For %n
40564         set info.nowrite to false.
40565
40566         PR middle-end/78901
40567         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
40568         possibly throwing calls.
40569
40570         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
40571         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
40572         and fns handling, rather than in a separate case SSA_NAME.
40573
40574 2017-01-02  Jeff Law  <law@redhat.com>
40575
40576         * config/darwin-driver.c (darwin_driver_init): Const-correctness
40577         fixes for first_period and second_period variables.
40578
40579 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
40580
40581         PR target/78967
40582         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
40583         (*insvqi_1): New insn pattern.
40584         (*insvqi_1_mem_rex64): Ditto.
40585         (*insvqi_2): Ditto.
40586         (*insvqi_3): Rename from *insvqi.
40587
40588         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
40589
40590 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
40591
40592         * doc/cfg.texi (Edges): Remove reference to Java.
40593         (Maintaining the CFG): Ditto.
40594
40595 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40596
40597         PR middle-end/77674
40598         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
40599         transparent aliases.
40600
40601 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40602
40603         PR middle-end/77484
40604         * predict.def (PRED_CALL): Update hitrate.
40605         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
40606         * predict.c (tree_estimate_probability_bb): Split CALL predictor
40607         into direct/indirect/polymorphic variants.
40608
40609 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
40610
40611         Update copyright years.
40612
40613         * gcc.c (process_command): Update copyright notice dates.
40614         * gcov-dump.c (print_version): Ditto.
40615         * gcov.c (print_version): Ditto.
40616         * gcov-tool.c (print_version): Ditto.
40617         * gengtype.c (create_file): Ditto.
40618         * doc/cpp.texi: Bump @copying's copyright year.
40619         * doc/cppinternals.texi: Ditto.
40620         * doc/gcc.texi: Ditto.
40621         * doc/gccint.texi: Ditto.
40622         * doc/gcov.texi: Ditto.
40623         * doc/install.texi: Ditto.
40624         * doc/invoke.texi: Ditto.
40625 \f
40626 Copyright (C) 2017 Free Software Foundation, Inc.
40627
40628 Copying and distribution of this file, with or without modification,
40629 are permitted in any medium without royalty provided the copyright
40630 notice and this notice are preserved.