Disable -Wreturn-type by default in all languages other from C++.
[official-gcc.git] / gcc / ChangeLog
blob4e2e4151859918fec60627583ab50add49d7f66a
1 2017-11-15  Martin Liska  <mliska@suse.cz>
3         * tree-cfg.c (pass_warn_function_return::execute):
4         Compare warn_return_type for greater than zero.
6 2017-11-15  Sebastian Peryt  <sebastian.peryt@intel.com>
8         PR target/82941
9         PR target/82942
10         * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition
11         to return true on Xeon and not on Xeon Phi.
12         (ix86_check_avx256_register): Changed to ...
13         (ix86_check_avx_upper_register): ... this. Add extra check for
14         VALID_AVX512F_REG_OR_XI_MODE.
15         (ix86_avx_u128_mode_needed): Changed
16         ix86_check_avx256_register to ix86_check_avx_upper_register.
17         (ix86_check_avx256_stores): Changed to ...
18         (ix86_check_avx_upper_stores): ... this. Changed
19         ix86_check_avx256_register to ix86_check_avx_upper_register.
20         (ix86_avx_u128_mode_after): Changed
21         avx_reg256_found to avx_upper_reg_found. Changed
22         ix86_check_avx256_stores to ix86_check_avx_upper_stores.
23         (ix86_avx_u128_mode_entry): Changed
24         ix86_check_avx256_register to ix86_check_avx_upper_register.
25         (ix86_avx_u128_mode_exit): Ditto.
26         * config/i386/i386.h: (host_detect_local_cpu): New define.
28 2017-11-15  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
30         * config/arm/xgene1.md (xgene1): Split into automatons
31         xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd.
32         (xgene1_f_load): Adjust reservations and/or types.
33         (xgene1_f_store): Likewise.
34         (xgene1_load_pair): Likewise.
35         (xgene1_store_pair): Likewise.
36         (xgene1_fp_load1): Likewise.
37         (xgene1_load1): Likewise.
38         (xgene1_store1): Likewise.
39         (xgene1_move): Likewise.
40         (xgene1_alu): Likewise.
41         (xgene1_simd): Likewise.
42         (xgene1_bfm): Likewise.
43         (xgene1_neon_load1): Likewise.
44         (xgene1_neon_store1): Likewise.
45         (xgene1_neon_logic): Likewise.
46         (xgene1_neon_st1): Likewise.
47         (xgene1_neon_ld1r): Likewise.
48         (xgene1_alu_cond): Added.
49         (xgene1_shift_reg): Likwise.
50         (xgene1_bfx): Likewise.
51         (xgene1_mul): Split into xgene1_mul32, xgene1_mul64.
53 2017-11-15  Jakub Jelinek  <jakub@redhat.com>
55         PR target/82981
56         * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
57         ssa-iterators.h.
58         (can_widen_mult_without_libcall): New function.
59         (expand_mul_overflow): If only checking unsigned mul overflow,
60         not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
61         Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
62         no other way works.  Add MULT_HIGHPART_EXPR + MULT_EXPR support.
63         (expand_DIVMOD): Formatting fix.
64         * expmed.h (expand_mult): Add NO_LIBCALL argument.
65         * expmed.c (expand_mult): Likewise.  Use OPTAB_WIDEN rather
66         than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.
68         PR tree-optimization/82977
69         * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy
70         constructed temporary to strlen_to_stridx.put.
72 2017-11-15  Martin Liska  <mliska@suse.cz>
74         * configure.ac: Remove -fkeep-inline-functions from coverage_flags.
75         * configure: Regenerate.
77 2017-11-15  Martin Liska  <mliska@suse.cz>
79         PR target/82927
80         * config/sh/sh-mem.cc: Use proper probability for
81         REG_BR_PROB_NOTE.
83 2017-11-14  Jeff Law  <law@redhat.com>
85         * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing
86         the red zone for stack_clash_protection_final_dynamic_probe targets
87         when the total dynamic stack size is zero bytes.
89         * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread
90         blocks is post order.
92 2017-11-15  Alexandre Oliva <aoliva@redhat.com>
94         * dumpfile.h (TDF_COMPARE_DEBUG): New.
95         * final.c (rest_of_clean_state): Set it for the
96         -fcompare-debug dump.
97         * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF
98         class when TDF_COMPARE_DEBUG is set.
100         * dwarf2out.c (gen_producer_string): Discard
101         OPT_fcompare_debug.
103 2017-11-15  Joseph Myers  <joseph@codesourcery.com>
105         PR c/81156
106         * doc/extend.texi (Other Builtins): Document __builtin_tgmath.
107         * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose)
108         (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2)
109         (__TGMATH_REAL_2_3): Remove macros.
110         (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2)
111         (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using
112         __builtin_tgmath.
113         (frexp, ldexp, nexttoward, scalbn, scalbln): Define using
114         __TGMATH_REAL_2.
115         (remquo): Define using __TGMATH_REAL_3.
117 2017-11-14  Jeff Law  <law@redhat.com>
119         * vr-values.c: New file with contents extracted from tree-vrp.c.
120         * Makefile.in (OBJS): Add vr-values.o
121         * tree-vrp.h (set_value_range_to_nonnull): Prototype.
122         (set_value_range, set_and_canonicalize_value_range): Likewise.
123         (vrp_bitmap_equal_p, range_is_nonnull): Likewise.
124         (value_range_constant_singleton, symbolic_range_p): Likewise.
125         (compare_values, compare_values_warnv, vrp_val_is_min): Likewise.
126         (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise.
127         (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise.
128         (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise.
129         (find_case_label_range, find_case_label_index): Likewise.
130         (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise.
131         (range_int_cst_singleton_p, value_inside_range): Likewise.
132         (get_single_symbol): Likewise.
133         (switch_update): Move structure definition here.
134         (to_remove_edges, to_update_switch_stmts): Provide externs.
135         * tree-vrp.c: Move all methods for vr-values class to vr-values.c
136         (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible.
137         (vrp_val_is_min, set_value_range): Likewise.
138         (set_and_canonicalize_value_range, copy_value_range): Likewise.
139         (set_value_range_to_value, set_value_range_to_nonnull): Likewise.
140         (set_value_range_to_null, vrp_bitmap_equal_p): Likewise.
141         (range_is_nonnull, range_int_cst_p): Likewwise.
142         (range_int_cst_singleton_p, symbolic_range_p): Likewise.
143         (get_single_symbol, operand_less_p): Likewise
144         (compare_values_warnv, compare_values): Likewise.
145         (value_inside_range, value_range_constant_singleton): Likewise.
146         (zero_nonzero_bitgs_from_vr): Likewise.
147         (extract_range_from_binary_expr_1): Likewise.
148         (overflow_comparison_p): Likewise.
149         (to_remove_edges, to_update_switch_stmts): Likewise.
150         (find_case_label-index, find_case_label_range): Likewise.
151         (switch_update, set_value_range_to_nonnegative): Remove.
152         (set_value_range_to_truthvalue): Likewise.
153         (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise.
154         (gimple_stmt_nonzero_p, compare_ranges): Likewise.
155         (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise.
156         (find_case_label_ranges, test_for_singularity): Likewise.
157         (range_fits_type_p, simplify_conversion_using_ranges): LIkewise.
158         (x_vr_values): Move to its remaining use site.
160 2017-11-10  Jeff Law  <law@redhat.com>
162         * vr-values.h (VR_INITIALIZER): Move #define here.
163         * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
164         * Makefile.in (OBJS): Add tree-evrp.o
165         * tree-vrp.h (assert_info): Move structure definition here.
166         (set_value_range_to_varying): Prototype.
167         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
168         (infer_value_range, register_edge_assert_for): Likewise.
169         (stmt_interesting_for_vrp): Likewise.
170         * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c.
171         (set_value_range_to_varying): No longer static.
172         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
173         (infer_value_range, register_edge_assert_for): Likewise.
175 2017-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
177         * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't
178         generate the XXBRD instruction.
180         * config/rs6000/rs6000-c.c (is_float128_p): New helper function.
181         (rs6000_builtin_type_compatible): Treat _Float128 and long double
182         as being compatible if -mabi=ieeelongdouble.
183         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros
184         to setup float128 built-ins with hardware support.
185         (BU_FLOAT128_HW_2): Likewise.
186         (BU_FLOAT128_HW_3): Likewise.
187         (BU_FLOAT128_HW_VSX_1): Likewise.
188         (BU_FLOAT128_HW_VSX_2): Likewise.
189         (scalar_extract_expq): Change float128 built-in functions to
190         accommodate having both KFmode and TFmode functions.  Use the
191         KFmode variant as the default.
192         (scalar_extract_sigq): Likewise.
193         (scalar_test_neg_qp): Likewise.
194         (scalar_insert_exp_q): Likewise.
195         (scalar_insert_exp_qp): Likewise.
196         (scalar_test_data_class_qp): Likewise.
197         (sqrtf128_round_to_odd): Delete processing the round to odd
198         built-in functions as special built-in functions, and define them
199         as float128 built-ins.  Use the KFmode variant as the default.
200         (truncf128_round_to_odd): Likewise.
201         (addf128_round_to_odd): Likewise.
202         (subf128_round_to_odd): Likewise.
203         (mulf128_round_to_odd): Likewise.
204         (divf128_round_to_odd): Likewise.
205         (fmaf128_round_to_odd): Likewise.
206         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
207         support for KFmode and TFmode xststdcqp calls.
208         (rs6000_expand_builtin): If long double is IEEE 128-bit floating
209         point, switch the built-in handlers for the get/set float128
210         exponent, get float128 mantissa, float128 test built-ins, and the
211         float128 round to odd built-in functions.  Eliminate creating the
212         float128 round to odd built-in functions as special built-ins.
213         (rs6000_init_builtins): Eliminate special creation of the float128
214         round to odd built-in functions.
215         * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in
216         function insns to support both TFmode and KFmode variants.
217         (xsxsigqp_<mode>): Likewise.
218         (xsiexpqpf_<mode>): Likewise.
219         (xsiexpqp_<mode>): Likewise.
220         (xststdcqp_<mode>): Likewise.
221         (xststdcnegqp_<mode>): Likewise.
222         (xststdcqp_<mode>): Likewise.
224 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
226         * tree-ssa-threadupdate.c (compute_path_counts): Remove
227         unused path_in_freq_ptr parameter.
228         (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq
230 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
232         * ipa-inline.c (edge_badness): Dump sreal frequency.
233         (compute_inlined_call_time): Match natural implementaiton ...
234         * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove
235         forgotten division by CGRAPH_FREQ_BASE.
237 2017-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
239         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
240         Solaris 11.  Update comment.
241         * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
242         renaming.
243         * config/sol2.h (STARTFILE_SPEC): Likewise.
244         * configure: Regenerate.
246 2017-11-14  Carl Love  <cel@us.ibm.com>
248         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove
249         le_ and be_ prefixes to swap* variables.  Remove
250         if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case
251         statements.
252         
253 2017-11-14  Jason Merrill  <jason@redhat.com>
255         Support GTY((cache)) on hash_map.
256         * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function.
257         (ggc_cache_remove): Override it instead of ggc_mx.
258         * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx.
259         (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx.
260         * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member.
261         (simple_cache_map_traits): Override maybe_mx.
262         * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry.
263         (hash_map): Friend gt_cleare_cache.
264         (gt_cleare_cache): New.
265         * tree.h (tree_cache_traits): New hash_map traits class.
266         (tree_cache_map): New typedef.
268 2017-11-14  Richard Biener  <rguenther@suse.de>
270         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p
271         paramter and handling.
272         (cleanup_control_flow_bb): Likewise.
273         (cleanup_control_flow_pre): New helper performing a DFS walk
274         to call cleanup_control_flow_bb in PRE order.
275         (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb
276         via cleanup_control_flow_pre.
278 2017-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
280         * config/aarch64/aarch64-simd.md
281         (aarch64_simd_bsl<mode>_internal): Remove DImode.
282         (*aarch64_simd_bsl<mode>_alt): Likewise.
283         (aarch64_simd_bsldi_internal): New.
284         (aarch64_simd_bsldi_alt): Likewise.
286 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
288         * tracer.c (better_p): Do not compare frequencies.
289         * reg-stack.c (better_edge): Likewise.
290         * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
291         and back.
293 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
295         * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
296         * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count.
297         * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count.
298         * lto-streamer-in.c (input_function): Use update_max_bb_count.
299         * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count.
300         * predict.c (maybe_hot_frequency_p): Inline to ...
301         (maybe_hot_count_p): ... here; rewrite to counts.
302         (counts_to_freqs): Rename to ...
303         (update_max_bb_count): ... this one.
304         (expensive_function_p): Use counts.
305         (estimate_bb_frequencies): Update.
306         (rebuild_frequencies): Update.
307         * predict.h (counts_to_freqs): Rename to ...
308         (update_max_bb_count): ... this one.
309         * profile.c (compute_branch_probabilities): Add debug info
310         * tree-inline.c (expand_call_inline): Update debug info.
311         (optimize_inline_calls): Use update_max_bb_count..
312         (tree_function_versioning): Use update_max_bb_count..
313         * value-prof.c (gimple_value_profile_transformations):
314         Do not use update_max_bb_count.
316 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
318         * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time):
319         always use frequencies.
321 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
323         * bb-reorder.c: Remove frequencies from comments.
324         (better_edge_p): Use profile counts.
325         (find_traces): Dump profile counts.
326         (rotate_loop): Use profile counts.
327         (find_traces_1_round): Likewise.
328         (connect_better_edge_p): Use counts instead of probabilities for
329         reverse walk.
330         (copy_bb_p): Drop early check for non-0 frequency.
331         (sanitize_hot_paths): Update comments.
333 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
335         * ipa-split.c (struct split_point): Add count.
336         (consider_split): Do not compute incoming frequency; compute incoming
337         count and store it to split_point.
338         (split_function): Set count of the call to split part correctly.
340 2017-11-13  Carl Love  <cel@us.ibm.com>
342         * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand.
344 2017-11-13  Tom Tromey  <tom@tromey.com>
346         * doc/cpp.texi (Variadic Macros): Document __VA_OPT__.
348 2017-11-13  Carl Love  <cel@us.ibm.com>
350         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
351         Add support for builtins:
352         unsigned int vec_first_{,miss}_match_{,or_eos}index,
353         vector {un,}signed {char,int,short},
354         vector {un,}signed {char,int,short}) arguments.
355         * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX,
356         VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX):
357         Add BU_P9V_AV_2 expansions for the builtins.
358         * config/rs6000/altivec.h (vec_first_match_index,
359         vec_first_mismatch_index, vec_first_match_or_eos_index,
360         vec_first_mismatch_or_eos_index): Add #defines for the builtins.
361         * config/rs6000/rs6000-protos.h (bytes_in_mode): Add
362         new extern declaration.
363         * config/rs6000/rs6000.c (bytes_in_mode): Add new function.
364         * config/rs6000/vsx.md (first_match_index_<mode>,
365         first_match_or_eos_index_<mode>, first_mismatch_index_<mode>,
366         first_mismatch_or_eos_index_<mode>): Add define expand.
367         (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb.
368         * doc/extend.texi: Update the built-in documenation file for the new
369         built-in functions.
371 2017-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
373         * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x
374         into the min/max operations for _Float<N> and _Float<N>X types.
376 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
378         PR lto/81351
379         * dwarf2out.c (do_eh_frame): New static variable.
380         (dwarf2out_begin_prologue): Set it.
381         (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame.
383 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
385         * tree-ssa-coalesce.c (coalesce_cost): Fix formating.
387         * tree-ssa-sink.c (select_best_block): Do not use frequencies.
389 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
391         PR lto/81351
392         * debug.h (dwarf2out_do_eh_frame): Declare.
393         * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate.
394         (dwarf2out_do_frame): Use it.
395         (dwarf2out_do_cfi_asm): Likewise.
396         * dwarf2out.c (dwarf2out_frame_finish): Likewise.
397         (dwarf2out_assembly_start): Likewise.
398         (dwarf2out_begin_prologue): Fix comment.
399         * toplev.c (compile_file): Always call dwarf2out_frame_finish
400         if the target needs either debug or unwind DWARF2 info.
401         * lto-opts.c (lto_write_options): Do not save -fexceptions,
402         -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros,
403         -ftrapping-math, -ftrapv and -fwrapv.
405 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
407         * cgraph.c (cgraph_edge::sreal_frequency): New function.
408         * cgraph.h (cgraph_edge::sreal_frequency): Declare.
409         * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency.
410         (estimate_edge_size_and_time): Likewise.
411         (ipa_merge_fn_summary_after_inlining): Likewise.
412         * ipa-inline.c (cgraph_freq_base_rec): Remove.
413         (compute_uninlined_call_time): Use sreal_frequency.
414         (compute_inlined_call_time): Likewise.
415         (ipa_inline): Do not initialize cgraph_freq_base_rec.
416         * profile-count.c: Include sreal.h.
417         (profile_count::to_sreal_scale): New.
418         * profile-count.h: Forward declare sreal.
419         (profile_count::to_sreal_scale): Declare.
421 2017-11-13  Nathan Sidwell  <nathan@acm.org>
423         * diagnostic.c (maybe_line_and_column): New.
424         (diagnostic_get_location_text): Use it.
425         (diagnostic_report_current_module): Likewise.
426         (test_diagnostic_get_location_text): Add tests.
428 2017-11-13  Luis Machado  <luis.machado@linaro.org>
430         * doc/md.texi (Specifying processor pipeline description): Fix
431         incorrect latency for the div instruction example.
433 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
435         PR tree-optimization/78821
436         * gimple-ssa-store-merging.c (compatible_load_p): Don't require
437         that bit_not_p is the same.
438         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
439         (split_group): Count precisely bit_not_p bits in each statement.
440         (invert_op): New function.
441         (imm_store_chain_info::output_merged_store): Use invert_op to
442         emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some
443         but not all orig_stores have BIT_NOT_EXPR in the corresponding spots.
445 2017-11-13  Martin Liska  <mliska@suse.cz>
447         * gcov.c (struct coverage_info): Remove typedef of coverage_t.
448         (struct source_info): Likewise.
449         (add_branch_counts): Likewise.
450         (add_line_counts): Likewise.
451         (function_summary): Likewise.
452         (output_intermediate_line): Likewise.
453         (generate_results): Likewise.
455 2017-11-13  Martin Liska  <mliska@suse.cz>
457         * gcov.c (struct block_info): Remove typedef for block_t.
458         (struct line_info): Likewise.
459         (line_info::has_block): Likewise.
460         (EXIT_BLOCK): Likewise.
461         (unblock): Likewise.
462         (circuit): Likewise.
463         (get_cycles_count): Likewise.
464         (process_file): Likewise.
465         (read_graph_file): Likewise.
466         (solve_flow_graph): Likewise.
467         (find_exception_blocks): Likewise.
468         (add_line_counts): Likewise.
469         (accumulate_line_info): Likewise.
470         (output_line_details): Likewise.
472 2017-11-13  Martin Liska  <mliska@suse.cz>
474         * gcov.c (struct arc_info): Remove typedef for arc_t.
475         (struct line_info): Likewise.
476         (add_branch_counts): Likewise.
477         (output_branch_count): Likewise.
478         (function_info::~function_info): Likewise.
479         (circuit): Likewise.
480         (output_intermediate_line): Likewise.
481         (read_graph_file): Likewise.
482         (solve_flow_graph): Likewise.
483         (find_exception_blocks): Likewise.
484         (add_line_counts): Likewise.
485         (accumulate_line_info): Likewise.
486         (output_line_details): Likewise.
487         (output_function_details): Likewise.
489 2017-11-13  Martin Liska  <mliska@suse.cz>
491         * gcov.c (struct function_info): Remove typedef for function_t.
492         (struct source_info): Likewise.
493         (source_info::get_functions_at_location): Likewise.
494         (solve_flow_graph): Likewise.
495         (find_exception_blocks): Likewise.
496         (add_line_counts): Likewise.
497         (output_intermediate_file): Likewise.
498         (process_file): Likewise.
499         (generate_results): Likewise.
500         (release_structures): Likewise.
501         (read_graph_file): Likewise.
502         (read_count_file): Likewise.
503         (accumulate_line_counts): Likewise.
504         (output_lines): Likewise.
506 2017-11-13  Martin Liska  <mliska@suse.cz>
508         * gcov.c (function_info::function_info): Remove num_counts
509         and add vector<gcov_type>.
510         (function_info::~function_info): Use the vector.
511         (process_file): Likewise.
512         (read_graph_file): Likewise.
513         (read_count_file): Likewise.
514         (solve_flow_graph): Likewise.
516 2017-11-13  Martin Liska  <mliska@suse.cz>
518         * gcov.c (function_info::is_artificial): New function.
519         (process_file): Erase all artificial early.
520         (generate_results): Skip as all artificial are already
521         removed.
523 2017-11-13  Martin Liska  <mliska@suse.cz>
525         * gcov.c (read_graph_file): Store to global vector of functions.
526         (read_count_file): Iterate the vector.
527         (process_file): Likewise.
528         (generate_results): Likewise.
529         (release_structures): Likewise.
531 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
533         PR tree-optimization/82954
534         * gimple-ssa-store-merging.c
535         (imm_store_chain_info::coalesce_immediate_stores): If
536         !infof->ops[N].base_addr, split group if info->ops[N].base_addr.
538 2017-11-13  Richard Sandiford  <richard.sandiford@linaro.org>
540         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
541         Upddate call to ENDIAN_LANE_N.
542         (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
543         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
544         (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
545         and use aarch64_endian_lane_rtx.
546         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
548 2017-11-12  Tom de Vries  <tom@codesourcery.com>
550         * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0).
552 2017-11-12  Tom de Vries  <tom@codesourcery.com>
554         * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body.
556 2017-11-12  Tom de Vries  <tom@codesourcery.com>
558         * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro
559         body.
560         * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same.
561         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same.
562         * defaults.h (ASM_OUTPUT_LABELREF): Same.
564 2017-11-11  Martin Sebor  <msebor@redhat.com>
566         PR c/81117
567         * doc/extend.texi (attribute nonstring): Remove spurious argument.
569         PR bootstrap/82948
570         * prefic.c (translate_name): Replace strncpy with memcpy to
571         avoid -Wstringop-truncation.
573 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
575         * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum.
577 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
579         * predict.c (maybe_hot_frequency_p): Do not use cfun.
581 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
583         * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile
584         merging.
586 2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
588         * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
589         enable generating XXBRH if the value is in a vector register.
590         (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
591         value is in a vector register.
592         (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
593         register to register bswap64's instead of doing the GPR sequence
594         used on previous machines.
595         (bswapdi2_xxbrd): New insn.
596         (bswapdi2_reg): Disallow on ISA 3.0.
597         (register to register bswap64 splitter): Do not split the insn on
598         ISA 3.0 systems that use XXBRD.
600 2017-11-10  Martin Sebor  <msebor@redhat.com>
602         PR c/81117
603         * config/darwin-c.c (framework_construct_pathname): Replace strncpy
604         with memcpy.
605         (find_subframework_file): Same.
607 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
609         * auto-profile.c (afdo_indirect_call): Drop frequency.
610         * cgraph.c (symbol_table::create_edge): Drop frequency argument.
611         (cgraph_node::create_edge): Drop frequency argument.
612         (cgraph_node::create_indirect_edge): Drop frequency argument.
613         (cgraph_edge::make_speculative): Drop frequency arguments.
614         (cgraph_edge::resolve_speculation): Do not update frequencies
615         (cgraph_edge::dump_edge_flags): Do not dump frequency.
616         (cgraph_node::dump): Check consistency in IPA mode.
617         (cgraph_edge::maybe_hot_p): Use IPA counter.
618         (cgraph_edge::verify_count_and_frequency): Rename to ...
619         (cgraph_edge::verify_count): ... this one; drop frequency checking.
620         (cgraph_node::verify_node): Update.
621         * cgraph.h (struct cgraph_edge): Drop frequency.
622         (cgraph_edge::frequency): New function.
623         * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
624         frequencies.
625         (cgraph_edge::rebuild_edges): Likewise.
626         * cgraphclones.c (cgraph_edge::clone): Scale only counts.
627         (duplicate_thunk_for_node): Do not pass frequency.
628         (cgraph_node::create_clone): Scale only counts.
629         (cgraph_node::create_virtual_clone): Do not pass frequency.
630         (cgraph_node::create_edge_including_clones): Do not pass frequency.
631         (cgraph_node::create_version_clone): Do not pass frequency.
632         * cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
633         (cgraph_node::expand_thunk): Do not pass frequency.
634         (cgraph_node::create_wrapper): Do not pass frequency.
635         * gimple-iterator.c (update_call_edge_frequencies): Do not pass
636         frequency.
637         * gimple-streamer-in.c (input_bb): Scale only IPA counts.
638         * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
639         * ipa-cp.c (ipcp_lattice::print): Use frequency function.
640         (gather_caller_stats): Use frequency function.
641         (ipcp_cloning_candidate_p): Use frequency function.
642         (ipcp_propagate_stage): Use frequency function.
643         (get_info_about_necessary_edges): Use frequency function.
644         (update_profiling_info): Update only IPA profile.
645         (update_specialized_profile): Use frequency functoin.
646         (perhaps_add_new_callers): Update only IPA profile.
647         * ipa-devirt.c (ipa_devirt): Use IPA profile.
648         * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
649         (dump_ipa_call_summary): Use frequency function.
650         (estimate_edge_size_and_time): Use frequency function.
651         (ipa_merge_fn_summary_after_inlining): Use frequency function.
652         * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
653         * ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
654         (update_noncloned_counts): ... ths one; scale counts only.
655         (clone_inlined_nodes): Do not scale frequency.
656         (inline_call): Do not pass frequency.
657         * ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
658         (compute_inlined_call_time): Use IPA profile.
659         (want_inline_small_function_p): Use IPA profile.
660         (want_inline_self_recursive_call_p): Use IPA profile.
661         (edge_badness): Use IPA profile.
662         (lookup_recursive_calls): Use IPA profile.
663         (recursive_inlining): Do not pass frequency.
664         (resolve_noninline_speculation): Do not update frequency.
665         (inline_small_functions): Collect max of IPA profile.
666         (dump_overall_stats): Dump IPA porfile.
667         (dump_inline_stats): Dump IPA porfile.
668         (ipa_inline): Collect IPA stats.
669         * ipa-inline.h (clone_inlined_nodes): Update prototype.
670         * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
671         (ipa_propagate_frequency): Use frequency function.
672         (ipa_profile): Cleanup.
673         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
674         * ipa-utils.c (ipa_merge_profiles): Merge all profiles.
675         * lto-cgraph.c (lto_output_edge): Do not stream frequency.
676         (input_node): Do not stream frequency.
677         (input_edge): Do not stream frequency.
678         (merge_profile_summaries): Scale only IPA profiles.
679         * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
680         * predict.c (drop_profile): Do not recompute frequency.
681         * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
682         (ipa_tm_insert_gettmclone_call): Do not pass frequency.
683         * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
684         * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
685         * tree-emutls.c (gen_emutls_addr): Do not pass frequency.
686         * tree-inline.c (copy_bb): Do not scale frequency.
687         (expand_call_inline): Do not scale frequency.
688         (tree_function_versioning): Do not scale frequency.
689         * ubsan.c (ubsan_create_edge): Do not pass frequency.
691 2017-11-10  Julia Koval  <julia.koval@intel.com>
693          * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8,
694          _mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8,
695          _mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8,
696          _mm256_maskz_gf2p8affine_epi64_epi8,
697          _mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8
698          _mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
699          * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi,
700          __builtin_ia32_vgf2p8affineqb_v32qi,
701          __builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
702          * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
704 2017-11-10  Tamar Christina  <tamar.christina@arm.com>
706         PR target/82641
707         * config/arm/arm.c
708         (arm_option_override): Refactor.
709         (arm_option_reconfigure_globals): New.
710         (arm_options_perform_arch_sanity_checks): New.
711         * config/arm/arm-protos.h (arm_option_reconfigure_globals): New prototype.
712         (arm_options_perform_arch_sanity_checks): Likewise
714 2017-11-10  Pat Haugen  <pthaugen@us.ibm.com>
716         * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
717         (power9-qpmul): New.
718         * rs6000/rs6000.md ("type" attr): Add qmul.
719         (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
720         *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
721         *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
723 2017-11-10  Martin Sebor  <msebor@redhat.com>
725         PR c/81117
726         * builtins.c (compute_objsize): Handle arrays that
727         compute_builtin_object_size likes to fail for.  Make extern.
728         * builtins.h (compute_objsize): Declare.
729         (check_strncpy_sizes): New function.
730         (expand_builtin_strncpy): Call check_strncpy_sizes.
731         * gimple-fold.c (gimple_fold_builtin_strncpy): Implement
732         -Wstringop-truncation.
733         (gimple_fold_builtin_strncat): Same.
734         * gimple.c (gimple_build_call_from_tree): Set call location.
735         * tree-ssa-strlen.c (strlen_to_stridx): New global variable.
736         (maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
737         (handle_builtin_stxncpy, handle_builtin_strncat): Same.
738         (handle_builtin_strlen): Use strlen_to_stridx.
739         (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
740         stpncpy.
741         Use strlen_to_stridx.
742         (pass_strlen::execute): Release strlen_to_stridx.
743         * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
744         (-Wstringop-truncation): Document new option.
746 2017-11-10  Martin Liska  <mliska@suse.cz>
748         PR gcov-profile/82702
749         * gcov.c (main): Handle intermediate files in a different
750         way.
751         (get_gcov_intermediate_filename): New function.
752         (output_gcov_file): Remove support of intermediate files.
753         (generate_results): Allocate intermediate file.
754         (release_structures): Clean-up properly fn_end.
755         (output_intermediate_file): Start iterating with line 1.
757 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
759         PR tree-optimization/82929
760         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
761         ops_swapped_p non-static data member.
762         (store_immediate_info::store_immediate_info): Clear it.
763         (imm_store_chain_info::coalesce_immediate_stores): If swapping
764         ops set ops_swapped_p.
765         (count_multiple_uses): Handle ops_swapped_p.
767 2017-11-10  Martin Liska  <mliska@suse.cz>
769         * coverage.c (coverage_init): Stream information about
770         support of has_unexecuted_blocks.
771         * doc/gcov.texi: Document that.
772         * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
773         * gcov.c (read_graph_file): Likewise.
774         (output_line_beginning): Fix a small issue with
775         color output.
777 2017-11-10  Bin Cheng  <bin.cheng@arm.com>
779         * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
780         reference of trivial component.
782 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
784         PR bootstrap/82916
785         * gimple-ssa-store-merging.c
786         (pass_store_merging::terminate_all_aliasing_chains): For
787         gimple_store_p stmts also call refs_output_dependent_p.
789         PR rtl-optimization/82913
790         * compare-elim.c (try_merge_compare): Punt if def_insn is not
791         single set.
793 2017-11-09  Jeff Law  <law@redhat.com>
795         * vr-values.h: New file with vr_values class.
796         * tree-vrp.c: Include vr-values.h
797         (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static
798         data objects into the vr_values class.
799         (vr_value, values_propagated, vr_phi_edge_counts): Likewise.
800         (get_value_range): Make it a member function within vr_values class.
801         (set_defs_to_varying, update_value_range, add_equivalence): Likewise.
802         (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise.
803         (op_with_constant_singleton_value_range): Likewise.
804         (extract_range_for_var_from_comparison_expr): Likewise.
805         (extract_range_from_assert, extract_range_from_ssa_name): Likewise.
806         (extract_range_from_binary_expr): Likewise.
807         (extract_range_from_unary_expr): Likewise.
808         (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise.
809         (check_for_binary_op_overflow, extract_range_basic): Likewise.
810         (extract_range_from_assignment, adjust_range_with_scev): Likewise.
811         (dump_all_value_ranges, get_vr_for_comparison): Likewise.
812         (compare_name_with_value, compare_names): Likewise.
813         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise.
814         (vrp_evaluate_conditional_warnv_with_ops): Likewise.  Remove prototype.
815         (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise.
816         (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise.
817         (extract_range_from_phi_node): Likewise.
818         (simplify_truth_ops_using_ranges): Likewise.
819         (simplify_div_or_mod_using_ranges): Likewise.
820         (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise.
821         (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise.
822         (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise.
823         (simplify_float_conversion_using_ranges): Likewise.
824         (simplify_internal_call_using_ranges): Likewise.
825         (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise.
826         (vrp_visit_assignment_or_call): Likewise.  Smuggle class instance
827         poitner via x_vr_values for calls into gimple folder.
828         (vrp_initialize_lattice): Make this the vr_values ctor.
829         (vrp_free_lattice): Make this the vr_values dtor.
830         (set_vr_value): New function.
831         (class vrp_prop): Add vr_values data member.  Add various member
832         functions as well as member functions that delegate to vr_values.
833         (check_array_ref): Make a member function within vrp_prop class.
834         (search_for_addr_array, vrp_initialize): Likewise.
835         (vrp_finalize): Likewise.  Revamp to avoid direct access to
836         vr_value, values_propagated, etc.
837         (check_array_bounds): Extract vrp_prop class instance pointer from
838         walk info structure.  Use it to call member functions.
839         (check_all_array_refs): Make a member function within vrp_prop class.
840         Smuggle class instance pointer via walk info structure.
841         (x_vr_values): New local static.
842         (vrp_valueize): Use x_vr_values to get class instance.
843         (vr_valueize_1): Likewise.
844         (class vrp_folder): Add vr_values data member.  Add various member
845         functions as well as member functions that delegate to vr_values.
846         (fold_predicate_in): Make a mber fucntion within vrp_folder class.
847         (simplify_stmt_for_jump_threading): Extract smuggled vr_values
848         class instance from vr_values.  Use it to call member functions.
849         (vrp_dom_walker): Add vr_values data member.
850         (vrp_dom_walker::after_dom_children): Smuggle vr_values class
851         instance via x_vr_values.
852         (identify_jump_threads): Accept vr_values as argument.  Store
853         it into the walker structure.
854         (evrp_dom_walker): Add vr_values class data member.  Add various
855         delegators.
856         (evrp_dom_walker::try_find_new_range): Use vr_values data
857         member to access the memory allocator.
858         (evrp_dom_walker::before_dom_children): Store vr_values class
859         instance into the vrp_folder class.
860         (evrp_dom_walker::push_value_range): Rework to avoid direct
861         access to num_vr_values and vr_value.
862         (evrp_dom_walker::pop_value_range): Likewise.
863         (execute_early_vrp): Remove call to vrp_initialize_lattice.
864         Use vr_values to get to dump_all_value_ranges member function.
865         Remove call to vrp_free_lattice.  Call vrp_initialize, vrp_finalize,
866         and simplify_cond_using_ranges_2 via vrp_prop class instance.
867         Pass vr_values class instance down to identify_jump_threads.  
868         Remove call to vrp_free_lattice.
869         (debug_all_value_ranges): Remove.
871         * tree-vrp.c (vrp_prop): Move class to earlier point in the file.
872         (vrp_folder): Likewise.
874         * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack.
875         Get it from the existing bitmap instead.
876         (vrp_intersect_ranges_1): Likewise.
878 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
880         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
881         bit_not_p field.
882         (store_immediate_info::store_immediate_info): Add bitnotp argument,
883         set bit_not_p to it.
884         (imm_store_chain_info::coalesce_immediate_stores): Break group
885         if bit_not_p is different.
886         (count_multiple_uses, split_group,
887         imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
888         (handled_load): Avoid multiple chained BIT_NOT_EXPRs.
889         (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
890         result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
891         to store_immediate_info ctor.
893 2017-11-09  Jim Wilson  <jimw@sifive.com>
895         * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support.
896         (scan_prog_file): Likewise.
898 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
900         * bb-reorder.c (max_entry_frequency): Remove.
901         (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p,
902         connect_traces, push_to_next_round_p): Remove prototypes.
903         (find_traces_1_round): Use counts only.
904         (push_to_next_round_p): Likewise.
905         (find_traces): Likewise.
906         (rotate_loop): Likewise.
907         (find_traces_1_round): Likewise.
908         (connect_traces): Likewise.
909         (edge_order): Likewise.
911 2017-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
913         * config/arm/arm.c (output_return_instruction): Add comments to
914         indicate requirement for cmse_nonsecure_entry return to account
915         for the size of clearing instruction output here.
916         (thumb_exit): Likewise.
917         * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
918         return in hardfloat mode.
920 2017-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
922         * config/rs6000/rs6000.c (machine_function): Add a bool,
923         "toc_is_wrapped_separately".
924         (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT
925         if it wasn't explicitly set or unset, we are optimizing for speed, and
926         doing separate shrink-wrapping.
927         (rs6000_get_separate_components): Enable the TOC component if
928         saving the TOC register in the prologue.
929         (rs6000_components_for_bb): Handle the TOC component.
930         (rs6000_emit_prologue_components): Store the TOC register where needed.
931         (rs6000_set_handled_components): Mark TOC as handled, if handled.
932         (rs6000_emit_prologue): Don't save the TOC if that is already done.
934 2017-11-09  Martin Jambor  <mjambor@suse.cz>
936         * ipa-param-manipulation.c: New file.
937         * ipa-param-manipulation.h: Likewise.
938         * Makefile.in (OBJS): Add ipa-param-manipulation.o.
939         (PLUGIN_HEADERS): Addded ipa-param-manipulation.h
940         * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h.
941         (ipa_parm_adjustment): Likewise.
942         (ipa_parm_adjustment_vec): Likewise.
943         (ipa_get_vector_of_formal_parms): Moved declaration to
944         ipa-param-manipulation.h.
945         (ipa_get_vector_of_formal_parm_types): Likewise.
946         (ipa_modify_formal_parameters): Likewise.
947         (ipa_modify_call_arguments): Likewise.
948         (ipa_combine_adjustments): Likewise.
949         (ipa_dump_param_adjustments): Likewise.
950         (ipa_modify_expr): Likewise.
951         (ipa_get_adjustment_candidate): Likewise.
952         * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to
953         ipa-param-manipulation.c.
954         (ipa_get_vector_of_formal_parm_types): Likewise.
955         (ipa_modify_formal_parameters): Likewise.
956         (ipa_modify_call_arguments): Likewise.
957         (ipa_modify_expr): Likewise.
958         (get_ssa_base_param): Likewise.
959         (ipa_get_adjustment_candidate): Likewise.
960         (index_in_adjustments_multiple_times_p): Likewise.
961         (ipa_combine_adjustments): Likewise.
962         (ipa_dump_param_adjustments): Likewise.
963         * tree-sra.c: Also include ipa-param-manipulation.h
964         * omp-simd-clone.c: Include ipa-param-manipulation.h instead of
965         ipa-param.h.
967 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
968             Alan Hayward  <alan.hayward@arm.com>
969             David Sherwood  <david.sherwood@arm.com>
971         * doc/sourcebuild.texi (vect_masked_store): Document.
973 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
974             Alan Hayward  <alan.hayward@arm.com>
975             David Sherwood  <david.sherwood@arm.com>
977         * doc/sourcebuild.texi (vect_align_stack_vars): Document.
979 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
980             Alan Hayward  <alan.hayward@arm.com>
981             David Sherwood  <david.sherwood@arm.com>
983         * doc/sourcebuild.texi (vect_variable_length): Document.
985 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
986             Alan Hayward  <alan.hayward@arm.com>
987             David Sherwood  <david.sherwood@arm.com>
989         * doc/sourcebuild.texi (vect_unaligned_possible): Document.
991 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
992             Alan Hayward  <alan.hayward@arm.com>
993             David Sherwood  <david.sherwood@arm.com>
995         * doc/sourcebuild.texi (vect_element_align_preferred): Document.
997 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
998             Alan Hayward  <alan.hayward@arm.com>
999             David Sherwood  <david.sherwood@arm.com>
1001         * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document
1002         previously undocumented selectors.
1003         (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document.
1005 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
1007         * doc/rtl.texi (const_vector): Say that elements can be
1008         const_wide_ints too.
1009         * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare.
1010         * emit-rtl.c (valid_for_const_vec_duplicate_p): New function.
1011         (gen_vec_duplicate): Use it instead of CONSTANT_P.
1012         * optabs.c (expand_vector_broadcast): Likewise.
1014 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
1015             Alan Hayward  <alan.hayward@arm.com>
1016             David Sherwood  <david.sherwood@arm.com>
1018         * tree-ssa-loop-ivopts.c (get_address_cost): Try using a
1019         scaled index even if the unscaled address was invalid.
1020         Don't increase the complexity of using a scale in that case.
1022 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
1023             Alan Hayward  <alan.hayward@arm.com>
1024             David Sherwood  <david.sherwood@arm.com>
1026         * doc/rtl.texi: Rewrite the subreg rules so that they partition
1027         the inner register into REGMODE_NATURAL_SIZE bytes rather than
1028         UNITS_PER_WORD bytes.
1029         * emit-rtl.c (validate_subreg): Divide subregs into blocks
1030         based on REGMODE_NATURAL_SIZE of the inner mode.
1031         (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and
1032         !SCALAR_FLOAT_MODE_P cases.  Use REGMODE_NATURAL_SIZE for the latter.
1033         * expmed.c (lowpart_bit_field_p): Divide the value up into
1034         chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD.
1035         * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test
1036         whether something is likely to occupy more than one register.
1038 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
1040         PR ipa/82879
1041         * ipa-inline-transform.c (update_noncloned_frequencies): Use
1042         profile_count::adjust_for_ipa_scaling.
1043         * tree-inline.c (copy_bb, copy_cfg_body): Likewise.
1044         * profile-count.c (profile_count::adjust_for_ipa_scaling): New member
1045         function.
1046         * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare.
1048 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
1050         * gimple-ssa-store-merging.c (count_multiple_uses): New function.
1051         (split_group): Add total_orig and total_new arguments, estimate the
1052         number of statements related to the store group without store merging
1053         and with store merging.
1054         (imm_store_chain_info::output_merged_store): Adjust split_group
1055         callers, punt if estimated number of statements with store merging
1056         is not smaller than estimated number of statements without it.
1057         Formatting fix.
1058         (handled_load): Remove has_single_use checks.
1059         (pass_store_merging::process_store): Likewise.
1061 2017-11-09  Richard Biener  <rguenther@suse.de>
1063         PR tree-optimization/82902
1064         * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
1066 2017-11-09  Martin Liska  <mliska@suse.cz>
1068         PR target/82863
1069         * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to
1070         uninitialized.
1072 2017-11-09  Martin Liska  <mliska@suse.cz>
1074         PR tree-optimization/82669
1075         * sbitmap.h (bmp_iter_set_init): Remove non needed check.
1077 2017-11-09  Martin Liska  <mliska@suse.cz>
1079         PR gcov-profile/48463
1080         * coverage.c (coverage_begin_function): Output also end locus
1081         of a function and information whether the function is
1082         artificial.
1083         * gcov-dump.c (tag_function): Parse and print the information.
1084         * gcov.c (INCLUDE_MAP): Add include.
1085         (INCLUDE_SET): Likewise.
1086         (struct line_info): Move earlier in the source file because
1087         of vector<line_info> in function_info structure.
1088         (line_info::line_info): Likewise.
1089         (line_info::has_block): Likewise.
1090         (struct source_info): Add new member index.
1091         (source_info::get_functions_at_location): New function.
1092         (function_info::group_line_p): New function.
1093         (output_intermediate_line): New function.
1094         (output_intermediate_file): Use the mentioned function.
1095         (struct function_start): New.
1096         (struct function_start_pair_hash): Likewise.
1097         (process_file): Add code that identifies group functions.
1098         Assign lines either to global or function scope.
1099         (generate_results): Skip artificial functions.
1100         (find_source): Assign index for each source file.
1101         (read_graph_file): Read new flag artificial and end_line.
1102         (add_line_counts): Assign it either to global of function scope.
1103         (accumulate_line_counts): Isolate core of the function to
1104         accumulate_line_info and call it for both function and global
1105         scope lines.
1106         (accumulate_line_info): New function.
1107         (output_line_beginning): Fix GNU coding style.
1108         (print_source_line): New function.
1109         (output_line_details): Likewise.
1110         (output_function_details): Likewise.
1111         (output_lines): Iterate both source (global) scope and function
1112         scope.
1113         (struct function_line_start_cmp): New class.
1114         * doc/gcov.texi: Reflect changes in documentation.
1116 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
1118         PR debug/82837
1119         * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT.
1120         (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...)))
1121         and similarly for not instead of neg.
1123 2017-11-08  Andi Kleen  <ak@linux.intel.com>
1125         * config/i386/i386.opt: Add -mforce-indirect-call.
1126         * config/i386/predicates.md: Check for flag_force_indirect_call.
1127         * doc/invoke.texi: Document -mforce-indirect-call
1129 2017-11-08  Kito Cheng  <kito.cheng@gmail.com>
1131         * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p):
1132         New extern.
1133         (MOVE_RATIO): Use riscv_slow_unaligned_access_p.
1134         config/riscv/riscv.c (predict.h): New include.
1135         (riscv_slow_unaligned_access_p): No longer static.
1136         (riscv_block_move_straight): Add require.
1137         config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
1139 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
1141         PR target/82855
1142         * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
1143         <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
1144         nonimmediate_operand predicate for operand 1 instead of
1145         register_operand.
1147 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1149         * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>):
1150         New pattern.
1151         * config/aarch64/constraints.md (Uml): New constraint.
1152         * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New
1153         predicate.
1155 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1157         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
1158         of two vec_duplicates into a vec_concat.
1160 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1162         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
1163         Simplify vec_merge of vec_duplicate and vec_concat.
1164         * config/aarch64/constraints.md (Utq): New constraint.
1165         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New
1166         define_insn.
1168 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1170         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
1171         Simplify vec_merge of vec_duplicate and const_vector.
1172         * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero):
1173         New predicate.
1174         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC
1175         mode iterator.  Update predicate on operand 1 to
1176         handle non-const_vec constants.  Delete constraints.
1177         (*aarch64_combinez_be<mode>): Likewise for operand 2.
1179 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
1181         PR tree-optimization/78821
1182         * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p
1183         data member.
1184         (store_operand_info::store_operand_info): Initialize it to false.
1185         (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use
1186         ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each
1187         store in the group, and if chain_info is non-NULL, to ignore altogether
1188         that chain.
1189         (compatible_load_p): Fail if bit_not_p does not match.
1190         (imm_store_chain_info::output_merged_store): Handle bit_not_p loads.
1191         (handled_load): Fill in bit_not_p.  Handle BIT_NOT_EXPR.
1192         (pass_store_merging::process_store): Adjust
1193         terminate_all_aliasing_chains calls to pass NULL in all current spots,
1194         call terminate_all_aliasing_chains newly when adding a store into
1195         a chain with non-NULL chain_info.
1197 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
1199         * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic.
1201 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
1203         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
1204         Remove.
1205         (aarch64_layout_frame): Initialise emit_frame_chain.
1206         (aarch64_can_eliminate): Remove omit leaf frame pointer code.
1207         (TARGET_FRAME_POINTER_REQUIRED): Remove define.
1209 2017-11-08  Martin Liska  <mliska@suse.cz>
1211         * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
1212         of gimple_call_internal_p.
1214 2017-11-07  Tom de Vries  <tom@codesourcery.com>
1216         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)".
1218 2017-11-07  Tom de Vries  <tom@codesourcery.com>
1220         * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after
1221         "do {} while (0)".
1223 2017-11-08  Martin Liska  <mliska@suse.cz>
1225         PR sanitizer/82792
1226         * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
1228 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
1230         * gimple-pretty-print.c (dump_profile): Return "" instead of NULL.
1232 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
1234         PR target/82855
1235         * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator.
1236         (*cmp<mode>_ccz_1): New insn with $k alternative.
1238         PR target/82855
1239         * config/i386/i386.c (ix86_swap_binary_operands_p): Treat
1240         RTX_COMM_COMPARE as commutative as well.
1241         (ix86_binary_operator_ok): Formatting fix.
1242         * config/i386/sse.md (*mul<mode>3<mask_name><round_name>,
1243         *<code><mode>3<mask_name><round_saeonly_name>,
1244         *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>,
1245         *<s>mul<mode>3_highpart<mask_name>,
1246         *vec_widen_umult_even_v16si<mask_name>,
1247         *vec_widen_umult_even_v8si<mask_name>,
1248         *vec_widen_umult_even_v4si<mask_name>,
1249         *vec_widen_smult_even_v16si<mask_name>,
1250         *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>,
1251         *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>,
1252         *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>,
1253         *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3,
1254         *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3,
1255         <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3,
1256         *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>,
1257         *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>,
1258         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use
1259         !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of
1260         ix86_binary_operator_ok.  Formatting fixes.
1261         (*<plusminus_insn><mode>3<mask_name><round_name>,
1262         *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting
1263         fixes.
1265 2017-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
1267         * config/rs6000/rs6000.md (GPR2): New mode_iterator.
1268         ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for
1269         eq and ne if TARGET_ISEL.
1270         (cmp): New code_iterator.
1271         (UNS, UNSU_, UNSIK): New code_attrs.
1272         (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split.
1273         ("eq<mode>3"): New define_expand, rename the define_insn_and_split
1274         to...
1275         ("eq<mode>3"): ... this.
1276         ("ne<mode>3"): New define_expand, rename the define_insn_and_split
1277         to...
1278         ("ne<mode>3"): ... this.
1280 2017-11-07  Julia Koval  <julia.koval@intel.com>
1282         PR target/82812
1283         * common/config/i386/i386-common.c
1284         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
1285         (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
1286         * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
1287         * config/i386/i386.opt: Ditto.
1288         * config/i386/i386.c (ix86_target_string): Ditto.
1289         (ix86_option_override_internal): Ditto.
1290         (ix86_init_mpx_builtins): Move MPX to args2.
1291         (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
1292         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
1293         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
1294         __builtin_ia32_vgf2p8affineinvqb_v32qi,
1295         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
1296         __builtin_ia32_vgf2p8affineinvqb_v16qi,
1297         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
1299 2017-11-07  Uros Bizjak  <ubizjak@gmail.com>
1301         PR target/80425
1302         * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r)
1303         and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m).
1304         (zero-extendsidi peephole2): Remove peephole.
1306 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
1308         PR c/53037
1309         * stor-layout.c: Include attribs.h.
1310         (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with
1311         explicit lookup of "aligned" attribute.
1313 2017-11-07  Andrew Waterman  <andrew@sifive.com>
1315         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype.
1316         (riscv_expand_block_move): Likewise.
1317         * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi
1318         implementation.
1319         (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define.
1320         (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define.
1321         * config/riscv/riscv.c (riscv_block_move_straight): New function.
1322         (riscv_adjust_block_mem): Likewise.
1323         (riscv_block_move_loop): Likewise.
1324         (riscv_expand_block_move): Likewise.
1325         gcc/config/riscv/riscv.md (movmemsi): New pattern.
1327 2017-11-07  Michael Clark  <michaeljclark@mac.com>
1329         * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
1330         (MUSL_DYNAMIC_LINKER): Likewise.
1332 2017-11-07  Richard Sandiford  <richard.sandiford@linaro.org>
1334         * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
1335         (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of
1336         nonmmory_operand.
1338 2017-11-07  Richard Biener  <rguenther@suse.de>
1340         * match.pd: Fix build.
1342 2017-11-07  Wilco Dijkstra  <wdijkstr@arm.com>
1343             Jackson Woodruff  <jackson.woodruff@arm.com>
1345         PR tree-optimization/71026
1346         * match.pd: Canonicalize negate in division.
1348 2017-11-07  Sudakshina Das  <sudi.das@arm.com>
1350         PR middle-end/80131
1351         * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1.
1353 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
1355         * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b),
1356         (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations.
1358 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
1360         * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle
1361         non-scalar integral types.
1362         * match.pd (negate_expr_p): Handle MINUS_EXPR.
1363         (-(A-B), -(~A)): New transformations.
1365 2017-11-07  Tom de Vries  <tom@codesourcery.com>
1367         * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
1368         semicolon after "do {} while (0)".
1369         * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1370         * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1371         * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1372         * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1373         * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1375 2017-11-07  Tom de Vries  <tom@codesourcery.com>
1377         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon
1378         after "do {} while (0)".
1379         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1380         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1381         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1382         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1383         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
1385 2017-11-07  Tom de Vries  <tom@codesourcery.com>
1387         PR other/82784
1388         * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after
1389         "while {} do (0)".
1390         (arm_rtx_costs_internal): Add missing semicolon after
1391         HANDLE_NARROW_SHIFT_ARITH call.
1393 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
1395         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1396         disable isel if it was not set explicitly.
1398 2017-11-06  James Bowman  <james.bowman@ftdichip.com>
1400         * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE
1401         qualifiers.
1402         (add_type_attribute) likewise.
1404 2017-11-06  H.J. Lu  <hongjiu.lu@intel.com>
1406         * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
1407         of struct ix86_frame.
1408         (ix86_initial_elimination_offset): Likewise.
1409         (ix86_expand_split_stack_prologue): Likewise.
1411 2017-11-06  Marc Glisse  <marc.glisse@inria.fr>
1413         * tree-vrp.h (enum value_range_type): Update stale comment.
1415 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
1416             Alan Hayward  <alan.hayward@arm.com>
1417             David Sherwood  <david.sherwood@arm.com>
1419         * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
1420         (aarch64_expand_vec_perm_const): Take the number of units too.
1421         * config/aarch64/aarch64.c (aarch64_expand_vec_perm)
1422         (aarch64_expand_vec_perm_const): Likewise.
1423         * config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
1424         (vec_perm<mode>): Update accordingly.
1426 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
1427             Alan Hayward  <alan.hayward@arm.com>
1428             David Sherwood  <david.sherwood@arm.com>
1430         * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
1431         Take the number of units too.
1432         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
1433         (aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
1434         but check for a vector mode before rather than after the call.
1435         * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
1436         (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
1437         (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
1438         (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
1439         (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
1440         (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
1441         (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
1442         (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
1443         (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
1444         (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
1445         (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
1446         (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
1447         (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
1448         (aarch64_sqdmull2_n<mode>): Update accordingly.
1450 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
1451             Alan Hayward  <alan.hayward@arm.com>
1452             David Sherwood  <david.sherwood@arm.com>
1454         * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
1455         the number of units too.
1456         * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
1457         * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
1458         (vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
1459         (vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
1460         (vec_store_lanesxi<mode>): Update accordingly.
1462 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
1463             Alan Hayward  <alan.hayward@arm.com>
1464             David Sherwood  <david.sherwood@arm.com>
1466         * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
1467         * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
1468         * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
1469         of units rather than the mode.
1470         * config/aarch64/iterators.md (nunits): New mode attribute.
1471         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
1472         Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
1473         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
1474         (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
1475         (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
1476         (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
1477         (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
1478         (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
1479         (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
1480         (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
1481         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
1482         (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
1483         (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
1484         (reduc_<maxmin_uns>_scal_<mode>): Likewise.
1485         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
1486         (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
1487         (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
1488         (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
1489         (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
1490         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
1491         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
1492         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
1493         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
1494         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
1495         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
1496         (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
1497         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
1498         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
1499         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
1500         (aarch64_vec_store_lanesoi_lane<mode>): Likewise.
1501         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
1502         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
1503         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
1504         (aarch64_vec_store_lanesxi_lane<mode>): Likewise.
1505         (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
1506         (aarch64_simd_vec_setv2di): Likewise.
1508 2017-11-06  Carl Love  <cel@us.ibm.com>
1510         * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
1511         definitions.
1512         (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
1513         * config/rs6000/altivec.h (vec_revb): Change the #define from power 9
1514         to power 8.
1515         * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
1516         extern declaration.
1517         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
1518         * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
1519         Add power 8 macro expansions.
1520         (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
1521         * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
1522         power 8 instructions.  (VSX_XXBR): Add iterator.
1524 2017-11-06  Wilco Dijkstra  <wdijkstr@arm.com>
1526         * config/arm/arm.md (predicable_short_it): Change default to "no",
1527         improve documentation, remove uses that are identical to the default.
1528         (enabled_for_depr_it): Rename to enabled_for_short_it.
1529         * gcc/config/arm/arm-fixed.md (predicable_short_it): Remove default uses.
1530         * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
1531         * gcc/config/arm/sync.md (predicable_short_it): Likewise.
1532         * gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
1533         * gcc/config/arm/vfp.md (predicable_short_it): Likewise.
1535 2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1537         PR target/82748
1538         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
1539         float128 helper macros, which are no longer used after deleting
1540         the old 'q' built-in functions, and moving the round to odd
1541         built-in functions to being special built-in functions.
1542         (BU_FLOAT128_2): Likewise.
1543         (BU_FLOAT128_1_HW): Likewise.
1544         (BU_FLOAT128_2_HW): Likewise.
1545         (BU_FLOAT128_3_HW): Likewise.
1546         (FABSQ): Delete old 'q' built-in functions.
1547         (COPYSIGNQ): Likewise.
1548         (SQRTF128_ODD): Move round to odd built-in functions to be
1549         special built-in functions, so that we can handle
1550         -mabi=ieeelongdouble.
1551         (TRUNCF128_ODD): Likewise.
1552         (ADDF128_ODD): Likewise.
1553         (SUBF128_ODD): Likewise.
1554         (MULF128_ODD): Likewise.
1555         (DIVF128_ODD): Likewise.
1556         (FMAF128_ODD): Likewise.
1557         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
1558         built-in names to 'f128'.
1559         * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
1560         old 'q' built-in functions, as the machine independent code for
1561         'f128' built-in functions handles this.
1562         (rs6000_expand_builtin): Add expansion for float128 round to odd
1563         functions, keying off on -mabi=ieeelongdouble of whether to use
1564         the KFmode or TFmode variant.
1565         (rs6000_init_builtins): Initialize the _Float128 round to odd
1566         built-in functions.
1567         * doc/extend.texi (PowerPC Built-in Functions): Document the old
1568         _Float128 'q' built-in functions are now mapped into the new
1569         'f128' built-in functions.
1571 2017-11-06  David Edelsohn  <dje.gcc@gmail.com>
1573         * collect2.c (add_lto_object): Compile for OBJECT_COFF.
1574         (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
1576 2017-11-06  David Malcolm  <dmalcolm@redhat.com>
1578         PR jit/82826
1579         * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
1580         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
1581         * toplev.c: Include "ipa-fnsummary.h".
1582         (toplev::finalize): Call ipa_fnsummary_c_finalize.
1584 2017-11-06  Jakub Jelinek  <jakub@redhat.com>
1586         PR tree-optimization/82838
1587         * gimple-ssa-store-merging.c
1588         (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
1589         on a separate gimple_seq which is then appended to seq.
1591 2017-11-06  Jeff Law  <law@redhat.com>
1593         PR target/82788
1594         * config/i386/i386.c (PROBE_INTERVAL): Remove.
1595         (get_probe_interval): New functions.
1596         (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
1597         (ix86_adjust_stack_and_probe): Likewise.
1598         (output_adjust_stack_and_probe): Likewise.
1599         (ix86_emit_probe_stack_range): Likewise.
1600         (ix86_expand_prologue): Likewise.
1602 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
1604         PR tree-optimization/82816
1605         * tree-ssa-math-opts.c (convert_mult_to_widen): Return false
1606         if the modes of the two types are the same.
1607         (convert_plusminus_to_widen): Likewise.
1609 2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1611         * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
1612         p9_vadu<mode>3.
1613         (usadv16qi): New define_expand.
1614         (usadv8hi): New define_expand.
1616 2017-11-06  Jan Hubicka  <hubicka@ucw.cz>
1618         PR bootstrap/82832
1619         * ipa-inline-transform.c (update_noncloned_frequencies): Always
1620         scale.
1621         (inline_transform): Likewise.
1622         * predict.c (counts_to_freqs): Remove useless conditional.
1623         * profile-count.h (profile_count::apply_scale): Move sanity check.
1624         * tree-inline.c (copy_bb): Always scale.
1625         (copy_cfg_body): Likewise.
1627 2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
1629         PR target/67591
1630         * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
1631         attribute.
1632         (*cmp_ite0): Add enabled_for_depr_it attribute.
1633         (*cmp_ite1): Likewise.
1635 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
1637         * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
1638         TYPE_MFCRF.
1640 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
1642         * tree-vrp.c (vrp_int_const_binop): Return true on success and
1643         return the value by pointer.
1644         (extract_range_from_multiplicative_op_1): Update accordingly.
1645         Return as soon as an operation fails.
1647 2017-11-05  Tom de Vries  <tom@codesourcery.com>
1649         PR other/82784
1650         * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
1651         (DEF_SANITIZER_BUILTIN): ... here.
1652         (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
1653         DEF_SANITIZER_BUILTIN in if stmt.  Add missing semicolon.
1655 2017-11-05  Tom de Vries  <tom@codesourcery.com>
1657         PR other/82784
1658         * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
1659         macro body.
1660         (ASM_OUTPUT_CASE_LABEL): Add semicolon after
1661         ASM_OUTPUT_BEFORE_CASE_LABEL call.
1662         * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
1663         after macro body.
1664         * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
1665         * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
1666         * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
1668 2017-11-05  Tom de Vries  <tom@codesourcery.com>
1670         PR other/82784
1671         * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
1672         "do {} while (0)".
1674 2017-11-04  Michael Clark  <michaeljclark@mac.com>
1676         * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
1677         config/riscv/riscv.md (addsi3): Use 'i' for immediates.
1678         (adddi3): Likewise.
1679         (*addsi3_extended): Likewise.
1680         (*addsi3_extended2): Likewise.
1681         (<optab>si3): Likewise.
1682         (<optab>di3): Likewise.
1683         (<optab><mode>3): Likewise.
1684         (<*optabe>si3_internal): Likewise.
1685         (zero_extendqi<SUPERQI:mode>2): Likewise.
1686         (*add<mode>hi3): Likewise.
1687         (*xor<mode>hi3): Likewise.
1688         (<optab>di3): Likewise.
1689         (*<optab>si3_extend): Likewise.
1690         (*sge<u>_<X:mode><GPR:mode>): Likewise.
1691         (*slt<u>_<X:mode><GPR:mode>): Likewise.
1692         (*sle<u>_<X:mode><GPR:mode>): Likewise.
1694 2017-11-04  Andrew Waterman  <andrew@sifive.com>
1696         * config/riscv/riscv.c (riscv_option_override): Conditionally set
1697         TARGET_STRICT_ALIGN based upon -mtune argument.
1699 2017-11-04  Andrew Waterman  <andrew@sifive.com>
1701         * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.
1703 2017-11-04  Daniel Santos  <daniel.santos@pobox.com>
1705         config/i386/i386.c (choose_basereg): Use optional scratch
1706         register and add assertion.
1707         (x86_emit_outlined_ms2sysv_save): Use scratch register when
1708         needed, and don't allocate stack.
1709         (ix86_expand_prologue): Rearrange where SSE saves/stub call is
1710         emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
1711         (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.
1713 2017-11-03  Jeff Law  <law@redhat.com>
1715         * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype.
1716         (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence
1717         to probe at the start of a noreturn function.
1719 2017-11-03  Jakub Jelinek  <jakub@redhat.com>
1721         PR tree-optimization/78821
1722         * gimple-ssa-store-merging.c: Update the file comment.
1723         (MAX_STORE_ALIAS_CHECKS): Define.
1724         (struct store_operand_info): New type.
1725         (store_operand_info::store_operand_info): New constructor.
1726         (struct store_immediate_info): Add rhs_code and ops data members.
1727         (store_immediate_info::store_immediate_info): Add rhscode, op0r
1728         and op1r arguments to the ctor, initialize corresponding data members.
1729         (struct merged_store_group): Add load_align_base and load_align
1730         data members.
1731         (merged_store_group::merged_store_group): Initialize them.
1732         (merged_store_group::do_merge): Update them.
1733         (merged_store_group::apply_stores): Pick the constant for
1734         encode_tree_to_bitpos from one of the two operands, or skip
1735         encode_tree_to_bitpos if neither operand is a constant.
1736         (class pass_store_merging): Add process_store method decl.  Remove
1737         bool argument from terminate_all_aliasing_chains method decl.
1738         (pass_store_merging::terminate_all_aliasing_chains): Remove
1739         var_offset_p argument and corresponding handling.
1740         (stmts_may_clobber_ref_p): New function.
1741         (compatible_load_p): New function.
1742         (imm_store_chain_info::coalesce_immediate_stores): Terminate group
1743         if there is overlap and rhs_code is not INTEGER_CST.  For
1744         non-overlapping stores terminate group if rhs is not mergeable.
1745         (get_alias_type_for_stmts): Change first argument from
1746         auto_vec<gimple *> & to vec<gimple *> &.  Add IS_LOAD, CLIQUEP and
1747         BASEP arguments.  If IS_LOAD is true, look at rhs1 of the stmts
1748         instead of lhs.  Compute *CLIQUEP and *BASEP in addition to the
1749         alias type.
1750         (get_location_for_stmts): Change first argument from
1751         auto_vec<gimple *> & to vec<gimple *> &.
1752         (struct split_store): Remove orig_stmts data member, add orig_stores.
1753         (split_store::split_store): Create orig_stores rather than orig_stmts.
1754         (find_constituent_stmts): Renamed to ...
1755         (find_constituent_stores): ... this.  Change second argument from
1756         vec<gimple *> * to vec<store_immediate_info *> *, push pointers
1757         to info structures rather than the statements.
1758         (split_group): Rename ALLOW_UNALIGNED argument to
1759         ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle
1760         it.  Adjust find_constituent_stores caller.
1761         (imm_store_chain_info::output_merged_store): Handle rhs_code other
1762         than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and
1763         get_location_for_stmts callers.  Set MR_DEPENDENCE_CLIQUE and
1764         MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores.
1765         (mem_valid_for_store_merging): New function.
1766         (handled_load): New function.
1767         (pass_store_merging::process_store): New method.
1768         (pass_store_merging::execute): Use process_store method.  Adjust
1769         terminate_all_aliasing_chains caller.
1771 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
1773         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
1774         Return true for more constants, symbols and label references.
1775         (aarch64_valid_floating_const): Remove unused function.
1777 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
1779         PR target/82786
1780         * config/aarch64/aarch64.c (aarch64_layout_frame):
1781         Undo forcing of LR at bottom of frame.
1783 2017-11-03  Jeff Law  <law@redhat.com>
1785         PR target/82823
1786         * config/i386/i386.c (ix86_expand_prologue): Tighten assert
1787         for int_registers_saved.
1789         * cfganal.c (single_pred_edge_ignoring_loop_edges): New function
1790         extracted from tree-ssa-dom.c.
1791         * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype.
1792         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove.
1793         (record_equivalences_from_incoming_edge): Add additional argument
1794         to single_pred_edge_ignoring_loop_edges call.
1795         * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove.
1796         (uncprop_dom_walker::before_dom_children): Add additional argument
1797         to single_pred_edge_ignoring_loop_edges call.
1798         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use
1799         single_pred_edge_ignoring_loop_edges rather than open coding.
1800         * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly.
1802 2017-11-03  Marc Glisse  <marc.glisse@inria.fr>
1804         * match.pd (-(-A)): Rewrite.
1806 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
1808         * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
1809         (rs6000_emit_int_cmove): New declaration.
1810         * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
1811         (rs6000_emit_sISEL): Delete.
1812         (rs6000_emit_int_cmove): Make non-static.
1813         * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
1814         instead of rs6000_emit_sISEL.
1816 2017-11-03  Jan Hubicka  <hubicka@ucw.cz>
1818         * asan.c (create_cond_insert_point): Maintain profile.
1819         * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
1820         merged.
1821         * basic-block.h (struct basic_block_def): Remove frequency.
1822         (EDGE_FREQUENCY): Use to_frequency
1823         * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
1824         heuristics.
1825         (find_traces): Update to use to_frequency.
1826         (find_traces_1_round): Likewise; use only IPA counts.
1827         (bb_to_key): Likewise.
1828         (connect_traces): Use IPA counts only.
1829         (copy_bb_p): Update to use to_frequency.
1830         (fix_up_crossing_landing_pad): Likewise.
1831         (sanitize_hot_paths): Likewise.
1832         * bt-load.c (basic_block_freq): Likewise.
1833         * cfg.c (init_flow): Set count_max to uninitialized.
1834         (check_bb_profile): Remove frequencies; check counts.
1835         (dump_bb_info): Do not dump frequencies.
1836         (update_bb_profile_for_threading): Update counts only.
1837         (scale_bbs_frequencies_int): Likewise.
1838         (MAX_SAFE_MULTIPLIER): Remove.
1839         (scale_bbs_frequencies_gcov_type): Update counts only.
1840         (scale_bbs_frequencies_profile_count): Update counts only.
1841         (scale_bbs_frequencies): Update counts only.
1842         * cfg.h (struct control_flow_graph): Add count-max.
1843         (update_bb_profile_for_threading): Update prototype.
1844         * cfgbuild.c (find_bb_boundaries): Do not update frequencies.
1845         (find_many_sub_basic_blocks): Likewise.
1846         * cfgcleanup.c (try_forward_edges): Likewise.
1847         (try_crossjump_to_edge): Likewise.
1848         * cfgexpand.c (expand_gimple_cond): Likewise.
1849         (expand_gimple_tailcall): Likewise.
1850         (construct_init_block): Likewise.
1851         (construct_exit_block): Likewise.
1852         * cfghooks.c (verify_flow_info): Check consistency of counts.
1853         (dump_bb_for_graph): Do not dump frequencies.
1854         (split_block_1): Do not update frequencies.
1855         (split_edge): Do not update frequencies.
1856         (make_forwarder_block): Do not update frequencies.
1857         (duplicate_block): Do not update frequencies.
1858         (account_profile_record): Do not update frequencies.
1859         * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
1860         for global heuristics.
1861         * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
1862         (expected_loop_iterations_unbounded): Use counts only.
1863         * cfgloopmanip.c (scale_loop_profile): Simplify.
1864         (create_empty_loop_on_edge): Simplify
1865         (loopify): Simplify
1866         (duplicate_loop_to_header_edge): Simplify
1867         * cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
1868         (update_br_prob_note): Take care of removing note when profile
1869         becomes undefined.
1870         (relink_block_chain): Do not dump frequency.
1871         (rtl_account_profile_record): Use to_frequency.
1872         * cgraph.c (symbol_table::create_edge): Convert count to ipa count.
1873         (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
1874         (cgraph_update_edges_for_call_stmt_node): Likewise.
1875         (cgraph_edge::verify_count_and_frequency): Update.
1876         (cgraph_node::verify_node): Temporarily disable frequency verification.
1877         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
1878         to_cgraph_frequency.
1879         (cgraph_edge::rebuild_edges): Convert to ipa counts.
1880         * cgraphunit.c (init_lowered_empty_function): Do not initialize
1881         frequencies.
1882         (cgraph_node::expand_thunk): Update profile.
1883         * except.c (dw2_build_landing_pads): Do not update frequency.
1884         * final.c (compute_alignments): Use to_frequency.
1885         (dump_basic_block_info): Do not dump frequency.
1886         * gimple-pretty-print.c (dump_profile): Do not dump frequency.
1887         (dump_gimple_bb_header): Do not dump frequency.
1888         * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
1889         do update count.
1890         * gimple-streamer-in.c (input_bb): Do not stream frequency.
1891         * gimple-streamer-out.c (output_bb): Do not stream frequency.
1892         * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
1893         (init_before_recovery): Do not update frequency.
1894         (sched_create_recovery_edges): Do not update frequency.
1895         * hsa-gen.c (convert_switch_statements): Do not update frequency.
1896         * ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
1897         (ipa_cp_c_finalize): Set max_count to uninitialized.
1898         * ipa-fnsummary.c (get_minimal_bb): Use counts.
1899         (param_change_prob): Use counts.
1900         * ipa-profile.c (ipa_profile_generate_summary): Do not summarize
1901         local profiles.
1902         * ipa-split.c (consider_split): Use to_frequency.
1903         (split_function): Use to_frequency.
1904         * ira-build.c (loop_compare_func): Likewise.
1905         (mark_loops_for_removal): Likewise.
1906         (mark_all_loops_for_removal): Likewise.
1907         * loop-doloop.c (doloop_modify): Do not update frequency.
1908         * loop-unroll.c (unroll_loop_runtime_iterations): Do not update
1909         frequency.
1910         * lto-streamer-in.c (input_function): Update count_max.
1911         * omp-expand.c (expand_omp_taskreg): Update count_max.
1912         * omp-simd-clone.c (simd_clone_adjust): Update profile.
1913         * predict.c (maybe_hot_frequency_p): Use to_frequency.
1914         (maybe_hot_count_p): Use ipa counts only.
1915         (maybe_hot_bb_p): Simplify.
1916         (maybe_hot_edge_p): Simplify.
1917         (probably_never_executed): Do not take frequency argument.
1918         (probably_never_executed_bb_p): Do not pass frequency.
1919         (probably_never_executed_edge_p): Likewise.
1920         (combine_predictions_for_bb): Check that profile is nonzero.
1921         (propagate_freq): Do not set frequency.
1922         (drop_profile): Simplify.
1923         (counts_to_freqs): Simplify.
1924         (expensive_function_p): Use to_frequency.
1925         (propagate_unlikely_bbs_forward): Simplify.
1926         (determine_unlikely_bbs): Simplify.
1927         (estimate_bb_frequencies): Add hack to silence graphite issues.
1928         (compute_function_frequency): Use ipa counts.
1929         (pass_profile::execute): Update.
1930         (rebuild_frequencies): Use counts only.
1931         (force_edge_cold): Use counts only.
1932         * profile-count.c (profile_count::dump): Dump new count types.
1933         (profile_count::differs_from_p): Check compatiblity.
1934         (profile_count::to_frequency): New function.
1935         (profile_count::to_cgraph_frequency): New function.
1936         * profile-count.h (struct function): Declare.
1937         (enum profile_quality): Add profile_guessed_local and
1938         profile_guessed_global0.
1939         (class profile_proability): Decrease number of bits to 29;
1940         update from_reg_br_prob_note and to_reg_br_prob_note.
1941         (class profile_count: Update comment; decrease number of bits
1942         to 61. Check compatibility.
1943         (profile_count::compatible_p): New private member function.
1944         (profile_count::ipa_p): New member function.
1945         (profile_count::operator<): Handle global zero correctly.
1946         (profile_count::operator>): Handle global zero correctly.
1947         (profile_count::operator<=): Handle global zero correctly.
1948         (profile_count::operator>=): Handle global zero correctly.
1949         (profile_count::nonzero_p): New member function.
1950         (profile_count::force_nonzero): New member function.
1951         (profile_count::max): New member function.
1952         (profile_count::apply_scale): Handle IPA scalling.
1953         (profile_count::guessed_local): New member function.
1954         (profile_count::global0): New member function.
1955         (profile_count::ipa): New member function.
1956         (profile_count::to_frequency): Declare.
1957         (profile_count::to_cgraph_frequency): Declare.
1958         * profile.c (OVERLAP_BASE): Delete.
1959         (compute_frequency_overlap): Delete.
1960         (compute_branch_probabilities): Do not use compute_frequency_overlap.
1961         * regs.h (REG_FREQ_FROM_BB): Use to_frequency.
1962         * sched-ebb.c (rank): Use counts only.
1963         * shrink-wrap.c (handle_simple_exit): Use counts only.
1964         (try_shrink_wrapping): Use counts only.
1965         (place_prologue_for_one_component): Use counts only.
1966         * tracer.c (find_best_predecessor): Use to_frequency.
1967         (find_trace): Use to_frequency.
1968         (tail_duplicate): Use to_frequency.
1969         * trans-mem.c (expand_transaction): Do not update frequency.
1970         * tree-call-cdce.c: Do not update frequency. 
1971         * tree-cfg.c (gimple_find_sub_bbs): Likewise.
1972         (gimple_merge_blocks): Likewise.
1973         (gimple_split_edge): Likewise.
1974         (gimple_duplicate_sese_region): Likewise.
1975         (gimple_duplicate_sese_tail): Likewise.
1976         (move_sese_region_to_fn): Likewise.
1977         (gimple_account_profile_record): Likewise.
1978         (insert_cond_bb): Likewise.
1979         * tree-complex.c (expand_complex_div_wide): Likewise.
1980         * tree-eh.c (lower_resx): Update profile.
1981         * tree-inline.c (copy_bb): Simplify count scaling; do not scale
1982         frequencies.
1983         (initialize_cfun): Do not initialize frequencies
1984         (freqs_to_counts): Delete.
1985         (copy_cfg_body): Ignore count parameter.
1986         (copy_body): Update.
1987         (expand_call_inline): Update count_max.
1988         (optimize_inline_calls): Update count_max.
1989         (tree_function_versioning): Update count_max.
1990         * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
1991         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
1992         frequency.
1993         * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
1994         * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
1995         (try_peel_loop): Likewise.
1996         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
1997         to_frequency.
1998         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
1999         (tree_transform_and_unroll_loop): Do not use frequencies
2000         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
2001         Use reliable prediction only.
2002         * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
2003         * tree-ssa-sink.c (select_best_block): Use to_frequency.
2004         * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
2005         probability scaling.
2006         * tree-ssa-threadupdate.c (create_block_for_threading): Do
2007         not update frequency
2008         (any_remaining_duplicated_blocks): Likewise.
2009         (update_profile): Likewise.
2010         (estimated_freqs_path): Delete.
2011         (freqs_to_counts_path): Delete.
2012         (clear_counts_path): Delete.
2013         (ssa_fix_duplicate_block_edges): Likewise.
2014         (duplicate_thread_path): Likewise.
2015         * tree-switch-conversion.c (gen_inbound_check): Use counts.
2016         * tree-tailcall.c (decrease_profile): Do not update frequency.
2017         (eliminate_tail_call): Likewise.
2018         * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
2019         * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
2020         (optimize_mask_stores): Likewise.
2021         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
2022         * ubsan.c (ubsan_expand_null_ifn): Update profile.
2023         (ubsan_expand_ptr_ifn): Update profile.
2024         * value-prof.c (gimple_ic): Simplify.
2025         * value-prof.h (gimple_ic): Update prototype.
2026         * ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
2027         * ipa-inline.c (compute_uninlined_call_time): Be sure that
2028         counts are nonzero.
2029         (want_inline_self_recursive_call_p): Likewise.
2030         (resolve_noninline_speculation): Only cummulate defined counts.
2031         (inline_small_functions): Use nonzero_p.
2032         (ipa_inline): Do not access freed node.
2034 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
2036         * config/aarch64/aarch64.c (aarch64_override_options_internal):
2037         Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
2039 2017-11-03  Kito Cheng  <kito.cheng@gmail.com>
2041         * config/riscv/riscv.c (riscv_legitimize_move): Handle
2042         non-legitimate address.
2044 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
2046         * config/rs6000/rs6000.md (*lt0_disi): Delete.
2047         (*lt0_<mode>di, *lt0_<mode>si): New.
2049 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
2051         * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to
2052         TARGET_PAIRED_FLOAT.
2054 2017-11-03  Siddhesh Poyarekar  <siddhesh.poyarekar@linaro.org>
2055             Jim Wilson  <jim.wilson@linaro.org>
2057         * config/aarch64/aarch64-cores.def (saphira): New CPU.
2058         * config/aarch64/aarch64-tune.md: Regenerated.
2059         * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira".
2060         * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table.
2062 2017-11-03  Cupertino Miranda  <cmiranda@synopsys.com>
2064         * config/arc/arc.c (arc_save_restore): Corrected CFA note.
2065         (arc_expand_prologue): Restore blink for millicode.
2066         * config/arc/linux.h (LINK_EH_SPEC): Defined.
2068 2017-11-03  Richard Sandiford  <richard.sandiford@linaro.org>
2070         PR target/82809
2071         * config/i386/i386.c (ix86_vector_duplicate_value): Use
2072         gen_vec_duplicate after forcing the scalar into a register.
2074 2017-11-02  Segher Boessenkool  <segher@kernel.crashing.org>
2076         * combine (try_combine): Print the insns input to try_combine to the
2077         dump file.
2079 2017-11-02  Steve Ellcey  <sellcey@cavium.com>
2081         PR target/79868
2082         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
2083         Remove second argument from aarch64_process_target_attr call.
2084         * config/aarch64/aarch64-protos.h (aarch64_process_target_attr):
2085         Ditto.
2086         * config/aarch64/aarch64.c (aarch64_attribute_info): Change
2087         field type.
2088         (aarch64_handle_attr_arch): Remove second argument.
2089         (aarch64_handle_attr_cpu): Ditto.
2090         (aarch64_handle_attr_tune): Ditto.
2091         (aarch64_handle_attr_isa_flags): Ditto.
2092         (aarch64_process_one_target_attr): Ditto.
2093         (aarch64_process_target_attr): Ditto.
2094         (aarch64_option_valid_attribute_p): Remove second argument.
2095         on aarch64_process_target_attr call.
2097 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
2099         * diagnostic.c: Include "selftest-diagnostic.h".
2100         (selftest::assert_location_text): New function.
2101         (selftest::test_diagnostic_get_location_text): New function.
2102         (selftest::diagnostic_c_tests): Call it.
2104 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
2106         * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o.
2107         * diagnostic-show-locus.c: Include "selftest-diagnostic.h".
2108         (class selftest::test_diagnostic_context): Move to...
2109         * selftest-diagnostic.c: New file.
2110         * selftest-diagnostic.h: New file.
2112 2017-11-02  James Bowman  <james.bowman@ftdichip.com>
2114         * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase
2115         offset range for FT32B.
2116         * config/ft32/ft32.h: option "mcompress" enables relaxation.
2117         * config/ft32/ft32.md: Add TARGET_NOPM.
2118         * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm.
2119         * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm.
2121 2017-11-02  Wilco Dijkstra  <wdijkstr@arm.com>
2123         * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define.
2125 2017-11-02  Jeff Law  <law@redhat.com>
2127         * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove
2128         virtual keyword on FINAL OVERRIDE members.
2130         * tree-ssa-propagate.h (ssa_propagation_engine): Group
2131         virtuals together.  Add virtual destructor.
2132         (substitute_and_fold_engine): Similarly.
2134 2017-11-02  Jan Hubicka  <hubicka@ucw.cz>
2136         * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+.
2138 2017-11-02  Richard Biener  <rguenther@suse.de>
2140         PR tree-optimization/82795
2141         * tree-if-conv.c (predicate_mem_writes): Remove bogus assert.
2143 2017-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2145         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require
2146         gcc_SUN_LD_VERSION.
2147         (gcc_GAS_CHECK_FEATURE): Remove.
2148         * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from
2149         gcc_AC_INITFINI_ARRAY here.  Update for Solaris 11.4 changes.
2150         * configure: Regenerate.
2152 2017-11-02  Claudiu Zissulescu <claziss@synopsys.com>
2154         * config/arc/arc.c (hwloop_optimize): Account for empty
2155         body loops.
2157 2017-11-02  Richard Biener  <rguenther@suse.de>
2159         PR middle-end/82765
2160         * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
2161         Truncate ARRAY_REF index and element size.
2163 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
2165         * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
2167 2017-11-01  Jeff Law  <law@redhat.com>
2169         * tree-ssa-ccp.c (ccp_folder): New class derived from
2170         substitute_and_fold_engine.
2171         (ccp_folder::get_value): New member function.
2172         (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt.
2173         (ccp_fold_stmt): Remove prototype.
2174         (ccp_finalize): Call substitute_and_fold from the ccp_class.
2175         * tree-ssa-copy.c (copy_folder): New class derived from
2176         substitute_and_fold_engine.
2177         (copy_folder::get_value): Renamed from get_value.
2178         (fini_copy_prop): Call substitute_and_fold from copy_folder class.
2179         * tree-vrp.c (vrp_folder): New class derived from
2180         substitute_and_fold_engine.
2181         (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt.
2182         (vrp_folder::get_value): New member function.
2183         (vrp_finalize): Call substitute_and_fold from vrp_folder class.
2184         (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in.
2185         * tree-ssa-propagate.h (substitute_and_fold_engine): New class to
2186         provide a class interface to folder/substitute routines.
2187         (ssa_prop_fold_stmt_fn): Remove typedef.
2188         (ssa_prop_get_value_fn): Likewise.
2189         (subsitute_and_fold): Remove prototype.
2190         (replace_uses_in): Likewise.
2191         * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
2192         Renamed from replace_uses_in.  Call the virtual member function
2193         (substitute_and_fold_engine::replace_phi_args_in): Similarly.
2194         (substitute_and_fold_dom_walker): Remove initialization of
2195         data member entries for calbacks.  Add substitute_and_fold_engine
2196         member and initialize it.
2197         (substitute_and_fold_dom_walker::before_dom_children0: Use the
2198         member functions for get_value, replace_phi_args_in c
2199         replace_uses_in, and fold_stmt calls.
2200         (substitute_and_fold_engine::substitute_and_fold): Renamed from
2201         substitute_and_fold.  Remove assert.   Update ctor call.
2203         * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef.
2204         (ssa_prop_visit_phi_fn): Likewise.
2205         (class ssa_propagation_engine): New class to provide an interface
2206         into ssa_propagate.
2207         * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped
2208         variable.
2209         (ssa_prop_visit_phi): Likewise.
2210         (ssa_propagation_engine::simulate_stmt): Moved into class.
2211         Call visit_phi/visit_stmt from the class rather than via
2212         file scoped static variables.
2213         (ssa_propagation_engine::simulate_block): Moved into class.
2214         (ssa_propagation_engine::process_ssa_edge_worklist): Similarly.
2215         (ssa_propagation_engine::ssa_propagate): Similarly.  No longer
2216         set file scoped statics for the visit_stmt/visit_phi callbacks.
2217         * tree-complex.c (complex_propagate): New class derived from
2218         ssa_propagation_engine.
2219         (complex_propagate::visit_stmt): Renamed from complex_visit_stmt.
2220         (complex_propagate::visit_phi): Renamed from complex_visit_phi.
2221         (tree_lower_complex): Call ssa_propagate via the complex_propagate
2222         class.
2223         * tree-ssa-ccp.c: (ccp_propagate): New class derived from
2224         ssa_propagation_engine.
2225         (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node.
2226         (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt.
2227         (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class.
2228         * tree-ssa-copy.c (copy_prop): New class derived from
2229         ssa_propagation_engine.
2230         (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt.
2231         (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node.
2232         (execute_copy_prop): Call ssa_propagate from the copy_prop class.
2233         * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine.
2234         (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt.
2235         (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node.
2236         (execute_vrp): Call ssa_propagate from the vrp_prop class.
2238 2017-11-01  Jakub Jelinek  <jakub@redhat.com>
2240         PR rtl-optimization/82778
2241         PR rtl-optimization/82597
2242         * compare-elim.c (struct comparison): Add in_a_setter field.
2243         (find_comparison_dom_walker::before_dom_children): Remove killed
2244         bitmap and df_simulate_find_defs call, instead walk the defs.
2245         Compute last_setter and initialize in_a_setter.  Merge definitions
2246         with first initialization for a few variables.
2247         (try_validate_parallel): Use insn_invalid_p instead of
2248         recog_memoized.  Return insn rather than just the pattern.
2249         (try_merge_compare): Fix up comment.  Don't uselessly test if
2250         in_a is a REG_P.  Use cmp->in_a_setter instead of walking UD
2251         chains.
2252         (execute_compare_elim_after_reload): Remove df_chain_add_problem
2253         call.
2255 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2256             Alan Hayward  <alan.hayward@arm.com>
2257             David Sherwood  <david.sherwood@arm.com>
2259         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
2260         aarch64_hard_regno_nregs to get the number of registers
2261         in a mode.
2263 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2264             Alan Hayward  <alan.hayward@arm.com>
2265             David Sherwood  <david.sherwood@arm.com>
2267         * config/aarch64/constraints.md (Upl): Rename to...
2268         (Uaa): ...this.
2269         * config/aarch64/aarch64.md
2270         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw):
2271         Update accordingly.
2273 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2274             Alan Hayward  <alan.hayward@arm.com>
2275             David Sherwood  <david.sherwood@arm.com>
2277         * config/aarch64/aarch64.c (aarch64_add_constant_internal)
2278         (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move
2279         earlier in file.
2281 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2282             Alan Hayward  <alan.hayward@arm.com>
2283             David Sherwood  <david.sherwood@arm.com>
2285         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp)
2286         (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev)
2287         (aarch64_evpc_dup): Generate rtl direcly, rather than using
2288         named expanders.
2289         (aarch64_expand_vec_perm_const_1): Explicitly check for permutes
2290         of a single element.
2291         * config/aarch64/iterators.md: Add a comment above the permute
2292         unspecs to say that they are generated directly by
2293         aarch64_expand_vec_perm_const.
2294         * config/aarch64/aarch64-simd.md: Likewise the permute instructions.
2296 2017-11-01  Nathan Sidwell  <nathan@acm.org>
2298         * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P.
2300 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
2302         * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
2303         and medany code models, and describe what they do.
2305 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2307         Revert accidental duplicate:
2309         * combine.c (can_change_dest_mode): Reject changes in
2310         REGMODE_NATURAL_SIZE.
2312 2017-11-01  Segher Boessenkool  <segher@kernel.crashing.org>
2314         PR rtl-optimization/64682
2315         PR rtl-optimization/69567
2316         PR rtl-optimization/69737
2317         PR rtl-optimization/82683
2318         * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
2319         register mentioned in the note, drop the note, unless it came from I3,
2320         in which case it should go to I3 again.
2322 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2324         * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap
2325         and return false if not.
2326         (clear_bytes_written_by, live_bytes_read): Update accordingly.
2328 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2330         * tree-ssa-alias.h (ranges_overlap_p): Return false if either
2331         range is known to be empty.
2333 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2334             Alan Hayward  <alan.hayward@arm.com>
2335             David Sherwood  <david.sherwood@arm.com>
2337         * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS
2338         and CONST_VECTOR_NUNITS instead of computing the number of units from
2339         the byte sizes of the vector and element.
2340         (simplify_binary_operation_1): Likewise.
2341         (simplify_const_binary_operation): Likewise.
2342         (simplify_ternary_operation): Likewise.
2344 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2345             Alan Hayward  <alan.hayward@arm.com>
2346             David Sherwood  <david.sherwood@arm.com>
2348         * var-tracking.c (INT_MEM_OFFSET): Replace with...
2349         (int_mem_offset): ...this new function.
2350         (var_mem_set, var_mem_delete_and_set, var_mem_delete)
2351         (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs)
2352         (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset):
2353         Update accordingly.
2355 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2356             Alan Hayward  <alan.hayward@arm.com>
2357             David Sherwood  <david.sherwood@arm.com>
2359         * lower-subreg.c (interesting_mode_p): New function.
2360         (compute_costs, find_decomposable_subregs, decompose_register)
2361         (simplify_subreg_concatn, can_decompose_p, resolve_simple_move)
2362         (resolve_clobber, dump_choices): Use it.
2364 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2365             Alan Hayward  <alan.hayward@arm.com>
2366             David Sherwood  <david.sherwood@arm.com>
2368         * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'.
2370 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2371             Alan Hayward  <alan.hayward@arm.com>
2372             David Sherwood  <david.sherwood@arm.com>
2374         * alias.c (find_base_value, find_base_term): Only process integer
2375         truncations.  Check the precision rather than the size.
2377 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2378             Alan Hayward  <alan.hayward@arm.com>
2379             David Sherwood  <david.sherwood@arm.com>
2381         * machmode.h (is_narrower_int_mode): New function
2382         * optabs.c (expand_float, expand_fix): Use it.
2383         * dwarf2out.c (rotate_loc_descriptor): Likewise.
2385 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2386             Alan Hayward  <alan.hayward@arm.com>
2387             David Sherwood  <david.sherwood@arm.com>
2389         * rtl.h (narrower_subreg_mode): New function.
2390         * ira-color.c (update_costs_from_allocno): Use it.
2392 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2393             Alan Hayward  <alan.hayward@arm.com>
2394             David Sherwood  <david.sherwood@arm.com>
2396         * optabs-query.h (convert_optab_p): New function, split out from...
2397         (convert_optab_handler): ...here.
2398         (widening_optab_handler): Delete.
2399         (find_widening_optab_handler): Remove permit_non_widening parameter.
2400         (find_widening_optab_handler_and_mode): Likewise.  Provide an
2401         override that operates on mode class wrappers.
2402         * optabs-query.c (widening_optab_handler): Delete.
2403         (find_widening_optab_handler_and_mode): Remove permit_non_widening
2404         parameter.  Assert that the two modes are the same class and that
2405         the "from" mode is narrower than the "to" mode.  Use
2406         convert_optab_handler instead of widening_optab_handler.
2407         * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler
2408         instead of widening_optab_handler.
2409         * expr.c (expand_expr_real_2): Update calls to
2410         find_widening_optab_handler.
2411         * optabs.c (expand_widen_pattern_expr): Likewise.
2412         (expand_binop_directly): Take the insn_code as a parameter.
2413         (expand_binop): Only call find_widening_optab_handler for
2414         conversion optabs; use optab_handler otherwise.  Update calls
2415         to find_widening_optab_handler and expand_binop_directly.
2416         Use convert_optab_handler instead of widening_optab_handler.
2417         * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to
2418         find_widening_optab_handler and use scalar_mode rather than
2419         machine_mode.
2420         (convert_plusminus_to_widen): Likewise.
2422 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2423             Alan Hayward  <alan.hayward@arm.com>
2424             David Sherwood  <david.sherwood@arm.com>
2426         * machmode.h (fixed_size_mode): New class.
2427         * rtl.h (get_pool_mode): Return fixed_size_mode.
2428         * gengtype.c (main): Add fixed_size_mode.
2429         * target.def (get_raw_result_mode): Return a fixed_size_mode.
2430         (get_raw_arg_mode): Likewise.
2431         * doc/tm.texi: Regenerate.
2432         * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode.
2433         * targhooks.c (default_get_reg_raw_mode): Likewise.
2434         * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise.
2435         * config/mips/mips.c (mips_get_reg_raw_mode): Likewise.
2436         * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise.
2437         (msp430_get_raw_result_mode): Likewise.
2438         * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode>
2439         * dbxout.c (dbxout_parms): Require fixed-size modes.
2440         * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise.
2441         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
2442         * omp-low.c (lower_oacc_reductions): Likewise.
2443         * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes.
2444         (simplify_subreg): Update accordingly.
2445         * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode.
2446         (force_const_mem): Update accordingly.  Return NULL_RTX for modes
2447         that aren't fixed-size.
2448         (get_pool_mode): Return a fixed_size_mode.
2449         (output_constant_pool_2): Take a fixed_size_mode.
2451 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2452             Alan Hayward  <alan.hayward@arm.com>
2453             David Sherwood  <david.sherwood@arm.com>
2455         * doc/rtl.texi (vec_series): Document.
2456         (const): Say that the operand can be a vec_series.
2457         * rtl.def (VEC_SERIES): New rtx code.
2458         * rtl.h (const_vec_series_p_1): Declare.
2459         (const_vec_series_p): New function.
2460         * emit-rtl.h (gen_const_vec_series): Declare.
2461         (gen_vec_series): Likewise.
2462         * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series)
2463         (gen_vec_series): Likewise.
2464         * optabs.c (expand_mult_highpart): Use gen_const_vec_series.
2465         * simplify-rtx.c (simplify_unary_operation): Handle negations
2466         of vector series.
2467         (simplify_binary_operation_series): New function.
2468         (simplify_binary_operation_1): Use it.  Handle VEC_SERIES.
2469         (test_vector_ops_series): New function.
2470         (test_vector_ops): Call it.
2471         * config/powerpcspe/altivec.md (altivec_lvsl): Use
2472         gen_const_vec_series.
2473         (altivec_lvsr): Likewise.
2474         * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise.
2476 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2477             Alan Hayward  <alan.hayward@arm.com>
2478             David Sherwood  <david.sherwood@arm.com>
2480         * doc/rtl.texi (const): Update description of address constants.
2481         Say that vector constants are allowed too.
2482         * common.md (E, F): Use CONSTANT_P instead of checking for
2483         CONST_VECTOR.
2484         * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
2485         checking for CONST_VECTOR.
2486         * expmed.c (make_tree): Use build_vector_from_val for a CONST
2487         VEC_DUPLICATE.
2488         * expr.c (expand_expr_real_2): Check for vector modes instead
2489         of checking for CONST_VECTOR.
2490         * rtl.h (const_vec_p): New function.
2491         (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
2492         (unwrap_const_vec_duplicate): Handle them here too.
2494 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2495             David Malcolm  <dmalcolm@redhat.com>
2496             Alan Hayward  <alan.hayward@arm.com>
2497             David Sherwood  <david.sherwood@arm.com>
2499         * rtl.h (vec_duplicate_p): New function.
2500         * selftest-rtl.c (assert_rtx_eq_at): New function.
2501         * selftest-rtl.h (ASSERT_RTX_EQ): New macro.
2502         (assert_rtx_eq_at): Declare.
2503         * selftest.h (selftest::simplify_rtx_c_tests): Declare.
2504         * selftest-run-tests.c (selftest::run_tests): Call it.
2505         * simplify-rtx.c: Include selftest.h and selftest-rtl.h.
2506         (simplify_unary_operation_1): Recursively handle vector duplicates.
2507         (simplify_binary_operation_1): Likewise.  Handle VEC_SELECTs of
2508         vector duplicates.
2509         (simplify_subreg): Handle subregs of vector duplicates.
2510         (make_test_reg, test_vector_ops_duplicate, test_vector_ops)
2511         (selftest::simplify_rtx_c_tests): New functions.
2513 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2514             Alan Hayward  <alan.hayward@arm.com>
2515             David Sherwood  <david.sherwood@arm.com>
2517         * emit-rtl.h (gen_const_vec_duplicate): Declare.
2518         (gen_vec_duplicate): Likewise.
2519         * emit-rtl.c (gen_const_vec_duplicate_1): New function, split
2520         out from...
2521         (gen_const_vector): ...here.
2522         (gen_const_vec_duplicate, gen_vec_duplicate): New functions.
2523         (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants
2524         whose elements are all equal.
2525         * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate.
2526         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2527         (simplify_relational_operation): Likewise.
2528         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
2529         Likewise.
2530         (aarch64_simd_dup_constant): Use gen_vec_duplicate.
2531         (aarch64_expand_vector_init): Likewise.
2532         * config/arm/arm.c (neon_vdup_constant): Likewise.
2533         (neon_expand_vector_init): Likewise.
2534         (arm_expand_vec_perm): Use gen_const_vec_duplicate.
2535         (arm_block_set_unaligned_vect): Likewise.
2536         (arm_block_set_aligned_vect): Likewise.
2537         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
2538         * config/i386/i386.c (ix86_expand_vec_perm): Likewise.
2539         (expand_vec_perm_even_odd_pack): Likewise.
2540         (ix86_vector_duplicate_value): Use gen_vec_duplicate.
2541         * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX.
2542         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use
2543         gen_const_vec_duplicate.
2544         * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX.
2545         * config/mips/mips.c (mips_gen_const_int_vector): Use
2546         gen_const_vec_duplicate.
2547         (mips_expand_vector_init): Use CONST0_RTX.
2548         * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise.
2549         (define_split): Use gen_const_vec_duplicate.
2550         * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX.
2551         (define_split): Use gen_const_vec_duplicate.
2552         * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise.
2553         (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise.
2554         * config/spu/spu.c (spu_const): Likewise.
2556 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2557             Alan Hayward  <alan.hayward@arm.com>
2558             David Sherwood  <david.sherwood@arm.com>
2560         * combine.c (can_change_dest_mode): Reject changes in
2561         REGMODE_NATURAL_SIZE.
2563 2017-10-31  Sandra Loosemore  <sandra@codesourcery.com>
2565         * configure.ac (--enable-libssp): New.
2566         (gcc_cv_libc_provides_ssp): Check for explicit setting before
2567         trying to determine target-specific default.  Adjust indentation.
2568         * configure: Regenerated.
2569         * doc/install.texi (Configuration): Expand --disable-libssp
2570         documentation.
2572 2017-10-31  Daniel Santos  <daniel.santos@pobox.com>
2574         config/i386/i386.c (ix86_expand_epilogue): Correct stack
2575         calculation.
2577 2017-10-31  Martin Jambor  <mjambor@suse.cz>
2579         PR c++/81702
2580         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
2582 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
2584         * auto-profile.c (autofdo_source_profile::read): Use
2585         UNKNOWN_LOCATION rather than 0.
2586         * diagnostic-core.h (warning_at_rich_loc): Rename to...
2587         (warning_at): ...this overload.
2588         (warning_at_rich_loc_n): Rename to...
2589         (warning_n): ...this overload.
2590         (error_at_rich_loc): Rename to...
2591         (error_at): ...this overload.
2592         (pedwarn_at_rich_loc): Rename to...
2593         (pedwarn): ...this overload.
2594         (permerror_at_rich_loc): Rename to...
2595         (permerror): ...this overload.
2596         (inform_at_rich_loc): Rename to...
2597         (inform): ...this overload.
2598         * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
2599         (diagnostic_n_impl_richloc): Rename to...
2600         (diagnostic_n_impl): ...this rich_location *-based decl.
2601         (inform_at_rich_loc): Rename to...
2602         (inform): ...this, and add an assertion.
2603         (inform_n): Update for removal of location_t-based diagnostic_n_impl.
2604         (warning_at_rich_loc): Rename to...
2605         (warning_at): ...this, and add an assertion.
2606         (warning_at_rich_loc_n): Rename to...
2607         (warning_n): ...this, and add an assertion.
2608         (warning_n): Update location_t-based implementation for removal of
2609         location_t-based diagnostic_n_impl.
2610         (pedwarn_at_rich_loc): Rename to...
2611         (pedwarn): ...this, and add an assertion.
2612         (permerror_at_rich_loc): Rename to...
2613         (permerror): ...this, and add an assertion.
2614         (error_n): Update for removal of location_t-based diagnostic_n_impl.
2615         (error_at_rich_loc): Rename to...
2616         (error_at): ...this, and add an assertion.
2617         * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
2618         (driver::do_spec_on_infiles): Likewise.
2619         * substring-locations.c (format_warning_va): Update for renaming
2620         of inform_at_rich_loc.
2622 2017-10-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2624         * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
2625         _Float<N>X built-in functions so that the variant without the
2626         "__builtin_" prefix is only enabled for the GNU C and Objective C
2627         languages when they are in non-strict ANSI/ISO mode.
2628         (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
2629         * target.def (floatn_builtin_p): Add a target hook to control
2630         whether _Float<N> and _Float<N>X built-in functions without the
2631         "__builtin_" prefix are enabled, and return true for C and
2632         Objective C in the default hook.  Include langhooks.h in
2633         targhooks.c.
2634         * targhooks.h (default_floatn_builtin_p): Likewise.
2635         * targhooks.c (default_floatn_builtin_p): Likewise.
2636         * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
2637         floatn_builtin_p target hook.
2638         * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
2640 2017-10-31  Matthew Fortune  <matthew.fortune@imgtec.com>
2641             Eric Botcazou  <ebotcazou@adacore.com>
2643         PR rtl-optimization/81803
2644         * lra-constraints.c (curr_insn_transform): Also reload the whole
2645         register for a strict subreg no wider than a word if this is for
2646         a WORD_REGISTER_OPERATIONS target.
2648 2017-10-31  Jason Merrill  <jason@redhat.com>
2650         * gdbinit.in: Skip over inlines from timevar.h.
2652 2017-10-31  Martin Liska  <mliska@suse.cz>
2654         * doc/gcov.texi: Document new option.
2655         * gcov.c (print_usage): Likewise print it.
2656         (process_args): Support the argument.
2657         (format_count): New function.
2658         (format_gcov): Use the function.
2660 2017-10-31  Martin Liska  <mliska@suse.cz>
2662         * gcov.c (struct name_map): do not use typedef.
2663         Define operator== and operator<.
2664         (name_search): Remove.
2665         (name_sort): Remove.
2666         (main): Do not allocate names.
2667         (process_file): Add vertical space.
2668         (generate_results): Use std::find.
2669         (release_structures): Do not release memory.
2670         (find_source): Use std::find.
2672 2017-10-31  Martin Liska  <mliska@suse.cz>
2674         * gcov.c (struct line_info): Remove it's typedef.
2675         (line_info::line_info): Add proper ctor.
2676         (line_info::has_block): Do not use a typedef.
2677         (struct source_info): Do not use typedef.
2678         (circuit): Likewise.
2679         (get_cycles_count): Likewise.
2680         (output_intermediate_file): Iterate via vector iterator.
2681         (add_line_counts): Use std::vector methods.
2682         (accumulate_line_counts): Likewise.
2683         (output_lines): Likewise.
2685 2017-10-31  Martin Liska  <mliska@suse.cz>
2687         * gcov.c (struct source_info): Remove typedef.
2688         (source_info::source_info): Add proper ctor.
2689         (accumulate_line_counts): Use struct, not it's typedef.
2690         (output_gcov_file): Likewise.
2691         (output_lines): Likewise.
2692         (main): Do not allocate an array.
2693         (output_intermediate_file): Use size of vector container.
2694         (process_file): Resize the vector.
2695         (generate_results): Do not preallocate, use newly added vector
2696         lines.
2697         (release_structures): Do not release sources.
2698         (find_source): Use vector methods.
2699         (add_line_counts): Do not use typedef.
2701 2017-10-31  Martin Liska  <mliska@suse.cz>
2703         * doc/gcov.texi: Document that.
2704         * gcov.c (add_line_counts): Mark lines with a non-executed
2705         statement.
2706         (output_line_beginning): Handle such lines.
2707         (output_lines): Pass new argument.
2708         (output_intermediate_file): Print it in intermediate format.
2710 2017-10-31  Martin Liska  <mliska@suse.cz>
2712         * color-macros.h: New file.
2713         * diagnostic-color.c: Factor out color related to macros to
2714         color-macros.h.
2715         * doc/gcov.texi: Document -k option.
2716         * gcov.c (INCLUDE_STRING): Include string.h.
2717         (print_usage): Add -k option.
2718         (process_args): Parse it.
2719         (pad_count_string): New function.
2720         (output_line_beginning): Likewise.
2721         (DEFAULT_LINE_START): New macro.
2722         (output_lines): Support color output.
2724 2017-10-31  Martin Liska  <mliska@suse.cz>
2726         PR gcov-profile/82633
2727         * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
2728         their interaction with GCOV infrastructure.
2729         * configure.ac: Add -fkeep-{inline,static}-functions to
2730         coverage_flags.
2731         * configure: Regenerate.
2733 2017-10-31  Uros Bizjak  <ubizjak@gmail.com>
2735         PR target/82772
2736         * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
2738 2017-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
2740         PR target/82674
2741         * config/rs6000/rs6000.md (allocate_stack): Force update interval
2742         into a register if it does not fit into an immediate offset field.
2744 2017-10-31  Olivier Hainque  <hainque@adacore.com>
2746         * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
2748 2017-10-31  Julia Koval  <julia.koval@intel.com>
2750         * config.gcc: Add gfniintrin.h.
2751         * config/i386/gfniintrin.h: New.
2752         * config/i386/i386-builtin-types.def
2753         (__builtin_ia32_vgf2p8affineinvqb_v64qi,
2754         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
2755         __builtin_ia32_vgf2p8affineinvqb_v32qi,
2756         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
2757         __builtin_ia32_vgf2p8affineinvqb_v16qi,
2758         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
2759         * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
2760         V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
2761         V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
2762         V64QI_FTYPE_V64QI_V64QI_INT): New types.
2763         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
2764         * config/i386/immintrin.h: Include gfniintrin.h.
2765         * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
2767 2017-10-30  Eric Botcazou  <ebotcazou@adacore.com>
2769         * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
2771 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
2773         * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
2774         (arm_ashldi3_1bit): Remove pattern.
2775         (ashrdi3): Remove shift by 1 expansion.
2776         (arm_ashrdi3_1bit): Remove pattern.
2777         (lshrdi3): Remove shift by 1 expansion.
2778         (arm_lshrdi3_1bit): Remove pattern.
2779         * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
2780         cost of ashldi3 by 1.
2781         * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
2782         (<shift>di3_neon): Likewise.
2784 2017-10-30  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
2786         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
2787         both identically named patterns to (*aarch64_simd_mov<VD:mode>)
2788         and (*aarch64_simd_mov<VQ:mode>).
2789         (*aarch64_simd_mov<VD:mode>): Change type attribute to match
2790         pattern alternative.
2791         (*aarch64_simd_mov<VQ:mode>): Re-order and change type
2792         attributes to match pattern alternative.
2794 2017-10-30  Steven Munroe  <munroesj@gcc.gnu.org>
2796         * config.gcc (powerpc*-*-*): Add emmintrin.h.
2797         * config/rs6000/emmintrin.h: New file.
2798         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
2800 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
2802         * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
2803         * (movdi_vfp_cortexa8): Remove pattern.
2805 2017-10-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2807         * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
2808         etc. reference.
2809         (Specific, alpha*-dec-osf5.1): Remove.
2810         (Specific, mips-sgi-irix5): Remove.
2811         (Specific, mips-sgi-irix6): Remove.
2813 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
2815         PR middle-end/22141
2816         * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
2817         arguments to clear_bit_region_be.
2819 2017-10-30  Jim Wilson  <wilson@tuliptree.org>
2821         * gimplify.c: Include memmodel.h.
2823 2017-10-30  Martin Jambor  <mjambor@suse.cz>
2825         * omp-grid.c (grid_attempt_target_gridification): Also insert a
2826         condition whether loop should be executed at all.
2828 2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>
2830         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
2831         gimple folding of vec_madd() intrinsics.
2832         * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
2833         fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
2834         * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
2836 2017-10-30  Richard Biener  <rguenther@suse.de>
2838         PR tree-optimization/82762
2839         Revert
2840         2017-10-23  Richard Biener  <rguenther@suse.de>
2842         PR tree-optimization/82129
2843         Revert
2844         2017-08-01  Richard Biener  <rguenther@suse.de>
2846         PR tree-optimization/81181
2847         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
2848         (compute_antic): ... end of iteration here.
2850 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
2852         * doc/invoke.texi (C Dialect Options): Document -std=c17,
2853         -std=iso9899:2017 and -std=gnu17.
2854         * doc/standards.texi (C Language): Document C17 support.
2855         * doc/cpp.texi (Overview): Mention -std=c17.
2856         (Standard Predefined Macros): Document C11 and C17 values of
2857         __STDC_VERSION__.  Do not refer to C99 support as incomplete.
2858         * doc/extend.texi (Inline): Do not list individual options for
2859         standards newer than C99.
2860         * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
2861         "GNU C17".
2862         * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
2863         language name.
2865 2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
2867         * asan.c (asan_finish_file): Align asan globals array by shadow
2868         granularity.
2870 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
2872         PR middle-end/22141
2873         * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
2874         (struct store_immediate_info): Add bitregion_start and bitregion_end
2875         fields.
2876         (store_immediate_info::store_immediate_info): Add brs and bre
2877         arguments and initialize bitregion_{start,end} from those.
2878         (struct merged_store_group): Add bitregion_start, bitregion_end,
2879         align_base and mask fields.  Drop unnecessary struct keyword from
2880         struct store_immediate_info.  Add do_merge method.
2881         (clear_bit_region_be): Use memset instead of loop storing zeros.
2882         (merged_store_group::do_merge): New method.
2883         (merged_store_group::merge_into): Use do_merge.  Allow gaps in between
2884         stores as long as the surrounding bitregions have no gaps.
2885         (merged_store_group::merge_overlapping): Use do_merge.
2886         (merged_store_group::apply_stores): Test that bitregion_{start,end}
2887         is byte aligned, rather than requiring that start and width are
2888         byte aligned.  Drop unnecessary struct keyword from
2889         struct store_immediate_info.  Allocate and populate also mask array.
2890         Make start of the arrays relative to bitregion_start rather than
2891         start and size them according to bitregion_{end,start} difference.
2892         (struct imm_store_chain_info): Drop unnecessary struct keyword from
2893         struct store_immediate_info.
2894         (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
2895         (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
2896         struct keyword from struct store_immediate_info.
2897         (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
2898         between stores as long as the surrounding bitregions have no gaps.
2899         Formatting fixes.
2900         (struct split_store): Add orig non-static data member.
2901         (split_store::split_store): Initialize orig to false.
2902         (find_constituent_stmts): Return store_immediate_info *, non-NULL
2903         if there is exactly a single original stmt.  Change stmts argument
2904         to pointer from reference, if NULL, don't push anything to it.  Add
2905         first argument, use it to optimize skipping over orig stmts that
2906         are known to be before bitpos already.  Simplify.
2907         (split_group): Return unsigned int count how many stores are or
2908         would be needed rather than a bool.  Add allow_unaligned argument.
2909         Change split_stores argument from reference to pointer, if NULL,
2910         only do a dry run computing how many stores would be produced.
2911         Rewritten algorithm to use both alignment and misalign if
2912         !allow_unaligned and handle bitfield stores with gaps.
2913         (imm_store_chain_info::output_merged_store): Set start_byte_pos
2914         from bitregion_start instead of start.  Compute allow_unaligned
2915         here, if true, do 2 split_group dry runs to compute which one
2916         produces fewer stores and prefer aligned if equal.  Punt if
2917         new count is bigger or equal than original before emitting any
2918         statements, rather than during that.  Remove no longer needed
2919         new_ssa_names tracking.  Replace num_stmts with
2920         split_stores.length ().  Use 32-bit stack allocated entries
2921         in split_stores auto_vec.  Try to reuse original store lhs/rhs1
2922         if possible.  Handle bitfields with gaps.
2923         (pass_store_merging::execute): Ignore bitsize == 0 stores.
2924         Compute bitregion_{start,end} for the stores and construct
2925         store_immediate_info with that.  Formatting fixes.
2927 2017-10-30  Uros Bizjak  <ubizjak@gmail.com>
2929         PR target/82725
2930         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
2931         UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
2933 2017-10-29  Jim Wilson  <wilson@tuliptree.org>
2935         * gimplify.c: Include tm_p.h.
2937         * common.opt (gcoff): Re-add as ignored option.
2938         (gcoff1, gcoff2, gcoff3): Likewise.
2940         * Makefile.in (OBJS): Delete sdbout.o.
2941         (GTFILES): Delete $(srcdir)/sdbout.c.
2942         * debug.h: Delete sdb_debug_hooks.
2943         * final.c: Delete sdbout.h include.
2944         (final_scan_insn): Delete SDB_DEBUG check.
2945         (rest_of_clean_state): Likewise.
2946         * output.h: Delete sdb_begin_function_line.
2947         * sdbout.c: Delete.
2948         * sdbout.h: Delete.
2949         * toplev.c: Delete sdbout.h include.
2950         (process_options): Delete SDB_DEBUG check.
2951         * tree-core.h (tree_type_common): Delete pointer field of
2952         tree_type_symtab.
2953         * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
2954         TYPE_SYMTAB_POINTER.
2955         * tree.h (TYPE_SYMTAB_POINTER): Delete.
2956         (TYPE_SYMTAB_IS_POINTER): Delete.
2957         (TYPE_SYMTAB_IS_DIE): Renumber.
2958         * xcoffout.c: Refer to former sdbout.c file.
2959         (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
2961         * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
2962         * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
2963         (Debugging Options): Delete -gcoff.
2964         (-gstabs): Delete SDB reference.
2965         (-gcoff): Delete.
2966         (-gcoff@var{level}): Delete.
2967         * doc/passes.texi (Debugging information output): Delete SDB and
2968         sdbout.c references.
2969         * doc/tm.texi: Regenerate.
2970         * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
2971         (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
2972         references.
2973         (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
2974         (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
2975         (SDB_DEBUGGING_INFO): Delete.
2976         (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
2977         SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
2978         * target.def (output_source_filename): Delete COFF reference.
2980         * common.opt (gcoff): Delete.
2981         (gxcoff+): Update Negative chain.
2982         * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
2983         SDB_DEBUG.
2984         * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
2985         * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
2986         * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
2987         and SDB references.
2988         (expand_function_start): Change sdb reference to past tense.
2989         (expand_function_end): Change sdb reference to past tense.
2990         * gcc.c (cpp_unique_options): Delete gcoff3 reference.
2991         * opts.c (debug_type_names): Delete coff entry.
2992         (common_handle_option): Delete OPT_gcoff case.
2993         * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
2995         * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
2996         * config/cris/cris.h: Delete SDB reference in comment.
2997         * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
2998         (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
2999         * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
3000         * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
3001         to past tense.
3002         (ix86_expand_prologue): Likewise.
3003         * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
3004         * config/ia64/ia64.h: Likewise.
3005         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
3006         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
3007         support.
3008         * config/mmix/mmix.h: Likewise.
3009         * config/nds32/nds32.c: Likewise.
3010         * config/stormy/storym16.h: Likewise.
3011         * config/visium/visium.h: Likewise.
3012         * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
3014 2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>
3016         * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
3017         * config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
3018         FRAME_POINTER_REGNUM point at high end of local var area.
3020 2017-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3022         * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
3023         Move comment around.  Do not reset best_edge for a copiable
3024         destination if the copy would cause a partition change.
3025         (better_edge_p): Remove redundant check.
3027 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
3029         * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
3031 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
3033         * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
3034         for math functions that have _Float<N> and _Float<N>X variants.
3035         (mathfn_built_in_2): Add support for math functions that have
3036         _Float<N> and _Float<N>X variants.
3037         (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
3038         (expand_builtin_mathfn_ternary): Add support for fma with
3039         _Float<N> and _Float<N>X variants.
3040         (expand_builtin): Likewise.
3041         (fold_builtin_3): Likewise.
3042         * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
3043         create math function _Float<N> and _Float<N>X variants as external
3044         library builtins.
3045         (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
3046         DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
3047         the __builtin_ prefix and if not strict ansi, without the prefix.
3048         (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
3049         (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
3050         (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
3051         (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
3052         (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
3053         (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
3054         * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
3055         function signatures for fma _Float<N> and _Float<N>X variants.
3056         (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
3057         (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
3058         (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
3059         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
3060         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
3061         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
3062         * gencfn-macros.c (print_case_cfn): Add support for math functions
3063         that have _Float<N> and _Float<N>X variants.
3064         (print_define_operator_list): Likewise.
3065         (fltfn_suffixes): Likewise.
3066         (main): Likewise.
3067         * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
3068         for math functions that have _Float<N> and _Float<N>X variants.
3069         (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
3070         and _Float<N>X variants.
3071         (COPYSIGN): Likewise.
3072         (FMIN): Likewise.
3073         (FMAX): Likewise.
3074         * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
3075         copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
3076         variants.
3077         (integer_valued_read_call_p): Likewise.
3078         * fold-const-call.c (fold_const_call_ss): Likewise.
3079         (fold_const_call_sss): Add support for copysign, fmin, and fmax
3080         _Float<N> and _Float<N>X variants.
3081         (fold_const_call_ssss): Add support for fma _Float<N> and
3082         _Float<N>X variants.
3083         * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
3084         support for copysign and fma _Float<N> and _Float<N>X variants.
3085         (backprop::process_builtin_call_use): Likewise.
3086         * tree-call-cdce.c (can_test_argument_range); Add support for
3087         sqrt _Float<N> and _Float<N>X variants.
3088         (edom_only_function): Likewise.
3089         (get_no_error_domain): Likewise.
3090         * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
3091         * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
3092         copysign _Float<N> and _Float<N>X variants.
3093         * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
3094         handled by machine independent code.
3095         (FMAF128): Likewise.
3096         * doc/cpp.texi (Common Predefined Macros): Document defining
3097         __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
3098         fma _Float<N> and _Float<N>X variants.
3100 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
3102         PR target/82692
3103         * config/i386/i386-modes.def (CCFPU): Remove definition.
3104         * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
3105         (ix86_cc_modes_compatible): Ditto.
3106         (ix86_expand_carry_flag_compare): Ditto.
3107         (ix86_expand_int_movcc): Ditto.
3108         (ix86_expand_int_addcc): Ditto.
3109         (ix86_reverse_condition): Ditto.
3110         (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
3111         Return true/false for unordered/ordered fp comparisons.
3112         (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
3113         (ix86_prepare_fp_compare_args): Update for rename.
3114         (ix86_expand_fp_compare): Update for rename.  Generate unordered
3115         compare RTXes wrapped with UNSPEC_NOTRAP unspec.
3116         (ix86_expand_sse_compare_and_jump): Ditto.
3117         * config/i386/predicates.md (fcmov_comparison_operator):
3118         Remove CCFPU mode handling.
3119         (ix86_comparison_operator): Ditto.
3120         (ix86_carry_flag_operator): Ditto.
3121         * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
3122         (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
3123         (*cmpu<mode>_cc_i387): Ditto.
3124         (FPCMP): Remove mode iterator.
3125         (unord): Remove mode attribute.
3126         (unord_subst): New define_subst transformation
3127         (unord): New define_subst attribute.
3128         (unordered): Ditto.
3129         (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
3130         (*cmpi<unord>xf_i387): Ditto.
3131         * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
3132         from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
3133         using unord_subst transformation.
3134         * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
3135         (round_saeonly): Also handle CCFP mode.
3136         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
3137         Remove UNSPEC_SAHF unspec handling.
3139 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
3141         * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
3143 2017-10-27  Jeff Law  <law@redhat.com>
3145         * gimple-ssa-sprintf.c: Include domwalk.h.
3146         (class sprintf_dom_walker): New class, derived from dom_walker.
3147         (sprintf_dom_walker::before_dom_children): New function.
3148         (struct call_info): Moved into sprintf_dom_walker class
3149         (compute_formath_length, handle_gimple_call): Likewise.
3150         (sprintf_length::execute): Call the dominator walker rather
3151         than walking the statements.
3153         * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
3154         gimple statement locations.
3155         (check_array_bounds): Corresponding changes.  Get the statement's
3156         location directly from wi->stmt.
3158 2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>
3160         PR target/82717
3161         * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
3163 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
3165         * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
3166         X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
3168 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
3170         PR target/82703
3171         * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
3172         * config/i386/i386.c (maybe_get_pool_constant): Removed.
3173         (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
3174         maybe_get_pool_constant.
3175         * config/i386/predicates.md (zero_extended_scalar_load_operand):
3176         Likewise.
3178 2017-10-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3180         * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
3181         2.26 caveat.  Update gas and gld versions.
3182         (Specific, *-*-solaris2*): Update binutils version.  Remove caveat
3183         reference.
3185 2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3187         * cgraph.h (set_malloc_flag): Declare.
3188         * cgraph.c (set_malloc_flag_1): New function.
3189         (set_malloc_flag): Likewise.
3190         * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
3191         * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
3192         false.
3193         (read_ipa_call_summary): Add support for reading is_return_callee.
3194         (write_ipa_call_summary): Stream is_return_callee.
3195         * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
3196         * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
3197         ipa-prop.h, ipa-fnsummary.h.
3198         (pure_const_names): Change to static.
3199         (malloc_state_e): Define.
3200         (malloc_state_names): Define.
3201         (funct_state_d): Add field malloc_state.
3202         (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
3203         (check_retval_uses): New function.
3204         (malloc_candidate_p): Likewise.
3205         (analyze_function): Add support for malloc attribute.
3206         (pure_const_write_summary): Stream malloc_state.
3207         (pure_const_read_summary): Add support for reading malloc_state.
3208         (dump_malloc_lattice): New function.
3209         (propagate_malloc): New function.
3210         (warn_function_malloc): New function.
3211         (ipa_pure_const::execute): Call propagate_malloc and
3212         ipa_free_fn_summary.
3213         (pass_local_pure_const::execute): Add support for malloc attribute.
3214         * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
3215         * doc/invoke.texi: Document Wsuggest-attribute=malloc.
3217 2017-10-27  Martin Liska  <mliska@suse.cz>
3219         PR gcov-profile/82457
3220         * doc/invoke.texi: Document that one needs a non-strict ISO mode
3221         for fork-like functions to be properly instrumented.
3223 2017-10-27  Richard Biener  <rguenther@suse.de>
3225         PR middle-end/81659
3226         * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
3227         info when we redirected EH.
3229 2017-10-26  Michael Collison  <michael.collison@arm.com>
3231         * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
3232         New pattern.
3233         (<optab>_trunchf<GPI:mode>2: New pattern.
3234         (<optab>_trunc<vgp><GPI:mode>2: New pattern.
3235         * config/aarch64/iterators.md (wv): New mode attribute.
3236         (vf, VF): New mode attributes.
3237         (vgp, VGP): New mode attributes.
3238         (s): Update attribute with SImode and DImode prefixes.
3240 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
3242         * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
3243         * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
3244         * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
3245         (nios2_option_overide): Initialize it.  Don't allow R0-relative
3246         addressing with PIC.
3247         (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
3248         (nios2_symbolic_constant_p): Likewise.
3249         (nios2_legitimate_address_p): Likewise.
3250         (nios2_r0rel_section_name_p): New.
3251         (nios2_symbol_ref_in_r0rel_data_p): New.
3252         (nios2_emit_move_sequence): Handle r0rel_constant_p.
3253         (r0rel_constant_p): New.
3254         (nios2_print_operand_address): Handle r0rel_constant_p.
3255         (nios2_cdx_narrow_form_p): Likewise.
3256         * config/nios2/nios2.opt (mr0rel-sec=): New option.
3257         * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
3258         (Nios II Options): Document -mr0rel-sec.
3260 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
3262         * config/nios2/nios2.c: Include xregex.h.
3263         (nios2_gprel_sec_regex): New.
3264         (nios2_option_overide): Initialize it.  Don't allow GP-relative
3265         addressing with PIC.
3266         (nios2_small_section_name_p): Check for regex match.
3267         * config/nios2/nios2.opt (mgprel-sec=): New option.
3268         * doc/invoke.texi (Option Summary): Add -mgprel-sec.
3269         (Nios II Options): Document -mgprel-sec.
3271 2017-10-26  Jim Wilson  <wilson@tuliptree.org>
3273         * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
3275 2017-10-26  Tom de Vries  <tom@codesourcery.com>
3277         PR tree-optimization/82707
3278         * gimple.c (gimple_copy): Fix unsharing of
3279         GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
3281 2017-10-26  Olga Makhotina  <olga.makhotina@intel.com>
3283         * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
3284         _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
3285         _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
3286         _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
3287         _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
3288         _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
3289         _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
3290         _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
3291         _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
3292         _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
3293         _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
3294         _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
3295         _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
3296         _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
3297         _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
3298         _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
3299         _mm512_mask_cmpunord_ps_mask): New intrinsics.
3301 2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3303         * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
3304         default to IBM.
3305         * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
3306         * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
3307         warning to rs6000.c.  Remove the Undocumented flag, since it has
3308         been documented.
3309         (-mabi=ibmlongdouble): Likewise.
3310         * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
3311         already set, set the default format for long double.
3312         (rs6000_debug_reg_global): Print whether long double is IBM or
3313         IEEE.
3314         (rs6000_option_override_internal): Rework setting long double
3315         format.  Only warn if the user is changing the long double default
3316         and they did not use -Wno-psabi.
3317         * doc/invoke.texi (PowerPC options): Update the documentation for
3318         -mabi=ieeelongdouble and -mabi=ibmlongdouble.
3320 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
3321             Alan Hayward  <alan.hayward@arm.com>
3322             David Sherwood  <david.sherwood@arm.com>
3324         * rtl.h (wider_subreg_mode): New function.
3325         * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
3326         rather than an unsigned int *.
3327         * ira-color.c (regno_max_ref_width): Replace with...
3328         (regno_max_ref_mode): ...this new variable.
3329         (coalesced_pseudo_reg_slot_compare): Update accordingly.
3330         Use wider_subreg_mode.
3331         (ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
3332         rather than an unsigned int *.
3333         * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
3334         (process_alt_operands): Likewise.
3335         (invariant_p): Likewise.
3336         * lra-spills.c (assign_mem_slot): Likewise.
3337         (add_pseudo_to_slot): Likewise.
3338         * lra.c (collect_non_operand_hard_regs): Likewise.
3339         (add_regs_to_insn_regno_info): Likewise.
3340         * reload1.c (regno_max_ref_width): Replace with...
3341         (regno_max_ref_mode): ...this new variable.
3342         (reload): Update accordingly.  Update call to
3343         ira_sort_regnos_for_alter_reg.
3344         (alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
3345         (init_eliminable_invariants): Update to use regno_max_ref_mode.
3346         (scan_paradoxical_subregs): Likewise.
3348 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
3350         * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
3351         (aarch64_frame): Add emit_frame_chain boolean.
3352         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
3353         Move eh_return case to aarch64_layout_frame.
3354         (aarch64_layout_frame): Initialize emit_frame_chain.
3355         (aarch64_expand_prologue): Use emit_frame_chain.
3357 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
3359         * config/aarch64/aarch64.c (aarch64_layout_frame):
3360         Ensure LR is always stored at the bottom of the callee-saves.
3361         Remove rarely used frame layout which saves callee-saves at top of
3362         frame, so the store of LR can be used as a valid probe in all cases.
3364 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
3366         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
3367         Improve unaligned TImode/TFmode base/offset split.
3369 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
3370             Alan Hayward  <alan.hayward@arm.com>
3371             David Sherwood  <david.sherwood@arm.com>
3373         * caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
3374         * combine.c (find_single_use_1): Likewise.
3375         (expand_field_assignment): Likewise.
3376         (move_deaths): Likewise.
3377         * lra-constraints.c (simplify_operand_subreg): Likewise.
3378         (curr_insn_transform): Likewise.
3379         * lra.c (collect_non_operand_hard_regs): Likewise.
3380         (add_regs_to_insn_regno_info): Likewise.
3381         * rtlanal.c (reg_referenced_p): Likewise.
3382         (covers_regno_no_parallel_p): Likewise.
3384 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
3386         * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
3387         Don't print any bits outside the precision of the value.
3388         * wide-int.cc (test_printing): Add some new tests.
3390 2017-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3392         * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
3393         supports -xbrace_comment option.
3394         * configure: Regenerate.
3395         * config.in: Regenerate.
3396         * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
3397         (ASM_CPU_SPEC): Use it.
3399 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
3401         * target.def (static_rtx_alignment): New hook.
3402         * targhooks.h (default_static_rtx_alignment): Declare.
3403         * targhooks.c (default_static_rtx_alignment): New function.
3404         * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
3405         * doc/tm.texi: Regenerate.
3406         * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
3407         instead of targetm.constant_alignment.  Remove call to
3408         set_mem_attributes.
3409         * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
3410         (cris_preferred_mininum_alignment): New function, split out from...
3411         (cris_constant_alignment): ...here.
3412         (cris_static_rtx_alignment): New function.
3413         * config/i386/i386.c (ix86_static_rtx_alignment): New function,
3414         split out from...
3415         (ix86_constant_alignment): ...here.
3416         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
3417         * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
3418         (mmix_static_rtx_alignment): New function.
3419         * config/spu/spu.c (spu_static_rtx_alignment): New function.
3420         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
3422 2017-10-26  Tamar Christina  <tamar.christina@arm.com>
3424         PR target/81800
3425         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
3426         Add flag_trapping_math and flag_fp_int_builtin_inexact.
3428 2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
3430         * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
3431         * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
3432         mark as a sign-extending load.
3433         (local_pic_load_u): Define.
3435 2017-10-25  Eric Botcazou  <ebotcazou@adacore.com>
3437         PR middle-end/82062
3438         * fold-const.c (operand_equal_for_comparison_p): Also return true
3439         if ARG0 is a simple variant of ARG1 with narrower precision.
3440         (fold_ternary_loc): Always pass unstripped operands to the predicate.
3442 2017-10-25  Jan Hubicka  <hubicka@ucw.cz>
3444         * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
3445         cost correctly.
3446         * i386.h (processor_costs): Add gather_static, gather_per_elt,
3447         scatter_static, scatter_per_elt.
3448         * x86-tune-costs.h: Add new cost entries.
3450 2017-10-25  Richard Biener  <rguenther@suse.de>
3452         * tree-ssa-sccvn.h (vn_eliminate): Declare.
3453         * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
3454         class pass_fre): Move to ...
3455         * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
3456         class pass_fre): ... here and adjust for statistics.
3458 2017-10-25  Jakub Jelinek  <jakub@redhat.com>
3460         PR libstdc++/81706
3461         * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
3462         for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
3463         (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
3464         * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
3465         declarations.
3467 2017-10-25  Richard Biener  <rguenther@suse.de>
3469         * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
3470         el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
3471         eliminate_push_avail, eliminate_insert): Move inside...
3472         (class eliminate_dom_walker): ... this class in preparation
3473         of move.
3474         (fini_eliminate): Remove by merging with ...
3475         (eliminate): ... this function.  Adjust for class changes.
3476         (pass_pre::execute): Remove fini_eliminate call.
3477         (pass_fre::execute): Likewise.
3479 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
3481         PR target/82460
3482         * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
3483         (VPERMI2, VPERMI2I): New mode iterators.
3484         (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
3485         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
3486         patterns.
3487         (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
3488         mode iterator.  Remove 3 old define_insn patterns.
3489         (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
3490         (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
3491         VPERMI2 mode iterator, remove the other two expanders.
3492         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
3493         to use VPERMI2 mode iterator, add another alternative for vpermi2*
3494         instructions, remove the other two patterns.
3495         (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
3496         mode iterator, remove the other two patterns.
3497         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
3498         (ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
3499         arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
3500         and adjust argument order accordingly.
3501         (ix86_expand_vec_perm): Adjust caller.
3502         (expand_vec_perm_1): Likewise.
3503         (expand_vec_perm_vpermi2_vpshub2): Rename to ...
3504         (expand_vec_perm_vpermt2_vpshub2): ... this.
3505         (ix86_expand_vec_perm_const_1): Adjust caller.
3506         (ix86_vectorize_vec_perm_const_ok): Adjust comments.
3508         PR target/82370
3509         * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
3510         (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
3511         (vec_shl_<mode>): Remove unused expander.
3512         (avx512bw_<shift_insn><mode>3): New define_insn.
3513         (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
3514         (<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.
3516 2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
3518         PR c++/82466
3519         * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
3520         description.
3522 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
3524         PR rtl-optimization/82396
3525         * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
3526         (autopref_multipass_init): Simplify initialization.
3527         (autopref_rank_data): Simplify sort order.
3528         * gcc/sched-int.h (autopref_multipass_data_): Remove
3529         multi_mem_insn_p, min_offset and max_offset.
3531 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
3533         PR middle-end/60580
3534         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
3535         Check special value of flag_omit_frame_pointer.
3536         (aarch64_can_eliminate): Likewise.
3537         (aarch64_override_options_after_change_1): Simplify handling of
3538         -fomit-frame-pointer and -fomit-leaf-frame-pointer.
3540 2017-10-24  Richard Biener  <rguenther@suse.de>
3542         PR tree-optimization/82697
3543         * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
3544         zero for conditional load and unconditional store.
3546 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
3548         * doc/install.texi: Document bootstrap-cet.
3550 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
3552         PR target/82659
3553         * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
3554         ENDBR instruction at function entrance if function is only
3555         called directly.
3557 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
3559         PR target/82628
3560         * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
3561         patterns to better describe from which operation the CF is computed.
3562         (addcarry<mode>_0, subborrow<mode>_0): New patterns.
3563         * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
3564         one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
3565         is 0, use _0 suffixed expanders instead of emitting a comparison
3566         before it.
3568 2017-10-06  Sergey Shalnov  <Sergey.Shalnov@intel.com>
3570         * config/i386/i386.md(*movsf_internal, *movdf_internal):
3571         Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
3573 2017-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3575         PR middle-end/82569
3576         * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
3577         * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
3578         * loop-iv.c (iv_get_reaching_def): Likewise.
3579         * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
3580         variable is promoted and the partition contains undefined values.
3582 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
3584         * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
3585         reflect reality.
3586         (nios2_address_cost): Define.
3587         (nios2_legitimize_address): Recognize (exp + constant) directly.
3588         (TARGET_ADDRESS_COST): Define.
3590 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
3592         * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
3593         (nios2_symbolic_memory_operand_p): Declare.
3594         (nios2_split_large_constant): Declare.
3595         (nios2_split_symbolic_memory_operand): Declare.
3596         * config/nios2/nios2.c: Adjust includes.
3597         (nios2_symbolic_constant_allowed): New.
3598         (nios2_symbolic_constant_p): New.
3599         (nios2_plus_symbolic_constant_p): New.
3600         (nios2_valid_addr_expr_p): Recognize addresses involving
3601         symbolic constants.
3602         (nios2_legitimate_address_p): Likewise, also LO_SUM.
3603         (nios2_symbolic_memory_operand_p): New.
3604         (nios2_large_constant_p): New.
3605         (nios2_split_large_constant): New.
3606         (nios2_split_plus_large_constant): New.
3607         (nios2_split_symbolic_memory_operand): New.
3608         (nios2_legitimize_address): Code refactoring.  Handle addresses
3609         involving symbolic constants.
3610         (nios2_emit_move_sequence): Likewise.
3611         (nios2_print_operand): Improve error output.
3612         (nios2_print_operand_address): Handle LO_SUM.
3613         (nios2_cdx_narrow_form_p): Likewise.
3614         * config/nios2/nios2.md (movqi_internal): Add splitter for memory
3615         operands involving symbolic constants.
3616         (movhi_internal, movsi_internal): Likewise.
3617         (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
3618         (extendhisi2, extendqi<mode>2): Likewise.
3620 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
3622         * tree-pass.h (PROP_rtl_split_insns): Define.
3623         * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
3625 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
3627         * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
3629 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
3631         PR debug/82630
3632         * target.def (const_not_ok_for_debug_p): Default to
3633         default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
3634         * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
3635         * targhooks.c (default_const_not_ok_for_debug_p): New function.
3636         * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
3637         which targetm.const_not_ok_for_debug_p returned true.
3638         * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
3639         for UNSPECs.
3640         * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
3641         Likewise.
3642         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
3643         * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
3644         UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
3645         if !base_term_p.
3646         (ix86_const_not_ok_for_debug_p): New function.
3647         (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
3648         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
3650 2017-10-23  David Malcolm  <dmalcolm@redhat.com>
3652         PR bootstrap/82610
3653         * system.h: Conditionally include "unique-ptr.h" if
3654         INCLUDE_UNIQUE_PTR is defined.
3655         * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
3656         of defining INCLUDE_UNIQUE_PTR before including "system.h".
3658 2017-10-23  Sebastian Perta  <sebastian.perta@renesas.com>
3660         * config/rl78/rl78.md: New define_expand "subdi3".
3662 2017-10-23  H.J. Lu  <hongjiu.lu@intel.com>
3664         PR target/82673
3665         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
3666         DF_REF_INSN if DF_REF_INSN_INFO is false.
3668 2017-10-23  Jan Hubicka  <hubicka@ucw.cz>
3670         * i386.c (dimode_scalar_chain::compute_convert_gain): Use
3671         xmm_move instead of sse_move.
3672         (sse_store_index): New function.
3673         (ix86_register_move_cost): Be more sensible about mismatch stall;
3674         model AVX moves correctly; make difference between sse->integer and
3675         integer->sse.
3676         (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
3677         moves; make difference between SSE and AVX.
3678         * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
3679         and zmm_move. Increase size of sse load and store tables;
3680         add unaligned load and store tables; add ssemmx_to_integer.
3681         * x86-tune-costs.h: Update all entries according to real
3682         move latencies from Agner Fog's manual and chip documentation.
3684 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
3686         PR target/82628
3687         * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
3688         * config/i386/constraints.md (Wf): New constraint.
3689         * config/i386/i386.md (UNSPEC_SBB): New unspec.
3690         (cmp<dwi>_doubleword): Removed.
3691         (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
3692         (sub<mode>3_carry_ccgz): Use unspec instead of compare.
3693         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
3694         expand with cmp<dwi>_doubleword.  For LTU and GEU use
3695         sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
3697         * common.opt (gcolumn-info): Enable by default.
3698         * doc/invoke.texi (gcolumn-info): Document new default.
3700 2017-10-23  Richard Biener  <rguenther@suse.de>
3702         PR tree-optimization/82672
3703         * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
3704         Fold the stmt if we propagated into it.
3706 2017-10-23  Richard Biener  <rguenther@suse.de>
3708         * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
3709         (bitmap_remove_expr_from_set): ... this.  All callers call this
3710         for non-constant values.
3711         (bitmap_set_subtract): Rename to...
3712         (bitmap_set_subtract_expressions): ... this.  Adjust and
3713         optimize.
3714         (bitmap_set_contains_value): Remove superfluous check.
3715         (bitmap_set_replace_value): Inline into single caller ...
3716         (bitmap_value_replace_in_set): ... here and simplify.
3717         (dependent_clean): Merge into ...
3718         (clean): ... this using an overload.  Adjust.
3719         (prune_clobbered_mems): Adjust.
3720         (compute_antic_aux): Likewise.
3721         (compute_partial_antic_aux): Likewise.
3723 2017-10-23  Richard Biener  <rguenther@suse.de>
3725         PR tree-optimization/82129
3726         Revert
3727         2017-08-01  Richard Biener  <rguenther@suse.de>
3729         PR tree-optimization/81181
3730         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
3731         (compute_antic): ... end of iteration here.
3733 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
3735         * target.def (starting_frame_offset): New hook.
3736         * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
3737         (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
3738         * doc/tm.texi.in: Regenerate.
3739         * hooks.h (hook_hwi_void_0): Declare.
3740         * hooks.c (hook_hwi_void_0): New function.
3741         * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
3742         STARTING_FRAME_OFFSET.
3743         * builtins.c (expand_builtin_setjmp_receiver): Likewise.
3744         * reload1.c (reload): Likewise.
3745         * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
3746         instead of STARTING_FRAME_OFFSET.
3747         * function.c (try_fit_stack_local): Likewise.
3748         (assign_stack_local_1): Likewise
3749         (instantiate_virtual_regs): Likewise.
3750         * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
3751         * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
3752         * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
3753         * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
3754         * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
3755         * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
3756         * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
3757         * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
3758         * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
3759         * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
3760         * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
3761         * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
3762         * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
3763         * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
3764         * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
3765         * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
3766         * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
3767         * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
3768         * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
3769         * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
3770         * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
3771         * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
3772         * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
3773         * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
3774         * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
3775         * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
3776         * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
3777         * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
3778         * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
3779         * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
3780         * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
3781         * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
3782         * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
3783         * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
3784         * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
3785         * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
3786         * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
3787         * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
3788         * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
3789         * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
3790         * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
3791         * config/avr/avr.c (avr_starting_frame_offset): Make static and
3792         return a HOST_WIDE_INT.
3793         (avr_builtin_setjmp_frame_value): Use it instead of
3794         STARTING_FRAME_OFFSET.
3795         (TARGET_STARTING_FRAME_OFFSET): Redefine.
3796         * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
3797         * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
3798         New function.
3799         (TARGET_STARTING_FRAME_OFFSET): Redefine.
3800         * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
3801         * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
3802         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3803         * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
3804         * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
3805         (TARGET_STARTING_FRAME_OFFSET): Redefine.
3806         * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
3807         * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
3808         (TARGET_STARTING_FRAME_OFFSET): Redefine.
3809         * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
3810         * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
3811         New function.
3812         (TARGET_STARTING_FRAME_OFFSET): Redefine.
3813         * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
3814         * config/mips/mips.c (mips_compute_frame_info): Refer to
3815         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
3816         (mips_starting_frame_offset): New function.
3817         (TARGET_STARTING_FRAME_OFFSET): Redefine.
3818         * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
3819         * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
3820         * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
3821         and return a HOST_WIDE_INT.
3822         (TARGET_STARTING_FRAME_OFFSET): Redefine.
3823         (mmix_initial_elimination_offset): Refer to
3824         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
3825         * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
3826         * config/pa/pa.c (pa_starting_frame_offset): New function.
3827         (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
3828         (pa_expand_prologue): Likewise.
3829         (TARGET_STARTING_FRAME_OFFSET): Redefine.
3830         * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
3831         !FRAME_GROWS_DOWNWARD handling to...
3832         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
3833         * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
3834         !FRAME_GROWS_DOWNWARD handling to...
3835         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
3836         * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
3837         !FRAME_GROWS_DOWNWARD handling to...
3838         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
3839         * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
3840         Redefine.
3841         (rs6000_starting_frame_offset): New function.
3842         * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
3843         !FRAME_GROWS_DOWNWARD handling to...
3844         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
3845         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
3846         !FRAME_GROWS_DOWNWARD handling to...
3847         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
3848         * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
3849         !FRAME_GROWS_DOWNWARD handling to...
3850         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
3851         * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
3852         (rs6000_starting_frame_offset): New function.
3853         * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
3854         * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
3855         * config/vax/vax.c (vax_starting_frame_offset): New function.
3856         (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
3857         (TARGET_STARTING_FRAME_OFFSET): Redefine.
3858         * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
3859         * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
3860         (TARGET_STARTING_FRAME_OFFSET): Redefine.
3861         * system.h (STARTING_FRAME_OFFSET): Poison.
3863 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
3865         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
3866         SCALAR_TYPE_MODE instead of TYPE_MODE.
3868 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
3869             Alan Hayward  <alan.hayward@arm.com>
3870             David Sherwood  <david.sherwood@arm.com>
3872         * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
3874 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
3875             Alan Hayward  <alan.hayward@arm.com>
3876             David Sherwood  <david.sherwood@arm.com>
3878         * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
3880 2017-10-23  Richard Biener  <rguenther@suse.de>
3882         PR tree-optimization/82129
3883         * tree-ssa-pre.c (bitmap_set_and): Remove.
3884         (compute_antic_aux): Compute ANTIC_OUT intersection in a way
3885         canonicalizing expressions in the set to those with lowest
3886         ID rather than taking that from the first edge.
3888 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
3890         * combine.c (rtx_equal_for_field_assignment_p): Use
3891         byte_lowpart_offset.
3893 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
3894             Alan Hayward  <alan.hayward@arm.com>
3895             David Sherwood  <david.sherwood@arm.com>
3897         * internal-fn.c (expand_direct_optab_fn): Don't assign directly
3898         to a SUBREG_PROMOTED_VAR.
3900 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
3901             Alan Hayward  <alan.hayward@arm.com>
3902             David Sherwood  <david.sherwood@arm.com>
3904         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
3905         (expand_debug_source_expr): Likewise.
3906         * combine.c (combine_simplify_rtx): Likewise.
3907         * cse.c (fold_rtx): Likewise.
3908         * optabs.c (expand_float): Likewise.
3909         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3910         (simplify_binary_operation_1): Likewise.
3912 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
3913             Alan Hayward  <alan.hayward@arm.com>
3914             David Sherwood  <david.sherwood@arm.com>
3916         * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
3917         (record_promoted_value): Likewise.
3918         * expr.c (expand_expr_real_2): Likewise.
3919         * ree.c (update_reg_equal_equiv_notes): Likewise.
3920         (combine_set_extension): Likewise.
3921         * rtlanal.c (low_bitmask_len): Likewise.
3922         * simplify-rtx.c (neg_const_int): Likewise.
3923         (simplify_binary_operation_1): Likewise.
3925 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
3926             Alan Hayward  <alan.hayward@arm.com>
3927             David Sherwood  <david.sherwood@arm.com>
3929         * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
3930         * regcprop.c (maybe_mode_change): Likewise.
3931         * reload1.c (alter_reg): Likewise.
3933 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
3935         * inchash.h (inchash::hash::add_wide_int): New function.
3936         * lto-streamer-out.c (hash_tree): Use it.
3938 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
3940         * inchash.h (inchash::hash::add_wide_int): Rename to...
3941         (inchash::hash::add_hwi): ...this.
3942         * ipa-devirt.c (hash_odr_vtable): Update accordingly.
3943         (polymorphic_call_target_hasher::hash): Likewise.
3944         * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
3945         (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
3946         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
3947         * lto-streamer-out.c (hash_tree): Likewise.
3948         * optc-save-gen.awk: Likewise.
3949         * tree.c (add_expr): Likewise.
3951 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
3953         PR target/52451
3954         * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
3955         for ordered inequality comparisons even with TARGET_IEEE_FP.
3957 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
3959         PR target/82628
3960         * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
3961         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
3962         Expand with cmp<dwi>_doubleword.
3964 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
3966         * extend.texi: Add x86 specific to 'nocf_check' attribute.
3967         List CET intrinsics.
3968         * invoke.texi: Add -mcet, -mibt, -mshstk options.  Add x86
3969         specific to -fcf-protection option.
3971 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
3973         * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
3974         (OPTION_MASK_ISA_SHSTK_SET): Likewise.
3975         (OPTION_MASK_ISA_IBT_UNSET): Likewise.
3976         (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
3977         (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
3978         * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
3979         (extra_objs): Add cet.o for Linux/x86 targets.
3980         (tmake_file): Add i386/t-cet for Linux/x86 targets.
3981         * config/i386/cet.c: New file.
3982         * config/i386/cetintrin.h: Likewise.
3983         * config/i386/t-cet: Likewise.
3984         * config/i386/cpuid.h (bit_SHSTK): New.
3985         (bit_IBT): Likewise.
3986         * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
3987         pass IBT and SHSTK bits.
3988         * config/i386/i386-builtin-types.def
3989         (VOID_FTYPE_UNSIGNED_PVOID): New.
3990         (VOID_FTYPE_UINT64_PVOID): Likewise.
3991         * config/i386/i386-builtin.def: Add CET intrinsics.
3992         * config/i386/i386-c.c (ix86_target_macros_internal): Add
3993         OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
3994         * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
3995         * config/i386/i386-protos.h (make_pass_insert_endbranch): New
3996         prototype.
3997         * config/i386/i386.c (rest_of_insert_endbranch): New.
3998         (pass_data_insert_endbranch): Likewise.
3999         (pass_insert_endbranch): Likewise.
4000         (make_pass_insert_endbranch): Likewise.
4001         (ix86_notrack_prefixed_insn_p): Likewise.
4002         (ix86_target_string): Add -mibt, -mshstk flags.
4003         (ix86_option_override_internal): Add flag_cf_protection
4004         processing.
4005         (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
4006         (ix86_print_operand): Add 'notrack' prefix output.
4007         (ix86_init_mmx_sse_builtins): Add CET intrinsics.
4008         (ix86_expand_builtin): Expand CET intrinsics.
4009         (x86_output_mi_thunk): Add 'endbranch' instruction.
4010         * config/i386/i386.h (TARGET_IBT): New.
4011         (TARGET_IBT_P): Likewise.
4012         (TARGET_SHSTK): Likewise.
4013         (TARGET_SHSTK_P): Likewise.
4014         * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
4015         UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
4016         UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
4017         (builtin_setjmp_setup): New pattern.
4018         (builtin_longjmp): Likewise.
4019         (rdssp<mode>): Likewise.
4020         (incssp<mode>): Likewise.
4021         (saveprevssp): Likewise.
4022         (rstorssp): Likewise.
4023         (wrss<mode>): Likewise.
4024         (wruss<mode>): Likewise.
4025         (setssbsy): Likewise.
4026         (clrssbsy): Likewise.
4027         (nop_endbr): Likewise.
4028         * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
4029         options.
4030         * config/i386/immintrin.h: Include <cetintrin.h>.
4031         * config/i386/linux-common.h
4032         (file_end_indicate_exec_stack_and_cet): New prototype.
4033         (TARGET_ASM_FILE_END): New.
4035 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
4037         * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
4038         latencies instead of having separate table; make difference between
4039         integer and float costs.
4040         * i386.h (processor_costs): Remove scalar_stmt_cost,
4041         scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
4042         scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
4043         vec_store_cost.
4044         * x86-tune-costs.h: Remove entries which has been removed in
4045         procesor_costs from all tables; make cond_taken_branch_cost
4046         and cond_not_taken_branch_cost COST_N_INSNS based.
4048 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
4050         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
4052 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
4054         * config/i386/i386.md (isa): Remove fma_avx512f.
4055         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
4056         <avx512>_fmadd_<mode>_mask3<round_name>,
4057         <avx512>_fmsub_<mode>_mask<round_name>,
4058         <avx512>_fmsub_<mode>_mask3<round_name>,
4059         <avx512>_fnmadd_<mode>_mask<round_name>,
4060         <avx512>_fnmadd_<mode>_mask3<round_name>,
4061         <avx512>_fnmsub_<mode>_mask<round_name>,
4062         <avx512>_fnmsub_<mode>_mask3<round_name>,
4063         <avx512>_fmaddsub_<mode>_mask<round_name>,
4064         <avx512>_fmaddsub_<mode>_mask3<round_name>,
4065         <avx512>_fmsubadd_<mode>_mask<round_name>,
4066         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
4067         (*vec_widen_umult_even_v16si<mask_name>,
4068         *vec_widen_smult_even_v16si<mask_name>): Likewise.
4069         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
4071 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
4073         * extend.texi: Add 'nocf_check' documentation.
4074         * gimple.texi: Add second parameter to
4075         gimple_build_call_from_tree.
4076         * invoke.texi: Add -fcf-protection documentation.
4077         * rtl.texi: Add REG_CALL_NOTRACK documenation.
4079 2017-10-20  Richard Biener  <rguenther@suse.de>
4081         PR tree-optimization/82473
4082         * tree-vect-loop.c (vectorizable_reduction): Properly get at
4083         the largest input type.
4085 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
4087         * c-attribs.c (handle_nocf_check_attribute): New function.
4088         (c_common_attribute_table): Add 'nocf_check' handling.
4089         * gimple-parser.c: Add second argument NULL to
4090         gimple_build_call_from_tree.
4091         * attrib.c (comp_type_attributes): Check nocf_check attribute.
4092         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
4093         call insn.
4094         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
4095         * common.opt: Add fcf-protection flag.
4096         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
4097         * flag-types.h: Add enum cf_protection_level.
4098         * gimple.c (gimple_build_call_from_tree): Add second parameter.
4099         Add 'nocf_check' attribute propagation to gimple call.
4100         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
4101         (gimple_build_call_from_tree): Update prototype.
4102         (gimple_call_nocf_check_p): New function.
4103         (gimple_call_set_nocf_check): Likewise.
4104         * gimplify.c: Add second argument to gimple_build_call_from_tree.
4105         * ipa-icf.c: Add nocf_check attribute in statement hash.
4106         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
4107         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
4108         * toplev.c (process_options): Add flag_cf_protection handling.
4110 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
4112         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
4114 2017-10-20  Richard Biener  <rguenther@suse.de>
4116         PR tree-optimization/82603
4117         * tree-if-conv.c (predicate_mem_writes): Make sure to only
4118         remove false predicated stores.
4120 2017-10-20  Richard Biener  <rguenther@suse.de>
4122         * graphite-isl-ast-to-gimple.c
4123         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
4124         Remove return value and simplify, dump copied stmt after lhs
4125         adjustment.
4126         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
4127         Reduce dump verbosity.
4128         (gsi_insert_earliest): Likewise.
4129         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
4130         * graphite.c (print_global_statistics): Adjust dumping.
4131         (print_graphite_scop_statistics): Likewise.
4132         (print_graphite_statistics): Do not dump loops here.
4133         (graphite_transform_loops): But here.
4135 2017-10-20  Nicolas Roche  <roche@adacore.com>
4137         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
4138         * configure: Regenerate.
4140 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
4142         PR target/82158
4143         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
4144         functions when optimizing replace GIMPLE_RETURN stmts with
4145         calls to __builtin_unreachable ().
4147         PR sanitizer/82595
4148         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
4149         for -fsanitize=thread link of executables.
4150         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
4151         link of executables.
4153         PR target/82370
4154         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
4155         New mode iterators.
4156         (<shift_insn><mode>3<mask_name>): Change the last of the 3
4157         define_insns for logical vector shifts to use VI248_AVX512BW
4158         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
4159         condition, useless isa and prefix attributes.  Change the first
4160         2 of these define_insns to ...
4161         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
4162         define_insn for avx512vl.
4163         (<shift_insn><mode>3): ... and this, new define_insn without
4164         masking for non-avx512vl.
4166         PR target/82370
4167         * config/i386/sse.md (*andnot<mode>3,
4168         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
4169         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
4170         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
4171         not applied use empty suffix even for TARGET_AVX512VL.
4172         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
4173         is applied, supply evex,evex or evex,evex,evex instead of just
4174         evex.
4176 2017-10-20  Julia Koval  <julia.koval@intel.com>
4178         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
4179         (OPTION_MASK_ISA_GFNI_UNSET): New.
4180         (ix86_handle_option): Handle OPT_mgfni.
4181         * config/i386/cpuid.h (bit_GFNI): New.
4182         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
4183         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
4184         * config/i386/i386.c (ix86_target_string): Add -mgfni.
4185         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
4186         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
4187         * config/i386/i386.opt: Add mgfni.
4189 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
4191         * config/msp430/msp430.c (msp430_option_override): Disable
4192         -fdelete-null-pointer-checks.
4193         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
4195 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
4197         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
4198         of x87 and SSE instructions.
4200 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
4202         * asan.c (create_cond_insert_point): Do not update edge count.
4203         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
4204         (afdo_propagate_circuit): Likewise.
4205         (afdo_calculate_branch_prob): Likewise.
4206         (afdo_annotate_cfg): Likewise.
4207         * basic-block.h (struct edge_def): Remove count.
4208         (edge_def::count): New accessor.
4209         * bb-reorder.c (rotate_loop): Update.
4210         (find_traces_1_round): Update.
4211         (connect_traces): Update.
4212         (sanitize_hot_paths): Update.
4213         * cfg.c (unchecked_make_edge): Update.
4214         (make_single_succ_edge): Update.
4215         (check_bb_profile): Update.
4216         (dump_edge_info): Update.
4217         (update_bb_profile_for_threading): Update.
4218         (scale_bbs_frequencies_int): Update.
4219         (scale_bbs_frequencies_gcov_type): Update.
4220         (scale_bbs_frequencies_profile_count): Update.
4221         (scale_bbs_frequencies): Update.
4222         * cfganal.c (connect_infinite_loops_to_exit): Update.
4223         * cfgbuild.c (compute_outgoing_frequencies): Update.
4224         (find_many_sub_basic_blocks): Update.
4225         * cfgcleanup.c (try_forward_edges): Update.
4226         (try_crossjump_to_edge): Update
4227         * cfgexpand.c (expand_gimple_cond): Update
4228         (expand_gimple_tailcall): Update
4229         (construct_exit_block): Update
4230         * cfghooks.c (verify_flow_info): Update
4231         (redirect_edge_succ_nodup): Update
4232         (split_edge): Update
4233         (make_forwarder_block): Update
4234         (duplicate_block): Update
4235         (account_profile_record): Update
4236         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
4237         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
4238         * cfgloopmanip.c (scale_loop_profile): Update.
4239         (loopify): Update.
4240         (lv_adjust_loop_entry_edge): Update.
4241         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
4242         (force_nonfallthru_and_redirect): Update.
4243         (purge_dead_edges): Update.
4244         (rtl_flow_call_edges_add): Update.
4245         * cgraphunit.c (init_lowered_empty_function): Update.
4246         (cgraph_node::expand_thunk): Update.
4247         * gimple-pretty-print.c (dump_probability): Update.
4248         (dump_edge_probability): Update.
4249         * gimple-ssa-isolate-paths.c (isolate_path): Update.
4250         * haifa-sched.c (sched_create_recovery_edges): Update.
4251         * hsa-gen.c (convert_switch_statements): Update.
4252         * ifcvt.c (dead_or_predicable): Update.
4253         * ipa-inline-transform.c (inline_transform): Update.
4254         * ipa-split.c (split_function): Update.
4255         * ipa-utils.c (ipa_merge_profiles): Update.
4256         * loop-doloop.c (add_test): Update.
4257         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
4258         * lto-streamer-in.c (input_cfg): Update.
4259         (input_function): Update.
4260         * lto-streamer-out.c (output_cfg): Update.
4261         * modulo-sched.c (sms_schedule): Update.
4262         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
4263         * predict.c (maybe_hot_edge_p): Update.
4264         (unlikely_executed_edge_p): Update.
4265         (probably_never_executed_edge_p): Update.
4266         (dump_prediction): Update.
4267         (drop_profile): Update.
4268         (propagate_unlikely_bbs_forward): Update.
4269         (determine_unlikely_bbs): Update.
4270         (force_edge_cold): Update.
4271         * profile.c (compute_branch_probabilities): Update.
4272         * reg-stack.c (better_edge): Update.
4273         * shrink-wrap.c (handle_simple_exit): Update.
4274         * tracer.c (better_p): Update.
4275         * trans-mem.c (expand_transaction): Update.
4276         (split_bb_make_tm_edge): Update.
4277         * tree-call-cdce.c: Update.
4278         * tree-cfg.c (gimple_find_sub_bbs): Update.
4279         (gimple_split_edge): Update.
4280         (gimple_duplicate_sese_region): Update.
4281         (gimple_duplicate_sese_tail): Update.
4282         (gimple_flow_call_edges_add): Update.
4283         (insert_cond_bb): Update.
4284         (execute_fixup_cfg): Update.
4285         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
4286         * tree-complex.c (expand_complex_div_wide): Update.
4287         * tree-eh.c (lower_resx): Update.
4288         (unsplit_eh): Update.
4289         (cleanup_empty_eh_move_lp): Update.
4290         * tree-inline.c (copy_edges_for_bb): Update.
4291         (freqs_to_counts): Update.
4292         (copy_cfg_body): Update.
4293         * tree-ssa-dce.c (remove_dead_stmt): Update.
4294         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
4295         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
4296         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
4297         (unloop_loops): Update.
4298         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
4299         * tree-ssa-loop-split.c (connect_loops): Update.
4300         (split_loop): Update.
4301         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
4302         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
4303         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
4304         * tree-ssa-reassoc.c (branch_fixup): Update.
4305         * tree-ssa-tail-merge.c (replace_block_by): Update.
4306         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
4307         (compute_path_counts): Update.
4308         (update_profile): Update.
4309         (recompute_probabilities): Update.
4310         (update_joiner_offpath_counts): Update.
4311         (estimated_freqs_path): Update.
4312         (freqs_to_counts_path): Update.
4313         (clear_counts_path): Update.
4314         (ssa_fix_duplicate_block_edges): Update.
4315         (duplicate_thread_path): Update.
4316         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
4317         (case_bit_test_cmp): Update.
4318         (collect_switch_conv_info): Update.
4319         (gen_inbound_check): Update.
4320         (do_jump_if_equal): Update.
4321         (emit_cmp_and_jump_insns): Update.
4322         * tree-tailcall.c (decrease_profile): Update.
4323         (eliminate_tail_call): Update.
4324         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
4325         (vect_do_peeling): Update.
4326         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
4327         * ubsan.c (ubsan_expand_null_ifn): Update.
4328         (ubsan_expand_ptr_ifn): Update.
4329         * value-prof.c (gimple_divmod_fixed_value): Update.
4330         (gimple_mod_pow2): Update.
4331         (gimple_mod_subtract): Update.
4332         (gimple_ic): Update.
4333         (gimple_stringop_fixed_value): Update.
4335 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
4337         PR target/82618
4338         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
4340 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
4342         PR rtl-optimization/82395
4343         * ira-color.c (allocno_priority_compare_func): Fix comparison step
4344         based on non_spilled_static_chain_regno_p.
4346 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
4348         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
4349         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
4350         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
4352 2017-10-19  Martin Sebor  <msebor@redhat.com>
4354         PR tree-optimization/82596
4355         * tree.c (array_at_struct_end_p): Handle STRING_CST.
4357 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
4359         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
4360         (get_mem_refs_of_builtin_call): Likewise.
4361         * builtins.c (expand_builtin_apply): Adjust call to
4362         allocate_dynamic_stack_space.
4363         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
4364         the third argument to allocate_dynamic_stack_space, otherwise -1.
4365         (expand_builtin): Deal with all alloca variants.
4366         (is_inexpensive_builtin): Likewise.
4367         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
4368         * calls.c (special_function_p): Deal with all alloca variants.
4369         (initialize_argument_information): Adjust call to
4370         allocate_dynamic_stack_space.
4371         (expand_call): Likewise.
4372         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
4373         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
4374         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
4375         use it for the stack usage computation.
4376         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
4377         * function.c (gimplify_parameters): Call build_alloca_call_expr.
4378         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
4379         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
4380         (in_loop_p): Remove first argument and useless check.
4381         (pass_walloca::execute): Remove useless test and adjust call to above.
4382         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
4383         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
4384         (gimplify_call_expr): Deal with all alloca variants.
4385         * hsa-gen.c (gen_hsa_alloca): Likewise.
4386         (gen_hsa_insns_for_call): Likewise.
4387         * ipa-pure-const.c (special_builtin_state): Likewise.
4388         * tree-chkp.c (chkp_build_returned_bound): Likewise.
4389         * tree-object-size.c (alloc_object_size): Likewise.
4390         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
4391         (call_may_clobber_ref_p_1): Likewise.
4392         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
4393         (ccp_fold_stmt): Likewise.
4394         (optimize_stack_restore): Likewise.
4395         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4396         (mark_all_reaching_defs_necessary_1): Likewise.
4397         (propagate_necessity): Likewise.
4398         (eliminate_unnecessary_stmts): Likewise.
4399         * tree.c (build_common_builtin_nodes): Build
4400         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
4401         (build_alloca_call_expr): New function.
4402         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
4403         (CASE_BUILT_IN_ALLOCA): Likewise.
4404         (build_alloca_call_expr): Declare.
4405         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
4407 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
4409         PR debug/82509
4410         * dwarf2out.c (new_die_raw): New static inline function.
4411         (new_die): Use it to create the DIE.
4412         (add_AT_external_die_ref): Likewise.
4413         (clone_die): Likewise.
4414         (clone_as_declaration): Likewise.
4415         (dwarf2out_vms_debug_main_pointer): Likewise.
4416         (base_type_die): Likewise.  Remove early return for corner cases.
4417         Do not call add_pubtype on the DIE here.
4418         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
4419         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
4420         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
4421         native order exists for base types, attach the DIE manually and call
4422         add_pubtype on it.  Do not equate a reverse order DIE to the type.
4424 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
4426         * config/arm/arm.c (align_ok_ldrd_strd): New function.
4427         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
4428         the mem into it.
4429         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
4431 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
4433         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
4434         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
4435         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
4436         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
4437         * opts.c (sanitizer_opts): Add builtin.
4438         * ubsan.c (instrument_builtin): New function.
4439         (pass_ubsan::execute): Call it.
4440         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
4441         * doc/invoke.texi: Document -fsanitize=builtin.
4443         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
4444         builtins, store max (log2 (align), 0) into uchar field instead of
4445         align into uptr field.
4446         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
4447         store uchar 0 field instead of uptr 0 field.
4448         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
4449         instead of passing one address of struct with 2 locations pass
4450         two addresses of structs with 1 location each.
4451         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
4452         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
4453         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
4454         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
4455         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
4456         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
4457         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
4458         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
4460 2017-10-19  Martin Liska  <mliska@suse.cz>
4462         PR driver/81829
4463         * file-find.c (remove_prefix): Remove.
4464         * file-find.h (remove_prefix): Likewise.
4465         * gcc-ar.c: Remove smartness of lookup.
4467 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
4469         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
4470         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
4471         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
4473 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
4475         PR target/82580
4476         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
4477         (setcc + and to xor + setcc): New peephole2.
4479 2017-10-19  Tom de Vries  <tom@codesourcery.com>
4481         * doc/sourcebuild.texi (Test Directives, Variants of
4482         dg-require-support): Add dg-require-stack-size.
4484 2017-10-19  Martin Liska  <mliska@suse.cz>
4486         PR sanitizer/82517
4487         * gimplify.c (gimplify_decl_expr): Do not instrument variables
4488         that have a large alignment.
4489         (gimplify_target_expr): Likewise.
4491 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
4493         PR rtl-optimization/82602
4494         * ira.c (rtx_moveable_p): Return false for volatile asm.
4496 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
4498         PR target/82580
4499         * config/i386/i386-modes.def (CCGZ): New CC mode.
4500         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
4501         * config/i386/predicates.md (ix86_comparison_operator):
4502         Handle CCGZmode.
4503         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
4504         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
4505         with double-word subtraction.
4506         (put_condition_code): Handle CCGZmode.
4508 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
4510         * wide-int.cc (debug (const wide_int &)): New.
4511         (debug (const wide_int *)): New.
4512         (debug (const widest_int &)): New.
4513         (debug (const widest_int *)): New.
4515 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
4517         PR middle-end/82556
4518         * lra-constraints.c (curr_insn_transform): Use non-input operand
4519         instead of output one for matched reload.
4521 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
4523         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
4524         (tree-ssa-loop-ivopts.h): New header file.
4525         (struct builtin_info): New fields.
4526         (classify_builtin_1): Compute and record base and offset parts for
4527         memset builtin partition by calling strip_offset.
4528         (offset_cmp, fuse_memset_builtins): New functions.
4529         (finalize_partitions): Fuse adjacent memset partitions by calling
4530         above function.
4531         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
4532         Expose the interface.
4533         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
4535 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
4537         PR tree-optimization/82574
4538         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
4539         that data reference must be executed exactly once per iteration
4540         against the outermost loop in nest.
4541         (classify_partition): Update call to above function.
4543 2017-10-18  Richard Biener  <rguenther@suse.de>
4545         PR tree-optimization/82591
4546         * graphite.c (graphite_transform_loops): Move code gen message
4547         printing ...
4548         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
4549         Here.  Handle scop_to_isl_ast failing.
4550         (scop_to_isl_ast): Limit the number of ISL operations.
4552 2017-10-18  Richard Biener  <rguenther@suse.de>
4554         * graphite-isl-ast-to-gimple.c
4555         (translate_isl_ast_to_gimple::set_rename): Simplify.
4556         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
4557         (graphite_copy_stmts_from_block): ... here.
4558         (copy_bb_and_scalar_dependences): Simplify.
4559         (add_parameters_to_ivs_params): Canonicalize.
4560         (generate_entry_out_of_ssa_copies): Simplify.
4561         * graphite-sese-to-poly.c (extract_affine_name): Simplify
4562         by passing in ISL dimension.
4563         (parameter_index_in_region_1): Rename to ...
4564         (parameter_index_in_region): ... this.
4565         (extract_affine): Adjust assert, pass down parameter index.
4566         (add_param_constraints): Use range-info when available.
4567         (build_scop_context): Adjust.
4568         * sese.c (new_sese_info): Adjust.
4569         (free_sese_info): Likewise.
4570         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
4571         Remove unused typedefs.
4572         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
4574 2017-10-18  Martin Liska  <mliska@suse.cz>
4576         * combine.c (simplify_compare_const): Add gcc_fallthrough.
4578 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
4580         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
4581         (s390_sched_init): Do not reset s390_sched_state if we entered the
4582         current basic block via a fallthru edge and all others are unlikely.
4584 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
4586         * config/s390/s390.c (NUM_SIDES): New variable.
4587         (LONGRUNNING_THRESHOLD): New variable.
4588         (LATENCY_FACTOR): New variable.
4589         (s390_sched_score): Decrease score for long-running instructions on
4590         wrong side.
4591         (s390_sched_variable_issue): Perform bookkeeping for long-running
4592         instructions.
4594 2017-10-18  Richard Biener  <rguenther@suse.de>
4596         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
4597         Simplify with removal of the parameter rename map.
4598         (set_rename): Likewise.
4599         (should_copy_to_new_region): Likewise.
4600         (graphite_copy_stmts_from_block): Likewise.
4601         (copy_bb_and_scalar_dependences): Remove initialization of
4602         unused copied_bb_map.
4603         (copy_def): Remove.
4604         (copy_internal_parameters): Likewise.
4605         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
4606         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
4607         Use INTEGRAL_TYPE_P.
4608         (parameter_index_in_region_1): Rename to ...
4609         (assign_parameter_index_in_region): ... this.  Assert we have
4610         a parameter we handle.
4611         (scan_tree_for_params): Adjust.
4612         * sese.h (parameter_rename_map_t): Remove.
4613         (struct sese_info_t): Remove unused parameter_rename_map and
4614         copied_bb_map members.
4615         * sese.c (new_sese_info): Adjust.
4616         (free_sese_info): Likewise.
4618 2017-10-18  Martin Liska  <mliska@suse.cz>
4620         PR sanitizer/82545
4621         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
4622         on an abnormal edge.
4624 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4626         * doc/invoke.texi (ffunction-sections and fdata-sections):
4627         Update.
4629 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
4631         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
4632         the use statement can throw internally.
4634 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
4636         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
4637         any RTX present on the RHS of a SET.
4638         * compare-elim.c (try_eliminate_compare): Restore comment.
4640 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
4642         * langhooks.h (struct lang_hooks): Document that tree_size langhook
4643         may be also called on tcc_type nodes.
4644         * langhooks.c (lhd_tree_size): Likewise.
4646 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
4648         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
4649         format_warning_at_substring.
4650         (maybe_warn): Convert source_range * param to a location_t.  Pass
4651         UNKNOWN_LOCATION rather than NULL to fmtwarn.
4652         (format_directive): Remove code to extract source_ranges and
4653         source_range * in favor of just a location_t.
4654         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
4655         fmtwarn.
4656         * substring-locations.c (format_warning_va): Convert
4657         source_range * param to a location_t.
4658         (format_warning_at_substring): Likewise.
4659         * substring-locations.h (format_warning_va): Likewise.
4660         (format_warning_at_substring): Likewise.
4662 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
4664         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
4665         vec_scatter_store
4666         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
4667         and scatter/gather ops.
4669         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
4670         vec_gather_load and vec_scatter_store.
4671         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
4672         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
4673         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
4674         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
4675         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
4676         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
4678 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
4680         * reg-stack.c (compare_for_stack_reg): Add bool argument.
4681         Detect FTST instruction and handle its register pops.  Only pop
4682         second operand if can_pop_second_op is true.
4683         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
4684         set can_pop_second_op to false in the compare_for_stack_reg call.
4686         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
4687         output_fp_compare for stack register operands.
4688         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
4689         instructions here.  Do not emit stack register pops here.  Assert
4690         that FCOMPP pops next to top stack register.  Rewrite function.
4692 2017-10-17  Nathan Sidwell  <nathan@acm.org>
4694         PR middle-end/82577
4695         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
4696         use DECL_ASSEMBLER_NAME_RAW.
4698         PR middle-end/82546
4699         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
4700         TYPE nodes.
4702 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
4703             Wilco Dijkstra <wilco.dijkstra@arm.com>
4705         * builtins.c (expand_builtin_update_setjmp_buf): Add a
4706         converstion to Pmode from the buf_addr.
4708 2017-10-17  Richard Biener  <rguenther@suse.de>
4710         * graphite-dependences.c (scop_get_reads_and_writes): Change
4711         output parameters to references.
4713 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
4715         PR 71026/tree-optimization
4716         * fold-const.c (distribute_real_division): Removed.
4717         (fold_binary_loc): Remove calls to distribute_real_divison.
4719 2017-10-17  Richard Biener  <rguenther@suse.de>
4721         * graphite-scop-detection.c
4722         (scop_detection::stmt_has_simple_data_refs_p): Always use
4723         the full nest as region.
4724         (try_generate_gimple_bb): Likewise.
4725         * sese.c (scalar_evolution_in_region): Simplify now that
4726         SCEV can handle instantiation in regions.
4727         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
4728         in the non-loop part of a function if requested.
4730 2017-10-17  Richard Biener  <rguenther@suse.de>
4732         PR tree-optimization/82563
4733         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
4734         New function.
4735         (graphite_regenerate_ast_isl): Call it.
4736         * graphite-scop-detection.c (build_scops): Remove entry edge split.
4738 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
4740         PR tree-optimization/82549
4741         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
4742         Formatting fixes.  Instead of calling make_bit_field_ref with negative
4743         bitpos return 0.
4745 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
4747         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
4748         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
4749         _mm_maskz_reduce_ss): New.
4750         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
4751         __builtin_ia32_reducess_mask): Ditto..
4752         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
4753         * config/i386/sse.md (reduces<mode>): Renamed to ...
4754         (reduces<mode><mask_scalar_name>): ... this.
4755         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
4756         Changed to ...
4757         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
4758         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
4760 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
4762         * Makefile.in (OBJS): Add unique-ptr-tests.o.
4763         * selftest-run-tests.c (selftest::run_tests): Call
4764         selftest::unique_ptr_tests_cc_tests.
4765         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
4766         * unique-ptr-tests.cc: New file.
4768 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
4770         PR sanitizer/82353
4771         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
4772         locations.
4773         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
4774         (make_hard_regno_born, make_hard_regno_dead): Update
4775         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
4777 2017-10-16  Jeff Law  <law@redhat.com>
4779         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
4781 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
4783         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
4785 2017-10-16  Olivier Hainque  <hainque@adacore.com>
4787         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
4788         with_cpu if we were configured for an e500v2 target cpu name.
4790 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4792         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
4793         * doc/invoke.texi: Document +nodsp as a valid extension for
4794         -mcpu=cortex-m33.
4796 2017-10-16  Martin Liska  <mliska@suse.cz>
4798         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
4799         (test_set_range): Likewise.
4800         (test_range_functions): Rename to ...
4801         (test_bit_in_range): ... this.
4802         (sbitmap_c_tests): Add new test.
4804 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
4806         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
4807         New.
4808         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
4809         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
4811 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
4813         * config/aarch64/aarch64-builtins.c
4814         (aarch64_types_quadopu_lane_qualifiers): New.
4815         (TYPES_QUADOPU_LANE): New.
4816         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
4817         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
4818         (aarch64_<sur>dot_laneq<vsi2qi>): New.
4819         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
4820         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
4821         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
4822         (Vdottype, DOTPROD): New.
4823         (sur): Add SDOT and UDOT.
4825 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
4827         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
4828         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
4829         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
4830         Add TARGET_DOTPROD.
4831         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
4832         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
4833         Enable TARGET_DOTPROD.
4834         (cortex-a75.cortex-a55): Likewise.
4835         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
4837 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
4839         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
4840         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
4841         New.
4842         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
4843         New.
4844         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
4845         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
4846         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
4847         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
4848         * config/arm/types.md (neon_dot, neon_dot_q): New.
4849         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
4851 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
4853         * config/arm/arm.h (TARGET_DOTPROD): New.
4854         * config/arm/arm.c (arm_arch_dotprod): New.
4855         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
4856         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
4857         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
4858         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
4859         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
4860         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
4861         * doc/invoke.texi (armv8.2-a): Document dotprod
4863 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
4865         * i386.c (ix86_vec_cost): New function.
4866         (ix86_rtx_costs): Handle vector operations better.
4867         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
4868         * x86-tune-costs.h: Add new costs to all tables.
4870 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
4872         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
4873         operations.
4874         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
4875         divsd, sqrtss and sqrtsd
4876         * x86-tune-costs.h: Add new entries to all costs.
4877         (znver1_cost): Fix to match real instruction latencies.
4879 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4880             Michael Collison <michael.collison@arm.com>
4882         * compare-elim.c: Include emit-rtl.h.
4883         (can_merge_compare_into_arith): New function.
4884         (try_validate_parallel): Likewise.
4885         (try_merge_compare): Likewise.
4886         (try_eliminate_compare): Call the above when no previous clobber
4887         is available.
4888         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
4889         dataflow problems.
4891 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
4893         PR middle-end/62263
4894         PR middle-end/82498
4895         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
4896         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
4898         PR middle-end/62263
4899         PR middle-end/82498
4900         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
4901         to be any operand_equal_p operands.  For & (B - 1) require
4902         B to be power of 2.  Recognize
4903         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
4905 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
4907         PR bootstrap/82553
4908         * optabs.c (expand_memory_blockage): Fix call of
4909         targetm.have_memory_blockage.
4911 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
4913         PR bootstrap/82548
4914         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
4915         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
4916         objects to extra_objs instead of overwriting it.
4918 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
4920         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
4921         Use any_fp_register_operand as operand[3] predicate.  Simplify
4922         equality test for operands[2] and operands[4] memory location.
4923         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
4924         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
4925         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
4926         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
4927         any_fp_register_operand as operand[1] predicate.  Simplify
4928         equality test for operands[0] and operands[3] memory location.
4929         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
4930         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
4931         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
4933 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
4935         * target-insns.def: Add memory_blockage.
4936         * optabs.c (expand_memory_blockage): New function.
4937         (expand_asm_memory_barrier): Rename ...
4938         (expand_asm_memory_blockage): ... to this.
4939         (expand_mem_thread_fence): Call expand_memory_blockage
4940         instead of expand_asm_memory_barrier.
4941         (expand_mem_singnal_fence): Ditto.
4942         (expand_atomic_load): Ditto.
4943         (expand_atomic_store): Ditto.
4944         * doc/md.texi (Standard Pattern Names For Generation):
4945         Document memory_blockage instruction pattern.
4947 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
4949         * config/rl78/rl78.c (rl78_emit_libcall): New function.
4950         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
4951         * config/rl78/rl78.md: New define_expand "adddi3".
4953 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
4955         * cfghooks.c (verify_flow_info): Disable check that all probabilities
4956         are set correctly.
4958 2017-10-13  Jeff Law  <law@redhat.com>
4960         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
4962 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
4964         PR target/82274
4965         * internal-fn.c (expand_mul_overflow): If both operands have
4966         the same highpart of -1 or 0 and the topmost bit of lowpart
4967         is different, overflow is if res <= 0 rather than res < 0.
4969 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
4971         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
4972         TARGET_P9_VECTOR code for unaligned_load case.
4974 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
4976         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
4978 2017-10-13  Nathan Sidwell  <nathan@acm.org>
4980         * tree-core.h (tree_contains_struct): Make bool.
4981         * tree.c (tree_contains_struct): Likewise.
4982         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
4983         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
4984         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
4985         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
4986         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
4988 2017-10-13  Richard Biener  <rguenther@suse.de>
4990         * graphite-isl-ast-to-gimple.c
4991         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
4992         parameters and dominance check.
4993         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
4994         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
4995         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
4996         Do not update SSA form here or do intermediate IL verification.
4997         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
4998         (graphite_initialize): Remove check on the number of loops in
4999         the function and inline into graphite_transform_loops.
5000         (graphite_finalize): Inline into graphite_transform_loops.
5001         (graphite_transform_loops): Perform SSA update and IL verification
5002         here.
5003         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
5005 2017-10-13  Richard Biener  <rguenther@suse.de>
5007         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
5008         graphite_expression_type_precision): Avoid global constructor
5009         by moving ...
5010         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
5011         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
5012         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
5013         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
5014         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
5015         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
5017 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
5019         PR target/82499
5020         * config/i386/i386.h (ix86_red_zone_size): New.
5021         * config/i386/i386.md (push peephole2s): Replace
5022         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
5024 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
5025             Alan Hayward  <alan.hayward@arm.com>
5026             David Sherwood  <david.sherwood@arm.com>
5028         * combine.c (can_change_dest_mode): Reject changes in
5029         REGMODE_NATURAL_SIZE.
5031 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
5032             Alan Hayward  <alan.hayward@arm.com>
5033             David Sherwood  <david.sherwood@arm.com>
5035         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
5036         (expand_debug_source_expr): Likewise.
5037         * combine.c (combine_simplify_rtx): Likewise.
5038         * cse.c (fold_rtx): Likewise.
5039         * fwprop.c (canonicalize_address): Likewise.
5040         * targhooks.c (default_shift_truncation_mask): Likewise.
5042 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
5043             Alan Hayward  <alan.hayward@arm.com>
5044             David Sherwood  <david.sherwood@arm.com>
5046         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
5047         (widened_mode): Likewise.
5048         (expand_unop): Likewise.
5049         * ree.c (transform_ifelse): Likewise.
5050         (merge_def_and_ext): Likewise.
5051         (combine_reaching_defs): Likewise.
5052         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
5054 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
5055             Alan Hayward  <alan.hayward@arm.com>
5056             David Sherwood  <david.sherwood@arm.com>
5058         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
5059         * combine.c (gen_lowpart_for_combine): Likewise.
5060         * dwarf2out.c (rtl_for_decl_location): Likewise.
5061         * final.c (alter_subreg): Likewise.
5062         * rtlhooks.c (gen_lowpart_general): Likewise.
5063         (gen_lowpart_if_possible): Likewise.
5065 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
5066             Alan Hayward  <alan.hayward@arm.com>
5067             David Sherwood  <david.sherwood@arm.com>
5069         * calls.c (expand_call): Use subreg_lowpart_offset.
5070         * cse.c (cse_insn): Likewise.
5071         * regcprop.c (copy_value): Likewise.
5072         (copyprop_hardreg_forward_1): Likewise.
5074 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
5076         PR target/82524
5077         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
5078         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
5079         =Q constraints to +Q and into insn condition add check
5080         that operands[0] and operands[1] are equal.
5081         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
5082         =Q constraints to +Q and into insn condition add check
5083         that operands[0] is equal to either operands[1] or operands[2].
5085         PR target/82498
5086         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
5087         instead of handling MINUS_EXPR twice (once for each argument),
5088         canonicalize operand order and handle just once, use rtype where
5089         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
5091         PR target/82498
5092         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
5093         any values of __C while still being pattern recognizable as a simple
5094         rotate instruction.
5096 2017-10-13  Richard Biener  <rguenther@suse.de>
5098         PR tree-optimization/82451
5099         Revert
5100         2017-10-02  Richard Biener  <rguenther@suse.de>
5102         PR tree-optimization/82355
5103         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
5104         a mapping for the enclosing loop but avoid generating one for
5105         the loop tree root.
5106         (copy_bb_and_scalar_dependences): Remove premature codegen
5107         error on PHIs in blocks duplicated into multiple places.
5108         * graphite-scop-detection.c
5109         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
5110         in the region use it as loop and nest to analyze the DR in.
5111         (try_generate_gimple_bb): Likewise.
5112         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
5113         (add_loop_constraints): For blocks in a loop not in the region
5114         create a dimension with a single iteration.
5115         * sese.h (gbb_loop_at_index): Remove assert.
5117         * cfgloop.c (loop_preheader_edge): For the loop tree root
5118         return the single successor of the entry block.
5119         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
5120         Reset the SCEV hashtable and niters.
5121         * graphite-scop-detection.c
5122         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
5123         assert that we only have POLYNOMIAL_CHREC that vary in loops
5124         contained in the region.
5125         (scop_detection::graphite_can_represent_expr): Adjust.
5126         (scop_detection::stmt_has_simple_data_refs_p): For loops
5127         not in the region set loop to NULL.  The nest is now the
5128         entry edge to the region.
5129         (try_generate_gimple_bb): Likewise.
5130         * sese.c (scalar_evolution_in_region): Adjust for
5131         instantiate_scev change.
5132         * tree-data-ref.h (graphite_find_data_references_in_stmt):
5133         Make nest parameter the edge into the region.
5134         (create_data_ref): Likewise.
5135         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
5136         entry edge into a region and adjust instantiate_scev calls.
5137         (create_data_ref): Likewise.
5138         (graphite_find_data_references_in_stmt): Likewise.
5139         (find_data_references_in_stmt): Pass the loop preheader edge
5140         from the nest argument.
5141         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
5142         parameter the edge into the region.
5143         (instantiate_parameters): Use the loop preheader edge as entry.
5144         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
5145         NULL loop.
5146         (get_instantiated_value_entry): Make instantiate_below parameter
5147         the edge into the region.
5148         (instantiate_scev_name): Likewise.  Adjust dominance checks,
5149         when we cannot use loop-based instantiation instantiate by
5150         walking use-def chains.
5151         (instantiate_scev_poly): Adjust.
5152         (instantiate_scev_binary): Likewise.
5153         (instantiate_scev_convert): Likewise.
5154         (instantiate_scev_not): Likewise.
5155         (instantiate_array_ref): Remove.
5156         (instantiate_scev_3): Likewise.
5157         (instantiate_scev_2): Likewise.
5158         (instantiate_scev_1): Likewise.
5159         (instantiate_scev_r): Do not blindly handle N-operand trees.
5160         Do not instantiate array-refs.  Handle all constants and invariants.
5161         (instantiate_scev): Make instantiate_below parameter
5162         the edge into the region.
5163         (resolve_mixers): Use the loop preheader edge for the region
5164         parameter to instantiate_scev_r.
5165         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
5167 2017-10-13  Richard Biener  <rguenther@suse.de>
5169         PR tree-optimization/82525
5170         * graphite-isl-ast-to-gimple.c
5171         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
5172         out from ...
5173         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
5174         Fail code generation when we cannot represent the isl integer.
5175         (binary_op_to_tree): Elide modulo operations that are no-ops
5176         in the type we code generate.  Remove now superfluous code
5177         generation errors.
5179 2017-10-13  Richard Biener  <rguenther@suse.de>
5181         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
5182         (scop_detection::harmful_loop_in_region): Remove premature
5183         IV type restriction.
5184         (scop_detection::graphite_can_represent_scev): We can handle
5185         pointer IVs just fine.
5187 2017-10-13  Alan Modra  <amodra@gmail.com>
5189         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
5190         "Clobbers and Scratch Registers".  Add paragraph on
5191         alternative to clobbers for scratch registers and OpenBLAS
5192         example.
5194 2017-10-13  Alan Modra  <amodra@gmail.com>
5196         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
5197         example of a memory input for a string of known length.  Move
5198         commentary out of table.  Add a number of new examples
5199         covering array memory inputs.
5201 2017-10-12  Martin Liska  <mliska@suse.cz>
5203         PR tree-optimization/82493
5204         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
5205         (test_range_functions): New function.
5206         (sbitmap_c_tests): Likewise.
5207         * selftest-run-tests.c (selftest::run_tests): Run new tests.
5208         * selftest.h (sbitmap_c_tests): New function.
5210         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
5212 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5214         * config/rs6000/amo.h: Fix spacing issue.
5216 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
5218         PR target/82498
5219         * config/i386/i386.md (*ashl<mode>3_mask_1,
5220         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
5221         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
5222         patterns.
5224 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
5226         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
5227         (profile_probability): Set max_probability
5228         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
5229         in temporaries.
5230         * profile-count.c (profile_probability::differs_from_p): Do not
5231         rely on max_probaiblity == 10000
5233 2017-10-12  Jeff Law  <law@redhat.com>
5235         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
5236         negative offsets.
5238 2017-10-12  Martin Sebor  <msebor@redhat.com>
5240         PR other/82301
5241         PR c/82435
5242         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
5243         (handle_alias_pairs): Call it.
5244         * common.opt (-Wattribute-alias): New option.
5245         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
5246         * doc/invoke.texi (-Wattribute-alias): Document.
5248 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
5250         Revert
5251         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
5252         PR sanitizer/82353
5253         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
5254         locations.
5255         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
5256         (make_hard_regno_born, make_hard_regno_dead): Update
5257         bb_killed_pseudos and bb_gen_pseudos.
5259 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
5261         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
5263 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
5265         * config/alpha/alpha.c (alpha_split_conditional_move):
5266         Use std::swap instead of manually swapping.
5267         (alpha_stdarg_optimize_hook): Ditto.
5268         (alpha_canonicalize_comparison): Ditto.
5270 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
5272         * tree-loop-distribution.c (struct builtin_info): New struct.
5273         (struct partition): Refactor fields into struct builtin_info.
5274         (partition_free): Free struct builtin_info.
5275         (build_size_arg_loc, build_addr_arg_loc): Delete.
5276         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
5277         information from struct builtin_info.
5278         (find_single_drs): New function refactored from classify_partition.
5279         Also moved builtin validity checks to this function.
5280         (compute_access_range, alloc_builtin): New functions.
5281         (classify_builtin_st, classify_builtin_ldst): New functions.
5282         (classify_partition): Refactor code into functions find_single_drs,
5283         classify_builtin_st and classify_builtin_ldst.
5284         (distribute_loop): Don't do runtime alias check when distributing
5285         loop nest.
5286         (find_seed_stmts_for_distribution): New function.
5287         (pass_loop_distribution::execute): Refactor code finding seed
5288         stmts into above function.  Support distribution for the innermost
5289         two-level loop nest.  Adjust dump information.
5291 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
5293         * tree-loop-distribution.c: Adjust the general comment.
5294         (NUM_PARTITION_THRESHOLD): New macro.
5295         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
5296         (classify_partition): Skip builtin pattern of loop nest's inner loop.
5297         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
5298         in call to build_partition_graph.
5299         (finalize_partitions): New parameter.  Make loop distribution more
5300         conservative by fusing more partitions.
5301         (distribute_loop): Don't do runtime alias check in case of loop nest
5302         distribution.
5303         (find_seed_stmts_for_distribution): New function.
5304         (prepare_perfect_loop_nest): New function.
5305         (pass_loop_distribution::execute): Refactor code finding seed stmts
5306         and loop nest into above functions.  Support loop nest distribution.
5307         Adjust dump information accordingly.
5309 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
5311         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
5312         and set PTYPE_SEQUENTIAL for merged partition.
5314 2017-10-12  Richard Biener  <rguenther@suse.de>
5316         PR tree-optimization/69728
5317         Revert
5318         2017-09-19  Richard Biener  <rguenther@suse.de>
5320         PR tree-optimization/69728
5321         * graphite-sese-to-poly.c (schedule_error): New global.
5322         (add_loop_schedule): Handle empty domain by failing the
5323         schedule.
5324         (build_original_schedule): Handle schedule_error.
5326         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
5327         domain by returning an unchanged schedule.
5329 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
5331         * genrecog.c (validate_pattern): For VEC_SELECT verify that
5332         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
5334 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
5336         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
5337         Handle params.def.
5339 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
5341         PR c++/82159
5342         * expr.c (store_field): Don't optimize away bitsize == 0 store
5343         from CALL_EXPR with addressable return type.
5345 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
5347         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
5348         * config/rs6000/rs6000.md (sel): Delete mode attribute.
5349         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
5350         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
5351         TARGET_ISEL instead of TARGET_ISEL<sel>.
5353 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
5355         * config/rs6000/rs6000.c
5356         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
5358 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
5360         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
5361         Move up in file.
5362         (reg_or_cint_operand): Fix comment.
5363         (reg_or_zero_operand): New predicate.
5364         * config/rs6000/rs6000-protos.h (output_isel): Delete.
5365         * config/rs6000/rs6000.c (output_isel): Delete.
5366         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
5367         instead of reg_or_cint_operand.  Output instruction directly (not via
5368         output_isel).
5369         (isel_unsigned_<mode>): Ditto.
5370         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
5371         gpc_reg_operand.  Add an instruction alternative for this.  Output
5372         instruction directly.
5373         (*isel_reversed_unsigned_<mode>): Ditto.
5375 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
5377         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
5378         (TARGET_CANONICALIZE_COMPARISON): Define.
5380 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
5382         PR target/81422
5383         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
5384         Check whether the dest is REG before adding REG_EQUIV note.
5386 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
5388         PR sanitizer/82353
5389         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
5390         locations.
5391         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
5392         (make_hard_regno_born, make_hard_regno_dead): Update
5393         bb_killed_pseudos and bb_gen_pseudos.
5395 2017-10-11  Nathan Sidwell  <nathan@acm.org>
5397         * incpath.h (enum incpath_kind): Name enum, prefix values.
5398         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
5399         * incpath.c (heads, tails): Use INC_MAX.
5400         (add_env_var_paths, add_standard_paths): Use incpath_kind.
5401         (merge_include_chains, split_quote_chain,
5402         register_include_chains): Update incpath_kind names.
5403         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
5404         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
5405         names.
5406         (add_framework_path, darwin_register_objc_includes): Likewise.
5407         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
5409 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
5411         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
5412         Do not use float_operator operator predicate.
5413         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
5414         * config/i386/predicates.md (float_operator): Remove predicate.
5416 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
5418         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
5419         (*jccxf_i387): Ditto.
5420         (*jcc<mode>_i387): Ditto.
5421         (*jccu<mode>_i387): Ditto.
5422         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
5423         (*jcc_*_i387 splitters): Remove.
5424         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
5425         * config/i386/i386.c (ix86_split_fp_branch): Remove.
5426         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
5427         Remove predicate.
5429 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
5431         * profile-count.h (slow_safe_scale_64bit): New function.
5432         (safe_scale_64bit): New inline.
5433         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
5434         * profile-count.c: Include wide-int.h
5435         (slow_safe_scale_64bit): New.
5437 2017-10-11  Nathan Sidwell  <nathan@acm.org>
5439         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
5440         HAS_DECL_ASSEMBLER_NAME_P.
5441         * gimple-expr.c (gimple_decl_printable_name: Check
5442         HAS_DECL_ASSEMBLER_NAME_P too.
5443         * ipa-utils.h (type_in_anonymous_namespace_p): Check
5444         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
5445         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
5446         * passes.c (rest_of_decl_compilation): Check
5447         HAS_DECL_ASSEMBLER_NAME_P too.
5448         * recog.c (verify_changes): Likewise.
5449         * tree-pretty-print.c (dump_decl_name): Likewise.
5450         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
5452         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
5453         (SET_DECL_ASSEMBLER_NAME): Use it.
5454         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
5455         (COPY_DECL_ASSEMBLER_NAME): Likewise.
5456         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
5458 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
5460         * config.gcc (i386, x86_64): Add extra objects.
5461         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
5462         (ix86_min_insn_size): Declare.
5463         (ix86_issue_rate): Declare.
5464         (ix86_adjust_cost): Declare.
5465         (ia32_multipass_dfa_lookahead): Declare.
5466         (ix86_macro_fusion_p): Declare.
5467         (ix86_macro_fusion_pair_p): Declare.
5468         (ix86_bd_has_dispatch): Declare.
5469         (ix86_bd_do_dispatch): Declare.
5470         (ix86_core2i7_init_hooks): Declare.
5471         (ix86_atom_sched_reorder): Declare.
5472         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
5473         (COSTS_N_BYTES): Move to x86-tune-costs.h.
5474         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
5475         (rip_relative_addr_p): Rename to ...
5476         (ix86_rip_relative_addr_p): ... this one; export.
5477         (memory_address_length): Update.
5478         (ix86_issue_rate): Move to x86-tune-sched.c.
5479         (ix86_flags_dependent): Move to x86-tune-sched.c.
5480         (ix86_agi_dependent): Move to x86-tune-sched.c.
5481         (exact_dependency_1): Move to x86-tune-sched.c.
5482         (exact_store_load_dependency): Move to x86-tune-sched.c.
5483         (ix86_adjust_cost): Move to x86-tune-sched.c.
5484         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
5485         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
5486         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
5487         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
5488         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
5489         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
5490         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
5491         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
5492         (min_insn_size): Rename to ...
5493         (ix86_min_insn_size): ... this one; export.
5494         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
5495         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
5496         (core2i7_first_cycle_multipass_backtrack): Move to
5497         x86-tune-sched-core.c.
5498         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
5499         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
5500         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
5501         (ix86_avoid_jump_mispredicts): Update.
5502         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
5503         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
5504         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
5505         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
5506         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
5507         (MAX_INSN): Move to ix86-tune-sched-bd.c.
5508         (MAX_IMM): Move to ix86-tune-sched-bd.c.
5509         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
5510         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
5511         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
5512         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
5513         (MAX_STORE): Move to ix86-tune-sched-bd.c.
5514         (BIG): Move to ix86-tune-sched-bd.c.
5515         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
5516         (enum insn_path): Move to ix86-tune-sched-bd.c.
5517         (get_mem_group): Move to ix86-tune-sched-bd.c.
5518         (is_cmp): Move to ix86-tune-sched-bd.c.
5519         (dispatch_violation): Move to ix86-tune-sched-bd.c.
5520         (is_branch): Move to ix86-tune-sched-bd.c.
5521         (is_prefetch): Move to ix86-tune-sched-bd.c.
5522         (init_window): Move to ix86-tune-sched-bd.c.
5523         (allocate_window): Move to ix86-tune-sched-bd.c.
5524         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
5525         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
5526         (process_end_window): Move to ix86-tune-sched-bd.c.
5527         (allocate_next_window): Move to ix86-tune-sched-bd.c.
5528         (find_constant): Move to ix86-tune-sched-bd.c.
5529         (get_num_immediates): Move to ix86-tune-sched-bd.c.
5530         (has_immediate): Move to ix86-tune-sched-bd.c.
5531         (get_insn_path): Move to ix86-tune-sched-bd.c.
5532         (get_insn_group): Move to ix86-tune-sched-bd.c.
5533         (count_num_restricted): Move to ix86-tune-sched-bd.c.
5534         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
5535         (add_insn_window): Move to ix86-tune-sched-bd.c.
5536         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
5537         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
5538         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
5539         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
5540         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
5541         (do_dispatch): Move to ix86-tune-sched-bd.c.
5542         (has_dispatch): Move to ix86-tune-sched-bd.c.
5543         * config/i386/t-i386: Add new object files.
5544         * config/i386/x86-tune-costs.h: New file.
5545         * config/i386/x86-tune-sched-atom.c: New file.
5546         * config/i386/x86-tune-sched-bd.c: New file.
5547         * config/i386/x86-tune-sched-core.c: New file.
5548         * config/i386/x86-tune-sched.c: New file.
5550 2017-10-11  Liu Hao  <lh_mouse@126.com>
5552         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
5553         the generic version below instead.
5554         (should_colorize): Recognize Windows consoles as terminals
5555         for MinGW targets.
5556         * pretty-print.c [__MINGW32__] (write_all): New function.
5557         [__MINGW32__] (find_esc_head): Likewise.
5558         [__MINGW32__] (find_esc_terminator): Likewise.
5559         [__MINGW32__] (eat_esc_sequence): Likewise.
5560         [__MINGW32__] (mingw_ansi_fputs): New function that handles
5561         ANSI escape codes.
5562         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
5563         for MinGW targets.
5565 2017-10-11  Richard Biener  <rguenther@suse.de>
5567         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
5568         Properly call analyze_scalar_evolution with the loop of the stmt.
5570 2017-10-11  Richard Biener  <rguenther@suse.de>
5572         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
5573         * tree-core.h (tree_base): Add chrec_var union member.
5574         * tree.h (CHREC_VAR): Remove.
5575         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
5576         * tree-chrec.h (build_polynomial_chrec): Adjust.
5577         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
5578         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
5580 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
5582         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
5583         * match.pd: ... here.
5584         ((T) X == (T) Y): Relax condition.
5586 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
5588         PR tree-optimization/82472
5589         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
5590         comment.
5591         (break_alias_scc_partitions): Update postorder number.
5593 2017-10-11  Martin Liska  <mliska@suse.cz>
5595         PR sanitizer/82490
5596         * opts.c (parse_no_sanitize_attribute): Do not use error_value
5597         variable.
5598         * opts.h (parse_no_sanitize_attribute): Remove last argument.
5600 2017-10-11  Martin Liska  <mliska@suse.cz>
5602         * print-rtl.c (print_insn): Move declaration of idbuf
5603         to same scope as name.
5605 2017-10-11  Martin Liska  <mliska@suse.cz>
5607         Revert r253637:
5609         PR sanitizer/82484
5610         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
5611         volatile arguments.
5613 2017-10-11  Martin Liska  <mliska@suse.cz>
5615         PR sanitizer/82484
5616         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
5617         volatile arguments.
5619 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
5621         * config.gcc (default_gnu_indirect_function): Default to yes for
5622         arm*-*-linux* with glibc.
5624 2017-10-11  Richard Biener  <rguenther@suse.de>
5626         * tree-scalar-evolution.c (get_scalar_evolution): Handle
5627         default-defs and types we do not want to analyze.
5628         (interpret_loop_phi): Replace unreachable code with an assert.
5629         (compute_scalar_evolution_in_loop): Remove and inline ...
5630         (analyze_scalar_evolution_1): ... here, replacing condition with
5631         what makes the intent clearer.  Remove handling of cases
5632         get_scalar_evolution now handles.
5634 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
5636         PR rtl-optimization/81434
5637         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
5638         comment for main loop.  In sched_group_found if, also add checks for
5639         pass and min_cost_group.
5641 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
5643         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
5644         (rs6000_insn_cost): New function.
5645         * config/rs6000/rs6000.md (cost): New attribute.
5647 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
5648             H.J. Lu  <hongjiu.lu@intel.com>
5650         PR target/79565
5651         PR target/82483
5652         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
5653         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
5654         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
5655         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
5656         to OPTION_MASK_ISA_AVX512VL - builtins that have both
5657         OPTION_MASK_ISA_MMX and some other bit set require both
5658         mmx and the ISAs without the mmx bit.
5659         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
5660         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
5661         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
5662         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
5663         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
5664         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
5665         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
5666         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
5667         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
5668         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
5669         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
5670         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
5671         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
5672         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
5673         Add OPTION_MASK_ISA_MMX.
5675 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
5677         * config.gcc (armv7*-*-freebsd*): New target.
5678         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
5680 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
5682         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
5683         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
5684         spot in the file.
5686 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
5688         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
5689         a template parameter.
5690         (WIDE_INT_REF_FOR): Update accordingly.
5691         * tree.h (wi::int_traits <const_tree>): Delete.
5692         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
5693         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
5694         (wi::tree_to_wide_ref): New typedef.
5695         (wi::to_wide): New function.
5696         * calls.c (get_size_range): Use wi::to_wide when operating on
5697         trees as wide_ints.
5698         * cgraph.c (cgraph_node::create_thunk): Likewise.
5699         * config/i386/i386.c (ix86_data_alignment): Likewise.
5700         (ix86_local_alignment): Likewise.
5701         * dbxout.c (stabstr_O): Likewise.
5702         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
5703         * expr.c (const_vector_from_tree): Likewise.
5704         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
5705         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
5706         (fold_negate_expr_1, int_const_binop_1, const_binop)
5707         (fold_convert_const_int_from_real, optimize_bit_field_compare)
5708         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
5709         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
5710         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
5711         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
5712         (fold_not_const, round_up_loc): Likewise.
5713         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
5714         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
5715         (alloca_call_type): Likewise.
5716         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
5717         * godump.c (go_output_typedef): Likewise.
5718         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
5719         * internal-fn.c (get_min_precision): Likewise.
5720         * ipa-cp.c (ipcp_store_vr_results): Likewise.
5721         * ipa-polymorphic-call.c
5722         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
5723         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
5724         (ipa_modify_call_arguments): Likewise.
5725         * match.pd: Likewise.
5726         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
5727         * print-tree.c (print_node_brief, print_node): Likewise.
5728         * stmt.c (expand_case): Likewise.
5729         * stor-layout.c (layout_type): Likewise.
5730         * tree-affine.c (tree_to_aff_combination): Likewise.
5731         * tree-cfg.c (group_case_labels_stmt): Likewise.
5732         * tree-data-ref.c (dr_analyze_indices): Likewise.
5733         (prune_runtime_alias_test_list): Likewise.
5734         * tree-dump.c (dequeue_and_dump): Likewise.
5735         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
5736         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
5737         * tree-pretty-print.c (dump_generic_node): Likewise.
5738         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
5739         (simple_iv_with_niters): Likewise.
5740         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
5741         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
5742         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
5743         * tree-ssa-loop-niter.c (split_to_var_and_offset)
5744         (refine_value_range_using_guard, number_of_iterations_ne_max)
5745         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
5746         (get_cst_init_from_scev, record_nonwrapping_iv)
5747         (scev_var_range_cant_overflow): Likewise.
5748         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
5749         * tree-ssa-pre.c (compute_avail): Likewise.
5750         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
5751         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
5752         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
5753         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
5754         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
5755         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
5756         (dump_case_nodes, try_switch_expansion): Likewise.
5757         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
5758         (vect_do_peeling): Likewise.
5759         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
5760         * tree-vect-stmts.c (vectorizable_load): Likewise.
5761         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
5762         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
5763         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
5764         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
5765         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
5766         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
5767         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
5768         (evrp_dom_walker::before_dom_children): Likewise.
5769         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
5770         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
5771         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
5772         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
5773         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
5774         (get_range_pos_neg): Likewise.
5775         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
5776         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
5777         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
5778         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
5779         * config/avr/avr.c (avr_fold_builtin): Likewise.
5780         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
5781         * config/msp430/msp430.c (msp430_attr): Likewise.
5782         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
5783         * config/powerpcspe/powerpcspe-c.c
5784         (altivec_resolve_overloaded_builtin): Likewise.
5785         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
5786         (rs6000_expand_ternop_builtin): Likewise.
5787         * config/rs6000/rs6000-c.c
5788         (altivec_resolve_overloaded_builtin): Likewise.
5789         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
5790         (rs6000_expand_ternop_builtin): Likewise.
5791         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
5793 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
5795         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
5796         when copying loop nest with only one inner loop.
5798 2017-10-10  Richard Biener  <rguenther@suse.de>
5800         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
5801         blocks if SCEV is active.
5802         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
5803         dead code.
5804         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
5805         (scev_initialize): Assert we are not yet initialized.
5807 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
5809         * tree-loop-distribution.c (generate_loops_for_partition): Remove
5810         inner loop's exit stmt by making it always exit the loop, otherwise
5811         we would generate an infinite empty loop.
5813 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
5815         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
5816         renaming variables in new preheader if it's deleted.
5818 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
5820         * tree-loop-distribution.c (struct partition): Remove unused field
5821         loops of the structure.
5822         (partition_alloc, partition_free): Ditto.
5823         (build_rdg_partition_for_vertex): Ditto.
5825 2017-10-09  Jeff Law  <law@redhat.com>
5827         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
5828         return type to match prototype and documentation.
5830 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
5832         * config/rs6000/rs6000.c (processor_costs): Move to ...
5833         * config/rs6000/rs6000.h: ... here.
5834         (rs6000_cost): Declare.
5836 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
5838         * except.c (setjmp_fn): New global variable.
5839         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
5840         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
5841         if DONT_USE_BUILTIN_SETJMP is defined.
5843 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
5845         * target.def (insn_cost): New hook.
5846         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
5847         * doc/tm.texi: Regenerate.
5848         * rtlanal.c (insn_cost): Use the new hook.
5850 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
5852         * combine.c (combine_validate_cost): Compute the new insn_cost,
5853         not just pattern_cost.
5854         (try_combine): Adjust comment.
5856 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
5858         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
5859         insn_cost.
5860         * combine.c (uid_insn_cost): Adjust comment.
5861         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
5862         of insn_rtx_cost
5863         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
5864         * dse.c (find_shift_sequence): Ditto.
5865         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
5866         (bb_valid_for_noce_process_p): Use pattern_cost.
5867         * rtl.h (insn_rtx_cost): Delete.
5868         (pattern_cost): New prototype.
5869         (insn_cost): New prototype.
5870         * rtlanal.c (insn_rtx_cost): Rename to...
5871         (pattern_cost): ... this.
5872         (insn_cost): New.
5874 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
5876         * config/i386/i386.md (*jcc_2): Remove insn pattern.
5877         (*jcc<mode>_0_r_i387): Ditto.
5878         (*jccxf_r_i387): Ditto.
5879         (*jcc<mode>_r_i387): Ditto.
5880         (*jccu<mode>_r_i387): Ditto.
5881         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
5882         (*jcc): Rename from *jcc_1.
5884 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5886         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
5887         deferred rescans after the lvx/stvx recombination pre-pass.
5889 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
5891         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
5892         memory operation instruction support.
5893         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
5894         (rs6000-ibm-aix[789]*): Likewise.
5895         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
5896         Document new functions.
5898 2017-10-09  Richard Biener  <rguenther@suse.de>
5900         PR tree-optimization/82397
5901         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
5902         equality only for semantically equal trees.
5904 2017-10-09  Richard Biener  <rguenther@suse.de>
5906         PR tree-optimization/82449
5907         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
5908         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
5909         allow constant addresses.
5910         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
5911         are linear.
5913 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5915         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
5916         flags.
5918 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5920         PR target/82463
5921         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
5922         definitions.
5924 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5926         PR target/82465
5927         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
5929 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
5931         PR target/82464
5932         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
5933         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
5935 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
5937         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
5938         (WI_BINARY_PREDICATE_RESULT): Likewise.
5939         (wi::binary_traits::operator_result): New type.
5940         (wi::binary_traits::predicate_result): Likewise.
5941         (generic_wide_int::operator~, unary generic_wide_int::operator-)
5942         (generic_wide_int::operator==, generic_wide_int::operator!=)
5943         (generic_wide_int::operator&, generic_wide_int::and_not)
5944         (generic_wide_int::operator|, generic_wide_int::or_not)
5945         (generic_wide_int::operator^, generic_wide_int::operator+
5946         (binary generic_wide_int::operator-, generic_wide_int::operator*):
5947         Delete.
5948         (operator~, unary operator-, operator==, operator!=, operator&)
5949         (operator|, operator^, operator+, binary operator-, operator*): New
5950         functions.
5951         * expr.c (get_inner_reference): Use wi::bit_and_not.
5952         * fold-const.c (fold_binary_loc): Likewise.
5953         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
5954         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
5955         (bit_value_binop): Likewise.
5956         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
5957         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
5958         (extract_range_from_binary_expr_1): Likewise.
5959         (masked_increment): Likewise.
5960         (simplify_bit_ops_using_ranges): Likewise.
5962 2017-10-09  Martin Jambor  <mjambor@suse.cz>
5964         PR hsa/82416
5965         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
5966         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
5967         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
5968         COMPLEX types.
5969         (hsa_fixup_mov_insn_type): New function.
5970         (hsa_op_with_type::get_in_type): Use it.
5971         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
5972         immediates in an assert.
5973         (hsa_op_with_type::extend_int_to_32bit): New method.
5974         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
5975         types.  Convert to dest type if necessary.
5976         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
5977         (reg_for_gimple_ssa): Pass false as min32int to
5978         hsa_type_for_scalar_tree_type.
5979         (gen_hsa_addr): Fixup type when creating addresable temporary.
5980         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
5981         (gen_hsa_unary_operation): Extend operands and convert to dest type if
5982         necessary.  Call hsa_fixup_mov_insn_type.
5983         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
5984         extend operands and convert to dest type if necessary.
5985         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
5986         to dest type if necessary.
5987         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
5988         if conversion nt necessary and size matches.
5989         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
5990         to dest type if necessary.
5991         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
5992         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
5993         necessary.
5994         (gen_hsa_clrsb): Likewise.
5995         (gen_hsa_ffs): Likewise.
5996         (gen_hsa_divmod): Extend operands and convert to dest type if
5997         necessary.
5998         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
6000 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
6002         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
6003         Remove empty default arguments.  Use a brace block as output
6004         statement.
6005         (conditional return): Ditto.
6006         (jump): Ditto.
6007         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
6008         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
6009         Ditto.
6010         (group_ending_nop): Ditto.
6011         (doloop_end): Ditto.
6012         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
6013         (splitters for those): Ditto.
6015 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
6017         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
6018         a conditional jump (and the compare for it) so that pc_rtx is the
6019         last operand.
6020         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
6021         for the deleted and renamed ctr<mode>_internal[234] patterns.
6022         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
6023         Delete second conditional return pattern.
6024         (ctr<mode>_internal2): Delete this second bdnz pattern.
6025         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
6026         (ctr<mode>_internal4): Delete this second bdz pattern.
6028 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
6030         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
6031         (always_initialized_rtx_for_ssa_name_p): New predicate.
6032         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
6033         (finish_out_of_ssa): Free new field of SA.
6034         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
6035         * tree-ssa-coalesce.c: Include tree-ssa.h.
6036         (get_parm_default_def_partitions): Remove extern keyword.
6037         (get_undefined_value_partitions): New function.
6038         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
6039         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
6040         uninitialized bits.
6041         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
6043 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
6045         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
6047 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
6049         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
6050         for targets that preffer 128bit.
6052 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
6054         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
6056 2017-10-08  Olivier Hainque  <hainque@adacore.com>
6058         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
6059         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
6060         prevent DSE.
6061         (thumb_set_return_address): Likewise.
6063 2017-10-08  Olivier Hainque  <hainque@adacore.com>
6065         * common/config/arm/arm-common.c (arm_except_unwind_info):
6066         Handle DWARF2_UNWIND_INFO.
6068 2017-10-07  Michael Collison <michael.collison@arm.com>
6070         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
6071         New pattern.
6073 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
6075         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
6076         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
6077         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
6078         defined, force the creation of a new block for a dispatch label.
6080 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
6082         * invoke.texi (Wsuggest-attribute=cold): Document.
6083         * common.opt (Wsuggest-attribute=cold): New
6084         * ipa-pure-const.c (warn_function_cold): New function.
6085         * predict.c (compute_function_frequency): Use it.
6086         * predict.h (warn_function_cold): Declare.
6088 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
6090         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
6091         Update profile.
6093 2017-10-06  Martin Liska  <mliska@suse.cz>
6095         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
6096         keyword for member functions.
6097         (struct sanopt_tree_couple): New struct.
6098         (struct sanopt_tree_couple_hash): New function.
6099         (struct sanopt_ctx): Add new hash_map.
6100         (has_dominating_ubsan_ptr_check): New function.
6101         (record_ubsan_ptr_check_stmt): Likewise.
6102         (maybe_optimize_ubsan_ptr_ifn): Likewise.
6103         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
6104         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
6106 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
6108         PR target/82440
6109         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
6110         aarch64_simd_valid_immediate on CONST_VECTORs.
6111         (aarch64_reg_or_bic_imm): Likewise.
6113 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
6115         PR rtl-optimization/82396
6116         * haifa-sched.c (ready_sort_real): Disable qsort checking.
6118 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
6120         * graphite-dependences.c (scop_get_reads): Move code to...
6121         (scop_get_must_writes): Move code to...
6122         (scop_get_may_writes): Move code to...
6123         (scop_get_reads_and_writes): ... here.
6124         (scop_get_dependences): Call scop_get_reads_and_writes.
6126 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
6128         PR tree-optimization/82434
6129         * fold-const.h (can_native_encode_type_p,
6130         can_native_encode_string_p): Remove.
6131         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
6132         don't encode anything, just return what would be otherwise returned.
6133         (native_encode_fixed, native_encode_complex, native_encode_vector):
6134         Likewise.
6135         (native_encode_string): Likewise.  Inline by hand
6136         can_native_encode_string_p.
6137         (can_native_encode_type_p): Remove.
6138         (can_native_encode_string_p): Remove.
6139         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
6140         STRING_CSTs using can_native_encode_string_p, test all
6141         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
6142         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
6143         argument from native_encode_expr.
6144         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
6145         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
6146         but just 2.
6148 2017-10-06  Richard Biener  <rguenther@suse.de>
6150         PR tree-optimization/82397
6151         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
6152         operand_equal_p but rely on data_ref_compare_tree for detecting
6153         equalities.
6154         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
6155         to match up with dr_group_sort_cmp.
6157 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6159         PR target/82322
6160         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
6161         builtin.
6162         * config/s390/s390-builtin-types.def: Regenerate.
6164 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6166         PR target/82317
6167         * config/s390/s390-builtin-types.def: Regenerate.
6168         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
6169         Change flag from B_VXE to B_VX.
6170         (s390_vec_min_dbl): Remove B_VXE flag.
6172 2017-10-06  Richard Biener  <rguenther@suse.de>
6174         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
6175         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
6176         translate_isl_ast_to_gimple::is_valid_rename,
6177         translate_isl_ast_to_gimple::get_rename,
6178         translate_isl_ast_to_gimple::get_def_bb_for_const,
6179         translate_isl_ast_to_gimple::get_new_name,
6180         translate_isl_ast_to_gimple::collect_all_ssa_names,
6181         translate_isl_ast_to_gimple::copy_loop_phi_args,
6182         translate_isl_ast_to_gimple::collect_all_ssa_names,
6183         translate_isl_ast_to_gimple::copy_loop_phi_args,
6184         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
6185         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
6186         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
6187         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
6188         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
6189         translate_isl_ast_to_gimple::copy_cond_phi_args,
6190         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
6191         translate_isl_ast_to_gimple::edge_for_new_close_phis,
6192         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
6193         translate_isl_ast_to_gimple::rename_uses,
6194         translate_isl_ast_to_gimple::rename_all_uses): Remove.
6195         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
6196         (set_rename_for_each_def): Likewise.
6197         (graphite_copy_stmts_from_block): Handle debug stmt resetting
6198         here.  Handle rewriting SCEV analyzable uses here.
6199         (copy_bb_and_scalar_dependences): Generate code for PHI
6200         copy-in/outs.
6201         (graphite_regenerate_ast_isl): Adjust.
6202         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
6203         (add_write, add_read): New functions.
6204         (build_cross_bb_scalars_def): Use it and simplify.
6205         (build_cross_bb_scalars_use): Likewise.
6206         (graphite_find_cross_bb_scalar_vars): Inline into...
6207         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
6208         simulating out-of-SSA.  Compute liveout and add dependencies.
6209         (build_scops): Force an empty entry block.
6210         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
6211         members.
6212         (sese_build_liveouts): Declare.
6213         (sese_trivially_empty_bb_p): Likewise.
6214         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
6215         compute liveout and debug_liveout.
6216         (sese_bad_liveouts_use): Remove.
6217         (sese_reset_debug_liveouts_bb): Likewise.
6218         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
6219         (sese_build_liveouts): Build liveout and debug_liveout and store
6220         it in region.
6221         (new_sese_info): Adjust.
6222         (free_sese_info): Likewise.
6223         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
6224         do not build liveout here.
6225         (move_sese_in_condition): Adjust region entry.
6226         (scev_analyzable_p): Match up with chrec_apply requirements.
6227         (sese_trivially_empty_bb_p): New.
6228         * tree-into-ssa.c (get_reaching_def): Properly support generating
6229         default-defs for incremental rewrite of anonymous names.
6231 2017-10-06  Richard Biener  <rguenther@suse.de>
6233         * graphite-sese-to-poly.c (extract_affine): For casts increasing
6234         precision do not perform modulo reduction.
6236 2017-10-06  Richard Biener  <rguenther@suse.de>
6238         PR tree-optimization/82436
6239         * tree-vect-slp.c (vect_supported_load_permutation_p): More
6240         conservatively choose the vectorization factor when checking
6241         whether we can perform the required load permutation.
6242         (vect_transform_slp_perm_load): Assert when we may not fail.
6244 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
6246         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
6247         message for incompatible -msdata=* and -mcall-* options.
6249 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
6251         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
6252         rate for post-reload scheduling.
6254 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
6256         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
6258 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
6260         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
6261         to improve monte carlo in scimark.
6263 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
6265         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
6266         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
6267         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
6268         pentium4_cost, nocona_cost): Set reassociation width to 1.
6269         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
6270         width to 2 for fp operations and 1 otherwise.
6271         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
6272         for int and fp.
6273         (atom_cost): Set reassociation width to 2.
6274         (slm_cost, generic_cost): Set fp reassociation width
6275         to 2 and 1 otherwise.
6276         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
6277         (core_cost): Set fp reassociation width to 4 and vector to 2.
6278         (ix86_reassociation_width): Rewrite using cost table; special case
6279         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
6280         and TARGET_AVX128_OPTIMAL.
6281         * config/i386/i386.h (processor_costs): Add
6282         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
6283         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
6284         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
6285         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
6286         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
6287         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
6289 2017-10-05  Nathan Sidwell  <nathan@acm.org>
6291         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
6293 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
6295         * config/arm/arm.c (arm_test_fpu_data): New.
6296         (arm_run_selftests): Call arm_test_fpu_data.
6298 2017-10-04  Nathan Sidwell  <nathan@acm.org>
6300         * toplev.c (toplev::main): Remove excess parens on pretty_printer
6301         decl.
6302         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
6304 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
6306         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
6307         check type for aarch64_simd_valid_immediate.
6308         (aarch64_output_simd_mov_immediate): Update prototype.
6309         (aarch64_simd_valid_immediate): Update prototype.
6310         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
6311         support for ORR-immediate.
6312         (and<mode>3): modified pattern to add support for BIC-immediate.
6313         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
6314         now checks for valid immediate for BIC and ORR based on new enum
6315         argument.
6316         (aarch64_output_simd_mov_immediate): Function now used to output
6317         BIC/ORR imm as well based on new enum argument.
6318         * config/aarch64/constraints.md (Do): New vector immediate constraint.
6319         (Db) : Likewise.
6320         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
6321         (aarch64_reg_or_bic_imm): Likewise.
6323 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6325         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
6326         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
6328 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
6330         Revert r253399:
6332         PR rtl-optimization/82396
6333         * haifa-sched.c (autopref_multipass_init): Simplify
6334         initialization.
6335         (autopref_rank_data): Simplify sort order.
6336         * sched-int.h (autopref_multipass_data_): Remove
6337         multi_mem_insn_p, min_offset and max_offset.
6339 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6341         * doc/sourcebuild.texi: Document vect_peeling_profitable.
6343 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6345         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
6346         vect_doubleint_cvt.
6348 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6350         * doc/sourcebuild.texi: Document vect_long_mult.
6352 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
6354         PR tree-optimization/82413
6355         * fold-const.c (build_range_check): Use widest_int when comparing
6356         the maximum ETYPE value with HIGH.
6358 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
6360         PR rtl-optimization/82396
6361         * haifa-sched.c (autopref_multipass_init): Simplify
6362         initialization.
6363         (autopref_rank_data): Simplify sort order.
6364         * sched-int.h (autopref_multipass_data_): Remove
6365         multi_mem_insn_p, min_offset and max_offset.
6367 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
6369         PR tree-optimization/82381
6370         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
6371         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
6372         is not.
6374         PR tree-optimization/82374
6375         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
6376         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
6377         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
6378         current_function_decl to the new decl.
6380 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
6382         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
6383         helper macro for IEEE float128 hardware built-in functions.
6384         (SQRTF128_ODD): Add built-in functions with the round-to-odd
6385         semantics.
6386         (TRUNCF128_ODD): Likewise.
6387         (ADDF128_ODD): Likewise.
6388         (SUBF128_ODD): Likewise.
6389         (MULF128_ODD): Likewise.
6390         (DIVF128_ODD): Likewise.
6391         (FMAF128_ODD): Likewise.
6392         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
6393         UNSPEC_TRUNC_ROUND_TO_ODD.
6394         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
6395         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
6396         floating point round to odd instructions.
6397         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
6398         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
6399         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
6400         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
6401         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
6402         (trunc<mode>sf2_hw): Change the truncate with round to odd
6403         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
6404         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
6405         to odd hardware instructions.
6406         (sub<mode>3_odd): Likewise.
6407         (mul<mode>3_odd): Likewise.
6408         (div<mode>3_odd): Likewise.
6409         (sqrt<mode>2_odd): Likewise.
6410         (fma<mode>4_odd): Likewise.
6411         (fms<mode>4_odd): Likewise.
6412         (nfma<mode>4_odd): Likewise.
6413         (nfms<mode>4_odd): Likewise.
6414         (trunc<mode>df2_odd): Change the truncate with round to odd
6415         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
6416         function.
6417         * doc/extend.texi (PowerPC built-in functions): Update documentation
6418         for existing IEEE float128-bit built-in functions.  Add built-in
6419         functions that generate the IEEE 128-bit floating point round to
6420         odd instructions.
6422 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
6424         PR rtl-optimization/77729
6425         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
6426         to (X&(C1&~C2))|C2 transformations.
6428 2017-10-03  Martin Jambor  <mjambor@suse.cz>
6430         PR tree-optimization/82363
6431         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
6432         mismatch, mark lacc written regardless of racc.
6434 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
6436         PR tree-optimization/82381
6437         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
6438         stmt_to_insert nor wheather SSA_NAMEs are default defs.
6439         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
6440         fallthrough into reassoc_stmt_dominates_stmt_p.
6442         PR target/82386
6443         * combine.c (combine_instructions): Don't combine in unreachable
6444         basic blocks.
6446 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
6448         PR target/80210
6449         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
6450         function to not use the have_cpu variable.  Do not set cpu_index,
6451         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
6452         or the default cpu.
6453         (rs6000_valid_attribute_p): Remove duplicate initializations of
6454         old_optimize and func_optimize.
6455         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
6456         (rs6000_activate_target_options): Make global.
6457         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
6458         prototype.
6460 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
6462         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
6463         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
6464         Set *poffset to 0 and *psize and *pmax_size to -1 if
6465         *poffset + *psize overflows in HOST_WIDE_INT.
6467         PR tree-optimization/82387
6468         PR tree-optimization/82388
6469         PR tree-optimization/82389
6470         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
6471         instead of live_bytes non-NULL.
6473 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
6475         PR target/41076
6476         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
6477         alternative.
6479 2017-10-02  Richard Biener  <rguenther@suse.de>
6481         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
6482         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
6483         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
6485 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
6487         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
6488         requested precision matches the type's.
6489         * calls.c (alloc_max_size): Calculate the new candidate size as
6490         a widest_int and use wi::to_widest when comparing it with the
6491         current candidate size.
6492         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
6493         zero rather than integer_zero_node.
6494         * match.pd: Check for a no-op conversion before using wi::add
6495         rather than after.  Use tree_to_uhwi when summing small shift
6496         counts into an unsigned int.
6498 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
6499             Alan Hayward  <alan.hayward@arm.com>
6500             David Sherwood  <david.sherwood@arm.com>
6502         PR target/71307
6503         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
6504         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
6505         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
6506         POINTER_AND_FP_REGS.
6508 2017-10-02  Richard Biener  <rguenther@suse.de>
6510         PR tree-optimization/82355
6511         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
6512         a mapping for the enclosing loop but avoid generating one for
6513         the loop tree root.
6514         (copy_bb_and_scalar_dependences): Remove premature codegen
6515         error on PHIs in blocks duplicated into multiple places.
6516         * graphite-scop-detection.c
6517         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
6518         in the region use it as loop and nest to analyze the DR in.
6519         (try_generate_gimple_bb): Likewise.
6520         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
6521         (add_loop_constraints): For blocks in a loop not in the region
6522         create a dimension with a single iteration.
6523         * sese.h (gbb_loop_at_index): Remove assert.
6525 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
6527         * omp-expand.c (adjust_context_scope): New function.
6528         (expand_parallel_call): Call adjust_context_scope.
6530 2017-10-01  Jeff Law  <law@redhat.com>
6532         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
6533         dom_opt_dom_walker class with direct access to private members.
6534         Add comments.  Call test_for_singularity.
6535         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
6536         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
6537         m_dummy_cond anymore.
6538         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
6539         class ctor.
6540         (pass_dominator:execute): Build the dummy_cond here and pass it
6541         to the dom_opt_dom_walker ctor.
6542         (test_for_singularity): New function.
6544 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
6545             Maya Rashish  <coypu@sdf.org>
6547         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
6548         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
6549         (alpha*-*-netbsd*) Use nbsd_tm_file.
6550         (arm*-*-netbsdelf*) Likewise.
6551         (i[34567]86-*-netbsdelf*) Likewise.
6552         (x86_64-*-netbsd*) Likewise.
6553         (mips*-*-netbsd*) Likewise.
6554         (powerpc-*-netbsd*) Likewise.
6555         (sh*-*-netbsd*) Likewise.
6556         (sparc-*-netbsdelf*) Likewise.
6557         (sparc64-*-netbsd*) Likewise.
6558         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
6559         to tm_defines.
6560         (vax-*-netbsdelf*) Likewise.
6561         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
6562         (UINT_FAST8_TYPE) Likewise.
6563         (INT_FAST16_TYPE) Check CHAR_FAST16.
6564         (UINT_FAST16_TYPE) Likewise.
6566 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
6568         PR target/82361
6569         * config/i386/i386.md
6570         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
6571         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
6572         *divmodsi4_zext_2): New define_insn_and_split.
6573         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
6574         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
6575         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
6576         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
6577         New define_insn_and_split.
6578         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
6579         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
6580         operands[1] having DImode when mode is SImode.
6582         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
6583         always SImode for DIV and MOD in REG_EQUAL notes.
6585 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
6587         PR middle-end/82319
6588         * match.pd: Fix handling of NaNs in pattern.
6590 2017-09-29  Jeff Law  <law@redhat.com>
6592         * sbitmap.c (bitmap_bit_in_range_p): New function.
6593         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
6594         * tree-ssa-dse.c (live_bytes_read): New function.
6595         (dse_classify_store): Ignore reads of dead bytes.
6597         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
6598         typos and whitespace errors.
6599         * config/i386/predicates.md (address_no_seg_operand): Likewise.
6600         * config/s390/s390.c (s390_emit_prologue): Likewise.
6602 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
6604         PR target/81481
6605         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
6606         with a symbol for LRA.
6608 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
6610         PR rtl-optimization/82338
6611         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
6613 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
6615         * genmodes.c (calc_wider_mode): Suppress qsort macro.
6616         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
6617         (qsort_chk): Declare.
6618         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
6619         (qsort_chk): New function.
6621 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6623         PR tree-optimization/82337
6624         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
6625         phi definition if the PHI result appears in an abnormal PHI.
6626         (find_basis_for_base_expr): Don't record a basis if the LHS of the
6627         basis appears in an abnormal PHI.
6629 2017-09-29  Richard Biener  <rguenther@suse.de>
6631         * graphite-isl-ast-to-gimple.c
6632         (translate_isl_ast_to_gimple::set_codegen_error): New function.
6633         (binary_op_to_tree): Use it.
6634         (get_rename_from_scev): Likewise.
6635         (copy_loop_phi_nodes): Likewise.
6636         (copy_bb_and_scalar_dependences): Likewise.
6637         (translate_pending_phi_nodes): Likewise.
6639 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
6641         PR target/82339
6642         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
6643         for movabsq $(i32 << shift), r64.
6645 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
6647         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
6648         index when encoding %esp as %rsp to avoid 0x67 prefix.
6650 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
6652         * config/i386/i386.md (*movsf_internal, *movdf_internal):
6653         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
6655 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6657         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
6658         Extensions with more than 16 double VFP registers.
6659         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
6660         to_clear_mask and all code related to it.  Replace the remaining
6661         entry by a sbitmap and adapt code accordingly.
6663 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
6665         * brig-builtins.def: Change pure attributes to const.
6667 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
6669         * config.gcc (default_gnu_indirect_function): Default to yes for
6670         sparc*-*-linux* with glibc.
6672 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
6674         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
6675         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
6676         when creating .init_array and .fini_array sections with priority
6677         specified.
6679 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
6681         PR target/71727
6682         * config/aarch64/aarch64.c
6683         (aarch64_builtin_support_vector_misalignment): Always return false
6684         when misalignment is unknown.
6686 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6688         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
6689         this function to return false if the definition used by the swap
6690         instruction is artificial, or if the memory address from which the
6691         constant value is loaded is not represented by a base address held
6692         in a register or if the base address register is a frame or stack
6693         pointer.  Additionally, return false if the base address of the
6694         loaded constant is a SYMBOL_REF but is not considered to be a
6695         constant.
6696         (replace_swapped_load_constant): New function.
6697         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
6698         loaded constant vector with a load of a swapped constant vector.
6700 2017-09-27  Carl Love  <cel@us.ibm.com>
6702         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
6703         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
6704         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
6705         fctiw instruction.
6707 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
6709         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
6710         first, always call autopref_rank_data otherwise.
6712 2017-09-27  Richard Biener  <rguenther@suse.de>
6714         * graphite-scop-detection.c (find_scop_parameters): Move
6715         loop bound handling ...
6716         (gather_bbs::before_dom_children): ... here, avoiding the need
6717         to build scop_info->loop_nest.
6718         (record_loop_in_sese): Remove.
6719         * sese.h (sese_info_t::loop_nest): Remove.
6720         * sese.c (new_sese_info): Do not allocate loop_nest.
6721         (free_sese_info): Do not free loop_nest.
6723 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
6725         PR c++/82159
6726         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
6727         lhs from calls if the lhs has addressable type.
6729 2017-09-27  Richard Biener  <rguenther@suse.de>
6731         * graphite.h (scop::max_alias_set): New member.
6732         * graphite-scop-detection.c: Remove references to non-existing
6733         --param in comments.
6734         (build_alias_sets): Record the maximum alias set used for drs.
6735         (build_scops): Support zero as unlimited for
6736         --param graphite-max-arrays-per-scop.
6737         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
6738         and inline into ...
6739         (build_poly_sr_1): ... here.  Compute alias set based on the
6740         maximum alias set used for drs rather than
6741         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
6743 2017-09-27  Richard Biener  <rguenther@suse.de>
6745         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
6746         --param loop-block-tile-size=0 to disable tiling.
6748 2017-09-27  Richard Biener  <rguenther@suse.de>
6750         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
6751         (graphite-max-nb-scop-params): Document special value zero.
6752         * domwalk.h (dom_walker::STOP): New symbolical constant.
6753         (dom_walker::dom_walker): Add optional parameter for bb to
6754         RPO mapping.
6755         (dom_walker::~dom_walker): Declare.
6756         (dom_walker::before_dom_children): Document STOP return value.
6757         (dom_walker::m_user_bb_to_rpo): New member.
6758         (dom_walker::m_bb_to_rpo): Likewise.
6759         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
6760         mapping here if not provided by the user.
6761         (dom_walker::~dom_walker): Free bb to RPO mapping if not
6762         provided by the user.
6763         (dom_walker::STOP): Define.
6764         (dom_walker::walk): Do not compute bb to RPO mapping here.
6765         Support STOP return value from before_dom_children to stop
6766         walking.
6767         * graphite-optimize-isl.c (optimize_isl): If the schedule
6768         is the same still generate code if -fgraphite-identity
6769         or -floop-parallelize-all are given.
6770         * graphite-scop-detection.c: Include cfganal.h.
6771         (gather_bbs::gather_bbs): Get and pass through bb to RPO
6772         mapping.
6773         (gather_bbs::before_dom_children): Return STOP for BBs
6774         not in the region.
6775         (build_scops): Compute bb to RPO mapping and pass it to
6776         the domwalk.  Treat --param graphite-max-nb-scop-params=0
6777         as not limiting the number of params.
6778         * graphite.c (graphite_initialize): Remove limit on the
6779         number of basic-blocks in a function.
6780         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
6781         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
6782         default value of 10.
6784 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
6786         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
6787         Adjust code to eliminate needing to do the shift right 32-bits
6788         operation after XSCVDPSPN.
6790 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6792         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
6793         ((X / Y) != 0 -> X >= Y): Likewise.
6795 2017-09-26  Carl Love  <cel@us.ibm.com>
6797         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
6798         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
6799         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
6800         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
6801         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
6802         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
6803         definitions and overloading.
6804         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
6805         statement for P9V_BUILTIN_XST_LEN_R.
6806         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
6807         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
6808         define_expand and define_insn for the instructions and builtins.
6809         * doc/extend.texi: Update the built-in documentation file for the new
6810         built-in functions.
6811         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
6812         define_insn for the instructions
6814 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
6816         PR target/39570
6817         * gcc/config/netbsd-protos.h: New file.
6818         * gcc/config/netbsd.c: New file.
6819         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
6820         * gcc/config/t-netbsd: New file.
6821         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
6822         (tmake_file) Add t-netbsd.
6823         (extra_objs) Add netbsd.o.
6825 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
6827         PR fortran/82143
6828         PR fortran/82324
6829         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
6831 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
6833         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
6834         sign extension from a vector register to a GPR by doing a 32-bit
6835         direct move and then an EXTSW.
6836         (extendsi<mode>2 splitter): Likewise.
6837         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
6838         right or vector extract after doing XSCVDPSPN.  Use
6839         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
6840         the GPRs.
6841         (movdi_from_sf_zero_ext): Likewise.
6842         (reload_gpr_from_vsxsf): Likewise.
6843         (p8_mfvsrd_4_disf): Delete, no longer used.
6844         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
6845         then needing to move the SFmode to a GPR to use the XSCVDPSP
6846         instruction instead of FRSP and XSCVDPSPN.
6847         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
6848         it is adjacent to the other XSCVSPDP insns.
6849         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
6850         SFmode to be in traditional Altivec registers.
6851         (vsx_xscvdpspn): Eliminate useless alternative constraint.
6852         (vsx_xscvspdpn): Likewise.
6853         (vsx_xscvspdpn_scalar): Likewise.
6855 2017-09-26  Martin Jambor  <mjambor@suse.cz>
6857         * tree-sra.c (compare_access_positions): Put integral types first,
6858         stabilize sorting of integral types, remove conditions putting
6859         non-full-precision integers last.
6860         (sort_and_splice_var_accesses): Disable scalarization if a
6861         non-integert would be represented by a non-full-precision integer.
6863 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
6865         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
6866         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
6867         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
6868         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
6869         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
6870         conditionals inside the function instead of around it.  Call
6871         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
6872         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
6874 2017-09-26  Richard Biener  <rguenther@suse.de>
6876         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
6877         fold in ...
6878         (scop_detection::build_scop_breadth): ... this.  Removed.
6879         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
6880         (scop_detection::harmful_stmt_in_bb): Likewise.
6881         (scop_detection::graphite_can_represent_stmt): Likewise.
6882         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
6883         (scop_detection::can_represent_loop): Remove recursion, fold in ...
6884         (scop_detection::can_represent_loop_1): ... this.  Removed.
6885         (scop_detection::harmful_loop_in_region): Simplify after inlining
6886         the above and remove more quadraticness.
6887         (build_scops): Adjust.
6888         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
6889         quadraticness.
6891 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
6893         PR target/82267
6894         * config/i386/i386.c (ix86_print_operand_address_as): Only test
6895         REGNO (base) == SP_REG if base is a REG.
6897         PR middle-end/35691
6898         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
6899         if it is different SSA_NAME.
6900         (optimize_range_tests_cmp_bitwise): New function.
6901         (optimize_range_tests): Call it.
6903 2017-09-26  Richard Biener  <rguenther@suse.de>
6905         PR tree-optimization/82321
6906         * graphite.c (canonicalize_loop_closed_ssa): Properly check
6907         for the def being inside the loop.
6909 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6911         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
6912         assembler output.
6913         * config/s390/s390-builtins.def: Fix constraint on op4.
6915 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6917         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
6918         independent expanders.
6919         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
6920         ("vec_ordered", "vec_unordered"): New expanders.
6922 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6924         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
6925         for SFmode.
6927 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6929         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
6930         vec_unpacks_lo_v16qi.
6931         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
6933 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6935         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
6936         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
6937         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
6939 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6941         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
6942         predicate.
6943         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
6944         and V16QI.
6945         ("*vec_slb<mode>"): New insn pattern.
6946         ("vec_shr_<mode>"): New expander.
6947         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
6948         and force the shift count operand to V16QImode.
6949         ("vec_srb<mode>"): Set shift count mode to V16QI.
6951 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6953         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
6954         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
6955         ("vec_widen_smult_hi_<mode>"): New expander definitions.
6957 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
6959         PR target/82175
6960         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
6962 2017-09-26  Richard Biener  <rguenther@suse.de>
6964         PR tree-optimization/82320
6965         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
6966         isn't a change.
6968 2017-09-25  Jeff Law  <law@redhat.com>
6970         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
6971         prototype for new argument.
6972         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
6973         mostly extracted from rs6000_emit_allocate_stack.
6974         (rs6000_emit_probe_stack_range_stack_clash): New function.
6975         (rs6000_emit_allocate_stack): Call
6976         rs6000_emit_probe_stack_range_stack_clash as needed.
6977         (rs6000_emit_probe_stack_range): Add additional argument
6978         to call to gen_probe_stack_range{si,di}.
6979         (output_probe_stack_range): New.
6980         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
6981         (output_probe_stack_range_stack_clash): New.
6982         (rs6000_emit_prologue): Emit notes into dump file as requested.
6983         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
6984         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
6985         Add additional operand and pass it to output_probe_stack_range.
6987 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
6989         PR tree-optimization/82163
6990         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
6991         (checking_verify_loop_closed_ssa): New parameter.
6992         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
6993         (check_loop_closed_ssa_stmt): Delete.
6994         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
6995         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
6996         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
6997         changed loops.
6999 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
7001         * brig-builtins.def: Treat HSAIL barrier builtins as
7002         setjmp/longjump style functions.
7004 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
7006         * target.def (constant_alignment): New hook.
7007         * defaults.h (CONSTANT_ALIGNMENT): Delete.
7008         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
7009         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
7010         * doc/tm.texi: Regenerate.
7011         * targhooks.h (default_constant_alignment): Declare.
7012         (constant_alignment_word_strings): Likewise.
7013         * targhooks.c (default_constant_alignment): New function.
7014         (constant_alignment_word_strings): Likewise.
7015         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
7016         instead of CONSTANT_ALIGNMENT.
7017         * varasm.c (align_variable, get_variable_align, build_constant_desc)
7018         (force_const_mem): Likewise.
7019         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
7020         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
7021         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
7022         (TARGET_CONSTANT_ALIGNMENT): Redefine.
7023         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
7024         definition.
7025         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
7026         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7027         constant_alignment_word_strings.
7028         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
7029         (CONSTANT_ALIGNMENT): Likewise.
7030         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
7031         (arm_constant_alignment): New function.
7032         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
7033         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7034         constant_alignment_word_strings.
7035         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
7036         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7037         constant_alignment_word_strings.
7038         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
7039         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
7040         (cris_constant_alignment): New function.
7041         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
7042         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
7043         (epiphany_constant_alignment): New function.
7044         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
7045         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7046         constant_alignment_word_strings.
7047         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
7048         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7049         constant_alignment_word_strings.
7050         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
7051         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7052         constant_alignment_word_strings.
7053         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
7054         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
7055         * config/i386/i386.c (ix86_constant_alignment): Make static.
7056         Use the same interface as the target hook.
7057         (TARGET_CONSTANT_ALIGNMENT): Redefine.
7058         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
7059         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7060         constant_alignment_word_strings.
7061         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
7062         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
7063         (TARGET_CONSTANT_ALIGNMENT): Redefine.
7064         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
7065         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7066         constant_alignment_word_strings.
7067         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
7068         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7069         constant_alignment_word_strings.
7070         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
7071         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7072         constant_alignment_word_strings.
7073         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
7074         * config/microblaze/microblaze.c (microblaze_constant_alignment):
7075         New function.
7076         (TARGET_CONSTANT_ALIGNMENT): Redefine.
7077         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
7078         * config/mips/mips.c (mips_constant_alignment): New function.
7079         (TARGET_CONSTANT_ALIGNMENT): Redefine.
7080         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
7081         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
7082         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
7083         (mmix_constant_alignment): Make static.  Use the same interface
7084         as the target hook.
7085         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
7086         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7087         constant_alignment_word_strings.
7088         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
7089         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7090         constant_alignment_word_strings.
7091         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
7092         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7093         constant_alignment_word_strings.
7094         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
7095         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
7096         (rs6000_constant_alignment): New function.
7097         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
7098         * config/riscv/riscv.c (riscv_constant_alignment): New function.
7099         (TARGET_CONSTANT_ALIGNMENT): Redefine.
7100         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
7101         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
7102         (rs6000_constant_alignment): New function.
7103         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
7104         * config/s390/s390.c (s390_constant_alignment): New function.
7105         (TARGET_CONSTANT_ALIGNMENT): Redefine.
7106         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
7107         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7108         constant_alignment_word_strings.
7109         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
7110         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
7111         (sparc_constant_alignment): New function.
7112         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
7113         * config/spu/spu.c (spu_constant_alignment): New function.
7114         (TARGET_CONSTANT_ALIGNMENT): Redefine.
7115         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
7116         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7117         constant_alignment_word_strings.
7118         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
7119         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7120         constant_alignment_word_strings.
7121         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
7122         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
7123         constant_alignment_word_strings.
7124         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
7125         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
7126         (visium_constant_alignment): New function.
7127         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
7128         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
7129         (xtensa_constant_alignment): New function.
7130         * system.h (CONSTANT_ALIGNMENT): Poison.
7132 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
7134         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
7135         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
7136         (rs6000_builtin_valid_without_lhs): New helper function.
7137         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7138         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
7140 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
7142         * target.h (vec_perm_indices): Use unsigned short rather than
7143         unsigned char.
7144         (auto_vec_perm_indices): Likewise.
7145         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
7146         Use unsigned int rather than unsigned char.
7147         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
7149 2017-09-25  Richard Biener  <rguenther@suse.de>
7151         * cfgloop.h (sort_sibling_loops): Declare.
7152         * cfgloop.c (sort_sibling_loops_cmp): New helper.
7153         (sort_sibling_loops): New function sorting the sibling loop list
7154         in RPO order.
7155         * graphite.c (graphite_transform_loops): Sort sibling loops.
7157 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
7159         * target.def (vec_perm_const_ok): Change sel parameter to
7160         vec_perm_indices.
7161         * optabs-query.c (can_vec_perm_p): Update accordingly.
7162         * doc/tm.texi: Regenerate.
7163         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
7164         auto_vec_perm_indices and remove separate nelt field.
7165         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
7166         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
7167         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
7168         (aarch64_expand_vec_perm_const): Update accordingly.
7169         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
7170         to vec_perm_indices.
7171         * config/arm/arm.c (expand_vec_perm_d): Change perm to
7172         auto_vec_perm_indices and remove separate nelt field.
7173         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
7174         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
7175         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
7176         accordingly.
7177         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
7178         to vec_perm_indices.
7179         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
7180         sel to vec_perm_indices.
7181         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
7182         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
7183         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
7184         Likewise.
7185         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
7186         Likewise.
7188 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
7190         PR debug/82155
7191         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
7192         on the FUNCTION_DECL function context if it has a DIE that is a
7193         declaration.
7195 2017-09-25  Richard Biener  <rguenther@suse.de>
7197         PR tree-optimization/82285
7198         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
7199         enumeral types.
7201 2017-09-25  Tom de Vries  <tom@codesourcery.com>
7203         PR target/80035
7204         PR target/81069
7205         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
7206         noreturn function.
7208 2017-09-25  Richard Biener  <rguenther@suse.de>
7210         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
7211         ISL errors other than isl_error_quota happen.  Dump if the
7212         schedule is the same.
7213         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
7214         errors instead of aborting inside ISL.
7216 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
7218         PR target/80556
7219         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
7220         of libgcc_eh for m64.
7221         * config/i386/darwin64.h: Likewise.
7223 2017-09-25  Richard Biener  <rguenther@suse.de>
7225         PR middle-end/82144
7226         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
7227         attribute for incomplete types nor twice for complete ones.
7229 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
7231         PR target/82267
7232         * config/i386/i386.c (ix86_print_operand_address_as): Encode
7233         %esp as %rsp to avoid 0x67 prefix if there is no index or base
7234         register.
7236 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
7238         PR bootstrap/82306
7239         * config/i386/i386.opt (mprefer-avx256): Use
7240         ix86_target_flags variable.
7241         * config/i386/i386.c (ix86_target_string): Move
7242         -mprefer-avx256 to flag2_opts.
7244 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
7246         PR middle-end/35691
7247         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
7248         and x != -1 | y != -1 into (x & y) != -1.
7250 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
7252         * config.gcc: Add new case statement to set
7253         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
7254         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
7255         s390x-*-linux* case statements.   Added aarch64 to the list of
7256         supported architectures.
7258 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
7260         PR tree-optimization/82289
7261         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
7262         STMT_VINFO_RELEVANT_P.
7264 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
7265             Alan Hayward  <alan.hayward@arm.com>
7266             David Sherwood  <david.sherwood@arm.com>
7268         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
7269         for VR_RANGE only; don't allow VR_ANTI_RANGE.
7270         (extract_range_from_binary_expr_1): Don't call
7271         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
7273 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
7274             Alan Hayward  <alan.hayward@arm.com>
7275             David Sherwood  <david.sherwood@arm.com>
7277         * target.def (preferred_vector_alignment): New hook.
7278         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
7279         hook.
7280         * doc/tm.texi: Regenerate.
7281         * targhooks.h (default_preferred_vector_alignment): Declare.
7282         * targhooks.c (default_preferred_vector_alignment): New function.
7283         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
7284         Expand commentary.
7285         (DR_TARGET_ALIGNMENT): New macro.
7286         (aligned_access_p): Update commentary.
7287         (vect_known_alignment_in_bytes): New function.
7288         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
7289         function.
7290         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
7291         Calculate the misalignment based on the target alignment rather than
7292         the vector size.
7293         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
7294         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
7295         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
7296         the target alignment, rather than masking the element misalignment
7297         with the number of elements in a vector.  Also use the target
7298         alignment when calculating the maximum number of peels.
7299         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
7300         instead of TYPE_ALIGN_UNIT.
7301         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
7302         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
7303         (vect_create_addr_base_for_vector_ref): Update call accordingly.
7304         (vect_create_data_ref_ptr): Likewise.
7305         (vect_setup_realignment): Realign by ANDing with
7306         -DR_TARGET_MISALIGNMENT.
7307         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
7308         the number of peels based on DR_TARGET_ALIGNMENT.
7309         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
7310         with the guaranteed alignment boundary when deciding whether
7311         overrun is OK.
7312         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
7313         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
7314         (ensure_base_align): Remove stmt_info parameter.  Get the
7315         target base alignment from DR_TARGET_ALIGNMENT.
7316         (vectorizable_store): Update call accordingly.   Interpret
7317         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
7318         TYPE_ALIGN_UNIT.
7319         (vectorizable_load): Likewise.
7321 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
7322             Alan Hayward  <alan.hayward@arm.com>
7323             David Sherwood  <david.sherwood@arm.com>
7325         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
7326         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
7327         (vect_enhance_data_refs_alignment): Likewise.
7329 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
7331         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
7332         error.  Only quit immediately if parsing is complete.
7333         (BEGIN): Initialize fatal_err and parse_done.
7334         (begin fpu, end fpu): Check number of arguments.
7335         (begin arch, end arch): Likewise.
7336         (begin cpu, end cpu): Likewise.
7337         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
7338         (optalias): Likewise.
7340 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
7342         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
7343         * config/arm/arm-isa.h: Delete.  Move definitions to ...
7344         * arm-cpus.in: ... here.  Use new feature and fgroup values.
7345         * config/arm/arm.c (arm_option_override): Use lower case for feature
7346         bit names.
7347         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
7348         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
7349         * config/arm/parsecpu.awk (END): Add new command 'isa'.
7350         (isa_pfx): Delete.
7351         (print_isa_bits_for): New function.
7352         (gen_isa): New function.
7353         (gen_comm_data): Use print_isa_bits_for.
7354         (define feature): New keyword.
7355         (define fgroup): New keyword.
7356         * config/arm/t-arm (TM_H): Remove.
7357         (GTM_H): Add arm-isa.h.
7358         (arm-isa.h): Add rule to generate file.
7359         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
7360         case for feature bit names.
7362 2017-09-22  Richard Biener  <rguenther@suse.de>
7364         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
7365         single caller.
7366         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
7367         print of no dependency loops ...
7368         * graphite.c (graphite_transform_loops): ... here.
7369         (canonicalize_loop_closed_ssa_form): Work from inner to outer
7370         loops.
7371         (same_close_phi_node, remove_duplicate_close_phi,
7372         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
7373         (canonicalize_loop_closed_ssa): ... here and simplify.
7374         * graphite-optimize-isl.c: Include tree-vectorizer.h.
7375         (optimize_isl): Use dump_printf_loc to tell when we stopped
7376         optimizing because of an ISL timeout.
7378 2017-09-22  Richard Biener  <rguenther@suse.de>
7380         PR tree-optimization/82291
7381         * tree-if-conv.c (predicate_mem_writes): Make sure to
7382         remove writes in blocks predicated with false.
7384 2017-09-22  Richard Biener  <rguenther@suse.de>
7386         * sese.c: Include cfganal.h.
7387         (if_region_set_false_region): Remove.
7388         (create_if_region_on_edge): Likewise.
7389         (move_sese_in_condition): Re-implement without destroying
7390         dominators.
7392 2017-09-22  Richard Biener  <rguenther@suse.de>
7394         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
7395         Verify both BBs contain loop PHI nodes before dispatching to
7396         copy_loop_phi_args.
7397         (graphite_regenerate_ast_isl): Do not recompute dominators,
7398         do not verify three times.  Restructure for clarity.
7399         * graphite-scop-detection.c (same_close_phi_node,
7400         remove_duplicate_close_phi, make_close_phi_nodes_unique,
7401         defined_in_loop_p, canonicalize_loop_closed_ssa,
7402         canonicalize_loop_closed_ssa_form): Simplify, remove excess
7403         checking and SSA rewrite, move to ...
7404         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
7405         (graphite_initialize): Do not pass in ctx, do not reset the
7406         SCEV cache, compute only dominators.
7407         (graphite_transform_loops): Allocate ISL ctx after
7408         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
7409         Maintain post-dominators only around build_scops.
7410         * sese.c (if_region_set_false_region): Make static.  Free
7411         and recompute dominators.
7412         (move_sese_in_condition): Assert we don't get called with
7413         post-dominators computed.
7414         * sese.h (if_region_set_false_region): Remove.
7416 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
7418         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
7419         mode attribute for TARGET_AVX512VL.
7421 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
7423         * config/i386/i386.opt (mprefer-avx256): New option.
7424         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
7425         to flag_opts.
7426         (ix86_preferred_simd_mode): Return 256-bit AVX modes
7427         for TARGET_PREFER_AVX256.
7428         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
7430 2017-09-21  Jeff Law  <law@redhat.com>
7432         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
7433         Fix dump output if the only stack space is for pushed registers.
7435 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
7437         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
7438         of insn_cost.
7440 2017-09-21  Martin Sebor  <msebor@redhat.com>
7442         PR c/81882
7443         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
7444         code (in C++) or code that triggers warnings.
7446 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
7448         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
7450 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
7452         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
7453         * sched-rgn.c: Ditto.
7454         * sel-sched-ir.c: Ditto.
7456 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
7458         * toplev.h (set_random_seed): Adjust return type.
7459         * toplev.c (init_local_tick): Move eager initialization of random_seed
7460         to get_random_seed.  Adjust comment.
7461         (init_random_seed): Inline to get_random_seed, delete.
7462         (get_random_seed): Initialize random_seed lazily.
7463         (set_random_seed): Do not return previous value.
7464         (print_switch_value): Do not call get_random_seed.
7466 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
7468         * cgraph.c (delete_function_version): New, broken out from...
7469         (cgraph_node::delete_function_version): ...here.  Rename to
7470         cgraph_node::delete_function_version_by_decl.  Update all uses.
7471         (cgraph_node::remove): Call delete_function_version.
7473 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
7475         PR sanitizer/81715
7476         * tree-inline.c (expand_call_inline): Emit clobber stmts for
7477         VAR_DECLs to which addressable non-volatile parameters are mapped
7478         and for id->retvar after the return value assignment.  Clear
7479         id->retval and id->retbnd after inlining.
7481 2017-09-21  Richard Biener  <rguenther@suse.de>
7483         PR tree-optimization/82276
7484         PR tree-optimization/82244
7485         * tree-vrp.c (build_assert_expr_for): Set
7486         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
7487         has it set.
7488         (remove_range_assertions): Revert earlier change.
7490 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
7492         PR target/71951
7493         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
7495 2017-09-21  Richard Biener  <rguenther@suse.de>
7497         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
7498         Restore valid IL after code generation errors.
7499         * graphite.c (graphite_transform_loops): Diagnose code
7500         generation issues as MSG_MISSED_OPTIMIZATION and continue
7501         with processing SCOPs.
7503 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
7504             Alan Hayward  <alan.hayward@arm.com>
7505             David Sherwood  <david.sherwood@arm.com>
7507         * calls.c (compute_argument_addresses): Use simplify_gen_binary
7508         rather than choosing between plus_constant and gen_rtx_<CODE>.
7509         * expr.c (emit_push_insn): Likewise.
7510         (expand_expr_real_2): Likewise.
7512 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
7513             Alan Hayward  <alan.hayward@arm.com>
7514             David Sherwood  <david.sherwood@arm.com>
7516         * loop-unroll.c (split_iv): Call copy_rtx on the step.
7518 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
7519             Alan Hayward  <alan.hayward@arm.com>
7520             David Sherwood  <david.sherwood@arm.com>
7522         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
7523         calling tree_to_uhwi.
7525 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
7526             Alan Hayward  <alan.hayward@arm.com>
7527             David Sherwood  <david.sherwood@arm.com>
7529         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
7530         INTEGER_CST rather than a negative test for ADDR_EXPR.
7532 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
7533             Alan Hayward  <alan.hayward@arm.com>
7534             David Sherwood  <david.sherwood@arm.com>
7536         * tree-vrp.c (extract_range_from_binary_expr_1): Check
7537         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
7539 2017-09-21  Richard Biener  <rguenther@suse.de>
7541         PR tree-optimization/71351
7542         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
7543         graphite_create_new_loop_guard): Remove, fold remaining parts
7544         into caller ...
7545         (translate_isl_ast_node_for): ... here and simplify.
7547 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
7549         PR target/82260
7550         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
7551         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
7552         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
7553         alternative always use QI mode, for -Os imov (=R,R) alternative
7554         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
7555         ignore -Os.
7557 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7558             Jeff Law  <law@redhat.com>
7560         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
7561         (allocate_stack_space): New function, partially extracted from
7562         s390_emit_prologue.
7563         (s390_emit_prologue): Track offset to most recent stack probe.
7564         Code to allocate space moved into allocate_stack_space.
7565         Dump actions when no stack is allocated.
7566         (s390_prologue_plus_offset): New function.
7567         (s390_emit_stack_probe): Likewise.
7569 2017-09-20  Alexandre Oliva <aoliva@redhat.com>
7571         * common.opt (Wa, Wl, Wp, g, gz=): Add
7572         RejectNegative.
7573         (gno-column-info): Remove.
7574         (gcolumn-info): Drop RejectNegative.
7575         (gno-): New prefix.
7576         (gno-record-gcc-switches): Remove.
7577         (grecord-gcc-switches): Drop RejectNegative.
7578         (gno-split-dwarf): Remove.
7579         (gsplit-dwarf): Drop RejectNegative.
7580         (gno-strict-dwarf): Remove.
7581         (gstrict-dwarf): Drop RejectNegative.
7582         * config/darwin.opt (gfull, gused): Add RejectNegative.
7583         * dwarf2out.c (gen_producer_string): Drop
7584         gno-record-gcc-switches handler.
7585         * optc-gen.awk: Add g to prefixes with negative forms.
7586         * opts-common.c (remapping_prefix_p): New.
7587         (find_opt): Check it.
7588         (generate_canonical_option): Test g prefix.
7589         (option_map): Add -gno- mapping.
7590         (add_misspelling_candidates): Check remapping_prefix_p.
7592 2017-09-20  Jeff Law  <law@redhat.com>
7594         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
7595         thinko in stack clash protection support.
7597         * explow.c (compute_stack_clash_protection_loop_data): Use
7598         CONST_INT_P instead of explicit test.  Verify object is a
7599         CONST_INT_P before looking at INTVAL.
7600         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
7601         instead of explicit test.
7603 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
7605         PR target/77687
7606         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
7607         address instead of to r1 and r11.
7609 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
7611         * config.gcc: Support "knm".
7612         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
7613         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7614         PROCESSOR_KNM.
7615         * config/i386/i386.c (m_KNM): Define.
7616         (processor_target_table): Add "knm".
7617         (PTA_KNM): Define.
7618         (ix86_option_override_internal): Add "knm".
7619         (ix86_issue_rate): Add PROCESSOR_KNM.
7620         (ix86_adjust_cost): Ditto.
7621         (ia32_multipass_dfa_lookahead): Ditto.
7622         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
7623         (fold_builtin_cpu): Add M_INTEL_KNM.
7624         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
7625         (processor_type): Add PROCESSOR_KNM.
7626         * config/i386/x86-tune.def: Add m_KNM.
7627         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
7629 2017-09-20  Richard Biener  <rguenther@suse.de>
7631         PR tree-optimization/80213
7632         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
7633         are allowed in empty BBs as well.
7634         (canonicalize_loop_closed_ssa): Also look for other complex
7635         edges.
7636         (scop_detection::get_sese): Include the loop-closed PHI block
7637         in loop SESEs.
7638         (scop_detection::merge_sese): Remove code adding extra blocks.
7639         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
7640         (build_scops): Assert the final returned scop is invalid.
7642 2017-09-20  Richard Biener  <rguenther@suse.de>
7644         PR tree-optimization/82264
7645         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
7646         for GIMPLE_CONDs.
7647         (vn_phi_lookup): Likewise.
7648         (vn_phi_insert): Likewise.
7650 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
7652         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
7653         that fits into uhwi or shwi, add DW_AT_const_value regardless
7654         of early_dwarf without going through RTL, using add_AT_unsigned
7655         or add_AT_int.
7657         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
7658         (DEBUG_LTO_ABBREV_SECTION): Likewise.
7659         (DEBUG_LTO_MACINFO_SECTION): Likewise.
7660         (DEBUG_MACRO_SECTION): Likewise.
7661         (DEBUG_LTO_MACRO_SECTION): Likewise.
7662         (DEBUG_STR_DWO_SECTION): Likewise.
7663         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
7664         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
7665         (DEBUG_LTO_DWO_LINE_SECTION): Define.
7666         (DEBUG_LTO_LINE_STR_SECTION): Define.
7667         (init_sections_and_labels): Initialize debug_line_str_section
7668         variable.  Initialize debug_loc_section for -gdwarf-5 to
7669         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
7671 2017-09-20  Richard Biener  <rguenther@suse.de>
7673         * graphite-sese-to-poly.c (extract_affine): Properly handle
7674         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
7676 2017-09-20  Richard Biener  <rguenther@suse.de>
7678         PR tree-optimization/81373
7679         * graphite-scop-detection.c (build_cross_bb_scalars_def):
7680         Force SESE live-out defs to be handled even if they are
7681         scev_analyzable_p.
7683 2017-09-19  Jeff Law  <law@redhat.com>
7685         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
7686         nothing for stack adjustments with REG_STACK_CHECK.
7687         * sched-deps.c (parse_add_or_inc): Reject insns with
7688         REG_STACK_CHECK from dependency breaking.
7689         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
7690         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
7691         * reg-notes.def (STACK_CHECK): New note.
7693         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
7694         (ix86_expand_prologue): Dump stack clash info as needed.
7695         Call ix86_adjust_stack_and_probe_stack_clash as needed.
7697         * function.c (dump_stack_clash_frame_info): New function.
7698         * function.h (dump_stack_clash_frame_info): Prototype.
7699         (enum stack_clash_probes): New enum.
7701         * config/alpha/alpha.c (alpha_expand_prologue): Also check
7702         flag_stack_clash_protection.
7703         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
7704         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
7705         (arm_frame_pointer_required): Likewise.
7706         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
7707         (ia64_expand_prologue): Likewise.
7708         * config/mips/mips.c (mips_expand_prologue): Likewise.
7709         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
7710         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
7711         (sparc_flat_expand_prologue): Likewise.
7712         * config/spu/spu.c (spu_expand_prologue): Likewise.
7714         * explow.c: Include "params.h".
7715         (anti_adjust_stack_and_probe_stack_clash): New function.
7716         (get_stack_check_protect): Likewise.
7717         (compute_stack_clash_protection_loop_data): Likewise.
7718         (emit_stack_clash_protection_loop_start): Likewise.
7719         (emit_stack_clash_protection_loop_end): Likewise.
7720         (allocate_dynamic_stack_space): Use get_stack_check_protect.
7721         Use anti_adjust_stack_and_probe_stack_clash.
7722         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
7723         (emit_stack_clash_protection_loop_start): Likewise.
7724         (emit_stack_clash_protection_loop_end): Likewise.
7725         * rtl.h (get_stack_check_protect): Prototype.
7726         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
7727         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
7728         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
7729         Prototype.
7730         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
7731         Add @hook.
7732         * doc/tm.texi: Rebuilt.
7733         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
7734         get_stack_check_protect.
7735         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
7736         * config/arm/arm.c (arm_expand_prologue): Likewise.
7737         (arm_frame_pointer_required): Likewise.
7738         * config/i386/i386.c (ix86_expand_prologue): Likewise.
7739         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
7740         * config/mips/mips.c (mips_expand_prologue): Likewise.
7741         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
7742         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
7743         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
7744         (sparc_flat_expand_prologue): Likewise.
7746         * common.opt (-fstack-clash-protection): New option.
7747         * flag-types.h (enum stack_check_type): Note difference between
7748         -fstack-check= and -fstack-clash-protection.
7749         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
7750         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
7751         * toplev.c (process_options): Issue warnings/errors for cases
7752         not handled with -fstack-clash-protection.
7753         * doc/invoke.texi (-fstack-clash-protection): Document new option.
7754         (-fstack-check): Note additional problem with -fstack-check=generic.
7755         Note that -fstack-check is primarily for Ada and refer users
7756         to -fstack-clash-protection for stack-clash-protection.
7757         Document new params for stack clash protection.
7759 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
7761         * config/i386/i386.c (ix86_split_long_move): Do not handle
7762         address used for LEA in a special way.
7764 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
7766         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
7768 2017-09-19  Martin Sebor  <msebor@redhat.com>
7770         PR c/81854
7771         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
7772         of incompatible types.
7774 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
7776         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
7777         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
7778         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7779         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
7781 2017-09-19  Richard Biener  <rguenther@suse.de>
7783         PR tree-optimization/82244
7784         * tree-vrp.c (remove_range_assertions): Do not propagate
7785         a constant to abnormals but replace the assert with a copy.
7787 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
7789         PR rtl-optimization/57878
7790         PR rtl-optimization/68988
7791         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
7792         avoidance test involving non_reload_pseudos.  Move frequency test
7793         below the general fragmentation avoidance test.
7795 2017-09-19  Richard Biener  <rguenther@suse.de>
7797         PR tree-optimization/69728
7798         * graphite-sese-to-poly.c (schedule_error): New global.
7799         (add_loop_schedule): Handle empty domain by failing the
7800         schedule.
7801         (build_original_schedule): Handle schedule_error.
7803 2017-09-19  Richard Biener  <rguenther@suse.de>
7805         * graphite-scop-detection.c (scop_detection::can_represent_loop):
7806         Do not iterate to sibling loops but only to siblings of inner
7807         loops.
7809 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
7811         PR target/81613
7812         * config/m68k/m68k.md (moveq feeding equality comparison): Check
7813         that the registers are different.
7815 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
7817         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
7818         to processor_model and "amdfam17h" to arch_names_table.
7819         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
7821 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
7823         PR c/82234
7824         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
7826 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
7827             Alan Hayward  <alan.hayward@arm.com>
7828             David Sherwood  <david.sherwood@arm.com>
7830         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
7831         with a vec_info *.
7832         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
7833         accordingly.
7834         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
7835         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
7836         vect_schedule_slp_instance.
7837         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
7838         Update call to vect_slp_analyze_node_operations.  Simplify return
7839         value.
7840         (vect_slp_analyze_bb_1): Update call accordingly.
7841         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
7842         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
7843         (vect_schedule_slp): Update call accordingly.
7845 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
7846             Alan Hayward  <alan.hayward@arm.com>
7847             David Sherwood  <david.sherwood@arm.com>
7849         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
7850         with types that aren't in fact scalar.
7852 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
7854         * tree-vect-slp.c (vect_record_max_nunits): New function,
7855         split out from...
7856         (vect_build_slp_tree_1): ...here.
7857         (vect_build_slp_tree_2): Call it for phis too.
7859 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
7861         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
7862         to vect_get_vec_def_for_operand when getting the mask operand.
7864 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
7865             Alan Hayward  <alan.hayward@arm.com>
7866             David Sherwood  <david.sherwood@arm.com>
7868         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
7869         bitstart.
7871 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
7872             Alan Hayward  <alan.hayward@arm.com>
7873             David Sherwood  <david.sherwood@arm.com>
7875         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
7876         calculation for vector booleans.
7878 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
7879             Alan Hayward  <alan.hayward@arm.com>
7880             David Sherwood  <david.sherwood@arm.com>
7882         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
7883         split out from...
7884         (vect_transform_stmt): ...here.
7885         (vect_analyze_stmt): Use it instead of calling
7886         vectorizable_live_operation directly.
7888 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
7890         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
7891         non-SIMT targets in acc vector loops.
7893 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
7895         * configure.ac: Add arc and check if assembler supports gdwarf2.
7896         * configure: Regenerate.
7898 2017-09-18  Richard Biener  <rguenther@suse.de>
7900         PR tree-optimization/82220
7901         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
7902         epilogue niters from the min_profitable_iters compute.
7904 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
7906         PR target/82145
7907         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
7908         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
7909         (ix86_init_pic_reg): Revert 2017-09-01 changes.
7911 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
7913         PR target/81361
7914         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
7915         switching to a new text section.
7917 2017-09-18  Richard Biener  <rguenther@suse.de>
7919         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
7920         Simplify.
7921         (build_alias_set): Reject aliases with no access function.
7923 2017-09-18  Richard Biener  <rguenther@suse.de>
7925         PR tree-optimization/79622
7926         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
7927         handle PHIs.
7928         (build_cross_bb_scalars_use): Likewise.
7930 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
7932         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
7934 2017-09-18  Alan Modra  <amodra@gmail.com>
7936         PR target/81996
7937         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
7938         stack_pointer_rtx for count 0.  Update comments.  Break up
7939         large rtl expression.
7941 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
7943         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
7944         Increase to 20 bytes.
7945         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
7946         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
7947         or avx version of the stub.
7949 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
7951         PR target/82166
7952         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
7953         compute the minimum stack alignment.  Also update preferred stack
7954         boundary for leaf functions.
7956 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
7958         PR tree-optimization/82228
7959         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
7960         of ncopies.
7962 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
7964         * common/config/nds32/nds32-common.c
7965         (nds32_option_optimization_table): Refine formatting.
7966         (nds32_option_optimization_table): Use -fsched-pressure and
7967         -fomit-frame-pointer for specific optimization level.
7969 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
7971         * config/nds32/nds32.c: Refine formatting and comments.
7972         * config/nds32/nds32.h: Likewise.
7973         * config/nds32/nds32.md: Likewise.
7974         * config/nds32/nds32-cost.c: Likewise.
7975         * config/nds32/nds32-isr.c: Likewise.
7976         * config/nds32/nds32-md-auxiliary.c: Likewise.
7977         * config/nds32/nds32-multiple.md: Likewise.
7978         * config/nds32/nds32-predicates.c: Likewise.
7980 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
7981             Jakub Jelinek  <jakub@redhat.com>
7983         Add support for -std=c++2a.
7984         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
7985         or -std=gnu+2a.
7986         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
7988 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
7990         PR target/82066
7991         * doc/extend.texi (Common Function Attributes): Add 
7992         references to ARM, AArch64, and S/390 specific attributes.
7993         (Function Specific Option Pragmas): Add AArch64 and S/390
7994         to list of back ends that support the target pragma.
7996 2017-09-15  Nathan Sidwell  <nathan@acm.org>
7998         * doc/standards.texi: Fix C++17 description.  Update URLs for
7999         C++11 & 14.
8001 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8003         * common.opt (Wcast-align=strict): New warning option.
8004         * doc/invoke.texi: Document -Wcast-align=strict. 
8006 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
8008         * cgraph.h (cgraph_thunk_info): Add comments.
8009         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
8010         assert for VIRTUAL_* arguments stricter.
8012 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
8014         PR tree-optimization/71026
8015         * match.pd: Move RDIV patterns from fold-const.c
8016         * fold-const.c (distribute_real_division): Removed.
8017         (fold_binary_loc): Remove calls to distribute_real_divison.
8019 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
8021         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
8022         c++1z and gnu++1z as deprecated.  Change other references to
8023         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
8024         Change -Wc++1z-compat to -Wc++17-compat.
8025         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
8026         * dwarf2out.c (highest_c_language): Handle C++17.
8027         (gen_compile_unit_die): Likewise.
8029 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
8031         PR rtl-optimization/82192
8032         * combine.c (make_extraction): Don't look through non-paradoxical
8033         SUBREGs or TRUNCATE if pos + len is or might be bigger than
8034         inner's mode.
8036 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
8037             Alan Hayward  <alan.hayward@arm.com>
8038             David Sherwood  <david.sherwood@arm.com>
8040         * target.def (function_arg_offset): New hook.
8041         * targhooks.h (default_function_arg_offset): Declare.
8042         * targhooks.c (default_function_arg_offset): New function.
8043         * function.c (locate_and_pad_parm): Use
8044         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
8045         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
8046         (TARGET_FUNCTION_ARG_OFFSET): ...this.
8047         * doc/tm.texi: Regenerate.
8048         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
8049         * config/spu/spu.c (spu_function_arg_offset): New function.
8050         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
8051         * system.h (FUNCTION_ARG_OFFSET): Poison.
8053 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
8054             Alan Hayard  <alan.hayward@arm.com>
8055             David Sherwood  <david.sherwood@arm.com>
8057         * target.def (truly_noop_truncation): New hook.
8058         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
8059         than TRULY_NOOP_TRUNCATION.
8060         * hooks.h (hook_bool_uint_uint_true): Declare.
8061         * hooks.c (hook_bool_uint_uint_true): New function.
8062         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
8063         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
8064         * doc/tm.texi: Regenerate.
8065         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
8066         rather than TRULY_NOOP_TRUNCATION in comments.
8067         (simplify_comparison): Likewise.
8068         (record_truncated_value): Likewise.
8069         * expmed.c (extract_bit_field_1): Likewise.
8070         (extract_split_bit_field): Likewise.
8071         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
8072         instead of TRULY_NOOP_TRUNCATION.
8073         * function.c (assign_parm_setup_block): Likewise.
8074         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
8075         * rtlhooks.c: Include target.h.
8076         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
8077         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
8078         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
8079         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
8080         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
8081         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
8082         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
8083         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
8084         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
8085         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
8086         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
8087         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
8088         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
8089         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
8090         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
8091         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
8092         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
8093         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
8094         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
8095         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
8096         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
8097         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
8098         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
8099         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
8100         * config/mips/mips.c (mips_truly_noop_truncation): New function.
8101         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
8102         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
8103         rather than TRULY_NOOP_TRUNCATION in comments.
8104         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
8105         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
8106         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
8107         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
8108         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
8109         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
8110         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
8111         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
8112         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
8113         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
8114         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
8115         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
8116         rather than TRULY_NOOP_TRUNCATION in comments.
8117         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
8118         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
8119         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
8120         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
8121         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
8122         TRULY_NOOP_TRUNCATION condition.
8123         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
8124         (TRULY_NOOP_TRUNCATION): Delete.
8125         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
8126         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
8127         * config/spu/spu.c (spu_truly_noop_truncation): New function.
8128         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
8129         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
8130         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
8131         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
8132         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
8133         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
8134         rather than TRULY_NOOP_TRUNCATION in comments.
8135         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
8136         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
8137         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
8138         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
8139         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
8140         * system.h (TRULY_NOOP_TRUNCATION): Poison.
8142 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
8144         PR target/67591
8145         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
8146         (*cmp_ior): Likewise.
8147         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
8148         (*ior_scc_scc_cmp): Likewise.
8149         (*and_scc_scc): Likewise.
8150         (*and_scc_scc_cmp): Likewise.
8152 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
8153             Alan Hayard  <alan.hayward@arm.com>
8154             David Sherwood  <david.sherwood@arm.com>
8156         * target.def (can_change_mode_class): New hook.
8157         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
8158         (hard_regno_nregs): Likewise.
8159         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
8160         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
8161         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
8162         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
8163         (LOAD_EXTEND_OP): Update accordingly.
8164         * doc/tm.texi: Regenerate.
8165         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
8166         CANNOT_CHANGE_MODE_CLASS.
8167         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
8168         (REG_CAN_CHANGE_MODE_P): ...this new macro.
8169         * combine.c (simplify_set): Update accordingly.
8170         * emit-rtl.c (validate_subreg): Likewise.
8171         * recog.c (general_operand): Likewise.
8172         * regcprop.c (mode_change_ok): Likewise.
8173         * reload1.c (choose_reload_regs): Likewise.
8174         (inherit_piecemeal_p): Likewise.
8175         * rtlanal.c (simplify_subreg_regno): Likewise.
8176         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
8177         instead of CANNOT_CHANGE_MODE_CLASS.
8178         (reload_cse_simplify_operands): Likewise.
8179         * reload.c (push_reload): Use targetm.can_change_mode_class
8180         instead of CANNOT_CHANGE_MODE_CLASS.
8181         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
8182         REG_CANNOT_CHANGE_MODE_P.
8183         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8184         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
8185         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8186         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8187         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8188         (arm_can_change_mode_class): New function.
8189         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
8190         than CANNOT_CHANGE_MODE_CLASS in comments.
8191         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8192         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
8193         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
8194         (ix86_can_change_mode_class): ...this new function, inverting the
8195         sense of the return value.
8196         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8197         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8198         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8199         (ia64_can_change_mode_class): New function.
8200         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8201         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
8202         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
8203         (m32c_can_change_mode_class): ...this new function, inverting the
8204         sense of the return value.
8205         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8206         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8207         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
8208         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
8209         (mips_can_change_mode_class): ...this new function, inverting the
8210         sense of the return value.
8211         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8212         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8213         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8214         (msp430_can_change_mode_class): New function.
8215         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8216         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
8217         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8218         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8219         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8220         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
8221         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8222         (pa_cannot_change_mode_class): Replace with...
8223         (pa_can_change_mode_class): ...this new function, inverting the
8224         sense of the return value.
8225         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
8226         than CANNOT_CHANGE_MODE_CLASS in comments.
8227         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8228         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
8229         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8230         (pdp11_cannot_change_mode_class): Replace with...
8231         (pdp11_can_change_mode_class): ...this new function, inverting the
8232         sense of the return value.
8233         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8234         * config/powerpcspe/powerpcspe-protos.h
8235         (rs6000_cannot_change_mode_class_ptr): Delete.
8236         * config/powerpcspe/powerpcspe.c
8237         (rs6000_cannot_change_mode_class_ptr): Delete.
8238         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8239         (rs6000_option_override_internal): Assign to
8240         targetm.can_change_mode_class instead of
8241         rs6000_cannot_change_mode_class_ptr.
8242         (rs6000_cannot_change_mode_class): Replace with...
8243         (rs6000_can_change_mode_class): ...this new function, inverting the
8244         sense of the return value.
8245         (rs6000_debug_cannot_change_mode_class): Replace with...
8246         (rs6000_debug_can_change_mode_class): ...this new function.
8247         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8248         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
8249         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8250         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8251         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
8252         Delete.
8253         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
8254         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8255         (rs6000_option_override_internal): Assign to
8256         targetm.can_change_mode_class instead of
8257         rs6000_cannot_change_mode_class_ptr.
8258         (rs6000_cannot_change_mode_class): Replace with...
8259         (rs6000_can_change_mode_class): ...this new function, inverting the
8260         sense of the return value.
8261         (rs6000_debug_cannot_change_mode_class): Replace with...
8262         (rs6000_debug_can_change_mode_class): ...this new function.
8263         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8264         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
8265         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
8266         (s390_can_change_mode_class): ...this new function, inverting the
8267         sense of the return value.
8268         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8269         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8270         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
8271         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8272         (sh_cannot_change_mode_class): Replace with...
8273         (sh_can_change_mode_class): ...this new function, inverting the
8274         sense of the return value.
8275         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8276         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8277         (sparc_can_change_mode_class): New function.
8278         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8279         * config/spu/spu.c (spu_can_change_mode_class): New function.
8280         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8281         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
8282         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
8283         (visium_can_change_mode_class): New function.
8284         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
8286 2017-09-15  Richard Biener  <rguenther@suse.de>
8288         PR tree-optimization/82217
8289         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
8290         but not undefined case.
8292 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
8294         PR target/82145
8295         * postreload.c (reload_cse_simplify_operands): Skip
8296         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
8298 2017-09-15  Richard Biener  <rguenther@suse.de>
8300         PR tree-optimization/68823
8301         * graphite-scop-detection.c (build_alias_set): If we have a
8302         possible dependence check whether we can handle them by just
8303         looking at the DRs DR_ACCESS_FNs.
8304         (build_scops): If build_alias_set fails, fail the SCOP.
8306 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8308         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
8309         to support float128 built-in functions that require the ISA 3.0
8310         hardware.
8311         (BU_FLOAT128_3_HW): Likewise.
8312         (SQRTF128): Add support for the IEEE 128-bit square root and fma
8313         built-in functions.
8314         (FMAF128): Likewise.
8315         (FMAQ): Likewise.
8316         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
8317         support for built-in functions that need the ISA 3.0 IEEE 128-bit
8318         floating point instructions.
8319         (rs6000_invalid_builtin): Likewise.
8320         (rs6000_builtin_mask_names): Likewise.
8321         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
8322         (RS6000_BTM_FLOAT128_HW): Likewise.
8323         (RS6000_BTM_COMMON): Likewise.
8324         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
8325         function.
8326         * doc/extend.texi (RS/6000 built-in functions): Document the
8327         IEEE 128-bit floating point square root and fused multiply-add
8328         built-in functions.
8330 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
8332         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
8333         reg (r2) isn't in the set of registers defined in the prologue.
8335 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
8336             Alan Hayward  <alan.hayward@arm.com>
8337             David Sherwood  <david.sherwood@arm.com>
8339         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
8340         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
8341         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
8342         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
8343         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
8344         accordingly.
8345         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
8346         max_vectorization_factor.
8347         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
8349 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
8350             Alan Hayward  <alan.hayward@arm.com>
8351             David Sherwood  <david.sherwood@arm.com>
8353         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
8354         (vect_worthwhile_without_simd_p): Declare.
8355         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
8356         (vectorizable_reduction): Use it.
8357         * tree-vect-stmts.c (vectorizable_shift): Likewise.
8358         (vectorizable_operation): Likewise.
8360 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
8361             Alan Hayward  <alan.hayward@arm.com>
8362             David Sherwood  <david.sherwood@arm.com>
8364         * tree-vectorizer.h (vect_get_num_copies): New function.
8365         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
8366         * tree-vect-loop.c (vectorizable_reduction): Likewise.
8367         (vectorizable_induction): Likewise.
8368         (vectorizable_live_operation): Likewise.
8369         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
8370         (vectorizable_bswap): Likewise.
8371         (vectorizable_call): Likewise.
8372         (vectorizable_conversion): Likewise.
8373         (vectorizable_assignment): Likewise.
8374         (vectorizable_shift): Likewise.
8375         (vectorizable_operation): Likewise.
8376         (vectorizable_store): Likewise.
8377         (vectorizable_load): Likewise.
8378         (vectorizable_condition): Likewise.
8379         (vectorizable_comparison): Likewise.
8380         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
8382 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
8383             Alan Hayward  <alan.hayward@arm.com>
8384             David Sherwood  <david.sherwood@arm.com>
8386         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
8387         of vect_init_vector.
8389 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
8390             Alan Hayward  <alan.hayward@arm.com>
8391             David Sherwood  <david.sherwood@arm.com>
8393         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
8394         an inline wrapper that provides a location.
8395         (gimple_build_vector): Likewise.
8396         * gimple-fold.c (gimple_build_vector_from_val): New function.
8397         (gimple_build_vector): Likewise.
8398         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
8399         functions to build the initial value.  Always return a gimple value.
8400         (get_initial_defs_for_reduction): Likewise.  Only compute
8401         neutral_vec once.
8402         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
8403         vect_init_vector on the results from get_initial_def(s)_for_reduction.
8404         (vectorizable_induction): Use gimple_build_vector rather than
8405         vect_init_vector.
8407 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
8408             Alan Hayward  <alan.hayward@arm.com>
8409             David Sherwood  <david.sherwood@arm.com>
8411         * target.h (vec_perm_indices): New typedef.
8412         (auto_vec_perm_indices): Likewise.
8413         * optabs-query.h: Include target.h
8414         (can_vec_perm_p): Take a vec_perm_indices *.
8415         * optabs-query.c (can_vec_perm_p): Likewise.
8416         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
8417         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
8418         * tree-vect-generic.c (lower_vec_perm): Likewise.
8419         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
8420         (vect_grouped_load_supported): Likewise.
8421         (vect_shift_permute_load_chain): Likewise.
8422         (vect_permute_store_chain): Use auto_vec_perm_indices.
8423         (vect_permute_load_chain): Likewise.
8424         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
8425         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
8426         Update uses of can_vec_perm_p.
8427         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
8428         mode with a number of elements.  Take a vec_perm_indices *.
8429         (vect_create_epilog_for_reduction): Update accordingly.
8430         Use auto_vec_perm_indices.
8431         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
8432         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
8433         (vect_transform_slp_perm_load): Likewise.
8434         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
8435         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
8436         (vect_gen_perm_mask_checked): Likewise.
8437         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
8438         (vect_gen_perm_mask_checked): Likewise.
8439         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
8440         (vectorizable_store): Likewise.
8441         (vectorizable_load): Likewise.
8442         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
8443         (vectorizable_bswap): Likewise.
8445 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
8446             Alan Hayward  <alan.hayward@arm.com>
8447             David Sherwood  <david.sherwood@arm.com>
8449         * tree.h (build_vector): Take a vec<tree> instead of a tree *.
8450         * tree.c (build_vector): Likewise.
8451         (build_vector_from_ctor): Update accordingly.
8452         (build_vector_from_val): Likewise.
8453         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
8454         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
8455         * tree-vect-generic.c (add_rshift): Likewise.
8456         (expand_vector_divmod): Likewise.
8457         (optimize_vector_constructor): Likewise.
8458         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
8459         (vect_transform_slp_perm_load): Likewise.
8460         (vect_schedule_slp_instance): Likewise.
8461         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
8462         (vectorizable_call): Likewise.
8463         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
8464         * expmed.c (make_tree): Likewise.
8465         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
8466         a vector passed to build_vector.
8467         (fold_convert_const): Likewise.
8468         (exact_inverse): Likewise.
8469         (fold_ternary_loc): Likewise.
8470         (fold_relational_const): Likewise.
8471         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
8472         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
8473         (const_unop): Likewise.  Store the reduction accumulator in a
8474         variable rather than an array.
8475         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
8476         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
8477         the new vector, rather than constructing it after the input arrays.
8478         (native_interpret_vector): Use auto_vec<tree> when building
8479         a vector passed to build_vector.  Add elements in order.
8480         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
8481         auto_vec<tree> when building a vector passed to build_vector.
8482         (vect_create_epilog_for_reduction): Likewise.
8483         (vectorizable_induction): Likewise.
8484         (get_initial_def_for_reduction): Likewise.  Fix indentation of
8485         case statements.
8486         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
8487         to a vec<tree> *.
8488         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
8489         passed to build_vector.
8491 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
8492             Alan Hayward  <alan.hayward@arm.com>
8493             David Sherwood  <david.sherwood@arm.com>
8495         * tree-core.h (tree_base::u): Add an "nelts" field.
8496         (tree_vector): Use VECTOR_CST_NELTS as the length.
8497         * tree.c (tree_size): Likewise.
8498         (make_vector): Initialize VECTOR_CST_NELTS.
8499         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
8500         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
8501         TYPE_VECTOR_SUBPARTS.
8502         * expr.c (const_vector_mask_from_tree): Consistently use "units"
8503         as the number of units, setting it from VECTOR_CST_NELTS.
8504         (const_vector_from_tree): Likewise.
8505         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
8506         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
8507         (fold_negate_expr_1): Likewise.
8508         (fold_convert_const): Likewise.
8509         (const_binop): Likewise.  Differentiate the number of output and
8510         input elements.
8511         (const_unop): Likewise.
8512         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
8513         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
8514         in cases that did the opposite.
8516 2017-09-14  Richard Biener  <rguenther@suse.de>
8518         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
8519         to VN_TOP.
8521 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
8523         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
8525 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
8527         PR target/81325
8528         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
8529         if and where to split a bb, except for splitting before debug insn
8530         sequences followed by non-label real insn.  Delete debug insns
8531         in between basic blocks.
8533         * combine.c (make_compound_operation_int): Formatting fixes.
8535         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
8536         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
8537         * config/netbsd.h (LINK_EH_SPEC): Likewise.
8538         * config/sol2.h (LINK_EH_SPEC): Likewise.
8539         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
8540         * config/s390/linux.h (LINK_SPEC): Likewise.
8541         * config/freebsd.h (LINK_EH_SPEC): Likewise.
8542         * config/openbsd.h (LINK_EH_SPEC): Likewise.
8543         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
8544         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
8545         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
8546         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
8547         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
8548         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
8550 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
8552         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
8553         support.
8554         (ENDFILE_LINUX_SPEC): Likewise.
8555         (LINK_EH_SPEC): Likewise.
8556         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
8557         (LINK_OS_LINUX_SPEC32): Likewise.
8558         (LINK_OS_LINUX_SPEC64): Likewise.
8559         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
8560         (LINK_OS_LINUX_SPEC): Likewise.
8562 2017-09-13  Martin Liska  <mliska@suse.cz>
8564         PR middle-end/82154
8565         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
8566         CASE_HIGH is NULL_TREE.
8568 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
8569             Alan Hayward  <alan.hayward@arm.com>
8570             David Sherwood  <david.sherwood@arm.com>
8572         * target.def (secondary_memory_needed): New hook.
8573         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
8574         instead of SECONDARY_MEMORY_NEEDED.
8575         (secondary_memory_needed_mode): Likewise.
8576         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
8577         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
8578         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
8579         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
8580         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
8581         * doc/tm.texi: Regenerate.
8582         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
8583         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
8584         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
8585         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
8586         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
8587         * config/i386/i386.c (inline_secondary_memory_needed): Put the
8588         mode argument first and change the reg_class arguments to reg_class_t.
8589         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
8590         Make static.  Update the call to inline_secondary_memory_needed.
8591         (ix86_register_move_cost): Update the call to
8592         inline_secondary_memory_needed.
8593         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
8594         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
8595         definition.
8596         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
8597         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
8598         in comment.
8599         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
8600         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
8601         * config/mips/mips.c (mips_secondary_memory_needed): Make static
8602         and match hook interface.  Add comment from mips.h.
8603         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
8604         * config/mmix/mmix.md (truncdfsf2): Refer to
8605         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
8606         in comment.
8607         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
8608         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
8609         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
8610         (pa_secondary_memory_needed): New function.
8611         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
8612         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
8613         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
8614         (pdp11_secondary_memory_needed): Make static and match hook interface.
8615         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
8616         * config/powerpcspe/powerpcspe-protos.h
8617         (rs6000_secondary_memory_needed_ptr): Delete.
8618         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
8619         Delete.
8620         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
8621         (rs6000_option_override_internal): Assign to
8622         targetm.secondary_memory_needed rather than
8623         rs6000_secondary_memory_needed_ptr.
8624         (rs6000_secondary_memory_needed): Match hook interface.
8625         (rs6000_debug_secondary_memory_needed): Likewise.
8626         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
8627         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
8628         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
8629         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
8630         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
8631         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
8632         Delete.
8633         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
8634         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
8635         (rs6000_option_override_internal): Assign to
8636         targetm.secondary_memory_needed rather than
8637         rs6000_secondary_memory_needed_ptr.
8638         (rs6000_secondary_memory_needed): Match hook interface.
8639         (rs6000_debug_secondary_memory_needed): Likewise.
8640         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
8641         * config/s390/s390.c (s390_secondary_memory_needed): New function.
8642         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
8643         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
8644         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
8645         (sparc_secondary_memory_needed): New function.
8646         * lra-constraints.c (check_and_process_move): Refer to
8647         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
8648         in comment.
8649         (curr_insn_transform): Likewise.
8650         (process_alt_operands): Use targetm.secondary_memory_needed
8651         instead of TARGET_SECONDARY_MEMORY_NEEDED.
8652         (check_secondary_memory_needed_p): Likewise.
8653         (choose_split_class): Likewise.
8654         * reload.c: Unconditionally include code that was previously
8655         conditional on SECONDARY_MEMORY_NEEDED.
8656         (push_secondary_reload): Use targetm.secondary_memory_needed
8657         instead of TARGET_SECONDARY_MEMORY_NEEDED.
8658         (push_reload): Likewise.
8659         * reload1.c: Unconditionally include code that was previously
8660         conditional on SECONDARY_MEMORY_NEEDED.
8661         (choose_reload_regs): Use targetm.secondary_memory_needed
8662         instead of TARGET_SECONDARY_MEMORY_NEEDED.
8663         (gen_reload): Likewise.
8664         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
8666 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
8667             Alan Hayward  <alan.hayward@arm.com>
8668             David Sherwood  <david.sherwood@arm.com>
8670         * target.def (secondary_memory_needed_mode): New hook:
8671         * targhooks.c (default_secondary_memory_needed_mode): Declare.
8672         * targhooks.h (default_secondary_memory_needed_mode): New function.
8673         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
8674         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
8675         * doc/tm.texi: Regenerate.
8676         * lra-constraints.c (check_and_process_move): Use
8677         targetm.secondary_memory_needed_mode instead of
8678         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
8679         (curr_insn_transform): Likewise.
8680         * reload.c (get_secondary_mem): Likewise.
8681         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
8682         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
8683         function.
8684         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
8685         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
8686         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
8687         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
8688         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
8689         Delete.
8690         * config/powerpcspe/powerpcspe-protos.h
8691         (rs6000_secondary_memory_needed_mode): Delete.
8692         * config/powerpcspe/powerpcspe.c
8693         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
8694         (rs6000_secondary_memory_needed_mode): Make static.
8695         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
8696         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
8697         Delete.
8698         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
8699         Redefine.
8700         (rs6000_secondary_memory_needed_mode): Make static.
8701         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
8702         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
8703         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
8704         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
8705         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
8706         Redefine.
8707         (sparc_secondary_memory_needed_mode): New function.
8708         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
8710 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
8712         * config/aarch64/constraints.md (Umq): New constraint.
8713         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
8714         Change to use Umq.
8715         (mov<mode>): Update condition.
8717 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8719         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
8720         when bitposition is the same.
8722 2017-09-13  Richard Biener  <rguenther@suse.de>
8724         * dwarf2out.c (output_die_symbol): Remove.
8725         (output_die): Do not output a DIEs symbol.
8727 2017-09-13  Richard Biener  <rguenther@suse.de>
8729         PR middle-end/82128
8730         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
8731         default-def to avoid breaking iterator update with the weird
8732         interaction with cgraph_update_edges_for_call_stmt_node.
8734 2017-09-13  Richard Biener  <rguenther@suse.de>
8736         * tree-cfg.c (verify_gimple_assign_binary): Add verification
8737         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
8738         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
8739         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
8741 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
8743         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
8744         Disable pc relative literal load irrespective of
8745         TARGET_FIX_ERR_A53_84341 for default.
8747 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
8749         * config/sparc/sparc.c (output_return): Output the source location of
8750         the insn in the delay slot, if any.
8751         (output_sibcall): Likewise.
8753 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
8755         PR driver/81498
8756         * common.opt (-static-pie): New alias.
8757         (shared): Negate static-pie.
8758         (-no-pie): Update help text.
8759         (-pie): Likewise.
8760         (static-pie): New option.
8761         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
8762         -static-pie support.
8763         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
8764         (LINK_EH_SPEC): Likewise.
8765         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
8766         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
8767         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
8768         * gcc.c (LINK_COMMAND_SPEC): Likewise.
8769         (init_gcc_specs): Likewise.
8770         (init_spec): Likewise.
8771         (display_help): Update help message for -pie.
8772         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
8773         -static-pie.
8775 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
8777         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
8778         (movdi_aarch64): Likewise.
8779         (movti_aarch64): Likewise.
8781 2017-09-12 Simon Wright <simon@pushface.org>
8783         PR target/80204
8784         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
8785         calculation of the minor version, always output as 0.
8787 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
8789         PR target/82112
8790         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
8791         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
8792         on it early, rather than manual conversion late.  For
8793         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
8794         instead of performing manual conversion.
8796 2017-09-12  Carl Love  <cel@us.ibm.com>
8798         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
8799         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
8800         vmulouw, vmulosw.
8801         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
8802         VMULOSW): Add definitions.
8803         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8804         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
8805         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
8806         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
8807         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
8809 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
8811         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
8812         types correctly.
8813         (movti_aarch64): Likewise.
8814         (movdf_aarch64): Likewise.
8815         (movtf_aarch64): Likewise.
8816         (load_pairdi): Likewise.
8817         (store_pairdi): Likewise.
8818         (load_pairdf): Likewise.
8819         (store_pairdf): Likewise.
8820         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
8821         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
8822         (ldr_got_small_<mode>): Likewise.
8823         (ldr_got_small_28k_<mode>): Likewise.
8824         (ldr_got_tiny): Likewise.
8825         * config/aarch64/iterators.md (ldst_sz): New.
8826         (ldpstp_sz): Likewise.
8827         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
8828         to store_16.
8829         (thunderx_load): Split load_8 to load_16.
8830         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
8831         load_8 to load_16.
8832         (thunderx2t99_storepair_basic): Split store_8 to store_16.
8833         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
8834         (xgene1_store_pair): Split store_8 to store_16.
8835         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
8836         (falkor_st_0_st_sd): Split store_8 to store_16.
8838 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
8840         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
8841         and store1/2/3/4 to store_4/8/12/16.
8842         * config/aarch64/aarch64.md: Update for rename.
8843         * config/arm/arm.md: Likewise.: Likewise.
8844         * config/arm/arm.c: Likewise.
8845         * config/arm/thumb1.md: Likewise.
8846         * config/arm/thumb2.md: Likewise.
8847         * config/arm/vfp.md: Likewise.
8848         * config/arm/arm-generic.md: Likewise.
8849         * config/arm/arm1020e.md: Likewise.
8850         * config/arm/arm1026ejs.md: Likewise.
8851         * config/arm/arm1136jfs.md: Likewise.
8852         * config/arm/arm926ejs.md: Likewise.
8853         * config/arm/cortex-a15.md: Likewise.
8854         * config/arm/cortex-a17.md: Likewise.
8855         * config/arm/cortex-a5.md: Likewise.
8856         * config/arm/cortex-a53.md: Likewise.
8857         * config/arm/cortex-a57.md: Likewise.
8858         * config/arm/cortex-a7.md: Likewise.
8859         * config/arm/cortex-a8.md: Likewise.
8860         * config/arm/cortex-a9.md: Likewise.
8861         * config/arm/cortex-m4.md: Likewise.
8862         * config/arm/cortex-m7.md: Likewise.
8863         * config/arm/cortex-r4.md: Likewise.
8864         * config/arm/exynos-m1.md: Likewise.
8865         * config/arm/fa526.md: Likewise.
8866         * config/arm/fa606te.md: Likewise.
8867         * config/arm/fa626te.md: Likewise.
8868         * config/arm/fa726te.md: Likewise.
8869         * config/arm/fmp626.md: Likewise.
8870         * config/arm/iwmmxt.md: Likewise.
8871         * config/arm/ldmstm.md: Likewise.
8872         * config/arm/marvell-pj4.md: Likewise.
8873         * config/arm/xgene1.md: Likewise.
8874         * config/aarch64/thunderx.md: Likewise.
8875         * config/aarch64/thunderx2t99.md: Likewise.
8876         * config/aarch64/falkor.md: Likewise.
8878 2017-09-12  Martin Liska  <mliska@suse.cz>
8880         * attribs.c (private_lookup_attribute): New function.
8881         * attribs.h (private_lookup_attribute): Declared here.
8882         (lookup_attribute): Called from this place.
8884 2017-09-12  Richard Biener  <rguenther@suse.de>
8886         PR tree-optimization/82157
8887         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
8888         stmts with side-effects.
8890 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
8891             Alan Hayward  <alan.hayward@arm.com>
8892             David Sherwood <david.sherwood@arm.com>
8894         * target.def (hard_regno_nregs): New hook.
8895         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
8896         * targhooks.h (default_hard_regno_nregs): Declare.
8897         * targhooks.c (default_hard_regno_nregs): New function.
8898         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
8899         (TARGET_HARD_REGNO_NREGS): ...this hook.
8900         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
8901         (CLASS_MAX_NREGS): Likewise.
8902         * doc/tm.texi: Regenerate.
8903         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
8904         instead of HARD_REGNO_NREGS.
8905         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
8906         HARD_REGNO_NREGS in the comment.
8907         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
8908         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
8909         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
8910         Return an unsigned int.
8911         (TARGET_HARD_REGNO_NREGS): Redefine.
8912         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
8913         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
8914         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
8915         (arc_hard_regno_nregs): New function.
8916         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
8917         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
8918         (arm_hard_regno_nregs): New function.
8919         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
8920         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
8921         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
8922         (TARGET_HARD_REGNO_NREGS): Redefine.
8923         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
8924         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
8925         (HARD_REGNO_NREGS): Delete.
8926         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
8927         (cr16_hard_regno_nregs): New function.
8928         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
8929         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
8930         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
8931         (cris_hard_regno_nregs): New function.
8932         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
8933         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
8934         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
8935         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
8936         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
8937         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
8938         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
8939         (frv_hard_regno_nregs): Make static.  Take and return an
8940         unsigned int.
8941         (frv_class_max_nregs): Remove outdated copy of documentation.
8942         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
8943         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
8944         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
8945         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
8946         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
8947         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
8948         (TARGET_HARD_REGNO_NREGS): Redefine.
8949         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
8950         (CLASS_MAX_NREGS): Update comment.
8951         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
8952         (ia64_hard_regno_nregs): New function.
8953         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
8954         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
8955         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
8956         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
8957         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
8958         an unsigned int.
8959         (m32c_hard_regno_nregs): Likewise.  Make static.
8960         (TARGET_HARD_REGNO_NREGS): Redefine.
8961         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
8962         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
8963         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
8964         (m68k_hard_regno_nregs): New function.
8965         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
8966         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
8967         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
8968         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
8969         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
8970         Take and return an unsigned int.
8971         (TARGET_HARD_REGNO_NREGS): Redefine.
8972         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
8973         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
8974         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
8975         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
8976         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
8977         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
8978         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
8979         (msp430_hard_regno_nregs): Make static.  Take and return an
8980         unsigned int.
8981         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
8982         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
8983         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
8984         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
8985         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
8986         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
8987         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
8988         (TARGET_HARD_REGNO_NREGS): Redefine.
8989         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
8990         (PA_HARD_REGNO_NREGS): ...this.
8991         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
8992         (PA_HARD_REGNO_NREGS): ...this.
8993         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
8994         (pa_hard_regno_nregs): New function.
8995         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
8996         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
8997         (pdp11_hard_regno_nregs): New function.
8998         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
8999         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
9000         (rs6000_hard_regno_nregs_hook): New function.
9001         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
9002         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
9003         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
9004         Take and return an unsigned int.  Move earlier in file.
9005         (TARGET_HARD_REGNO_NREGS): Redefine.
9006         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
9007         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
9008         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
9009         (rl78_hard_regno_nregs): Make static.  Take and return an
9010         unsigned int.
9011         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
9012         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
9013         (rs6000_hard_regno_nregs_hook): New function.
9014         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
9015         * config/rx/rx.c (rx_hard_regno_nregs): New function.
9016         (TARGET_HARD_REGNO_NREGS): Redefine.
9017         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
9018         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
9019         instead of HARD_REGNO_NREGS.
9020         (s390_hard_regno_nregs): New function.
9021         (s390_hard_regno_mode_ok): Add comment from s390.h.
9022         (TARGET_HARD_REGNO_NREGS): Redefine.
9023         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
9024         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
9025         (sh_hard_regno_nregs): New function.
9026         (sh_pass_in_reg_p): Use it.
9027         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
9028         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
9029         (sparc_hard_regno_nregs): New function.
9030         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
9031         * config/spu/spu.c (spu_hard_regno_nregs): New function.
9032         (spu_function_arg_advance): Use it, supplying a valid register number.
9033         (TARGET_HARD_REGNO_NREGS): Redefine.
9034         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
9035         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
9036         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
9037         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
9038         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
9039         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
9040         (CLASS_MAX_NREGS): Remove copy of old documentation.
9041         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
9042         (visium_hard_regno_nregs): New function.
9043         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
9044         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
9045         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
9046         xtensa_hard_regno_nregs): New function.
9047         * system.h (HARD_REGNO_NREGS): Poison.
9049 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
9051         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
9052         hard_regno_nregs instead of HARD_REGNO_NREGS.
9053         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
9054         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
9055         (c6x_expand_epilogue): Likewise.
9056         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
9057         (frv_read_iacc_argument): Likewise.
9058         * config/sh/sh.c: Include regs.h.
9059         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
9060         (regs_used): Likewise.
9061         (output_stack_adjust): Likewise.
9062         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
9063         * expmed.c: Include regs.h.
9064         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
9065         * ree.c: Include regs.h.
9066         (combine_reaching_defs): Use hard_regno_nregs instead of
9067         HARD_REGNO_NREGS.
9068         (add_removable_extension): Likewise.
9070 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
9072         * regs.h (hard_regno_nregs): Turn into a function.
9073         (end_hard_regno): Update accordingly.
9074         * caller-save.c (setup_save_areas): Likewise.
9075         (save_call_clobbered_regs): Likewise.
9076         (replace_reg_with_saved_mem): Likewise.
9077         (insert_restore): Likewise.
9078         (insert_save): Likewise.
9079         * combine.c (can_change_dest_mode): Likewise.
9080         (move_deaths): Likewise.
9081         (distribute_notes): Likewise.
9082         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
9083         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
9084         (rs6000_split_multireg_move): Likewise.
9085         (rs6000_register_move_cost): Likewise.
9086         (rs6000_memory_move_cost): Likewise.
9087         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
9088         (rs6000_split_multireg_move): Likewise.
9089         (rs6000_register_move_cost): Likewise.
9090         (rs6000_memory_move_cost): Likewise.
9091         * cselib.c (cselib_reset_table): Likewise.
9092         (cselib_lookup_1): Likewise.
9093         * emit-rtl.c (set_mode_and_regno): Likewise.
9094         * function.c (aggregate_value_p): Likewise.
9095         * ira-color.c (setup_profitable_hard_regs): Likewise.
9096         (check_hard_reg_p): Likewise.
9097         (calculate_saved_nregs): Likewise.
9098         (assign_hard_reg): Likewise.
9099         (improve_allocation): Likewise.
9100         (calculate_spill_cost): Likewise.
9101         * ira-emit.c (modify_move_list): Likewise.
9102         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
9103         (ira_hard_reg_in_set_p): Likewise.
9104         * ira.c (setup_reg_mode_hard_regset): Likewise.
9105         (clarify_prohibited_class_mode_regs): Likewise.
9106         (check_allocation): Likewise.
9107         * lra-assigns.c (find_hard_regno_for_1): Likewise.
9108         (lra_setup_reg_renumber): Likewise.
9109         (setup_try_hard_regno_pseudos): Likewise.
9110         (spill_for): Likewise.
9111         (assign_hard_regno): Likewise.
9112         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
9113         * lra-constraints.c (in_class_p): Likewise.
9114         (lra_constraint_offset): Likewise.
9115         (simplify_operand_subreg): Likewise.
9116         (lra_constraints): Likewise.
9117         (split_reg): Likewise.
9118         (split_if_necessary): Likewise.
9119         (invariant_p): Likewise.
9120         (inherit_in_ebb): Likewise.
9121         * lra-lives.c (process_bb_lives): Likewise.
9122         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
9123         (get_hard_regs): Likewise.
9124         (do_remat): Likewise.
9125         * lra-spills.c (assign_spill_hard_regs): Likewise.
9126         * mode-switching.c (create_pre_exit): Likewise.
9127         * postreload.c (reload_combine_recognize_pattern): Likewise.
9128         * recog.c (peep2_find_free_register): Likewise.
9129         * regcprop.c (kill_value_regno): Likewise.
9130         (set_value_regno): Likewise.
9131         (copy_value): Likewise.
9132         (maybe_mode_change): Likewise.
9133         (find_oldest_value_reg): Likewise.
9134         (copyprop_hardreg_forward_1): Likewise.
9135         * regrename.c (check_new_reg_p): Likewise.
9136         (regrename_do_replace): Likewise.
9137         * reload.c (push_reload): Likewise.
9138         (combine_reloads): Likewise.
9139         (find_dummy_reload): Likewise.
9140         (operands_match_p): Likewise.
9141         (find_reloads): Likewise.
9142         (find_equiv_reg): Likewise.
9143         (reload_adjust_reg_for_mode): Likewise.
9144         * reload1.c (count_pseudo): Likewise.
9145         (count_spilled_pseudo): Likewise.
9146         (find_reg): Likewise.
9147         (clear_reload_reg_in_use): Likewise.
9148         (free_for_value_p): Likewise.
9149         (allocate_reload_reg): Likewise.
9150         (choose_reload_regs): Likewise.
9151         (reload_adjust_reg_for_temp): Likewise.
9152         (emit_reload_insns): Likewise.
9153         (delete_output_reload): Likewise.
9154         * rtlanal.c (subreg_get_info): Likewise.
9155         * sched-deps.c (sched_analyze_reg): Likewise.
9156         * sel-sched.c (init_regs_for_mode): Likewise.
9157         (mark_unavailable_hard_regs): Likewise.
9158         (choose_best_reg_1): Likewise.
9159         (verify_target_availability): Likewise.
9160         * valtrack.c (dead_debug_insert_temp): Likewise.
9161         * var-tracking.c (track_loc_p): Likewise.
9162         (emit_note_insn_var_location): Likewise.
9163         * varasm.c (make_decl_rtl): Likewise.
9164         * reginfo.c (choose_hard_reg_mode): Likewise.
9165         (init_reg_modes_target): Refer directly to
9166         this_target_regs->x_hard_regno_nregs.
9168 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
9170         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
9171         instead of hard_regno_nregs.
9173 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
9175         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
9176         end_hard_regno instead of hard_regno_nregs.
9177         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
9178         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
9179         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
9180         * ira-color.c (improve_allocation): Likewise.
9181         * lra-assigns.c (find_hard_regno_for_1): Likewise.
9182         * lra-lives.c (mark_regno_live): Likewise.
9183         (mark_regno_dead): Likewise.
9184         * lra-remat.c (operand_to_remat): Likewise.
9185         * lra.c (collect_non_operand_hard_regs): Likewise.
9186         * postreload.c (reload_combine_note_store): Likewise.
9187         (move2add_valid_value_p): Likewise.
9188         * reload.c (regno_clobbered_p): Likewise.
9190 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
9192         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
9193         hard_regno_nregs.
9194         * config/v850/v850.c (v850_reorg): Likewise.
9195         * reload.c (refers_to_regno_for_reload_p): Likewise.
9196         (find_equiv_reg): Likewise.
9197         * reload1.c (reload_reg_reaches_end_p): Likewise.
9199 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
9201         * caller-save.c (add_used_regs): Use REG_NREGS instead of
9202         hard_regno_nregs.
9203         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
9204         * config/arm/arm.c (output_move_neon): Likewise.
9205         (arm_attr_length_move_neon): Likewise.
9206         (neon_split_vcombine): Likewise.
9207         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
9208         (c6x_mark_reg_written): Likewise.
9209         (c6x_dwarf_register_span): Likewise.
9210         * config/i386/i386.c (ix86_save_reg): Likewise.
9211         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
9212         (rws_access_reg): Likewise.
9213         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
9214         * mode-switching.c (create_pre_exit): Likewise.
9215         * ree.c (combine_reaching_defs): Likewise.
9216         (add_removable_extension): Likewise.
9217         * regcprop.c (find_oldest_value_reg): Likewise.
9218         (copyprop_hardreg_forward_1): Likewise.
9219         * reload.c (reload_inner_reg_of_subreg): Likewise.
9220         (push_reload): Likewise.
9221         (combine_reloads): Likewise.
9222         (find_dummy_reload): Likewise.
9223         (reload_adjust_reg_for_mode): Likewise.
9224         * reload1.c (find_reload_regs): Likewise.
9225         (forget_old_reloads_1): Likewise.
9226         (reload_reg_free_for_value_p): Likewise.
9227         (reload_adjust_reg_for_temp): Likewise.
9228         (emit_reload_insns): Likewise.
9229         (delete_output_reload): Likewise.
9230         * sel-sched.c (choose_best_reg_1): Likewise.
9231         (choose_best_pseudo_reg): Likewise.
9233 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
9234             Alan Hayward  <alan.hayward@arm.com>
9235             David Sherwood <david.sherwood@arm.com>
9237         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
9238         * target.def (slow_unaligned_access): New hook.
9239         * targhooks.h (default_slow_unaligned_access): Declare.
9240         * targhooks.c (default_slow_unaligned_access): New function.
9241         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
9242         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
9243         * doc/tm.texi: Regenerate.
9244         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
9245         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
9246         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
9247         definition.
9248         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
9249         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
9250         Redefine.
9251         (rs6000_slow_unaligned_access): New function.
9252         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
9253         (expand_block_compare): Likewise.
9254         (expand_strn_compare): Likewise.
9255         (rs6000_rtx_costs): Likewise.
9256         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
9257         (riscv_slow_unaligned_access): Likewise.
9258         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
9259         (riscv_slow_unaligned_access_p): ...this and make static.
9260         (riscv_option_override): Update accordingly.
9261         (riscv_slow_unaligned_access): New function.
9262         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
9263         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
9264         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
9265         (rs6000_slow_unaligned_access): New function.
9266         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
9267         (rs6000_rtx_costs): Likewise.
9268         * config/rs6000/rs6000-string.c (expand_block_compare)
9269         (expand_strn_compare): Use targetm.slow_unaligned_access instead
9270         of SLOW_UNALIGNED_ACCESS.
9271         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
9272         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
9273         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
9274         of SLOW_UNALIGNED_ACCESS.
9275         * expmed.c (simple_mem_bitfield_p): Likewise.
9276         * expr.c (alignment_for_piecewise_move): Likewise.
9277         (emit_group_load_1): Likewise.
9278         (emit_group_store): Likewise.
9279         (copy_blkmode_from_reg): Likewise.
9280         (emit_push_insn): Likewise.
9281         (expand_assignment): Likewise.
9282         (store_field): Likewise.
9283         (expand_expr_real_1): Likewise.
9284         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
9285         * lra-constraints.c (simplify_operand_subreg): Likewise.
9286         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
9287         * gimple-ssa-store-merging.c: Likewise in block comment at start
9288         of file.
9289         * tree-ssa-strlen.c: Include target.h.
9290         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
9291         of SLOW_UNALIGNED_ACCESS.
9292         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
9294 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
9296         PR rtl-optimization/82185
9297         * expmed.c (emit_store_flag_int): Only test tem if it has been
9298         initialized.
9300 2017-09-12  Richard Biener  <rguenther@suse.de>
9302         PR middle-end/82149
9303         * match.pd ((FTYPE) N CMP CST): Fix typo.
9305 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
9307         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
9308         attribute.
9309         (mips_near_type_p): Add 'short_call' attribute as a synonym
9310         for 'near'.
9311         * doc/extend.texi (short_call): Document new function attribute.
9313 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
9315         PR target/82112
9316         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
9317         assertion check that in the condition.
9318         (get_atomic_generic_size): Likewise.  Before testing if parameter
9319         has pointer type, if it has array type, call for C++
9320         default_conversion to perform array-to-pointer conversion.
9322 2017-09-12  Richard Biener  <rguenther@suse.de>
9324         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
9325         for operations we cannot scalarize.
9327 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
9329         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
9330         vectors heap vectors.  Clean up comments.
9331         Make visited_bbs a reference.
9332         (profitable_jump_thread_path): Make GC
9333         vectors heap vectors.  Clean up comments.
9334         Misc cleanups.
9335         (convert_and_register_jump_thread_path): Make GC vectors heap
9336         vectors.
9337         (check_subpath_and_update_thread_path): Same.  Clean up comments.
9338         Make visited_bbs a reference.
9339         (handle_phi): Abstract common code to to
9340         register_jump_thread_path_if_profitable.
9341         Rename VAR_BB to DEF_BB.
9342         Update comments.
9343         Make GC vectors heap vectors.
9344         Make visited_bbs a reference.
9345         (handle_assignment): Same.
9346         (register_jump_thread_path_if_profitable): New.
9347         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
9348         DEF_BB.
9349         Make GC vectors heap vectors.  Clean up comments.
9350         Make visited_bbs a reference.
9351         (find_jump_threads_backwards): Make visited_bbs live in the stack.
9352         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
9353         comment.
9355 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
9357         PR target/82181
9358         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
9359         words of E_DImode object are reachable by xtensa_uimm8x4 access.
9361 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
9363         Revert r251800 and r251799.
9365 2017-09-11  Martin Jambor  <mjambor@suse.cz>
9367         PR hsa/82119
9368         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
9369         arguments in advance.
9370         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
9371         use it to find predecessor edges.
9372         (naive_outof_ssa): Collect vector of predecessors.
9374 2017-09-08  Jason Merrill  <jason@redhat.com>
9376         PR c++/70029 - ICE with ref-qualifier and -flto
9377         * langhooks.h (struct lang_hooks_for_types): Add
9378         copy_lang_qualifiers.
9379         * attribs.c (build_type_attribute_qual_variant): Use it.
9380         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
9381         NULL.
9382         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
9383         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
9385 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
9387         PR target/81988
9388         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
9389         (*mulsi3_sp64): New instruction.
9390         (mulsi3): New expander.
9392 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
9394         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
9396 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9398         * sancov.c: Include memmodel.h.
9400 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
9402         PR target/80897
9403         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
9404         large offsets.
9406 2017-09-07  Carl Love  <cel@us.ibm.com>
9408         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
9409         the sldi instruction.
9411 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
9413         * sancov.c: Include tm_p.h.
9415 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
9417         PR target/81979
9418         * output.h (switch_to_other_text_partition): New declaration.
9419         * varasm.c (switch_to_other_text_partition): New function.
9420         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
9421         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
9422         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
9423         to the other text partition before emitting LCL label and switch back
9424         after emitting the word after it.
9426 2017-09-07  Richard Biener  <rguenther@suse.de>
9428         * passes.def (pass_split_crit_edges): Remove instance before PRE.
9429         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
9430         critical edges here, after loop init.
9431         (pass_data_pre): Remove PROP_no_crit_edges flags.
9432         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
9433         for valueization of call args to avoid leaking VN_TOP.
9434         (visit_use): Assert we do not visit default defs.
9435         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
9436         Use error_mark_node to more easily detect leaking VN_TOP.
9437         All default-defs are varying, not VN_TOP.  Mark them visited.
9438         (run_scc_vn): Make code match comment.
9440 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
9442         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
9443         OPTION_MASK_FLOAT128_KEYWORD.
9444         (POWERPC_MASKS): Likewise.
9445         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
9446         support for the -mfloat128-type option, and make -mfloat128
9447         default on PowerPC Linux systems.  Define or undefine
9448         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
9449         Define __float128 to be __ieee128 if IEEE 128-bit support is
9450         enabled, or undefine it.
9451         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
9452         Delete defining __FLOAT128_TYPE__.
9453         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
9454         -mfloat128-type option and make -mfloat128 default on PowerPC
9455         Linux systems.
9456         (TARGET_FLOAT128_TYPE): Likewise.
9457         (-mfloat128-type): Likewise.
9458         * config/rs6000/rs6000.c (rs6000_option_override_internal):
9459         Delete the -mfloat128-type option and make -mfloat128 default on
9460         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
9461         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
9462         128-bit floating point is enabled.  Change tests from using
9463         -mfloat128-type to -mfloat128.
9464         (rs6000_mangle_type): Use the correct mangling for the __float128
9465         type even if normal long double is restricted to 64-bits.
9466         (floatn_mode): Enable the _Float128 type by default on VSX Linux
9467         systems.
9468         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
9469         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
9470         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
9471         -mfloat128-type.
9472         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
9473         documentation for -mfloat128.
9475 2017-09-06  Olivier Hainque  <hainque@adacore.com>
9477         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
9479 2017-09-06  Wish Wu  <wishwu007@gmail.com>
9480             Jakub Jelinek  <jakub@redhat.com>
9482         * asan.c (initialize_sanitizer_builtins): Add
9483         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
9484         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
9485         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
9486         BT_FN_VOID_UINT64_PTR variables.
9487         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
9488         (BT_FN_VOID_UINT16_UINT16): Likewise.
9489         (BT_FN_VOID_UINT32_UINT32): Likewise.
9490         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
9491         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
9492         (BT_FN_VOID_UINT64_PTR): Likewise.
9493         * common.opt (flag_sanitize_coverage): New variable.
9494         (fsanitize-coverage=trace-pc): Remove.
9495         (fsanitize-coverage=): Add.
9496         * flag-types.h (enum sanitize_coverage_code): New enum.
9497         * fold-const.c (fold_range_test): Disable non-short-circuit
9498         optimization if flag_sanitize_coverage.
9499         (fold_truth_andor): Likewise.
9500         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
9501         * opts.c (COVERAGE_SANITIZER_OPT): Define.
9502         (coverage_sanitizer_opts): New array.
9503         (get_closest_sanitizer_option): Add OPTS argument, handle also
9504         OPT_fsanitize_coverage_.
9505         (parse_sanitizer_options): Adjusted to also handle
9506         OPT_fsanitize_coverage_.
9507         (common_handle_option): Add OPT_fsanitize_coverage_.
9508         * sancov.c (instrument_comparison, instrument_switch): New function.
9509         (sancov_pass): Add trace-cmp support.
9510         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
9511         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
9512         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
9513         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
9514         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
9515         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
9516         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
9517         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
9518         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
9519         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
9521 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
9523         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
9524         error.  Only quit immediately if parsing is complete.
9525         (BEGIN): Initialize fatal_err and parse_done.
9526         (begin fpu, end fpu): Check number of arguments.
9527         (begin arch, end arch): Likewise.
9528         (begin cpu, end cpu): Likewise.
9529         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
9530         (optalias): Likewise.
9532 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
9534         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
9535         * config/arm/arm-isa.h: Delete.  Move definitions to ...
9536         * arm-cpus.in: ... here.  Use new feature and fgroup values.
9537         * config/arm/arm.c (arm_option_override): Use lower case for feature
9538         bit names.
9539         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
9540         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
9541         * config/arm/parsecpu.awk (END): Add new command 'isa'.
9542         (isa_pfx): Delete.
9543         (print_isa_bits_for): New function.
9544         (gen_isa): New function.
9545         (gen_comm_data): Use print_isa_bits_for.
9546         (define feature): New keyword.
9547         (define fgroup): New keyword.
9548         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
9549         (arm-isa.h): Add rule to generate file.
9550         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
9551         case for feature bit names.
9553 2017-09-06  Richard Biener  <rguenther@suse.de>
9555         * tree-ssa-pre.c (NECESSARY): Remove.
9556         (create_expression_by_pieces): Do not touch pass-local flags.
9557         (insert_into_preds_of_block): Likewise.
9558         (do_pre_regular_insertion): Likewise.
9559         (eliminate_insert): Likewise.
9560         (eliminate_dom_walker::before_dom_children): Likewise.
9561         (fini_eliminate): Do not look at inserted_exprs.
9562         (mark_operand_necessary): Remove.
9563         (remove_dead_inserted_code): Replace with simple work-list
9564         algorithm based on inserted_exprs and SSA uses.
9565         (pass_pre::execute): Re-order fini_eliminate and
9566         remove_dead_inserted_code.
9568 2017-09-06  Olivier Hainque  <hainque@adacore.com>
9570         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
9571         for VxWorks 7.  Adjust surrounding comments.
9573 2017-09-06  Richard Biener  <rguenther@suse.de>
9575         * gimple-ssa-strength-reduction.c
9576         (find_candidates_dom_walker::before_dom_children): Also allow
9577         pointer types.
9579 2017-09-06  Richard Biener  <rguenther@suse.de>
9581         PR tree-optimization/82108
9582         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
9583         for gap in the non-permutation SLP case.
9585 2017-09-06  Martin Jambor  <mjambor@suse.cz>
9587         PR tree-optimization/82078
9588         * tree-sra.c (sort_and_splice_var_accesses): Move call to
9589         add_access_to_work_queue...
9590         (build_accesses_from_assign): ...here.
9591         (propagate_all_subaccesses): Make sure racc is the group
9592         representative, if there is one.
9594 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
9596         PR middle-end/82095
9597         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
9598         NULL DECL_INITIAL.
9600 2017-09-06  Richard Biener  <rguenther@suse.de>
9602         * gimple-ssa-strength-reduction.c
9603         (find_candidates_dom_walker::before_doom_children): Use a
9604         type and not a mode check.
9606 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9608         PR target/77308
9609         * config/arm/predicates.md (arm_general_adddi_operand): Create new
9610         non-vfp predicate.
9611         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
9613 2017-09-05  Jeff Law  <law@redhat.com>
9615         PR tree-optimization/64910
9616         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
9617         cases where we have 3 or more operands.
9619 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
9621         PR middle-end/81768
9622         * omp-low.c (lower_omp_for): Recompute tree invariant if
9623         gimple_omp_for_initial/final is ADDR_EXPR.
9625         PR middle-end/81768
9626         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
9627         into gimple val before gimplification fo the COND_EXPR.
9629 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
9631         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
9632         REGION_COPY argument.
9633         (thread_through_all_blocks): Remove unused argument to
9634         duplicate_thread_path.
9636 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9637             Alan Hayward  <alan.hayward@arm.com>
9638             David Sherwood  <david.sherwood@arm.com>
9640         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
9641         Take a scalar_mode rather than a machine_mode.
9642         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
9643         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
9644         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
9645         (aarch64_gen_adjusted_ldpstp): Likewise.
9646         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
9648 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9649             Alan Hayward  <alan.hayward@arm.com>
9650             David Sherwood  <david.sherwood@arm.com>
9652         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
9653         Take a scalar_int_mode instead of a machine_mode.
9654         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
9655         (aarch64_output_scalar_simd_mov_immediate): Likewise.
9656         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
9657         (aarch64_simd_attr_length_rglist): Delete.
9658         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
9659         a scalar_int_mode instead of a machine_mode.
9660         (aarch64_add_offset): Likewise.
9661         (aarch64_internal_mov_immediate): Likewise
9662         (aarch64_add_constant_internal): Likewise.
9663         (aarch64_add_constant): Likewise.
9664         (aarch64_movw_imm): Likewise.
9665         (aarch64_rtx_arith_op_extract_p): Likewise.
9666         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
9667         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
9668         Remove assert that the mode isn't a vector.
9669         (aarch64_output_scalar_simd_mov_immediate): Likewise.
9670         (aarch64_expand_mov_immediate): Update calls after above changes.
9671         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
9672         (aarch64_and_bitmask_imm): Check for scalar integer modes.
9673         (aarch64_move_imm): Likewise.
9674         (aarch64_can_const_movi_rtx_p): Likewise.
9675         (aarch64_strip_extend): Likewise.
9676         (aarch64_extr_rtx_p): Likewise.
9677         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
9678         a CONST_INT when the mode parameter is VOIDmode.
9679         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
9681 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9683         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
9684         * stor-layout.c (bitwise_mode_for_mode): Likewise.
9685         (bitwise_type_for_mode): Update accordingly.
9687 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9689         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
9690         * stor-layout.c (mode_for_size_tree): Likewise.
9691         (mode_for_array): Update accordingly.
9692         (layout_decl): Likewise.
9693         (compute_record_mode): Likewise.  Only set the mode once.
9695 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9697         * target.def (get_mask_mode): Change return type to opt_mode.
9698         Expand commentary.
9699         * doc/tm.texi: Regenerate.
9700         * targhooks.h (default_get_mask_mode): Return an opt_mode.
9701         * targhooks.c (default_get_mask_mode): Likewise.
9702         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
9703         * optabs-query.c (can_vec_mask_load_store_p): Update use of
9704         targetm.get_mask_mode.
9705         * tree.c (build_truth_vector_type): Likewise.
9707 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9709         * machmode.h (mode_for_vector): Return an opt_mode.
9710         * stor-layout.c (mode_for_vector): Likewise.
9711         (mode_for_int_vector): Update accordingly.
9712         (layout_type): Likewise.
9713         * config/i386/i386.c (emit_memmov): Likewise.
9714         (ix86_expand_set_or_movmem): Likewise.
9715         (ix86_expand_vector_init): Likewise.
9716         (ix86_get_mask_mode): Likewise.
9717         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
9718         Likewise.
9719         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
9720         * expmed.c (extract_bit_field_1): Likewise.
9721         * expr.c (expand_expr_real_2): Likewise.
9722         * optabs-query.c (can_vec_perm_p): Likewise.
9723         (can_vec_mask_load_store_p): Likewise.
9724         * optabs.c (expand_vec_perm): Likewise.
9725         * targhooks.c (default_get_mask_mode): Likewise.
9726         * tree-vect-stmts.c (vectorizable_store): Likewise.
9727         (vectorizable_load): Likewise.
9728         (get_vectype_for_scalar_type_and_size): Likewise.
9730 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9732         * machmode.h (mode_for_int_vector): New function.
9733         * stor-layout.c (mode_for_int_vector): Likewise.
9734         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
9735         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
9736         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
9737         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
9738         (s390_expand_vcond): Likewise.
9740 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9742         * machmode.h (opt_machine_mode): New type.
9743         (opt_mode<T>): Allow construction from anything that can be
9744         converted to a T.
9745         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
9746         (mode_for_size): Return an opt_machine_mode.
9747         * stor-layout.c (mode_for_size): Likewise.
9748         (mode_for_size_tree): Update call accordingly.
9749         (bitwise_mode_for_mode): Likewise.
9750         (make_fract_type): Likewise.
9751         (make_accum_type): Likewise.
9752         * caller-save.c (replace_reg_with_saved_mem): Update call
9753         accordingly.
9754         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
9755         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
9756         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
9757         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
9758         * expmed.c (extract_bit_field_1): Likewise.
9759         * reload.c (get_secondary_mem): Likewise.
9760         * varasm.c (assemble_integer): Likewise.
9761         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
9762         early-out.
9764 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9766         * machmode.h (decimal_float_mode_for_size): New function.
9767         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
9768         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
9769         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
9770         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
9771         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
9772         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
9774 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9776         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
9777         (get_builtin_sync_mode): Likewise.
9778         (expand_ifn_atomic_compare_exchange): Likewise.
9779         (expand_builtin_atomic_clear): Likewise.
9780         (expand_builtin_atomic_test_and_set): Likewise.
9781         (fold_builtin_atomic_always_lock_free): Likewise.
9782         * calls.c (compute_argument_addresses): Likewise.
9783         (emit_library_call_value_1): Likewise.
9784         (store_one_arg): Likewise.
9785         * combine.c (combine_instructions): Likewise.
9786         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
9787         * config/arm/arm.c (arm_function_value): Likewise.
9788         (aapcs_allocate_return_reg): Likewise.
9789         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
9790         * config/i386/i386.c (construct_container): Likewise.
9791         (ix86_gimplify_va_arg): Likewise.
9792         (ix86_expand_sse_cmp): Likewise.
9793         (emit_memmov): Likewise.
9794         (emit_memset): Likewise.
9795         (expand_small_movmem_or_setmem): Likewise.
9796         (ix86_expand_pextr): Likewise.
9797         (ix86_expand_pinsr): Likewise.
9798         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
9799         * config/microblaze/microblaze.c (microblaze_block_move_straight):
9800         Likewise.
9801         * config/mips/mips.c (mips_function_value_1) Likewise.
9802         (mips_block_move_straight): Likewise.
9803         (mips_expand_ins_as_unaligned_store): Likewise.
9804         * config/powerpcspe/powerpcspe.c
9805         (rs6000_darwin64_record_arg_advance_flush): Likewise.
9806         (rs6000_darwin64_record_arg_flush): Likewise.
9807         * config/rs6000/rs6000.c
9808         (rs6000_darwin64_record_arg_advance_flush): Likewise.
9809         (rs6000_darwin64_record_arg_flush): Likewise.
9810         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
9811         (sparc_function_value_1): Likewise.
9812         * config/spu/spu.c (adjust_operand): Likewise.
9813         (spu_emit_branch_or_set): Likewise.
9814         (arith_immediate_p): Likewise.
9815         * emit-rtl.c (gen_lowpart_common): Likewise.
9816         * expr.c (expand_expr_real_1): Likewise.
9817         * function.c (assign_parm_setup_block): Likewise.
9818         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
9819         * reload1.c (alter_reg): Likewise.
9820         * stor-layout.c (mode_for_vector): Likewise.
9821         (layout_type): Likewise.
9823 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
9825         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
9826         (spu_convert_move): Likewise.
9827         * lower-subreg.c (resolve_simple_move): Likewise.
9829 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9831         PR target/81833
9832         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
9833         define_insn to a define_expand.
9834         (altivec_vsum2sws_direct): New define_insn.
9835         (altivec_vsumsws): Convert from a define_insn to a define_expand.
9837 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
9839         * config/arm/arm.c (arm_option_params_internal): Improve setting of
9840         max_insns_skipped.
9842 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
9844         PR target/59501
9845         PR target/81624
9846         PR target/81769
9847         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
9848         realign stack if stack alignment needed is less than incoming
9849         stack boundary.
9851 2017-09-05  Marek Polacek  <polacek@redhat.com>
9853         PR sanitizer/82072
9854         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
9855         check earlier.
9857 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
9859         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
9861 2017-09-05  Richard Biener  <rguenther@suse.de>
9863         PR tree-optimization/82084
9864         * fold-const.c (can_native_encode_string_p): Handle wide characters.
9866 2017-09-05  Richard Biener  <rguenther@suse.de>
9868         PR tree-optimization/82102
9869         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
9871 2017-09-05  Martin Liska  <mliska@suse.cz>
9873         PR tree-optimization/82032
9874         * tree-cfg.c (generate_range_test): New function.
9875         * tree-cfg.h (generate_range_test): Declared here.
9876         * tree-cfgcleanup.c (convert_single_case_switch): New function.
9877         (cleanup_control_expr_graph): Use it.
9878         * tree-switch-conversion.c (try_switch_expansion): Remove
9879         assert.
9880         (emit_case_nodes): Use generate_range_test.
9882 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
9884         PR target/82098
9885         * config/i386/i386.md (*<btsc><mode>_mask): Add
9886         TARGET_USE_BT to insn constraint.
9887         (*btr<mode>_mask): Ditto.
9889 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
9891         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
9892         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
9894 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9896         PR target/77308
9897         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
9898         TARGET_NEON and TARGET_IWMMXT.
9899         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
9900         TARGET_NEON and TARGET_IWMMXT.
9901         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
9903 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
9905         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
9906         (ix86_rewrite_tls_address): Ditto.
9907         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
9908         (ix86_rewrite_tls_address_1): Ditto.
9909         (ix86_rewrite_tls_address): Ditto.
9910         * config/i386/predicates.md (tls_address_pattern): New predicate.
9911         * config/i386/i386.md (TLS address splitter): New splitter.
9913 2017-09-04  Richard Biener  <rguenther@suse.de>
9915         PR tree-optimization/82084
9916         * fold-const.h (can_native_encode_string_p): Declare.
9917         * fold-const.c (can_native_encode_string_p): Factor out from ...
9918         (native_encode_string): ... here.
9919         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
9920         vectorizing stores from constants we later cannot handle.
9922 2017-09-04  Marek Polacek  <polacek@redhat.com>
9924         PR c/81783
9925         * doc/invoke.texi: Update -Wtautological-compare documentation.
9927 2017-09-04  Jeff Law  <law@redhat.com>
9929         PR tree-optimization/64910
9930         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
9931         swap the first and last operand if the last is a constant.
9933 2017-09-04  Marek Polacek  <polacek@redhat.com>
9935         PR sanitizer/82072
9936         * convert.c (do_narrow): When sanitizing signed integer overflows,
9937         bail out for signed types.
9938         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
9940 2017-09-04  Richard Biener  <rguenther@suse.de>
9942         PR tree-optimization/82060
9943         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9944         Move devirtualization after stmt folding and before EH/AB/noreturn
9945         cleanup to get the stmt refs canonicalized.  Use a bool instead
9946         of gimple_modified_p since that doesn't work for NOPs.  Schedule
9947         NOPs generated by folding for removal.
9949 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
9950             Alan Hayward  <alan.hayward@arm.com>
9951             David Sherwood  <david.sherwood@arm.com>
9953         * coretypes.h (pad_direction): New enum.
9954         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
9955         (FUNCTION_ARG_PADDING): Likewise.
9956         * target.def (function_arg_padding): New hook.
9957         * targhooks.h (default_function_arg_padding): Declare.
9958         * targhooks.c (default_function_arg_padding): New function.
9959         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
9960         (TARGET_FUNCTION_ARG_PADDING): ...this.
9961         * doc/tm.texi: Regenerate.
9962         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
9963         instead of direction.
9964         (compute_argument_addresses): Likewise.
9965         (load_register_parameters): Likewise.
9966         (emit_library_call_value_1): Likewise.
9967         (store_one_arg): Use targetm.calls.function_arg_padding instead
9968         of FUNCTION_ARG_PADDING.
9969         (must_pass_in_stack_var_size_or_pad): Likewise.
9970         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
9971         (emit_group_store): Likewise.
9972         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
9973         instead of FUNCTION_ARG_PADDING.
9974         (emit_push_insn): Likewise, and propagate enum change throughout
9975         function.
9976         * function.h (direction): Delete.
9977         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
9978         of direction.
9979         * function.c (assign_parm_find_stack_rtl): Likewise.
9980         (assign_parm_setup_block_p): Likewise.
9981         (assign_parm_setup_block): Likewise.
9982         (gimplify_parameters): Likewise.
9983         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
9984         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
9985         function.
9986         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
9987         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
9988         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
9989         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
9990         (aarch64_function_arg_padding): ...this new function.
9991         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
9992         (TARGET_FUNCTION_ARG_PADDING): Redefine.
9993         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
9994         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
9995         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
9996         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
9997         (arm_pad_arg_upward): Replace with...
9998         (arm_function_arg_padding): ...this new function.
9999         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
10000         of direction.
10001         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
10002         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
10003         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
10004         (ia64_hpux_function_arg_padding): Replace with...
10005         (ia64_function_arg_padding): ...this new function.  Use pad_direction
10006         instead of direction.  Check for TARGET_HPUX.
10007         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
10008         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
10009         (iq2000_function_arg_padding): New function.
10010         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
10011         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
10012         (mips_function_arg_padding): ...this new function.
10013         (mips_pad_reg_upward): Update accordingly.
10014         (TARGET_FUNCTION_ARG_PADDING): Redefine.
10015         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
10016         targetm.calls.function_arg_padding.
10017         (FUNCTION_ARG_PADDING): Delete.
10018         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
10019         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
10020         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
10021         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
10022         (nios2_block_reg_padding): Return pad_direction instead of direction.
10023         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
10024         instead of direction.
10025         (nios2_function_arg_padding): Likewise.  Make static.
10026         (TARGET_FUNCTION_ARG_PADDING): Redefine.
10027         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
10028         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
10029         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
10030         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
10031         (pa_function_arg_padding): Make static.  Return pad_direction instead
10032         of direction.
10033         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
10034         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
10035         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
10036         instead of direction.  Use targetm.calls.function_arg_padding.
10037         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
10038         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
10039         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
10040         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
10041         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
10042         Redefine.
10043         (function_arg_padding): Rename to...
10044         (rs6000_function_arg_padding): ...this.  Make static.  Return
10045         pad_direction instead of direction.
10046         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
10047         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
10048         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
10049         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
10050         instead of direction.  Use targetm.calls.function_arg_padding.
10051         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
10052         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
10053         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
10054         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
10055         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
10056         (function_arg_padding): Rename to...
10057         (rs6000_function_arg_padding): ...this.  Make static.  Return
10058         pad_direction instead of direction.
10059         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
10060         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
10061         * config/s390/s390.c (s390_function_arg_padding): New function.
10062         (TARGET_FUNCTION_ARG_PADDING): Redefine.
10063         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
10064         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
10065         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
10066         (function_arg_padding): Rename to...
10067         (sparc_function_arg_padding): ...this.  Make static.  Return
10068         pad_direction instead of direction.
10069         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
10070         * config/spu/spu.c (spu_function_arg_padding): New function.
10071         (TARGET_FUNCTION_ARG_PADDING): Redefine.
10072         * system.h (FUNCTION_ARG_PADDING): Poison.
10074 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
10075             Alan Hayward  <alan.hayward@arm.com>
10076             David Sherwood  <david.sherwood@arm.com>
10078         * target.def (modes_tieable_p): New hook.
10079         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
10080         (TARGET_MODES_TIEABLE_P): ...this.
10081         * doc/tm.texi.in: Regenerate.
10082         * hooks.h (hook_bool_mode_mode_true): Declare.
10083         * hooks.c (hook_bool_mode_mode_true): New function.
10084         * combine.c (subst): Use targetm.modes_tieable_p instead of
10085         MODES_TIEABLE_P.
10086         * dse.c (find_shift_sequence): Likewise.
10087         * expmed.c (extract_low_bits): Likewise.
10088         * lower-subreg.c: Include target.h.
10089         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
10090         MODES_TIEABLE_P.
10091         * rtlanal.c (rtx_cost): Likewise.
10092         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
10093         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
10094         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
10095         (TARGET_MODES_TIEABLE_P): Redefine.
10096         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
10097         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
10098         (TARGET_MODES_TIEABLE_P): Redefine.
10099         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
10100         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
10101         (arc_modes_tieable_p): New function.
10102         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
10103         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
10104         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
10105         (arm_modes_tieable_p): Make static.
10106         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
10107         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
10108         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
10109         (TARGET_MODES_TIEABLE_P): Redefine.
10110         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
10111         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
10112         (TARGET_MODES_TIEABLE_P): Redefine.
10113         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
10114         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
10115         (cr16_modes_tieable_p): New function.
10116         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
10117         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
10118         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
10119         (TRULY_NOOP_TRUNCATION): Update comment.
10120         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
10121         (TRULY_NOOP_TRUNCATION): Update comment.
10122         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
10123         (frv_modes_tieable_p): New function.
10124         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
10125         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
10126         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
10127         (TARGET_MODES_TIEABLE_P): Redefine.
10128         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
10129         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
10130         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
10131         (TARGET_MODES_TIEABLE_P): Redefine.
10132         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
10133         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
10134         (ia64_modes_tieable_p): New function.
10135         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
10136         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
10137         (iq2000_modes_tieable_p): New function.
10138         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
10139         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
10140         (lm32_modes_tieable_p): New function.
10141         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
10142         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
10143         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
10144         (TARGET_MODES_TIEABLE_P): Redefine.
10145         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
10146         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
10147         (m32r_modes_tieable_p): New function.
10148         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
10149         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
10150         (m68k_modes_tieable_p): New function.
10151         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
10152         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
10153         (mcore_modes_tieable_p): New function.
10154         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
10155         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
10156         function.
10157         (TARGET_MODES_TIEABLE_P): Redefine.
10158         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
10159         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
10160         * config/mips/mips.c (mips_modes_tieable_p): Make static.
10161         (TARGET_MODES_TIEABLE_P): Redefine.
10162         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
10163         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
10164         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
10165         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
10166         (mn10300_modes_tieable_p): ...this and make static.
10167         (TARGET_MODES_TIEABLE_P): Redefine.
10168         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
10169         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
10170         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
10171         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
10172         (msp430_modes_tieable_p): Make static.
10173         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
10174         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
10175         (TARGET_MODES_TIEABLE_P): Redefine.
10176         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
10177         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
10178         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
10179         (TARGET_MODES_TIEABLE_P): Redefine.
10180         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
10181         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
10182         * config/pa/pa.c (pa_modes_tieable_p): Make static.
10183         (TARGET_MODES_TIEABLE_P): Redefine.
10184         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
10185         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
10186         (pdp11_modes_tieable_p): New function.
10187         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
10188         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
10189         (rs6000_modes_tieable_p): New function.
10190         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
10191         * config/powerpcspe/powerpcspe.md: Update comment.
10192         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
10193         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
10194         (TARGET_MODES_TIEABLE_P): Redefine.
10195         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
10196         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
10197         (rl78_modes_tieable_p): New function.
10198         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
10199         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
10200         (rs6000_modes_tieable_p): New function.
10201         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
10202         * config/rs6000/rs6000.md: Update comment.
10203         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
10204         * config/rx/rx.c (rx_modes_tieable_p): New function.
10205         (TARGET_MODES_TIEABLE_P): Redefine.
10206         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
10207         * config/s390/s390.c (s390_modes_tieable_p): New function.
10208         (TARGET_MODES_TIEABLE_P): Redefine.
10209         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
10210         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
10211         (sh_modes_tieable_p): New function.
10212         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
10213         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
10214         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
10215         (sparc_modes_tieable_p): Make static.
10216         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
10217         * config/spu/spu.c (spu_modes_tieable_p): New function.
10218         (TARGET_MODES_TIEABLE_P): Redefine.
10219         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
10220         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
10221         (TARGET_MODES_TIEABLE_P): Redefine.
10222         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
10223         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
10224         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
10225         * config/v850/v850.c (v850_modes_tieable_p): New function.
10226         (TARGET_MODES_TIEABLE_P): Redefine.
10227         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
10228         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
10229         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
10230         (visium_modes_tieable_p): New function.
10231         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
10232         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
10233         (xtensa_modes_tieable_p): New function.
10234         * system.h (MODES_TIEABLE_P): Poison.
10236 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
10237             Alan Hayward  <alan.hayward@arm.com>
10238             David Sherwood  <david.sherwood@arm.com>
10240         * target.def (hard_regno_mode_ok): New hook.
10241         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
10242         (TARGET_HARD_REGNO_MODE_OK): ...this.
10243         * doc/tm.texi.in: Regenerate.
10244         * hooks.h (hook_bool_uint_mode_true): Declare.
10245         * hooks.c (hook_bool_uint_mode_true): New function.
10246         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
10247         HARD_REGNO_MODE_OK.
10248         * genpreds.c (write_insn_preds_c): Add an include of target.h.
10249         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
10250         instead of HARD_REGNO_MODE_OK.
10251         * caller-save.c: Include target.h.
10252         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
10253         HARD_REGNO_MODE_OK.
10254         * combine.c (can_combine_p): Likewise.
10255         (combinable_i3pat): Likewise.
10256         (can_change_dest_mode): Likewise.
10257         * expr.c (init_expr_target): Likewise.
10258         (convert_move): Likewise.
10259         (convert_modes): Likewise.
10260         * ira.c (setup_prohibited_class_mode_regs): Likewise.
10261         (setup_prohibited_mode_move_regs): Likewise.
10262         * ira.h (target_ira): Likewise.
10263         * lra-assigns.c (find_hard_regno_for_1): Likewise.
10264         * lra-constraints.c (process_alt_operands): Likewise.
10265         (split_reg): Likewise.
10266         * recog.c (peep2_find_free_register): Likewise.
10267         * ree.c (combine_reaching_defs): Likewise.
10268         * regcprop.c (maybe_mode_change): Likewise.
10269         * reginfo.c (init_reg_sets_1): Likewise.
10270         (choose_hard_reg_mode): Likewise.
10271         (simplifiable_subregs): Likewise.
10272         * regrename.c (check_new_reg_p): Likewise.
10273         * reload.c (find_valid_class): Likewise.
10274         (find_valid_class_1): Likewise.
10275         (reload_inner_reg_of_subreg): Likewise.
10276         (push_reload): Likewise.
10277         (combine_reloads): Likewise.
10278         (find_dummy_reload): Likewise.
10279         (find_reloads): Likewise.
10280         * reload1.c (find_reg): Likewise.
10281         (set_reload_reg): Likewise.
10282         (allocate_reload_reg): Likewise.
10283         (choose_reload_regs): Likewise.
10284         (reload_adjust_reg_for_temp): Likewise.
10285         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
10286         (simplify_subreg_regno): Likewise.
10287         * sel-sched.c (init_regs_for_mode): Likewise.
10288         * varasm.c (make_decl_rtl): Likewise.
10289         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
10290         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
10291         HARD_REGNO_MODE_OK.
10292         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
10293         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
10294         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10295         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
10296         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
10297         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10298         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
10299         (arc_mode_class): Delete.
10300         (HARD_REGNO_MODE_OK): Delete.
10301         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10302         (arc_hard_regno_mode_ok): Rename old array to...
10303         (arc_hard_regno_mode_ok_modes): ...this.
10304         (arc_conditional_register_usage): Update accordingly.
10305         (arc_mode_class): Make static.
10306         (arc_hard_regno_mode_ok): New function.
10307         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
10308         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
10309         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10310         (arm_hard_regno_mode_ok): Make static.
10311         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
10312         HARD_REGNO_MODE_OK.
10313         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
10314         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
10315         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
10316         return a bool.
10317         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10318         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
10319         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
10320         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
10321         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
10322         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10323         * config/bfin/predicates.md (valid_reg_operand): Use
10324         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
10325         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
10326         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
10327         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10328         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
10329         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
10330         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10331         (cr16_hard_regno_mode_ok): Make static and return a bool.
10332         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
10333         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10334         (cris_hard_regno_mode_ok): New function.
10335         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
10336         (epiphany_mode_class): Delete.
10337         (HARD_REGNO_MODE_OK): Delete.
10338         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
10339         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10340         (hard_regno_mode_ok): Rename to...
10341         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
10342         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
10343         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
10344         HARD_REGNO_MODE_OK.
10345         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
10346         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
10347         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10348         (frv_hard_regno_mode_ok): Make static and return a bool.
10349         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
10350         HARD_REGNO_MODE_OK.
10351         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
10352         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
10353         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
10354         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
10355         and return a bool.
10356         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10357         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
10358         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
10359         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
10360         return a bool.
10361         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10362         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
10363         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10364         (ia64_hard_regno_mode_ok): New function.
10365         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
10366         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10367         (iq2000_hard_regno_mode_ok): New function.
10368         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
10369         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10370         (lm32_hard_regno_mode_ok): New function.
10371         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
10372         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
10373         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
10374         instead of HARD_REGNO_MODE_OK.
10375         (m32c_hard_regno_ok): Rename to...
10376         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
10377         (m32c_cannot_change_mode_class): Update accordingly.
10378         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10379         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
10380         (m32r_mode_class): Delete.
10381         (HARD_REGNO_MODE_OK): Delete.
10382         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10383         (m32r_hard_regno_mode_ok): Rename to...
10384         (m32r_hard_regno_modes): ...this.
10385         (m32r_mode_class): Make static.
10386         (m32r_hard_regno_mode_ok): New function.
10387         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
10388         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
10389         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10390         (m68k_hard_regno_mode_ok): Make static.
10391         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
10392         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10393         (mcore_hard_regno_mode_ok): New function.
10394         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
10395         (HARD_REGNO_MODE_OK): Delete.
10396         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
10397         Rename to...
10398         (microblaze_hard_regno_mode_ok_p): ...this and make static.
10399         (microblaze_hard_regno_mode_ok): New function.
10400         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10401         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
10402         (mips_hard_regno_mode_ok): Delete.
10403         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
10404         (mips_hard_regno_mode_ok_p): ...this and make static.
10405         (mips_hard_regno_mode_ok_p): Rename to...
10406         (mips_hard_regno_mode_ok_uncached): ...this.
10407         (mips_hard_regno_mode_ok): New function.
10408         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
10409         of HARD_REGNO_MODE_OK.
10410         (mips_option_override): Update after above name changes.
10411         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10412         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
10413         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
10414         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
10415         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
10416         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10417         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
10418         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
10419         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
10420         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10421         (msp430_hard_regno_mode_ok): Make static and return a bool.
10422         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
10423         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
10424         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
10425         and return a bool.
10426         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10427         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
10428         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
10429         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
10430         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
10431         (PA_HARD_REGNO_MODE_OK): ...this
10432         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
10433         (PA_HARD_REGNO_MODE_OK): ...this.
10434         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10435         (pa_hard_regno_mode_ok): New function.
10436         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
10437         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10438         (pdp11_hard_regno_mode_ok): New function.
10439         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
10440         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
10441         Delete.
10442         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
10443         Make static.
10444         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10445         (rs6000_hard_regno_mode_ok): Rename to...
10446         (rs6000_hard_regno_mode_ok_uncached): ...this.
10447         (rs6000_init_hard_regno_mode_ok): Update accordingly.
10448         (rs6000_hard_regno_mode_ok): New function.
10449         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
10450         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
10451         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
10452         (riscv_hard_regno_mode_ok): ...this and make static.
10453         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10454         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
10455         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
10456         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10457         (rl78_hard_regno_mode_ok): Make static and return bool.
10458         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
10459         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
10460         Delete.
10461         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
10462         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10463         (rs6000_hard_regno_mode_ok): Rename to...
10464         (rs6000_hard_regno_mode_ok_uncached): ...this.
10465         (rs6000_init_hard_regno_mode_ok): Update accordingly.
10466         (rs6000_hard_regno_mode_ok): New function.
10467         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
10468         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
10469         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10470         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
10471         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
10472         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
10473         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10474         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
10475         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
10476         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10477         (sh_hard_regno_mode_ok): Make static.
10478         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
10479         instead of HARD_REGNO_MODE_OK.
10480         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
10481         (sparc_mode_class): Delete.
10482         (HARD_REGNO_MODE_OK): Delete.
10483         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10484         (hard_regno_mode_classes): Make static.
10485         (sparc_mode_class): Likewise.
10486         (sparc_hard_regno_mode_ok): New function.
10487         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
10488         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
10489         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
10490         function.
10491         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10492         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
10493         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
10494         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
10495         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
10496         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10497         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
10498         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
10499         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
10500         (visium_hard_regno_mode_ok): New function.
10501         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
10502         instead of HARD_REGNO_MODE_OK.
10503         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
10504         (HARD_REGNO_MODE_OK): Delete.
10505         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
10506         (xtensa_hard_regno_mode_ok_p): ...this and make static.
10507         (xtensa_option_override): Update accordingly.
10508         (TARGET_HARD_REGNO_MODE_OK): Redefine.
10509         (xtensa_hard_regno_mode_ok): New function.
10510         * system.h (HARD_REGNO_MODE_OK): Poison.
10512 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
10513             Alan Hayward  <alan.hayward@arm.com>
10514             David Sherwood  <david.sherwood@arm.com>
10516         * target.def (hard_regno_call_part_clobbered): New hook.
10517         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
10518         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
10519         * doc/tm.texi: Regenerate.
10520         * hooks.h (hook_bool_uint_mode_false): Declare.
10521         * hooks.c (hook_bool_uint_mode_false): New function.
10522         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
10523         * cselib.c (cselib_process_insn): Use
10524         targetm.hard_regno_call_part_clobbered instead of
10525         HARD_REGNO_CALL_PART_CLOBBERED.
10526         * ira-conflicts.c (ira_build_conflicts): Likewise.
10527         * ira-costs.c (ira_tune_allocno_costs): Likewise.
10528         * lra-constraints.c (need_for_call_save_p): Likewise.
10529         * lra-lives.c: Include target.h.
10530         (check_pseudos_live_through_calls): Use
10531         targetm.hard_regno_call_part_clobbered instead of
10532         HARD_REGNO_CALL_PART_CLOBBERED.
10533         * regcprop.c: Include target.h.
10534         (copyprop_hardreg_forward_1): Use
10535         targetm.hard_regno_call_part_clobbered instead of
10536         HARD_REGNO_CALL_PART_CLOBBERED.
10537         * reginfo.c (choose_hard_reg_mode): Likewise.
10538         * regrename.c (check_new_reg_p): Likewise.
10539         * reload.c (find_equiv_reg): Likewise.
10540         * reload1.c (emit_reload_insns): Likewise.
10541         * sched-deps.c (deps_analyze_insn): Likewise.
10542         * sel-sched.c (init_regs_for_mode): Likewise.
10543         (mark_unavailable_hard_regs): Likewise.
10544         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
10545         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
10546         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
10547         New function.
10548         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
10549         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
10550         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
10551         Delete.
10552         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
10553         and return a bool.
10554         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
10555         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
10556         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
10557         function.
10558         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
10559         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
10560         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
10561         function.
10562         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
10563         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
10564         Delete.
10565         * config/powerpcspe/powerpcspe.c
10566         (rs6000_hard_regno_call_part_clobbered): New function.
10567         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
10568         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
10569         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
10570         New function.
10571         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
10572         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
10573         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
10574         function.
10575         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
10576         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
10577         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
10579 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
10580             Alan Hayward  <alan.hayward@arm.com>
10581             David Sherwood  <david.sherwood@arm.com>
10583         * rtl.h (subreg_memory_offset): Declare.
10584         * emit-rtl.c (subreg_memory_offset): New function.
10585         * expmed.c (store_bit_field_1): Use it.
10586         * expr.c (undefined_operand_subword_p): Likewise.
10587         * simplify-rtx.c (simplify_subreg): Likewise.
10589 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
10591         PR rtl-optimization/57448
10592         PR target/67458
10593         PR target/81316
10594         * optabs.c (expand_atomic_load): Place compiler memory barriers if
10595         using atomic_load pattern.
10596         (expand_atomic_store): Likewise.
10598 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
10600         PR sanitizer/81981
10601         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
10602         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
10603         handling.  Use replace_call_with_value with NULL instead of
10604         gsi_replace, unlink_stmt_vdef and release_defs.
10606         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
10607         instead of tab.
10609         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
10611 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
10613         PR bootstrap/82045
10614         * rtl.h (emit_library_call_value_1): Declare.
10615         (emit_library_call): Replace declaration with a series of overloads.
10616         Remove the parameter count argument.
10617         (emit_library_call_value): Likewise.
10618         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
10619         with an "rtx_mode_t *".
10620         (emit_library_call_value): Delete.
10621         (emit_library_call): Likewise.
10622         * asan.c (asan_emit_stack_protection): Update calls accordingly.
10623         (asan_emit_allocas_unpoison): Likewise.
10624         * builtins.c (expand_builtin_powi): Likewise.
10625         (expand_asan_emit_allocas_unpoison): Likewise.
10626         * cfgexpand.c (expand_main_function): Likewise.
10627         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
10628         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
10629         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
10630         * config/arm/arm.c (arm_trampoline_init): Likewise.
10631         (arm_call_tls_get_addr): Likewise.
10632         (arm_expand_divmod_libfunc): Likewise.
10633         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
10634         (smulsi3_highpart): Likewise.
10635         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
10636         (c6x_expand_compare): Likewise.
10637         (c6x_expand_movmem): Likewise.
10638         * config/frv/frv.c (frv_trampoline_init): Likewise.
10639         * config/i386/i386.c (ix86_trampoline_init): Likewise.
10640         (ix86_expand_divmod_libfunc): Likewise.
10641         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
10642         (ia64_expand_compare): Likewise.
10643         (ia64_profile_hook): Likewise.
10644         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
10645         (nonlocal_goto): Likewise.
10646         (restore_stack_nonlocal): Likewise.
10647         * config/m32r/m32r.c (block_move_call): Likewise.
10648         (m32r_trampoline_init): Likewise.
10649         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
10650         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
10651         (m68k_call_m68k_read_tp): Likewise.
10652         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
10653         (microblaze_expand_divide): Likewise.
10654         * config/mips/mips.h (mips_args): Likewise.
10655         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
10656         (MIPS_ICACHE_SYNC): Likewise.
10657         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
10658         (nios2_trampoline_init): Likewise.
10659         * config/pa/pa.c (hppa_tls_call): Likewise.
10660         (pa_trampoline_init): Likewise.
10661         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
10662         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
10663         (expand_strn_compare): Likewise.
10664         (rs6000_generate_compare): Likewise.
10665         (rs6000_expand_float128_convert): Likewise.
10666         (output_profile_hook): Likewise.
10667         (rs6000_trampoline_init): Likewise.
10668         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
10669         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
10670         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
10671         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
10672         (rs6000_generate_compare): Likewise.
10673         (rs6000_expand_float128_convert): Likewise.
10674         (output_profile_hook): Likewise.
10675         (rs6000_trampoline_init): Likewise.
10676         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
10677         * config/sh/sh.c (sh_trampoline_init): Likewise.
10678         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
10679         (sparc_emit_float_lib_cmp): Likewise.
10680         (sparc32_initialize_trampoline): Likewise.
10681         (sparc64_initialize_trampoline): Likewise.
10682         (sparc_profile_hook): Likewise.
10683         * config/spu/spu.c (ea_load_store): Likewise.
10684         * config/spu/spu.md (floatunssidf2): Likewise.
10685         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
10686         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
10687         * config/visium/visium.c (expand_block_move_4): Likewise.
10688         (expand_block_move_2): Likewise.
10689         (expand_block_move_1): Likewise.
10690         (expand_block_set_4): Likewise.
10691         (expand_block_set_2): Likewise.
10692         (expand_block_set_1): Likewise.
10693         (visium_trampoline_init): Likewise.
10694         (visium_profile_hook): Likewise.
10695         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
10696         (xtensa_setup_frame_addresses): Likewise.
10697         (xtensa_trampoline_init): Likewise.
10698         * except.c (sjlj_emit_function_enter): Likewise.
10699         (sjlj_emit_function_exit): Likewise.
10700         * explow.c (allocate_dynamic_stack_space): Likewise.
10701         (probe_stack_range): Likewise.
10702         * expr.c (convert_mode_scalar): Likewise.
10703         * optabs.c (expand_binop): Likewise.
10704         (expand_twoval_binop_libfunc): Likewise.
10705         (expand_unop): Likewise.
10706         (prepare_cmp_insn): Likewise.
10707         (prepare_float_lib_cmp): Likewise.
10708         (expand_float): Likewise.
10709         (expand_fix): Likewise.
10710         (expand_fixed_convert): Likewise.
10711         (maybe_emit_sync_lock_test_and_set): Likewise.
10712         (expand_atomic_compare_and_swap): Likewise.
10713         (expand_mem_thread_fence): Likewise.
10714         (expand_atomic_fetch_op): Likewise.
10716 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
10718         * doc/generic.texi (OpenACC): Adjust URL.
10719         * doc/invoke.texi (C Dialect Options): Ditto.
10721 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
10723         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
10724         predicate for operand 1.  Add (m,<S>) constraint.
10725         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
10726         Prevent memory operand 1 with register operand 2.
10728 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
10730         PR rtl-optimization/82024
10731         * combine.c (try_combine): If the combination result is a PARALLEL,
10732         and we only need to retain the SET in there that would be placed
10733         at I2, check that we can place that at I3 instead, before doing so.
10735 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
10737         PR target/81766
10738         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
10739         instead of void.
10740         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
10741         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
10742         and label.
10744 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
10745             Jeff Law  <law@redhat.com>
10747         * varasm.c (bss_initializer_p): Do not put constants into .bss
10748         (categorize_decl_for_section): Handle bss_initializer_p returning
10749         false when DECL_INITIAL is NULL.
10751 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10753         PR target/82012
10754         * config/s390/s390.c (s390_can_inline_p): New function.
10756 2017-09-01  Jeff Law  <law@redhat.com>
10758         PR tree-optimization/82052
10759         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
10760         Always initialize the returned slot after a hash table miss
10761         when INSERT is true.
10763 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
10765         * config/s390/s390.md (mem_signal_fence): Remove.
10766         * doc/md.texi (mem_signal_fence): Remove.
10767         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
10768         Update comments.
10769         * target-insns.def (mem_signal_fence): Remove.
10771 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
10773         PR sanitizer/81902
10774         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
10776         PR sanitizer/81923
10777         * asan.c (create_odr_indicator): Strip name encoding from assembler
10778         name before appending it after __odr_asan_.
10780 2017-09-01  Martin Liska  <mliska@suse.cz>
10782         PR tree-optimization/82059
10783         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
10784         frequency only when an edge is redirected.
10786 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
10788         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
10789         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
10790         (arc_conditional_register_usage): Remove ARC600 lp_count
10791         exception.
10792         (arc_file_start): Emit Tag_ARC_CPU_variation.
10793         (arc_can_use_doloop_p): New conditions to use ZOLs.
10794         (hwloop_fail): New function.
10795         (hwloop_optimize): Likewise.
10796         (hwloop_pattern_reg): Likewise.
10797         (arc_doloop_hooks): New struct, to be used with reorg_loops.
10798         (arc_reorg_loops): New function, calls reorg_loops.
10799         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
10800         (arc600_corereg_hazard): Remove ZOL checking, case handled by
10801         hwloop_optimize.
10802         (arc_loop_hazard): Remove function, functionality moved into
10803         hwloop_optimize.
10804         (arc_hazard): Remove arc_loop_hazard call.
10805         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
10806         into hwloop_optimize.
10807         (arc_label_align): Remove ZOL handling.
10808         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
10809         * config/arc/arc.md (doloop_begin): Remove pattern.
10810         (doloop_begin_i): Likewise.
10811         (doloop_end_i): Likewise.
10812         (doloop_fallback): Likewise.
10813         (doloop_fallback_m): Likewise.
10814         (doloop_end): Reimplement expand.
10815         (arc_lp): New pattern for LP instruction.
10816         (loop_end): New pattern.
10817         (loop_fail): Likewise.
10818         (decrement_and_branch_until_zero): Likewise.
10819         * config/arc/arc.opt (mlpc-width): New option.
10820         * doc/invoke.texi (mlpc-width): Document option.
10822 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
10824         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
10825         (arc_ccfsm_advance): Fix checking for delay slots.
10826         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
10828 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
10830         * config/arc/arc.md (movqi_insn): Add stores to save constant long
10831         immediates.
10832         (movhi_insn): Update store instruction constraint which are saving
10833         6-bit short immediates.
10834         (movsi_insn): Consider also short scaled load operations.
10835         (zero_extendhisi2_i): Use Usd constraint instead of T.
10836         (extendhisi2_i): Add q constraint.
10837         (arc_clzsi2): Add type and length attributes.
10838         (arc_ctzsi2): Likewise.
10839         * config/arc/constraints.md (Usc): Update constraint, the
10840         assembler can parse two relocations for a single instruction.
10842 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
10844         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
10845         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
10847 2017-08-31  Olivier Hainque  <hainque@adacore.com>
10849         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
10850         match as powerpc-wrs-vxworks*.
10852 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
10854         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
10855         register constraint for by-element operand.
10856         (aarch64_mls_elt_merge<mode>): Likewise.
10858 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
10860         * config/arc/arc.c (arc_can_follow_jump): Check for short
10861         branches.
10863 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
10865         * config.gcc: Use g.opt for arc.
10866         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
10867         functionality moved to ...
10868         (legitimate_scaled_address_p): New function, ...here.
10869         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
10870         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
10871         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
10872         condition.
10873         (arc_override_options): Handle G option.
10874         (arc_output_pic_addr_const): Correct function definition.
10875         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
10876         (arc_decl_anon_ns_mem_p): Delete.
10877         (arc_in_small_data_p): Overhaul this function to take into
10878         consideration the value given via G option.
10879         (arc_rewrite_small_data_1): Renamed and corrected old
10880         arc_rewrite_small_data function.
10881         (arc_rewrite_small_data): New function.
10882         (small_data_pattern): Don't use pic_offset_table_rtx.
10883         * config/arc/arc.h (CC1_SPEC): Recognize G option.
10884         * config/arc/simdext.md (movmisalignv2hi): Use
10885         prepare_move_operands function.
10886         (mov*): Likewise.
10887         (movmisalign*): Likewise.
10888         * doc/invoke.texi (ARC options): Document -G option.
10890 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
10892         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
10893         prototype.
10894         * config/arc/arc.c (arc_print_operand): Output scalled address for
10895         sdata whenever is possible.
10896         (arc_in_small_data_p): Allow sdata for 64bit datum when double
10897         load/stores are available.
10898         (compact_sda_memory_operand): Check for the alignment required by
10899         code density instructions.
10900         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
10901         constraint.
10902         * config/arc/constraints.md (Usd): Update constraint.
10903         (Us0): New constraint.
10904         (Usc): Update constraint.
10906 2017-08-31  Richard Biener  <rguenther@suse.de>
10908         PR middle-end/82054
10909         * dwarf2out.c (dwarf2out_early_global_decl): Process each
10910         function only once.
10912 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
10914         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
10915         Resize type_signature.
10917 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
10918             Alan Hayward  <alan.hayward@arm.com>
10919             David Sherwood  <david.sherwood@arm.com>
10921         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
10922         subregs whose inner modes can be stored in GPRs.
10923         (aarch64_classify_index): Likewise.
10925 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
10926             Alan Hayward  <alan.hayward@arm.com>
10927             David Sherwood  <david.sherwood@arm.com>
10929         * config/aarch64/iterators.md (V_cmp_result): Rename to...
10930         (V_INT_EQUIV): ...this.
10931         (v_cmp_result): Rename to...
10932         (v_int_equiv): ...this.
10933         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
10934         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
10935         (copysign<mode>3): Likewise.
10936         (aarch64_simd_bsl<mode>_internal): Likewise.
10937         (aarch64_simd_bsl<mode>): Likewise.
10938         (vec_cmp<mode><mode>): Likewise.
10939         (vcond<mode><mode>): Likewise.
10940         (vcond<v_cmp_mixed><mode>): Likewise.
10941         (vcondu<mode><v_cmp_mixed>): Likewise.
10942         (aarch64_cm<optab><mode>): Likewise.
10943         (aarch64_cmtst<mode>): Likewise.
10944         (aarch64_fac<optab><mode>): Likewise.
10945         (vec_perm_const<mode>): Likewise.
10946         (vcond_mask_<mode><v_cmp_result>): Rename to...
10947         (vcond_mask_<mode><v_int_equiv>): ...this.
10948         (vec_cmp<mode><v_cmp_result>): Rename to...
10949         (vec_cmp<mode><v_int_equiv>): ...this.
10951 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
10952             Alan Hayward  <alan.hayward@arm.com>
10953             David Sherwood  <david.sherwood@arm.com>
10955         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
10956         vector modes.
10957         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
10958         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
10959         (UNSPEC_LD4_DREG): New unspecs.
10960         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
10961         (aarch64_ld2<mode>_dreg_be): Replace with...
10962         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
10963         unspec.
10964         (aarch64_ld3<mode>_dreg_le)
10965         (aarch64_ld3<mode>_dreg_be): Replace with...
10966         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
10967         unspec.
10968         (aarch64_ld4<mode>_dreg_le)
10969         (aarch64_ld4<mode>_dreg_be): Replace with...
10970         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
10971         unspec.
10973 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10975         PR tree-optimization/81987
10976         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
10977         insert an initializer in a location not dominated by the stride
10978         definition.
10980 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
10982         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
10983         on the entire header of the finally block in the fallthru case.
10985 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
10987         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
10989 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
10991         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
10992         rs6000_emit_move_from_cr and call renamed function.
10993         (rs6000_emit_prologue): Call renamed functions.
10994         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
10995         movesi_from_cr, remove volatile CRs.
10997 2017-08-30  Jon Beniston  <jon@beniston.com>
10998             Richard Biener  <rguenther@suse.de>
11000         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
11001         of VECTOR_MODE_P check.
11002         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
11003         element vector types.
11005 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11007         * df.h (df_read_modify_subreg_p): Remove in favor of...
11008         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
11009         const_rtx instead of an rtx.
11010         * cprop.c (local_cprop_find_used_regs): Update accordingly.
11011         * df-problems.c (df_word_lr_mark_ref): Likewise.
11012         * ira-lives.c (mark_pseudo_reg_live): Likewise.
11013         (mark_pseudo_reg_dead): Likewise.
11014         (mark_ref_dead): Likewise.
11015         * reginfo.c (init_subregs_of_mode): Likewise.
11016         * sched-deps.c (sched_analyze_1): Likewise.
11017         * df-scan.c (df_def_record_1): Likewise.
11018         (df_uses_record): Likewise.
11019         (df_read_modify_subreg_p): Remove in favor of...
11020         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
11021         const_rtx instead of an rtx.
11023 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11024             Alan Hayward  <alan.hayward@arm.com>
11025             David Sherwood  <david.sherwood@arm.com>
11027         * rtl.h (partial_subreg_p): New function.
11028         * caller-save.c (save_call_clobbered_regs): Use it.
11029         * calls.c (expand_call): Likewise.
11030         * combine.c (combinable_i3pat): Likewise.
11031         (simplify_set): Likewise.
11032         (make_extraction): Likewise.
11033         (make_compound_operation_int): Likewise.
11034         (gen_lowpart_or_truncate): Likewise.
11035         (force_to_mode): Likewise.
11036         (make_field_assignment): Likewise.
11037         (reg_truncated_to_mode): Likewise.
11038         (record_truncated_value): Likewise.
11039         (move_deaths): Likewise.
11040         * cse.c (record_jump_cond): Likewise.
11041         (cse_insn): Likewise.
11042         * cselib.c (cselib_lookup_1): Likewise.
11043         * expmed.c (extract_bit_field_using_extv): Likewise.
11044         * function.c (assign_parm_setup_reg): Likewise.
11045         * ifcvt.c (noce_convert_multiple_sets): Likewise.
11046         * ira-build.c (create_insn_allocnos): Likewise.
11047         * lra-coalesce.c (merge_pseudos): Likewise.
11048         * lra-constraints.c (match_reload): Likewise.
11049         (simplify_operand_subreg): Likewise.
11050         (curr_insn_transform): Likewise.
11051         * lra-lives.c (process_bb_lives): Likewise.
11052         * lra.c (new_insn_reg): Likewise.
11053         (lra_substitute_pseudo): Likewise.
11054         * regcprop.c (mode_change_ok): Likewise.
11055         (maybe_mode_change): Likewise.
11056         (copyprop_hardreg_forward_1): Likewise.
11057         * reload.c (push_reload): Likewise.
11058         (find_reloads): Likewise.
11059         (find_reloads_subreg_address): Likewise.
11060         * reload1.c (alter_reg): Likewise.
11061         (eliminate_regs_1): Likewise.
11062         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11064 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
11066         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
11067         back to if statements, including unpack.
11069 2017-08-30  Martin Liska  <mliska@suse.cz>
11071         PR inline-asm/82001
11072         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
11073         Rename to ...
11074         (func_checker::compare_asm_inputs_outputs): ... this function.
11075         (func_checker::compare_gimple_asm): Use the function to compare
11076         also ASM constrains.
11077         * ipa-icf-gimple.h: Rename the function.
11079 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11080             Alan Hayward  <alan.hayward@arm.com>
11081             David Sherwood  <david.sherwood@arm.com>
11083         * coretypes.h (complex_mode): New type.
11084         * gdbhooks.py (build_pretty_printer): Handle it.
11085         * machmode.h (complex_mode): New class.
11086         (complex_mode::includes_p): New function.
11087         (is_complex_int_mode): Likewise.
11088         (is_complex_float_mode): Likewise.
11089         * genmodes.c (get_mode_class): Handle complex mode classes.
11090         * function.c (expand_function_end): Use is_complex_int_mode.
11092 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11093             Alan Hayward  <alan.hayward@arm.com>
11094             David Sherwood  <david.sherwood@arm.com>
11096         * coretypes.h (scalar_mode_pod): New typedef.
11097         * gdbhooks.py (build_pretty_printer): Handle it.
11098         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
11099         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
11100         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
11101         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
11102         as_a <scalar_mode>.
11104 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11105             Alan Hayward  <alan.hayward@arm.com>
11106             David Sherwood  <david.sherwood@arm.com>
11108         * machmode.h (mode_for_vector): Take a scalar_mode instead
11109         of a machine_mode.
11110         * stor-layout.c (mode_for_vector): Likewise.
11111         * explow.c (promote_mode): Use as_a <scalar_mode>.
11112         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
11114 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11115             Alan Hayward  <alan.hayward@arm.com>
11116             David Sherwood  <david.sherwood@arm.com>
11118         * target.def (preferred_simd_mode): Take a scalar_mode
11119         instead of a machine_mode.
11120         * targhooks.h (default_preferred_simd_mode): Likewise.
11121         * targhooks.c (default_preferred_simd_mode): Likewise.
11122         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
11123         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
11124         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
11125         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
11126         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
11127         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
11128         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
11129         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
11130         Likewise.
11131         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
11132         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
11133         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
11134         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
11135         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
11136         * doc/tm.texi: Regenerate.
11137         * optabs-query.c (can_vec_mask_load_store_p): Return false for
11138         non-scalar modes.
11140 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11141             Alan Hayward  <alan.hayward@arm.com>
11142             David Sherwood  <david.sherwood@arm.com>
11144         * target.def (scalar_mode_supported_p): Take a scalar_mode
11145         instead of a machine_mode.
11146         * targhooks.h (default_scalar_mode_supported_p): Likewise.
11147         * targhooks.c (default_scalar_mode_supported_p): Likewise.
11148         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
11149         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
11150         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
11151         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
11152         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
11153         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
11154         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
11155         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
11156         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
11157         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
11158         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
11159         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
11160         Likewise.
11161         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
11162         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
11163         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
11164         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
11165         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
11166         Likewise.
11167         * doc/tm.texi: Regenerate.
11169 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11170             Alan Hayward  <alan.hayward@arm.com>
11171             David Sherwood  <david.sherwood@arm.com>
11173         * coretypes.h (opt_scalar_mode): New typedef.
11174         * gdbhooks.py (build_pretty_printers): Handle it.
11175         * machmode.h (mode_iterator::get_2xwider): Add overload for
11176         opt_mode<T>.
11177         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
11178         over scalar modes.
11179         * expr.c (convert_mode_scalar): Likewise.
11180         * omp-low.c (omp_clause_aligned_alignment): Likewise.
11181         * optabs.c (expand_float): Likewise.
11182         (expand_fix): Likewise.
11183         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
11185 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11186             Alan Hayward  <alan.hayward@arm.com>
11187             David Sherwood  <david.sherwood@arm.com>
11189         * optabs.c (expand_float): Explicitly check for scalars before
11190         using a branching expansion.
11191         (expand_fix): Likewise.
11193 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11194             Alan Hayward  <alan.hayward@arm.com>
11195             David Sherwood  <david.sherwood@arm.com>
11197         * expr.c (convert_mode): Split scalar handling out into...
11198         (convert_mode_scalar): ...this new function.  Treat the modes
11199         as scalar_modes.
11201 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11202             Alan Hayward  <alan.hayward@arm.com>
11203             David Sherwood  <david.sherwood@arm.com>
11205         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
11206         and scalar_mode.
11207         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
11209 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11210             Alan Hayward  <alan.hayward@arm.com>
11211             David Sherwood  <david.sherwood@arm.com>
11213         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
11214         rather than a machine_mode.
11215         (fixed_from_string): Likewise.
11216         (fixed_convert): Likewise.
11217         (fixed_convert_from_int): Likewise.
11218         (fixed_convert_from_real): Likewise.
11219         (real_convert_from_fixed): Likewise.
11220         * fixed-value.c (fixed_from_double_int): Likewise.
11221         (fixed_from_string): Likewise.
11222         (fixed_convert): Likewise.
11223         (fixed_convert_from_int): Likewise.
11224         (fixed_convert_from_real): Likewise.
11225         (real_convert_from_fixed): Likewise.
11226         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
11228 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11229             Alan Hayward  <alan.hayward@arm.com>
11230             David Sherwood  <david.sherwood@arm.com>
11232         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
11233         of separate mode class checks.  Do not allow vector modes here.
11234         (immed_wide_int_const): Use as_a <scalar_mode>.
11235         * explow.c (trunc_int_for_mode): Likewise.
11236         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
11237         (wi::shwi): Likewise.
11238         (wi::min_value): Likewise.
11239         (wi::max_value): Likewise.
11240         * dwarf2out.c (loc_descriptor): Likewise.
11241         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
11242         for CONST_WIDE_INT.
11244 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11245             Alan Hayward  <alan.hayward@arm.com>
11246             David Sherwood  <david.sherwood@arm.com>
11248         * tree.h (SCALAR_TYPE_MODE): New macro.
11249         * expr.c (expand_expr_addr_expr_1): Use it.
11250         (expand_expr_real_2): Likewise.
11251         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
11252         (fold_convert_const_fixed_from_int): Likewise.
11253         (fold_convert_const_fixed_from_real): Likewise.
11254         (native_encode_fixed): Likewise
11255         (native_encode_complex): Likewise
11256         (native_encode_vector): Likewise.
11257         (native_interpret_fixed): Likewise.
11258         (native_interpret_real): Likewise.
11259         (native_interpret_complex): Likewise.
11260         (native_interpret_vector): Likewise.
11261         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
11262         (simd_clone_adjust_argument_types): Likewise.
11263         (simd_clone_init_simd_arrays): Likewise.
11264         (simd_clone_adjust): Likewise.
11265         * stor-layout.c (layout_type): Likewise.
11266         * tree.c (build_minus_one_cst): Likewise.
11267         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
11268         * tree-inline.c (estimate_move_cost): Likewise.
11269         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
11270         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
11271         (vectorizable_reduction): Likewise.
11272         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
11273         (vect_recog_mixed_size_cond_pattern): Likewise.
11274         (check_bool_pattern): Likewise.
11275         (adjust_bool_pattern): Likewise.
11276         (search_type_for_mask_1): Likewise.
11277         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
11278         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
11279         (vectorizable_load): Likewise.
11280         (vectorizable_store): Likewise.
11281         * ubsan.c (ubsan_encode_value): Likewise.
11282         * varasm.c (output_constant): Likewise.
11284 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11285             Alan Hayward  <alan.hayward@arm.com>
11286             David Sherwood  <david.sherwood@arm.com>
11288         * coretypes.h (scalar_mode): New class.
11289         * machmode.h (scalar_mode): Likewise.
11290         (scalar_mode::includes_p): New function.
11291         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
11292         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
11293         * genmodes.c (get_mode_class): Handle remaining scalar modes.
11294         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
11295         * expmed.c (store_bit_field_1): Likewise.
11296         (extract_bit_field_1): Likewise.
11297         * expr.c (write_complex_part): Likewise.
11298         (read_complex_part): Likewise.
11299         (emit_move_complex_push): Likewise.
11300         (expand_expr_real_2): Likewise.
11301         * function.c (assign_parm_setup_reg): Likewise.
11302         (assign_parms_unsplit_complex): Likewise.
11303         * optabs.c (expand_binop): Likewise.
11304         * rtlanal.c (subreg_get_info): Likewise.
11305         * simplify-rtx.c (simplify_immed_subreg): Likewise.
11306         * varasm.c (output_constant_pool_2): Likewise.
11308 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11309             Alan Hayward  <alan.hayward@arm.com>
11310             David Sherwood  <david.sherwood@arm.com>
11312         * expmed.c (extract_high_half): Use scalar_int_mode and remove
11313         assertion.
11314         (expmed_mult_highpart_optab): Likewise.
11315         (expmed_mult_highpart): Likewise.
11317 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11318             Alan Hayward  <alan.hayward@arm.com>
11319             David Sherwood  <david.sherwood@arm.com>
11321         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
11322         instead of a machine_mode.
11323         (builtin_memset_read_str): Likewise.
11324         * builtins.c (c_readstr): Likewise.
11325         (builtin_memcpy_read_str): Likewise.
11326         (builtin_strncpy_read_str): Likewise.
11327         (builtin_memset_read_str): Likewise.
11328         (builtin_memset_gen_str): Likewise.
11329         (expand_builtin_signbit): Use scalar_int_mode for local variables.
11330         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
11331         instead of a machine_mode.
11332         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
11333         variables.
11334         (make_extraction): Likewise.
11335         (try_widen_shift_mode): Take and return scalar_int_modes instead
11336         of machine_modes.
11337         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
11338         a scalar_int_mode instead of a machine_mode.
11339         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
11340         (avr_addr_space_pointer_mode): Likewise.
11341         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
11342         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
11343         (msp430_unwind_word_mode): Likewise.
11344         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
11345         (spu_addr_space_pointer_mode): Likewise.
11346         (spu_addr_space_address_mode): Likewise.
11347         (spu_libgcc_cmp_return_mode): Likewise.
11348         (spu_libgcc_shift_count_mode): Likewise.
11349         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
11350         (rl78_addr_space_pointer_mode): Likewise.
11351         (fl78_unwind_word_mode): Likewise.
11352         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
11353         machine_mode.
11354         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
11355         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
11356         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
11357         (mips_valid_pointer_mode): Likewise.
11358         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
11359         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
11360         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
11361         of a machine_mode.
11362         (ft32_addr_space_address_mode): Likewise.
11363         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
11364         scalar_int_mode instead of a machine_mode.
11365         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
11366         of a machine_mode.
11367         (m32c_addr_space_address_mode): Likewise.
11368         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
11369         (rs6000_eh_return_filter_mode): Likewise.
11370         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
11371         (rs6000_eh_return_filter_mode): Likewise.
11372         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
11373         (s390_libgcc_shift_count_mode): Likewise.
11374         (s390_unwind_word_mode): Likewise.
11375         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
11376         machine_mode.
11377         * target.def (mode_rep_extended): Likewise.
11378         (valid_pointer_mode): Likewise.
11379         (addr_space.valid_pointer_mode): Likewise.
11380         (eh_return_filter_mode): Return a scalar_int_mode rather than
11381         a machine_mode.
11382         (libgcc_cmp_return_mode): Likewise.
11383         (libgcc_shift_count_mode): Likewise.
11384         (unwind_word_mode): Likewise.
11385         (addr_space.pointer_mode): Likewise.
11386         (addr_space.address_mode): Likewise.
11387         * doc/tm.texi: Regenerate.
11388         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
11389         a machine_mode.
11390         (do_jump): Use scalar_int_mode for local variables.
11391         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
11392         rather than a machine_mode.
11393         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
11394         (scompare_loc_descriptor_wide): Likewise.
11395         (scompare_loc_descriptor_narrow): Likewise.
11396         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
11397         variables.
11398         * except.c (sjlj_emit_dispatch_table): Likewise.
11399         (expand_builtin_eh_copy_values): Likewise.
11400         * explow.c (convert_memory_address_addr_space_1): Likewise.
11401         Take a scalar_int_mode rather than a machine_mode.
11402         (convert_memory_address_addr_space): Take a scalar_int_mode rather
11403         than a machine_mode.
11404         (memory_address_addr_space): Use scalar_int_mode for local variables.
11405         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
11406         rather than a machine_mode.
11407         * expmed.c (mask_rtx): Likewise.
11408         (init_expmed_one_conv): Likewise.
11409         (expand_mult_highpart_adjust): Likewise.
11410         (extract_high_half): Likewise.
11411         (expmed_mult_highpart_optab): Likewise.
11412         (expmed_mult_highpart): Likewise.
11413         (expand_smod_pow2): Likewise.
11414         (expand_sdiv_pow2): Likewise.
11415         (emit_store_flag_int): Likewise.
11416         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
11417         variables.
11418         (extract_low_bits): Likewise.
11419         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
11420         a machine_mode.
11421         * expr.c (pieces_addr::adjust):  Likewise.
11422         (can_store_by_pieces): Likewise.
11423         (store_by_pieces): Likewise.
11424         (clear_by_pieces_1): Likewise.
11425         (expand_expr_addr_expr_1): Likewise.
11426         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
11427         (expand_expr_real_1): Likewise.
11428         (try_casesi): Likewise.
11429         * final.c (shorten_branches): Likewise.
11430         * fold-const.c (fold_convert_const_int_from_fixed): Change the
11431         type of "mode" to machine_mode.
11432         * internal-fn.c (expand_arith_overflow_result_store): Take a
11433         scalar_int_mode rather than a machine_mode.
11434         (expand_mul_overflow): Use scalar_int_mode for local variables.
11435         * loop-doloop.c (doloop_modify): Likewise.
11436         (doloop_optimize): Likewise.
11437         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
11438         than a machine_mode.
11439         (expand_doubleword_shift_condmove): Likewise.
11440         (expand_doubleword_shift): Likewise.
11441         (expand_doubleword_clz): Likewise.
11442         (expand_doubleword_popcount): Likewise.
11443         (expand_doubleword_parity): Likewise.
11444         (expand_absneg_bit): Use scalar_int_mode for local variables.
11445         (prepare_float_lib_cmp): Likewise.
11446         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
11447         rather than a machine_mode.
11448         (convert_memory_address_addr_space): Likewise.
11449         (get_mode_bounds): Likewise.
11450         (get_address_mode): Return a scalar_int_mode rather than a
11451         machine_mode.
11452         * rtlanal.c (get_address_mode): Likewise.
11453         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
11454         than a machine_mode.
11455         * targhooks.c (default_mode_rep_extended): Likewise.
11456         (default_valid_pointer_mode): Likewise.
11457         (default_addr_space_valid_pointer_mode): Likewise.
11458         (default_eh_return_filter_mode): Return a scalar_int_mode rather
11459         than a machine_mode.
11460         (default_libgcc_cmp_return_mode): Likewise.
11461         (default_libgcc_shift_count_mode): Likewise.
11462         (default_unwind_word_mode): Likewise.
11463         (default_addr_space_pointer_mode): Likewise.
11464         (default_addr_space_address_mode): Likewise.
11465         * targhooks.h (default_eh_return_filter_mode): Likewise.
11466         (default_libgcc_cmp_return_mode): Likewise.
11467         (default_libgcc_shift_count_mode): Likewise.
11468         (default_unwind_word_mode): Likewise.
11469         (default_addr_space_pointer_mode): Likewise.
11470         (default_addr_space_address_mode): Likewise.
11471         (default_mode_rep_extended): Take a scalar_int_mode rather than
11472         a machine_mode.
11473         (default_valid_pointer_mode): Likewise.
11474         (default_addr_space_valid_pointer_mode): Likewise.
11475         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
11476         local variables.
11477         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
11478         rather than a machine_mode.
11479         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
11480         for local variables.
11481         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
11482         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
11483         than a machine_mode.
11485 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11486             Alan Hayward  <alan.hayward@arm.com>
11487             David Sherwood  <david.sherwood@arm.com>
11489         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
11490         the mode argument to scalar_int_mode.
11491         (do_jump_by_parts_zero_rtx): Likewise.
11492         (do_jump_by_parts_equality_rtx): Likewise.
11493         (do_jump_by_parts_greater): Take a mode argument.
11494         (do_jump_by_parts_equality): Likewise.
11495         (do_jump_1): Update calls accordingly.
11497 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11498             Alan Hayward  <alan.hayward@arm.com>
11499             David Sherwood  <david.sherwood@arm.com>
11501         * is-a.h (safe_dyn_cast): New function.
11502         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
11503         (jump_table_for_label): Likewise.
11504         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
11505         instead of an rtx_insn *.
11506         (shorten_branches): Use dyn_cast instead of LABEL_P and
11507         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
11508         rtx_jump_table_data::get_data_mode.
11509         (final_scan_insn): Likewise.
11511 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11512             Alan Hayward  <alan.hayward@arm.com>
11513             David Sherwood  <david.sherwood@arm.com>
11515         * combine.c (try_combine): Use is_a <scalar_int_mode> when
11516         trying to combine a full-register integer set with a subreg
11517         integer set.
11519 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11520             Alan Hayward  <alan.hayward@arm.com>
11521             David Sherwood  <david.sherwood@arm.com>
11523         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
11524         that is always either address_mode or pointer_mode.
11526 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11527             Alan Hayward  <alan.hayward@arm.com>
11528             David Sherwood  <david.sherwood@arm.com>
11530         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
11531         when the two are known to be equal.
11533 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11534             Alan Hayward  <alan.hayward@arm.com>
11535             David Sherwood  <david.sherwood@arm.com>
11537         * simplify-rtx.c (simplify_const_unary_operation): Use
11538         is_a <scalar_int_mode> instead of checking for a nonzero
11539         precision.  Forcibly convert op_mode to a scalar_int_mode
11540         in that case.  More clearly differentiate the operand and
11541         result modes and use the former when deciding what the value
11542         of a count-bits operation should be.  Use is_int_mode instead
11543         of checking for a MODE_INT.  Remove redundant check for whether
11544         this mode has a zero precision.
11546 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11547             Alan Hayward  <alan.hayward@arm.com>
11548             David Sherwood  <david.sherwood@arm.com>
11550         * optabs.c (widen_leading): Change the type of the mode argument
11551         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
11552         (widen_bswap): Likewise.
11553         (expand_parity): Likewise.
11554         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
11555         (expand_ffs): Likewise.
11556         (epand_unop): Check for scalar integer modes before calling the
11557         above routines.
11559 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11560             Alan Hayward  <alan.hayward@arm.com>
11561             David Sherwood  <david.sherwood@arm.com>
11563         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
11564         Expand commentary.
11565         (expand_expr_real_1): Update call accordingly.
11567 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11568             Alan Hayward  <alan.hayward@arm.com>
11569             David Sherwood  <david.sherwood@arm.com>
11571         * expmed.c (store_bit_field_using_insv): Add op0_mode and
11572         value_mode arguments.  Use scalar_int_mode internally.
11573         (store_bit_field_1): Rename the new integer mode from imode
11574         to op0_mode and use it instead of GET_MODE (op0).  Update calls
11575         to store_split_bit_field, store_bit_field_using_insv and
11576         store_fixed_bit_field.
11577         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
11578         Use scalar_int_mode internally.  Use a bit count rather than a mode
11579         when calculating the largest bit size for get_best_mode.
11580         Update calls to store_split_bit_field and store_fixed_bit_field_1.
11581         (store_fixed_bit_field_1): Add mode and value_mode arguments.
11582         Remove assertion that OP0 has a scalar integer mode.
11583         (store_split_bit_field): Add op0_mode and value_mode arguments.
11584         Update calls to extract_fixed_bit_field.
11585         (extract_bit_field_using_extv): Add an op0_mode argument.
11586         Use scalar_int_mode internally.
11587         (extract_bit_field_1): Rename the new integer mode from imode to
11588         op0_mode and use it instead of GET_MODE (op0).  Update calls to
11589         extract_split_bit_field, extract_bit_field_using_extv and
11590         extract_fixed_bit_field.
11591         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
11592         to extract_split_bit_field and extract_fixed_bit_field_1.
11593         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
11594         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
11595         on the target mode.
11596         (extract_split_bit_field): Add an op0_mode argument.  Update call
11597         to extract_fixed_bit_field.
11599 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11600             Alan Hayward  <alan.hayward@arm.com>
11601             David Sherwood  <david.sherwood@arm.com>
11603         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
11604         * explow.c (hard_function_value): Likewise.
11605         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
11606         convert_to_mode call outside the loop.
11607         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
11608         for the mode iterator.  Require the mode specified by max_pieces
11609         to exist.
11610         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
11611         mode iterator.
11612         (copy_blkmode_to_reg): Likewise.
11613         (set_storage_via_setmem): Likewise.
11614         * optabs.c (prepare_cmp_insn): Likewise.
11615         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
11616         * stor-layout.c (finish_bitfield_representative): Likewise.
11618 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11619             Alan Hayward  <alan.hayward@arm.com>
11620             David Sherwood  <david.sherwood@arm.com>
11622         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
11623         * expr.c (convert_move): Use them.
11624         (convert_modes): Likewise.
11625         (store_expr_with_bounds): Likewise.
11627 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11628             Alan Hayward  <alan.hayward@arm.com>
11629             David Sherwood  <david.sherwood@arm.com>
11631         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
11632         parameter for the mode of "x".  Remove the "known_x", "known_mode"
11633         and "known_ret" arguments.  Change the type of the mode argument
11634         to scalar_int_mode.
11635         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
11636         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
11637         (reg_num_sign_bit_copies_for_combine): Likewise.
11638         * rtlanal.c (nonzero_bits1): Likewise.
11639         (num_sign_bit_copies1): Likewise.
11640         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
11641         (reg_num_sign_bit_copies_general): Likewise.
11642         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
11643         (reg_nonzero_bits_general): Likewise.
11645 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11646             Alan Hayward  <alan.hayward@arm.com>
11647             David Sherwood  <david.sherwood@arm.com>
11649         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
11650         than in subroutines.  Return 1 for non-integer modes.
11651         (cached_num_sign_bit_copies): Change the type of the mode parameter
11652         to scalar_int_mode.
11653         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
11654         classes.  Handle CONST_INT_P first and then check whether X also
11655         has a scalar integer mode.  Check the same thing for inner registers
11656         of a SUBREG and for values that are being extended or truncated.
11658 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11659             Alan Hayward  <alan.hayward@arm.com>
11660             David Sherwood  <david.sherwood@arm.com>
11662         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
11663         in subroutines.  Return the mode mask for non-integer modes.
11664         (cached_nonzero_bits): Change the type of the mode parameter
11665         to scalar_int_mode.
11666         (nonzero_bits1): Likewise.  Remove early exit for other mode
11667         classes.  Handle CONST_INT_P first and then check whether X
11668         also has a scalar integer mode.
11670 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11671             Alan Hayward  <alan.hayward@arm.com>
11672             David Sherwood  <david.sherwood@arm.com>
11674         * expr.c (widest_int_mode_for_size): Make the comment match the code.
11675         Return a scalar_int_mode and assert that the size is greater than
11676         one byte.
11677         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
11678         (op_by_pieces_d::op_by_pieces_d): Likewise.
11679         (op_by_pieces_d::run): Likewise.
11680         (can_store_by_pieces): Likewise.
11682 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11683             Alan Hayward  <alan.hayward@arm.com>
11684             David Sherwood  <david.sherwood@arm.com>
11686         * combine.c (extract_left_shift): Add a mode argument and update
11687         recursive calls.
11688         (make_compound_operation_int): Change the type of the mode parameter
11689         to scalar_int_mode and update the call to extract_left_shift.
11691 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11692             Alan Hayward  <alan.hayward@arm.com>
11693             David Sherwood  <david.sherwood@arm.com>
11695         * combine.c (simplify_and_const_int): Change the type of the mode
11696         parameter to scalar_int_mode.
11697         (simplify_and_const_int_1): Likewise.  Update recursive call.
11699 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11700             Alan Hayward  <alan.hayward@arm.com>
11701             David Sherwood  <david.sherwood@arm.com>
11703         * combine.c (simplify_compare_const): Check that the mode is a
11704         scalar_int_mode (rather than VOIDmode) before testing its
11705         precision.
11706         (simplify_comparison): Move COMPARISON_P handling out of the
11707         loop and restrict the latter part of the loop to scalar_int_modes.
11708         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
11709         and when considering SUBREG_REGs.  Use is_int_mode instead of
11710         checking GET_MODE_CLASS against MODE_INT.
11712 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11713             Alan Hayward  <alan.hayward@arm.com>
11714             David Sherwood  <david.sherwood@arm.com>
11716         * combine.c (try_widen_shift_mode): Move check for equal modes to...
11717         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
11718         shift_unit_mode and for modes involved in scalar shifts.
11720 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11721             Alan Hayward  <alan.hayward@arm.com>
11722             David Sherwood  <david.sherwood@arm.com>
11724         * combine.c (force_int_to_mode): New function, split out from...
11725         (force_to_mode): ...here.  Keep xmode up-to-date and use it
11726         instead of GET_MODE (x).
11728 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11729             Alan Hayward  <alan.hayward@arm.com>
11730             David Sherwood  <david.sherwood@arm.com>
11732         * optabs-query.h (extraction_insn::struct_mode): Change type to
11733         opt_scalar_int_mode and update comment.
11734         (extraction_insn::field_mode): Change type to scalar_int_mode.
11735         (extraction_insn::pos_mode): Likewise.
11736         * combine.c (make_extraction): Update accordingly.
11737         * optabs-query.c (get_traditional_extraction_insn): Likewise.
11738         (get_optab_extraction_insn): Likewise.
11739         * recog.c (simplify_while_replacing): Likewise.
11740         * expmed.c (narrow_bit_field_mem): Change the type of the mode
11741         parameter to opt_scalar_int_mode.
11743 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11744             Alan Hayward  <alan.hayward@arm.com>
11745             David Sherwood  <david.sherwood@arm.com>
11747         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
11748         to a scalar_int_mode instead of a machine_mode.
11749         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
11750         (get_best_mode): Return a boolean and use a pointer argument to store
11751         the selected mode.  Replace the limit mode parameter with a bit limit.
11752         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
11753         for the values returned by bit_field_mode_iterator::next_mode.
11754         (store_bit_field): Update call to get_best_mode.
11755         (store_fixed_bit_field): Likewise.
11756         (extract_fixed_bit_field): Likewise.
11757         * expr.c (optimize_bitfield_assignment_op): Likewise.
11758         * fold-const.c (optimize_bit_field_compare): Likewise.
11759         (fold_truth_andor_1): Likewise.
11760         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
11761         Update for new type of m_mode.
11762         (get_best_mode): As above.
11764 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11765             Alan Hayward  <alan.hayward@arm.com>
11766             David Sherwood  <david.sherwood@arm.com>
11768         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
11769         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
11770         (store_bit_field): Check is_a <scalar_int_mode> before calling
11771         strict_volatile_bitfield_p.
11772         (extract_bit_field): Likewise.
11774 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11775             Alan Hayward  <alan.hayward@arm.com>
11776             David Sherwood  <david.sherwood@arm.com>
11778         * target.def (cstore_mode): Return a scalar_int_mode.
11779         * doc/tm.texi: Regenerate.
11780         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
11781         * targhooks.h (default_cstore_mode): Likewise.
11782         * targhooks.c (default_cstore_mode): Likewise, using a forced
11783         conversion.
11784         * expmed.c (emit_cstore): Expect the target of the cstore to be
11785         a scalar_int_mode.
11787 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11788             Alan Hayward  <alan.hayward@arm.com>
11789             David Sherwood  <david.sherwood@arm.com>
11791         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
11792         scalar_int_mode.
11793         (niter_desc): Likewise mode.
11794         (iv_analyze): Add a mode parameter.
11795         (biv_p): Likewise.
11796         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
11797         and change its type to scalar_int_mode.
11798         * loop-iv.c: Update commentary at head of file.
11799         (iv_constant): Pass the mode paraeter before the rtx it describes
11800         and change its type to scalar_int_mode.  Remove VOIDmode handling.
11801         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
11802         (iv_extend): Likewise.
11803         (shorten_into_mode): Likewise.
11804         (iv_add): Use scalar_int_mode.
11805         (iv_mult): Likewise.
11806         (iv_shift): Likewise.
11807         (canonicalize_iv_subregs): Likewise.
11808         (get_biv_step_1): Pass the outer_mode parameter before the rtx
11809         it describes and change its mode to scalar_int_mode.   Also change
11810         the type of the returned inner_mode to scalar_int_mode.
11811         (get_biv_step): Likewise, turning outer_mode from a pointer
11812         into a direct parameter.  Update call to get_biv_step_1.
11813         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
11814         iv_constant and get_biv_step.
11815         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
11816         and change its type to scalar_int_mode.  Don't initialise iv->mode
11817         to VOIDmode and remove later checks for its still being VOIDmode.
11818         Update calls to iv_analyze_op and iv_analyze_expr.  Check
11819         is_a <scalar_int_mode> when changing the mode under consideration.
11820         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
11821         Update call to iv_analyze_expr.
11822         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
11823         inner register is not also a scalar_int_mode.  Update call to
11824         iv_analyze_biv.
11825         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
11826         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
11827         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
11828         separate mode class checks.  Update calls to iv_analyze.  Remove
11829         fix-up of VOIDmodes after iv_analyze_biv.
11830         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
11831         don't have a scalar_int_mode.  Update call to biv_p.
11833 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11834             Alan Hayward  <alan.hayward@arm.com>
11835             David Sherwood  <david.sherwood@arm.com>
11837         * cfgexpand.c (convert_debug_memory_address): Use
11838         as_a <scalar_int_mode>.
11839         * combine.c (expand_compound_operation): Likewise.
11840         (make_extraction): Likewise.
11841         (change_zero_ext): Likewise.
11842         (simplify_comparison): Likewise.
11843         * cse.c (cse_insn): Likewise.
11844         * dwarf2out.c (minmax_loc_descriptor): Likewise.
11845         (mem_loc_descriptor): Likewise.
11846         (loc_descriptor): Likewise.
11847         * expmed.c (init_expmed_one_mode): Likewise.
11848         (synth_mult): Likewise.
11849         (emit_store_flag_1): Likewise.
11850         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
11851         of a comparison with size.
11852         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
11853         (reduce_to_bit_field_precision): Likewise.
11854         * function.c (expand_function_end): Likewise.
11855         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
11856         * loop-doloop.c (doloop_modify): Likewise.
11857         * optabs.c (expand_binop): Likewise.
11858         (expand_unop): Likewise.
11859         (expand_copysign_absneg): Likewise.
11860         (prepare_cmp_insn): Likewise.
11861         (maybe_legitimize_operand): Likewise.
11862         * recog.c (const_scalar_int_operand): Likewise.
11863         * rtlanal.c (get_address_mode): Likewise.
11864         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11865         (simplify_cond_clz_ctz): Likewise.
11866         * tree-nested.c (get_nl_goto_field): Likewise.
11867         * tree.c (build_vector_type_for_mode): Likewise.
11868         * var-tracking.c (use_narrower_mode): Likewise.
11870 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11871             Alan Hayward  <alan.hayward@arm.com>
11872             David Sherwood  <david.sherwood@arm.com>
11874         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
11875         * builtins.c (expand_builtin_signbit): Use it.
11876         * cfgexpand.c (expand_debug_expr): Likewise.
11877         * dojump.c (do_jump): Likewise.
11878         (do_compare_and_jump): Likewise.
11879         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
11880         * expmed.c (make_tree): Likewise.
11881         * expr.c (expand_expr_real_2): Likewise.
11882         (expand_expr_real_1): Likewise.
11883         (try_casesi): Likewise.
11884         * fold-const-call.c (fold_const_call_ss): Likewise.
11885         * fold-const.c (unextend): Likewise.
11886         (extract_muldiv_1): Likewise.
11887         (fold_single_bit_test): Likewise.
11888         (native_encode_int): Likewise.
11889         (native_encode_string): Likewise.
11890         (native_interpret_int): Likewise.
11891         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
11892         * internal-fn.c (expand_addsub_overflow): Likewise.
11893         (expand_neg_overflow): Likewise.
11894         (expand_mul_overflow): Likewise.
11895         (expand_arith_overflow): Likewise.
11896         * match.pd: Likewise.
11897         * stor-layout.c (layout_type): Likewise.
11898         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
11899         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
11900         * tree-ssanames.c (get_range_info): Likewise.
11901         * tree-switch-conversion.c (array_value_type) Likewise.
11902         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
11903         (vect_recog_divmod_pattern): Likewise.
11904         (vect_recog_mixed_size_cond_pattern): Likewise.
11905         * tree-vrp.c (extract_range_basic): Likewise.
11906         (simplify_float_conversion_using_ranges): Likewise.
11907         * tree.c (int_fits_type_p): Likewise.
11908         * ubsan.c (instrument_bool_enum_load): Likewise.
11909         * varasm.c (mergeable_string_section): Likewise.
11910         (narrowing_initializer_constant_valid_p): Likewise.
11911         (output_constant): Likewise.
11913 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11914             Alan Hayward  <alan.hayward@arm.com>
11915             David Sherwood  <david.sherwood@arm.com>
11917         * machmode.h (NARROWEST_INT_MODE): New macro.
11918         * expr.c (alignment_for_piecewise_move): Use it instead of
11919         GET_CLASS_NARROWEST_MODE (MODE_INT).
11920         (push_block): Likewise.
11921         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
11922         Likewise.
11923         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
11925 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11926             Alan Hayward  <alan.hayward@arm.com>
11927             David Sherwood  <david.sherwood@arm.com>
11929         * postreload.c (move2add_valid_value_p): Change the type of the
11930         mode parameter to scalar_int_mode.
11931         (move2add_use_add2_insn): Add a mode parameter and use it instead
11932         of GET_MODE (reg).
11933         (move2add_use_add3_insn): Likewise.
11934         (reload_cse_move2add): Update accordingly.
11936 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11937             Alan Hayward  <alan.hayward@arm.com>
11938             David Sherwood  <david.sherwood@arm.com>
11940         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
11941         double-word mode.
11942         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
11943         * optabs.c (expand_unop): Likewise.
11945 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11946             Alan Hayward  <alan.hayward@arm.com>
11947             David Sherwood  <david.sherwood@arm.com>
11949         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
11950         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
11951         (popcount_loc_descriptor): Likewise.
11952         (bswap_loc_descriptor): Likewise.
11953         (rotate_loc_descriptor): Likewise.
11954         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
11955         calling the functions above.
11957 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11958             Alan Hayward  <alan.hayward@arm.com>
11959             David Sherwood  <david.sherwood@arm.com>
11961         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
11962         checks.
11963         (try_combine): Likewise.
11964         (simplify_if_then_else): Likewise.
11965         * cse.c (cse_insn): Likewise.
11966         * dwarf2out.c (mem_loc_descriptor): Likewise.
11967         * emit-rtl.c (gen_lowpart_common): Likewise.
11968         * simplify-rtx.c (simplify_truncation): Likewise.
11969         (simplify_binary_operation_1): Likewise.
11970         (simplify_const_relational_operation): Likewise.
11971         (simplify_ternary_operation): Likewise.
11972         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
11974 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11975             Alan Hayward  <alan.hayward@arm.com>
11976             David Sherwood  <david.sherwood@arm.com>
11978         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
11979         * reload.c (push_reload): Likewise.
11980         (find_reloads): Likewise.
11982 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
11983             Alan Hayward  <alan.hayward@arm.com>
11984             David Sherwood  <david.sherwood@arm.com>
11986         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
11987         (make_compound_operation_int): Likewise.
11988         (change_zero_ext): Likewise.
11989         * expr.c (convert_move): Likewise.
11990         (convert_modes): Likewise.
11991         * fwprop.c (forward_propagate_subreg): Likewise.
11992         * loop-iv.c (get_biv_step_1): Likewise.
11993         * optabs.c (widen_operand): Likewise.
11994         * postreload.c (move2add_valid_value_p): Likewise.
11995         * recog.c (simplify_while_replacing): Likewise.
11996         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11997         (simplify_binary_operation_1): Likewise.  Remove redundant
11998         mode equality check.
12000 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12001             Alan Hayward  <alan.hayward@arm.com>
12002             David Sherwood  <david.sherwood@arm.com>
12004         * combine.c (combine_simplify_rtx): Add checks for
12005         is_a <scalar_int_mode>.
12006         (simplify_if_then_else): Likewise.
12007         (make_field_assignment): Likewise.
12008         (simplify_comparison): Likewise.
12009         * ifcvt.c (noce_try_bitop): Likewise.
12010         * loop-invariant.c (canonicalize_address_mult): Likewise.
12011         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
12013 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12014             Alan Hayward  <alan.hayward@arm.com>
12015             David Sherwood  <david.sherwood@arm.com>
12017         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
12018         is_a <scalar_int_mode> instead of != BLKmode.
12020 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12021             Alan Hayward  <alan.hayward@arm.com>
12022             David Sherwood  <david.sherwood@arm.com>
12024         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
12025         instead of != VOIDmode.
12026         * combine.c (if_then_else_cond): Likewise.
12027         (change_zero_ext): Likewise.
12028         * dwarf2out.c (mem_loc_descriptor): Likewise.
12029         (loc_descriptor): Likewise.
12030         * rtlanal.c (canonicalize_condition): Likewise.
12031         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
12033 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12034             Alan Hayward  <alan.hayward@arm.com>
12035             David Sherwood  <david.sherwood@arm.com>
12037         * simplify-rtx.c (simplify_binary_operation_1): Use
12038         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
12040 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12041             Alan Hayward  <alan.hayward@arm.com>
12042             David Sherwood  <david.sherwood@arm.com>
12044         * wide-int.h (int_traits<unsigned char>) New class.
12045         (int_traits<unsigned short>) Likewise.
12046         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
12047         Use GET_MODE_UNIT_PRECISION and remove redundant test for
12048         SCALAR_INT_MODE_P.
12049         * combine.c (set_nonzero_bits_and_sign_copies): Use
12050         is_a <scalar_int_mode>.
12051         (find_split_point): Likewise.
12052         (combine_simplify_rtx): Likewise.
12053         (simplify_logical): Likewise.
12054         (expand_compound_operation): Likewise.
12055         (expand_field_assignment): Likewise.
12056         (make_compound_operation): Likewise.
12057         (extended_count): Likewise.
12058         (change_zero_ext): Likewise.
12059         (simplify_comparison): Likewise.
12060         * dwarf2out.c (scompare_loc_descriptor): Likewise.
12061         (ucompare_loc_descriptor): Likewise.
12062         (minmax_loc_descriptor): Likewise.
12063         (mem_loc_descriptor): Likewise.
12064         (loc_descriptor): Likewise.
12065         * expmed.c (init_expmed_one_mode): Likewise.
12066         * lra-constraints.c (lra_constraint_offset): Likewise.
12067         * optabs.c (prepare_libcall_arg): Likewise.
12068         * postreload.c (move2add_note_store): Likewise.
12069         * reload.c (operands_match_p): Likewise.
12070         * rtl.h (load_extend_op): Likewise.
12071         * rtlhooks.c (gen_lowpart_general): Likewise.
12072         * simplify-rtx.c (simplify_truncation): Likewise.
12073         (simplify_unary_operation_1): Likewise.
12074         (simplify_binary_operation_1): Likewise.
12075         (simplify_const_binary_operation): Likewise.
12076         (simplify_const_relational_operation): Likewise.
12077         (simplify_subreg): Likewise.
12078         * stor-layout.c (bitwise_mode_for_mode): Likewise.
12079         * var-tracking.c (adjust_mems): Likewise.
12080         (prepare_call_arguments): Likewise.
12082 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12083             Alan Hayward  <alan.hayward@arm.com>
12084             David Sherwood  <david.sherwood@arm.com>
12086         * machmode.h (is_int_mode): New fuction.
12087         * combine.c (find_split_point): Use it.
12088         (combine_simplify_rtx): Likewise.
12089         (simplify_if_then_else): Likewise.
12090         (simplify_set): Likewise.
12091         (simplify_shift_const_1): Likewise.
12092         (simplify_comparison): Likewise.
12093         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
12094         * cse.c (notreg_cost): Likewise.
12095         (cse_insn): Likewise.
12096         * cselib.c (cselib_lookup_1): Likewise.
12097         * dojump.c (do_jump_1): Likewise.
12098         (do_compare_rtx_and_jump): Likewise.
12099         * dse.c (get_call_args): Likewise.
12100         * dwarf2out.c (rtl_for_decl_init): Likewise.
12101         (native_encode_initializer): Likewise.
12102         * expmed.c (emit_store_flag_1): Likewise.
12103         (emit_store_flag): Likewise.
12104         * expr.c (convert_modes): Likewise.
12105         (store_field): Likewise.
12106         (expand_expr_real_1): Likewise.
12107         * fold-const.c (fold_read_from_constant_string): Likewise.
12108         * gimple-ssa-sprintf.c (get_format_string): Likewise.
12109         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
12110         * optabs.c (expand_binop): Likewise.
12111         (expand_unop): Likewise.
12112         (expand_abs_nojump): Likewise.
12113         (expand_one_cmpl_abs_nojump): Likewise.
12114         * simplify-rtx.c (mode_signbit_p): Likewise.
12115         (val_signbit_p): Likewise.
12116         (val_signbit_known_set_p): Likewise.
12117         (val_signbit_known_clear_p): Likewise.
12118         (simplify_relational_operation_1): Likewise.
12119         * tree.c (vector_type_mode): Likewise.
12121 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12122             Alan Hayward  <alan.hayward@arm.com>
12123             David Sherwood  <david.sherwood@arm.com>
12125         * machmode.h (smallest_mode_for_size): Fix formatting.
12126         (smallest_int_mode_for_size): New function.
12127         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
12128         instead of smallest_mode_for_size.
12129         * combine.c (make_extraction): Likewise.
12130         * config/arc/arc.c (arc_expand_movmem): Likewise.
12131         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
12132         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
12133         * config/s390/s390.c (s390_expand_insv): Likewise.
12134         * config/sparc/sparc.c (assign_int_registers): Likewise.
12135         * config/spu/spu.c (spu_function_value): Likewise.
12136         (spu_function_arg): Likewise.
12137         * coverage.c (get_gcov_type): Likewise.
12138         (get_gcov_unsigned_t): Likewise.
12139         * dse.c (find_shift_sequence): Likewise.
12140         * expmed.c (store_bit_field_1): Likewise.
12141         * expr.c (convert_move): Likewise.
12142         (store_field): Likewise.
12143         * internal-fn.c (expand_arith_overflow): Likewise.
12144         * optabs-query.c (get_best_extraction_insn): Likewise.
12145         * optabs.c (expand_twoval_binop_libfunc): Likewise.
12146         * stor-layout.c (layout_type): Likewise.
12147         (initialize_sizetypes): Likewise.
12148         * targhooks.c (default_get_mask_mode): Likewise.
12149         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
12151 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12152             Alan Hayward  <alan.hayward@arm.com>
12153             David Sherwood  <david.sherwood@arm.com>
12155         * machmode.h (opt_mode::else_blk): New function.
12156         (int_mode_for_mode): Declare.
12157         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
12158         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
12159         return type.
12160         * cfgexpand.c (expand_debug_expr): Likewise.
12161         * combine.c (gen_lowpart_or_truncate): Likewise.
12162         (gen_lowpart_for_combine): Likewise.
12163         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
12164         * config/avr/avr.c (avr_to_int_mode): Likewise.
12165         (avr_out_plus_1): Likewise.
12166         (avr_out_plus): Likewise.
12167         (avr_out_round): Likewise.
12168         * config/i386/i386.c (ix86_split_to_parts): Likewise.
12169         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
12170         (s390_expand_vcond): Likewise.
12171         * config/spu/spu.c (spu_split_immediate): Likewise.
12172         (spu_expand_mov): Likewise.
12173         * dse.c (get_stored_val): Likewise.
12174         * expmed.c (store_bit_field_1): Likewise.
12175         (convert_extracted_bit_field): Use int_mode_for_mode instead of
12176         int_mode_for_size.
12177         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
12178         (extract_low_bits): Likewise.
12179         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
12180         handling rather than repeating the check.
12181         (emit_group_store): Likewise.
12182         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
12183         * optabs.c (expand_absneg_bit): Likewise.
12184         (expand_copysign_absneg): Likewise.
12185         (expand_copysign_bit): Likewise.
12186         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
12187         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
12188         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
12189         * var-tracking.c (prepare_call_arguments):  Likewise.
12190         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
12191         int_mode_for_mode instead of mode_for_size.
12192         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
12194 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12195             Alan Hayward  <alan.hayward@arm.com>
12196             David Sherwood  <david.sherwood@arm.com>
12198         * machmode.h (int_mode_for_size): New function.
12199         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
12200         instead of mode_for_size.
12201         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
12202         explicit.
12203         * combine.c (expand_field_assignment): Use int_mode_for_size
12204         instead of mode_for_size.
12205         (make_extraction): Likewise.
12206         (simplify_shift_const_1): Likewise.
12207         (simplify_comparison): Likewise.
12208         * dojump.c (do_jump): Likewise.
12209         * dwarf2out.c (mem_loc_descriptor): Likewise.
12210         * emit-rtl.c (init_derived_machine_modes): Likewise.
12211         * expmed.c (flip_storage_order): Likewise.
12212         (convert_extracted_bit_field): Likewise.
12213         * expr.c (copy_blkmode_from_reg): Likewise.
12214         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
12215         * internal-fn.c (expand_mul_overflow): Likewise.
12216         * lower-subreg.c (simple_move): Likewise.
12217         * optabs-libfuncs.c (init_optabs): Likewise.
12218         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
12219         * tree.c (vector_type_mode): Likewise.
12220         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
12221         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
12222         * tree-vect-generic.c (expand_vector_parallel): Likewise.
12223         * tree-vect-stmts.c (vectorizable_load): Likewise.
12224         (vectorizable_store): Likewise.
12226 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12227             Alan Hayward  <alan.hayward@arm.com>
12228             David Sherwood  <david.sherwood@arm.com>
12230         * coretypes.h (pod_mode): New type.
12231         (scalar_int_mode_pod): New typedef.
12232         * machmode.h (pod_mode): New class.
12233         (int_n_data_t::m): Change type to scalar_int_mode_pod.
12234         * genmodes.c (emit_mode_int_n): Update accordingly.
12235         * lower-subreg.h (target_lower_subreg): Change type to
12236         scalar_int_mode_pod.
12237         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
12238         scalar_int_mode_pod.
12240 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12241             Alan Hayward  <alan.hayward@arm.com>
12242             David Sherwood  <david.sherwood@arm.com>
12244         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
12245         machine_mode to scalar_int_mode.
12246         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
12247         (rs6000_option_override_internal): Remove cast to int.
12248         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
12249         machine_mode to scalar_int_mode.
12250         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
12251         (rs6000_option_override_internal): Remove cast to int.
12252         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
12253         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
12254         to machine_mode.
12255         * config/s390/s390.c (s390_expand_builtin): Likewise.
12256         * coretypes.h (scalar_int_mode): New type.
12257         (opt_scalar_int_mode): New typedef.
12258         * machmode.h (scalar_int_mode): New class.
12259         (scalar_int_mode::includes_p): New function.
12260         (byte_mode): Change type to scalar_int_mode.
12261         (word_mode): Likewise.
12262         (ptr_mode): Likewise.
12263         * emit-rtl.c (byte_mode): Likewise.
12264         (word_mode): Likewise.
12265         (ptr_mode): Likewise.
12266         (init_derived_machine_modes): Update accordingly.
12267         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
12268         and MODE_PARTIAL_INT.
12269         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
12270         opt_scalar_int_mode.
12272 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12273             Alan Hayward  <alan.hayward@arm.com>
12274             David Sherwood  <david.sherwood@arm.com>
12276         * target.def (libgcc_floating_mode_supported_p): Take a
12277         scalar_float_mode.
12278         * doc/tm.texi: Regenerate.
12279         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
12280         scalar_float_mode.
12281         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
12282         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
12283         Likewise.
12285 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12286             Alan Hayward  <alan.hayward@arm.com>
12287             David Sherwood  <david.sherwood@arm.com>
12289         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
12290         * doc/tm.texi: Regenerate.
12291         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
12292         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
12293         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
12294         * targhooks.h (default_floatn_mode): Likewise.
12295         * targhooks.c (default_floatn_mode): Likewise.
12296         * tree.c (build_common_tree_nodes): Update accordingly.
12298 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12299             Alan Hayward  <alan.hayward@arm.com>
12300             David Sherwood  <david.sherwood@arm.com>
12302         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
12303         (mode_iterator::iterate_p): Likewise.
12304         (mode_iterator::get_wider): Likewise.
12305         * expr.c (init_expr_target): Use opt_scalar_float_mode.
12307 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12308             Alan Hayward  <alan.hayward@arm.com>
12309             David Sherwood  <david.sherwood@arm.com>
12311         * coretypes.h (opt_scalar_float_mode): New typedef.
12312         * machmode.h (float_mode_for_size): New function.
12313         * emit-rtl.c (double_mode): Delete.
12314         (init_emit_once): Use float_mode_for_size.
12315         * stor-layout.c (layout_type): Likewise.
12316         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
12318 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12319             Alan Hayward  <alan.hayward@arm.com>
12320             David Sherwood  <david.sherwood@arm.com>
12322         * output.h (assemble_real): Take a scalar_float_mode.
12323         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
12324         * config/arm/arm.md (consttable_4): Likewise.
12325         (consttable_8): Likewise.
12326         (consttable_16): Likewise.
12327         * config/mips/mips.md (consttable_float): Likewise.
12328         * config/s390/s390.c (s390_output_pool_entry): Likewise.
12329         * varasm.c (assemble_real): Take a scalar_float_mode.
12330         (output_constant_pool_2): Update accordingly.
12331         (output_constant): Likewise.
12333 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12334             Alan Hayward  <alan.hayward@arm.com>
12335             David Sherwood  <david.sherwood@arm.com>
12337         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
12338         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
12339         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
12340         (native_encode_real): Likewise.
12341         (native_interpret_real): Likewise.
12342         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
12343         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
12345 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12346             Alan Hayward  <alan.hayward@arm.com>
12347             David Sherwood  <david.sherwood@arm.com>
12349         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
12350         <scalar_float_mode>.  Simplify.
12351         (gen_extend_conv_libfunc): Likewise.
12353 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12354             Alan Hayward  <alan.hayward@arm.com>
12355             David Sherwood  <david.sherwood@arm.com>
12357         * coretypes.h (scalar_float_mode): New type.
12358         * machmode.h (mode_traits::from_int): Use machine_mode if
12359         USE_ENUM_MODES is defined.
12360         (is_a): New function.
12361         (as_a): Likewise.
12362         (dyn_cast): Likewise.
12363         (scalar_float_mode): New class.
12364         (scalar_float_mode::includes_p): New function.
12365         (is_float_mode): Likewise.
12366         * gdbhooks.py (MachineModePrinter): New class.
12367         (build_pretty_printer): Use it for scalar_float_mode.
12368         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
12369         (format_helper::format_helper): Turn into a template.
12370         * genmodes.c (get_mode_class): New function.
12371         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
12372         or machine_mode if none.
12373         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
12374         as_a <scalar_float_mode>.
12375         * dwarf2out.c (mem_loc_descriptor): Likewise.
12376         (insert_float): Likewise.
12377         (add_const_value_attribute): Likewise.
12378         * simplify-rtx.c (simplify_immed_subreg): Likewise.
12379         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
12380         (expand_unop): Update accordingly.
12381         (expand_abs_nojump): Likewise.
12382         (expand_copysign_absneg): Take a scalar_float_mode.
12383         (expand_copysign_bit): Likewise.
12384         (expand_copysign): Update accordingly.
12386 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12387             Alan Hayward  <alan.hayward@arm.com>
12388             David Sherwood  <david.sherwood@arm.com>
12390         * coretypes.h (opt_mode): New class.
12391         * machmode.h (opt_mode): Likewise.
12392         (opt_mode::else_void): New function.
12393         (opt_mode::require): Likewise.
12394         (opt_mode::exists): Likewise.
12395         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
12396         (GET_MODE_2XWIDER_MODE): Likewise.
12397         (mode_iterator::get_wider): Update accordingly.
12398         (mode_iterator::get_2xwider): Likewise.
12399         (mode_iterator::get_known_wider): Likewise, turning into a template.
12400         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
12401         forcing a wider mode to exist.
12402         * config/cr16/cr16.h (LONG_REG_P): Likewise.
12403         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
12404         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
12405         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
12406         * lower-subreg.c (init_lower_subreg): Likewise.
12407         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
12408         on the final iteration.
12409         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
12410         a wider mode exists before asking for a move pattern.
12411         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
12412         forcing a wider mode to exist.
12413         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
12414         returning false if no such mode exists.
12415         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
12416         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
12417         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
12418         Avoid checking for a MODE_INT if we already know the mode is not a
12419         SCALAR_INT_MODE_P.
12420         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
12421         forcing a wider mode to exist.
12422         (expmed_mult_highpart_optab): Likewise.
12423         (expmed_mult_highpart): Likewise.
12424         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
12425         using else_void.
12426         * lto-streamer-in.c (lto_input_mode_table): Likewise.
12427         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
12428         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
12429         * internal-fn.c (expand_mul_overflow): Update use of
12430         GET_MODE_2XWIDER_MODE.
12431         * omp-low.c (omp_clause_aligned_alignment): Likewise.
12432         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
12433         GET_MODE_WIDER_MODE.
12434         (convert_plusminus_to_widen): Likewise.
12435         * tree-switch-conversion.c (array_value_type): Likewise.
12436         * var-tracking.c (emit_note_insn_var_location): Likewise.
12437         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
12438         Return false inside rather than outside the loop if no wider mode
12439         exists
12440         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
12441         and GET_MODE_2XWIDER_MODE
12442         (can_compare_p): Use else_void.
12443         * gdbhooks.py (OptMachineModePrinter): New class.
12444         (build_pretty_printer): Use it for opt_mode.
12446 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12447             Alan Hayward  <alan.hayward@arm.com>
12448             David Sherwood  <david.sherwood@arm.com>
12450         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
12451         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
12453 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12454             Alan Hayward  <alan.hayward@arm.com>
12455             David Sherwood  <david.sherwood@arm.com>
12457         * machmode.h (mode_traits): New structure.
12458         (get_narrowest_mode): New function.
12459         (mode_iterator::start): Likewise.
12460         (mode_iterator::iterate_p): Likewise.
12461         (mode_iterator::get_wider): Likewise.
12462         (mode_iterator::get_known_wider): Likewise.
12463         (mode_iterator::get_2xwider): Likewise.
12464         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
12465         (FOR_EACH_MODE): Likewise.
12466         (FOR_EACH_MODE_FROM): Likewise.
12467         (FOR_EACH_MODE_UNTIL): Likewise.
12468         (FOR_EACH_WIDER_MODE): Likewise.
12469         (FOR_EACH_2XWIDER_MODE): Likewise.
12470         * builtins.c (expand_builtin_strlen): Use new mode iterators.
12471         * combine.c (simplify_comparison): Likewise
12472         * config/i386/i386.c (type_natural_mode): Likewise.
12473         * cse.c (cse_insn): Likewise.
12474         * dse.c (find_shift_sequence): Likewise.
12475         * emit-rtl.c (init_derived_machine_modes): Likewise.
12476         (init_emit_once): Likewise.
12477         * explow.c (hard_function_value): Likewise.
12478         * expmed.c (extract_fixed_bit_field_1): Likewise.
12479         (extract_bit_field_1): Likewise.
12480         (expand_divmod): Likewise.
12481         (emit_store_flag_1): Likewise.
12482         * expr.c (init_expr_target): Likewise.
12483         (convert_move): Likewise.
12484         (alignment_for_piecewise_move): Likewise.
12485         (widest_int_mode_for_size): Likewise.
12486         (emit_block_move_via_movmem): Likewise.
12487         (copy_blkmode_to_reg): Likewise.
12488         (set_storage_via_setmem): Likewise.
12489         (compress_float_constant): Likewise.
12490         * omp-low.c (omp_clause_aligned_alignment): Likewise.
12491         * optabs-query.c (get_best_extraction_insn): Likewise.
12492         * optabs.c (expand_binop): Likewise.
12493         (expand_twoval_unop): Likewise.
12494         (expand_twoval_binop): Likewise.
12495         (widen_leading): Likewise.
12496         (widen_bswap): Likewise.
12497         (expand_parity): Likewise.
12498         (expand_unop): Likewise.
12499         (prepare_cmp_insn): Likewise.
12500         (prepare_float_lib_cmp): Likewise.
12501         (expand_float): Likewise.
12502         (expand_fix): Likewise.
12503         (expand_sfix_optab): Likewise.
12504         * postreload.c (move2add_use_add2_insn): Likewise.
12505         * reg-stack.c (reg_to_stack): Likewise.
12506         * reginfo.c (choose_hard_reg_mode): Likewise.
12507         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
12508         * stor-layout.c (mode_for_size): Likewise.
12509         (smallest_mode_for_size): Likewise.
12510         (mode_for_vector): Likewise.
12511         (finish_bitfield_representative): Likewise.
12512         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
12513         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
12514         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
12515         * var-tracking.c (prepare_call_arguments): Likewise.
12517 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12518             Alan Hayward  <alan.hayward@arm.com>
12519             David Sherwood  <david.sherwood@arm.com>
12521         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
12522         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
12523         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
12524         * machmode.h (mode_size): Move earlier in file.
12525         (mode_precision): Likewise.
12526         (mode_inner): Likewise.
12527         (mode_nunits): Likewise.
12528         (mode_unit_size): Likewise.
12529         (unit_unit_precision): Likewise.
12530         (mode_wider): Likewise.
12531         (mode_2xwider): Likewise.
12532         (machine_mode): New class.
12533         (mode_to_bytes): New function.
12534         (mode_to_bits): Likewise.
12535         (mode_to_precision): Likewise.
12536         (mode_to_inner): Likewise.
12537         (mode_to_unit_size): Likewise.
12538         (mode_to_unit_precision): Likewise.
12539         (mode_to_nunits): Likewise.
12540         (GET_MODE_SIZE): Use mode_to_bytes.
12541         (GET_MODE_BITSIZE): Use mode_to_bits.
12542         (GET_MODE_PRECISION): Use mode_to_precision.
12543         (GET_MODE_INNER): Use mode_to_inner.
12544         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
12545         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
12546         (GET_MODE_NUNITS): Use mode_to_nunits.
12547         * system.h (ALWAYS_INLINE): New macro.
12548         * config/powerpcspe/powerpcspe-c.c
12549         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
12550         int for arg1_mode and arg2_mode.
12552 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12553             Alan Hayward  <alan.hayward@arm.com>
12554             David Sherwood  <david.sherwood@arm.com>
12556         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
12557         Prefix mode names with E_ in case statements.
12558         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12559         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
12560         (aarch64_split_simd_move): Likewise.
12561         (aarch64_gen_storewb_pair): Likewise.
12562         (aarch64_gen_loadwb_pair): Likewise.
12563         (aarch64_gen_store_pair): Likewise.
12564         (aarch64_gen_load_pair): Likewise.
12565         (aarch64_get_condition_code_1): Likewise.
12566         (aarch64_constant_pool_reload_icode): Likewise.
12567         (get_rsqrte_type): Likewise.
12568         (get_rsqrts_type): Likewise.
12569         (get_recpe_type): Likewise.
12570         (get_recps_type): Likewise.
12571         (aarch64_gimplify_va_arg_expr): Likewise.
12572         (aarch64_simd_container_mode): Likewise.
12573         (aarch64_emit_load_exclusive): Likewise.
12574         (aarch64_emit_store_exclusive): Likewise.
12575         (aarch64_expand_compare_and_swap): Likewise.
12576         (aarch64_gen_atomic_cas): Likewise.
12577         (aarch64_emit_bic): Likewise.
12578         (aarch64_emit_atomic_swap): Likewise.
12579         (aarch64_emit_atomic_load_op): Likewise.
12580         (aarch64_evpc_trn): Likewise.
12581         (aarch64_evpc_uzp): Likewise.
12582         (aarch64_evpc_zip): Likewise.
12583         (aarch64_evpc_ext): Likewise.
12584         (aarch64_evpc_rev): Likewise.
12585         (aarch64_evpc_dup): Likewise.
12586         (aarch64_gen_ccmp_first): Likewise.
12587         (aarch64_gen_ccmp_next): Likewise.
12588         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
12589         (alpha_emit_xfloating_libcall): Likewise.
12590         (emit_insxl): Likewise.
12591         (alpha_arg_type): Likewise.
12592         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
12593         (arc_preferred_simd_mode): Likewise.
12594         (arc_secondary_reload): Likewise.
12595         (get_arc_condition_code): Likewise.
12596         (arc_print_operand): Likewise.
12597         (arc_legitimate_constant_p): Likewise.
12598         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12599         * config/arc/arc.md (casesi_load): Likewise.
12600         (casesi_compact_jump): Likewise.
12601         * config/arc/predicates.md (proper_comparison_operator): Likewise.
12602         (cc_use_register): Likewise.
12603         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12604         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
12605         (arm_init_iwmmxt_builtins): Likewise.
12606         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
12607         (neon_expand_vector_init): Likewise.
12608         (arm_attr_length_move_neon): Likewise.
12609         (maybe_get_arm_condition_code): Likewise.
12610         (arm_emit_vector_const): Likewise.
12611         (arm_preferred_simd_mode): Likewise.
12612         (arm_output_iwmmxt_tinsr): Likewise.
12613         (thumb1_output_casesi): Likewise.
12614         (thumb2_output_casesi): Likewise.
12615         (arm_emit_load_exclusive): Likewise.
12616         (arm_emit_store_exclusive): Likewise.
12617         (arm_expand_compare_and_swap): Likewise.
12618         (arm_evpc_neon_vuzp): Likewise.
12619         (arm_evpc_neon_vzip): Likewise.
12620         (arm_evpc_neon_vrev): Likewise.
12621         (arm_evpc_neon_vtrn): Likewise.
12622         (arm_evpc_neon_vext): Likewise.
12623         (arm_validize_comparison): Likewise.
12624         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
12625         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
12626         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
12627         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
12628         (c6x_preferred_simd_mode): Likewise.
12629         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
12630         (epiphany_rtx_costs): Likewise.
12631         * config/epiphany/predicates.md (proper_comparison_operator):
12632         Likewise.
12633         * config/frv/frv.c (condexec_memory_operand): Likewise.
12634         (frv_emit_move): Likewise.
12635         (output_move_single): Likewise.
12636         (output_condmove_single): Likewise.
12637         (frv_hard_regno_mode_ok): Likewise.
12638         (frv_matching_accg_mode): Likewise.
12639         * config/h8300/h8300.c (split_adds_subs): Likewise.
12640         (h8300_rtx_costs): Likewise.
12641         (h8300_print_operand): Likewise.
12642         (compute_mov_length): Likewise.
12643         (output_logical_op): Likewise.
12644         (compute_logical_op_length): Likewise.
12645         (compute_logical_op_cc): Likewise.
12646         (h8300_shift_needs_scratch_p): Likewise.
12647         (output_a_shift): Likewise.
12648         (compute_a_shift_length): Likewise.
12649         (compute_a_shift_cc): Likewise.
12650         (expand_a_rotate): Likewise.
12651         (output_a_rotate): Likewise.
12652         * config/i386/i386.c (classify_argument): Likewise.
12653         (function_arg_advance_32): Likewise.
12654         (function_arg_32): Likewise.
12655         (function_arg_64): Likewise.
12656         (function_value_64): Likewise.
12657         (ix86_gimplify_va_arg): Likewise.
12658         (ix86_legitimate_constant_p): Likewise.
12659         (put_condition_code): Likewise.
12660         (split_double_mode): Likewise.
12661         (ix86_avx256_split_vector_move_misalign): Likewise.
12662         (ix86_expand_vector_logical_operator): Likewise.
12663         (ix86_split_idivmod): Likewise.
12664         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
12665         (ix86_build_const_vector): Likewise.
12666         (ix86_build_signbit_mask): Likewise.
12667         (ix86_match_ccmode): Likewise.
12668         (ix86_cc_modes_compatible): Likewise.
12669         (ix86_expand_branch): Likewise.
12670         (ix86_expand_sse_cmp): Likewise.
12671         (ix86_expand_sse_movcc): Likewise.
12672         (ix86_expand_int_sse_cmp): Likewise.
12673         (ix86_expand_vec_perm_vpermi2): Likewise.
12674         (ix86_expand_vec_perm): Likewise.
12675         (ix86_expand_sse_unpack): Likewise.
12676         (ix86_expand_int_addcc): Likewise.
12677         (ix86_split_to_parts): Likewise.
12678         (ix86_vectorize_builtin_gather): Likewise.
12679         (ix86_vectorize_builtin_scatter): Likewise.
12680         (avx_vpermilp_parallel): Likewise.
12681         (inline_memory_move_cost): Likewise.
12682         (ix86_tieable_integer_mode_p): Likewise.
12683         (x86_maybe_negate_const_int): Likewise.
12684         (ix86_expand_vector_init_duplicate): Likewise.
12685         (ix86_expand_vector_init_one_nonzero): Likewise.
12686         (ix86_expand_vector_init_one_var): Likewise.
12687         (ix86_expand_vector_init_concat): Likewise.
12688         (ix86_expand_vector_init_interleave): Likewise.
12689         (ix86_expand_vector_init_general): Likewise.
12690         (ix86_expand_vector_set): Likewise.
12691         (ix86_expand_vector_extract): Likewise.
12692         (emit_reduc_half): Likewise.
12693         (ix86_emit_i387_round): Likewise.
12694         (ix86_mangle_type): Likewise.
12695         (ix86_expand_round_sse4): Likewise.
12696         (expand_vec_perm_blend): Likewise.
12697         (canonicalize_vector_int_perm): Likewise.
12698         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
12699         (expand_vec_perm_1): Likewise.
12700         (expand_vec_perm_interleave3): Likewise.
12701         (expand_vec_perm_even_odd_pack): Likewise.
12702         (expand_vec_perm_even_odd_1): Likewise.
12703         (expand_vec_perm_broadcast_1): Likewise.
12704         (ix86_vectorize_vec_perm_const_ok): Likewise.
12705         (ix86_expand_vecop_qihi): Likewise.
12706         (ix86_expand_mul_widen_hilo): Likewise.
12707         (ix86_expand_sse2_abs): Likewise.
12708         (ix86_expand_pextr): Likewise.
12709         (ix86_expand_pinsr): Likewise.
12710         (ix86_preferred_simd_mode): Likewise.
12711         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
12712         * config/i386/sse.md (*andnot<mode>3): Likewise.
12713         (<mask_codefor><code><mode>3<mask_name>): Likewise.
12714         (*<code><mode>3): Likewise.
12715         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
12716         (ia64_expand_atomic_op): Likewise.
12717         (ia64_arg_type): Likewise.
12718         (ia64_mode_to_int): Likewise.
12719         (ia64_scalar_mode_supported_p): Likewise.
12720         (ia64_vector_mode_supported_p): Likewise.
12721         (expand_vec_perm_broadcast): Likewise.
12722         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
12723         (iq2000_function_arg_advance): Likewise.
12724         (iq2000_function_arg): Likewise.
12725         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
12726         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
12727         (m68k_libcall_value): Likewise.
12728         (m68k_function_value): Likewise.
12729         (sched_attr_op_type): Likewise.
12730         * config/mcore/mcore.c (mcore_output_move): Likewise.
12731         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
12732         Likewise.
12733         (microblaze_function_arg): Likewise.
12734         * config/mips/mips.c (mips16_build_call_stub): Likewise.
12735         (mips_print_operand): Likewise.
12736         (mips_mode_ok_for_mov_fmt_p): Likewise.
12737         (mips_vector_mode_supported_p): Likewise.
12738         (mips_preferred_simd_mode): Likewise.
12739         (mips_expand_vpc_loongson_even_odd): Likewise.
12740         (mips_expand_vec_unpack): Likewise.
12741         (mips_expand_vi_broadcast): Likewise.
12742         (mips_expand_vector_init): Likewise.
12743         (mips_expand_vec_reduc): Likewise.
12744         (mips_expand_msa_cmp): Likewise.
12745         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
12746         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
12747         (cc_flags_for_mode): Likewise.
12748         * config/msp430/msp430.c (msp430_print_operand): Likewise.
12749         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
12750         (nds32_output_casesi_pc_relative): Likewise.
12751         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12752         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
12753         (nvptx_gen_unpack): Likewise.
12754         (nvptx_gen_pack): Likewise.
12755         (nvptx_gen_shuffle): Likewise.
12756         (nvptx_gen_wcast): Likewise.
12757         (nvptx_preferred_simd_mode): Likewise.
12758         * config/pa/pa.c (pa_secondary_reload): Likewise.
12759         * config/pa/predicates.md (base14_operand): Likewise.
12760         * config/powerpcspe/powerpcspe-c.c
12761         (altivec_resolve_overloaded_builtin): Likewise.
12762         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
12763         Likewise.
12764         (rs6000_preferred_simd_mode): Likewise.
12765         (output_vec_const_move): Likewise.
12766         (rs6000_expand_vector_extract): Likewise.
12767         (rs6000_split_vec_extract_var): Likewise.
12768         (reg_offset_addressing_ok_p): Likewise.
12769         (rs6000_legitimate_offset_address_p): Likewise.
12770         (rs6000_legitimize_address): Likewise.
12771         (rs6000_emit_set_const): Likewise.
12772         (rs6000_const_vec): Likewise.
12773         (rs6000_emit_move): Likewise.
12774         (spe_build_register_parallel): Likewise.
12775         (rs6000_darwin64_record_arg_recurse): Likewise.
12776         (swap_selector_for_mode): Likewise.
12777         (spe_init_builtins): Likewise.
12778         (paired_init_builtins): Likewise.
12779         (altivec_init_builtins): Likewise.
12780         (do_load_for_compare): Likewise.
12781         (rs6000_generate_compare): Likewise.
12782         (rs6000_expand_float128_convert): Likewise.
12783         (emit_load_locked): Likewise.
12784         (emit_store_conditional): Likewise.
12785         (rs6000_output_function_epilogue): Likewise.
12786         (rs6000_handle_altivec_attribute): Likewise.
12787         (rs6000_function_value): Likewise.
12788         (emit_fusion_gpr_load): Likewise.
12789         (emit_fusion_p9_load): Likewise.
12790         (emit_fusion_p9_store): Likewise.
12791         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
12792         (fusion_gpr_mem_load): Likewise.
12793         (fusion_addis_mem_combo_load): Likewise.
12794         (fusion_addis_mem_combo_store): Likewise.
12795         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
12796         (fusion_gpr_mem_load): Likewise.
12797         (fusion_addis_mem_combo_load): Likewise.
12798         (fusion_addis_mem_combo_store): Likewise.
12799         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12800         Likewise.
12801         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
12802         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
12803         (rs6000_preferred_simd_mode): Likewise.
12804         (output_vec_const_move): Likewise.
12805         (rs6000_expand_vector_extract): Likewise.
12806         (rs6000_split_vec_extract_var): Likewise.
12807         (reg_offset_addressing_ok_p): Likewise.
12808         (rs6000_legitimate_offset_address_p): Likewise.
12809         (rs6000_legitimize_address): Likewise.
12810         (rs6000_emit_set_const): Likewise.
12811         (rs6000_const_vec): Likewise.
12812         (rs6000_emit_move): Likewise.
12813         (rs6000_darwin64_record_arg_recurse): Likewise.
12814         (swap_selector_for_mode): Likewise.
12815         (paired_init_builtins): Likewise.
12816         (altivec_init_builtins): Likewise.
12817         (rs6000_expand_float128_convert): Likewise.
12818         (emit_load_locked): Likewise.
12819         (emit_store_conditional): Likewise.
12820         (rs6000_output_function_epilogue): Likewise.
12821         (rs6000_handle_altivec_attribute): Likewise.
12822         (rs6000_function_value): Likewise.
12823         (emit_fusion_gpr_load): Likewise.
12824         (emit_fusion_p9_load): Likewise.
12825         (emit_fusion_p9_store): Likewise.
12826         * config/rx/rx.c (rx_gen_move_template): Likewise.
12827         (flags_from_mode): Likewise.
12828         * config/s390/predicates.md (s390_alc_comparison): Likewise.
12829         (s390_slb_comparison): Likewise.
12830         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
12831         (s390_vector_mode_supported_p): Likewise.
12832         (s390_cc_modes_compatible): Likewise.
12833         (s390_match_ccmode_set): Likewise.
12834         (s390_canonicalize_comparison): Likewise.
12835         (s390_emit_compare_and_swap): Likewise.
12836         (s390_branch_condition_mask): Likewise.
12837         (s390_rtx_costs): Likewise.
12838         (s390_secondary_reload): Likewise.
12839         (__SECONDARY_RELOAD_CASE): Likewise.
12840         (s390_expand_cs): Likewise.
12841         (s390_preferred_simd_mode): Likewise.
12842         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
12843         * config/sh/sh.c (sh_print_operand): Likewise.
12844         (dump_table): Likewise.
12845         (sh_secondary_reload): Likewise.
12846         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12847         * config/sh/sh.md (casesi_worker_1): Likewise.
12848         (casesi_worker_2): Likewise.
12849         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
12850         (fcc_comparison_operator): Likewise.
12851         * config/sparc/sparc.c (sparc_expand_move): Likewise.
12852         (emit_soft_tfmode_cvt): Likewise.
12853         (sparc_preferred_simd_mode): Likewise.
12854         (output_cbranch): Likewise.
12855         (sparc_print_operand): Likewise.
12856         (sparc_expand_vec_perm_bmask): Likewise.
12857         (vector_init_bshuffle): Likewise.
12858         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
12859         (spu_vector_mode_supported_p): Likewise.
12860         (spu_expand_insv): Likewise.
12861         (spu_emit_branch_or_set): Likewise.
12862         (spu_handle_vector_attribute): Likewise.
12863         (spu_builtin_splats): Likewise.
12864         (spu_builtin_extract): Likewise.
12865         (spu_builtin_promote): Likewise.
12866         (spu_expand_sign_extend): Likewise.
12867         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
12868         (tilegx_simd_int): Likewise.
12869         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
12870         (tilepro_simd_int): Likewise.
12871         * config/v850/v850.c (const_double_split): Likewise.
12872         (v850_print_operand): Likewise.
12873         (ep_memory_offset): Likewise.
12874         * config/vax/vax.c (vax_rtx_costs): Likewise.
12875         (vax_output_int_move): Likewise.
12876         (vax_output_int_add): Likewise.
12877         (vax_output_int_subtract): Likewise.
12878         * config/visium/predicates.md (visium_branch_operator): Likewise.
12879         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
12880         (visium_print_operand_address): Likewise.
12881         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
12882         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
12883         (xtensa_expand_conditional_branch): Likewise.
12884         (xtensa_copy_incoming_a7): Likewise.
12885         (xtensa_output_literal): Likewise.
12886         * dfp.c (decimal_real_maxval): Likewise.
12887         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
12889 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12890             Alan Hayward  <alan.hayward@arm.com>
12891             David Sherwood  <david.sherwood@arm.com>
12893         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
12894         (mode_nunits_inline): Likewise.
12895         (mode_inner_inline): Likewise.
12896         (mode_unit_size_inline): Likewise.
12897         (mode_unit_precision_inline): Likewise.
12898         (emit_insn_modes_h): Likewise.  Also emit a #define of the
12899         unprefixed name.
12900         (emit_mode_wider): Add an E_ prefix to mode names.
12901         (emit_mode_complex): Likewise.
12902         (emit_mode_inner): Likewise.
12903         (emit_mode_adjustments): Likewise.
12904         (emit_mode_int_n): Likewise.
12905         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
12906         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
12907         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
12908         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
12909         (CRC32_BUILTIN, ENTRY): Likewise.
12910         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
12911         (aarch64_pop_regs): Likewise.
12912         (aarch64_process_components): Likewise.
12913         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
12914         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
12915         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
12916         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
12917         * config/arm/arm.c (arm_init_libfuncs): Likewise.
12918         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
12919         Likewise.
12920         * config/i386/i386-builtin.def (pcmpestr): Likewise.
12921         (pcmpistr): Likewise.
12922         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
12923         * config/mmix/mmix.c (mmix_output_condition): Likewise.
12924         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
12925         Likewise.
12926         * config/rl78/rl78.c (mduc_regs): Likewise.
12927         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
12928         (htm_expand_builtin): Likewise.
12929         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
12930         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
12931         * config/xtensa/xtensa.c (print_operand): Likewise.
12932         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
12933         (NUM_MODE_VECTOR_INT): Likewise.
12934         * genoutput.c (null_operand): Likewise.
12935         (output_operand_data): Likewise.
12936         * genrecog.c (print_parameter_value): Likewise.
12937         * lra.c (debug_operand_data): Likewise.
12939 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12941         * dwarf2out.c (scompare_loc_descriptor_wide)
12942         (scompare_loc_descriptor_narrow): New functions, split out from...
12943         (scompare_loc_descriptor): ...here.
12944         * expmed.c (emit_store_flag_int): New function, split out from...
12945         (emit_store_flag): ...here.
12947 2017-08-30  Richard Biener  <rguenther@suse.de>
12949         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
12950         (dwarf2out_early_finish): Move setting of AT_pubnames from
12951         early debug output to early finish.
12953 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
12955         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
12956         and -mdata-region to the assembler.
12958 2017-08-30  Richard Biener  <rguenther@suse.de>
12960         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
12961         attributes.
12962         (gen_subprogram_die): Add DW_AT_object_pointer only early.
12963         (dwarf2out_early_global_decl): Only generate a DIE for the
12964         abstract origin if it doesn't already exist or is a declaration DIE.
12965         (resolve_addr): Do not add the linkage name twice when
12966         generating a stub DIE for the DW_TAG_GNU_call_site target.
12968 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
12970         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12971         Use machine_mode rather than int for arg1_mode.
12973 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
12975         PR target/82015
12976         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
12977         that the second argument of the built-in functions to unpack
12978         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
12979         switch statement instead a lot of if statements.
12980         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
12981         Allow 64-bit values to be in Altivec registers as well as
12982         traditional floating point registers.
12983         (pack<mode>, FMOVE128_VSX iterator): Likewise.
12985 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
12987         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
12988         MAX_REGS_PER_ADDRESS == 1.
12990 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
12992         * config/i386/i386.opt (flag_fentry): Do not init to -1.
12993         * config/i386/i386.c (ix86_option_override_internal): Simplify
12994         setting of opts->x_flag_entry.
12996 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12997             Jakub Jelinek  <jakub@redhat.com>
12998             Richard Biener  <rguenther@suse.de>
13000         PR tree-optimization/81503
13001         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
13002         folded constant fits in the target type; reorder tests for clarity.
13004 2017-08-29  Martin Liska  <mliska@suse.cz>
13006         * passes.def: Include pass_lower_switch.
13007         * stmt.c (dump_case_nodes): Remove and move to
13008         tree-switch-conversion.
13009         (case_values_threshold): Likewise.
13010         (expand_switch_as_decision_tree_p): Likewise.
13011         (emit_case_decision_tree): Likewise.
13012         (expand_case): Likewise.
13013         (balance_case_nodes): Likewise.
13014         (node_has_low_bound): Likewise.
13015         (node_has_high_bound): Likewise.
13016         (node_is_bounded): Likewise.
13017         (emit_case_nodes): Likewise.
13018         (struct simple_case_node): New struct.
13019         (add_case_node): Remove.
13020         (emit_case_dispatch_table): Use vector instead of case_list.
13021         (reset_out_edges_aux): Remove.
13022         (compute_cases_per_edge): Likewise.
13023         (expand_case): Build list of simple_case_node.
13024         (expand_sjlj_dispatch_table): Use it.
13025         * tree-switch-conversion.c (struct case_node): Moved from
13026         stmt.c and adjusted.
13027         (emit_case_nodes): Likewise.
13028         (node_has_low_bound): Likewise.
13029         (node_has_high_bound): Likewise.
13030         (node_is_bounded): Likewise.
13031         (case_values_threshold): Likewise.
13032         (reset_out_edges_aux): Likewise.
13033         (compute_cases_per_edge): Likewise.
13034         (add_case_node): Likewise.
13035         (dump_case_nodes): Likewise.
13036         (balance_case_nodes): Likewise.
13037         (expand_switch_as_decision_tree_p): Likewise.
13038         (emit_jump): Likewise.
13039         (emit_case_decision_tree): Likewise.
13040         (try_switch_expansion): Likewise.
13041         (do_jump_if_equal): Likewise.
13042         (emit_cmp_and_jump_insns): Likewise.
13043         (fix_phi_operands_for_edge): New function.
13044         (record_phi_operand_mapping): Likewise.
13045         (class pass_lower_switch): New pass.
13046         (pass_lower_switch::execute): New function.
13047         (make_pass_lower_switch): Likewise.
13048         (conditional_probability):
13049         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
13050         * tree-pass.h: Add make_pass_lower_switch.
13052 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
13054         PR target/80993
13055         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
13056         handlers as used.
13058 2017-08-29  Richard Biener  <rguenther@suse.de>
13060         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
13061         we do not add a DW_AT_inline attribute twice.
13062         (gen_subprogram_die): Remove code setting DW_AT_inline on
13063         DECL_ABSTRACT_P nodes.
13065 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
13067         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
13068         calls to internal functions.
13069         (gimplify_modify_expr): Likewise.
13070         * tree-call-cdce.c (use_internal_fn): Likewise.
13071         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
13072         (convert_to_divmod): Set the nothrow flag.
13073         * tree-if-conv.c (predicate_mem_writes):  Likewise.
13074         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
13075         (vectorizable_call): Likewise.
13076         (vectorizable_store): Likewise.
13077         (vectorizable_load): Likewise.
13078         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
13079         (vect_recog_mask_conversion_pattern): Likewise.
13081 2017-08-29  Martin Liska  <mliska@suse.cz>
13083         PR other/39851
13084         * gcc.c (driver_handle_option): Add new argument.
13085         * opts-common.c (handle_option): Pass
13086         target_option_override_hook.
13087         * opts-global.c (lang_handle_option): Add new option.
13088         (set_default_handlers):  Add new argument.
13089         (decode_options): Likewise.
13090         * opts.c (target_handle_option): Likewise.
13091         (common_handle_option): Call target_option_override_hook.
13092         * opts.h (struct cl_option_handler_func): Add hook for
13093         target option override.
13094         (struct cl_option_handlers): Likewise.
13095         (set_default_handlers): Add new argument.
13096         (decode_options): Likewise.
13097         (common_handle_option): Likewise.
13098         (target_handle_option): Likewise.
13099         * toplev.c (toplev::main): Pass targetm.target_option.override
13100         hook.
13102 2017-08-29  Richard Biener  <rguenther@suse.de>
13103         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
13105         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
13106         life to the active subtree.
13108 2017-08-28  Jeff Law  <law@redhat.com>
13110         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
13111         derive_equivalences.
13112         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
13113         Code moved into....
13114         (edge_info::derive_equivalences): New private member function
13116         * tree-ssa-dom.c (class edge_info): Changed from a struct
13117         to a class.  Add ctor/dtor, methods and data members.
13118         (edge_info::edge_info): Renamed from allocate_edge_info.
13119         Initialize additional members.
13120         (edge_info::~edge_info): New.
13121         (free_dom_edge_info): Delete the edge info.
13122         (record_edge_info): Use new class & associated member functions.
13123         Tighten forms for testing for edge equivalences.
13124         (record_temporary_equivalences): Iterate over the simple
13125         equivalences rather than assuming there's only one per edge.
13126         (cprop_into_successor_phis): Iterate over the simple
13127         equivalences rather than assuming there's only one per edge.
13128         (optimize_stmt): Use operand_equal_p rather than pointer
13129         equality for mini-DSE code.
13131 2017-08-28  Nathan Sidwell  <nathan@acm.org>
13133         * gcc.c (execute): Fold SIGPIPE handling into switch
13134         statement.  Adjust internal error message.
13136 2017-08-28  Richard Biener  <rguenther@suse.de>
13138         PR debug/81993
13139         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
13140         Do nothing for removed DIEs.
13142 2017-08-28  Richard Biener  <rguenther@suse.de>
13144         PR tree-optimization/81977
13145         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
13146         memcpy.
13148 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
13150         PR target/80640
13151         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
13152         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
13153         using targetm.gen_mem_thread_fence.
13155 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
13157         PR target/81995
13158         * config/i386/i386.md (*<btsc><mode>): Change operand 2
13159         predicate to register_operand.  Reorder operands.
13160         (*btr<mode>): Ditto.
13161         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
13162         (*btr<mode>_mask): Ditto.
13164 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
13166         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
13167         * config/rs6000/xmmintrin.h: New file.
13168         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
13170 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13172         PR target/81504
13173         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
13174         parameter and_insn and return it.
13175         (recombine_lvx_pattern): Insert a copy to ensure availability of
13176         the base register of the copied masking operation at the point of
13177         the instruction replacement.
13178         (recombine_stvx_pattern): Likewise.
13180 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
13182         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
13183         undocumented switches.
13184         (-mpower9-dform-vector): Likewise.
13185         (-mpower9-dform): Likewise.
13186         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
13187         comments to delete references to -mpower9-dform* switches.
13188         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
13189         Delete reference to -mpower9-dform* switches, test for
13190         -mpower9-vector instead.
13191         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
13192         (OTHER_P9_VECTOR_MASKS): Likewise.
13193         (POWERPC_MASKS): Likewise.
13194         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
13195         tests against -mpower9-dform* to -mpower9-vector.  Delete code
13196         that checked for -mpower9-dform* consistancy with other options.
13197         Add test for -mpower9-misc to enable other power9 switches.
13198         (rs6000_init_hard_regno_mode_ok): Likewise.
13199         (rs6000_option_override_internal): Likewise.
13200         (rs6000_emit_prologue): Likewise.
13201         (rs6000_emit_epilogue): Likewise.
13202         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
13203         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
13204         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
13205         -mpower9-vector.
13206         (emit_fusion_p9_store): Likewise.
13207         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
13208         resetting these macros if the assembler does not support ISA 3.0
13209         instructions.
13210         (TARGET_P9_DFORM_VECTOR): Likewise.
13211         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
13212         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
13214 2017-08-25  Alan Modra  <amodra@gmail.com>
13216         PR rtl-optimization/81747
13217         * cse.c (cse_extended_basic_block): Don't attempt to record
13218         equivalences for degenerate conditional branches that branch
13219         to their fall-through.
13221 2017-08-24  Martin Sebor  <msebor@redhat.com>
13223         PR middle-end/81908
13224         * gimple-fold.c (size_must_be_zero_p): New function.
13225         (gimple_fold_builtin_memory_op): Call it.
13227 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
13229         * config/rs6000/mm_malloc.h: New file.
13231 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
13233         PR tree-optimization/81913
13234         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
13235         analysis when either IVs in condition can wrap.
13237 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
13239         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
13240         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
13242 2017-08-24  Richard Biener  <rguenther@suse.de>
13244         PR target/81921
13245         * targhooks.c (default_target_can_inline_p): Properly
13246         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
13247         is present and always compare.
13248         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
13249         infer -mfpmath=sse from TARGET_SSE_P.
13250         (ix86_can_inline_p): Properly use target_option_default_node when
13251         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
13253 2017-08-24  Richard Biener  <rguenther@suse.de>
13255         PR debug/81936
13256         * dwarf2out.c (output_die): Handle flag_generate_offload like
13257         flag_generate_lto.
13258         (output_comp_unit): Likewise.
13259         (gen_array_type_die): Likewise.
13260         (dwarf2out_early_finish): Likewise.
13261         (note_variable_value_in_expr): Likewise.
13262         (dwarf2out_finish): Likewise.  Adjust assert.
13263         * cgraphunit.c (symbol_table::compile): Move setting of
13264         flag_generate_offload earlier ...
13265         (symbol_table::finalize_compilation_unit): ... here, before
13266         early debug finalization.
13268 2017-08-24  Richard Biener  <rguenther@suse.de>
13270         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
13271         and ipa-fnsummary.h.
13272         (ix86_can_inline_p): When ix86_fpmath flags do not match
13273         check whether the callee uses FP math at all.
13275 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
13277         PR middle-end/81931
13278         * tree-ssanames.c (get_nonzero_bits): Use element_precision
13279         instead of TYPE_PRECISION.
13281 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
13282             Alan Hayward  <alan.hayward@arm.com>
13283             David Sherwood  <david.sherwood@arm.com>
13285         * combine.c (make_extraction): Use subreg_offset_from_lsb.
13287 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
13289         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
13290         Remove field.
13291         (ix86_frame::stack_realign_allocate): New field.
13292         (struct machine_frame_state): Modify comments.
13293         (machine_frame_state::sp_realigned_fp_end): New field.
13294         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
13295         layout calculation.
13296         (sp_valid_at): Add assertion to assure no attempt to access invalid
13297         offset of a realigned stack.
13298         (fp_valid_at): Likewise.
13299         (choose_baseaddr): Modify comments.
13300         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
13301         ix86_expand_prologue.
13302         (ix86_expand_prologue): Modify stack realignment and allocation.
13303         (ix86_expand_epilogue): Modify comments.
13304         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
13305         avx2_runtime, avx512f, and avx512f_runtime.
13307 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
13309         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
13310         (mstackrealign): Do not init to -1.
13311         * config/i386/i386.c (ix86_option_override_internal):
13312         Check opts_set, not opts when setting default value of
13313         opts->x_ix86_force_align_arg_pointer.
13315 2017-08-23  Richard Biener  <rguenther@suse.de>
13317         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
13318         lang_hooks.decl_printable_name.
13319         * print-rtl-function.c (print_rtx_function): Likewise.
13320         * tree-pretty-print.c (dump_function_header): Likewise.
13322 2017-08-23  Richard Biener  <rguenther@suse.de>
13324         PR lto/81940
13325         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
13326         -g0 at compile-time.
13328 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
13330         PR middle-end/19706
13331         * doc/sourcebuild.texi (Other hardware attributes):
13332         Document xorsign.
13334 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
13336         PR middle-end/19706
13337         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
13338         Fix single-use check.
13340 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13342         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
13344 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
13346         * doc/install.texi: Modify to add more details on running selected
13347         tests.
13349 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
13351         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
13352         is combined with -mabi=ms.
13353         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
13354         ms_abi.
13356 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13358         PR tree-optimization/81488
13359         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
13360         and cached_basis fields.
13361         (MAX_SPREAD): New constant.
13362         (alloc_cand_and_find_basis): Initialize new fields.
13363         (clear_visited): New function.
13364         (create_phi_basis_1): Rename from create_phi_basis, set visited
13365         and cached_basis fields.
13366         (create_phi_basis): New wrapper function.
13367         (phi_add_costs_1): Rename from phi_add_costs, add spread
13368         parameter, set visited field, short-circuit when limits reached.
13369         (phi_add_costs): New wrapper function.
13370         (record_phi_increments_1): Rename from record_phi_increments, set
13371         visited field.
13372         (record_phi_increments): New wrapper function.
13373         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
13374         (phi_incr_cost): New wrapper function.
13375         (all_phi_incrs_profitable_1): Rename from
13376         all_phi_incrs_profitable, set visited field.
13377         (all_phi_incrs_profitable): New wrapper function.
13379 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
13380             Alan Hayward  <alan.hayward@arm.com>
13381             David Sherwood  <david.sherwood@arm.com>
13383         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
13384         that takes the outer and inner modes.
13385         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
13386         comparison as the canonical test for a paradoxical subreg.
13387         * combine.c (simplify_set): Use paradoxical_subreg_p.
13388         (make_extraction): Likewise.
13389         (force_to_mode): Likewise.
13390         (rtx_equal_for_field_assignment_p): Likewise.
13391         (gen_lowpart_for_combine): Likewise.
13392         (simplify_comparison): Likewise.
13393         * cse.c (equiv_constant): Likewise.
13394         * expmed.c (store_bit_field_1): Likewise.
13395         * final.c (alter_subreg): Likewise.
13396         * fwprop.c (propagate_rtx): Likewise.
13397         (forward_propagate_subreg): Likewise.
13398         * ira-conflicts.c (ira_build_conflicts): Likewise.
13399         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
13400         * lra-constraints.c (curr_insn_transform): Likewise.
13401         (split_reg): Likewise.
13402         * lra-eliminations.c (move_plus_up): Likewise.
13403         (lra_eliminate_regs_1): Likewise.
13404         * recog.c (general_operand): Likewise.
13405         * ree.c (combine_reaching_defs): Likewise.
13406         * reload.c (push_reload): Likewise.
13407         (find_reloads): Likewise.
13408         * reload1.c (elimination_effects): Likewise.
13409         (compute_reload_subreg_offset): Likewise.
13410         (choose_reload_regs): Likewise.
13411         * rtlanal.c (subreg_lsb_1): Likewise.
13412         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
13413         (simplify_subreg): Likewise.
13414         * var-tracking.c (track_loc_p): Likewise.
13415         * emit-rtl.c (byte_lowpart_offset): Likewise.
13416         (paradoxical_subreg_p): Delete out-of-line definition.
13418 2017-08-22  Jeff Law  <law@redhat.com>
13420         PR tree-optimization/81741
13421         PR tree-optimization/71947
13422         * tree-ssa-dom.c: Include tree-inline.h.
13423         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
13424         equivalences if one is more expensive to compute than the other.
13425         * tree-ssa-scopedtables.h (class const_or_copies): Make
13426         record_const_or_copy_raw method private.
13427         (class avail_exprs_stack): New method simplify_binary_operation.
13428         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
13429         avail_exprs_stack::simplify_binary_operation as needed.
13430         (avail_exprs_stack::simplify_binary_operation): New function.
13432 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13434         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
13435         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
13436         (DOT_SYMBOLS): Likewise.
13437         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
13438         (RELOCATABLE_NEEDS_FIXUP): Likewise.
13439         (RS6000_ABI_NAME): Likewise.
13440         (TARGET_CMODEL): Likewise.
13441         (TOC_SECTION_ASM_OP): Likewise.
13442         (SET_CMODEL): New macro.
13443         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
13445 2017-08-22  Richard Biener  <rguenther@suse.de>
13447         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
13448         to allow for free-lang-data replacements similar to verify_type_variant.
13450 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
13451             Alan Hayward  <alan.hayward@arm.com>
13452             David Sherwood  <david.sherwood@arm.com>
13454         * config/aarch64/aarch64.md (casesi): Use DImode rather than
13455         VOIDmode for the LABEL_REF.
13457 2017-08-22  Richard Biener  <rguenther@suse.de>
13459         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
13461 2017-08-22  Richard Biener  <rguenther@suse.de>
13463         * common.opt (feliminate-dwarf2-dups): Ignore.
13464         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
13465         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
13466         same_die_p_wrap, compute_section_prefix,
13467         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
13468         (comdat_symbol_id, comdat_symbol_number): Likewise.
13469         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
13470         Likewise.
13471         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
13472         (output_die): Mark unreachable path unreachable.
13473         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
13474         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
13475         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
13476         (dwarf2out_early_finish): Likewise.
13478 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
13480         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
13482 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
13484         PR target/81910
13485         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
13486         not VAR_P. Filter attribute warnings with OPT_Wattributes.
13487         (avr_attribute_table) <io, io_low, address>: Initialize
13488         .decl_required with true.
13490 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
13492         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
13493         undocumented debugging options.
13494         (-mvsx-scalar-double): Likewise.
13495         (-mallow-df-permute): Likewise.
13496         (-mvectorize-builtins): Likewise.
13497         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
13498         (rs6000_builtin_vectorized_function): Likewise.
13499         (rs6000_builtin_md_vectorized_function): Likewise.
13500         (rs6000_opt_vars): Likewise.
13502 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
13504         PR target/46091
13505         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
13506         (*btrq_imm): Rename from *btrq.
13507         (*btcq_imm): Rename from *btcq.
13508         (btsc): New code attribute.
13509         (*<btsc><mode>): New insn pattern.
13510         (*btr<mode>): Ditto.
13511         (*<btsc><mode>_mask): New insn_and_split pattern.
13512         (*btr<mode>_mask): Ditto.
13514 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
13515             Alan Hayward  <alan.hayward@arm.com>
13516             David Sherwood  <david.sherwood@arm.com>
13518         * function.c (pad_below): Simplify padding calculation.
13520 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
13521             Alan Hayward  <alan.hayward@arm.com>
13522             David Sherwood  <david.sherwood@arm.com>
13524         * target.def (function_prologue): Remove frame size argument.
13525         (function_epilogue): Likewise.
13526         * doc/tm.texi: Regenerate.
13527         * final.c (final_start_function): Update call to function_prologue.
13528         (final_end_function): Update call to function_epilogue.
13529         (default_function_pro_epilogue): Remove frame size argument.
13530         * output.h (default_function_pro_epilogue): Likewise.
13531         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
13532         (arm_output_function_prologue): Likewise.
13533         * config/frv/frv.c (frv_function_prologue): Likewise.
13534         (frv_function_epilogue): Likewise.
13535         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
13536         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
13537         (ia64_output_function_epilogue): Likewise.
13538         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
13539         (m32r_output_function_epilogue): Likewise.
13540         * config/microblaze/microblaze.c (microblaze_function_prologue)
13541         (microblaze_function_epilogue): Likewise.
13542         * config/mips/mips.c (mips_output_function_prologue): Likewise.
13543         (mips_output_function_epilogue): Likewise.
13544         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
13545         (mmix_target_asm_function_epilogue): Likewise.
13546         * config/msp430/msp430.c (msp430_start_function): Likewise.
13547         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
13548         (nds32_asm_function_epilogue): Likewise.
13549         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
13550         * config/pa/pa.c (pa_output_function_prologue): Likewise.
13551         (pa_output_function_epilogue): Likewise.
13552         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
13553         (rs6000_output_function_epilogue): Likewise.
13554         * config/rl78/rl78.c (rl78_start_function): Likewise.
13555         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
13556         (rs6000_output_function_epilogue): Likewise.
13557         * config/rx/rx.c (rx_output_function_prologue): Likewise.
13558         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
13559         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
13560         (sparc_asm_function_epilogue): Likewise.
13562 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
13564         * tree.h (type_has_mode_precision_p): New function.
13565         * convert.c (convert_to_integer_1): Use it.
13566         * expr.c (expand_expr_real_2): Likewise.
13567         (expand_expr_real_1): Likewise.
13568         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
13569         * match.pd: Likewise.
13570         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
13571         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
13572         * tree-tailcall.c (process_assignment): Likewise.
13573         * tree-vect-loop.c (vectorizable_reduction): Likewise.
13574         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
13575         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
13576         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
13577         (vectorizable_assignment): Likewise.
13578         (vectorizable_shift): Likewise.
13579         (vectorizable_operation): Likewise.
13580         * tree-vrp.c (register_edge_assert_for_2): Likewise.
13582 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
13584         * match.pd: Add pow (C, x) simplification.
13586 2017-08-21  Richard Biener  <rguenther@suse.de>
13588         PR tree-optimization/81900
13589         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
13590         for blocks with abnormal predecessors.
13591         (compute_antic): Do not set visited flag prematurely.
13593 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
13595         PR target/79883
13596         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
13598 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
13600         * stor-layout.h (vector_type_mode): Move to...
13601         * tree.h (vector_type_mode): ...here.
13602         * stor-layout.c (vector_type_mode): Move to...
13603         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
13605 2017-08-21  Richard Biener  <rguenther@suse.de>
13607         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
13608         register_external_die hooks.
13609         (debug_false_tree_charstarstar_uhwistar): Declare.
13610         (debug_nothing_tree_charstar_uhwi): Likewise.
13611         * debug.c (do_nothing_debug_hooks): Adjust.
13612         (debug_false_tree_charstarstar_uhwistar): New do nothing.
13613         (debug_nothing_tree_charstar_uhwi): Likewise.
13614         * dbxout.c (dbx_debug_hooks): Adjust.
13615         (xcoff_debug_hooks): Likewise.
13616         * sdbout.c (sdb_debug_hooks): Likewise.
13617         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13618         * dwarf2out.c (macinfo_label_base): New global.
13619         (dwarf2out_register_external_die): New function for the
13620         register_external_die hook.
13621         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
13622         (dwarf2_debug_hooks): Use them.
13623         (dwarf2_lineno_debug_hooks): Adjust.
13624         (struct die_struct): Add with_offset flag.
13625         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
13626         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
13627         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
13628         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
13629         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
13630         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
13631         defining section names for the early LTO debug variants.
13632         (reset_indirect_string): New helper.
13633         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
13634         (print_dw_val): Add support for offsetted symbol references.
13635         (get_ultimate_context): Split out from is_cxx.
13636         (is_cxx): Use get_ultimate_context.
13637         (is_fortran): Add decl overload.
13638         (compute_comp_unit_symbol): Split out worker from
13639         compute_section_prefix.
13640         (compute_section_prefix): Call compute_comp_unit_symbol and
13641         set comdat_type_p here.
13642         (output_die): Skip DIE symbol output for the LTO added one.
13643         Handle DIE symbol references with offset.
13644         (output_comp_unit): Guard section name mangling properly.
13645         For LTO debug sections emit a symbol at the section beginning
13646         which we use to refer to its DIEs.
13647         (add_abstract_origin_attribute): For DIEs registered via
13648         dwarf2out_register_external_die directly refer to the early
13649         DIE rather than indirectly through the shadow one we created.
13650         Remove obsolete call to dwarf2out_abstract_function for
13651         non-function/block origins.
13652         (gen_array_type_die): When generating early LTO debug do
13653         not emit DW_AT_string_length.
13654         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
13655         late when in LTO.  As suggested place a gcc_unreachable for
13656         the DECL_ABSTRACT_P case.
13657         (gen_subprogram_die): Avoid another specification DIE
13658         for early built declarations/definitions for the late LTO case.
13659         (gen_variable_die): Add type references for late duplicated VLA dies
13660         when in late LTO.
13661         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
13662         we have the abstract instance already.
13663         (process_scope_var): Adjust decl DIE contexts in LTO which
13664         first puts them in limbo.
13665         (gen_decl_die): Do not generate type DIEs late apart from
13666         types for VLAs or for decls we do not yet have a DIE.  Do not
13667         call dwarf2out_abstract_function late.
13668         (dwarf2out_early_global_decl): Make sure to create DIEs
13669         for abstract instances of a decl first.
13670         (dwarf2out_late_global_decl): Adjust comment.
13671         (output_macinfo_op): With multiple macro sections use
13672         macinfo_label_base to distinguish labels.
13673         (output_macinfo): Likewise.  Update macinfo_label_base.
13674         Pass in the line info label.
13675         (note_variable_value_in_expr): When generating LTO resolve
13676         all variable values here by generating DIEs as needed.
13677         (init_sections_and_labels): Add early LTO debug flag parameter
13678         and generate different sections and names if set.  Add generation
13679         counter for the labels so we can have multiple of them.
13680         (reset_dies): Helper to allow DIEs to be output multiple times.
13681         (dwarf2out_finish): When outputting DIEs to the fat part of an
13682         LTO object first reset DIEs.
13683         (dwarf2out_early_finish): Output early DIEs when generating LTO.
13684         (modified_type_die): Check for decl_ultimate_origin being self
13685         before recursing.
13686         (gen_type_die_with_usage): Likewise.
13687         (gen_typedef_die): Allow decl_ultimate_origin being self.
13688         (set_decl_abstract_flags): Remove.
13689         (set_block_abstract_flags): Likewise.
13690         (dwarf2out_abstract_function): Treat the early generated DIEs
13691         as the abstract copy and only add DW_AT_inline and
13692         DW_AT_artificial here and call set_decl_origin_self.
13693         If the DIE has an abstract origin don't do anything.
13694         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
13695         if we have none yet (Go fails to build one, PR78628).
13696         (variably_modified_type_p): Prevent endless recursion for Ada
13697         cyclic pointer types.
13698         * lto-streamer-in.c: Include debug.h.
13699         (dref_queue): New global.
13700         (lto_read_tree_1): Stream in DIE references.
13701         (lto_input_tree): Register DIE references.
13702         (input_function): Stream DECL_DEBUG_ARGS.
13703         * lto-streamer-out.c: Include debug.h.
13704         (lto_write_tree_1): Output DIE references.
13705         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
13706         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
13707         (output_function): Stream DECL_DEBUG_ARGS.
13708         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
13709         Stream DECL_ABSTRACT_ORIGIN.
13710         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
13711         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
13712         DECL_CONTEXT for file-scope decls.
13713         * lto-streamer.h (struct dref_entry): Declare.
13714         (dref_queue): Likewise.
13715         * cfgexpand.c (pass_expand::execute): Do not call the
13716         outlining_inline_function hook here.
13717         * lto-wrapper.c (debug_obj): New global.
13718         (tool_cleanup): Unlink it if required.
13719         (debug_objcopy): New function.
13720         (run_gcc): Handle early debug sections in the IL files by
13721         extracting them to separate files, partially linkin them and
13722         feeding the result back as result to the linker.
13723         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
13724         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
13725         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
13726         sections into a separate segment.
13727         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
13728         segments.
13729         (darwin_asm_dwarf_section): Likewise.
13730         (darwin_asm_output_dwarf_offset): Likewise.
13731         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
13733 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
13734             Alan Hayward  <alan.hayward@arm.com>
13735             David Sherwood  <david.sherwood@arm.com>
13737         * read-md.h (md_reader::record_potential_iterator_use): Replace
13738         pointer argument with an rtx and an index.
13739         * read-rtl.c (iterator_group::apply_iterator): Likewise.
13740         (apply_mode_iterator): Likewise.
13741         (apply_code_iterator): Likewise.
13742         (apply_int_iterator): Likewise.
13743         (apply_subst_iterator): Likewise.
13744         (record_iterator_use): Likewise.
13745         (record_attribute_use): Likewise.
13746         (md_reader::record_potential_iterator_use): Likewise.  Update calls
13747         to record_iterator_use and apply_iterator.
13748         (iterator_use): Replace ptr with x and index.
13749         (attribute_use): Likewise.
13750         (apply_attribute_uses): Update calls to apply_iterator.
13751         (apply_iterators): Likewise.  Update initialization of iterator_use.
13752         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
13753         and record_potential_iterator_use.
13754         (rtx_reader::read_rtx_operand): Likewise.
13756 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
13757             Alan Hayward  <alan.hayward@arm.com>
13758             David Sherwood  <david.sherwood@arm.com>
13760         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
13761         CONST_WIDE_INT.
13763 2017-08-21  Richard Biener  <rguenther@suse.de>
13765         PR middle-end/81884
13766         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
13767         at struct end conservatively when comparing common bases.
13769 2017-08-21  Richard Biener  <rguenther@suse.de>
13771         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
13772         (mem_ref_in_stmt): Remove.
13773         (determine_max_movement): Use ref index to get at the reference.
13774         (invariantness_dom_walker::before_dom_children): Deal with
13775         lim data already initialized.
13776         (gather_mem_refs_stmt): Initialize lim data and record ref index.
13778 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
13780         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
13781         (TARGET_ISA_ROUND): Ditto.
13782         (TARGET_ROUND): Ditto.
13783         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
13784         * config/i386/i386.md: Ditto.
13785         * config/i386/sse.md: Ditto.
13786         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
13787         with OPTION_MASK_ISA_SSE4_1.
13789 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
13791         PR target/81894
13792         * doc/extend.texi (x86 Built-in Functions): Correct the name of
13793         __builtin_ia32_lzcnt_u16.
13795 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
13797         PR target/80210
13798         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
13799         (rs6000_set_current_function): Rewrite function to use it.
13801 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
13803         PR c/53037
13804         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
13805         and TYPE_WARN_IF_NOT_ALIGN.
13806         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
13807         (handle_warn_if_not_align): New.
13808         (place_union_field): Call handle_warn_if_not_align.
13809         (place_field): Call handle_warn_if_not_align.
13810         Copy TYPE_WARN_IF_NOT_ALIGN.
13811         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
13812         (layout_type): Likewise.
13813         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
13814         spare to 18.
13815         (tree_decl_common): Add warn_if_not_align.
13816         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
13817         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
13818         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
13819         (DECL_WARN_IF_NOT_ALIGN): Likewise.
13820         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
13821         * doc/extend.texi: Document warn_if_not_aligned attribute.
13822         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
13824 2017-08-17  Martin Liska  <mliska@suse.cz>
13826         PR bootstrap/81864
13827         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
13828         (get_data_dependence): Use it as pointer type.
13829         (distribute_loop): Likewise.
13831 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13833         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
13834         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
13835         (p8_vmrgow_<mode>_direct): New define_insn.
13836         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
13837         handle endianness for vmrgew and vmrgow permute patterns.
13839 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
13841         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
13842         * config/rs6000/rs6000-cpus.def: Remove comment.
13843         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
13844         (POWERPC_MASKS): Likewise.
13845         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
13846         use of TARGET_VSX_TIMODE.
13847         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
13848         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
13849         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
13850         (rs6000_option_override_internal): Remove dead code.
13851         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
13852         (rs6000_legitimize_reload_address): Likewise.
13853         (rs6000_legitimate_address_p): Likewise.
13854         (rs6000_opt_masks): Delete "vsx-timode".
13855         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
13856         from function comment.
13857         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
13858         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
13859         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
13860         condition.
13861         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
13862         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
13863         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
13864         (VSX_TI): Likewise.
13865         (VSX_M): Likewise.
13866         (define_peephole2): Likewise.
13868 2017-08-17  Martin Sebor  <msebor@redhat.com>
13870         PR c/81859
13871         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
13872         past the end of an array.
13873         (test_pp_format): Add test cases.
13875 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
13877         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
13878         missing ECF_NOTHROW flags.
13880 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
13882         PR target/72804
13883         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
13884         operands residing in integer registers.
13885         (*vsx_le_perm_load_<mode>): Likewise.
13886         (*vsx_le_perm_store_<mode>): Likewise.
13887         (define_peephole2): Add peepholes to optimize the above.
13889 2017-08-17  Marek Polacek  <polacek@redhat.com>
13891         PR middle-end/81814
13892         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
13893         to mimic what shorten_compare did.  Change the return type to bool.
13894         (fold_cond_expr_with_comparison): Update call to
13895         operand_equal_for_comparison_p.
13896         (fold_ternary_loc): Likewise.
13898 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
13900         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
13901         register.
13902         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
13904 2017-08-17  Richard Biener  <rguenther@suse.de>
13906         * tree-ssa-structalias.c (solve_graph): When propagating
13907         to successors update the graphs succ edges and avoid duplicate work.
13909 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
13911         PR target/81861
13912         * config/i386/i386.c (ix86_option_override_internal): Save target
13913         specific options after ix86_stack_protector_guard_reg was changed.
13915 2017-08-17  Richard Biener  <rguenther@suse.de>
13917         PR tree-optimization/81827
13918         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
13919         (new_var_info): Initialize it conservatively.
13920         (get_call_vi): Mark register vars.
13921         (new_scalar_tmp_constraint_exp): Likewise.
13922         (handle_rhs_call): Likewise.
13923         (handle_const_call): Likewise.
13924         (create_function_info_for): Likewise.
13925         (solve_constraints): Sort varinfos to separate register from
13926         non-register vars to pack points-to solution bitmaps during
13927         iteration.
13929 2017-08-17  Marek Polacek  <polacek@redhat.com>
13931         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
13933 2017-08-17  Richard Biener  <rguenther@suse.de>
13935         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
13936         to true when overflow is undefined and we saturated the result.
13938 2017-08-17  Alan Modra  <amodra@gmail.com>
13940         PR target/80938
13941         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
13942         Don't use store multiple if only one reg needs saving.
13943         (interesting_frame_related_regno): New function.
13944         (rs6000_frame_related): Don't emit frame info for regs that
13945         don't need saving.
13946         (rs6000_emit_epilogue): Likewise.
13948 2017-08-16  Nathan Sidwell  <nathan@acm.org>
13950         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
13951         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
13952         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
13953         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
13954         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
13955         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
13956         (verify_type): Adjust for TYPE_BINFO move.
13957         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
13958         process TYPE_BINFO directly.
13959         (hash_tree): Likewise.
13960         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
13961         Likewise.
13962         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
13963         Likewise.
13965 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
13967         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
13969 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
13971         PR target/46091
13972         * config/i386/i386.md (*anddi_1_btr): Change predicates of
13973         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
13974         Add ix86_binary_operator_ok to insn constraint.
13975         (*iordi_1_bts): Ditto.
13976         (*xordi_1_btc): Ditto.
13977         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
13978         Update corresponding peephole2 pattern.
13979         (*btrq): Ditto.
13980         (*btcq): Ditto.
13982 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
13984         PR tree-optimization/81832
13985         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
13986         copy loop header which has IFN_LOOP_DIST_ALIAS call.
13988 2017-08-16  Marek Polacek  <polacek@redhat.com>
13990         PR middle/81695
13991         * fold-const.c (fold_indirect_ref_1): Restore original behavior
13992         regarding size_zero_node.
13994 2017-08-16  Martin Liska  <mliska@suse.cz>
13996         PR target/81753
13997         * config.gcc: Respect previously set extra_objs in case
13998         of darwin target.
14000 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
14002         PR tree-optimization/81835
14003         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
14004         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
14005         not depend on the phi.
14007 2017-08-16  Alan Modra  <amodra@gmail.com>
14009         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
14010         dead code.
14012 2017-08-16  Alan Modra  <amodra@gmail.com>
14014         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
14015         (save_reg_p): ..into this.  Update all callers.
14016         (first_reg_to_save): Simplify.
14018 2017-08-16  Alan Modra  <amodra@gmail.com>
14020         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
14021         fixed regs.
14023 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
14025         PR target/78460
14026         PR target/67712
14027         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
14028         constant count if that count is less than 32.
14030 2017-08-15  Nathan Sidwell  <nathan@acm.org>
14032         * gcc.c (execute): Emit friendlier message if inferior is killed
14033         by an external cause.
14035 2017-08-15  Richard Biener  <rguenther@suse.de>
14037         PR tree-optimization/81790
14038         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
14039         CONSTRUCTORs from simplifying and VN.
14041 2017-08-14  Martin Sebor  <msebor@redhat.com>
14043         * builtin-attrs.def: Add comments.
14045 2017-08-14  Martin Sebor  <msebor@redhat.com>
14047         PR c/81117
14048         * doc/extend.texi (attribute nonstring): Document new attribute.
14050 2017-08-14  Martin Sebor  <msebor@redhat.com>
14052         PR c/81117
14053         * tree-diagnostic.c (default_tree_printer): Handle %G.
14054         * gimple-pretty-print.h (percent_G_format): Declare new function.
14055         * gimple-pretty-print.c (percent_G_format): Define.
14056         * tree-pretty-print.c (percent_K_format): Add argument.
14058 2017-08-14  Martin Sebor  <msebor@redhat.com>
14060         PR translation/79998
14061         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
14062         Remove a stray space.
14064 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
14066         PR target/46091
14067         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
14068         (*iordi_1_bts): Ditto.
14069         (*xordi_1_btc): Ditto.
14071 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14073         PR target/79845
14074         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
14075         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14076         Likewise.
14077         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
14078         quoted strings, and make more translator-friendly.
14079         (darwin_rs6000_override_options): Likewise.
14080         (rs6000_option_override_internal): Likewise.
14081         (rs6000_return_in_memory): Fix overlong line.
14082         (init_cmulative_args): Use quoted strings, and make more
14083         translator-friendly.
14084         (rs6000_pass_by_reference): Fix overlong line.
14085         (def_builtin): Use quoted strings.
14086         (altivec_expand_predicate_builtin): Use quoted strings, and make
14087         more translator-friendly.
14088         (htm_expand_builtin): Use quoted strings.
14089         (cpu_expand_builtin): Use quoted strings, and make more
14090         translator-friendly.
14091         (altivec_expand_builtin): Likewise.
14092         (paired_expand_predicate_builtin): Likewise.
14093         (rs6000_invalid_builtin): Likewise.
14094         (builtin_function_type): Use quoted strings.
14095         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
14096         more translator-friendly.
14097         (rs6000_trampoline_init): Likewise.
14098         (rs6000_handle_altivec_attribute): Likewise.
14099         (rs6000_inner_target_options): Use quoted strings.
14100         (rs6000_disable_incompatible_switches): Likewise.
14101         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
14102         strings, and make more translator-friendly.
14103         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
14105 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
14107         PR tree-optimization/81799
14108         * tree-loop-distribution.c (version_loop_by_alias_check): Force
14109         cond_expr to simple gimple operand.
14111 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
14113         PR middle-end/46932
14114         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
14116 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
14118         PR target/81754
14119         PR target/81268
14120         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
14121         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
14122         TARGET_GASISR_PROLOGUES.
14123         * config/avr/avr.c (avr_option_override): Same.
14124         (avr_pass_pre_proep::execute): Same.
14126 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
14128         PR target/81820
14129         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
14130         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
14132 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
14134         * config/i386/i386.md (*load_tp_<mode>): Redefine as
14135         define_insn_and_split.  Split to a memory load from 0 in
14136         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
14137         using PTR mode iterator.
14138         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
14139         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
14140         (*add_tp_<mode>): Redefine as define_insn_and_split.
14141         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
14142         address space.  Merge with *add_tp_x32 using PTR mode iterator.
14143         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
14144         Split to an add with a  memory load from 0 in
14145         DEFAULT_TLS_SEG_REG address space.
14147 2017-08-12  Andrew Pinski  <apinski@cavium.com>
14149         * config/aarch64/aarch64-option-extensions.def (rdma):
14150         Fix feature string to what Linux prints out in /proc/cpuinfo.
14152 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
14154         PR ada/79542
14155         * dwarf2out.c (modified_type_die): For C typedef types that have
14156         an ultimate origin, process the ultimate origin instead of the
14157         input type.
14158         (gen_typedef_die): Assert that input DECLs have no ultimate
14159         origin.
14160         (gen_type_die_with_usage): For typedef variants that have an
14161         ultimate origin, just call gen_decl_die on the original DECL.
14162         (process_scope_var): Avoid creating DIEs for local typedefs and
14163         concrete static variables.
14165 2017-08-12  Alan Modra  <amodra@gmail.com>
14167         PR target/81170
14168         PR target/81295
14169         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
14170         match gnu-user.h startfile.
14171         (ENDFILE_LINUX_SPEC): Similarly.
14173 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
14175         PR lto/81430
14176         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
14177         Remove function.
14178         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
14180 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
14181         * config/aarch64/aarch64.md (mov<mode>): Change.
14182         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
14183         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
14184         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
14186 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
14188         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
14189         for storage order barriers.
14191 2017-08-11  Martin Liska  <mliska@suse.cz>
14193         PR tree-opt/79987
14194         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
14195         variables of void type.
14197 2017-08-11  Martin Liska  <mliska@suse.cz>
14199         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
14200         TARGET_SUPPORTS_ALIASES.
14201         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
14202         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
14203         (optimize_weakref): Likewise.
14204         * symtab.c (symtab_node::noninterposable_alias): Likewise.
14205         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
14206         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
14208 2017-08-11  Martin Liska  <mliska@suse.cz>
14210         PR ipa/81213
14211         * config/i386/i386.c (make_resolver_func): Do complete
14212         refactoring of the function.
14214 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
14216         PR target/81708
14217         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
14218         * config/i386/i386.c (ix86_stack_protect_guard): Use
14219         ix86_stack_protect_guard_symbol_str to generate varible declaration.
14220         * doc/invoke.texi (x86 Options): Document
14221         -mstack-protector-guard-symbol= option.
14223 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
14225         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
14226         * config/i386/i386.c (ix86_split_stack_guard): New function.
14227         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
14228         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
14229         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
14230         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
14231         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
14232         (split_stack_space_check): Call ix86_split_stack_guard.
14234 2017-08-10  Martin Sebor  <msebor@redhat.com>
14236         * print-tree.c (print_node): Print location using the established
14237         format %s:%i%i.
14238         Replace spaces with colons.
14239         (debug_raw, debug): Ditto.
14241 2017-08-10  Martin Sebor  <msebor@redhat.com>
14243         PR c++/81586
14244         * pretty-print.c (pp_format): Correct the handling of %s precision.
14246 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
14248         PR target/81736
14249         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
14250         to ...
14251         (ix86_finalize_stack_frame_flags): This.  Also clear
14252         frame_pointer_needed if -fno-omit-frame-pointer is used without
14253         stack access.
14254         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
14255         with ix86_finalize_stack_frame_flags.
14256         (ix86_expand_epilogue): Likewise.
14257         (ix86_expand_split_stack_prologue): Likewise.
14258         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
14260 2017-08-10  Martin Liska  <mliska@suse.cz>
14262         PR c++/81355
14263         * c-attribs.c (handle_target_attribute):
14264         Report warning for an empty string argument of target attribute.
14266 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
14268         PR c/81687
14269         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
14270         LABEL_DECLs.
14271         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
14272         or DECL_NONLOCAL labels.
14273         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
14274         or DECL_NONLOCAL labels here.
14276 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
14278         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
14279         to indicate when early gimple folding has been disabled.
14280         (rs6000_gimple_fold_builtin): Add debug content.
14281         (rs6000_invalid_builtin): Fix whitespace.
14282         (rs6000_expand_builtin): Fix whitespace.
14283         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
14285 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
14287         PR target/80938
14288         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
14289         SAVE_MULTIPLE if not all the registers that saves, should be saved.
14291 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
14293         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
14294         (qdf24xx): Likewise.
14295         * config/aarch64/aarch64.md: Include falkor.md.
14296         * config/aarch64/falkor.md: New.
14298 2017-08-09  Marek Polacek  <polacek@redhat.com>
14300         PR c/81233
14301         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
14302         * diagnostic.c (emit_diagnostic): Add a comment.
14303         (emit_diagnostic_valist): New function.
14305 2017-08-09  Marek Polacek  <polacek@redhat.com>
14307         PR c/81417
14308         * input.c (make_location): New overload.
14309         * input.h (make_location): Declare.
14311 2017-08-08  Alan Modra  <amodra@gmail.com>
14312             H.J. Lu  <hongjiu.lu@intel.com>
14314         PR driver/81523
14315         * gcc.c (NO_PIE_SPEC): Delete.
14316         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
14317         exclusion..
14318         (LINK_PIE_SPEC): ..to here.
14319         (LINK_COMMAND_SPEC): Support -no-pie.
14320         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
14321         chain of crtbegin*.o selection, update for PIE_SPEC changes and
14322         format.
14323         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
14324         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
14325         (ENDFILE_CRTEND_SPEC): Similarly.
14327 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
14329         PR target/81708
14330         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
14331         (mstack-protector-guard-offset=): Ditto.
14332         * config/i386/i386.c (ix86_option_override): Handle
14333         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
14334         options.
14335         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
14336         ix86_stack_protect_guard_offset variables.
14337         (TARGET_STACK_PROTECT_GUARD): Always define.
14338         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
14339         and -mstack-protector-guard-offset= options.
14341 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
14343         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
14344         boundary case for the last candidate.
14346 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
14348         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
14349         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
14351 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
14353         PR middle-end/19706
14354         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
14355         * config/aarch64/aarch64-builtins.c
14356         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
14357         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
14358         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
14360 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
14361             Andrew Pinski <pinskia@gmail.com>
14363         PR middle-end/19706
14364         * internal-fn.def (XORSIGN): New.
14365         * optabs.def (xorsign_optab): New.
14366         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
14367         (convert_expand_mult_copysign): New.
14368         (pass_optimize_widening_mul::execute): Call
14369         convert_expand_mult_copysign.
14371 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14373         PR tree-optimization/81354
14374         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
14375         Insert on edges rather than explicitly creating landing pads.
14376         (analyze_candidates_and_replace): Commit edge inserts.
14378 2017-08-08  Richard Biener  <rguenther@suse.de>
14380         PR middle-end/81719
14381         * tree-ssa-loop-niter.c: Include tree-dfa.h.
14382         (expand_simple_operations): Also look through ADDR_EXPRs with
14383         MEM_REF bases treating them as POINTER_PLUS_EXPR.
14385 2017-08-08  Richard Biener  <rguenther@suse.de>
14387         PR tree-optimization/81723
14388         * tree-vect-slp.c (struct bst_traits): New hash traits.
14389         (bst_fail): New global.
14390         (vect_build_slp_tree_2): New worker, split out from ...
14391         (vect_build_slp_tree): ... this now wrapping it with using
14392         bst_fail set to cache SLP tree build fails.  Properly handle
14393         max_tree_size.
14394         (vect_analyze_slp_instance): Allocate and free bst_fail.
14396 2017-08-08  Martin Liska  <mliska@suse.cz>
14398         PR tree-opt/81696
14399         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
14400         LABEL_DECLs that can be from a different function.
14402 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
14404         PR tree-optimization/81744
14405         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
14406         loop's number of iterations.
14408 2017-08-08  Martin Liska  <mliska@suse.cz>
14410         * asan.c: Include header files.
14411         * attribs.c (build_decl_attribute_variant): New function moved
14412         from tree.[ch].
14413         (build_type_attribute_qual_variant): Likewise.
14414         (cmp_attrib_identifiers): Likewise.
14415         (simple_cst_list_equal): Likewise.
14416         (omp_declare_simd_clauses_equal): Likewise.
14417         (attribute_value_equal): Likewise.
14418         (comp_type_attributes): Likewise.
14419         (build_type_attribute_variant): Likewise.
14420         (lookup_ident_attribute): Likewise.
14421         (remove_attribute): Likewise.
14422         (merge_attributes): Likewise.
14423         (merge_type_attributes): Likewise.
14424         (merge_decl_attributes): Likewise.
14425         (merge_dllimport_decl_attributes): Likewise.
14426         (handle_dll_attribute): Likewise.
14427         (attribute_list_equal): Likewise.
14428         (attribute_list_contained): Likewise.
14429         * attribs.h (lookup_attribute): New function moved from tree.[ch].
14430         (lookup_attribute_by_prefix): Likewise.
14431         * bb-reorder.c: Include header files.
14432         * builtins.c: Likewise.
14433         * calls.c: Likewise.
14434         * cfgexpand.c: Likewise.
14435         * cgraph.c: Likewise.
14436         * cgraphunit.c: Likewise.
14437         * convert.c: Likewise.
14438         * dwarf2out.c: Likewise.
14439         * final.c: Likewise.
14440         * fold-const.c: Likewise.
14441         * function.c: Likewise.
14442         * gimple-expr.c: Likewise.
14443         * gimple-fold.c: Likewise.
14444         * gimple-pretty-print.c: Likewise.
14445         * gimple.c: Likewise.
14446         * gimplify.c: Likewise.
14447         * hsa-common.c: Likewise.
14448         * hsa-gen.c: Likewise.
14449         * internal-fn.c: Likewise.
14450         * ipa-chkp.c: Likewise.
14451         * ipa-cp.c: Likewise.
14452         * ipa-devirt.c: Likewise.
14453         * ipa-fnsummary.c: Likewise.
14454         * ipa-inline.c: Likewise.
14455         * ipa-visibility.c: Likewise.
14456         * ipa.c: Likewise.
14457         * lto-cgraph.c: Likewise.
14458         * omp-expand.c: Likewise.
14459         * omp-general.c: Likewise.
14460         * omp-low.c: Likewise.
14461         * omp-offload.c: Likewise.
14462         * omp-simd-clone.c: Likewise.
14463         * opts-global.c: Likewise.
14464         * passes.c: Likewise.
14465         * predict.c: Likewise.
14466         * sancov.c: Likewise.
14467         * sanopt.c: Likewise.
14468         * symtab.c: Likewise.
14469         * toplev.c: Likewise.
14470         * trans-mem.c: Likewise.
14471         * tree-chkp.c: Likewise.
14472         * tree-eh.c: Likewise.
14473         * tree-into-ssa.c: Likewise.
14474         * tree-object-size.c: Likewise.
14475         * tree-parloops.c: Likewise.
14476         * tree-profile.c: Likewise.
14477         * tree-ssa-ccp.c: Likewise.
14478         * tree-ssa-live.c: Likewise.
14479         * tree-ssa-loop.c: Likewise.
14480         * tree-ssa-sccvn.c: Likewise.
14481         * tree-ssa-structalias.c: Likewise.
14482         * tree-ssa.c: Likewise.
14483         * tree-streamer-in.c: Likewise.
14484         * tree-vectorizer.c: Likewise.
14485         * tree-vrp.c: Likewise.
14486         * tsan.c: Likewise.
14487         * ubsan.c: Likewise.
14488         * varasm.c: Likewise.
14489         * varpool.c: Likewise.
14490         * tree.c: Remove functions moved to attribs.[ch].
14491         * tree.h: Likewise.
14492         * config/aarch64/aarch64.c: Add attrs.h header file.
14493         * config/alpha/alpha.c: Likewise.
14494         * config/arc/arc.c: Likewise.
14495         * config/arm/arm.c: Likewise.
14496         * config/avr/avr.c: Likewise.
14497         * config/bfin/bfin.c: Likewise.
14498         * config/c6x/c6x.c: Likewise.
14499         * config/cr16/cr16.c: Likewise.
14500         * config/cris/cris.c: Likewise.
14501         * config/darwin.c: Likewise.
14502         * config/epiphany/epiphany.c: Likewise.
14503         * config/fr30/fr30.c: Likewise.
14504         * config/frv/frv.c: Likewise.
14505         * config/ft32/ft32.c: Likewise.
14506         * config/h8300/h8300.c: Likewise.
14507         * config/i386/winnt.c: Likewise.
14508         * config/ia64/ia64.c: Likewise.
14509         * config/iq2000/iq2000.c: Likewise.
14510         * config/lm32/lm32.c: Likewise.
14511         * config/m32c/m32c.c: Likewise.
14512         * config/m32r/m32r.c: Likewise.
14513         * config/m68k/m68k.c: Likewise.
14514         * config/mcore/mcore.c: Likewise.
14515         * config/microblaze/microblaze.c: Likewise.
14516         * config/mips/mips.c: Likewise.
14517         * config/mmix/mmix.c: Likewise.
14518         * config/mn10300/mn10300.c: Likewise.
14519         * config/moxie/moxie.c: Likewise.
14520         * config/msp430/msp430.c: Likewise.
14521         * config/nds32/nds32-isr.c: Likewise.
14522         * config/nds32/nds32.c: Likewise.
14523         * config/nios2/nios2.c: Likewise.
14524         * config/nvptx/nvptx.c: Likewise.
14525         * config/pa/pa.c: Likewise.
14526         * config/pdp11/pdp11.c: Likewise.
14527         * config/powerpcspe/powerpcspe.c: Likewise.
14528         * config/riscv/riscv.c: Likewise.
14529         * config/rl78/rl78.c: Likewise.
14530         * config/rx/rx.c: Likewise.
14531         * config/s390/s390.c: Likewise.
14532         * config/sh/sh.c: Likewise.
14533         * config/sol2.c: Likewise.
14534         * config/sparc/sparc.c: Likewise.
14535         * config/spu/spu.c: Likewise.
14536         * config/stormy16/stormy16.c: Likewise.
14537         * config/tilegx/tilegx.c: Likewise.
14538         * config/tilepro/tilepro.c: Likewise.
14539         * config/v850/v850.c: Likewise.
14540         * config/vax/vax.c: Likewise.
14541         * config/visium/visium.c: Likewise.
14542         * config/xtensa/xtensa.c: Likewise.
14544 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
14546         PR target/81593
14547         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
14548         constraints since the -mupper-regs-* switches have been
14549         eliminated.
14550         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
14551         into a vector from a double word element that was extracted from
14552         another vector, and eliminate extra XXPERMDI instructions.
14553         (vsx_concat_<mode>_2): Likewise.
14554         (vsx_concat_<mode>_3): Likewise.
14555         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
14556         concat to allow optimizing inserts from previous extracts.
14558 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
14560         * config/i386/i386.c (ix86_stack_protect_guard): Generate
14561         memory reference to a SSP offset in TLS address space.
14562         (ix86_print_operand) <case '@'>: Remove.
14563         (ix86_print_operand_punct_valid_p): Remove '@' code.
14564         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
14565         UNSPEC_SP_TLS_TEST.
14566         (stack_tls_protect_set_<mode>): Remove.
14567         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
14568         (stack_tls_protect_test_<mode>): Remove.
14569         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
14571 2017-08-07  Olivier Hainque  <hainque@adacore.com>
14573         PR target/81755
14574         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
14576 2017-08-07  Douglas Rupp  <rupp@adacore.com>
14578         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
14579         variable was referenced as multidir in command.
14581 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
14583         PR c/69389
14584         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
14585         BIT_FIELD_REF.
14587 2017-08-07  Martin Liska  <mliska@suse.cz>
14589         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
14590         * config/rl78/rl78.c: Add include of attribs.h.
14591         * config/sh/sh.c: Likewise.
14592         * config/v850/v850.c: Likewise.
14594 2017-08-07  Tom de Vries  <tom@codesourcery.com>
14596         PR middle-end/78266
14597         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
14599 2017-08-07  Martin Liska  <mliska@suse.cz>
14601         * config/mips/mips.c: Include attribs.h.
14603 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
14605         PR fortran/68829
14606         * doc/invoke.texi: Document change in behvaior for -Ofast for
14607         Fortran.
14609 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
14611         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
14612         Use gen_frame_mem.
14613         (aarch64_pop_regs): Likewise.
14614         (aarch64_gen_load_pair): Likewise.
14615         (aarch64_save_callee_saves): Likewise.
14616         (aarch64_restore_callee_saves): Likewise.
14618 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
14620         * config/i386/i386.c: Revert the last change.
14622 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
14624         PR target/81736
14625         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
14626         to ...
14627         (ix86_finalize_stack_frame_flags): This.  Also clear
14628         frame_pointer_needed if -fno-omit-frame-pointer is used without
14629         stack access.
14630         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
14631         with ix86_finalize_stack_frame_flags.
14632         (ix86_expand_epilogue): Likewise.
14633         (ix86_expand_split_stack_prologue): Likewise.
14635 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
14637         PR target/81743
14638         * config/i386/i386.c (get_builtin_code_for_version): Set priority
14639         to P_AES for Westmere.
14641 2017-08-07  Jonathan Yong  <10walls@gmail.com>
14643         * config/i386/mingw.opt (fset-stack-executable): Removed.
14644         * config/i386/cygming.opt (fset-stack-executable): Moved
14645         from mingw.opt.
14646         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
14648 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
14650         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
14652 2017-08-07  Marek Polacek  <polacek@redhat.com>
14654         PR middle-end/81737
14655         * fold-const.c (fold_indirect_ref_1): Check type_domain.
14657 2017-08-07  Martin Liska  <mliska@suse.cz>
14659         * attribs.h (canonicalize_attr_name): New function.
14660         (cmp_attribs): Move from c-format.c and adjusted.
14661         (is_attribute_p): Moved from tree.h.
14662         * tree-inline.c: Add new includes.
14663         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
14664         (private_is_attribute_p): Remove.
14665         (private_lookup_attribute): Likewise.
14666         (private_lookup_attribute_by_prefix): Simplify.
14667         (remove_attribute): Use is_attribute_p.
14668         * tree.h: Remove removed declarations.
14670 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
14672         PR middle-end/81698
14673         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
14674         instead of computing it in the function.  Formatting fix.
14675         (expand_case): Don't rely on default_edge being the first edge,
14676         clear it if removing it, pass default_edge to
14677         emit_case_dispatch_table.
14678         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
14679         fix.
14681 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
14683         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
14684         insn in the function, emit NOP after the insn.
14686 2017-08-06  Tom de Vries  <tom@codesourcery.com>
14688         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
14689         and element loops.
14691 2017-08-06  Tom de Vries  <tom@codesourcery.com>
14693         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
14694         loop.
14696 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
14698         PR tree-optimization/57371
14699         * match.pd: New pattern.
14701 2017-08-04  Marek Polacek  <polacek@redhat.com>
14703         PR middle-end/81695
14704         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
14705         perform the computation in offset_int.
14707 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
14709         PR tree-optimization/81136
14710         * tree-vectorizer.h: Include tree-hash-traits.h.
14711         (vec_base_alignments): New typedef.
14712         (vec_info): Add a base_alignments field.
14713         (vect_record_base_alignments): Declare.
14714         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
14715         field.
14716         (DR_IS_CONDITIONAL_IN_STMT): New macro.
14717         (create_data_ref): Add an is_conditional_in_stmt argument.
14718         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
14719         the is_conditional_in_stmt field.
14720         (data_ref_loc): Add an is_conditional_in_stmt field.
14721         (get_references_in_stmt): Set the is_conditional_in_stmt field.
14722         (find_data_references_in_stmt): Update call to create_data_ref.
14723         (graphite_find_data_references_in_stmt): Likewise.
14724         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
14725         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
14726         (vect_record_base_alignment): New function.
14727         (vect_record_base_alignments): Likewise.
14728         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
14729         for nested statements even if we fail to compute a misalignment.
14730         Use pooled base alignments for unconditional references.
14731         (vect_find_same_alignment_drs): Compare base addresses instead
14732         of base objects.
14733         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
14734         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
14736 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
14738         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
14739         Add an explicit name for the enum.  Use auto_vec for slp_instances
14740         and grouped_stores.
14741         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
14742         for all vectors.
14743         (_bb_vec_info): Add a constructor and destructor.
14744         (vinfo_for_stmt): Return NULL for uids of -1 as well.
14745         (destroy_loop_vec_info): Delete.
14746         (vect_destroy_datarefs): Likewise.
14747         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
14748         (vec_info::vec_info): New function.
14749         (vec_info::~vec_info): Likewise.
14750         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
14751         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
14752         destroy_loop_vec_info.
14753         * tree-vect-loop.c (new_loop_vec_info): Replace with...
14754         (_loop_vec_info::_loop_vec_info): ...this.
14755         (destroy_loop_vec_info): Replace with...
14756         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
14757         the stmt_vec_infos.  Leave handling of vec_info information to its
14758         destructor.  Remove explicit vector releases.
14759         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
14760         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
14761         * tree-vect-slp.c (new_bb_vec_info): Replace with...
14762         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
14763         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
14764         (destroy_bb_vec_info): Replace with...
14765         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
14766         information to its destructor.
14767         (vect_slp_analyze_bb_1): Use new and delete instead of
14768         new_bb_vec_info and destroy_bb_vec_info.
14769         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
14770         single delete.
14772 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
14774         * tree-data-ref.h (subscript): Add access_fn field.
14775         (data_dependence_relation): Add could_be_independent_p.
14776         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
14777         (same_access_functions): Move to tree-data-ref.c.
14778         * tree-data-ref.c (ref_contains_union_access_p): New function.
14779         (access_fn_component_p): Likewise.
14780         (access_fn_components_comparable_p): Likewise.
14781         (dr_analyze_indices): Add a reference to access_fn_component_p.
14782         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
14783         DR_ACCESS_FN.
14784         (constant_access_functions): Likewise.
14785         (add_other_self_distances): Likewise.
14786         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
14787         (initialize_data_dependence_relation): Use XCNEW and remove
14788         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
14789         of access functions that have the same type.  Allow the
14790         subsequence to end with different bases in some circumstances.
14791         Record the chosen access functions in SUB_ACCESS_FN.
14792         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
14793         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
14794         (subscript_dependence_tester_1): Likewise dra and drb.
14795         (build_classic_dist_vector): Update calls accordingly.
14796         (subscript_dependence_tester): Likewise.
14797         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
14798         DDR_COULD_BE_INDEPENDENT_P.
14799         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
14800         comp_alias_ddrs instead of may_alias_ddrs.
14801         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
14802         New function.
14803         (vect_analyze_data_ref_dependence): Use it if
14804         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
14805         distance vectors if that fails.
14806         (dependence_distance_ge_vf): New function.
14807         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
14808         LOOP_VINFO_MAY_ALIAS_DDRS.
14810 2017-08-04  Richard Biener  <rguenther@suse.de>
14812         PR middle-end/81705
14813         * fold-const.c (fold_binary_loc): Properly restrict
14814         minus_var0 && minus_var1 case when associating undefined overflow
14815         entities.
14817 2017-08-04  Tom de Vries  <tom@codesourcery.com>
14819         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
14821 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14823         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14824         Don't start diagnostic messages with a capital letter.
14825         * config/rs6000/rs6000.c (rs6000_option_override_internal):
14826         Likewise.
14827         (rs6000_invalid_builtin): Likewise.
14828         (rs6000_trampoline_init): Likewise.
14830 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
14832         PR target/81621
14833         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
14834         after setting changeable df flags.
14836 2017-08-03  Richard Biener  <rguenther@suse.de>
14838         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
14839         up if the use is in USE - X.
14841 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
14843         * toplev.c (dumpfile.h): New include.
14844         (internal_error_reentered): New static function.  Use it...
14845         (internal_error_function): ...here to handle reentered internal_error.
14847 2017-08-03  Richard Biener  <rguenther@suse.de>
14849         PR middle-end/81148
14850         * fold-const.c (split_tree): Add minus_var and minus_con
14851         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
14852         here but always use minus_*.
14853         (associate_trees): Assert we never associate with MINUS_EXPR
14854         and NULL first operand.  Do not recurse for PLUS_EXPR operands
14855         when associating as MINUS_EXPR either.
14856         (fold_binary_loc): Track minus_var and minus_con.
14858 2017-08-03  Tom de Vries  <tom@codesourcery.com>
14860         PR lto/81430
14861         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
14862         ACCEL_COMPILER, apply finish_options on
14863         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
14865 2017-08-03  Tom de Vries  <tom@codesourcery.com>
14867         PR target/81662
14868         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
14869         function_entry_patch_area_size > 0.
14871 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
14873         PR driver/81650
14874         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
14875         instead of 10??LU, perform unit multiplication in wide_int,
14876         don't change alloc_object_size_limit if the limit is larger
14877         than SSIZE_MAX.
14879         PR tree-optimization/81655
14880         PR tree-optimization/81588
14881         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
14882         the case when ranges[i].low and high are 1 for unsigned type with
14883         precision 1.
14885         PR middle-end/81052
14886         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
14887         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
14889 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14891         * tree-vrp.h: Add include guard.
14893 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
14895         PR target/81644
14896         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
14897         (ud2): New insn pattern.
14898         * config/i386/i386.c (ix86_expand_epilogue):
14899         For naked functions, generate ud2 instead of trap insn.
14901 2017-08-02  Marek Polacek  <polacek@redhat.com>
14903         PR other/81667
14904         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
14906 2017-08-02  Tom de Vries  <tom@codesourcery.com>
14907             Cesar Philippidis  <cesar@codesourcery.com>
14909         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
14910         Add missing edge probabilities.
14912 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
14914         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
14915         Correct endianness.
14917 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
14919         PR middle-end/79499
14920         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
14921         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
14922         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
14923         prologue_seq sequences - if any.
14925 2017-08-02  Richard Biener  <rguenther@suse.de>
14927         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
14928         via vectors if supported, integer extracts via punning if supported
14929         or otherwise vector extracts.
14931 2017-08-02  Richard Biener  <rguenther@suse.de>
14933         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
14934         into ...
14935         (bitmap_insert_into_set): ... this.
14937 2017-08-02  Richard Biener  <rguenther@suse.de>
14939         PR tree-optimization/81633
14940         Revert
14941         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
14943         PR tree-optimization/71752
14944         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
14946 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
14948         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
14949         (machine_function::call_ms2sysv_pad_out): Remove field.
14950         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
14951         (ix86_compute_frame_layout): Likewise.
14953 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
14955         PR target/81654
14956         * config/i386/i386.c (ix86_set_func_type): Disallow naked
14957         attribute with interrupt attribute.
14959 2017-08-01  Andrew Pinski  <apinski@cavium.com>
14961         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
14962         BIT_INSERT_EXPR's operand 1
14963         to see if the types precision matches.
14965 2017-08-01  Martin Liska  <mliska@suse.cz>
14967         PR middle-end/70140
14968         * builtins.c (expand_builtin_memcpy_args): Remove.
14969         (expand_builtin_memcpy): Call newly added function
14970         expand_builtin_memory_copy_args.
14971         (expand_builtin_memcpy_with_bounds): Likewise.
14972         (expand_builtin_mempcpy): Remove last argument.
14973         (expand_builtin_mempcpy_with_bounds): Likewise.
14974         (expand_builtin_memory_copy_args): New function created from
14975         expand_builtin_mempcpy_args with small modifications.
14976         (expand_builtin_mempcpy_args): Remove.
14977         (expand_builtin_stpcpy): Remove unused argument.
14978         (expand_builtin): Likewise.
14979         (expand_builtin_with_bounds): Likewise.
14981 2017-08-01  Martin Liska  <mliska@suse.cz>
14983         Revert r250771
14984         Make mempcpy more optimal (PR middle-end/70140).
14986 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
14988         PR target/81622
14989         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
14990         __builtin_vec_cmpne verify both arguments are compatible vectors
14991         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
14992         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
14993         move computation of aligned to after checking the argument types.
14994         Formatting fixes.
14996         PR target/80846
14997         * config/rs6000/vsx.md (vextract_fp_from_shorth,
14998         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
14999         calls.
15001 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
15002             Doug Rupp  <rupp@adacore.com>
15003             Olivier Hainque  <hainque@adacore.com>
15005         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
15006         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
15007         arm8 (arch v4).
15008         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
15009         for TARGET_OS_CPP_BUILTIN.
15010         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
15011         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
15012         arm_arch7.
15013         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
15014         passing required abi options to the assembler for EABI configurations.
15015         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
15016         of .text.hot and .text.unlikely sections for kernel modules when
15017         using ARM style exceptions.
15018         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
15019         options. Add EXTRA_CC1_SPEC.
15020         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
15021         toolchain options.
15022         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
15023         transition.
15024         (ARM_TARGET2_DWARF_FORMAT): Define.
15025         * config/arm/t-vxworks: Adjust multilib control to removal of the
15026         Diab command line options.
15028 2017-08-01  Martin Liska  <mliska@suse.cz>
15030         PR gcov-profile/81561
15031         * gcov.c (unblock): Make unblocking safe as we need to preserve
15032         index correspondence of blocks and block_lists.
15034 2017-08-01  Richard Biener  <rguenther@suse.de>
15036         PR tree-optimization/81181
15037         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
15038         (compute_antic): ... end of iteration here.
15040 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
15042         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
15043         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
15044         (ftree-slp-vectorize): Likewise.
15045         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
15046         can no longer be set independent of flag_tree_loop_vectorize.
15047         * omp-general.c (emp_max_vf): Likewise.
15048         * opts.c (enable_fdo_optimizations): Remove references to
15049         flag_tree_vectorize, these are now implicit.
15050         (common_handle_option): Remove handling for OPT_ftree_vectorize,
15051         and leave it for the options machinery.
15053 2017-08-01  Martin Liska  <mliska@suse.cz>
15055         PR middle-end/70140
15056         * builtins.c (expand_builtin_memcpy_args): Remove.
15057         (expand_builtin_memcpy): Call newly added function
15058         expand_builtin_memory_copy_args.
15059         (expand_builtin_memcpy_with_bounds): Likewise.
15060         (expand_builtin_mempcpy): Remove last argument.
15061         (expand_builtin_mempcpy_with_bounds): Likewise.
15062         (expand_builtin_memory_copy_args): New function created from
15063         expand_builtin_mempcpy_args with small modifications.
15064         (expand_builtin_mempcpy_args): Remove.
15065         (expand_builtin_stpcpy): Remove unused argument.
15066         (expand_builtin): Likewise.
15067         (expand_builtin_with_bounds): Likewise.
15069 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
15071         PR target/81641
15072         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
15073         print "ds:" only for immediates in generic address space.
15075 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
15077         PR target/81639
15078         * config/i386/i386.c (ix86_funciton_naked): New prototype.
15079         (ix86_function_ok_for_sibcall): Return false for naked functions.
15081 2017-08-01  Richard Biener  <rguenther@suse.de>
15083         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
15084         (compute_antic): Seed worklist with exit block predecessors.
15085         * cfganal.c (dfs_find_deadend): For a cycle return the source
15086         of the edge closing it.
15088 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
15090         * config/aarch64/aarch64.c
15091         (aarch64_can_const_movi_rtx_p): Move 0 check.
15093 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
15095         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
15096         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
15097         above macro.
15098         * match.pd: Ditto in address comparison pattern.
15100 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
15102         PR tree-optimization/81627
15103         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
15104         closed ssa form for store-store chain.
15106 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
15108         PR tree-optimization/81620
15109         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
15110         for store-store chain.
15112 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
15114         PR tree-optimization/81588
15115         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
15116         ranges[i].in_p, invert comparison code ccode.  For >/>=,
15117         swap rhs1 and rhs2 and comparison code unconditionally,
15118         for </<= don't do that.  Don't swap rhs1/rhs2 again if
15119         ranges[i].in_p, instead invert comparison code ccode if
15120         opcode or oe->rank is BIT_IOR_EXPR.
15122         PR target/80846
15123         * optabs.def (vec_extract_optab, vec_init_optab): Change from
15124         a direct optab to conversion optab.
15125         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
15126         with GET_MODE_INNER as last argument instead of optab_handler.
15127         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
15128         vector extraction if possible and optab is available.
15129         * expr.c (store_constructor): Use convert_optab_handler instead
15130         of optab_handler.  Use vector initialization from smaller
15131         vectors if possible and optab is available.
15132         * tree-vect-stmts.c (vectorizable_load): Likewise.
15133         * doc/md.texi (vec_extract, vec_init): Document that the optabs
15134         now have two modes.
15135         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
15136         of vec_init from half-sized vectors with the same element mode.
15137         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
15138         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
15139         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
15140         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
15141         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
15142         after mode in gen_vec_extract* calls.
15143         (vec_extract<mode>): Renamed to ...
15144         (vec_extract<mode><ssescalarmodelower>): ... this.
15145         (vec_extract<mode><ssehalfvecmodelower>): New expander.
15146         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
15147         element mode after mode in gen_vec_init* calls.
15148         (VEC_INIT_HALF_MODE): New mode iterator.
15149         (vec_init<mode>): Renamed to ...
15150         (vec_init<mode><ssescalarmodelower>): ... this.
15151         (vec_init<mode><ssehalfvecmodelower>): New expander.
15152         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
15153         (vec_extractv2sfsf): ... this.
15154         (vec_initv2sf): Renamed to ...
15155         (vec_initv2sfsf): ... this.
15156         (vec_extractv2si): Renamed to ...
15157         (vec_extractv2sisi): ... this.
15158         (vec_initv2si): Renamed to ...
15159         (vec_initv2sisi): ... this.
15160         (vec_extractv4hi): Renamed to ...
15161         (vec_extractv4hihi): ... this.
15162         (vec_initv4hi): Renamed to ...
15163         (vec_initv4hihi): ... this.
15164         (vec_extractv8qi): Renamed to ...
15165         (vec_extractv8qiqi): ... this.
15166         (vec_initv8qi): Renamed to ...
15167         (vec_initv8qiqi): ... this.
15168         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
15169         (vec_init<mode>): Renamed to ...
15170         (vec_init<mode><VEC_base_l>): ... this.
15171         (vec_extract<mode>): Renamed to ...
15172         (vec_extract<mode><VEC_base_l>): ... this.
15173         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
15174         (vec_initv2sfsf): ... this.
15175         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
15176         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
15177         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
15178         element mode after mode in gen_vec_init* calls.
15179         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
15180         (vec_init<mode><Vel>): ... this.
15181         (vec_extract<mode>): Renamed to ...
15182         (vec_extract<mode><Vel>): ... this.
15183         * config/aarch64/iterators.md (Vel): New mode attribute.
15184         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
15185         Add element mode after mode in gen_vec_extract* calls.
15186         * config/s390/vector.md (non_vec_l): New mode attribute.
15187         (vec_extract<mode>): Renamed to ...
15188         (vec_extract<mode><non_vec_l>): ... this.
15189         (vec_init<mode>): Renamed to ...
15190         (vec_init<mode><non_vec_l>): ... this.
15191         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
15192         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
15193         vec_extract mode.
15194         * config/arm/iterators.md (V_elem_l): New mode attribute.
15195         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
15196         (vec_extract<mode><V_elem_l>): ... this.
15197         (vec_extractv2di): Renamed to ...
15198         (vec_extractv2didi): ... this.
15199         (vec_init<mode>): Renamed to ...
15200         (vec_init<mode><V_elem_l>): ... this.
15201         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
15202         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
15203         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
15204         Add element mode after gen_vec_extract* calls.
15205         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
15206         (vec_init<mode><unitmode>): ... this.
15207         (vec_extract<mode>): Renamed to ...
15208         (vec_extract<mode><unitmode>): ... this.
15209         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
15210         (vec_init<mode><unitmode>): ... this.
15211         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
15212         (vec_initv2sfsf): ... this.
15213         (vec_extractv2sf): Renamed to ...
15214         (vec_extractv2sfsf): ... this.
15215         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
15216         Add element mode after gen_vec_extract* calls.
15217         * config/mips/mips.md (unitmode): New mode iterator.
15218         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
15219         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
15220         * config/spu/spu.md (inner_l): New mode attribute.
15221         (vec_init<mode>): Renamed to ...
15222         (vec_init<mode><inner_l>): ... this.
15223         (vec_extract<mode>): Renamed to ...
15224         (vec_extract<mode><inner_l>): ... this.
15225         * config/sparc/sparc.md (veltmode): New mode iterator.
15226         (vec_init<VMALL:mode>): Renamed to ...
15227         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
15228         * config/ia64/vect.md (vec_initv2si): Renamed to ...
15229         (vec_initv2sisi): ... this.
15230         (vec_initv2sf): Renamed to ...
15231         (vec_initv2sfsf): ... this.
15232         (vec_extractv2sf): Renamed to ...
15233         (vec_extractv2sfsf): ... this.
15234         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
15235         (vec_init<mode>): Renamed to ...
15236         (vec_init<mode><VEC_base_l>): ... this.
15237         (vec_extract<mode>): Renamed to ...
15238         (vec_extract<mode><VEC_base_l>): ... this.
15239         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
15240         (vec_initv2sfsf): ... this.
15241         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
15242         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
15243         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
15244         gen_vec_init* calls.
15246 2017-08-01  Richard Biener  <rguenther@suse.de>
15248         PR tree-optimization/81297
15249         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
15250         TREE_OVERFLOW from INTEGER_CSTs.
15252 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
15254         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
15256 2017-07-31  Carl Love  <cel@us.ibm.com>
15258         * config/rs6000/rs6000-c: Add support for built-in functions
15259         vector signed char vec_xl_be (signed long long, signed char *);
15260         vector unsigned char vec_xl_be (signed long long, unsigned char *);
15261         vector signed int vec_xl_be (signed long long, signed int *);
15262         vector unsigned int vec_xl_be (signed long long, unsigned int *);
15263         vector signed long long vec_xl_be (signed long long, signed long long *);
15264         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
15265         vector signed short vec_xl_be (signed long long, signed short *);
15266         vector unsigned short vec_xl_be (signed long long, unsigned short *);
15267         vector double vec_xl_be (signed long long, double *);
15268         vector float vec_xl_be (signed long long, float *);
15269         * config/rs6000/altivec.h (vec_xl_be): Add #define.
15270         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
15271         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
15272         for the builtins.
15273         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
15274         (altivec_expand_builtin): Add switch statement to call
15275         altivec_expand_xl_be for each builtin.
15276         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
15277         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
15278         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
15279         __builtin_vsx_le_be_v16qi.
15280         * doc/extend.texi: Update the built-in documentation file for the
15281         new built-in functions.
15283 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
15285         PR target/25967
15286         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
15287         New function.
15288         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
15290 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15292         * config.gcc: Add z14.
15293         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
15294         CPU model numbers for z13s and z14.
15295         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
15296         arch12 with z14.
15297         * config/s390/s390-opts.h (enum processor_type): Rename
15298         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
15299         * config/s390/s390.c (processor_table): Add field for CPU name to
15300         be passed to Binutils.
15301         (s390_asm_output_machine_for_arch): Use the new field in
15302         processor_table for Binutils.
15303         (s390_expand_builtin): Replace arch12 with z14.
15304         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
15305         (s390_get_sched_attrmask): Likewise.
15306         (s390_get_unit_mask): Likewise.
15307         * config/s390/s390.opt: Add z14 to processor_type enum.
15309 2017-07-31  Martin Jambor  <mjambor@suse.cz>
15311         PR hsa/81477
15312         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
15313         regardless of optimization level.
15315 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
15316             Martin Liska  <mliska@suse.cz>
15318         * predict.def: Remove old comment and adjust probability.
15319         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
15320         PREDICT statements.
15322 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
15324         PR target/25967
15325         * config/i386/i386.c (ix86_function_naked): New function.
15326         (ix86_can_use_return_insn_p): Return false for naked functions.
15327         (ix86_expand_prologue): Skip prologue for naked functions.
15328         (ix86_expand_epilogue): Skip epilogue for naked functions
15329         and emit trap instruction.
15330         (ix86_warn_func_return): New function.
15331         (ix86_attribute_table): Add "naked" attribute specification.
15332         (TARGET_WARN_FUNC_RETURN): Define.
15333         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
15335 2017-07-31  Martin Liska  <mliska@suse.cz>
15337         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
15338         (dump_gimple_bb_header): Always dump BB info.
15339         (pp_cfg_jump): Do not append info about BB when dumping a jump.
15341 2017-07-31  Martin Liska  <mliska@suse.cz>
15343         PR sanitize/81530
15344         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
15345         also with current_function_decl non-null equality.
15347 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
15349         PR sanitizer/81604
15350         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
15351         change type to the element type, instead add eltype variable and
15352         use it where we are interested in the element type.
15354         PR tree-optimization/81603
15355         * ipa-polymorphic-call.c
15356         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
15357         offset arithmetic in offset_int, bail out if the resulting bit offset
15358         doesn't fit into shwi.
15360 2017-07-31  Martin Liska  <mliska@suse.cz>
15362         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
15363         (gimplify_save_expr): Fix comment.
15365 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
15367         PR target/79793
15368         * config/i386/i386.c (ix86_function_arg): Update arguments for
15369         exception handler.
15370         (ix86_compute_frame_layout): Set the initial stack offset to
15371         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
15372         INCOMING_FRAME_SP_OFFSET.
15373         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
15374         stack before exception handler returns.
15375         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
15376         the 'ERROR_CODE' for exception handler.
15378 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
15380         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
15381         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
15382         (ASM_OUTPUT_REG_POP): Ditto.
15383         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
15384         instead of asm_fprintf to output pure string.
15386 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
15388         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
15389         to imported_module_or_decl hook.
15390         (debug_nothing_tree_tree_tree_bool): Remove.
15391         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
15392         * debug.c (do_nothing_debug_hooks): Use
15393         debug_nothing_tree_tree_tree_bool_bool instead of
15394         debug_nothing_tree_tree_tree_bool.
15395         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
15396         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
15397         * sdbout.c (sdb_debug_hooks): Likewise.
15398         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
15399         (gen_namespace_die): Add DW_AT_export_symbols attribute if
15400         langhook wants it.
15401         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
15402         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
15403         attribute, don't add anything.
15405 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15407         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
15408         (fold_build2_stat_loc): Likewise.
15409         (fold_build3_stat_loc): Likewise.
15410         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
15411         (fold_build1_loc): Remove macro.
15412         (fold_build2_loc): Likewise.
15413         (fold_build3_loc): Likewise.
15415 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15417         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
15418         (gimple_build_debug_bind_source_stat): Likewise.
15419         * gimple.h (gimple_build_debug_bind): Remove macro.
15420         (gimple_build_debug_bind_source): Likewise.
15422 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15424         * bitmap.c (bitmap_alloc): Adjust.
15425         (bitmap_gc_alloc): Likewise.
15426         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
15428 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15430         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
15431         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
15432         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
15433         (bitmap_gc_alloc_stat): Likewise.
15434         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
15436 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15438         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
15439         * rtl.h (shallow_copy_rtx): Remove macro.
15441 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15443         * emit-rtl.c (gen_raw_REG): Adjust.
15444         * gengenrtl.c (gendef): Likewise.
15445         * rtl.c (rtx_alloc_stat): Remove _stat from name.
15446         * rtl.h (rtx_alloc): Remove macro.
15448 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15450         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
15451         (build_tree_list_stat): Likewise.
15452         * tree.h (build_tree_list): Remove macro.
15453         (build_tree_list_vec): Likewise.
15455 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15457         * tree.c (make_vector_stat): Remove _stat from name.
15458         (build_vector_stat): Likewise.
15459         * tree.h (make_vector_stat): Remove macro.
15460         (build_vector_stat): Likewise.
15462 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15464         * tree.h (build_var_debug_value): Remove prototype.
15466 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15468         * tree.c (tree_cons_stat): Remove _stat from name.
15469         * tree.h (tree_cons): Remove macro.
15471 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15473         * tree.c (build_vl_exp_stat): Remove _stat from name.
15474         * tree.h (build_vl_exp): Remove macro.
15476 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15478         * tree.c (build_decl_stat): Remove _stat from name.
15479         * tree.h (build_decl): Remove macro.
15481 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15483         * gimple.c (gimple_build_with_ops_stat): Adjust.
15484         (gimple_alloc_stat): Remove _stat from name.
15485         * gimple.h (gimple_alloc): Remove macro.
15487 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15489         * tree.c (make_tree_vec_stat): Remove _stat from name.
15490         (grow_tree_vec_stat): Likewise.
15491         * tree.h (make_tree_vec_stat): Adjust prototype.
15492         (grow_tree_vec_stat): Likewise.
15493         (make_tree_vec): Remove macro.
15494         (grow_tree_vec): Likewise.
15496 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15498         * fold-const.c (fold_build1_stat_loc): Adjust.
15499         (fold_build2_stat_loc): Likewise.
15500         (fold_build3_stat_loc): Likewise.
15501         * tree.c (build0_stat): Remove _stat from name.
15502         (build1_stat): Likewise.
15503         (build2_stat): Likewise.
15504         (build3_stat): Likewise.
15505         (build4_stat): Likewise.
15506         (build5_stat): Likewise.
15507         * tree.h (build1_loc): Remove macro, and rename _stat function
15508         to this.
15509         (build2_loc): Likewise.
15510         (build3_loc): Likewise.
15511         (build4_loc): Likewise.
15512         (build5_loc): Likewise.
15514 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15516         * tree.c (make_int_cst_stat): Remove _stat from name.
15517         * tree.h (make_int_cst_stat): Adjust prototype.
15518         (make_int_cst): Remove macro.
15520 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15522         * tree.c (make_tre_binfo_stat): Remove _stat from name.
15523         * tree.h (make_tree_binfo_stat): Adjust prototype.
15524         (make_tree_binfo): Remove.
15526 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15528         * tree.c (copy_node_stat): Rename to copy_node.
15529         (build_distinct_type_copy): Adjust.
15530         * tree.h (copy_node_stat): Adjust prototype.
15531         (copy_node): Remove macro.
15533 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15535         * tree.c (make_node_stat): rename to make_node.
15536         (build_tree_list_stat): Adjust.
15537         (build0_stat): Likewise.
15538         (build2_stat): Likewise.
15539         (build3_stat): Likewise.
15540         (build4_stat): Likewise.
15541         (build5_stat): Likewise.
15542         (build_decl_stat): Likewise.
15543         * tree.h (make_node_stat): Adjust prototype.
15544         (make_node): remove macro.
15546 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
15548         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
15549         (PPC_FEATURE2_SCV): Likewise.
15550         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
15552 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
15554         * config/aarch64/aarch64.c
15555         (aarch64_internal_mov_immediate): Add new special pattern.
15556         * config/aarch64/aarch64.md (*movdi_aarch64):
15557         Add reg/32bit const mov case.
15559 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
15560             Richard Sandiford <richard.sandiford@linaro.org>
15562         * config/aarch64/aarch64.md (mov<mode>): Generalize.
15563         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
15564         Add integer and movi cases.
15565         (movi-split-hf-df-sf split, fp16): New.
15566         (enabled): Added TARGET_FP_F16INST.
15567         * config/aarch64/iterators.md (GPF_HF): New.
15568         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
15570 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
15572         * config/aarch64/aarch64.c
15573         (aarch64_simd_container_mode): Add prototype.
15574         (aarch64_expand_mov_immediate): Add HI support.
15575         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
15576         (aarch64_can_const_movi_rtx_p): New.
15577         (aarch64_preferred_reload_class):
15578         Remove restrictions of using FP registers for certain SIMD operations.
15579         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
15580         (aarch64_valid_floating_const): Add integer move validation.
15581         (aarch64_simd_imm_scalar_p): Remove.
15582         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
15583         (aarch64_legitimate_constant_p): Expand list of supported cases.
15584         * config/aarch64/aarch64-protos.h
15585         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
15586         (aarch64_reinterpret_float_as_int): New.
15587         (aarch64_simd_imm_scalar_p): Remove.
15588         * config/aarch64/constraints.md (Uvi): New.
15589         (Dd): Split into Ds and new Dd.
15590         * config/aarch64/aarch64.md (*movsi_aarch64):
15591         Add SIMD mov case.
15592         (*movdi_aarch64): Add SIMD mov case.
15594 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
15596         * tree-predcom.c: (struct chain): Handle store-store chain in which
15597         stores for elimination only store loop invariant values.
15598         (execute_pred_commoning_chain): Ditto.
15599         (prepare_initializers_chain_store_elim): Ditto.
15600         (prepare_finalizers): Ditto.
15601         (is_inv_store_elimination_chain): New function.
15602         (initialize_root_vars_store_elim_1): New function.
15604 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
15606         * tree-predcom.c: Revise general description of the pass.
15607         (enum chain_type): New enum type for store elimination.
15608         (struct chain): New field supporting store elimination.
15609         (struct component): Ditto.
15610         (dump_chain): Dump store-stores chain.
15611         (release_chain): Release resources.
15612         (split_data_refs_to_components): Compute and create component
15613         contains only stores for elimination.
15614         (get_chain_last_ref_at): New function.
15615         (make_invariant_chain): Initialization.
15616         (make_rooted_chain): Specify chain type in parameter and record it.
15617         (add_looparound_copies): Skip for store-stores chain.
15618         (determine_roots_comp): Compute type of chain and pass it to
15619         make_rooted_chain.
15620         (initialize_root_vars_store_elim_2): New function.
15621         (finalize_eliminated_stores): New function.
15622         (remove_stmt): Handle store for elimination.
15623         (execute_pred_commoning_chain): Execute predictive commoning on
15624         store-store chains.
15625         (determine_unroll_factor): Skip unroll for store-stores chain.
15626         (prepare_initializers_chain_store_elim): New function.
15627         (prepare_initializers_chain): Hanlde store-store chain.
15628         (prepare_finalizers_chain, prepare_finalizers): New function.
15629         (tree_predictive_commoning_loop): Return integer value indicating
15630         if loop is unrolled or lcssa form is corrupted.
15631         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
15633 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
15635         * tree-predcom.c (initialize_root): Delete.
15636         (execute_pred_commoning_chain): Initialize root vars and replace
15637         reference of non-combined chain directly, rather than call above
15638         function.
15640 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
15642         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
15643         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
15645 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
15647         * tree-predcom.c (struct chain): New field init_seq.
15648         (release_chain): Release init_seq.
15649         (prepare_initializers_chain): Record intialization stmts in above
15650         field.
15651         (insert_init_seqs): New function.
15652         (tree_predictive_commoning_loop): Call insert_init_seqs.
15654 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
15656         * tree-predcom.c (determine_roots_comp): Skip trivial components.
15658 2017-07-28  Richard Biener  <rguenther@suse.de>
15660         * match.pd: Remove superfluous :c.
15661         * genmatch.c (simplify::id): Add member.
15662         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
15663         Copy id.
15664         (current_id): New global.
15665         (dt_node::parent): Move from ...
15666         (dt_operand::parent): ... here.  Add for_id member.
15667         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
15668         (decision_tree::find_node): Relax order requirement when
15669         merging DT_TRUE nodes to ones inbetween the current simplify
15670         and the one we try to merge with.  Add diagnostic whenever
15671         we need to enforce pattern order by not merging.
15672         (decision_tree::insert): Set current_id.
15673         (decision_tree::print_node): Dump parent node and for_id.
15674         (parser::last_id): Add member.
15675         (parser::push_simplify): Assign unique id.
15676         (parser::parser): Initialize last_id.
15678 2017-07-28  Martin Liska  <mliska@suse.cz>
15680         PR sanitizer/81340
15681         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
15682         gimple_build_debug_bind.
15684 2017-07-28  Richard Biener  <rguenther@suse.de>
15686         PR tree-optimization/81502
15687         * match.pd: Add pattern combining BIT_INSERT_EXPR with
15688         BIT_FIELD_REF.
15689         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
15690         size/pos operands.
15691         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
15692         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
15693         for BIT_FIELD_REF args.
15694         * fold-const.c (make_bit_field_ref): Likewise.
15695         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
15697 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
15699         PR sanitizer/80998
15700         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
15701         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
15702         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
15703         Or it into SANITIZER_UNDEFINED.
15704         * ubsan.c: Include gimple-fold.h and varasm.h.
15705         (ubsan_expand_ptr_ifn): New function.
15706         (instrument_pointer_overflow): New function.
15707         (maybe_instrument_pointer_overflow): New function.
15708         (instrument_object_size): Formatting fix.
15709         (pass_ubsan::execute): Call instrument_pointer_overflow
15710         and maybe_instrument_pointer_overflow.
15711         * internal-fn.c (expand_UBSAN_PTR): New function.
15712         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
15713         * sanitizer.def (__ubsan_handle_pointer_overflow,
15714         __ubsan_handle_pointer_overflow_abort): New builtins.
15715         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
15716         * internal-fn.def (UBSAN_PTR): New internal function.
15717         * opts.c (sanitizer_opts): Add pointer-overflow.
15718         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
15719         * fold-const.c (build_range_check): Compute pointer range check in
15720         integral type if pointer arithmetics would be needed.  Formatting
15721         fixes.
15723 2017-07-28  Martin Liska  <mliska@suse.cz>
15725         PR sanitizer/81460
15726         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
15727         parameters that are of a variable-length.
15729 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15731         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
15732         rs6000/biarch64.h.
15733         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
15734         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
15735         (CRT_CALL_STATIC_FUNCTION): Likewise.
15736         (ASM_DEFAULT_SPEC): New define.
15737         (ASM_SPEC32): Likewise.
15738         (ASM_SPEC64): Likewise.
15739         (ASM_SPEC_COMMON): Likewise.
15740         (ASM_SPEC): Likewise.
15741         (INVALID_64BIT): Likewise.
15742         (LINK_OS_DEFAULT_SPEC): Likewise.
15743         (LINK_OS_SPEC32): Likewise.
15744         (LINK_OS_SPEC64): Likewise.
15745         (POWERPC_LINUX): Likewise.
15746         (PTRDIFF_TYPE): Likewise.
15747         (RESTORE_FP_PREFIX): Likewise.
15748         (RESTORE_FP_SUFFIX): Likewise.
15749         (SAVE_FP_PREFIX): Likewise.
15750         (SAVE_FP_SUFFIX): Likewise.
15751         (SIZE_TYPE): Likewise.
15752         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
15753         (TARGET_64BIT): Likewise.
15754         (TARGET_64BIT): Likewise.
15755         (TARGET_AIX): Likewise.
15756         (WCHAR_TYPE_SIZE): Likewise.
15757         (WCHAR_TYPE): Undefine.
15758         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
15759         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
15760         (CPP_OS_RTEMS_SPEC): Delete.
15761         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
15762         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
15763         link_os_spec64.
15764         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
15766 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
15768         PR tree-optimization/81578
15769         * tree-parloops.c (build_new_reduction): Bail out if
15770         reduction_code isn't one of the standard OpenMP reductions.
15771         Move the details printing after that decision.
15773 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
15775         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
15776         related to reload_in_progress.
15777         (splat_input_operand): Likewise.
15778         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
15779         Delete prototype.
15780         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
15781         field.
15782         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
15783         (TARGET_INSTANTIATE_DECLS): Likewise.
15784         (legitimate_indexed_address_p): Delete reload_in_progress code.
15785         (rs6000_debug_legitimate_address_p): Likewise.
15786         (rs6000_eliminate_indexed_memrefs): Likewise.
15787         (rs6000_emit_le_vsx_store): Likewise.
15788         (rs6000_emit_move_si_sf_subreg): Likewise.
15789         (rs6000_emit_move): Likewise.
15790         (register_to_reg_type): Likewise.
15791         (rs6000_pre_atomic_barrier): Likewise.
15792         (rs6000_machopic_legitimize_pic_address): Likewise.
15793         (rs6000_allocate_stack_temp): Likewise.
15794         (rs6000_address_for_fpconvert): Likewise.
15795         (rs6000_address_for_altivec): Likewise.
15796         (rs6000_secondary_memory_needed_rtx): Delete function.
15797         (rs6000_check_sdmode): Likewise.
15798         (rs6000_alloc_sdmode_stack_slot): Likewise.
15799         (rs6000_instantiate_decls): Likewise.
15800         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15801         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
15802         Delete reload_in_progress.
15803         (*vec_reload_and_plus_<mptrsize>): Likewise.
15804         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
15805         (vsx_div_v2di): Likewise.
15806         (vsx_udiv_v2di): Likewise.
15808 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
15810         * config/rs6000/rs6000.opt (mlra): Replace with stub.
15811         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
15812         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
15813         (rs6000_debug_reg_global): Delete print of LRA status.
15814         (rs6000_option_override_internal): Delete dead LRA related code.
15815         (rs6000_lra_p): Delete function.
15816         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
15818 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15820         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
15821         * config/riscv/rtems.h: New file.
15823 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15824             Sudakshina Das  <sudi.das@arm.com>
15826         * config/aarch64/aarch64.md
15827         (define_split for and<mode>3nr_compare): Move
15828         non aarch64_logical_operand to a register.
15829         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
15830         register immediate operand to a register.
15831         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
15833 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
15835         PR middle-end/81564
15836         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
15838 2017-07-27  Richard Biener  <rguenther@suse.de>
15840         PR tree-optimization/81573
15841         PR tree-optimization/81494
15842         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
15843         multi defuse cycle case.
15845 2017-07-27  Richard Biener  <rguenther@suse.de>
15847         PR tree-optimization/81571
15848         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
15849         PHIs.
15851 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
15853         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
15854         earlier and only if MASK_FPU is set.  Adjust formatting.
15856 2017-07-27  Martin Liska  <mliska@suse.cz>
15858         * opt-functions.awk: Add validation of value of Init.
15859         * optc-gen.awk: Pass new argument.
15861 2017-07-27  Martin Liska  <mliska@suse.cz>
15863         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
15864         Fix wrong condition.
15866 2017-07-27  Martin Liska  <mliska@suse.cz>
15868         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
15869         BBs and edges seen by autoFDO.
15871 2017-07-27  Richard Biener  <rguenther@suse.de>
15873         PR tree-optimization/81502
15874         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
15875         with incompatible but same sized type.
15876         (execute_update_addresses_taken): Likewise.
15878 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
15880         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
15881         flag_tree_loop_vectorize rather than flag_tree_vectorize.
15883 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15885         PR target/81534
15886         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
15887         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
15888         Change s_operand to memory_operand.
15890 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
15892         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
15893         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
15894         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
15895         Emit instructions rather than returning an expression.  Handle TFmode
15896         and KFmode by casting to TImode.
15897         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
15898         (rs6000_emit_le_vsx_store): Likewise.
15899         * config/rs6000/vsx.md (VSX_TI): New iterator.
15900         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
15901         (*vsx_le_undo_permute_<mode>): Likewise.
15902         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
15903         emit the split sequence.
15904         (*vsx_le_perm_store_<mode>): Likewise.
15906 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
15908         PR tree-optimization/81555
15909         PR tree-optimization/81556
15910         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
15911         if true, force CHANGED for the recursive invocation.
15912         (reassociate_bb): Remember original length of ops array, pass
15913         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
15915         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
15916         attributes for noipa attribute.  For naked attribute use
15917         lookup_attribute first before lookup_attribute_spec.
15918         * final.c (rest_of_handle_final): Disable IPA RA for functions with
15919         noipa attribute.
15920         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
15921         for functions with noipa attribute.
15922         (cgraph_externally_visible_p): Return true for functions with noipa
15923         attribute.
15924         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
15925         for functions with noipa attribute.
15926         * doc/extend.texi: Document noipa function attribute.
15927         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
15928         also for functions with noipa attribute.
15929         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
15931 2017-07-26  Andrew Pinski  <apinski@cavium.com>
15933         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
15934         vec_unalign_load_cost and vec_unalign_store_cost.
15936 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
15938         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
15939         -mvsx-small-integer option.
15940         (ISA_3_0_MASKS_IEEE): Likewise.
15941         (OTHER_VSX_VECTOR_MASKS): Likewise.
15942         (POWERPC_MASKS): Likewise.
15943         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
15944         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
15945         code, only testing for DImode being allowed in non-VSX floating
15946         point registers.
15947         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
15948         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
15949         another VSX test.
15950         (rs6000_option_override_internal): Delete -mvsx-small-integer.
15951         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
15952         TARGET_P8_VECTOR test.
15953         (rs6000_secondary_reload_simple_move): Likewise.
15954         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
15955         since TARGET_P9_VECTOR was already tested.
15956         (rs6000_opt_masks): Remove -mvsx-small-integer.
15957         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
15958         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
15959         used.
15960         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
15961         test for TARGET_VEXTRACTUB was used, and that uses
15962         TARGET_P9_VECTOR.
15963         (p9 extract splitter): Likewise.
15964         (vsx_extract_<mode>_di_p9): Likewise.
15965         (vsx_extract_<mode>_store_p9): Likewise.
15966         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
15967         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
15968         the elimination of TARGET_VSX_SMALL_INTEGER.
15969         (vsx_extract_<mode>_p8): Likewise.
15970         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
15971         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
15972         (vsx_set_<mode>_p9): Likewise.
15973         (vsx_set_v4sf_p9): Likewise.
15974         (vsx_set_v4sf_p9_zero): Likewise.
15975         (vsx_insert_extract_v4sf_p9): Likewise.
15976         (vsx_insert_extract_v4sf_p9_2): Likewise.
15977         * config/rs6000/rs6000.md (sign extend splitter): Change
15978         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
15979         (floatsi<mode>2_lfiwax_mem): Likewise.
15980         (floatunssi<mode>2_lfiwzx_mem): Likewise.
15981         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
15982         since a test for TARGET_P9_VECTOR was used.
15983         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
15984         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
15985         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
15986         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
15987         TARGET_P8_VECTOR test.
15988         (fix_trunc<mode>si2_stfiwx): Likewise.
15989         (fix_trunc<mode>si2_internal): Likewise.
15990         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
15991         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
15992         used.
15993         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
15994         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
15995         TARGET_P8_VECTOR test.
15996         (fixuns_trunc<mode>si2_stfiwx): Likewise.
15997         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
15998         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
15999         used.
16000         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
16001         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
16002         since a test for TARGET_P9_VECTOR was used.
16003         (splitter for loading small constants): Likewise.
16005 2017-07-26  Andrew Pinski  <apinski@cavium.com>
16007         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
16008         vec_fp_stmt_cost.
16010 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
16012         PR target/81563
16013         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
16014         (fp_valid_at): Likewise.
16016 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
16018         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
16019         (qdf24xx_addrcost_table): Likewise.
16020         (cortexa57_tunings): Update to use generic_branch_cost.
16021         (cortexa72_tunings): Likewise.
16022         (cortexa73_tunings): Likewise.
16023         (qdf24xx_tunings): Likewise.
16025 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
16027         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
16028         (thunderx2t99_branch_cost): Likewise.
16029         (cortexa35_tunings): Update to use generic_branch_cost.
16030         (cortexa53_tunings): Likewise.
16031         (cortexa57_tunings): Likewise.
16032         (cortexa72_tunings): Likewise.
16033         (cortexa73_tunings): Likewise.
16034         (thunderx2t99_tunings): Likewise.
16036 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16038         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
16039         (sparc_option_override): Honour MASK_FSMULD.
16040         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
16041         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
16042         * config/sparc/sparc.opt (mfsmuld): New option.
16043         * doc/invoke.texi (mfsmuld): Document option.
16045 2017-07-26  Marek Polacek  <polacek@redhat.com>
16047         PR middle-end/70992
16048         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
16050 2017-07-26  Richard Biener  <rguenther@suse.de>
16052         * gimple-match-head.c (do_valueize): Return OP if valueize
16053         returns NULL_TREE.
16054         (get_def): New helper to get at the def stmt of a SSA name
16055         if valueize allows.
16056         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
16057         do_valueize to get at the def stmt.
16058         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
16060 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
16062         PR middle-end/46932
16063         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
16065 2017-07-26  Martin Liska  <mliska@suse.cz>
16067         PR sanitize/81186
16068         * function.c (expand_function_start): Make expansion of
16069         nonlocal_goto_save_area after parm_birth_insn.
16071 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16073         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
16074         from all CPU target flags enable members.
16076 2017-07-26  Richard Biener  <rguenther@suse.de>
16078         * genmatch.c (dt_simplify::gen): Make iterator vars const.
16079         (decision_tree::gen): Make 'type' const.
16080         (write_predicate): Likewise.
16082 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
16084         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
16085         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
16086         (rs6000_option_override_internal): Likewise.
16087         (rs6000_expand_vector_set): Likewise.
16088         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
16089         (TARGET_UPPER_REGS_SF): Likewise.
16090         (TARGET_UPPER_REGS_DI): Likewise.
16091         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
16092         (TARGET_DIRECT_MOVE_64BIT): Likewise.
16093         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
16094         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
16095         (Splitters for DI constants in Altivec registers): Likewise.
16096         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
16097         (vsx_set_v4sf_p9): Likewise.
16098         (vsx_set_v4sf_p9_zero): Likewise.
16099         (vsx_insert_extract_v4sf_p9): Likewise.
16100         (vsx_insert_extract_v4sf_p9_2): Likewise.
16102 2017-07-25  Carl Love  <cel@us.ibm.com>
16104         * doc/extend.texi: Update the built-in documentation file for the
16105         existing built-in functions
16106         vector signed char vec_cnttz (vector signed char);
16107         vector unsigned char vec_cnttz (vector unsigned char);
16108         vector signed short vec_cnttz (vector signed short);
16109         vector unsigned short vec_cnttz (vector unsigned short);
16110         vector signed int vec_cnttz (vector signed int);
16111         vector unsigned int vec_cnttz (vector unsigned int);
16112         vector signed long long vec_cnttz (vector signed long long);
16113         vector unsigned long long vec_cnttz (vector unsigned long long);
16115 2017-07-25  Andrew Pinski  <apinski@cavium.com>
16117         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
16118         accesses where the use is for the first operand of a BIT_INSERT.
16120 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
16122         PR bootstrap/81521
16123         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
16124         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
16126 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
16128         * config/i386/gstabs.h: Delete.
16129         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
16131 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
16133         * config/i386/i386.c (ix86_decompose_address): Do not check for
16134         register RTX when looking at index_reg or base_reg.
16135         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
16137 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
16139         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
16140         to update EH info here.
16142 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
16144         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
16146 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
16148         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
16150 2017-07-25  Torsten Duwe  <duwe@suse.de>
16152         * common.opt: Introduce -fpatchable-function-entry
16153         command line option, and its variables function_entry_patch_area_size
16154         and function_entry_patch_area_start.
16155         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
16156         including a two-value parser.
16157         * target.def (print_patchable_function_entry): New target hook.
16158         * targhooks.h (default_print_patchable_function_entry): New function.
16159         * targhooks.c (default_print_patchable_function_entry): Likewise.
16160         * toplev.c (process_options): Switch off IPA-RA if
16161         patchable function entries are being generated.
16162         * varasm.c (assemble_start_function): Look at the
16163         patchable-function-entry command line switch and current
16164         function attributes and maybe generate NOP instructions by
16165         calling the print_patchable_function_entry hook.
16166         * doc/extend.texi: Document patchable_function_entry attribute.
16167         * doc/invoke.texi: Document -fpatchable_function_entry
16168         command line option.
16169         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
16170         New target hook.
16171         * doc/tm.texi: Re-generate.
16173 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
16175         PR target/81532
16176         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
16177         TARGET_AVX512DQ rather than TARGET_AVX512BW.
16179 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
16181         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
16183 2017-07-25  Richard Biener  <rguenther@suse.de>
16185         PR tree-optimization/81455
16186         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
16187         not walk in cycles when looking for guards.
16189 2017-07-25  Richard Biener  <rguenther@suse.de>
16191         PR tree-optimization/81529
16192         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
16193         when optimizing backedge uses.
16195 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
16197         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
16198         character for AIX.
16199         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
16200         to dl_section_ref.  On AIX, append an expression to subtract
16201         the size of the section length to dl_section_ref.
16203 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
16205         * configure.ac: If any of the config.* scripts fail, exit 1.
16206         * configure: Regenerate.
16208 2017-07-25  Richard Biener  <rguenther@suse.de>
16210         PR middle-end/81546
16211         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
16212         of immediate uses, be more verbose on errors.
16214 2017-07-25  Richard Biener  <rguenther@suse.de>
16216         PR tree-optimization/81510
16217         * tree-vect-loop.c (vect_is_simple_reduction): When the
16218         reduction stmt is not inside the loop bail out.
16220 2017-07-25  Richard Biener  <rguenther@suse.de>
16222         PR tree-optimization/81303
16223         * tree-vect-loop-manip.c (vect_loop_versioning): Build
16224         profitability check against LOOP_VINFO_NITERSM1.
16226 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
16228         * domwalk.c (cmp_bb_postorder): Simplify.
16229         (sort_bbs_postorder): New function.  Use it...
16230         (dom_walker::walk): ...here to optimize common cases.
16232 2017-07-25  Martin Liska  <mliska@suse.cz>
16234         PR ipa/81520
16235         * ipa-visibility.c (function_and_variable_visibility): Make the
16236         redirection just on target that supports aliasing.
16237         Fix GNU coding style.
16239 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16241         PR libgcc/61152
16242         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
16243         Format changes.
16244         * config/arm/rtems.h: Likewise.
16245         * config/bfin/rtems.h: Likewise.
16246         * config/i386/rtemself.h: Likewise.
16247         * config/lm32/rtems.h: Likewise.
16248         * config/m32c/rtems.h: Likewise.
16249         * config/m68k/rtemself.h: Likewise.
16250         * config/microblaze/rtems.h: Likewise.
16251         * config/mips/rtems.h: Likewise.
16252         * config/moxie/rtems.h: Likewise.
16253         * config/nios2/rtems.h: Likewise.
16254         * config/powerpcspe/rtems.h: Likewise.
16255         * config/rs6000/rtems.h: Likewise.
16256         * config/rtems.h: Likewise.
16257         * config/sh/rtems.h: Likewise.
16258         * config/sh/rtemself.h: Likewise.
16259         * config/sparc/rtemself.h: Likewise.
16261 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
16263         PR 81487
16264         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
16265         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
16266         * tree-ssa-structalias.c (alias_get_name): Same.
16268 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
16270         PR target/81414
16271         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
16272         instructions if no du chain is found.
16274 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
16276         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
16278 2017-07-25  Richard Biener  <rguenther@suse.de>
16280         PR middle-end/81505
16281         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
16282         sticky.
16284 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
16286         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
16287         upper-regs options.
16288         (ISA_2_7_MASKS_SERVER): Likewise.
16289         (ISA_3_0_MASKS_IEEE): Likewise.
16290         (OTHER_P8_VECTOR_MASKS): Likewise.
16291         (OTHER_VSX_VECTOR_MASKS): Likewise.
16292         (POWERPC_MASKS): Likewise.
16293         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
16294         duplicate list of options.
16295         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
16296         explicit -mupper-regs options.
16297         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
16298         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
16299         alias for -mupper-regs-df.
16300         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
16301         (rs6000_init_hard_regno_mode_ok): Likewise.
16302         (rs6000_option_override_internal): Likewise.
16303         (rs6000_opt_masks): Likewise.
16304         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
16305         options in terms of whether -mvsx or -mpower8-vector was used.
16306         (TARGET_UPPER_REGS_DI): Likewise.
16307         (TARGET_UPPER_REGS_SF): Likewise.
16308         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
16309         -mupper-regs-* options.
16311 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
16313         * passes.c (emergency_dump_function): Print some empty lines and a
16314         header before the RTL dump.
16316 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
16318         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
16320 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
16322         PR target/79041
16323         * config/aarch64/aarch64.c (aarch64_classify_symbol):
16324         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
16326 2017-07-24  Carl Love  <cel@us.ibm.com>
16328         * config/rs6000/rs6000-c.c: Add support for built-in functions
16329         vector float vec_extract_fp32_from_shorth (vector unsigned short);
16330         vector float vec_extract_fp32_from_shortl (vector unsigned short);
16331         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
16332         vec_extract_fp_from_shortl): Add defines for the two builtins.
16333         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
16334         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
16335         new builtins.
16336         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
16337         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
16338         * doc/extend.texi: Update the built-in documentation file for the
16339         new built-in function.
16341 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
16343         PR bootstrap/81521
16344         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
16345         documentation.
16346         * doc/generic.texi: Likewise.
16347         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
16348         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
16350 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
16352         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
16353         (aarch64_mls_elt_merge<mode>): Likewise.
16355 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
16357         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
16358         having __cxa_atexit.
16360 2017-07-23  Michael Collison  <michael.collison@arm.com>
16362         * config/arm/arm.c (arm_option_override): Deprecate
16363         use of -mstructure-size-boundary.
16364         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
16365         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
16367 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16369         PR target/80695
16370         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
16371         Reduce cost estimate for direct moves.
16373 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
16375         PR target/80569
16376         * config/i386/i386.c (ix86_option_override_internal): Disable
16377         BMI, BMI2 and TBM instructions for -m16.
16379 2017-07-21  Carl Love  <cel@us.ibm.com>
16381         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16382         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
16383         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
16384         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
16385         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
16386         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
16387         VMULOSW): New enum "unspec" values.
16388         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
16389         altivec_vmulosw): New patterns.
16390         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
16391         VMULOSW): Add definitions.
16393 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
16395         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
16396         (qdf24xx): Likewise.
16397         * config/aarch64/aarch64-options-extensions.def (rdma); New.
16398         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
16399         (AARCH64_FL_V8_1): Renumber.
16400         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
16401         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
16402         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
16403         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
16404         rdma to feature modifiers list.
16406 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
16408         PR middle-end/56727
16409         * ipa-visibility (function_and_variable_visibility): Convert
16410         recursive PLT call to direct call if appropriate.
16412 2017-07-21  Andrew Pinski  <apinski@cavium.com>
16414         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
16415         operand 1 to see if the types precision matches.
16416         * fold-const.c (operand_equal_p): Likewise.
16418 2017-07-21  Richard Biener  <rguenther@suse.de>
16420         PR tree-optimization/81303
16421         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
16422         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
16423         (vect_peeling_hash_get_lowest_cost): Adjust.
16424         (vect_enhance_data_refs_alignment): Likewise.  Use
16425         vect_get_peeling_costs_all_drs to compute the penalty for no
16426         peeling to match up costs.
16428 2017-07-21  Richard Biener  <rguenther@suse.de>
16430         PR tree-optimization/81500
16431         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
16432         we didn't identify a reduction path.
16434 2017-07-21  Tom de Vries  <tom@codesourcery.com>
16435             Cesar Philippidis  <cesar@codesourcery.com>
16437         PR gcov-profile/81442
16438         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
16439         probabilities.
16441 2017-07-21  Tom de Vries  <tom@codesourcery.com>
16443         PR lto/81430
16444         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
16445         function.
16446         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
16447         nvptx_override_options_after_change.
16449 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
16451         * dwarf2out.c (output_file_names): Avoid double testing for
16452         dwarf_version >= 5.
16454 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
16456         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
16458 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
16460         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
16461         hot/cold regions.
16462         (try_crossjump_to_edge): Do not punt on partitioned functions.
16464 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
16466         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
16467         Put all BBs reachable only via paths crossing cold region to cold
16468         region.
16469         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
16471 2016-07-21  Richard Biener  <rguenther@suse.de>
16473         PR tree-optimization/81303
16474         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
16475         into account prologue and epilogue iterations when raising
16476         min_profitable_iters to sth at least covering one vector iteration.
16478 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
16480         * config/arm/arm.c (arm_test_cpu_arch_dat):
16481         Check for overlap.
16483 2017-07-20  Nathan Sidwell  <nathan@acm.org>
16485         Remove TYPE_METHODS.
16486         * tree.h (TYPE_METHODS): Delete.
16487         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
16488         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
16489         (dbxout_type_methods): Scan TYPE_FIELDS.
16490         (dbxout_type): Don't check TYPE_METHODS here.
16491         * function.c (use_register_for_decl): Always ignore register for
16492         class types when not optimizing.
16493         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
16494         * tree.c (free_lang_data_in_type): Stitch out member functions and
16495         templates from TYPE_FIELDS.
16496         (build_distinct_type_copy, verify_type_variant,
16497         verify_type): Member fns are on TYPE_FIELDS.
16498         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
16499         * tree-pretty-print.c (dump_generic_node): Likewise.
16501 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
16503         PR target/80846
16504         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
16505         V2TImode and V4TImode.
16506         (ix86_expand_vector_extract): Likewise.
16507         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
16508         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
16509         (ssescalarmode): Handle V4TImode and V2TImode.
16510         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
16511         (*vec_extractv2ti, *vec_extractv4ti): New insns.
16512         (VEXTRACTI128_MODE): New mode iterator.
16513         (splitter for *vec_extractv?ti first element): New.
16514         (VEC_INIT_MODE): New mode iterator.
16515         (vec_init<mode>): Consolidate 3 expanders into one using
16516         VEC_INIT_MODE mode iterator.
16518 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
16520         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
16521         non_spilled_static_chain_regno_p.
16523 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
16525         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
16527 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
16529         * bb-reorder.c (connect_traces): Allow copying of blocks within
16530         single partition.
16532 2017-07-20  Richard Biener  <rguenther@suse.de>
16534         * gimple.h (gimple_phi_result): Add gphi * overload.
16535         (gimple_phi_result_ptr): Likewise.
16536         (gimple_phi_arg): Likewise.  Adjust index assert to only
16537         allow actual argument accesses rather than all slots available
16538         by capacity.
16539         (gimple_phi_arg_def): Add gphi * overload.
16540         * tree-phinodes.c (make_phi_node): Initialize only actual
16541         arguments.
16542         (resize_phi_node): Clear memory not covered by old node,
16543         do not initialize excess argument slots.
16544         (reserve_phi_args_for_new_edge): Initialize new argument slot
16545         completely.
16547 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
16549         PR tree-optimization/81388
16550         Revert r238585:
16551         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
16553         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
16554         by removing computation of may_be_zero.
16556 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
16557             Tom de Vries  <tom@codesourcery.com>
16559         PR middle-end/81030
16560         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
16561         when gimple level profile disagrees with what RTL expander did.
16563 2017-07-20  Richard Biener  <rguenther@suse.de>
16565         PR tree-optimization/61171
16566         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
16567         (vect_analyze_stmt): Add slp instance parameter.
16568         (vectorizable_reduction): Likewise.
16569         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
16570         (vect_is_simple_reduction): Deal with chains not detected
16571         as SLP reduction chain, specifically not properly associated
16572         chains containing a mix of plus/minus.
16573         (get_reduction_op): Remove.
16574         (get_initial_defs_for_reduction): Simplify, pass in whether
16575         this is a reduction chain, pass in the SLP node for the PHIs.
16576         (vect_create_epilog_for_reduction): Get the SLP instance as
16577         arg and adjust.
16578         (vectorizable_reduction): Get the SLP instance as arg.
16579         During analysis remember the SLP node with the PHIs in the
16580         instance.  Simplify getting at the vectorized reduction PHIs.
16581         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
16582         through SLP instance.
16583         (vect_slp_analyze_operations): Likewise.
16584         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
16585         (vect_transform_stmt): Likewise.
16587 2017-07-20  Tom de Vries  <tom@codesourcery.com>
16589         PR tree-optimization/81489
16590         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
16591         read of phi arg location to before loop that modifies phi.
16593 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
16595         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
16596         New pattern.
16598 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
16600         PR middle-end/81331
16601         * except.c (execute): Fix ordering issue.
16603 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
16605         PR rtl-optimization/81423
16606         * combine.c (make_compound_operation_int): Don't try to optimize
16607         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
16609 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
16611         PR rtl-optimization/81423
16612         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
16613         with a constant that is -1 in the truncated to mode.
16615 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
16617         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
16618         (determine_unlikely_bbs): ... here.
16619         * predict.h (propagate_unlikely_bbs_forward): Declare.
16620         * cfgexpand.c (pass_expand::execute): Use it.
16621         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
16622         unlikely edges.
16623         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
16624         propagate_unlikely_bbs_forward.
16626 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
16628         PR middle-end/81331
16629         * except.c (maybe_add_nop_after_section_switch): New function.
16630         (execute): Use it.
16632 2017-07-19  Tom de Vries  <tom@codesourcery.com>
16634         * gimple.h (gimple_phi_set_arg): Make assert more strict.
16636 2017-07-19  Tom de Vries  <tom@codesourcery.com>
16638         * gimple.h (gimple_phi_arg): Make assert more strict.
16640 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
16642         * config.gcc (powerpc*-*-*): Add mmintrin.h.
16643         * config/rs6000/mmintrin.h: New file.
16644         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
16646 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
16648         PR tree-optimization/81346
16649         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
16651 2017-07-19  Tom de Vries  <tom@codesourcery.com>
16653         * config/nvptx/nvptx.md (VECIM): Add V2DI.
16655 2017-07-19  Tom de Vries  <tom@codesourcery.com>
16657         * config/nvptx/nvptx-modes.def: Add V2DImode.
16658         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
16659         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
16660         (nvptx_output_mov_insn): Handle lack of mov.b128.
16661         (nvptx_print_operand): Handle 'H' and 'L' codes.
16662         (nvptx_vector_mode_supported): Allow V2DImode.
16663         (nvptx_preferred_simd_mode): New function.
16664         (nvptx_data_alignment): New function.
16665         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
16666         nvptx_preferred_simd_mode.
16667         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
16668         64 to 128 bits.
16669         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
16671 2017-07-19  Tom de Vries  <tom@codesourcery.com>
16673         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
16674         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
16675         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
16676         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
16677         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
16678         (mov<VECIM>_insn): New define_insn.
16679         (define_expand "mov<VECIM>): New define_expand.
16681 2017-07-19  Tom de Vries  <tom@codesourcery.com>
16683         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
16685 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
16687         PR tree-optimization/81346
16688         * fold-const.h (fold_div_compare, range_check_type): Declare.
16689         * fold-const.c (range_check_type): New function.
16690         (build_range_check): Use range_check_type.
16691         (fold_div_compare): No longer static, rewritten into
16692         a match.pd helper function.
16693         (fold_comparison): Don't call fold_div_compare here.
16694         * match.pd (X / C1 op C2): New optimization using fold_div_compare
16695         as helper function.
16697 2017-07-19  Nathan Sidwell  <nathan@acm.org>
16699         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
16700         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
16701         * tree.c (find_decls_types_r, verify_type): Use
16702         TYPE_{MIN,MAX}_VALUE_RAW.
16703         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
16704         (hash_tree): Likewise.
16705         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
16706         Likewise.
16707         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
16708         Likewise.
16710 2017-07-18  Tom de Vries  <tom@codesourcery.com>
16712         PR middle-end/81464
16713         * omp-expand.c (expand_omp_for_static_chunk): Handle
16714         equal-argument loop exit phi.
16716 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
16718         PR target/81471
16719         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
16720         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
16721         operand 2 predicate.
16722         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
16723         operand 2 predicate.
16724         (ror,rol -> rorx splitters): Use const_int_operand as
16725         operand 2 predicate.
16727 2017-06-18  Richard Biener  <rguenther@suse.de>
16729         PR tree-optimization/81410
16730         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
16731         the gap in the ! slp_perm SLP case after each group.
16733 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
16735         PR middle-end/81463
16736         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
16737         again.
16739 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
16741         PR middle-end/81462
16742         * predict.c (set_even_probabilities): Cleanup; do not affect
16743         probabilities that are already known.
16744         (combine_predictions_for_bb): Call even when count is set.
16746 2017-07-18  Nathan Sidwell  <nathan@acm.org>
16748         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
16749         TYPE_MAX_VALUE.
16751 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
16753         PR target/81408
16754         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
16755         optimization for loop niter analysis.
16757 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
16759         PR target/81473
16760         * config/avr/avr.c (avr_optimize_casesi): Don't use
16761         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
16763 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
16765         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
16766         body_cost_vec from _vect_peel_extended_info.
16767         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
16768         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
16769         npeel.
16771 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
16773         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
16775 2017-07-18  Richard Biener  <rguenther@suse.de>
16777         PR tree-optimization/80620
16778         PR tree-optimization/81403
16779         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
16780         info when re-using a VN table entry.
16782 2017-07-18  Richard Biener  <rguenther@suse.de>
16784         PR tree-optimization/81418
16785         * tree-vect-loop.c (vectorizable_reduction): Properly compute
16786         vectype_in.  Verify that with lane-reducing reduction operations
16787         we have a single def-use cycle.
16789 2017-07-17  Carl Love  <cel@us.ibm.com>
16791         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
16793         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16794         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
16795         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
16796         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
16797         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
16798         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
16799         VMULOSW): New enum "unspec" values.
16800         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
16801         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
16802         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
16803         altivec_vmulosw): New patterns.
16804         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
16805         VMULOSW): Add definitions.
16806 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
16808         * config/alpha/alpha.c: Include predict.h.
16810 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
16812         * tree-vrp.c (compare_assert_loc): Fix comparison function
16813         to return predictable results.
16815 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
16817         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
16818         option.
16819         (subdi3): Likewise.
16820         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
16821         * doc/invoke.texi (mexpand-adddi): Update text.
16823 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
16825         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
16826         that also clobbers the CC register. The old expand code is moved
16827         to ...
16828         (*arc_clzsi2): ... here.
16829         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
16830         the CC register. The old expand code is moved to ...
16831         (arc_ctzsi2): ... here.
16833 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
16835         * config/arc/arc.opt (mindexed-loads): Use initial value
16836         TARGET_INDEXED_LOADS_DEFAULT.
16837         (mauto-modify-reg): Use initial value
16838         TARGET_AUTO_MODIFY_REG_DEFAULT.
16839         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
16840         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
16841         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
16842         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
16844 2017-07-17  Martin Liska  <mliska@suse.cz>
16846         PR sanitizer/81302
16847         * opts.c (finish_options): Do not allow -fgnu-tm
16848         w/ -fsanitize={kernel-,}address.  Say sorry.
16850 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
16852         PR target/81369
16853         * tree-loop-distribution.c (classify_partition): Only assert on
16854         numer of iterations.
16855         (merge_dep_scc_partitions): Delete prameter.  Update function call.
16856         (distribute_loop): Remove code handling loop with unknown niters.
16857         (pass_loop_distribution::execute): Skip loop with unknown niters.
16859 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
16861         PR target/81369
16862         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
16863         function sort_partitions_by_post_order.
16865 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
16867         PR tree-optimization/81374
16868         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
16869         the max index of basic blocks, rather than number of basic blocks.
16871 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
16873         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
16874         proto.
16875         (arc_legitimate_pic_operand_p): Likewise.
16876         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
16877         function.
16878         (arc_needs_pcl_p): Likewise.
16879         (arc_legitimate_pc_offset_p): Likewise.
16880         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
16881         function is also used in constrains.md.
16882         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
16883         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
16884         PLUS.  Only return true/false in known cases, otherwise assert.
16885         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
16886         is already called in arc_legitimate_constant_p.
16887         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
16888         pic addresses.
16889         (LEGITIMATE_PIC_OPERAND_P): Use
16890         arc_raw_symbolic_reference_mentioned_p function.
16891         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
16892         function.
16893         (Cal): Likewise.
16894         (C32): Likewise.
16896 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
16897         Andrew Burgess  <andrew.burgess@embecosm.com>
16899         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
16900         (arc_return_address_register): New function.
16901         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
16902         (arc_handle_fndecl_attribute): Add naked attribute.
16903         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
16904         (TARGET_WARN_FUNC_RETURN): Likewise.
16905         (arc_allocate_stack_slots_for_args): New function.
16906         (arc_warn_func_return): Likewise.
16907         (machine_function): Change type fn_type.
16908         (arc_compute_function_type): Consider new naked function type,
16909         change function return type.
16910         (arc_must_save_register): Adapt to handle new
16911         arc_compute_function_type's return type.
16912         (arc_expand_prologue): Likewise.
16913         (arc_expand_epilogue): Likewise.
16914         (arc_return_address_regs): Delete.
16915         (arc_return_address_register): New function.
16916         (arc_epilogue_uses): Use above function.
16917         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
16918         (arc_function_type): Change encoding, add naked type.
16919         (ARC_INTERRUPT_P): Change to handle the new encoding.
16920         (ARC_FAST_INTERRUPT_P): Likewise.
16921         (ARC_NORMAL_P): Define.
16922         (ARC_NAKED_P): Likewise.
16923         (arc_compute_function_type): Delete prototype.
16924         * config/arc/arc.md (in_ret_delay_slot): Use
16925         arc_return_address_register function.
16926         (simple_return): Likewise.
16927         (p_return_i): Likewise.
16929 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
16931         PR tree-optimization/81428
16932         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
16933         can't be built for those types.
16935 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
16937         Remove stuff dead since r239246.
16939         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
16940         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
16941         (avr_inform_devices): Remove dead stuff.
16943 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
16945         * config/arm/arm_neon.h: Fix softp typo.
16947 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
16949         PR tree-optimization/81365
16950         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
16951         aggregate moves onto bb predecessor edges, make sure there are no
16952         loads that could alias the lhs in between the start of bb and the
16953         loads from *phi.
16955 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
16957         PR 80929
16958         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
16959         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
16960         [LSHIFTRT, outer_code = TRUNCATE]: Same.
16962 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
16964         PR tree-optimization/81396
16965         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
16966         (init_symbolic_number): Initialize it to 1.
16967         (perform_symbolic_merge): Add n_ops from both operands into the new
16968         n_ops.
16969         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
16970         without base_addr as useless if they need more than one operation.
16971         (bswap_replace): Handle !bswap case for NULL base_addr.
16973 2017-07-17  Tom de Vries  <tom@codesourcery.com>
16975         PR target/81069
16976         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
16977         as possible.
16979 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16981         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
16982         conditional builtin define __FIX_LEON3FT_B2BST.
16984 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
16986         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
16987         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
16988         with -mfix-ut700.
16990 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
16992         PR rtl-optimization/81424
16993         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
16994         to remove potential trapping from operands if -fnon-call-exceptions.
16996 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
16998         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
16999         profile_proability for scalling.
17000         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
17002 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
17004         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
17006 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
17008         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
17009         fixpoint arithmetics.
17011 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
17013         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
17014         fixpoint arithmetics.
17016 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
17018         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
17019         fixpoint arithmetics.
17021 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
17023         * profile-count.h (profile_probability::from_reg_br_prob_note,
17024         profile_probability::to_reg_br_prob_note): New functions.
17025         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
17026         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
17027         * predict.c (probability_reliable_p): Update.
17028         (edge_probability_reliable_p): Update.
17029         (br_prob_note_reliable_p): Update.
17030         (invert_br_probabilities): Update.
17031         (add_reg_br_prob_note): New function.
17032         (combine_predictions_for_insn): Update.
17033         * asan.c (asan_clear_shadow): Update.
17034         * cfgbuild.c (compute_outgoing_frequencies): Update.
17035         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
17036         (update_br_prob_note): Update.
17037         (rtl_verify_edges): Update.
17038         (purge_dead_edges): Update.
17039         (fixup_reorder_chain): Update.
17040         * emit-rtl.c (try_split): Update.
17041         * ifcvt.c (cond_exec_process_insns): Update.
17042         (cond_exec_process_if_block): Update.
17043         (dead_or_predicable): Update.
17044         * internal-fn.c (expand_addsub_overflow): Update.
17045         (expand_neg_overflow): Update.
17046         (expand_mul_overflow): Update.
17047         * loop-doloop.c (doloop_modify): Update.
17048         * loop-unroll.c (compare_and_jump_seq): Update.
17049         * optabs.c (emit_cmp_and_jump_insn_1): Update.
17050         * predict.h: Update.
17051         * reorg.c (mostly_true_jump): Update.
17052         * rtl.h: Update.
17053         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
17054         * config/alpha/alpha.c (emit_unlikely_jump): Update.
17055         * config/arc/arc.c: (emit_unlikely_jump): Update.
17056         * config/arm/arm.c: (emit_unlikely_jump): Update.
17057         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
17058         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
17059         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
17060         (ix86_print_operand): Update.
17061         (ix86_split_fp_branch): Update.
17062         (predict_jump): Update.
17063         * config/ia64/ia64.c (ia64_print_operand): Update.
17064         * config/mmix/mmix.c (mmix_print_operand): Update.
17065         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
17066         (rs6000_expand_split_stack_prologue): Update.
17067         * config/rs6000/rs6000.c: Update.
17068         * config/s390/s390.c (s390_expand_vec_strlen): Update.
17069         (s390_expand_vec_movstr): Update.
17070         (s390_expand_cs_tdsi): Update.
17071         (s390_expand_split_stack_prologue): Update.
17072         * config/sh/sh.c (sh_print_operand): Update.
17073         (expand_cbranchsi4): Update.
17074         (expand_cbranchdi4): Update.
17075         * config/sparc/sparc.c (output_v9branch): Update.
17076         * config/spu/spu.c (get_branch_target): Update.
17077         (ea_load_store_inline): Update.
17078         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
17079         * config/tilepro/tilepro.c: Update.
17081 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
17083         * gimplify.c (mostly_copy_tree_r): Revert latest change.
17084         (gimplify_save_expr): Likewise.
17086 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
17088         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
17090 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
17092         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
17093         TV_IPA_FNSUMMARY.
17094         * timevar.def (TV_IPA_FNSUMMARY): Define.
17096 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
17098         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
17099         to back store errata sensitive sequence from being generated.
17100         (sqrtdf2_fix): Likewise.
17102 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
17104         * tree-ssa-threadupdate.c (compute_path_counts,
17105         update_joiner_offpath_counts): Use profile_probability.
17107 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17109         Revert:
17110         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17112         * config/arm/arm-c.c (arm_cpu_builtins): Define
17113         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
17115 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
17117         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17118         array entries to represent __ieee128 versions of the
17119         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
17120         scalar_extract_sig, and scalar_insert_exp built-in functions.
17121         (altivec_resolve_overloaded_builtin): Add special case handling
17122         for the __builtin_scalar_insert_exp function, as represented by
17123         the P9V_BUILTIN_VEC_VSIEDP constant.
17124         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
17125         exponent support for __ieee128 argument.
17126         (VSESQP): Add scalar extract signature support for __ieee128
17127         argument.
17128         (VSTDCNQP): Add scalar test negative support for __ieee128
17129         argument.
17130         (VSIEQP): Add scalar insert exponent support for __int128 argument
17131         with __ieee128 result.
17132         (VSIEQPF): Add scalar insert exponent support for __ieee128
17133         argument with __ieee128 result.
17134         (VSTDCQP): Add scalar test data class support for __ieee128
17135         argument.
17136         (VSTDCNQP): Add overload support for scalar test negative with
17137         __ieee128 argument.
17138         (VSTDCQP): Add overload support for scalar test data class
17139         __ieee128 argument.
17140         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
17141         UNSPEC_VSX_SXSIGDP.
17142         (UNSPEC_VSX_SIEXPQP): New constant.
17143         (xsxexpqp): New insn for VSX scalar extract exponent quad
17144         precision.
17145         (xsxsigqp): New insn for VSX scalar extract significand quad
17146         precision.
17147         (xsiexpqpf): New insn for VSX scalar insert exponent quad
17148         precision with floating point argument.
17149         (xststdcqp): New expand for VSX scalar test data class quad
17150         precision.
17151         (xststdcnegqp): New expand for VSX scalar test negative quad
17152         precision.
17153         (xststdcqp): New insn to match expansions for VSX scalar test data
17154         class quad precision and VSX scalar test negative quad precision.
17155         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
17156         special case operand checking to enforce that second operand of
17157         VSX scalar test data class with quad precision argument is a 7-bit
17158         unsigned literal.
17159         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
17160         prototypes and descriptions of __ieee128 versions of
17161         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
17162         scalar_test_data_class, and scalar_test_neg built-in functions.
17164 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17166         PR tree-optimization/81162
17167         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
17168         replace a negate with an add.
17170 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
17172         * doc/invoke.texi (arm/-mcpu): Document +crypto.
17174 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17176         * config/arm/arm-c.c (arm_cpu_builtins): Define
17177         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
17179 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17181         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
17182         (armv8-r): Set ARM Cortex-R52 as default CPU.
17183         * config/arm/arm-tables.opt: Regenerate.
17184         * config/arm/arm-tune.md: Regenerate.
17185         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
17186         Cortex-R52.
17187         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
17188         extension for -mcpu=cortex-r52.
17190 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17192         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
17193         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
17194         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
17195         (fp-armv8): Define it as FP_ARMv8 only.
17196         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
17197         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
17198         TARGET_FPU_ARMV8.
17199         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
17200         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
17201         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
17202         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
17203         than TARGET_FPU_ARMV8.
17204         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
17205         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
17206         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
17207         TARGET_FPU_ARMV8.
17208         * config/arm/neon.md (neon_vrint): Likewise.
17209         (neon_vcvt): Likewise.
17210         (neon_<fmaxmin_op><mode>): Likewise.
17211         (<fmaxmin><mode>3): Likewise.
17212         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
17213         * config/arm/predicates.md (arm_cond_move_operator): Check against
17214         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
17216 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
17218         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
17219         to top of function.
17221 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17223         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
17224         loop in comment with memset.
17226 2017-07-14  Martin Liska  <mliska@suse.cz>
17228         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
17229         * dwarf2out.c (is_java): Remove the function.
17230         (output_pubname): Remove usage of the function.
17231         (lower_bound_default): Remove usage of DW_LANG_Java.
17232         (gen_compile_unit_die): Likewise.
17233         * gcc.c: Remove compiler defaults for .java and .zip files.
17234         * gimple-expr.c (remove_suffix): Change as there's no longer
17235         extension than 4-letter one.
17236         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
17237         (gimplify_save_expr): Likewise.
17238         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
17239         as it's possible even for other languages than Java.
17240         * langhooks.h (struct lang_hooks): Remove Java from a comment.
17241         * lto-opts.c (lto_write_options): Remove reference to Java.
17242         * opts.c (strip_off_ending): Update file extension handling.
17243         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
17244         * tree-eh.c (lower_resx): Likewise.
17245         * tree.c (free_lang_data_in_type): Remove dead code.
17246         (find_decls_types_r): Likewise.
17247         (build_common_builtin_nodes): Remove Java from a comment.
17248         (verify_type): Remove dead code.
17249         * varasm.c (assemble_external): Remove Java from a comment.
17251 2017-07-14  Martin Liska  <mliska@suse.cz>
17253         * opts.c (finish_options): Add quotes.
17254         (common_handle_option): Likewise.
17256 2017-07-14  Martin Liska  <mliska@suse.cz>
17258         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
17259         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
17260         Remove N_SO_PASCAL.
17261         * dwarf2out.c (lower_bound_default): Do not handle
17262         DW_LANG_Pascal83.
17263         (gen_compile_unit_die): Likewise.
17264         * gcc.c: Remove default extension binding for GNU Pascal.
17265         * stmt.c: Remove Pascal language from a comment.
17266         * xcoffout.c: Likewise.
17268 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
17270         PR c/81405
17271         * diagnostic-show-locus.c (fixit_cmp): New function.
17272         (layout::layout): Sort m_fixit_hints.
17273         (column_range::column_range): Assert that the values are valid.
17274         (struct char_span): New struct.
17275         (correction::overwrite): New method.
17276         (struct source_line): New struct.
17277         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
17278         calls in terms of classes source_line and char_span, and
17279         correction::overwrite.
17280         (selftest::test_overlapped_fixit_printing_2): New function.
17281         (selftest::diagnostic_show_locus_c_tests): Call it.
17283 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
17285         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
17286         early if there is no lhs.
17288 2017-07-13  Martin Liska  <mliska@suse.cz>
17290         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
17291         (gen_reference_type_die): Likewise.
17292         * stor-layout.c: Remove Pascal-related comment.
17294 2017-07-13  Martin Liska  <mliska@suse.cz>
17296         * opts.c (finish_options): Add quotes to error messages.
17297         (parse_sanitizer_options): Likewise.
17299 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17301         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
17303 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
17305         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
17307 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
17309         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
17310         during expansion.
17311         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
17313 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
17315         PR target/81193
17316         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
17317         provides the hardware capability bits, define the macro
17318         __BUILTIN_CPU_SUPPORTS__.
17319         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
17320         if GLIBC does not provide the hardware capability bits.  Add a
17321         gcc_unreachable call if the built-in cpu function is neither
17322         __builtin_cpu_is nor __builtin_cpu_supports.
17323         (rs6000_get_function_versions_dispatcher): Change the warning
17324         that an old GLIBC is used which does not export the capability
17325         bits to be an error.
17326         * doc/extend.texi (target_clones attribute): Document the
17327         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
17328         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
17329         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
17330         the macros defined by GCC if the newer GLIBC is available.
17332 2017-07-12  Jeff Law  <law@redhat.com>
17334         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
17335         remaining includes slightly.
17336         * config/riscv/riscv-builtins.c: Include profile-count.h.
17338 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
17340         PR target/79883
17341         * config/avr/avr.c (avr_set_current_function): In diagnostic
17342         messages: Quote keywords and (parts of) identifiers.
17343         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
17344         "INTERUPT".
17346 2017-07-12  Carl Love  <cel@us.ibm.com>
17348         * config/rs6000/rs6000-c.c: Add support for built-in functions
17349         vector bool char vec_revb (vector bool char);
17350         vector bool short vec_revb (vector short char);
17351         vector bool int vec_revb (vector bool int);
17352         vector bool long long vec_revb (vector bool long long);
17353         * doc/extend.texi: Update the built-in documentation file for the
17354         new built-in functions.
17356 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17358         * config/s390/s390.md: Remove movcc splitter.
17360 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17362         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
17363         load/store on condition.
17365 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
17367         PR target/81407
17368         * config/avr/avr.c (avr_encode_section_info)
17369         [progmem && !TREE_READONLY]: Error if progmem object needs
17370         constructing.
17372 2017-07-11  Michael Collison  <michael.collison@arm.com>
17374         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
17375         New pattern.
17377 2017-07-11  Carl Love  <cel@us.ibm.com>
17379         * config/rs6000/rs6000-c.c: Add support for builtins
17380         vector unsigned int vec_parity_lsbb (vector signed int);
17381         vector unsigned int vec_parity_lsbb (vector unsigned int);
17382         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
17383         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
17384         vector unsigned long long vec_parity_lsbb (vector signed long long);
17385         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
17386         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
17387         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
17388         * doc/extend.texi: Update the built-in documentation file for the
17389         new built-in functions.
17391 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
17393         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
17394         (layout::m_primary_loc): New field.
17395         (layout::layout): Initialize new field.  Move location filtering
17396         logic from here to...
17397         (layout::maybe_add_location_range): ...this new method.  Add
17398         support for filtering to just the lines already specified by other
17399         locations.
17400         (layout::will_show_line_p): New method.
17401         (gcc_rich_location::add_location_if_nearby): New method.
17402         (selftest::test_add_location_if_nearby): New test function.
17403         (selftest::diagnostic_show_locus_c_tests): Call it.
17404         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
17405         New method.
17407 2017-07-11  Tom de Vries  <tom@codesourcery.com>
17409         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
17410         (bb_first_real_insn): New function.
17411         (nvptx_single): Add extra initialization of broadcasted condition
17412         variables.
17414 2017-07-11  Nathan Sidwell  <nathan@acm.org>
17416         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
17418 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
17420         * doc/extend.texi (AVR Function Attributes): Remove weblink to
17421         Binutils doc as TEXI will mess them up.
17422         * doc/invoke.texi (AVR Options): Same here.
17424 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
17426         * config/sparc/sparc.opt (mfix-ut700): New option.
17427         (mfix-gr712rc): Likewise.
17428         (sparc_fix_b2bst): New variable.
17429         * doc/invoke.texi (SPARC options): Document them.
17430         (ARM options): Fix warnings.
17431         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
17432         instructions to prevent sequences that can trigger the store-store
17433         errata for certain LEON3FT processors.
17434         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
17435         (sparc_option_override): Set sparc_fix_b2bst appropriately.
17436         * config/sparc/sparc.md (fix_b2bst): New attribute.
17437         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
17439 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
17441         PR target/81375
17442         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
17443         (rcpps): Ditto.
17444         (*rsqrtsf2_sse): Ditto.
17445         (rsqrtsf2): Ditto.
17446         (div<mode>3): Macroize insn from divdf3 and divsf3
17447         using MODEF mode iterator.
17449 2017-07-10  Martin Sebor  <msebor@redhat.com>
17451         PR tree-optimization/80397
17452         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
17453         instead of testing for equality to INTEGER_TYPE.
17455 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
17457         * config.gcc: Remove uclibc from arc target spec.
17459 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
17461         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
17463 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
17465         PR lto/80838
17466         * lto-wrapper.c (remove_option): New function.
17467         (merge_and_complain): Merge PIC/PIE options more realistically.
17469 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
17471         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
17473         PR target/20296
17474         PR target/81268
17475         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
17476         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
17477         * config.in: Regenerate.
17478         * configure: Regenerate.
17479         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
17480         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
17481         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
17482         (TARGET_GASISR_PROLOGUES): ...target mask.
17483         * common/config/avr/avr-common.c
17484         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
17485         Set -mgas-isr-prologues.
17486         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
17487         INSERT_PASS_BEFORE for it.
17488         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
17489         * config/avr/avr.c (avr_option_override)
17490         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
17491         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
17492         (avr_attribute_table) <no_gccisr>: Add new function attribute.
17493         (avr_set_current_function) <is_no_gccisr>: Init machine field.
17494         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
17495         and rtl_opt_pass.
17496         (make_avr_pass_pre_proep): New function.
17497         (emit_push_sfr) <treg>: Add argument to function and use it
17498         instead of TMP_REG.
17499         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
17500         and set machine->gasisr.yes.
17501         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
17502         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
17503         __gcc_isr.n_pushed to .L__stack_usage.
17504         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
17505         (avr_asm_final_postscan_insn): ...this new static function.
17506         * config/avr/avr.h (machine_function)
17507         <is_no_gccisr, use_L__stack_usage>: New fields.
17508         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
17509         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
17510         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
17511         (gasisr, *gasisr): New expander and insn.
17512         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
17513         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
17514         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
17516 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
17518         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
17519         in quoted strings.
17521 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
17523         Move jump-tables out of .text again.
17525         PR target/81075
17526         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
17527         (ASM_OUTPUT_ADDR_VEC): New function.
17528         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
17529         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
17530         INSN_ADDRESSes as asm comment.
17531         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
17532         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
17533         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
17534         * config/avr/avr.md (*tablejump): Adjust comment.
17535         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
17536         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
17537         New detail.
17538         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
17539         (avr_output_addr_vec): New proto.
17540         (avr_log_t) <insn_addresses>: New field.
17542 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
17544         PR target/81313
17545         * config/i386/i386.c (ix86_function_arg_advance): Set
17546         outgoing_args_on_stack to true if there are outgoing arguments
17547         on stack.
17548         (ix86_function_arg): Likewise.
17549         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
17550         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
17551         * config/i386/i386.h (machine_function): Add
17552         outgoing_args_on_stack.
17554 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
17556         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
17557         supporting pthreds.
17558         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
17560 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
17562         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
17563         (REAL_H): Remove $(MACHMODE_H).
17564         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
17565         double-int.h.
17566         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
17567         $(MACHMODE_H) and double-int.h.
17568         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
17569         $(MACHMODE_H).
17570         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
17571         double-int.h.
17573 2017-07-07  Andrew Pinski  <apinski@cavium.com>
17575         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
17576         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
17578 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
17580         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
17581         Add warning if GCC was not configured to link against a GLIBC that
17582         exports the hardware capability bits.
17583         (make_resolver_func): Make resolver function private and not a
17584         COMDAT function.  Create the name with clone_function_name instead
17585         of make_unique_name.
17587         PR target/81348
17588         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
17589         correct operand in doing the split.
17591 2017-07-07 Carl Love  <cel@us.ibm.com>
17593         * config/rs6000/rs6000-c: Add support for built-in function
17594         vector unsigned short vec_pack_to_short_fp32 (vector float,
17595                                                       vector float).
17596         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
17597         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
17598         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
17599         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
17600         (convert_4f32_8i16): Add define_expand.
17601         * doc/extend.texi: Update the built-in documentation file for the
17602         new built-in function.
17604 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
17606         * config/sparc/m8.md: New file.
17607         * config/sparc/sparc.md: Include m8.md.
17609 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
17611         * config/sparc/sparc.opt: New option -mvis4b.
17612         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
17613         (sparc_option_override): Handle VIS4B.
17614         (enum sparc_builtins): Define
17615         SPARC_BUILTIN_DICTUNPACK{8,16,32},
17616         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
17617         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
17618         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
17619         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
17620         (check_constant_argument): New function.
17621         (sparc_vis_init_builtins): Define builtins
17622         __builtin_vis_dictunpack{8,16,32},
17623         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
17624         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
17625         __builtin_vis_fpcmpde{8,16,32}shl and
17626         __builtin_vis_fpcmpur{8,16,32}shl.
17627         (sparc_expand_builtin): Check that the constant operands to
17628         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
17629         constant and in range.
17630         * config/sparc/sparc-c.c (sparc_target_macros): Handle
17631         TARGET_VIS4B.
17632         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
17633         (SPARC_IMM5_P): Likewise.
17634         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
17635         (enabled): Handle vis4b.
17636         (UNSPEC_DICTUNPACK): New unspec.
17637         (UNSPEC_FPCMPSHL): Likewise.
17638         (UNSPEC_FPUCMPSHL): Likewise.
17639         (UNSPEC_FPCMPDESHL): Likewise.
17640         (UNSPEC_FPCMPURSHL): Likewise.
17641         (cpu_feature): New CPU feature `vis4b'.
17642         (dictunpack{8,16,32}): New insns.
17643         (FPCSMODE): New mode iterator.
17644         (fpcscond): New code iterator.
17645         (fpcsucond): Likewise.
17646         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
17647         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
17648         (fpcmpde{8,16,32}{si,di}shl): Likewise.
17649         (fpcmpur{8,16,32}{si,di}shl): Likewise.
17650         * config/sparc/constraints.md: Define constraints `q' for unsigned
17651         2-bit integer constants and `t' for unsigned 5-bit integer
17652         constants.
17653         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
17654         predicate.
17655         (imm5_operand_dictunpack16): Likewise.
17656         (imm5_operand_dictunpack32): Likewise.
17657         (imm2_operand): Likewise.
17658         * doc/invoke.texi (SPARC Options): Document -mvis4b.
17659         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
17660         ditunpack* and fpcmp*shl builtins.
17662 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
17664         * config.gcc: Handle m8 in --with-{cpu,tune} options.
17665         * config.in: Add HAVE_AS_SPARC6 define.
17666         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
17667         M8.
17668         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
17669         TARGET_CPU_m8.
17670         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
17671         (CPP_CPU_SPEC): Handle m8.
17672         (ASM_CPU_SPEC): Likewise.
17673         * config/sparc/sparc-opts.h (enum processor_type): Add
17674         PROCESSOR_M8.
17675         * config/sparc/sparc.c (m8_costs): New struct.
17676         (sparc_option_override): Handle TARGET_CPU_m8.
17677         (sparc32_initialize_trampoline): Likewise.
17678         (sparc64_initialize_trampoline): Likewise.
17679         (sparc_issue_rate): Likewise.
17680         (sparc_register_move_cost): Likewise.
17681         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
17682         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
17683         (ASM_CPU64_DEFAULT_SPEC): Likewise.
17684         (CPP_CPU_SPEC): Handle M8.
17685         (ASM_CPU_SPEC): Likewise.
17686         (AS_M8_FLAG): Define.
17687         * config/sparc/sparc.md: Add m8 to the cpu attribute.
17688         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
17689         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
17690         M8 instructions.
17691         * configure: Regenerate.
17692         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
17693         -mtune=m8.
17695 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
17697         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
17698         subtypes.
17699         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
17700         ("*movdi_insn_sp32"): Do not set v3pipe.
17701         ("*movsi_insn"): Likewise.
17702         ("*movdi_insn_sp64"): Likewise.
17703         ("*movsf_insn"): Likewise.
17704         ("*movdf_insn_sp32"): Likewise.
17705         ("*movdf_insn_sp64"): Likewise.
17706         ("*zero_extendsidi2_insn_sp64"): Likewise.
17707         ("*sign_extendsidi2_insn"): Likewise.
17708         ("*mov<VM32:mode>_insn"): Likewise.
17709         ("*mov<VM64:mode>_insn_sp64"): Likewise.
17710         ("*mov<VM64:mode>_insn_sp32"): Likewise.
17711         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
17712         ("<vlop:code><VL:mode>3"): Likewise.
17713         ("*not_<vlop:code><VL:mode>3"): Likewise.
17714         ("*nand<VL:mode>_vis"): Likewise.
17715         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
17716         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
17717         ("one_cmpl<VL:mode>2"): Likewise.
17718         ("faligndata<VM64:mode>_vis"): Likewise.
17719         ("alignaddrsi_vis"): Likewise.
17720         ("alignaddrdi_vis"): Likweise.
17721         ("alignaddrlsi_vis"): Likewise.
17722         ("alignaddrldi_vis"): Likewise.
17723         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
17724         ("bmaskdi_vis"): Likewise.
17725         ("bmasksi_vis"): Likewise.
17726         ("bshuffle<VM64:mode>_vis"): Likewise.
17727         ("cmask8<P:mode>_vis"): Likewise.
17728         ("cmask16<P:mode>_vis"): Likewise.
17729         ("cmask32<P:mode>_vis"): Likewise.
17730         ("pdistn<P:mode>_vis"): Likewise.
17731         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
17733 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
17735         * config/sparc/sparc.md ("subtype"): New insn attribute.
17736         ("*wrgsr_sp64"): Set insn subtype.
17737         ("*rdgsr_sp64"): Likewise.
17738         ("alignaddrsi_vis"): Likewise.
17739         ("alignaddrdi_vis"): Likewise.
17740         ("alignaddrlsi_vis"): Likewise.
17741         ("alignaddrldi_vis"): Likewise.
17742         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
17743         ("fexpand_vis"): Likewise.
17744         ("fpmerge_vis"): Likewise.
17745         ("faligndata<VM64:mode>_vis"): Likewise.
17746         ("bshuffle<VM64:mode>_vis"): Likewise.
17747         ("cmask8<P:mode>_vis"): Likewise.
17748         ("cmask16<P:mode>_vis"): Likewise.
17749         ("cmask32<P:mode>_vis"): Likewise.
17750         ("fchksm16_vis"): Likewise.
17751         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
17752         ("fmean16_vis"): Likewise.
17753         ("fp<plusminus_insn>64_vis"): Likewise.
17754         ("<plusminus_insn>v8qi3"): Likewise.
17755         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
17756         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
17757         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
17758         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
17759         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
17760         ("*movqi_insn"): Likewise.
17761         ("*movhi_insn"): Likewise.
17762         ("*movsi_insn"): Likewise.
17763         ("movsi_pic_gotdata_op"): Likewise.
17764         ("*movdi_insn_sp32"): Likewise.
17765         ("*movdi_insn_sp64"): Likewise.
17766         ("movdi_pic_gotdata_op"): Likewise.
17767         ("*movsf_insn"): Likewise.
17768         ("*movdf_insn_sp32"): Likewise.
17769         ("*movdf_insn_sp64"): Likewise.
17770         ("*zero_extendhisi2_insn"): Likewise.
17771         ("*zero_extendqihi2_insn"): Likewise.
17772         ("*zero_extendqisi2_insn"): Likewise.
17773         ("*zero_extendqidi2_insn"): Likewise.
17774         ("*zero_extendhidi2_insn"): Likewise.
17775         ("*zero_extendsidi2_insn_sp64"): Likewise.
17776         ("ldfsr"): Likewise.
17777         ("prefetch_64"): Likewise.
17778         ("prefetch_32"): Likewise.
17779         ("tie_ld32"): Likewise.
17780         ("tie_ld64"): Likewise.
17781         ("*tldo_ldub_sp32"): Likewise.
17782         ("*tldo_ldub1_sp32"): Likewise.
17783         ("*tldo_ldub2_sp32"): Likewise.
17784         ("*tldo_ldub_sp64"): Likewise.
17785         ("*tldo_ldub1_sp64"): Likewise.
17786         ("*tldo_ldub2_sp64"): Likewise.
17787         ("*tldo_ldub3_sp64"): Likewise.
17788         ("*tldo_lduh_sp32"): Likewise.
17789         ("*tldo_lduh1_sp32"): Likewise.
17790         ("*tldo_lduh_sp64"): Likewise.
17791         ("*tldo_lduh1_sp64"): Likewise.
17792         ("*tldo_lduh2_sp64"): Likewise.
17793         ("*tldo_lduw_sp32"): Likewise.
17794         ("*tldo_lduw_sp64"): Likewise.
17795         ("*tldo_lduw1_sp64"): Likewise.
17796         ("*tldo_ldx_sp64"): Likewise.
17797         ("*mov<VM32:mode>_insn"): Likewise.
17798         ("*mov<VM64:mode>_insn_sp64"): Likewise.
17799         ("*mov<VM64:mode>_insn_sp32"): Likewise.
17801 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
17803         * config/sparc/sparc.md ("type"): New insn type viscmp.
17804         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
17805         viscmp.
17806         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
17807         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
17808         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
17809         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
17810         viscmp.
17811         ("n7_vis_logical_11cycle"): Likewise.
17812         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
17813         * config/sparc/niagara2.md ("niag3_vis": Likewise.
17814         * config/sparc/niagara.md ("niag_vis"): Likewise.
17815         * config/sparc/ultra3.md ("us3_fga"): Likewise.
17816         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
17818 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
17820         * config/sparc/sparc.md: New instruction type `bmask'.
17821         (bmaskdi_vis): Use the `bmask' type.
17822         (bmasksi_vis): Likewise.
17823         * config/sparc/ultra3.md (us3_array): Likewise.
17824         * config/sparc/niagara7.md (n7_array): Likewise.
17825         * config/sparc/niagara4.md (n4_array): Likewise.
17826         * config/sparc/niagara2.md (niag2_vis): Likewise.
17827         (niag3_vis): Likewise.
17828         * config/sparc/niagara.md (niag_vis): Likewise.
17830 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
17832         * ipa-comdats.c: Remove optimize check from gate.
17833         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
17834         for functions not optimized.
17835         (ipa_fn_summary_read): Skip optimize check.
17836         (ipa_fn_summary_write): Likewise.
17837         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
17838         is optimized.
17839         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
17840         uninlinable.
17841         (can_inline_edge_p): Check flag_pcc_struct_return for match.
17842         (check_callers): Give up on caller which is not optimized.
17843         (inline_small_functions): Likewise.
17844         (ipa_inline): Do not give up when not optimizing.
17845         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
17846         away unoptimizes cdtors.
17847         (whole_program_function_and_variable_visibility): Do
17848         ipa_discover_readonly_nonaddressable_vars in LTO mode.
17849         * ipa.c (process_references): Do not check optimize.
17850         (symbol_table::remove_unreachable_nodes): Update optimize check.
17851         (set_writeonly_bit): Update optimize check.
17852         (pass_ipa_cdtor_merge::gate): Do not check optimize.
17853         (pass_ipa_single_use::gate): Remove.
17855 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
17857         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
17858         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
17859         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
17860         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
17861         permute_load, permute_store, adjust_extract, adjust_splat,
17862         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
17863         replace_swap_with_copy, dump_swap_insn_table,
17864         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
17865         recombine_lvx_pattern, recombine_stvx_pattern,
17866         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
17867         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
17868         to file rs6000-p8swap.c.
17869         * config/rs6000/rs6000-p8swap.c: New file.
17870         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
17871         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
17872         and rs6000*-*-* targets.
17874 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
17876         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
17878 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
17880         * lto-wrapper.c (merge_and_complain): Do not merge
17881         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
17882         fsigned_zeros, ftrapping_math, fwrapv.
17883         (append_compiler_options): Do not track these options.
17884         (append_linker_options): Likewie
17886 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
17888         * cgraphunit.c (cgraph_node::finalize_function): When
17889         !flag_toplevel_reorde set no_reorder flag.
17890         (varpool_node::finalize_decl): Likewise.
17891         (symbol_table::compile): Drop no toplevel reorder path.
17893 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
17895         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
17896         edges; zero probability is not better than uninitialized.
17898 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
17900         * asan.h (asan_sanitize_allocas_p): Declare.
17901         * asan.c (asan_sanitize_allocas_p): New function.
17902         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
17903         (handle_builtin_alloca): Likewise.
17904         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
17905         if !asan_sanitize_allocas_p.
17906         * params.def (asan-instrument-allocas): Add new option.
17907         * params.h (ASAN_PROTECT_ALLOCAS): Define.
17908         * opts.c (common_handle_option): Disable allocas sanitization for
17909         KASan by default.
17911 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
17913         * asan.c: Include gimple-fold.h.
17914         (get_last_alloca_addr): New function.
17915         (handle_builtin_stackrestore): Likewise.
17916         (handle_builtin_alloca): Likewise.
17917         (asan_emit_allocas_unpoison): Likewise.
17918         (get_mem_refs_of_builtin_call): Add new parameter, remove const
17919         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
17920         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
17921         (instrument_builtin_call): Pass gimple iterator to
17922         get_mem_refs_of_builtin_call.
17923         (last_alloca_addr): New global.
17924         * asan.h (asan_emit_allocas_unpoison): Declare.
17925         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
17926         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
17927         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
17928         if function calls alloca.
17929         * gimple-fold.c (replace_call_with_value): Remove static keyword.
17930         * gimple-fold.h (replace_call_with_value): Declare.
17931         * internal-fn.c: Include asan.h.
17932         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
17933         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
17935 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
17937         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
17938         (C_SELFTEST_FLAGS): New.
17939         (CPP_SELFTEST_FLAGS): New.
17940         (SELFTEST_DEPS): New, from deps of s-selftest.
17941         (C_SELFTEST_DEPS): New, from deps of s-selftest.
17942         (CPP_SELFTEST_DEPS): New.
17943         (selftest): Add dependency on s-selftest-c++.
17944         (s-selftest): Rename to...
17945         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
17946         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
17947         than SELFTEST_FLAGS.
17948         (selftest-gdb): Rename to...
17949         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
17950         C_SELFTEST_FLAGS.
17951         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
17952         (selftest-valgrind): Rename to...
17953         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
17954         C_SELFTEST_FLAGS.
17955         (selftest-valgrind): Reintroduce as an alias for
17956         selftest-c-valgrind.
17957         (s-selftest-c++): New.
17958         (selftest-c++-gdb): New.
17959         (selftest-c++-valgrind): New.
17961 2017-07-06  Olivier Hainque  <hainque@adacore.com>
17963         * gcc.c (process_command): When deciding if undefined variables
17964         should be ignored when processing specs, accept "gcc -v" as well.
17966 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
17968         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
17969         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
17971 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17973         * config/arm/arm-cpus.in (armv8-r): Add new entry.
17974         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
17975         * config/arm/arm-tables.opt: Regenerate.
17976         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
17977         enumerator.
17978         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
17980 2017-07-06  Carl Love  <cel@us.ibm.com>
17982         * ChangeLog: Clean up from mid air collision
17984 2017-07-06  Carl Love  <cel@us.ibm.com>
17986         * config/rs6000/rs6000-c.c: Add support for built-in functions
17987         vector signed int vec_subc (vector signed int, vector signed int);
17988         vector signed __int128 vec_subc (vector signed __int128,
17989                                          vector signed __int128);
17990         vector unsigned __int128 vec_subc (vector unsigned __int128,
17991                                            vector unsigned __int128);
17992         vector signed int vec_sube (vector signed int, vector signed int,
17993                                     vector signed int);
17994         vector unsigned int vec_sube (vector unsigned int,
17995                                       vector unsigned int,
17996                                       vector unsigned int);
17997         vector signed __int128 vec_sube (vector signed __int128,
17998                                          vector signed __int128,
17999                                          vector signed__int128);
18000         vector unsigned __int128 vec_sube (vector unsigned __int128,
18001                                            vector unsigned __int128,
18002                                            vector unsigned __int128);
18003         vector signed int vec_subec (vector signed int, vector signed int,
18004                                      vector signed int);
18005         vector unsigned int vec_subec (vector unsigned int,
18006                                        vector unsigned int,
18007                                        vector unsigned int);
18008         vector signed __int128 vec_subec (vector signed __int128,
18009                                           vector signed __int128,
18010                                           vector signed__int128);
18011         vector unsigned __int128 vec_subec (vector unsigned __int128,
18012                                             vector unsigned __int128,
18013                                             vector unsigned __int128);
18014         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
18015         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
18016         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
18017         BU_ALTIVEC_OVERLOAD_X definitions.
18018         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
18019         * doc/extend.texi: Update the built-in documentation file for the new
18020         built-in functions.
18022 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
18024         PR c++/79300
18025         * diagnostic-show-locus.c (layout::layout): Use start and finish
18026         spelling location for the start and finish of each range.
18027         * genmatch.c (linemap_client_expand_location_to_spelling_point):
18028         Add unused aspect param.
18029         * input.c (expand_location_1): Add "aspect" param, and use it
18030         to access the correct part of the location.
18031         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
18032         expand_location_1.
18033         (expand_location_to_spelling_point): Likewise.
18034         (linemap_client_expand_location_to_spelling_point): Add "aspect"
18035         param, and pass it to expand_location_1.
18037 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
18039         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
18040         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
18041         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
18042         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
18043         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
18044         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
18045         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
18046         _mm_maskz_getmant_ss): New intrinsics.
18047         (__builtin_ia32_getexpss128_mask): Changed to ...
18048         __builtin_ia32_getexpss128_round ... this.
18049         (__builtin_ia32_getexpsd128_mask): Changed to ...
18050         __builtin_ia32_getexpsd128_round ... this.
18051         * config/i386/i386-builtin-types.def
18052         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
18053         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
18054         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
18055         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
18056         __builtin_ia32_getmantss_mask_round): New builtins.
18057         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
18058         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
18059         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
18060         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
18061         * config/i386/sse.md
18062         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
18063         avx512f_sgetexp<mode><mask_scalar_name>
18064         <round_saeonly_scalar_name> ... this.
18065         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
18066         %0, %1, %2<round_saeonly_op3>}): Changed to ...
18067         vgetexp<ssescalarmodesuffix>
18068         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
18069         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
18070         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
18071         avx512f_vgetmant<mode><mask_scalar_name>
18072         <round_saeonly_scalar_name> ... this.
18073         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
18074         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
18075         vgetmant<ssescalarmodesuffix>
18076         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
18077         %0<mask_scalar_operand4>, %1, %2
18078         <round_saeonly_scalar_mask_op4>, %3} ... this.
18079         * config/i386/subst.md (mask_scalar_operand4,
18080         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
18081         round_saeonly_scalar_nimm_predicate): New subst attributes.
18083 2017-07-06  Julia Koval  <julia.koval@intel.com>
18085         * config/i386/i386.c (ix86_erase_embedded_rounding):
18086         Remove code for old rounding pattern.
18088 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
18090         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
18092 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
18094         * doc/sourcebuild.texi (Test Directives, Variants of
18095         dg-require-support): Add documentation for dg-require-stack-check.
18097 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
18099         * config/i386/subst.md (mask_scalar, round_scalar,
18100         round_saeonly_scalar): New meta-templates.
18101         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
18102         round_scalar_mask_operand3, round_scalar_mask_op3,
18103         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
18104         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
18105         round_saeonly_scalar_constraint,
18106         round_saeonly_scalar_prefix): New subst attribute.
18107         * config/i386/sse.md
18108         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
18109         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
18110         <round_scalar_name> ... this.
18111         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
18112         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
18113         <round_scalar_name> ... this.
18114         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
18115         <sse>_vm<code><mode>3<mask_scalar_name>
18116         <round_saeonly_scalar_name> ... this.
18117         (v<plusminus_mnemonic><ssescalarmodesuffix>
18118         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
18119         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
18120         v<plusminus_mnemonic><ssescalarmodesuffix>
18121         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
18122         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
18123         (v<multdiv_mnemonic><ssescalarmodesuffix>
18124         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
18125         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
18126         v<multdiv_mnemonic><ssescalarmodesuffix>
18127         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
18128         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
18129         (v<maxmin_float><ssescalarmodesuffix>
18130         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
18131         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
18132         v<maxmin_float><ssescalarmodesuffix>
18133         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
18134         %0<mask_scalar_operand3>, %1, %<iptr>2
18135         <round_saeonly_scalar_mask_op3>} ... this.
18137 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
18139         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
18140         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
18142 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
18143             Alan Hayward  <alan.hayward@arm.com>
18144             David Sherwood  <david.sherwood@arm.com>
18146         * combine.c (simplify_if_then_else): Remove "enum" before
18147         "machine_mode".
18148         * compare-elim.c (can_eliminate_compare): Likewise.
18149         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
18150         Likewise.
18151         (aarch64_lookup_simd_builtin_type): Likewise.
18152         (aarch64_simd_builtin_type): Likewise.
18153         (aarch64_init_simd_builtin_types): Likewise.
18154         (aarch64_simd_expand_args): Likewise.
18155         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
18156         Likewise.
18157         (aarch64_reverse_mask): Likewise.
18158         (aarch64_simd_emit_reg_reg_move): Likewise.
18159         (aarch64_gen_adjusted_ldpstp): Likewise.
18160         (aarch64_ccmp_mode_to_code): Likewise.
18161         (aarch64_operands_ok_for_ldpstp): Likewise.
18162         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
18163         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
18164         Likewise.
18165         (aarch64_min_divisions_for_recip_mul): Likewise.
18166         (aarch64_reassociation_width): Likewise.
18167         (aarch64_get_condition_code_1): Likewise.
18168         (aarch64_simd_emit_reg_reg_move): Likewise.
18169         (aarch64_simd_attr_length_rglist): Likewise.
18170         (aarch64_reverse_mask): Likewise.
18171         (aarch64_operands_ok_for_ldpstp): Likewise.
18172         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
18173         (aarch64_gen_adjusted_ldpstp): Likewise.
18174         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
18175         Likewise.
18176         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
18177         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
18178         (arm_lookup_simd_builtin_type): Likewise.
18179         (arm_simd_builtin_type): Likewise.
18180         (arm_init_simd_builtin_types): Likewise.
18181         (arm_expand_builtin_args): Likewise.
18182         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
18183         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
18184         (ft32_setup_incoming_varargs): Likewise.
18185         (ft32_function_arg): Likewise.
18186         (ft32_function_arg_advance): Likewise.
18187         (ft32_pass_by_reference): Likewise.
18188         (ft32_arg_partial_bytes): Likewise.
18189         (ft32_valid_pointer_mode): Likewise.
18190         (ft32_addr_space_pointer_mode): Likewise.
18191         (ft32_addr_space_legitimate_address_p): Likewise.
18192         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
18193         Likewise.
18194         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
18195         (ix86_emit_outlined_ms2sysv_restore): Likewise.
18196         (iamcu_alignment): Likewise.
18197         (canonicalize_vector_int_perm): Likewise.
18198         (ix86_noce_conversion_profitable_p): Likewise.
18199         (ix86_mpx_bound_mode): Likewise.
18200         (ix86_operands_ok_for_move_multiple): Likewise.
18201         * config/microblaze/microblaze-protos.h
18202         (microblaze_expand_conditional_branch_reg): Likewise.
18203         * config/microblaze/microblaze.c
18204         (microblaze_expand_conditional_branch_reg): Likewise.
18205         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
18206         Likewise.
18207         (rs6000_reassociation_width): Likewise.
18208         (rs6000_invalid_binary_op): Likewise.
18209         (fusion_p9_p): Likewise.
18210         (emit_fusion_p9_load): Likewise.
18211         (emit_fusion_p9_store): Likewise.
18212         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
18213         Likewise.
18214         (riscv_hard_regno_mode_ok_p): Likewise.
18215         (riscv_address_insns): Likewise.
18216         (riscv_split_symbol): Likewise.
18217         (riscv_legitimize_move): Likewise.
18218         (riscv_function_value): Likewise.
18219         (riscv_hard_regno_nregs): Likewise.
18220         (riscv_expand_builtin): Likewise.
18221         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
18222         (riscv_build_integer): Likewise.
18223         (riscv_split_integer): Likewise.
18224         (riscv_legitimate_constant_p): Likewise.
18225         (riscv_cannot_force_const_mem): Likewise.
18226         (riscv_regno_mode_ok_for_base_p): Likewise.
18227         (riscv_valid_base_register_p): Likewise.
18228         (riscv_valid_offset_p): Likewise.
18229         (riscv_valid_lo_sum_p): Likewise.
18230         (riscv_classify_address): Likewise.
18231         (riscv_legitimate_address_p): Likewise.
18232         (riscv_address_insns): Likewise.
18233         (riscv_load_store_insns): Likewise.
18234         (riscv_force_binary): Likewise.
18235         (riscv_split_symbol): Likewise.
18236         (riscv_force_address): Likewise.
18237         (riscv_legitimize_address): Likewise.
18238         (riscv_move_integer): Likewise.
18239         (riscv_legitimize_const_move): Likewise.
18240         (riscv_legitimize_move): Likewise.
18241         (riscv_address_cost): Likewise.
18242         (riscv_subword): Likewise.
18243         (riscv_output_move): Likewise.
18244         (riscv_canonicalize_int_order_test): Likewise.
18245         (riscv_emit_int_order_test): Likewise.
18246         (riscv_function_arg_boundary): Likewise.
18247         (riscv_pass_mode_in_fpr_p): Likewise.
18248         (riscv_pass_fpr_single): Likewise.
18249         (riscv_pass_fpr_pair): Likewise.
18250         (riscv_get_arg_info): Likewise.
18251         (riscv_function_arg): Likewise.
18252         (riscv_function_arg_advance): Likewise.
18253         (riscv_arg_partial_bytes): Likewise.
18254         (riscv_function_value): Likewise.
18255         (riscv_pass_by_reference): Likewise.
18256         (riscv_setup_incoming_varargs): Likewise.
18257         (riscv_print_operand): Likewise.
18258         (riscv_elf_select_rtx_section): Likewise.
18259         (riscv_save_restore_reg): Likewise.
18260         (riscv_for_each_saved_reg): Likewise.
18261         (riscv_register_move_cost): Likewise.
18262         (riscv_hard_regno_mode_ok_p): Likewise.
18263         (riscv_hard_regno_nregs): Likewise.
18264         (riscv_class_max_nregs): Likewise.
18265         (riscv_memory_move_cost): Likewise.
18266         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
18267         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
18268         (rl78_addr_space_address_mode): Likewise.
18269         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18270         Likewise.
18271         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
18272         (rs6000_reassociation_width): Likewise.
18273         (rs6000_invalid_binary_op): Likewise.
18274         (fusion_p9_p): Likewise.
18275         (emit_fusion_p9_load): Likewise.
18276         (emit_fusion_p9_store): Likewise.
18277         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
18278         (ok_for_simple_move_operands): Likewise.
18279         (ok_for_simple_move_strict_operands): Likewise.
18280         (ok_for_simple_arith_logic_operands): Likewise.
18281         (visium_legitimize_reload_address): Likewise.
18282         (visium_select_cc_mode): Likewise.
18283         (output_cbranch): Likewise.
18284         (visium_split_double_move): Likewise.
18285         (visium_expand_copysign): Likewise.
18286         (visium_expand_int_cstore): Likewise.
18287         (visium_expand_fp_cstore): Likewise.
18288         * config/visium/visium.c (visium_pass_by_reference): Likewise.
18289         (visium_function_arg): Likewise.
18290         (visium_function_arg_advance): Likewise.
18291         (visium_libcall_value): Likewise.
18292         (visium_setup_incoming_varargs): Likewise.
18293         (visium_legitimate_constant_p): Likewise.
18294         (visium_legitimate_address_p): Likewise.
18295         (visium_legitimize_address): Likewise.
18296         (visium_secondary_reload): Likewise.
18297         (visium_register_move_cost): Likewise.
18298         (visium_memory_move_cost): Likewise.
18299         (prepare_move_operands): Likewise.
18300         (ok_for_simple_move_operands): Likewise.
18301         (ok_for_simple_move_strict_operands): Likewise.
18302         (ok_for_simple_arith_logic_operands): Likewise.
18303         (visium_function_value_1): Likewise.
18304         (rtx_ok_for_offset_p): Likewise.
18305         (visium_legitimize_reload_address): Likewise.
18306         (visium_split_double_move): Likewise.
18307         (visium_expand_copysign): Likewise.
18308         (visium_expand_int_cstore): Likewise.
18309         (visium_expand_fp_cstore): Likewise.
18310         (visium_split_cstore): Likewise.
18311         (visium_select_cc_mode): Likewise.
18312         (visium_split_cbranch): Likewise.
18313         (output_cbranch): Likewise.
18314         (visium_print_operand_address): Likewise.
18315         * expmed.c (flip_storage_order): Likewise.
18316         * expmed.h (emit_cstore): Likewise.
18317         (flip_storage_order): Likewise.
18318         * genrecog.c (validate_pattern): Likewise.
18319         * hsa-gen.c (gen_hsa_addr): Likewise.
18320         * internal-fn.c (expand_arith_overflow): Likewise.
18321         * ira-color.c (allocno_copy_cost_saving): Likewise.
18322         * lra-assigns.c (find_hard_regno_for_1): Likewise.
18323         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
18324         (process_invariant_for_inheritance): Likewise.
18325         * lra-eliminations.c (move_plus_up): Likewise.
18326         * omp-low.c (lower_oacc_reductions): Likewise.
18327         * simplify-rtx.c (simplify_subreg): Likewise.
18328         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
18329         (TARGET_CHKP_BOUND_MODE): Likewise..
18330         * targhooks.c (default_chkp_bound_mode): Likewise.
18331         (default_setup_incoming_vararg_bounds): Likewise.
18332         * targhooks.h (default_chkp_bound_mode): Likewise.
18333         (default_setup_incoming_vararg_bounds): Likewise.
18334         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
18335         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
18336         (have_whole_vector_shift): Likewise.
18337         * tree-vect-stmts.c (vectorizable_load): Likewise.
18338         * doc/tm.texi: Regenerate.
18340 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
18342         Graceful degrade if Binutils PR21472 is not available.
18344         PR target/81072
18345         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
18346         .rodata in flash test fails.
18347         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
18348         * confgure: Regenerate.
18349         * config.in: Regenerate.
18350         * config/avr/avr.c (avr_asm_named_section)
18351         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
18352         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
18353         (avr_asm_init_sections): Same.
18355 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18357         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
18358         (fma<VH:mode>4_intrinsic): Likewise.
18359         (*fmsub<VCVTF:mode>4): Likewise.
18360         (*fmsub<VH:mode>4_intrinsic): Likewise.
18362 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
18364         PR target/81305
18365         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
18366         Don't depend on "optimize > 0".
18367         (out_movhi_r_mr, out_movqi_mr_r): Same.
18368         (out_movhi_mr_r, out_movqi_r_mr): Same.
18369         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
18370         io_address_operand on "optimize > 0".
18372 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18374         * tree-loop-distribution.c: Add general explanantion on the pass.
18375         (generate_loops_for_partition): Mark distributed loop.
18376         (pg_add_dependence_edges): New parameter.  Handle alias data
18377         dependence specially and record it in the parameter if asked.
18378         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
18379         (init_partition_graph_vertices, add_partition_graph_edge): New.
18380         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
18381         (free_partition_graph_vdata, build_partition_graph): New.
18382         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
18383         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
18384         (data_ref_segment_size, latch_dominated_by_data_ref): New.
18385         (compute_alias_check_pairs, version_loop_by_alias_check): New.
18386         (version_for_distribution_p, finalize_partitions): New.
18387         (distribute_loop): Handle alias data dependence specially.  Factor
18388         out loop fusion code as functions and call these functions.
18390 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18392         * tree-loop-distribution.c (classify_partition): New parameter and
18393         better handle reduction statement.
18394         (rdg_build_partitions): Revise comment.
18395         (distribute_loop): Compute statements in all partitions and pass it
18396         to classify_partition.
18398 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18400         * tree-loop-distribution.c (enum partition_type): New.
18401         (struct partition): New field type.
18402         (partition_merge_into): Add parameter.  Update partition type.
18403         (data_dep_in_cycle_p, update_type_for_merge): New functions.
18404         (build_rdg_partition_for_vertex): Compute partition type.
18405         (rdg_build_partitions): Dump partition type.
18406         (distribute_loop): Update calls to partition_merge_into.
18408 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18410         * tree-loop-distribution.c (struct ddr_hasher): New.
18411         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
18412         (ddrs_table): New.
18413         (classify_partition): Call get_data_dependence.
18414         (pg_add_dependence_edges): Ditto.
18415         (distribute_loop): Release data dependence hash table.
18417 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18419         * tree-loop-distribution.c (ref_base_address): Delete.
18420         (similar_memory_accesses): Rename ...
18421         (share_memory_accesses): ... to this.  Check if partitions access
18422         the same memory reference.
18423         (distribute_loop): Call share_memory_accesses.
18425 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18427         * tree-loop-distribution.c (struct partition): New field recording
18428         its data reference.
18429         (partition_alloc, partition_free): Init and release data refs.
18430         (partition_merge_into): Merge data refs.
18431         (build_rdg_partition_for_vertex): Collect data refs for partition.
18432         (pg_add_dependence_edges): Change parameters from vector to bitmap.
18433         Update uses.
18434         (distribute_loop): Remve data refs from vertice data of partition
18435         graph.
18437 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18439         * tree-loop-distribution.c (params.h): Include header file.
18440         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
18441         (datarefs_vec): New global var.
18442         (create_rdg_vertices): Use datarefs_vec directly.
18443         (free_rdg): Don't free data references.
18444         (build_rdg): Update use.  Don't free data references.
18445         (distribute_loop): Compute global variable for data references.
18446         Bail out if there are too many data references.
18448 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18450         * tree-loop-distribution.c (loop_nest): New global var.
18451         (build_rdg): Use loop directly, rather than loop nest.
18452         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
18453         variable directly.
18454         (distribute_loop): Compute global variable loop nest.  Update use.
18456 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18458         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
18459         (partition_merge_into): New parameter.  Dump reason for fusion.
18460         (distribute_loop): Update use of partition_merge_into.
18462 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18464         * tree-loop-distribution.c (bb_top_order_index): New.
18465         (bb_top_order_index_size, bb_top_order_cmp): New.
18466         (stmts_from_loop): Use topological order.
18467         (pass_loop_distribution::execute): Compute and release topological
18468         order for basic blocks.
18470 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18472         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
18473         if no loops.
18475 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
18477         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
18478         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
18479         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
18480         * internal-fn.def (LOOP_DIST_ALIAS): New.
18481         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
18482         (fold_loop_internal_call): ... this.
18483         (vect_loop_dist_alias_call): New function.
18484         (set_uid_loop_bbs): Call fold_loop_internal_call.
18485         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
18486         internal calls.
18488 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
18490         PR target/81300
18491         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
18492         Require dead FLAGS_REG at the beginning of a peephole.
18494 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
18496         PR target/81294
18497         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
18498         arguments in the call to __builtin_ia32_sbb_u32.
18499         (_subborrow_u64): Swap _X and _Y arguments in the call to
18500         __builtin_ia32_sbb_u64.
18502 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
18504         PR debug/81278
18505         * tree-vrp.c (compare_assert_loc): Turn into a function template
18506         with stable template parameter.  Only test if a->e is NULL,
18507         !a->e == !b->e has been verified already.  Use e == NULL or
18508         e != NULL instead of e or ! e tests.  If stable is true, don't use
18509         iterative_hash_expr, on the other side allow a or b or both NULL
18510         and sort the NULLs last.
18511         (process_assert_insertions): Sort using compare_assert_loc<false>
18512         instead of compare_assert_loc, later sort using
18513         compare_assert_loc<true> before calling process_assert_insertions_for
18514         in a loop.  Use break instead of continue once seen NULL pointer.
18516 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18518         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
18519         Cortex-R7 and Cortex-R8 processors.
18521 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
18523         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
18524         uninitialized while src is not.
18526 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
18528         * common/config/arm/arm-common.c: Adjust include path for
18529         arm-cpu-cdata.h
18530         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
18531         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
18532         (arm-cpu-data.h): Likewise.
18533         (arm-cpu-cdata.h): Likewise.
18534         * config/arm/arm-cpu.h: Delete.
18535         * config/arm/arm-cpu-cdata.h: Delete.
18536         * config/arm/arm-cpu-data.h: Delete.
18538 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
18540         * config/arm/arm-cpus.in (cortex-a55): New.
18541         (cortex-a75): Likewise.
18542         (cortex-a75.cortex-a55): Likewise.
18543         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
18544         cortex-a75.
18545         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
18546         * config/arm/arm-cpu-cdata.h: Regenerate.
18547         * config/arm/arm-cpu-data.h: Regenerate.
18548         * config/arm/arm-cpu.h: Regenerate.
18549         * config/arm/arm-tables.opt: Regenerate.
18550         * config/arm/arm-tune.md: Regenerate.
18552 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
18554         * haifa-sched.c (sched_create_recovery_edges): Update profile.
18556 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
18558         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
18559         probability.
18561 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
18563         PR tree-optimization/81292
18564         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
18565         full_string_p, also call adjust_related_strinfos if the adjustment
18566         is simple, otherwise invalidate related strinfos.
18568 2017-07-04  Martin Liska  <mliska@suse.cz>
18570         PR sanitizer/81040
18571         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
18572         newly created variable as DECL_IGNORED_P.
18574 2017-07-04  Martin Liska  <mliska@suse.cz>
18576         PR ipa/81293
18577         * ipa-inline.c (inline_small_functions):
18578         Use xstrdup_for_dump.
18580 2017-07-04  Tom de Vries  <tom@codesourcery.com>
18582         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
18584 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
18586         PR target/81033
18587         * config/darwin.c (darwin_function_switched_text_sections):
18588         Fix spaces.
18590 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
18592         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
18594 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
18596         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
18598 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
18600         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
18601         min_profitable_iters, and th as inclusive lower bounds.
18602         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
18603         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
18604         for min_profitable_iters and min_profitable_estimate.
18605         (vect_transform_loop): Treat th as an inclusive lower bound.
18606         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
18608 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
18610         PR target/81033
18611         * config/darwin.c (darwin_function_switched_text_sections):
18612         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
18613         in two pieces, and suppress the use of buf.
18615 2017-07-03  Nathan Sidwell  <nathan@acm.org>
18617         * hash-table.h (hash_table_mod1): Fix indentation.
18619 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
18621         PR middle-end/81290
18622         * predict.c (force_edge_cold): Be more careful about propagation
18623         backward.
18624         * profile-count.h (profile_probability::guessed,
18625         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
18626         New.
18627         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
18629 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
18631         * doc/invoke.texi (rcpc architecture extension): Document it.
18633 2017-07-03  Richard Biener  <rguenther@suse.de>
18635         PR tree-optimization/60510
18636         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
18637         the scalar reduction PHI and use it.
18638         (vectorizable_reduction): Properly guard the single_defuse_cycle
18639         path for non-SLP reduction chains where we cannot use it.
18640         Rework reduc_def/index and vector type deduction.  Rework
18641         vector operand gathering during reduction op code-gen.
18642         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
18643         chains dissolve the chain and leave it to non-SLP reduction
18644         handling.
18646 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
18648         * tree-data-ref.h (dr_alignment): Declare.
18649         * tree-data-ref.c (dr_alignment): New function.
18650         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
18651         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
18652         set it.
18653         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
18655 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
18657         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
18658         and base_misalignment fields.
18659         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
18660         * tree-data-ref.c: Include builtins.h.
18661         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
18662         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
18663         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
18664         * tree-vect-data-refs.c: Include tree-cfg.h.
18665         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
18666         fields instead of calculating an alignment here.
18667         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
18668         innermost_loop_behavior fields.
18670 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
18672         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
18673         field.
18674         (DR_STEP_ALIGNMENT): New macro.
18675         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
18676         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
18677         (create_data_ref): Print it.
18678         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
18679         to tell whether the step preserves vector (mis)alignment.
18680         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
18681         Move the check for an integer step and generalise to all INTEGER_CST.
18682         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
18683         Print the outer step alignment.
18685 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
18687         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
18688         with offset_alignment.
18689         (DR_ALIGNED_TO): Delete.
18690         (DR_OFFSET_ALIGNMENT): New macro.
18691         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
18692         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
18693         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
18694         (create_data_ref): Likewise.
18695         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
18696         (vect_analyze_data_refs): Likewise.
18697         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
18698         creating dummy innermost behavior.
18700 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
18702         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
18703         with a "innermost_loop_behavior *" and refeence tree.
18704         * tree-data-ref.c (dr_analyze_innermost): Likewise.
18705         (create_data_ref): Update call accordingly.
18706         * tree-predcom.c (find_looparound_phi): Likewise.
18708 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
18710         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
18711         fields with dr_wrt_vec_loop.
18712         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
18713         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
18714         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
18715         (vect_dr_behavior): New function.
18716         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
18717         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
18718         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
18719         track whether the step preserves the misalignment.
18720         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
18721         Use vect_dr_behavior.
18722         (vect_setup_realignment): Update call accordingly.
18723         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
18724         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
18725         call to vect_create_addr_base_for_vector_ref.
18726         (vect_create_cond_for_align_checks): Likewise.
18727         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
18728         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
18729         (vect_recog_mask_conversion_pattern): Likewise.
18730         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
18731         (new_stmt_vec_info): Remove redundant zeroing.
18733 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
18735         * common/config/arm/arm-common.c (arm_be8_option): New function.
18736         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
18737         (ISA_ARMv6): Add isa_bit_be8.
18738         * config/arm/arm.h (arm_be8_option): Add prototype.
18739         (BE8_SPEC_FUNCTION): New define.
18740         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
18741         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
18742         (mlittle-endian): Similarly.
18743         (mbe8, mbe32): New options.
18744         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
18745         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
18747 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
18749         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
18751 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
18753         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
18754         (cleanup_tree_cfg_bb): Use it.
18755         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
18756         New functions.
18757         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
18759 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
18761         PR bootstrap/81285
18762         * loop-doloop.c (add_test): Update profile.
18764 2017-07-03  Martin Liska  <mliska@suse.cz>
18766         PR sanitize/81040
18767         * sanopt.c (rewrite_usage_of_param): New function.
18768         (sanitize_rewrite_addressable_params): Likewise.
18769         (pass_sanopt::execute): Call rewrite_usage_of_param.
18771 2017-07-03  Richard Biener  <rguenther@suse.de>
18773         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
18774         back to using VIEW_CONVERT_EXPR.
18776 2017-07-03  Martin Liska  <mliska@suse.cz>
18778         PR other/78366
18779         * doc/extend.texi: Document when a resolver function is
18780         generated for target_clones.
18782 2017-07-03  Martin Liska  <mliska@suse.cz>
18784         * asan.c (asan_emit_stack_protection): Unpoison just red zones
18785         and shadow memory of auto variables which are subject of
18786         use-after-scope sanitization.
18787         (asan_expand_mark_ifn): Add do set only when is_poison.
18789 2016-07-03  Richard Biener  <rguenther@suse.de>
18791         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
18792         reduction PHIs.
18793         (vect_force_simple_reduction): Record reduction def -> phi mapping.
18794         (vectorizable_reduction): Perform reduction PHI creation when
18795         visiting a reduction PHI and adjust and simplify code generation
18796         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
18797         (vect_transform_loop): Visit reduction PHIs.
18798         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
18799         defs into the SLP tree.
18800         (vect_build_slp_tree): Reduction defs terminate the recursion.
18801         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
18802         of reduction defs.
18803         (vect_get_vec_defs_for_stmt_copy): Export.
18804         (vect_get_vec_defs): Likewise.
18805         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
18806         purpose.
18807         (vect_get_vec_defs_for_stmt_copy): Declare.
18808         (vect_get_vec_defs): Likewise.
18810 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
18812         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
18813         parameter with a "loop" parameter and use it instead of the
18814         loop containing DR_STMT.  Don't check simple_iv when doing
18815         BB analysis.  Describe the two analysis modes in the comment.
18817 2017-07-03  Tom de Vries  <tom@codesourcery.com>
18819         PR tree-optimization/69468
18820         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
18821         (find_same_succ_bb): Handle ignore_edge_flags.
18823 2017-07-03  Tom de Vries  <tom@codesourcery.com>
18825         PR tree-optimization/81192
18826         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
18827         hash.
18828         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
18829         differs.
18830         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
18832 2017-07-03  Tom de Vries  <tom@codesourcery.com>
18834         PR tree-optimization/81192
18835         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
18836         BB_SAME_SUCC (bb) == NULL.
18838 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
18840         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
18841         consistency.
18843 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
18845         * dumpfile.c: Include profile-count.h
18846         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
18847         update profile.
18848         (insert_cond_bb): Update profile.
18849         * tree-cfg.h (insert_cond_bb): Update prototype.
18850         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
18851         * tree-dump.c: Do not include tree-cfg.
18853 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
18855         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
18857 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
18859         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
18860         bb.
18862 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
18864         * tree-complex.c (expand_complex_div_wide): update profile.
18866 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
18867             Alan Hayward  <alan.hayward@arm.com>
18868             David Sherwood  <david.sherwood@arm.com>
18870         * Makefile.in (MACHMODE_H): Remove insn-modes.h
18871         (CORETYPES_H): New define.
18872         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
18873         (insn-modes-inline.h, s-modes-inline-h): New rules.
18874         (generated_files): Add insn-modes-inline.h.
18875         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
18876         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
18877         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
18878         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
18879         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
18880         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
18881         (build/gencodes.o, build/genconditions.o): Likewise.
18882         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
18883         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
18884         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
18885         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
18886         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
18887         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
18888         * coretypes.h: Include everything up to real.h for generators.
18889         Include insn-modes.h first.  Include wide-int-print.h after
18890         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
18891         * machmode.h: Don't include insn-modes.h here.
18892         * function-tests.c: Remove includes of signop.h, machmode.h,
18893         double-int.h and wide-int.h.
18894         * rtl.h: Likewise.
18895         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
18896         and wide-int.h.
18897         * optc-save-gen.awk: Likewise.
18898         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
18899         * godump.c: Remove include of wide-int-print.h.
18900         * pretty-print.h: Likewise.
18901         * wide-int-print.cc: Likewise.
18902         * wide-int.cc: Likewise.
18903         * hash-map-tests.c: Remove include of signop.h.
18904         * hash-set-tests.c: Likewise.
18905         * rtl-tests.c: Likewise.
18906         * mkconfig.sh: Remove include of machmode.h.
18907         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
18908         into...
18909         (emit_insn_modes_inline_h): ...this new function.  Emit the code
18910         into an insn-modes-inline.h header file, adding appropriate
18911         include guards and end comments.
18912         (emit_insn_modes_c_header): Remove include of machmode.h.
18913         (emit_min_insn_modes_c_header): Include coretypes.h rather than
18914         machmode.h.
18915         (main): Handle -i flag and call emit_insn_modes_inline_h when
18916         it is passed.
18918 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
18920         * tree-ssa-strlen.c (strinfo): Rename the length field to
18921         nonzero_chars.  Add a full_string_p field.
18922         (compare_nonzero_chars, zero_length_string_p): New functions.
18923         (get_addr_stridx): Add an offset_out parameter.
18924         Use compare_nonzero_chars.
18925         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
18926         (new_strinfo): Update after above changes to strinfo.
18927         (set_endptr_and_length): Set full_string_p.
18928         (get_string_length): Update after above changes to strinfo.
18929         (unshare_strinfo): Update call to new_strinfo.
18930         (maybe_invalidate): Likewise.
18931         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
18932         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
18933         as a uhwi instead of an shwi.  Update after above changes to
18934         strinfo and new_strinfo.
18935         (zero_length_string): Assert that chainsi contains full strings.
18936         Use zero_length_string_p.  Update call to new_strinfo.
18937         (adjust_related_strinfos): Update after above changes to strinfo.
18938         Copy full_string_p from origsi.
18939         (adjust_last_stmt): Use zero_length_string_p.
18940         (handle_builtin_strlen): Update after above changes to strinfo and
18941         new_strinfo.  Install the lhs as the string length if the previous
18942         entry didn't describe a full string.
18943         (handle_builtin_strchr): Update after above changes to strinfo
18944         and new_strinfo.
18945         (handle_builtin_strcpy): Likewise.
18946         (handle_builtin_strcat): Likewise.
18947         (handle_builtin_malloc): Likewise.
18948         (handle_pointer_plus): Likewise.
18949         (handle_builtin_memcpy): Likewise.  Track nonzero characters
18950         that aren't necessarily followed by a nul terminator.
18951         (handle_char_store): Likewise.
18953 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
18955         PR tree-optimization/80769
18956         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
18957         for malloc and calloc.  Document the new invariant that all related
18958         strinfos have delayed lengths or none do.
18959         (verify_related_strinfos): Move earlier in file.
18960         (set_endptr_and_length): New function, split out from...
18961         (get_string_length): ...here.  Also set the lengths of related
18962         strinfos.
18963         (zero_length_string): Assert that chainsi has known (rather than
18964         delayed) lengths.
18965         (adjust_related_strinfos): Likewise.
18967 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
18969         PR tree-optimization/81136
18970         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
18971         assert that two references with the same misalignment have the same
18972         compile-time misalignment if those compile-time misalignments
18973         are known.
18975 2017-07-01  Andi Kleen  <ak@linux.intel.com>
18977         * print-tree.c (print_node): Print all attributes.
18979 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
18981         * cfg.c (scale_bbs_frequencies): New function.
18982         * cfg.h (scale_bbs_frequencies): Declare it.
18983         * cfgloopanal.c (single_likely_exit): Cleanup.
18984         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
18985         as parameter.
18986         (scale_loop_profile): Likewise.
18987         (loop_version): Likewise.
18988         (create_empty_loop_on_edge): Update.
18989         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
18990         scale_loop_frequencies, scale_loop_profile, loopify,
18991         loop_version): Update prototypes.
18992         * modulo-sched.c (sms_schedule): Update.
18993         * predict.c (unlikely_executed_edge_p): Also check probability.
18994         (probably_never_executed_edge_p): Fix typo.
18995         * tree-if-conv.c (version_loop_for_if_conversion): Update.
18996         * tree-parloops.c (gen_parallel_loop): Update.
18997         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
18998         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
18999         * tree-ssa-loop-split.c (split_loop): Update.
19000         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
19001         * tree-vect-loop-manip.c (vect_do_peeling): Update.
19002         (vect_loop_versioning): Update.
19003         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
19005 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
19007         * trans-mem.c (split_bb_make_tm_edge): Update profile.
19009 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
19011         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
19012         to keep profile consistent.
19014 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
19016         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
19017         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
19018         * profile-count.h (max_safe_multiplier): Make unsigned.
19019         (profile_count::guessed_zero): New.
19021 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
19023         * bb-reorder.c (fix_up_crossing_landing_pad,
19024         fix_crossing_conditional_branches): Use make_single_succ_edge
19025         to keep profile consistent.
19027 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
19029         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
19030         to update profile.
19032 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
19034         PR sanitizer/81262
19035         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
19036         the right scopes, make sure cond_jump isn't preserved between multiple
19037         iterations.  Search for fallthru edge whenever there are 3+ edges and
19038         use find_fallthru_edge for it.
19040 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
19042         Patch by Alexander Monakov <amonakov@ispras.ru>
19043         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
19044         probabilities consistently.
19046 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
19048         * pa.c (pa_expand_compare_and_swap_loop): Update call of
19049         emit_cmp_and_jump_insns.
19051 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
19053         PR ipa/81261
19054         * tree-inline.c (expand_call_inline): Combine profile statuses.
19056 2017-06-30  Andrew Pinski  <apinski@cavium.com>
19058         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
19059         fold_stmt returned true.
19061 2017-06-30  Nathan Sidwell  <nathan@acm.org>
19063         * ggc.h (empty_string): Delete.
19064         * cfgexpand.c (expand_asm_stmt): Use plain "".
19065         * optabs.c (expand_asm_memory_barrier): Likewise.
19066         * stringpool.c (empty_string): Delete.
19067         (digit_vector, digit_string): Delete.
19068         (ggc_alloc_string): Use plain "", don't optimize single digit
19069         strings.  Use ggc_alloc_atomic.
19071 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
19073         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
19074         comparison set and one other set, use the cost of the non-comparison
19075         set.
19077 2017-06-30  Nathan Sidwell  <nathan@acm.org>
19079         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
19080         some formatting.
19082 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
19084         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
19085         loops.  Remove now unneeded calls to gimple_switch_set_label() that
19086         just set removed labels to NULL_TREE.
19088 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
19090         * tree-ssanames.c (set_range_info_raw): Abstract from ...
19091         (set_range_info): ...here.  Only call set_range_info_raw if domain
19092         is useful.
19093         (set_nonzero_bits): Call set_range_info_raw.
19094         * tree-ssanames.h (set_range_info_raw): New.
19096 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
19098         PR target/81225
19099         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
19100         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
19101         of nonimmediate_operand and <store_mask_constraint> instead of m
19102         for the input operand.  For V8FI iterator, always split if input
19103         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
19104         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
19105         <store_mask_predicate> instead of register_operand and
19106         <store_mask_constraint> instead of v for the input operand.  Make
19107         sure both operands aren't MEMs for if not <mask_applied>.
19109 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
19111         * lto-wrapper.c (copy_file) Close both file descriptors before
19112         exiting normally.
19114 2017-06-30  Martin Liska  <mliska@suse.cz>
19116         PR ipa/81214
19117         * multiple_target.c (create_dispatcher_calls): Make ifunc
19118         also for function that don't have calls or are not referenced.
19120 2017-06-30  Richard Biener  <rguenther@suse.de>
19122         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
19123         analyze the first scalar stmt.  Move vector type computation
19124         for the BB case here from ...
19125         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
19126         live operation processing in the SLP case properly.
19128 2017-06-30  Richard Biener  <rguenther@suse.de>
19130         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
19132 2017-06-30  Martin Liska  <mliska@suse.cz>
19134         PR sanitizer/81021
19135         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
19136         before BUILT_IN_UNWIND_RESUME when ASAN is used.
19138 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
19140         * doc/invoke.texi (AArch64): Add missing options and remove redundant
19141         ones.
19143 2017-06-30  Richard Biener  <rguenther@suse.de>
19145         PR tree-optimization/81249
19146         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
19147         condition reduction result to original scalar type.
19149 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19151         * profile-count.h (enum profile_quality): Fix typos and whitespace
19152         issues.
19154 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19156         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
19157         type for branch probabilities.
19159 2017-06-29  Julian Brown  <julian@codesourcery.com>
19160             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
19162         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
19163         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
19164         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
19165         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
19167 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
19169         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
19170         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
19171         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
19172         CC usage from generic code to here.
19173         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
19174         CC usage into the target macros.
19176 2017-06-29  Maya Rashish  <coypu@sdf.org>
19178         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
19179         objects.
19181 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
19183         * arm/arm-builtins.c: Include profile-count.h
19184         * except.c (sjlj_emit_function_enter): Use
19185         profile_probability::unlikely.
19187 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
19189         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
19190         and tocrel_offset be pointer args rather than implicitly using
19191         static versions.
19192         (legitimate_constant_pool_address_p, rs6000_emit_move,
19193         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
19194         tocrel_offset and use in toc_relative_expr_p call.
19195         (print_operand, print_operand_address): Use static tocrel_base_oac
19196         and tocrel_offset_oac.
19197         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
19198         tocrel_offset_oac.
19200 2017-06-29  Maya Rashish  <coypu@sdf.org>
19202         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
19204 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
19206         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
19207         objects, take into account only the alignment of 'op0' and 'mode1' if
19208         'op0' is a MEM.
19210 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
19212         * ccmp.c (ccmp_tree_comparison_p): New function.
19213         (ccmp_candidate_p): Update to use above function.
19214         (get_compare_parts): New function.
19215         (expand_ccmp_next): Update to use new functions.
19216         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
19217         new functions.
19218         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
19219         take mode as argument.
19220         * ccmp.h (expand_ccmp_expr): Add mode as argument.
19221         * expr.c (expand_expr_real_1): Pass mode as argument.
19223 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
19225         * combine.c (combine_instructions): Print insns to dump_file, together
19226         with their costs.
19228 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
19230         * asan.c (asan_emit_stack_protection): Update.
19231         (create_cond_insert_point): Update.
19232         * auto-profile.c (afdo_propagate_circuit): Update.
19233         * basic-block.h (struct edge_def): Turn probability to
19234         profile_probability.
19235         (EDGE_FREQUENCY): Update.
19236         * bb-reorder.c (find_traces_1_round): Update.
19237         (better_edge_p): Update.
19238         (sanitize_hot_paths): Update.
19239         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
19240         (make_single_succ_edge): Update.
19241         (check_bb_profile): Update.
19242         (dump_edge_info): Update.
19243         (update_bb_profile_for_threading): Update.
19244         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
19245         probabilitycount to 0.
19246         * cfgbuild.c (compute_outgoing_frequencies): Update.
19247         * cfgcleanup.c (try_forward_edges): Update.
19248         (outgoing_edges_match): Update.
19249         (try_crossjump_to_edge): Update.
19250         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
19251         (expand_gimple_tailcall): Update.
19252         (construct_init_block): Use make_single_succ_edge.
19253         (construct_exit_block): Use make_single_succ_edge.
19254         * cfghooks.c (verify_flow_info): Update.
19255         (redirect_edge_succ_nodup): Update.
19256         (split_edge): Update.
19257         (account_profile_record): Update.
19258         * cfgloopanal.c (single_likely_exit): Update.
19259         * cfgloopmanip.c (scale_loop_profile): Update.
19260         (set_zero_probability): Remove.
19261         (duplicate_loop_to_header_edge): Update.
19262         * cfgloopmanip.h (loop_version): Update prototype.
19263         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
19264         (force_nonfallthru_and_redirect): Update.
19265         (update_br_prob_note): Update.
19266         (rtl_verify_edges): Update.
19267         (purge_dead_edges): Update.
19268         (rtl_lv_add_condition_to_bb): Update.
19269         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
19270         * cgraphunit.c (init_lowered_empty_function): Update.
19271         (cgraph_node::expand_thunk): Update.
19272         * cilk-common.c: Include profile-count.h
19273         * dojump.c (inv): Remove.
19274         (jumpifnot): Update.
19275         (jumpifnot_1): Update.
19276         (do_jump_1): Update.
19277         (do_jump): Update.
19278         (do_jump_by_parts_greater_rtx): Update.
19279         (do_compare_rtx_and_jump): Update.
19280         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
19281         do_jump_1. do_compare_rtx_and_jump): Update prototype.
19282         * dwarf2cfi.c: Include profile-count.h
19283         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
19284         (sjlj_emit_dispatch_table): Likewise.
19285         * explow.c: Include profile-count.h
19286         * expmed.c (emit_store_flag_force): Update.
19287         (do_cmp_and_jump): Update.
19288         * expr.c (compare_by_pieces_d::generate): Update.
19289         (compare_by_pieces_d::finish_mode): Update.
19290         (emit_block_move_via_loop): Update.
19291         (store_expr_with_bounds): Update.
19292         (store_constructor): Update.
19293         (expand_expr_real_2): Update.
19294         (expand_expr_real_1): Update.
19295         * expr.h (try_casesi, try_tablejump): Update prototypes.
19296         * gimple-pretty-print.c (dump_probability): Update.
19297         (dump_profile): New.
19298         (dump_gimple_label): Update.
19299         (dump_gimple_bb_header): Update.
19300         * graph.c (draw_cfg_node_succ_edges): Update.
19301         * hsa-gen.c (convert_switch_statements): Update.
19302         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
19303         (find_if_case_1): Update.
19304         (find_if_case_2): Update.
19305         * internal-fn.c (expand_arith_overflow_result_store): Update.
19306         (expand_addsub_overflow): Update.
19307         (expand_neg_overflow): Update.
19308         (expand_mul_overflow): Update.
19309         (expand_vector_ubsan_overflow): Update.
19310         * ipa-cp.c (good_cloning_opportunity_p): Update.
19311         * ipa-split.c (split_function): Use make_single_succ_edge.
19312         * ipa-utils.c (ipa_merge_profiles): Update.
19313         * loop-doloop.c (add_test): Update.
19314         (doloop_modify): Update.
19315         * loop-unroll.c (compare_and_jump_seq): Update.
19316         (unroll_loop_runtime_iterations): Update.
19317         * lra-constraints.c (lra_inheritance): Update.
19318         * lto-streamer-in.c (input_cfg): Update.
19319         * lto-streamer-out.c (output_cfg): Update.
19320         * mcf.c (adjust_cfg_counts): Update.
19321         * modulo-sched.c (sms_schedule): Update.
19322         * omp-expand.c (expand_omp_for_init_counts): Update.
19323         (extract_omp_for_update_vars): Update.
19324         (expand_omp_ordered_sink): Update.
19325         (expand_omp_for_ordered_loops): Update.
19326         (expand_omp_for_generic): Update.
19327         (expand_omp_for_static_nochunk): Update.
19328         (expand_omp_for_static_chunk): Update.
19329         (expand_cilk_for): Update.
19330         (expand_omp_simd): Update.
19331         (expand_omp_taskloop_for_outer): Update.
19332         (expand_omp_taskloop_for_inner): Update.
19333         * omp-simd-clone.c (simd_clone_adjust): Update.
19334         * optabs.c (expand_doubleword_shift): Update.
19335         (expand_abs): Update.
19336         (emit_cmp_and_jump_insn_1): Update.
19337         (expand_compare_and_swap_loop): Update.
19338         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
19339         * predict.c (predictable_edge_p): Update.
19340         (edge_probability_reliable_p): Update.
19341         (set_even_probabilities): Update.
19342         (combine_predictions_for_insn): Update.
19343         (combine_predictions_for_bb): Update.
19344         (propagate_freq): Update.
19345         (estimate_bb_frequencies): Update.
19346         (force_edge_cold): Update.
19347         * profile-count.c (profile_count::dump): Add missing space into dump.
19348         (profile_count::debug): Add newline.
19349         (profile_count::differs_from_p): Explicitly convert to unsigned.
19350         (profile_count::stream_in): Update.
19351         (profile_probability::dump): New member function.
19352         (profile_probability::debug): New member function.
19353         (profile_probability::differs_from_p): New member function.
19354         (profile_probability::differs_lot_from_p): New member function.
19355         (profile_probability::stream_in): New member function.
19356         (profile_probability::stream_out): New member function.
19357         * profile-count.h (profile_count_quality): Rename to ...
19358         (profile_quality): ... this one.
19359         (profile_probability): New.
19360         (profile_count): Update.
19361         * profile.c (compute_branch_probabilities): Update.
19362         * recog.c (peep2_attempt): Update.
19363         * sched-ebb.c (schedule_ebbs): Update.
19364         * sched-rgn.c (find_single_block_region): Update.
19365         (compute_dom_prob_ps): Update.
19366         (schedule_region): Update.
19367         * sel-sched-ir.c (compute_succs_info): Update.
19368         * stmt.c (struct case_node): Update.
19369         (do_jump_if_equal): Update.
19370         (get_outgoing_edge_probs): Update.
19371         (conditional_probability): Update.
19372         (emit_case_dispatch_table): Update.
19373         (expand_case): Update.
19374         (expand_sjlj_dispatch_table): Update.
19375         (emit_case_nodes): Update.
19376         * targhooks.c: Update.
19377         * tracer.c (better_p): Update.
19378         (find_best_successor): Update.
19379         * trans-mem.c (expand_transaction): Update.
19380         * tree-call-cdce.c: Update.
19381         * tree-cfg.c (gimple_split_edge): Upate.
19382         (move_sese_region_to_fn): Upate.
19383         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
19384         * tree-eh.c (lower_resx): Upate.
19385         (cleanup_empty_eh_move_lp): Upate.
19386         * tree-if-conv.c (version_loop_for_if_conversion): Update.
19387         * tree-inline.c (copy_edges_for_bb): Update.
19388         (copy_cfg_body): Update.
19389         * tree-parloops.c (gen_parallel_loop): Update.
19390         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
19391         (gimple_gen_time_profiler): Update.
19392         * tree-ssa-dce.c (remove_dead_stmt): Update.
19393         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
19394         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
19395         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
19396         (unloop_loops): Update.
19397         (try_peel_loop): Update.
19398         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
19399         * tree-ssa-loop-split.c (connect_loops): Update.
19400         (split_loop): Update.
19401         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
19402         (hoist_guard): Update.
19403         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
19404         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
19405         (value_replacement): Update.
19406         * tree-ssa-reassoc.c (branch_fixup): Update.
19407         * tree-ssa-tail-merge.c (replace_block_by): Update.
19408         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
19409         (create_edge_and_update_destination_phis): Update.
19410         (compute_path_counts): Update.
19411         (recompute_probabilities): Update.
19412         (update_joiner_offpath_counts): Update.
19413         (freqs_to_counts_path): Update.
19414         (duplicate_thread_path): Update.
19415         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
19416         (struct switch_conv_info): Update.
19417         (gen_inbound_check): Update.
19418         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
19419         (vect_do_peeling): Update.
19420         (vect_loop_versioning): Update.
19421         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
19422         (optimize_mask_stores): Update.
19423         * ubsan.c (ubsan_expand_null_ifn): Update.
19424         * value-prof.c (gimple_divmod_fixed_value): Update.
19425         (gimple_divmod_fixed_value_transform): Update.
19426         (gimple_mod_pow2): Update.
19427         (gimple_mod_pow2_value_transform): Update.
19428         (gimple_mod_subtract): Update.
19429         (gimple_mod_subtract_transform): Update.
19430         (gimple_ic): Update.
19431         (gimple_stringop_fixed_value): Update.
19432         (gimple_stringops_transform): Update.
19433         * value-prof.h: Update.
19435 2017-06-29  Carl Love  <cel@us.ibm.com>
19437         * config/rs6000/rs6000-c.c: Add support for built-in functions
19438         vector signed int vec_signed (vector float);
19439         vector signed long long vec_signed (vector double);
19440         vector signed int vec_signed2 (vector double, vector double);
19441         vector signed int vec_signede (vector double);
19442         vector signed int vec_signedo (vector double);
19443         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
19444         instruction generator.
19445         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
19446         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
19447         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
19448         Add define_insn.
19449         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
19450         vunsignede_v2df): Add define_expands.
19451         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
19452         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
19453         VEC_UNSIGNEDO): Add definitions.
19454         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
19455         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
19456         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
19457         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
19458         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
19459         * config/rs6000/altivec.h (vec_signed, vec_signed2,
19460         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
19461         vec_unsignede, vec_unsignedo): Add builtin defines.
19462         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
19463         declaration.
19464         * doc/extend.texi: Update the built-in documentation file for the
19465         new built-in functions.
19467 2017-06-29  Richard Biener  <rguenther@suse.de>
19469         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
19470         reduction chains to LOOP_VINFO_REDUCTIONS.
19471         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
19472         SLP reductions after processing reduction chains.
19474 2017-06-29  Nathan Sidwell  <nathan@acm.org>
19476         * builtins.c (fold_builtin_FUNCTION): Use
19477         lang_hooks.decl_printable_name.
19479 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
19481         PR middle-end/81194
19482         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
19483         with only one label.
19484         * stmt.c (expand_case): Assert NCASES is greater than one.
19486 2017-06-29  Richard Biener  <rguenther@suse.de>
19488         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
19489         anything.
19490         (group_case_labels): Likewise.
19491         (find_taken_edge): Push sanity checking on val to workers...
19492         (find_taken_edge_cond_expr): ... here
19493         (find_taken_edge_switch_expr): ... and here, handle cases
19494         with just a default label.
19495         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
19496         (group_case_labels): Likewise.
19497         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
19498         group_case_labels does anything cleanup the CFG again.
19500 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
19502         PR tree-optimization/81196
19503         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
19504         exit condition comparing two IVs.
19506 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
19508         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
19509         profile to the dummy entry at the end of the list of architectures.
19510         * config/arm/arm-cpu-cdata.h: Regenerated.
19512 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19513             Michael Collison <michael.collison@arm.com>
19515         PR target/70119
19516         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
19517         New pattern.
19518         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
19519         (*aarch64_reg_<mode>3_minus_mask): New pattern.
19520         (*aarch64_<optab>_reg_di3_mask2): New pattern.
19521         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
19522         of shift when the shift amount is masked with constant equal to
19523         the size of the mode.
19524         * config/aarch64/predicates.md (subreg_lowpart_operator): New
19525         predicate.
19527 2017-06-29  Martin Liska  <mliska@suse.cz>
19529         * config/i386/i386.opt: Change range from [1,5] to [0,5].
19531 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
19533         PR bootstrap/80565
19534         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
19535         code.
19536         * ipa-inline.h
19537         (edge_growth_cache_entry::edge_growth_cache_entry): New
19538         function.
19539         (reset_edge_growth_cache): Update to use constructor.
19541 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19543         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
19544         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
19545         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
19547 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
19549         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
19550         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
19552 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
19554         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
19555         (*-linux-uclibc*): Add t-uclibc tmake_file.
19556         * config/t-musl: New.
19557         * config/t-uclibc: New.
19559 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
19561         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
19562         context.
19563         (gen_comm_data): Emit architectural setting of arch_prof.
19564         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
19565         profile.
19566         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
19567         (armv8-m.base, armv8-m.main): Likewise.
19568         * arm-protos.h (arm_build_target): Add profile field.
19569         (arch_option): Likewise.
19570         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
19571         the active target.
19572         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
19573         arm_active_target.profile.
19575 2017-06-28  Richard Biener  <rguenther@suse.de>
19577         PR middle-end/81227
19578         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
19579         TYPE_OVERFLOW_WRAPS.
19580         * match.pd (negate_expr_p): Likewise.
19581         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
19582         fold_build2, not fold_binary.
19584 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
19586         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
19587         Convert memory address to Pmode.
19588         (aarch64_print_operand): Assert MEM operands are always Pmode.
19590 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
19592         PR target/79665
19593         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
19594         Remove redundant if.
19595         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
19596         * config/arm/aarch-common-protos.h
19597         (aarch_forward_to_shift_is_not_shifted_re): Remove.
19598         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
19600 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
19602         PR ipa/81238
19603         * multiple_target.c (create_dispatcher_calls): Set the default
19604         clone to be static, not public.
19606 2017-06-28  Richard Biener  <rguenther@suse.de>
19608         * tree-vect-loop.c (vectorizable_reduction): Move special
19609         cond reduction IV var creation ...
19610         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
19611         parameter.  Use STMT_VINFO_VECTYPE.
19612         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
19613         constant_p.
19615 2017-06-28  Martin Liska  <mliska@suse.cz>
19617         PR ipa/81128
19618         * ipa-visibility.c (non_local_p): Handle visibility.
19620 2017-06-28  Martin Liska  <mliska@suse.cz>
19622         PR driver/79659
19623         * common.opt: Add IntegerRange to various options.
19624         * opt-functions.awk (integer_range_info): New function.
19625         * optc-gen.awk: Add integer_range_info to cl_options struct.
19626         * opts-common.c (decode_cmdline_option): Handle
19627         CL_ERR_INT_RANGE_ARG.
19628         (cmdline_handle_error): Likewise.
19629         * opts.c (print_filtered_help): Show valid interval in
19630         when --help is provided.
19631         * opts.h (struct cl_option): Add range_min and range_max fields.
19632         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
19634 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
19636         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
19637         (x * C EQ/NE y * C): New transformation.
19639 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
19641         * genmultilib (combination_space): Accept '+' in option names.
19643 2017-06-28  Martin Liska  <mliska@suse.cz>
19645         PR sanitizer/81224
19646         * asan.c (instrument_derefs): Bail out inner references
19647         that are hard register variables.
19649 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
19651         PR target/81175
19652         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
19653         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
19655 2017-06-28  Richard Biener  <rguenther@suse.de>
19657         * tree-vectorizer.h (vect_get_vec_defs): Remove.
19658         (vect_get_slp_defs): Adjust.
19659         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
19660         out from ...
19661         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
19662         simplify.
19663         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
19664         get_initial_defs_for_reduction instead of vect_get_vec_defs.
19665         (vectorizable_reduction): Adjust.
19666         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
19667         handling.
19668         (vect_get_slp_defs): Likewise.
19669         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
19670         (vectorizable_bswap): Adjust.
19671         (vectorizable_call): Likewise.
19672         (vectorizable_conversion): Likewise.
19673         (vectorizable_assignment): Likewise.
19674         (vectorizable_shift): Likewise.
19675         (vectorizable_operation): Likewise.
19676         (vectorizable_store): Likewise.
19677         (vectorizable_condition): Likewise.
19678         (vectorizable_comparison): Likewise.
19680 2017-06-28  Michael Collison  <michael.collison@arm.com>
19682         PR target/68535
19683         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
19684         set of base_reg
19685         (arm_gen_movmemqi): Removed unused variable 'i'.
19686         Convert 'for' loop into 'while' loop.
19687         (arm_expand_prologue): Remove last unnecessary set of insn.
19688         (thumb_pop): Remove unused variable 'pushed_words'.
19689         (thumb_exit): Remove last unnecessary set of regs_to_pop.
19691 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19693         * config/s390/predicates.md: Use s390_rel_address_ok_p.
19694         * config/s390/s390-protos.h: Add prototype of
19695         s390_rel_address_ok_p.
19696         * config/s390/s390.c (s390_got_symbol): New function.
19697         (s390_rel_address_ok_p): New function.
19698         (legitimize_pic_address): Use s390_rel_address_ok_p.
19699         (s390_load_got): Use s390_got_symbol.
19700         (s390_option_override): Issue error if
19701         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
19702         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
19703         New macro.
19704         * config/s390/s390.opt: New option mpic-data-is-text-relative.
19706 2017-06-27  Andrew Pinski  <apinski@cavium.com>
19708         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
19709         (X * copysign (1.0, X)): New pattern.
19710         (X * copysign (1.0, -X)): New pattern.
19711         (copysign (-1.0, CST)): New pattern.
19713 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
19715         * genmultilib (combination_space): Remove variable.
19716         Validate reuse rules against regular expression for any sequence
19717         of multilib options in any order.
19719 2017-06-27  Michael Collison  <michael.collison@arm.com>
19721         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
19722         call aarch64_split_simd_combine.
19723         * (aarch64_combine_internal<mode>): Delete pattern.
19724         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
19725         Allow register and subreg operands.
19727 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
19729         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
19730         specific need, just fallback on defaults.
19731         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
19733 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
19734             Olivier Hainque  <hainque@adacore.com>
19736         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
19737         map for 64bits.
19738         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
19739         targets. Pick a default if no particular attempt applied.
19740         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
19741         larger contexts.
19743 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
19745         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
19746         (x86_64-wrs-vxworks7): Likewise.
19748 2017-06-27  Marek Polacek  <polacek@redhat.com>
19750         PR sanitizer/81223
19751         * ubsan.c (instrument_null): Check get_base_address's result for null.
19753 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
19755         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
19757 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
19759         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
19760         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
19761         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
19762         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
19763         New function types.
19764         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
19765         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
19766         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
19767         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
19768         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
19769         BUILT_IN_FEUPDATEENV): New builtins.
19770         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
19771         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
19772         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
19773         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
19774         macros.
19775         (builtin_structptr_types): Adjust size.
19776         * tree.c (builtin_structptr_types): Add four entries.
19778 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
19779             Olivier Hainque  <hainque@adacore.com>
19781         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
19782         (TLS_SYM): New local macro, forcing reference to __tls__ on
19783         link command lines for VxWorks 7 RTPs, triggering initialization
19784         of tlsLib.
19785         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
19786         OS features TLS support, true for RTPs on VxWorks 7.
19787         * config/vxworks.c (vxworks_override_options): Setup emutls
19788         accordingly.
19790 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
19792         * predict.c (test_prediction_value_range): Use -1U instead of -1
19793         to avoid narrowing conversion warning.
19794         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
19795         to avoid narrowing conversion warning.
19796         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
19797         -1.
19798         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
19800 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
19802         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
19803         64bit configurations.
19804         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
19805         (SIZE_TYPE): Likewise.
19806         * config/vxworks.c (vxworks_emutls_var_fields): Use
19807         long_unsigned_type_node instead of unsigned_type_node as the offset
19808         field type, which is "pointer" mode in emutls.c.
19810 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
19812         PR sanitizer/81209
19813         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
19815         PR middle-end/81207
19816         * gimple-fold.c (replace_call_with_call_and_fold): Handle
19817         gimple_vuse copying separately from gimple_vdef copying.
19819 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19821         * value-prof.c (free_hist): Remove call to memset and the enclosing if
19822         condition.
19824 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
19825             Olivier Hainque  <hainque@adacore.com>
19827         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
19828         for all vxworks7 targets.
19829         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
19830         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
19831         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
19832         variations for VX6/VX7 and 32/64bits later on in ...
19833         (VXWORKS_LIB_SPEC): Leverage new macros.
19834         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
19835         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
19837 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
19839         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
19840         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
19842 2017-06-26  Carl Love  <cel@us.ibm.com>
19844         * config/rs6000/rs6000-c.c: Add support for built-in functions
19845         vector bool char vec_reve (vector bool char);
19846         vector signed char vec_reve (vector signed char);
19847         vector unsigned char vec_reve (vector unsigned char);
19848         vector bool int vec_reve (vector bool int);
19849         vector signed int vec_reve (vector signed int);
19850         vector unsigned int vec_reve (vector unsigned int);
19851         vector bool long long vec_reve (vector bool long long);
19852         vector signed long long vec_reve (vector signed long long);
19853         vector unsigned long long vec_reve (vector unsigned long long);
19854         vector bool short vec_reve (vector bool short);
19855         vector signed short vec_reve (vector signed short);
19856         vector double vec_reve (vector double);
19857         vector float vec_reve (vector float);
19858         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
19859         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
19860         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
19861         (altivec_vreve): New pattern.
19862         * config/rs6000/altivec.h (vec_reve): New define.
19863         * doc/extend.texi (vec_rev): Update the built-in documentation file
19864         for the new built-in functions.
19866 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19868         PR tree-optimization/71815
19869         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
19870         function.
19871         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
19872         has_single_use.
19873         (slsr_process_phi): Likewise.
19874         (replace_uncond_cands_and_profitable_phis): Don't replace a
19875         multiply candidate with a stride of 1 (copy or cast).
19876         (phi_incr_cost): Call uses_consumed_by_stmt rather than
19877         has_single_use.
19878         (lowest_cost_path): Likewise.
19879         (total_savings): Likewise.
19881 2017-06-26  Richard Biener  <rguenther@suse.de>
19883         PR target/81175
19884         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
19885         Use def_builtin_pure for all gather builtins.
19887 2017-06-26  Richard Biener  <rguenther@suse.de>
19889         PR tree-optimization/81203
19890         * tree-tailcall.c (find_tail_calls): Do not move stmts into
19891         non-dominating BBs.
19893 2017-06-26  Marek Polacek  <polacek@redhat.com>
19895         PR c/80116
19896         * doc/invoke.texi: Document -Wmultistatement-macros.
19898 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
19900         * doc/sourcebuild.texi (ARM-specific attributes): Document new
19901         arm_neon_ok_no_float_abi effective target.
19903 2017-06-26  Richard Biener  <rguenther@suse.de>
19905         PR tree-optimization/80928
19906         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
19907         (copy_bbs): Set BB_DUPLICATED flag early.
19908         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
19909         marked blocks.
19910         (execute_on_shrinking_pred): Likewise.
19911         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
19912         BB_DUPLICATED blocks.
19913         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
19914         iterate over all PHIs considering removal of *gsi.
19916 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
19918         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
19919         qdf24xx.
19921 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
19923         * config/rs6000/rs6000-string.c: (expand_block_clear,
19924         do_load_for_compare, select_block_compare_mode,
19925         compute_current_alignment, expand_block_compare,
19926         expand_strncmp_align_check, expand_strn_compare,
19927         expand_block_move, rs6000_output_load_multiple)
19928         Move functions related to string/block move/compare
19929         to a separate file.
19930         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
19931         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
19932         for this function which is now used in two files.
19933         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
19934         * config.gcc: Add rs6000-string.o to extra_objs for
19935         targets powerpc*-*-* and rs6000*-*-*.
19937 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
19939         PR target/80510
19940         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
19941         32-bit, since indexed is not valid for DImode.
19942         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
19943         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
19944         (define_peephole2 for Altivec d-form load): Add 32-bit support.
19945         (define_peephole2 for Altivec d-form store): Likewise.
19947         PR ipa/81185
19948         * multiple_target.c (create_dispatcher_calls): Only create the
19949         dispatcher call if the function is the default clone of a
19950         versioned function.
19952 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
19954         PR middle-end/80902
19955         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
19956         a call, force the call to not be a tail call.
19958 2017-06-23  Jeff Law  <law@redhat.com>
19960         * doc/contrib.texi: Add entry for Steven Pemberton's work on
19961         enquire.
19963 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
19965         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
19966         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
19967         handling for early expansion of vector shifts (sl,sr,sra,rl).
19968         (builtin_function_type): Add vector shift right instructions
19969         to the unsigned argument list.
19971 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19973         rtl-optimizatoin/79286
19974         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
19975         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
19976         trap.  PIC register plus a const unspec without offset can never trap.
19978 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
19980         * tree.h (builtin_structptr_type): New type.
19981         (builtin_structptr_types): Declare new array.
19982         * tree.c (builtin_structptr_types): New array.
19983         (free_lang_data, build_common_tree_nodes): Use it.
19985 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
19987         PR c++/81187
19988         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
19989         -Wnoexcept.
19991 2017-06-22  Matt Turner  <mattst88@gmail.com>
19993         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
19994         Lake models to skylake case.  Assume skylake for unknown
19995         models with clflushopt.
19997 2017-06-22  Jeff Law  <law@redhat.com>
19999         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
20000         frame sizes that do not satisfy aarch64_uimm12_shift.
20002 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
20004         * profile-count.h (apply_probability,
20005         apply_scale, probability_in): Fix checks for zero.
20007 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20009         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
20010         * doc/cppdiropts.texi (-I @var{dir}): Document it.
20012 2016-06-22  Richard Biener  <rguenther@suse.de>
20014         * tree-vect-loop.c (vect_model_reduction_cost): Handle
20015         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
20016         REDUC_MAX_EXPR support.
20017         (vectorizable_reduction): Likewise.
20018         (vect_create_epilog_for_reduction): Likewise.
20020 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
20022         * match.pd (A / (1 << B) -> A >> B): New.
20023         * generic-match-head.c: Include optabs-tree.h.
20024         * gimple-match-head.c: Likewise.
20025         * optabs-tree.h (target_supports_op_p): New.
20026         * optabs-tree.c (target_supports_op_p): New.
20028 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20030         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
20031         $gcc_cv_ld --help output.
20032         (gcc_cv_ld_demangle): Likewise.
20033         (gcc_cv_ld_eh_frame_hdr): Likewise.
20034         (gcc_cv_ld_pie): Likewise.
20035         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
20036         (gcc_cv_ld_buildid): Likewise.
20037         (gcc_cv_ld_sysroot): Likewise.
20038         (ld_bndplt_support): Likewise.
20039         (ld_pushpopstate_support): Likewise.
20040         * configure: Regenerate.
20041         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
20043 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
20045         PR target/81151
20046         * config/i386/sse.md (round<mode>2): Renumber match_dup and
20047         operands indexes to avoid gap between operands and match_dups.
20049 2017-06-21  Andrew Pinski  <apinski@cavium.com>
20051         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
20052         Increment Arith_shift and Arith_shift_reg by 1.
20053         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
20054         New tuning flag.
20055         * config/aarch64/aarch64.c (thunderx_tunings): Enable
20056         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
20057         (aarch64_strip_extend): Add new argument and test for it.
20058         (aarch64_cheap_mult_shift_p): New function.
20059         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
20060         add a cost if it is true.
20061         Update calls to aarch64_strip_extend.
20062         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
20064 2017-06-21  Andrew Pinski  <apinski@cavium.com>
20066         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
20067         tunings.
20068         (thunderxt88): Likewise.
20069         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
20070         (thunderx_prefetch_tune): New variable.
20071         (thunderx2t99_prefetch_tune): Update for the correct values.
20072         (thunderxt88_tunings): New variable.
20073         (thunderx_tunings): Use thunderx_prefetch_tune instead of
20074         generic_prefetch_tune.
20075         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
20077 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20079         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
20080         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
20081         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
20082         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
20083         (aarch64_atomic_cas<mode>, GPI): Likewise.
20085 2017-06-21  Martin Liska  <mliska@suse.cz>
20087         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
20088         statements on cold and hot labels.
20089         * predict.c (tree_estimate_probability_bb): Remove the
20090         prediction from this place.
20092 2017-06-21  Martin Liska  <mliska@suse.cz>
20094         PR tree-optimization/79489
20095         * gimplify.c (maybe_add_early_return_predict_stmt): New
20096         function.
20097         (gimplify_return_expr): Call the function.
20098         * predict.c (tree_estimate_probability_bb): Remove handling
20099         of early return.
20100         * predict.def: Update comment about early return predictor.
20101         * gimple-predict.h (is_gimple_predict): New function.
20102         * predict.def: Change default value of early return to 66.
20103         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
20104         statements.
20105         * passes.def: Put pass_strip_predict_hints to the beginning of
20106         IPA passes.
20108 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
20110         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
20111         FUNCTION_DECL declarations.
20112         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
20113         declarations.
20114         (dwaf2out_decl): Likewise.
20115         * godump.c (go_early_global_decl): Skip call to the real debug hook
20116         for FUNCTION_DECL declarations.
20117         * passes.c (rest_of_decl_compilation): Skip call to the
20118         early_global_decl debug hook for FUNCTION_DECL declarations, unless
20119         -fdump-go-spec is passed.
20121 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
20123         * config/i386/i386.c (struct builtin_isa): New field pure_p.
20124         Reorder for compactness.
20125         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
20126         (def_builtin_pure, def_builtin_pure2): New functions.
20127         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
20129 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
20131         * match.pd (nop_convert): New predicate.
20132         ((A +- CST1) +- CST2): Allow some NOP conversions.
20134 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
20136         PR c++/81130
20137         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
20138         with ctors/dtors if GOVD_SHARED is set.
20140 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
20142         * config/aarch64/aarch64.md (movti_aarch64):
20143         Emit mov rather than orr.
20144         (movtf_aarch64): Likewise.
20145         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
20146         Emit mov rather than orr.
20148 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
20150         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
20151         Swap alternatives, make integer dup more expensive.
20153 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
20155         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
20156         Return true for non-tls symbols.
20158 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
20160         * config/aarch64/aarch64-cores.def (cortex-a55): New.
20161         (cortex-a75): Likewise.
20162         (cortex-a75.cortex-a55): Likewise.
20163         * config/aarch64/aarch64-tune.md: Regenerate.
20164         * doc/invoke.texi (-mtune): Document new values for -mtune.
20166 2017-06-21  Tom de Vries  <tom@codesourcery.com>
20168         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
20169         stack_size feature.
20170         (Effective-Target Keywords, Other attributes): Suggest using
20171         dg-add-options stack_size feature to get stack limit in stack_size
20172         effective target documentation.
20174 2017-06-21  Julian Brown  <julian@codesourcery.com>
20175             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
20177         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
20178         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
20179         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
20180         reservation.
20181         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
20182         attribute type list for neon_multiply.
20183         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
20184         attribute type list for neon_multiply.
20185         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
20186         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
20187         attribute type list for neon_multiply.
20188         * config/arm/types.md (crypto_pmull): Add.
20189         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
20190         attribute type list.
20192 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
20194         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
20195         arm1176jzf-s.
20197 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
20199         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
20200         to make sure not to dereference a NULL cost_classes_ptr pointer.
20202 2017-06-20  Carl Love  <cel@us.ibm.com>
20204         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20205         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
20206         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
20207         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
20208         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
20209         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
20210         VMULOSW): New enum "unspec" values.
20211         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
20212         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
20213         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
20214         altivec_vmulosw): New patterns.
20215         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
20216         VMULOSW): Add definitions.
20218 2017-06-20  Julia Koval  <julia.koval@intel.com>
20220         * config/i386/i386.c: Fix rounding expand for new pattern.
20221         * config/i386/subst.md: Fix pattern (parallel -> unspec).
20223 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
20225         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
20226         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
20228 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
20230         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
20231         feature string.
20233 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
20235         * config/aarch64/aarch64-cores.def: Rearrange to sort by
20236         architecture, then by implementer ID.
20237         * config/aarch64/aarch64-tune.md: Regenerate.
20239 2017-06-20  Richard Biener  <rguenther@suse.de>
20241         PR middle-end/81097
20242         * fold-const.c (split_tree): Fold to type before negating.
20244 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
20246         * diagnostic-show-locus.c
20247         (selftest::test_fixit_deletion_affecting_newline): New function.
20248         (selftest::diagnostic_show_locus_c_tests): Call it.
20250 2017-06-20  Andreas Schwab  <schwab@suse.de>
20252         PR target/80970
20253         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
20254         instead of "+d".
20256 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
20258         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
20259         __ARM_FEATURE_COPROC according to support.
20261 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
20263         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
20264         Rewritten to avoid overflow for > 32-bit pointers.
20266         PR sanitizer/81125
20267         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
20268         by removing enum keyword.
20269         (ubsan_type_descriptor): Likewise.  Formatting fix.
20271         PR target/81121
20272         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
20273         splitter): Require TARGET_SSE2 in the condition.
20275 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
20277         PR target/79799
20278         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
20279         for doing vector set of SFmode on ISA 3.0.
20280         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
20281         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
20282         element.
20283         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
20284         SFmode value into a V4SF variable that was extracted from another
20285         V4SF variable without converting the element to double precision
20286         and back to single precision vector format.
20287         (vsx_insert_extract_v4sf_p9_2): Likewise.
20289 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
20291         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
20292         in UWHI to avoid undefined overflow.
20294         PR sanitizer/81125
20295         * ubsan.h (enum ubsan_encode_value_phase): New.
20296         (ubsan_encode_value): Change second argument to
20297         enum ubsan_encode_value_phase with default value of
20298         UBSAN_ENCODE_VALUE_GENERIC.
20299         * ubsan.c (ubsan_encode_value): Change second argument to
20300         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
20301         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
20302         create_tmp_var_raw instead of create_tmp_var and use a
20303         TARGET_EXPR.
20304         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
20305         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
20306         ubsan_encode_value callers.
20308         PR sanitizer/81111
20309         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
20310         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
20311         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
20313 2017-06-19  Richard Biener  <rguenther@suse.de>
20315         PR middle-end/81118
20316         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
20317         estimates if we changed anything.
20319 2017-06-19  Richard Biener  <rguenther@suse.de>
20321         PR tree-optimization/80887
20322         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
20323         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
20324         simplified lookups, then reset mprts_hook.
20325         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
20326         simplifying.
20327         (try_to_simplify): Likewise.
20329 2017-06-19  Martin Liska  <mliska@suse.cz>
20331         PR sanitizer/80879
20332         * gimplify.c (gimplify_switch_expr):
20333         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
20335 2017-06-19  Martin Liska  <mliska@suse.cz>
20337         * doc/install.texi: Document that PGO runs in 4 stages.
20339 2017-06-19  Martin Liska  <mliska@suse.cz>
20341         PR ipa/80732
20342         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
20343         to dispatcher function name.
20344         * multiple_target.c (replace_function_decl): New function.
20345         (create_dispatcher_calls): Redirect both edges and references.
20347 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
20349         * profile-count.c (profile_count::dump): Dump quality.
20350         (profile_count::differs_from_p): Update for unsigned val.
20351         * profile-count.h (profile_count_quality): New enum.
20352         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
20354 2017-06-19  Richard Biener  <rguenther@suse.de>
20356         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
20357         struct function as arg.
20358         (estimate_numbers_of_iterations): Export overload with loop arg.
20359         (free_numbers_of_iterations_estimates_loop): Use an overload of
20360         free_numbers_of_iterations_estimates instead.
20361         * tree-cfg.c (remove_bb): Adjust.
20362         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
20363         * tree-parloops.c (gen_parallel_loop): Likewise.
20364         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
20365         Likewise.
20366         (tree_unroll_loops_completely): Likewise.
20367         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
20368         Use an overload instead and export.
20369         (estimated_loop_iterations): Adjust.
20370         (max_loop_iterations): Likewise.
20371         (likely_max_loop_iterations): Likewise.
20372         (estimate_numbers_of_iterations): Take struct function as arg
20373         and adjust.
20374         (loop_exits_before_overflow): Adjust.
20375         (free_numbers_of_iterations_estimates_loop): Use an overload.
20376         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
20377         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
20379 2017-06-19  Richard Biener  <rguenther@suse.de>
20381         PR ipa/81112
20382         * ipa-prop.c (find_constructor_constant_at_offset): Handle
20383         RANGE_EXPR conservatively.
20385 2017-06-16  Carl Love  <cel@us.ibm.com>
20387         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20388         definitions for vec_float, vec_float2, vec_floato,
20389         vec_floate built-ins.
20390         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
20391         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
20392         floate.
20393         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
20394         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
20395         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
20396         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
20397         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
20398         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
20399         vec_floato): Add builtin defines.
20400         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
20401         Update the built-in documentation file for the new built-in
20402         functions.
20404 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20406         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
20407         (mthumb): Mark as the negative of -marm.
20409 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20411         * doc/invoke.texi (ARM Options, -mcpu): Document supported
20412         extension options.
20413         (ARM Options, -mtune): Document that this accepts the same
20414         extension options as -mcpu.
20415         (ARM Options, -mfpu): Document addition of -mfpu=auto.
20417 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20419         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
20420         permitted extensions.
20422 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20424         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
20425         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
20426         (armv8-m.main): Add option +nodsp.
20427         * config/arm/arm-cpu-cdata.h: Regenerated.
20429 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20431         * config/arm/t-fuchsia: New file.
20432         * config.gcc (arm*-*-fuchsia*): Use it.
20434 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20436         * config/arm/t-symbian: Rewrite for new option infrastructure.
20438 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20440         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
20441         (MULTILIB_REQUIRED): Likewise.
20443 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20445         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
20446         (MULTILIB_RESUE): Likewise.
20447         (MULTILIB_MATCHES): Likewise.
20448         (MULTLIB_REQUIRED): Likewise.
20450 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20452         * config/arm/t-rtems: Rewrite for new option framework.
20454 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20456         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
20457         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
20458         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
20459         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
20460         * config/arm/t-multilib: ... here.
20461         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
20462         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
20463         armv7-a and armv8*-a when A-profile libraries have not been built.
20464         * config/arm/t-rmprofile: Rewrite.
20466 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20468         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
20469         with a backslash.  Remove the backslash after substituting unescaped
20470         periods.
20471         * doc/fragments.texi (MULTILIB_REUSE): Document it.
20473 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20475         * config.gcc: (arm*-*-*): When building a-profile libraries, force
20476         the driver to pass through the default setting of -mfloat-abi.
20477         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
20478         rather than NULL.
20479         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
20480         (all_feat_combs): New rule.
20481         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
20482         default libraries.
20483         * config/arm/t-aprofile: Rewrite.
20485 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20487         * config/arm/arm.h (FPUTYPE_AUTO): Define.
20488         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
20489         fpu is not specified by the user/command-line.
20490         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
20491         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
20492         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
20493         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
20494         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
20495         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
20497 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20499         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
20500         * config/arm/t-arm-elf: Rewritten.
20502 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20504         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
20505         have some floating-point instructions.
20506         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
20507         (TARGET_MAYBE_HARD_FLOAT): New macro.
20508         * config/arm/arm-builtins.c (arm_init_builtins): Use
20509         TARGET_MAYBE_HARD_FLOAT.
20510         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
20512 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20514         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
20515         (configargs.h): Include it.
20516         (arm_print_hint_for_fpu_option): New function.
20517         (arm_parse_fpu_option): New function.
20518         (candidate_extension): New class.
20519         (arm_canon_for_multilib): New function.
20520         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
20521         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
20522         (ARCH_CANONICAL_SPECS): New macro.
20523         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
20525 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20527         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
20528         are set after handling multilib fragments.  Set target_cpu_default2
20529         from with_cpu.
20531 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20533         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
20534         cpu name.
20535         (arm*-*-*): Set target_cpu_default2 to a quoted string.
20536         * config/arm/parsecpu.awk (check_cpu): Validate any extension
20537         options.
20538         (check_arch): Likewise.
20539         * config/arm/arm.c (arm_configure_build_target): Handle
20540         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
20541         options in the default.
20543 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20545         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
20546         when an option is an alias of another.
20547         * config/arm/parsecpu.awk (optalias): New parser token.
20548         (gen_comm_data): Mark non-alias options as such.  Emit entries
20549         for extension aliases.
20550         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
20551         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
20552         (armv6kz, armv6zk, armv6t2): Likewise.
20553         (armv7): Make vfpv3-d16 an alias.
20554         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
20555         canonical order.
20556         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
20557         Sort in canonical order.
20558         (armv8-a): Sort in canonical order.
20559         (armv8.1-a, armv8.2-a):  Likewise.
20560         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
20561         canonical order.
20562         (cortex-a9): Sort in canonical order.
20563         * config/arm/arm.c (selftests.h): Include it.
20564         (arm_test_cpu_arch_data): New function.
20565         (arm_run_self_tests): New function.
20566         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
20567         (targetm): Move declaration to the end of the file.
20568         * arm-cpu-cdata.h: Regenerated.
20570 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20572         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
20573         call to target_mode_check describing the type of option passed.
20574         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
20575         (arm_target_thumb_only): Use arm_parse_arch_option_name or
20576         arm_parse_cpu_option_name to match parameters against list of
20577         available targets.
20578         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
20579         arm_arch_core_flags data structure.
20580         * config/arm/arm-cpu_cdata.h: Regenerated.
20582 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20584         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
20585         config/arm/arm.c.
20586         (arm_print_hint_for_cpu_option): Likewise.
20587         (arm_print_hint_for_arch_option): Likewise.
20588         (arm_parse_cpu_option_name): Likewise.
20589         (arm_parse_arch_option_name): Likewise.
20590         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
20591         of entries in the all_fpus list.
20592         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
20593         (arm_parse_cpu_option_name): Declare.
20594         (arm_parse_arch_option_name): Declare.
20595         (arm_parse_option_features): Declare.
20596         (arm_intialize_isa): Declare.
20597         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
20598         data tables to ...
20599         (gen_comm_data): ... here.  Make definitions non-static.
20600         * config/arm/arm-cpu-data.h: Regenerated.
20601         * config/arm/arm-cpu-cdata.h: Regenerated.
20603 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20605         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
20606         (cpu_arch_extension): New structure.
20607         (cpu_arch_option, arch_option, cpu_option): New structures.
20608         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
20609         architecture types.
20610         (gen_data): Generate new format data tables.
20611         * config/arm/arm.c (cpu_tune): New structure.
20612         (cpu_option, processors): Delete.
20613         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
20614         (arm_print_hint_for_cpu_option): ... this and ...
20615         (arm_print_hint_for_arch_option): ... this.
20616         (arm_parse_arch_cpu_name): Delete.  Replace with ...
20617         (arm_parse_cpu_option_name): ... this and ...
20618         (arm_parse_arch_option_name): ... this.
20619         (arm_unrecognized_feature): Change type of target parameter to
20620         cpu_arch_option.
20621         (arm_parse_arch_cpu_features): Delete.  Replace with ...
20622         (arm_parse_option_features): ... this.
20623         (arm_configure_build_target): Rework to use new configuration data
20624         tables.
20625         (arm_print_tune_info): Rework for new configuration data tables.
20626         * config/arm/arm-cpu-data.h: Regenerated.
20627         * config/arm/arm-cpu.h: Regenerated.
20629 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20631         * Makefile.in (OBJS): Move sbitmap.o from here ...
20632         (OBJS-libcommon): ... to here.
20634 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20636         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
20637         (ISA_ALL_CRYPTO): New macro.
20638         (ISA_ALL_SIMD): New macro
20639         (ISA_ALL_FP): New macro.
20640         * config/arm/arm.c (fpu_bitlist): Update initializer.
20641         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
20642         simd or fp.
20643         (arm9e): Add fpu.  Add option for nofp
20644         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
20645         (arm926ej-s, arm1026ej-s): Likewise.
20646         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
20647         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
20648         neon-fp16, neon-vfpv4, nofp and nosimd.
20649         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
20650         (cortex-a8): Add fpu.  Add option for nofp.
20651         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
20652         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
20653         (cortex-r4f): Add fpu.
20654         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
20655         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
20656         for nofp.
20657         (cortex-r8): Likewise.
20658         (cortex-m4): Add fpu.  Add option for nofp.
20659         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
20660         (cortex-a17.cortex-a7): Likewise.
20661         (cortex-a32): Add fpu.  Add options for crypto and nofp.
20662         (cortex-a35, cortex-a53): Likewise.
20663         (cortex-a57): Add fpu.  Add option for crypto.
20664         (cortex-a72, cortex-a73): Likewise.
20665         (exynos-m1): Likewise.
20666         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
20667         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
20668         (cortex-m33): Add fpu.  Add option for nofp.
20669         * config/arm/arm-cpu-cdata.h: Regenerated
20670         * config/arm/arm-cpu-data.h: Regenerated.
20672 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20674         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
20675         (armv5te, armv5tej): Likewise.
20676         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
20677         (armv7): Add options fp and vfpv3-d16.
20678         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
20679         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
20680         nofp and nosimd.
20681         (armv7ve): Likewise.
20682         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
20683         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
20684         (armv8-a): Add nocrypto option.
20685         (armv8.1-a, armv8.2-a): Likewise.
20686         (armv8-m.main): add options fp, fp.dp and nofp.
20688 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20690         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
20691         nofp.
20692         (armv8-a+crc): Delete.
20693         (armv8.1-a): Add options simd, crypto and nofp.
20694         (armv8.2-a): Add options fp16, simd, crypto and nofp.
20695         (armv8.2-a+fp16): Delete.
20696         (armv8-m.main): Add option dsp.
20697         (armv8-m.main+dsp): Delete.
20698         (cortex-a8): Add fpu.  Add nofp option.
20699         (cortex-a9): Add fpu.  Add nofp and nosimd options.
20700         * config/arm/parsecpu.awk (gen_data): Generate option tables and
20701         link to main cpu and architecture data structures.
20702         (gen_comm_data): Only put isa attributes from the main architecture
20703         in common tables.
20704         (option): New statement for architecture and CPU entries.
20705         * arm.c (struct cpu_option): New structure.
20706         (struct processors): Add entry for options.
20707         (arm_unrecognized_feature): New function.
20708         (arm_parse_arch_cpu_name): Ignore any characters after the first
20709         '+' character.
20710         (arm_parse_arch_cpu_feature): New function.
20711         (arm_configure_build_target): Separate out any CPU and architecture
20712         features and parse separately.  Don't error out if -mfpu=auto is
20713         used with only an architecture string.
20714         (arm_print_asm_arch_directives): New function.
20715         (arm_file_start): Call it.
20716         * config/arm/arm-cpu-cdata.h: Regenerated.
20717         * config/arm/arm-cpu-data.h: Likewise.
20718         * config/arm/arm-tables.opt: Likewise.
20720 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20722         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
20723         assembler when it is not -mfpu=auto.
20725 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20727         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
20728         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
20729         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
20730         (ASM_CPU_SPEC): Rewrite.
20731         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
20732         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
20733         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
20734         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
20735         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
20736         copied string is NUL-terminated.  Also strip any characters prefixed
20737         by '+'.
20738         (arm_rewrite_selected_arch): New function.
20739         (arm_rewrite_march): New function.
20741 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
20743         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
20744         (x_arm_cpu_string, x_arm_tune_string): Likewise.
20745         (march, mcpu, mtune): Convert to string-based options.
20746         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
20747         (arm_parse_arch_cpu_name): New function.
20748         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
20749         identify selected architecture or CPU.
20750         (arm_option_save): New function.
20751         (TARGET_OPTION_SAVE): Redefine.
20752         (arm_option_restore): Restore string options.
20753         (arm_option_print): Print string options.
20755 2017-06-16  Martin Sebor  <msebor@redhat.com>
20757         PR tree-optimization/80933
20758         PR tree-optimization/80934
20759         * builtins.c (fold_builtin_3): Do not handle bcmp here.
20760         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
20761         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
20762         (gimple_fold_builtin): Call them.
20764 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
20766         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
20767         as unlikely; update profile.
20769 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
20771         * predict.c (force_edge_cold): Handle declaring edges impossible
20772         more aggresively.
20774 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
20776         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
20777         profile.
20778         (try_unroll_loop_completely): Fix reporting.
20780 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
20782         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
20784 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
20786         PR target/71778
20787         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
20788         if given a non-constant argument for an intrinsic which requires a
20789         constant.
20791 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
20793         * profile.c (compare_freqs): New function.
20794         (branch_prob): Sort edge list.
20795         (find_spanning_tree): Assume that the list is priority sorted.
20797 2017-06-16  Richard Biener  <rguenther@suse.de>
20799         PR tree-optimization/81090
20800         * passes.def (pass_record_bounds): Remove.
20801         * tree-pass.h (make_pass_record_bounds): Likewise.
20802         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
20803         make_pass_record_bounds): Likewise.
20804         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
20805         not free niter estimates at the beginning but at the end.
20806         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
20808 2017-06-16  Richard Biener  <rguenther@suse.de>
20810         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
20811         initializer to workaround ICE in host GCC 4.8.
20813 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
20815         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
20816         counts.
20817         (clone_inlined_nodes): Update.
20819 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20821         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
20822         prefetch settings, and enable prefetching by default at -O3.
20824 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20826         * config/aarch64/aarch64.c (aarch64_override_options_internal):
20827         Set flag_prefetch_loop_arrays according to tuning data.
20829 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
20831         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
20832         New tune structure.
20833         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
20834         [Unrelated to main purpose of the patch] Place the pointer field last
20835         to enable type checking errors when tune structure are wrongly merged.
20836         * config/aarch64/aarch64.c (generic_prefetch_tune,)
20837         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
20838         (thunderx2t99_prefetch_tune): New tune constants.
20839         (tune_params *_tunings): Update all tunings (no functional change).
20840         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
20841         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
20842         from tunings structures.
20844 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
20846         PR sanitizer/81094
20847         * ubsan.c (instrument_null): Add T argument, use it instead
20848         of computing it based on IS_LHS.
20849         (instrument_object_size): Likewise.
20850         (pass_ubsan::execute): Adjust instrument_null and
20851         instrument_object_size callers to pass gimple_get_lhs or
20852         gimple_assign_rhs1 result to it.  Use instrument_null instead of
20853         calling get_base_address and instrument_mem_ref.  Handle
20854         aggregate call arguments for object-size sanitization.
20856 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
20858         PR tree-optimization/81089
20859         * tree-vrp.c (is_masked_range_test): Validate operands of
20860         subexpression.
20862 2017-06-15  Martin Sebor  <msebor@redhat.com>
20864         PR c++/80560
20865         * dumpfile.c (dump_register): Avoid calling memset to initialize
20866         a class with a default ctor.
20867         * gcc.c (struct compiler): Remove const qualification.
20868         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
20869         * hash-table.h: Ditto.
20870         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
20871           assignment.
20872         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
20873         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
20874         default ctor.
20875         * params.h (struct param_info): Make struct members non-const.
20876         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
20877         with default initialization.
20878         * vec.h (vec_copy_construct, vec_default_construct): New helper
20879         functions.
20880         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
20881         with vec_copy_construct.
20882         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
20883         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
20884         * doc/invoke.texi (-Wclass-memaccess): Document.
20886 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20888         * emit-rtl.h (is_leaf): Update comment about local
20889         register allocator.
20891 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
20893         PR target/78818
20894         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
20895         for a variable to have a section before checking if the section has a
20896         name.
20897         Set section to.persistent if persistent attribute is set.
20898         Warn if .persistent attribute is used on an automatic variable.
20900 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
20902         PR rtl-optimization/80474
20903         * reorg.c (update_block): Do not ignore instructions in a delay slot.
20905 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
20907         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
20908         of REGNO.
20910 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
20912         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
20913         (casesi): Emit bounds checking as RTL.
20914         (casesi_internal_mips16_<mode>): Remove bounds checking.
20916 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
20918         * config/xtensa/xtensa.c (xtensa_option_override): Append
20919         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
20920         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
20921          xtensa_doloop_hooks): Define unconditionally.
20922         (xtensa_reorg_loops): Only call reorg_loops in the presence of
20923         TARGET_LOOPS.
20924         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
20925         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
20926         for it in xtensa_option_override.
20927         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
20928          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
20930 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
20932         * doc/cppopts.texi: Document '-' special value to -MF.
20934 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
20936         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
20937         (cortex_a53_fconst): Likewise.
20938         (cortex_a53_fpmul): Likewise.
20939         (cortex_a53_f_load_64): Likewise.
20940         (cortex_a53_f_load_many): Likewise.
20941         (cortex_a53_advsimd_alu): Likewise.
20942         (cortex_a53_advsimd_alu_q): Likewise.
20943         (cortex_a53_advsimd_mul): Likewise.
20944         (cortex_a53_advsimd_mul_q): Likewise.
20945         (fpmac bypass): Add new bypass for fpmac-fpmac case.
20946         Add missing fmul, r2f_cvt and fconst cases.
20948 2017-06-14  Richard Biener  <rguenther@suse.de>
20950         PR middle-end/81088
20951         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
20952         literal constants.
20953         (fold_binary_loc): When associating do not treat pre-existing
20954         TREE_OVERFLOW on literal constants as a reason to allow
20955         TREE_OVERFLOW on associated literal constants.
20957 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
20959         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
20960         (MASK_FEATURES): New macro.
20961         * config/sparc/sparc.c (sparc_option_override): Remove the special
20962         handling of -mfpu and generalize it to all MASK_FEATURES switches.
20964 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
20966         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
20967         a division of 0 if non-call exceptions are enabled.
20969 2017-06-14  Andrew Pinski  <apinski@cavium.com>
20970             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
20972         PR target/71663
20973         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
20974         Improve vector initialization code gen for only variable case.
20976 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
20978         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
20980 2017-06-14  Richard Biener  <rguenther@suse.de>
20982         PR tree-optimization/81083
20983         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
20984         as values.
20986 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
20988         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
20989         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
20990         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
20991         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
20992         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
20993         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
20995 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
20997         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
20998         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
21000 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
21002         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
21004 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
21006         * config/rs6000/t-rtems: Don't handle SPE.
21008 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
21010         * config/rs6000/t-linux: Don't handle SPE.
21012 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
21014         * config/rs6000/eabispe.h: Delete file.
21016 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
21018         * config/rs6000/t-spe: Delete file.
21020 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
21022         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
21023         (rs6000_legitimate_offset_address_p): Return false for anything in
21024         V2SImode or V2SFmode.
21026 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
21028         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
21029         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
21030         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
21031         and V4HImode.
21032         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
21033         (rs6000_legitimate_offset_address_p): Ditto.
21034         (rs6000_emit_move): Ditto.
21035         (rs6000_init_builtins): Remove V4HI_type_node.
21037 2017-06-13  Martin Liska  <mliska@suse.cz>
21039         PR sanitize/78204
21040         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
21041         (gate_asan): Likewise.
21042         * asan.h (asan_no_sanitize_address_p): Remove the function.
21043         (sanitize_flags_p): New function.
21044         * builtins.def: Fix coding style.
21045         * common.opt: Use renamed enum value.
21046         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
21047         * doc/extend.texi: Document no_sanitize attribute.
21048         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
21049         to SANITIZE_UNDEFINED_NONDEFAULT.
21050         * gcc.c (sanitize_spec_function): Use the renamed enum value.
21051         * gimple-fold.c (optimize_atomic_compare_exchange_p):
21052         Use sanitize_flags_p.
21053         * gimplify.c (gimplify_function_tree): Likewise.
21054         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
21055         * opts.c (parse_no_sanitize_attribute): New function.
21056         (common_handle_option): Use renamed enum value.
21057         * opts.h (parse_no_sanitize_attribute): Declare.
21058         * tree.c (sanitize_flags_p): New function.
21059         * tree.h: Declared here.
21060         * tsan.c: Use sanitize_flags_p.
21061         * ubsan.c (ubsan_expand_null_ifn): Likewise.
21062         (instrument_mem_ref): Likewise.
21063         (instrument_bool_enum_load): Likewise.
21064         (do_ubsan_in_current_function): Remove the function.
21065         (pass_ubsan::execute): Use sanitize_flags_p.
21066         * ubsan.h: Remove do_ubsan_in_current_function
21067         * tree-cfg.c (print_no_sanitize_attr_value): New function.
21068         (dump_function_to_file): Use it here.
21070 2017-06-13  Martin Jambor  <mjambor@suse.cz>
21072         PR tree-optimization/80803
21073         PR tree-optimization/81063
21074         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
21075         (propagate_subaccesses_across_link): Enqueue subtree whenever
21076         necessary instead of relying on the caller.
21078 2017-06-13  Martin Jambor  <mjambor@suse.cz>
21080         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
21081         that have a first_link.
21082         (sort_and_splice_var_accesses): Do not check first_link before
21083         enquing.
21084         (subtree_mark_written_and_enqueue): Likewise.
21085         (propagate_all_subaccesses): Likewise and do not stop at first
21086         parent with a first_link.
21088 2017-06-13  Martin Jambor  <mjambor@suse.cz>
21090         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
21091         instead of f.
21093 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
21095         * match.pd: New pattern.
21097 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
21099         * tree-vrp.c (is_masked_range_test): New function.
21100         (register_edge_assert_for): Determine ranges for
21101         some bit tests.
21103 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
21105         PR tree-optimization/67328
21106         * fold-const.c (maskable_range_p): New function.
21107         (build_range_check): Generate bittests if possible.
21109 2017-06-13  Martin Liska  <mliska@suse.cz>
21111         * gimple-pretty-print.c (dump_probability): Add new argument.
21112         (dump_edge_probability): Dump both probability and count.
21113         (dump_gimple_label): Likewise.
21114         (dump_gimple_bb_header): Likewise.
21116 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
21118         PR target/81072
21119         * config/avr/avr-devices.c: Fix indentation.
21120         * config/avr/gen-avr-mmcu-specs.c: Dito.
21122 2017-06-13  Richard Biener  <rguenther@suse.de>
21124         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
21125         instead get vector type from stmt_info.
21126         (vectorizable_reduction): Adjust.  Remove dead code.
21128 2017-06-13  Richard Biener  <rguenther@suse.de>
21130         PR middle-end/81065
21131         * fold-const.c (extract_muldiv_1): Remove bogus distribution
21132         case of C * (x * C2 + C3).
21133         (fold_addr_of_array_ref_difference): Properly fold index difference.
21135 2017-06-12  David S. Miller  <davem@davemloft.net>
21137         PR target/80968
21138         * config/sparc/sparc.md (return expander): Emit frame blockage if
21139         function uses alloca.
21141 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
21143         * combine.c (make_field_assignment): Check len rather than the mode
21144         precision when calling force_to_mode.
21146 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
21148         Support multilibs and devices that see flash in RAM address range.
21150         PR target/81072
21151         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
21152         (avr_mcu_t) <flash_pm_offset>: New field.
21153         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
21154         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
21155         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
21156         (AVR_TINY_PM_OFFSET): Remove macro.
21157         * config/avr/avr.opt (-mshort-calls): New option.
21158         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
21159         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
21160         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
21161         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
21162         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
21163         instead of avr_arch->have_jmp_call.
21164         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
21165         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
21166         avr_arch->flash_pm_offset to define.
21167         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
21168         new field flash_pm_offset.  Add entry for avrxmega3.
21169         (avr_texinfo): Add entry for avrxmega3.
21170         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
21171         attiny212, attiny214,
21172         attiny412, attiny414, attiny416, attiny417,
21173         attiny814, attiny816, attiny817,
21174         attiny1614, attiny1616, attiny1617,
21175         attiny3214, attiny3216, attiny3217.
21176         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
21177         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
21178         (avr_print_operand_address) [AVR_TINY]: Same.
21179         (avr_asm_init_sections) <readonly_data_section>: Only patch
21180         callback if avr_arch->flash_pm_offset = 0.
21181         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
21182         for rodata if avr_arch->flash_pm_offset != 0.
21183         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
21184         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
21185         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
21186         (m_options): Append opt_rcall.
21187         (m_dirnames): Append dir_rcall.
21188         * config/avr/t-multilib: Regenerate.
21190         * configure.ac [target=avr]: Check whether avrxmega3 default
21191         linker description file works as needed.
21192         * configure: Regenerate.
21193         * doc/avr-mmcu.texi: Regenerate.
21194         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
21195         <__AVR_ARCH__>: Document avrxmega3 and 103.
21196         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
21197         <__AVR_SHORT_CALLS__>: Document it.
21198         <__AVR_PM_BASE_ADDRESS__>: Document it.
21199         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
21200         (AVR Variable Attributes) <progmem>: Document this is
21201         not needed for avrxmega3.
21202         (AVR Named Address Spaces) <__flash>: Dito.
21204 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
21206         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
21208 2017-06-12  Doug Rupp  <rupp@adacore.com>
21210         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
21211         Append vxworks-stdint.h to the tm_file list.
21212         * config/vxworks-stdint.h: New file.
21214 2017-06-12  Martin Liska  <mliska@suse.cz>
21216         PR tree-optimization/81041
21217         * tree-profile.c (gimple_gen_ic_func_profiler):
21218         Create an extra BB in profile-generate
21219         (gimple_gen_time_profiler): Likewise.
21221 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
21223         PR tree-optimization/81003
21224         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
21225         (update_range_test): Use it instead of force_gimple_operand_gsi.
21227 2017-06-12  Richard Biener  <rguenther@suse.de>
21229         PR tree-optimization/81053
21230         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
21231         with backedge value not defined in loop.  Simplify def stmt
21232         compute.
21234 2017-06-11  Tom de Vries  <tom@codesourcery.com>
21236         PR target/79939
21237         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
21238         Return true.
21239         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
21240         nvptx_cannot_force_const_mem.
21242 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
21244         * opts.c (finish_options): Move test for flag_split_stack after
21245         it has been initialized.
21247 2017-06-11  Jason Merrill  <jason@redhat.com>
21249         * tree.h (id_equal): New.
21250         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
21251         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
21252         instead of strcmp of IDENTIFIER_POINTER.
21254 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
21256         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
21257         (mark_all_inlined_calls_cdtor): Fix formating.
21258         (inline_transform): Rescale profile before inlining.
21260 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
21262         * cgraph.h (cgraph_edge::clone): Update prototype.
21263         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
21264         (cgraph_node::create_clone): Update.
21265         (cgraph_node::create_version_clone): Update.
21266         * tree-inline.c (copy_bb): Update.
21267         (expand_call_inline): Update.
21269 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
21271         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
21272         factored out from ...
21273         (rs6000_emit_prologue): ... here.
21275 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
21277         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
21278         factored out from ...
21279         (rs6000_emit_prologue): ... here.
21281 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
21283         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
21284         edge counts.
21285         (handle_missing_profiles): Fix computation of tp_first_run.
21286         (counts_to_freqs): Do not touch freqs when count is 0.
21288 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
21290         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
21291         profile.
21293 2017-06-10  Tom de Vries  <tom@codesourcery.com>
21295         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
21296         attributes): Document signal effective target.
21298 2017-06-10  Tom de Vries  <tom@codesourcery.com>
21300         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
21301         Document effective target stack_size.
21303 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
21305         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
21306         to the edit_context if they can be auto-applied.
21308 2017-06-9  Ian Lance Taylor  <iant@golang.org>
21310         * opts.c (finish_options): If -fsplit-stack, disable implicit
21311         -forder-blocks-and-partition.
21312         * doc/invoke.texi (Optimize Options): Document that when using
21313         -fsplit-stack -forder-blocks-and-partition is not implicitly
21314         enabled.
21316 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
21318         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
21319         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
21320         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
21321         * builtins.def (abort, trap, unreachable): Declare cold.
21322         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
21323         * tree-core.h (ECF_COLD): New.
21324         * tree.c (set_call_expr_flags): Handle ECF_COLD.
21325         (build_common_builtin_nodes): Mark unreachable and abort as cold.
21327 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
21329         * predict.c (unlikely_executed_stmt_p): Cleanup.
21331 2017-06-09  Richard Biener  <rguenther@suse.de>
21333         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
21334         model if the ref is always written to.
21336 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
21338         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
21340 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
21342         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
21343         than udiv.
21345 2017-06-09  Tom de Vries  <tom@codesourcery.com>
21347         PR target/80855
21348         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
21349         "target cannot support label values" when encountering LABEL_REF.
21351 2017-06-09  Martin Liska  <mliska@suse.cz>
21353         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
21354         (gimple_gen_ic_func_profiler): Emit direct comparison
21355         of __gcov_indirect_call_callee with NULL.
21356         (gimple_gen_time_profiler): Change probability from
21357         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
21359 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
21361         * profile.c (edge_gcov_counts): Turn to pointer.
21362         (compute_branch_probabilities, compute_branch_probabilities): Update.
21363         (branch_prob): Do not clear edge_gcov_count.
21364         * profile.h (edge_gcov_counts): Turn to pointer.
21365         (edge_gcov_count): Update.
21367 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
21369         * gimple.h (gimple_check_failed): Mark cold.
21371 2017-06-09  Richard Biener  <rguenther@suse.de>
21373         PR tree-optimization/66623
21374         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
21375         refactor check_reduction into two parts, properly computing
21376         whether we have to check reduction validity for outer loop
21377         vectorization.
21379 2017-06-09  Richard Biener  <rguenther@suse.de>
21381         PR tree-optimization/79483
21382         * graphite-scop-detection.c (order): New global.
21383         (get_order): Compute bb to order mapping that satisfies code
21384         generation constraints.
21385         (cmp_pbbs): New helper.
21386         (build_scops): Start domwalk at entry block, sort generated
21387         pbbs.
21389 2017-06-09  Richard Biener  <rguenther@suse.de>
21391         PR middle-end/81007
21392         * ipa-polymorphic-call.c
21393         (ipa_polymorphic_call_context::restrict_to_inner_class):
21394         Skip FIELD_DECLs with error_mark_node type.
21395         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
21396         last again.
21398 2017-06-09  Martin Liska  <mliska@suse.cz>
21400         * predict.c (struct branch_predictor): New struct.
21401         (test_prediction_value_range): New test.
21402         (predict_c_tests): New function.
21403         * selftest-run-tests.c (selftest::run_tests): Run the function.
21404         * selftest.h: Declare new tests.
21406 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
21408         PR target/80966
21409         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
21410         gen_add3_insn did not fail.
21411         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
21412         r0, construct that number in a temporary reg and add that reg to r0.
21413         If asked to put the result in r0 as well, fail.
21415 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
21417         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
21418         for early expansion of vec_eqv.
21420 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
21422         PR middle-end/81005
21423         * ubsan.c (instrument_null): Avoid pointless code temporary.
21424         (pass_ubsan::execute): Instrument aggregate arguments of calls.
21426 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
21428         PR target/81015
21429         Revert:
21430         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
21432         PR target/59874
21433         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
21434         (*clzhi2): Ditto.
21436 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
21438         * predict.c (unlikely_executed_edge_p): Move ahead.
21439         (probably_never_executed_edge_p): Use it.
21441 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21443         PR middle-end/79988
21444         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
21445         gimple_call_builtin_p call.
21447 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
21449         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
21450         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
21451         rtl_check_failed_type2, rtl_check_failed_code1,
21452         rtl_check_failed_code2, rtl_check_failed_code_mode,
21453         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
21454         rtvec_check_failed_bounds, rtl_check_failed_flag,
21455         _fatal_insn_not_found, _fatal_insn): Likewise.
21456         * tree.h (tree_contains_struct_check_failed,
21457         tree_check_failed, tree_not_check_failed,
21458         tree_class_check_failed, tree_range_check_failed,
21459         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
21460         tree_vec_elt_check_failed, phi_node_elt_check_failed,
21461         tree_operand_check_failed, omp_clause_check_failed,
21462         omp_clause_operand_check_failed, omp_clause_range_check_failed):
21463         Likewise.
21465 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
21467         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
21468         flag_branch_probabilities.
21469         * ipa-inline.c (edge_badness): Likewise.
21470         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
21471         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
21472         * predict.c (maybe_hot_frequency_p): Likewise.
21473         (probably_never_executed): Likewise.
21474         * sched-ebb.c (schedule_ebbs): Likewise.
21475         * sched-rgn.c (find_single_block_region): Likewise.
21476         * tracer.c (tail_duplicate): Likewise.
21478 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
21480         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
21481         longer requires x_flag_profile_use.
21483 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
21485         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
21486         instead of flag_reorder_blocks_and_partition.
21487         * dbxout.c (dbxout_function_end): Likewise.
21488         * dwarf2out.c (gen_subprogram_die): Likewise.
21489         * haifa-sched.c (sched_create_recovery_edges): Likewise.
21490         * hw-doloop.c (reorg_loops): Likewise.
21491         * varasm.c (assemble_start_function,
21492         assemble_end_function): Likewise.
21493         (decide_function_section): Do not check for
21494         flag_reorder_blocks_and_partition.
21496 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21498         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
21499         New function.
21500         (chkp_get_hard_register_fake_addr_expr): Ditto.
21501         (chkp_build_addr_expr): Add check for hard reg case.
21502         (chkp_parse_array_and_component_ref): Ditto.
21503         (chkp_find_bounds_1): Ditto.
21504         (chkp_process_stmt): Don't generate bounds store for
21505         hard reg case.
21507 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
21509         * predict.c (maybe_hot_bb_p): Do not check profile status.
21510         (maybe_hot_edge_p): Likewise.
21511         (probably_never_executed): Check for zero counts even if profile
21512         is not read.
21513         (unlikely_executed_edge_p): New function.
21514         (unlikely_executed_stmt_p): New function.
21515         (unlikely_executed_bb_p): New function.
21516         (set_even_probabilities): Use unlikely predicates.
21517         (combine_predictions_for_bb): Likewise.
21518         (predict_paths_for_bb): Likewise.
21519         (predict_paths_leading_to_edge): Likewise.
21520         (determine_unlikely_bbs): New function.
21521         (estimate_bb_frequencies): Use it.
21522         (compute_function_frequency): Use zero counts even if profile is
21523         not read.
21524         * profile-count.h: Fix typo.
21526 2017-08-08  Julia Koval  <julia.koval@intel.com>
21528         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
21529         _mm512_mask_cvtsepi16_storeu_epi8,
21530         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
21531         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
21532         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
21533         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
21534         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
21535         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
21536         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
21537         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
21538         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
21539         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
21540         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
21541         __builtin_ia32_pmovuswb256mem_mask,
21542         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
21543         __builtin_ia32_pmovwb512mem_mask): New builtins.
21545 2017-08-08  Julia Koval  <julia.koval@intel.com>
21547         PR target/73350,80862
21548         * config/i386/subst.md (round): Fix round pattern.
21549         * config/i386/i386.c (ix86_erase_embedded_rounding):
21550         Fix erasing rounding for the fixed pattern.
21552 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
21554         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
21556 2017-06-08  Martin Liska  <mliska@suse.cz>
21558         PR gcov-profile/80911
21559         * gcov.c (block_info::block_info): New constructor.
21561 2017-06-07  Carl Love  <cel@us.ibm.com>
21563         * config/rs6000/rs6000-c: The return type of the following
21564         built-in functions was implemented as int not long long.  Fix sign
21565         of return value for the unsigned version of vec_mulo and vec_mule.
21566         vector unsigned long long vec_bperm (vector unsigned long long,
21567                                              vector unsigned char)
21568         vector signed long long vec_mule (vector signed int,
21569                                           vector signed int)
21570         vector unsigned long long vec_mule (vector unsigned int,
21571                                             vector unsigned int)
21572         vector signed long long vec_mulo (vector signed int,
21573                                           vector signed int)
21574         vector unsigned long long vec_mulo (vector unsigned int,
21575                                             vector unsigned int)
21576         * doc/extend.texi: Fix the documentation for the built-in
21577         functions.
21579 2017-06-07  Carl Love  <cel@us.ibm.com>
21581         PR target/80982
21582         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
21583         for BE.
21585 2017-06-07  Carl Love  <cel@us.ibm.com>
21587         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
21588         support, Generate       doublehv for signed int/float for BE case only.
21590 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
21592         * doc/invoke.texi (mcx16): Rewrite.
21594 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21596         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
21597         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
21598         *mov<mode>_softfloat, and an anonymous splitter): Use
21599         nonimmediate_operand instead of rs6000_nonimmediate_operand.
21601 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21603         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
21604         SPEFSCR registers.
21605         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
21606         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
21607         (rs6000_debug_reg_global): Adjust.
21608         (rs6000_init_hard_regno_mode_ok): Adjust.
21609         (rs6000_dbx_register_number): Adjust.
21610         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
21611         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
21612         Remove SPE_ACC and SPEFSCR.
21613         (REG_ALLOC_ORDER): Ditto.
21614         (FRAME_POINTER_REGNUM): Change to 111.
21615         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
21616         (REG_CLASS_NAMES): Ditto.
21617         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
21618         (REGISTER_NAMES): Ditto.
21619         (ADDITIONAL_REG_NAMES): Ditto.
21620         (rs6000_reg_names): Ditto.
21621         * config/rs6000/rs6000.md: Renumber some register number
21622         define_constants.
21624 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21626         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
21627         registers.
21628         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
21629         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
21630         to 117.
21631         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
21632         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
21633         Delete the SPE high registers.
21634         (REG_ALLOC_ORDER): Ditto.
21635         (enum reg_class): Remove SPE_HIGH_REGS.
21636         (REG_CLASS_NAMES): Ditto.
21637         (REG_CLASS_CONTENTS): Delete the SPE high registers.
21638         (REGISTER_NAMES): Ditto.
21639         (rs6000_reg_names): Ditto.
21640         * doc/tm.texi.in: Remove SPE as example.
21641         * doc/tm.texi: Regenerate.
21643 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21645         * config/rs6000/8540.md (ppc8540_brinc): Delete.
21646         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
21647         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
21648         * config/rs6000/rs6000.md (type): Remove "brinc".
21650 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21652         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
21653         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
21654         * config/rs6000/linuxspe.h: Delete file.
21655         * config/rs6000/rs6000.md: Don't include spe.md.
21656         * config/rs6000/spe.h: Delete file.
21657         * config/rs6000/spe.md: Delete file.
21658         * config/rs6000/t-rs6000: Remove spe.md.
21660 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21662         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
21663         (reg_or_none500mem_operand): Delete.
21664         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
21665         instead of reg_or_none500mem_operand.
21667 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21669         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
21670         handling of SPE flags.
21671         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
21673 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21675         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
21676         SPE ABI handling.
21677         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
21678         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
21679         paired_divv2sf3): Similar.
21680         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
21681         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
21682         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
21683         RS6000_BUILTIN_S.
21684         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
21685         Rename the paired_* instruction patterns.
21686         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
21687         define __SPE__.
21688         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
21689         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
21690         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
21691         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
21692         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
21693         PAIRED_VECTOR_MODE.
21694         (struct machine_function): Delete field spe_insn_chain_scanned_p.
21695         (spe_func_has_64bit_regs_p): Delete.
21696         (spe_expand_predicate_builtin): Delete.
21697         (spe_expand_evsel_builtin): Delete.
21698         (TARGET_DWARF_REGISTER_SPAN): Do not define.
21699         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
21700         (invalid_e500_subreg): Delete.
21701         (rs6000_legitimize_address): Always force_reg op2 as well, for
21702         paired single memory accesses.
21703         (rs6000_member_type_forces_blk): Delete.
21704         (rs6000_spe_function_arg): Delete.
21705         (rs6000_expand_unop_builtin): Delete SPE handling.
21706         (rs6000_expand_binop_builtin): Ditto.
21707         (spe_expand_stv_builtin): Delete.
21708         (bdesc_2arg_spe): Delete.
21709         (spe_expand_builtin): Delete.
21710         (spe_expand_predicate_builtin): Delete.
21711         (spe_expand_evsel_builtin): Delete.
21712         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
21713         (spe_init_builtins): Delete.
21714         (spe_func_has_64bit_regs_p): Delete.
21715         (savres_routine_name): Delete "info" parameter.  Adjust callers.
21716         (rs6000_emit_stack_reset): Ditto.
21717         (rs6000_dwarf_register_span): Delete.
21718         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
21719         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
21720         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
21721         Delete.
21722         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
21723         Delete.
21724         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
21725         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
21726         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
21727         mulv2sf3, divv2sf3): Delete expanders.
21729 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21731         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
21733 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21735         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
21736         * config/rs6000/rs6000.c: Ditto.
21738 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21740         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
21741         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
21742         comparison_operator.
21744 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21746         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
21747         * config/rs6000/rs6000.opt: Ditto.
21748         * config/rs6000/t-rtems: Ditto.
21750 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21752         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
21753         TARGET_E500_SINGLE by 0, simplify.
21754         * config/rs6000/rs6000.c: Ditto.
21755         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
21756         (spe_build_register_parallel): Delete.
21757         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
21758         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
21759         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
21760         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
21761         (E500_CONVERT): Delete.
21762         * config/rs6000/spe.md: Remove many patterns and all define_constants.
21764 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
21766         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
21767         * config/rs6000/dfp.md: Ditto.
21768         (negdd2, *negdd2_fpr): Merge.
21769         (absdd2, *absdd2_fpr): Merge.
21770         (negtd2, *negtd2_fpr): Merge.
21771         (abstd2, *abstd2_fpr): Merge.
21772         * config/rs6000/e500.h: Delete file.
21773         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
21774         TARGET_FPRS by 1 and simplify.
21775         * config/rs6000/rs6000-c.c: Ditto.
21776         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
21777         TARGET_DF_SPE by 0.
21778         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
21779         TARGET_DF_SPE.
21780         * config/rs6000/rs6000.md: Ditto.
21781         (floatdidf2, *floatdidf2_fpr): Merge.
21782         (move_from_CR_gt_bit): Delete.
21783         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
21784         (E500_CR_IOR_COMPARE): Delete.
21785         (All patterns that require !TARGET_FPRS): Delete.
21786         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
21788 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
21790         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
21792 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
21794         * graphds.c (add_edge): Intitialize edge's attached data.
21795         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
21796         pointer parameter.  Call pointed function on each edge during
21797         graph traversing.  Skip traversing the edge when the function
21798         returns true.
21799         (graphds_dfs, graphds_scc): Ditto.
21800         (for_each_edge): New parameter.  Pass the new parameter to callback
21801         function.
21802         * graphds.h (skip_edge_callback): New function pointer type.
21803         (graphds_dfs, graphds_scc): New function pointer parameter.
21804         (graphds_edge_callback, for_each_edge): New parameter.
21806 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
21808         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
21809         out code checking if runtime alias check is possible to below ...
21810         Call the new function.
21811         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
21812         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
21814 2017-06-07  Marek Polacek  <polacek@redhat.com>
21816         PR sanitizer/80932
21817         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
21818         TYPE_OVERFLOW_WRAPS check.
21820 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
21822         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
21823         if versioning is required.
21824         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
21825         peeling with the check for versioning.
21827 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
21829         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
21830         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
21831         Set true to new parameter if new ssa variable is defined.
21832         (vect_gen_vector_loop_niters): Refactor.  Set range information
21833         for the new vector loop bound variable.
21834         (vect_do_peeling): Ditto.
21836 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
21838         * tree-affine.c (ssa.h): Include header file.
21839         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
21840         has wrapping overflow behavior.
21842 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
21844         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
21846 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
21848         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
21849         (tree_to_aff_combination): ... here.
21851 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
21853         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
21854         reg_pressure model function.
21855         (ivopts_global_cost_for_size): Delete.
21856         (determine_set_costs, iv_ca_recount_cost): Call new model function
21857         ivopts_estimate_reg_pressure.
21859 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
21861         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
21862         expensive than udiv.  Remove floating point cases from mod.
21864 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
21866         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
21867         Increase idiv cost.
21869 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
21871         * config/aarch64/aarch64.md
21872         (copysignsf3): Fix mask generation.
21874 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
21876         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
21877         TDI_gimple.
21878         (class dump_manager): Add register_dumps method.
21879         * dumpfile.c: Include langhooks.h.
21880         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
21881         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
21882         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
21883         (dump_manager::dump_register): Start with 512 entries instead of 32.
21884         (dump_manager::register_dumps): New method.
21885         * toplev.c (general_init): Instead of invoking register_dumps
21886         langhook, invoke register_dumps method on the dump manager.
21887         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
21888         TDI_generic.
21890 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
21892         * doc/md.texi: Clarify the restrictions on a define_insn condition.
21893         Say that # requires an associated define_split to exist, and that
21894         the define_split must be suitable for use after register allocation.
21896 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
21898         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
21899         (compute_outgoing_frequencies): Also initialize zero counts.
21900         (find_many_sub_basic_blocks): Do not produce uninitialized profile
21901         around loops; preserve more of profile when nothing changes.
21903 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
21905         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
21906         here.
21907         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
21908         * config/arm/arm-cpu-cdata.h: Regenerate.
21909         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
21910         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
21911         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
21912         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
21913         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
21914         support.
21915         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
21916         support.
21917         * config/arm/t-rmprofile: Likewise.
21918         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
21920 2017-06-06  David S. Miller  <davem@davemloft.net>
21922         PR target/80968
21923         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
21924         blockage if function uses alloca.
21926 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
21928         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
21929         New "uid" fields to hold pretty-print IDs of group and ref.
21930         Memory references are now identified as <group_id>:<ref_id>
21931         instead of using [random] addresses.
21932         (dump_mem_details): Simplify, no functional change.
21933         (dump_mem_ref): Simplify and make output more concise.
21934         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
21935         (find_or_create_group): Initialize group uid.
21936         (record_ref): Initialize ref uid.  Improve debug output.
21937         (prune_group_by_reuse, should_issue_prefetch_p,)
21938         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
21939         (mark_nontemporal_store, determine_loop_nest_reuse):
21940         Improve debug output.
21942 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
21944         * dbgcnt.def (prefetch): New debug counter.
21945         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
21946         (schedule_prefetches): Stop issueing prefetches if debug counter
21947         tripped.
21949 2017-06-06  Tom de Vries  <tom@codesourcery.com>
21951         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
21952         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
21954 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21956         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
21957         Use aarch64_reg_or_zero predicate for operand 4.
21958         (aarch64_compare_and_swap<mode> define_insn_and_split):
21959         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
21960         (aarch64_store_exclusive<mode>): Likewise for operand 2.
21962 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21964         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
21965         (arm_compute_save_core_reg_mask): This.
21966         (thumb1_compute_save_reg_mask): Rename into ...
21967         (thumb1_compute_save_core_reg_mask): This.
21968         (arm_compute_save_reg0_reg12_mask): Adapt comment.
21969         (arm_compute_frame_layout): Likewise.
21971 2017-06-06  Richard Biener  <rguenther@suse.de>
21973         PR tree-optimization/80974
21974         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
21975         keep or clear leaders SSA info.
21977 2017-06-06  Tom de Vries  <tom@codesourcery.com>
21979         * config/nvptx/nvptx.c (split_mode_p): New function.
21980         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
21982 2017-06-06  Tom de Vries  <tom@codesourcery.com>
21984         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
21986 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
21988         PR bootstrap/80978
21989         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
21990         profile.
21992 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
21994         * shrink-wrap.c (handle_simple_exit): Update profile.
21995         (try_shrink_wrapping): Upate profile.
21997 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
21999         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
22000         (tree_guess_outgoing_edge_probabilities): New.
22001         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
22002         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
22004 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
22006         * ipa-split.c (split_function): Initialize return bb profile.
22008 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
22010         * profile.c (compute_branch_probabilities): Also initialize
22011         EXIT_BLOCK profile.
22013 2017-06-06  Richard Biener  <rguenther@suse.de>
22015         PR tree-optimization/80928
22016         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
22017         (vect_analyze_loop_operations): Properly guard analysis for
22018         pure SLP case.
22019         (vect_transform_loop): Likewise.
22020         (vect_analyze_loop_2): Also reset SLP type on PHIs.
22021         (vect_model_induction_cost): Do not cost for pure SLP.
22022         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
22023         of induction in inner loop vectorization.
22024         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
22025         (vect_get_and_check_slp_defs): Handle vect_induction_def.
22026         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
22027         recursion.
22028         (vect_analyze_slp_cost_1): Cost induction.
22029         (vect_detect_hybrid_slp_stmts): Handle PHIs.
22030         (vect_get_slp_vect_defs): Likewise.
22031         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
22032         (vect_transform_stmt): Handle SLP reductions.
22033         * tree-vectorizer.h (vectorizable_induction): Adjust.
22035 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
22037         * config/rs6000/rs6000.c (make_resolver_func): Update
22038         init_lowered_empty_function call.
22040 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22042         * doc/invoke.texi: Document the -fprofile-abs-path option.
22043         * common.opt (fprofile-abs-path): New option.
22044         * gcov-io.h (gcov_write_filename): Declare.
22045         * gcov-io.c (gcov_write_filename): New function.
22046         * coverage.c (coverage_begin_function): Use gcov_write_filename.
22047         * profile.c (output_location): Likewise.
22049 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
22051         * shring-wrap.c: Revert accidental commit.
22053 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
22055         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
22057 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
22059         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
22060         new edge.
22061         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
22062         profile in callgraph edge.
22063         * profile-count.h (apply_probability): If THIS is 0, then result is 0
22064         (apply_scale): Likewise.
22065         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
22066         Also scale profile when inlining function with zero profile.
22067         (initialize_cfun): Update exit block profile even when it is zero.
22068         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
22069         when profile is read.
22071 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
22073         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
22074         (CLONE_*): New constants to define the processors we can generate
22075         code for with the target_clone attribute.
22076         (rs6000_clone_map): New array to identify which clone processors
22077         the current program is running on.
22078         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
22079         target_clone attribute.
22080         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
22081         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
22082         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
22083         (cpu_expand_builtin): Add support for target_clone attribute.
22084         (rs6000_valid_attribute_p): Allow "default" attribute.
22085         (get_decl_name): New debug function to simplify printing the
22086         current function name in debugging statements.
22087         (rs6000_clone_priority): New functions to support the target_clone
22088         attribute, and be able to generate code to switch between ISA 2.05
22089         through ISA 3.0 (power6 through power9).
22090         (rs6000_compare_version_priority): Likewise.
22091         (rs6000_get_function_versions_dispatcher): Likewise.
22092         (make_resolver_func): Likewise.
22093         (add_condition_to_bb): Likewise.
22094         (dispatch_function_versions): Likewise.
22095         (rs6000_generate_version_dispatcher_body): Likewise.
22096         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
22097         (fusion_gpr_load_p): Fix a spacing issue.
22098         * doc/extend.texi (Common Function Attributes): Document that the
22099         PowerPC supports the target_clone attribute.
22101 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22103         * config/arm/arm.h: explain F symbol found in description of ARM
22104         register allocation in its legend.
22106 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
22108         * config/mips/frame-header-opt.c: Include profile-count.h.
22109         * config/riscv/riscv.c: Include profile-count.h
22111 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
22113         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
22114         update profile.
22115         (sm_set_flag_if_changed): Add bbs field.
22116         (execute_sm_if_changed_flag_set): Pass BBS.
22117         (execute_sm): Update.
22119 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22121         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
22122         New pattern.
22124 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22126         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
22127         (peephole2): New peephole2 to emit the above.
22128         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
22130 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22132         * config/aarch64/aarch64.c (define_peephole2 above
22133         *sub_<shift>_<mode>): New peephole.
22135 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
22137         * config/i386/i386.c (make_resolver_func): Update.
22138         * Makefile.in: Add profile-count.h and profile-count.o
22139         * auto-profile.c (afdo_indirect_call): Update to new API.
22140         (afdo_set_bb_count): Update.
22141         (afdo_propagate_edge): Update.
22142         (afdo_propagate_circuit): Update.
22143         (afdo_calculate_branch_prob): Update.
22144         (afdo_annotate_cfg): Update.
22145         * basic-block.h: Include profile-count.h
22146         (struct edge_def): Turn count to profile_count.
22147         (struct basic_block_def): Likewie.
22148         (REG_BR_PROB_BASE): Move to profile-count.h
22149         (RDIV): Move to profile-count.h
22150         * bb-reorder.c (max_entry_count): Turn to profile_count.
22151         (find_traces): Update.
22152         (rotate_loop):Update.
22153         (connect_traces):Update.
22154         (sanitize_hot_paths):Update.
22155         * bt-load.c (migrate_btr_defs): Update.
22156         * cfg.c (RDIV): Remove.
22157         (init_flow): Use alloc_block.
22158         (alloc_block): Uninitialize count.
22159         (unchecked_make_edge): Uninitialize count.
22160         (check_bb_profile): Update.
22161         (dump_edge_info): Update.
22162         (dump_bb_info): Update.
22163         (update_bb_profile_for_threading): Update.
22164         (scale_bbs_frequencies_int): Update.
22165         (scale_bbs_frequencies_gcov_type): Update.
22166         (scale_bbs_frequencies_profile_count): New.
22167         * cfg.h (update_bb_profile_for_threading): Update.
22168         (scale_bbs_frequencies_profile_count): Declare.
22169         * cfgbuild.c (compute_outgoing_frequencies): Update.
22170         (find_many_sub_basic_blocks): Update.
22171         * cfgcleanup.c (try_forward_edges): Update.
22172         (try_crossjump_to_edge): Update.
22173         * cfgexpand.c (expand_gimple_tailcall): Update.
22174         (construct_exit_block): Update.
22175         * cfghooks.c (verify_flow_info): Update.
22176         (dump_bb_for_graph): Update.
22177         (split_edge): Update.
22178         (make_forwarder_block): Update.
22179         (duplicate_block): Update.
22180         (account_profile_record): Update.
22181         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
22182         (get_estimated_loop_iterations): Update.
22183         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
22184         (single_likely_exit): Update.
22185         * cfgloopmanip.c (scale_loop_profile): Update.
22186         (loopify): Update.
22187         (set_zero_probability): Update.
22188         (lv_adjust_loop_entry_edge): Update.
22189         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
22190         (purge_dead_edges): Update.
22191         (rtl_account_profile_record): Update.
22192         * cgraph.c (cgraph_node::create): Uninitialize count.
22193         (symbol_table::create_edge): Uninitialize count.
22194         (cgraph_update_edges_for_call_stmt_node): Update.
22195         (cgraph_edge::dump_edge_flags): Update.
22196         (cgraph_node::dump): Update.
22197         (cgraph_edge::maybe_hot_p): Update.
22198         * cgraph.h: Include profile-count.h
22199         (create_clone), create_edge, create_indirect_edge): Update.
22200         (cgraph_node): Turn count to profile_count.
22201         (cgraph_edge0: Likewise.
22202         (make_speculative, clone): Update.
22203         (create_edge): Update.
22204         (init_lowered_empty_function): Update.
22205         * cgraphclones.c (cgraph_edge::clone): Update.
22206         (duplicate_thunk_for_node): Update.
22207         (cgraph_node::create_clone): Update.
22208         * cgraphunit.c (cgraph_node::analyze): Update.
22209         (cgraph_node::expand_thunk): Update.
22210         * final.c (dump_basic_block_info): Update.
22211         * gimple-streamer-in.c (input_bb): Update.
22212         * gimple-streamer-out.c (output_bb): Update.
22213         * graphite.c (print_global_statistics): Update.
22214         (print_graphite_scop_statistics): Update.
22215         * hsa-brig.c: Include basic-block.h.
22216         * hsa-dump.c: Include basic-block.h.
22217         * hsa-gen.c (T sum_slice): Update.
22218         (convert_switch_statements):Update.
22219         * hsa-regalloc.c: Include basic-block.h.
22220         * ipa-chkp.c (chkp_produce_thunks): Update.
22221         * ipa-cp.c (struct caller_statistics): Update.
22222         (init_caller_stats): Update.
22223         (gather_caller_stats): Update.
22224         (ipcp_cloning_candidate_p): Update.
22225         (good_cloning_opportunity_p): Update.
22226         (get_info_about_necessary_edges): Update.
22227         (dump_profile_updates): Update.
22228         (update_profiling_info): Update.
22229         (update_specialized_profile): Update.
22230         (perhaps_add_new_callers): Update.
22231         (decide_about_value): Update.
22232         (ipa_cp_c_finalize): Update.
22233         * ipa-devirt.c (struct odr_type_warn_count): Update.
22234         (struct decl_warn_count): Update.
22235         (struct final_warning_record): Update.
22236         (possible_polymorphic_call_targets): Update.
22237         (ipa_devirt): Update.
22238         * ipa-fnsummary.c (redirect_to_unreachable): Update.
22239         * ipa-icf.c (sem_function::merge): Update.
22240         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
22241         * ipa-inline.c (compute_uninlined_call_time): Update.
22242         (compute_inlined_call_time): Update.
22243         (want_inline_small_function_p): Update.
22244         (want_inline_self_recursive_call_p): Update.
22245         (edge_badness): Update.
22246         (lookup_recursive_calls): Update.
22247         (recursive_inlining): Update.
22248         (inline_small_functions): Update.
22249         (dump_overall_stats): Update.
22250         (dump_inline_stats): Update.
22251         * ipa-profile.c (ipa_profile_generate_summary): Update.
22252         (ipa_propagate_frequency): Update.
22253         (ipa_profile): Update.
22254         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
22255         * ipa-utils.c (ipa_merge_profiles): Update.
22256         * loop-doloop.c (doloop_modify): Update.
22257         * loop-unroll.c (report_unroll): Update.
22258         (unroll_loop_runtime_iterations): Update.
22259         * lto-cgraph.c (lto_output_edge): Update.
22260         (lto_output_node): Update.
22261         (input_node): Update.
22262         (input_edge): Update.
22263         (merge_profile_summaries): Update.
22264         * lto-streamer-in.c (input_cfg): Update.
22265         * lto-streamer-out.c (output_cfg): Update.
22266         * mcf.c (create_fixup_graph): Update.
22267         (adjust_cfg_counts): Update.
22268         (sum_edge_counts): Update.
22269         * modulo-sched.c (sms_schedule): Update.
22270         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
22271         * predict.c (maybe_hot_count_p): Update.
22272         (probably_never_executed): Update.
22273         (dump_prediction): Update.
22274         (combine_predictions_for_bb): Update.
22275         (propagate_freq): Update.
22276         (handle_missing_profiles): Update.
22277         (counts_to_freqs): Update.
22278         (rebuild_frequencies): Update.
22279         (force_edge_cold): Update.
22280         * predict.h: Include profile-count.h
22281         (maybe_hot_count_p, counts_to_freqs): UPdate.
22282         * print-rtl-function.c: Do not include cfg.h
22283         * print-rtl.c: Include basic-block.h
22284         * profile-count.c: New file.
22285         * profile-count.h: New file.
22286         * profile.c (is_edge_inconsistent): Update.
22287         (correct_negative_edge_counts): Update.
22288         (is_inconsistent): Update.
22289         (set_bb_counts): Update.
22290         (read_profile_edge_counts): Update.
22291         (compute_frequency_overlap): Update.
22292         (compute_branch_probabilities): Update; Initialize and deinitialize
22293         gcov_count tables.
22294         (branch_prob): Update.
22295         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
22296         (edge_gcov_count): New.
22297         (bb_gcov_count): New.
22298         * shrink-wrap.c (try_shrink_wrapping): Update.
22299         * tracer.c (better_p): Update.
22300         * trans-mem.c (expand_transaction): Update.
22301         (ipa_tm_insert_irr_call): Update.
22302         (ipa_tm_insert_gettmclone_call): Update.
22303         * tree-call-cdce.c: Update.
22304         * tree-cfg.c (gimple_duplicate_sese_region): Update.
22305         (gimple_duplicate_sese_tail): Update.
22306         (gimple_account_profile_record): Update.
22307         (execute_fixup_cfg): Update.
22308         * tree-inline.c (copy_bb): Update.
22309         (copy_edges_for_bb): Update.
22310         (initialize_cfun): Update.
22311         (freqs_to_counts): Update.
22312         (copy_cfg_body): Update.
22313         (expand_call_inline): Update.
22314         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
22315         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
22316         (try_unroll_loop_completely): Update.
22317         (try_peel_loop): Update.
22318         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
22319         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
22320         * tree-ssa-loop-split.c (connect_loops): Update.
22321         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
22322         * tree-ssa-reassoc.c (branch_fixup): Update.
22323         * tree-ssa-tail-merge.c (replace_block_by): Update.
22324         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
22325         (compute_path_counts): Update.
22326         (update_profile): Update.
22327         (recompute_probabilities): Update.
22328         (update_joiner_offpath_counts): Update.
22329         (estimated_freqs_path): Update.
22330         (freqs_to_counts_path): Update.
22331         (clear_counts_path): Update.
22332         (ssa_fix_duplicate_block_edges): Update.
22333         (duplicate_thread_path): Update.
22334         * tree-switch-conversion.c (case_bit_test_cmp): Update.
22335         (struct switch_conv_info): Update.
22336         * tree-tailcall.c (decrease_profile): Update.
22337         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
22338         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
22339         * value-prof.c (check_counter): Update.
22340         (gimple_divmod_fixed_value): Update.
22341         (gimple_mod_pow2): Update.
22342         (gimple_mod_subtract): Update.
22343         (gimple_ic_transform): Update.
22344         (gimple_stringop_fixed_value): Update.
22345         * value-prof.h (gimple_ic): Update.
22347 2017-06-02  Carl Love  <cel@us.ibm.com>
22349         * config/rs6000/rs6000-c: Add support for built-in functions
22350         vector double vec_doublee (vector signed int);
22351         vector double vec_doublee (vector unsigned int);
22352         vector double vec_doublee (vector float);
22353         vector double vec_doubleh (vector signed int);
22354         vector double vec_doubleh (vector unsigned int);
22355         vector double vec_doubleh (vector float);
22356         vector double vec_doublel (vector signed int);
22357         vector double vec_doublel (vector unsigned int);
22358         vector double vec_doublel (vector float);
22359         vector double vec_doubleo (vector signed int);
22360         vector double vec_doubleo (vector unsigned int);
22361         vector double vec_doubleo (vector float);.
22362         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
22363         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
22364         UNS_DOUBLEL.
22365         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
22366         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
22367         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
22368         VS_sxwsp.
22369         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
22370         vec_doublel, vec_doubleh.
22371         * doc/extend.texi: Update the built-in documentation file for the
22372         new built-in functions.
22374 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
22376         PR jit/80954
22377         * ipa-inline-analysis.c (free_growth_caches): Set
22378         edge_removal_hook_holder to NULL after removing it.
22380 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
22382         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
22383         comparision with zero.
22385 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
22386         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
22387         for early expansion of vec_min and vec_max builtins.
22388         (builtin_function_type): Add min/max unsigned variants to those
22389         identified as having unsigned arguments.
22391 2017-06-02  Olivier Hainque  <hainque@adacore.com>
22393         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
22395 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22397         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
22398         Use VALL_F16 iterator rather than VALL.
22400 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22402         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
22403         Emit CBNZ inside loop when doing a strong exchange and comparing
22404         against zero.  Generate the CC flags after the loop.
22406 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
22408         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
22409         (dl_section_ref): New.
22410         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
22411         On AIX, append an expression to subtract the size of the
22412         section length to dl_section_ref.
22414 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
22416         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
22417         for early expansion of vector absolute builtins.
22419 2017-06-02  Richard Biener  <rguenther@suse.de>
22421         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
22422         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
22424 2017-06-02  Richard Biener  <rguenther@suse.de>
22426         PR tree-optimization/80948
22427         * tree-tailcall.c (find_tail_calls): Track stmts to move in
22428         stmt order as well.
22430 2017-06-02  Richard Biener  <rguenther@suse.de>
22432         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
22433         PHIs are ok.
22434         * tree-vect-stmts.c (process_use): Do not mark backedge defs
22435         for inductions as relevant.
22437 2017-06-02  Richard Biener  <rguenther@suse.de>
22439         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
22440         (vectorizable_induction): ... this.  Remove dead code.
22442 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
22444         * builtins. (expand_builtin_alloca): Remove second parameter and
22445         infer its value from the first parameter instead.
22446         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
22448 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
22450         PR rtl-optimization/80903
22451         * loop-doloop.c (add_test): Unshare sequence.
22453 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22455         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
22457 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22459         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
22460         static.
22461         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
22462         xlogue_layout::get_instance, logue_layout::xlogue_layout,
22463         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
22464         (xlogue_layout::get_stub_rtx): Make static.
22465         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
22466         (xlogue_layout::compute_stub_managed_regs): Rename to...
22467         (xlogue_layout::count_stub_managed_regs): ...this.
22468         (xlogue_layout::is_stub_managed_reg): New function.
22469         (xlogue_layout::m_stub_names): Rename to...
22470         (xlogue_layout::s_stub_names): ...this, make static.
22471         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
22472         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
22473         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
22474         xlogue_layout::s_stub_names): Instantiate statics.
22475         (stub_managed_regs): Remove.
22476         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
22477         (disable_call_ms2sysv_xlogues): Rename to...
22478         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
22479         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
22480         warning logic.
22481         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
22482         change after reload_completed.
22483         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
22484         directly.
22485         (ix86_expand_prologue): Likewise.
22486         (ix86_expand_epilogue): Likewise.
22487         (ix86_expand_split_stack_prologue): Likewise.
22488         (ix86_compute_frame_layout): Remove frame parameter ...
22489         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
22490         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
22491         only if necessary.
22492         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
22493         (ix86_frame): Move from here ...
22494         * config/i386/i386.h (ix86_frame): ... to here.
22495         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
22496         complete ix86_frame data structure instead.  Remove some_ld_name.
22498 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
22500         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
22501         symbols that hold a DECL_VALUE_EXPR.
22503 2017-06-01  Martin Jambor  <mjambor@suse.cz>
22505         PR tree-optimization/80898
22506         * tree-sra.c (process_subtree_disqualification): Removed.
22507         (disqualify_candidate): Do not acll
22508         process_subtree_disqualification.
22509         (subtree_mark_written_and_enqueue): New function.
22510         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
22511         RHS has been disqualified and re-queue LHS if necessary.  Apart
22512         from that, ignore disqualified RHS.
22514 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22516         * config/s390/s390.c (s390_emit_epilogue): Disable early return
22517         address fetch for z10 or later.
22519 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
22521         * config/arc/arc.md (tst_movb): Add guard when splitting.
22523 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
22525         * config/arc/arc.c (arc_can_eliminate): Test against
22526         arc_frame_pointer_needed.
22528 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
22530         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
22531         to prevent store reordering.
22532         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
22533         (type): Add block type.
22534         (stack_tie): Define special instruction to be used in
22535         expand_prologue.
22537 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
22539         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
22540         constraint. It is not valid for the pattern.
22541         (noncommutative_binary_comparison): Likewise.
22543 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
22545         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
22546         scaled addresses.
22548 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
22550         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
22551         be used by the reg-alloc.
22553 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
22555         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
22556         reg-alloc when having mul64 or mul32x16 instructions.
22557         (mulsidi3): Likewise.
22558         (umulsidi3): Likewise.
22559         (mulsi32x16): New pattern.
22560         (mulsi64): Likewise.
22561         (mulsidi64): Likewise.
22562         (umulsidi64): Likewise.
22563         (MUL32x16_REG): Define.
22564         (mul64_600): Use MUL32x16_REG.
22565         (mac64_600): Likewise.
22566         (umul64_600): Likewise.
22567         (umac64_600): Likewise.
22569 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
22571         * config/arc/arc.md (mulsi3_700): Make it commutative.
22573 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
22575         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
22576         type for movstouw.
22577         (*sign_extendsidi2_insn): Likewise for movstosw.
22579 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
22581         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
22582         the type of the input discriminant value.  Convert the
22583         discriminant value of signedness vary.
22585 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
22587         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
22588         Add to -Wall section.
22590 2017-06-01  Richard Biener  <rguenther@suse.de>
22592         PR middle-end/66313
22593         * fold-const.c (fold_plusminus_mult_expr): If the factored
22594         factor may be zero use a wrapping type for the inner operation.
22595         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
22596         and handle moved defs.
22597         (process_assignment): Properly guard the unary op case.  Return a
22598         tri-state indicating that moving the stmt before the call may allow
22599         to continue.  Pass through to_move.
22600         (find_tail_calls): Handle moving unrelated defs before
22601         the call.
22603 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
22605         PR target/80618
22606         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
22607         splitter result in the canonical way.
22609 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
22611         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
22612         also for 32bit target.  Update insn attributes.
22613         (zero-extendsidi2 splitter): Allow all registers for operand 1.
22615 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
22617         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
22618         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
22619         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
22620         (_mm_maskz_min_ss): New intrinsics.
22622 2017-05-31  Martin Liska  <mliska@suse.cz>
22624         * tree-vect-loop.c (vect_create_epilog_for_reduction):
22625         Change comment style to one we normally use.
22626         (vectorizable_reduction): Likewise.
22627         (vectorizable_induction): Likewise.
22628         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
22629         (vectorizable_call): Likewise.
22630         (vectorizable_simd_clone_call): Likewise.
22631         (vectorizable_conversion): Likewise.
22632         (vectorizable_assignment): Likewise.
22633         (vectorizable_shift): Likewise.
22634         (vectorizable_operation): Likewise.
22635         (vectorizable_store): Likewise.
22636         (vectorizable_load): Likewise.
22637         * tree-vectorizer.h: Likewise.
22639 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
22641         * passes.c (emergency_dump_function): New.
22642         * tree-pass.h (emergency_dump_function): Declare.
22643         * plugin.c (plugins_internal_error_function): Remove.
22644         * plugin.h (plugins_internal_error_function): Remove declaration.
22645         * toplev.c (internal_error_function): New static function.  Use it...
22646         (general_init): ...here.
22648 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
22650         * config/arc/arc.c (arc_print_operand): Handle constant operands.
22651         (arc_rtx_costs): Add costs for new patterns.
22652         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
22653         * config/arc/predicates.md: Add _1_2_3_operand predicate.
22655 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
22657         * tree-ssa-strlen.c (get_next_strinfo): New function.
22658         (get_stridx_plus_constant): Use it.
22659         (zero_length_string): Likewise.
22660         (adjust_related_strinfos): Likewise.
22661         (adjust_last_stmt): Likewise.
22663 2017-05-31  Richard Biener  <rguenther@suse.de>
22665         PR target/80880
22666         * config/i386/i386.c (ix86_expand_builtin): Remove assert
22667         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
22669 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
22671         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
22672         loop_vinfo argument and use of dependence distance vectors.
22673         Check instead whether the two references differ only in their
22674         initial value and assume that they have the same alignment if the
22675         difference is a multiple of the vector alignment.
22676         (vect_analyze_data_refs_alignment): Update call accordingly.
22678 2017-05-31  Martin Liska  <mliska@suse.cz>
22680         PR target/79155
22681         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
22683 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
22685         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
22686         (create_intersect_range_checks): Move from ...
22687         * tree-data-ref.c (create_intersect_range_checks_index)
22688         (create_intersect_range_checks): ... to here.
22689         (create_runtime_alias_checks): New function factored from ...
22690         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
22691         here.  Call above function.
22692         * tree-data-ref.h (create_runtime_alias_checks): New function.
22694 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
22696         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
22697         segment length for dr_b and compute it in wide_int.
22699 2017-05-31  Richard Biener  <rguenther@suse.de>
22701         PR tree-optimization/80906
22702         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
22703         and pass through iv_map.
22704         (copy_bb_and_scalar_dependences): Adjust.
22705         (translate_pending_phi_nodes): Likewise.
22706         (copy_loop_close_phi_args): Handle code-generating IVs instead
22707         of ICEing.
22709 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
22711         * diagnostic-color.c (color_dict): Add "type-diff".
22712         (parse_gcc_colors): Update comment.
22713         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
22714         -fdiagnostics-show-template-tree and -fno-elide-type.
22715         (GCC_COLORS): Add type-diff to example.
22716         (type-diff=): New.
22717         (-fdiagnostics-show-template-tree): New.
22718         (-fno-elide-type): New.
22719         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
22720         the pp_format_decoder callback.  Call any m_format_postprocessor's
22721         "handle" method.
22722         (pretty_printer::pretty_printer): Initialize
22723         m_format_postprocessor.
22724         (pretty_printer::~pretty_printer): Delete any
22725         m_format_postprocessor.
22726         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
22727         (class format_postprocessor): New class.
22728         (struct pretty_printer::format_decoder): Document the new parameters.
22729         (struct pretty_printer::m_format_postprocessor): New field.
22730         * tree-diagnostic.c (default_tree_printer): Update for new
22731         bool and const char ** params.
22732         * tree-diagnostic.h (default_tree_printer): Likewise.
22734 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
22736         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
22737         (lwa_operand): Delete rs6000_gen_cell_microcode test.
22738         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
22739         rs6000_gen_cell_microcode code.
22740         (rs6000_final_prescan_insn): Delete.
22741         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
22742         "warn-cell-microcode" entries.
22743         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
22744         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
22745         throughout.  Change cc_reg_not_micro_cr0_operand to
22746         cc_reg_not_cr0_operand throughout.
22747         (*extendhi<mode>2_noload): Delete.
22748         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
22749         (mwarn-cell-microcode): Delete.
22750         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
22751         -mgen-cell-microcode and -mwarn-cell-microcode.
22753 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
22755         PR target/80833
22756         * config/i386/constraints.md (Yd): New constraint.
22757         (Ye): Ditto.
22758         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
22759         and (?Yd, r) alternatives.  Update insn attributes.
22760         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
22761         and (?*Yd, r) alternatives.  Update insn attributes.
22762         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
22764 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
22766         * gimplify.c (gimplify_modify_expr): Don't create a
22767         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
22768         function.
22770 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
22772         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
22774 2017-05-30  Richard Biener  <rguenther@suse.de>
22776         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
22777         and reduc_def fields.
22778         (STMT_VINFO_REDUC_TYPE): New define.
22779         (STMT_VINFO_REDUC_DEF): Likewise.
22780         (vect_force_simple_reduction): Adjust prototype.
22781         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
22782         (vect_is_simple_reduction): Remove check_reduction argument.
22783         (vect_force_simple_reduction): Adjust and set
22784         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
22785         (vectorizable_reduction): Do not re-do reduction analysis
22786         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
22787         * tree-parloops.c (gather_scalar_reductions): Adjust.
22789 2017-05-30  Richard Biener  <rguenther@suse.de>
22791         PR middle-end/80901
22792         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
22793         split_edge code.
22795 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
22797         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
22798         Introduce unknown_misalignment parameter and remove vf.
22799         (vect_peeling_hash_get_lowest_cost):
22800         Pass unknown_misalignment parameter.
22801         (vect_enhance_data_refs_alignment):
22802         Fix unsupportable data ref treatment.
22804 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
22806         * tree-vect-data-refs.c (vect_get_data_access_cost):
22807         Workaround for SLP handling.
22808         (vect_enhance_data_refs_alignment):
22809         Compute costs for doing no peeling at all, compare to the best
22810         peeling costs so far and avoid peeling if cheaper.
22812 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
22814         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
22815         Return peeling info and set costs to zero for unlimited cost
22816         model.
22817         (vect_enhance_data_refs_alignment): Also inspect all datarefs
22818         with unknown misalignment. Compute and costs for unknown
22819         misalignment, compare them to the costs for known misalignment
22820         and choose the cheapest for peeling.
22822 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
22824         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
22825         (vect_get_peeling_costs_all_drs): Create function.
22826         (vect_peeling_hash_get_lowest_cost):
22827         Use vect_get_peeling_costs_all_drs.
22828         (vect_peeling_supportable): Create function.
22829         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
22831 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
22833         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
22834         DR_HAS_NEGATIVE_STEP.
22835         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
22836         (vect_enhance_data_refs_alignment): Use.
22837         (vect_duplicate_ssa_name_ptr_info): Use.
22838         * tree-vectorizer.h (dr_misalignment): Use.
22839         (known_alignment_for_access_p): Use.
22841 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
22843         PR target/78838
22844         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
22845         .lowtext.
22846         (has_section_name): New function.
22848 2017-05-30  Martin Liska  <mliska@suse.cz>
22850         PR other/80909
22851         * auto-profile.c (get_function_decl_from_block): Fix
22852         parenthesis.
22854 2017-05-30  Richard Biener  <rguenther@suse.de>
22856         PR middle-end/80876
22857         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
22859 2017-05-30  Martin Liska  <mliska@suse.cz>
22861         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
22862         * dumpfile.h (struct dump_file_info): Remove ctors.
22864 2017-05-30  Martin Liska  <mliska@suse.cz>
22866         * predict.def: Fix GNU coding style.
22868 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
22870         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
22871         Mark 'to' argument with ATTRIBUTE_UNUSED.
22873 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
22875         * config/xtensa/xtensa.c (xtensa_emit_call): Use
22876         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
22877         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
22878         format string.
22880 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
22882         * doc/install.texi (Options specification): Restore entry of
22883         --enable-sjlj-exceptions.
22885 2017-05-27  Michael Eager  <eager@eagercon.com>
22887         Revert:
22888         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
22890         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
22892         * config/microblaze/microblaze.h
22893         (FIXED_REGISTERS): Update in macro.
22894         (CALL_USED_REGISTERS): Update in macro.
22896 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
22898         * doc/install.texi: Add links to macOS binary distributions.
22900 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
22902         PR bootstrap/80887
22903         Revert:
22904         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
22906         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
22908 2017-05-26  Martin Liska  <mliska@suse.cz>
22910         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
22912 2017-05-26  Martin Liska  <mliska@suse.cz>
22914         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
22915         always leading ';; '.
22916         (dump_bb_info): Likewise.
22917         (brief_dump_cfg): Likewise.
22918         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
22919         * dumpfile.c: Remove usage of TDF_VERBOSE.
22920         * dumpfile.h (enum dump_kind): Likewise.
22921         (dump_gimple_bb_header): Do not use TDF_COMMENT.
22922         * print-tree.c (debug_verbose): Remove.
22923         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
22924         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
22925         * tree-diagnostic.c (default_tree_printer): Replace
22926         TDF_DIAGNOSTIC with TDF_SLIM.
22928 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
22930         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
22931         in parameter loop, rather than loop_vinfo.
22932         (create_intersect_range_checks): Ditto.
22933         (vect_create_cond_for_alias_checks): Update call to above functions.
22935 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
22937         PR tree-optimization/80815
22938         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
22939         for merging runtime alias checks.  Handle negative DR_STEPs.
22941 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
22943         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
22944         Move from ...
22945         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
22946         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
22947         out code pruning runtime alias checks.
22948         * tree-data-ref.c (prune_runtime_alias_test_list): New function
22949         factored out from above.
22950         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
22951         Move from ...
22952         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
22953         ... to here.
22954         (prune_runtime_alias_test_list): New decalaration.
22956 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
22958         * tree-vect-data-refs.c (compare_tree): Rename and move ...
22959         * tree-data-ref.c (data_ref_compare_tree): ... to here.
22960         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
22961         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
22962         (operator==, comp_dr_with_seg_len_pair): Ditto.
22963         (vect_prune_runtime_alias_test_list): Ditto.
22965 2017-05-26  Martin Liska  <mliska@suse.cz>
22967         PR ipa/80663
22968         * params.def: Bound partial-inlining-entry-probability param.
22970 2017-05-26  Marek Polacek  <polacek@redhat.com>
22972         PR sanitizer/80875
22973         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
22974         can be negated.
22976 2017-05-26  Richard Biener  <rguenther@suse.de>
22978         PR tree-optimization/80842
22979         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
22980         value.
22982 2017-05-26  Richard Biener  <rguenther@suse.de>
22984         PR tree-optimization/80844
22985         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
22987 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
22989         * doc/md.texi (Machine Constraints): Update x86 family
22990         machine constraints section to match 'config/i386/constraints.md'.
22992 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
22994         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
22996 2017-05-25  Nathan Sidwell  <nathan@acm.org>
22998         * doc/invoke.texi (--enable-languages): Update documentation.
23000 2017-05-25  Martin Liska  <mliska@suse.cz>
23002         * dumpfile.c: Add TDF_FOLDING.
23003         * dumpfile.h (enum dump_kind): Likewise.
23004         * genmatch.c (dt_simplify::gen_1): Use it.
23006 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
23008         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
23010 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
23012         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
23013         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
23015 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
23017         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
23018         * match.pd (X == C): Rewrite it here.
23019         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
23020         with_certain_nonzero_bits2): New predicates.
23021         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
23023 2017-05-24  Nathan Sidwell  <nathan@acm.org>
23025         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
23026         avoid warning.
23028         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
23029         warning.
23031 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
23033         * config/powerpcspe: New port.  Files are copied from the rs6000
23034         port, with "rs6000" in filenames replaced by "powerpcspe".
23036 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
23038         PR rtl-optimization/80754
23039         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
23041 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
23043         * config/sparc/sparc.md (length): Return the correct value for -mflat
23044         sibcalls to match output_sibcall.
23046 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
23048         PR bootstrap/80860
23049         PR bootstrap/80843
23050         * config/rs6000/rs6000.c (struct machine_function): Add new field
23051         n_components.
23052         (rs6000_get_separate_components): Init that field, use it.
23053         (rs6000_components_for_bb): Use the field.
23055 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23057         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
23059 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
23061         PR middle-end/80823
23062         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
23064 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23066         PR target/80725
23067         * config/s390/s390.c (s390_check_qrst_address): Check incoming
23068         address against address_operand predicate.
23069         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
23071 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
23073         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
23074         parameters passed indirectly.
23076 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
23078         * config/i386/i386.md (*movdi_internal): Remove SSE4
23079         alternative 18 (?r, *v).  Update insn attributes.
23080         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
23081         Update insn attributes.
23082         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
23083         Update insn attributes.
23084         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
23085         alternative 1 (r, v). Remove isa attribute.
23086         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
23087         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
23088         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
23090 2017-05-23  Tom de Vries  <tom@codesourcery.com>
23092         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
23093         dg-line directive.
23095 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
23097         * cgraphunit.c (symbol_table::process_new_functions): Update.
23098         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
23099         (inline_generate_summary): Rename to ...
23100         (ipa_fn_summary_generate): ... this one.
23101         (inline_read_summary): Rename to ...
23102         (ipa_fn_summary_read): ... this one.
23103         (inline_write_summary): Rename to ...
23104         (ipa_fn_summary_write): ... this one.
23105         (inline_free_summary): Rename to ...
23106         (ipa_free_fn_summary): ... this one.
23107         (pass_data_local_fn_summary, pass_local_fn_summary,
23108         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
23109         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
23110         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
23111         make_pass_ipa_fn_summary): New.
23112         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
23113         inline_write_summary, inline_free_summary): Remove.
23114         (ipa_free_fn_summary) : New.
23115         * ipa-inline.c (ipa_inline): Update.
23116         (pass_ipa_inline): Do not generate summaries.
23117         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
23118         Remove.
23119         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
23120         and add pass_ipa_fn_summary.
23121         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
23122         New.
23123         (make_pass_inline_parameters): Remove.
23125 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
23127         * omp-low.c (struct omp_context): Remove "default_kind" member.
23128         Adjust all users.
23130         * omp-offload.c (execute_oacc_device_lower): Remove the
23131         parallelism dimensions function attributes for unparallelized
23132         OpenACC kernels constructs.
23134 2017-05-23  Martin Liska  <mliska@suse.cz>
23136         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
23137         functions.
23138         (cgraph_edge::make_speculative): Likewise.
23139         (cgraph_edge::resolve_speculation): Likewise.
23140         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
23141         (cgraph_node::dump): Likewise.
23142         * cgraph.h: Likewise.
23143         * cgraphunit.c (analyze_functions): Likewise.
23144         (symbol_table::compile): Likewise.
23145         * ipa-cp.c (print_all_lattices): Likewise.
23146         (determine_versionability): Likewise.
23147         (initialize_node_lattices): Likewise.
23148         (ipcp_verify_propagated_values): Likewise.
23149         (estimate_local_effects): Likewise.
23150         (update_profiling_info): Likewise.
23151         (create_specialized_node): Likewise.
23152         (perhaps_add_new_callers): Likewise.
23153         (decide_about_value): Likewise.
23154         (decide_whether_version_node): Likewise.
23155         (identify_dead_nodes): Likewise.
23156         (ipcp_store_bits_results): Likewise.
23157         * ipa-devirt.c (dump_targets): Likewise.
23158         (ipa_devirt): Likewise.
23159         * ipa-icf.c (sem_item::dump): Likewise.
23160         (sem_function::equals): Likewise.
23161         (sem_variable::equals): Likewise.
23162         (sem_item_optimizer::read_section): Likewise.
23163         (sem_item_optimizer::execute): Likewise.
23164         (congruence_class::dump): Likewise.
23165         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
23166         (dump_inline_summary): Likewise.
23167         (estimate_node_size_and_time): Likewise.
23168         (inline_analyze_function): Likewise.
23169         * ipa-inline-transform.c (inline_call): Likewise.
23170         * ipa-inline.c (report_inline_failed_reason): Likewise.
23171         (want_early_inline_function_p): Likewise.
23172         (edge_badness): Likewise.
23173         (update_edge_key): Likewise.
23174         (inline_small_functions): Likewise.
23175         * ipa-profile.c (ipa_profile): Likewise.
23176         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
23177         (ipa_make_edge_direct_to_target): Likewise.
23178         (remove_described_reference): Likewise.
23179         (ipa_impossible_devirt_target): Likewise.
23180         (propagate_controlled_uses): Likewise.
23181         (ipa_print_node_params): Likewise.
23182         (ipcp_transform_function): Likewise.
23183         * ipa-pure-const.c (pure_const_read_summary): Likewise.
23184         (propagate_pure_const): Likewise.
23185         * ipa-reference.c (generate_summary): Likewise.
23186         (read_write_all_from_decl): Likewise.
23187         (propagate): Likewise.
23188         (ipa_reference_read_optimization_summary): Likewise.
23189         * ipa-utils.c (ipa_merge_profiles): Likewise.
23190         * ipa.c (walk_polymorphic_call_targets): Likewise.
23191         (symbol_table::remove_unreachable_nodes): Likewise.
23192         (ipa_single_use): Likewise.
23193         * passes.c (execute_todo): Likewise.
23194         * predict.c (drop_profile): Likewise.
23195         * symtab.c (symtab_node::get_dump_name): New function.
23196         (symtab_node::dump_name): Likewise.
23197         (symtab_node::dump_asm_name): Likewise.
23198         (symtab_node::dump_references): Likewise.
23199         (symtab_node::dump_referring): Likewise.
23200         (symtab_node::dump_base): Likewise.
23201         (symtab_node::debug_symtab): Likewise.
23202         * tree-sra.c (convert_callers_for_node): Likewise.
23203         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
23204         * value-prof.c (init_node_map): Likewise.
23206 2017-05-23  Martin Liska  <mliska@suse.cz>
23208         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
23209         and symtab_node::debug_symtab to symbol_table::debug.
23210         * cgraphunit.c (analyze_functions): Use the renamed function.
23211         (symbol_table::compile): Likewise.
23212         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
23213         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
23214         * passes.c (execute_todo): Likewise.
23215         * symtab.c (symbol_table::dump): New function.
23216         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
23218 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
23220         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
23221         that nonconst implies exec.
23223 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
23225         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
23226         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
23227         (inline_edge_summary_vec): Turn into ...
23228         (ipa_call_summaries): ... this one.
23229         (redirect_to_unreachable, edge_set_predicate,
23230         evaluate_properties_for_edge, inline_summary_alloc,
23231         reset_ipa_call_summary, reset_inline_summary,
23232         inline_summary_t::duplicate): Update.
23233         (inline_edge_duplication_hook): Turn to ...
23234         (ipa_call_summary_t::duplicate): ... this one.
23235         (inline_edge_removal_hook): Turn to ...
23236         (ipa_call_summary_t::remove): ... this one.
23237         (dump_inline_edge_summary): Turn to ...
23238         (dump_ipa_call_summary): ... this one.
23239         (estimate_function_body_sizes): Update.
23240         (inline_update_callee_summaries): Update.
23241         (remap_edge_change_prob): Update.
23242         (remap_edge_summaries): Update.
23243         (inline_merge_summary): Update.
23244         (do_estimate_edge_time): Update.
23245         (inline_generate_summary): Update.
23246         (inline_read_section): Update.
23247         (inline_read_summary): Update.
23248         (inline_free_summary): Update.
23249         * ipa-inline.c (can_inline_edge_p): Update.
23250         (compute_inlined_call_time): Update.
23251         (want_inline_small_function_p): Update.
23252         (edge_badness): Update.
23253         (early_inliner): Update.
23254         * ipa-inline.h (inline_edge_summary): Turn to ...
23255         (ipa_call_summary): ... this one.
23256         (ipa_call_summary_t): New class.
23257         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
23258         (ipa_call_summaries): New.
23259         (inline_edge_summary): Remove.
23260         (estimate_edge_growth): Update.
23261         * ipa-profile.c (ipa_propagate_frequency_1): Update.
23262         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
23263         * ipa-split.c (execute_split_functions): Update.
23264         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
23266 2017-05-23  Tom de Vries  <tom@codesourcery.com>
23268         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
23269         attributes): Document rdrand effective target.
23271 2017-05-23  Tom de Vries  <tom@codesourcery.com>
23273         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
23274         attributes): Sort alphabetically.
23276 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
23278         * config/avr/genmultilib.awk: Use gsub instead of gensub.
23280 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
23282         PR target/80718
23283         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
23284         V2DF/V2DI splat into two separate patterns, one that handles
23285         registers, and the other that only handles memory.  Drop support
23286         for splatting from a GPR on ISA 2.07 and then splitting the
23287         splat into direct move and splat.
23288         (vsx_splat_<mode>_reg): Likewise.
23289         (vsx_splat_<mode>_mem): Likewise.
23291 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
23293         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
23295 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
23297         PR middle-end/80809
23298         * omp-low.c (finish_taskreg_remap): New function.
23299         (finish_taskreg_scan): If unit size of ctx->record_type
23300         is non-constant, unshare the size expression and replace
23301         decls in it with possible outer var refs.
23303         PR middle-end/80809
23304         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
23305         GOVD_SHARED rather than GOVD_PRIVATE with it.
23306         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
23307         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
23309         PR middle-end/80853
23310         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
23311         as last argument to build_outer_var_ref for pointer bases of array
23312         section reductions.
23314 2017-05-19  Martin Sebor  <msebor@redhat.com>
23316         * print-tree.c (print_node): Print DECL_READ_P flag.
23318 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
23320         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
23321         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
23322         * cgraph.c: Likewise.
23323         * cgraphunit.c: Likewise.
23324         * gengtype.c: Likewise.
23325         * ipa-cp.c: Likewise.
23326         * ipa-devirt.c: Likewise.
23327         * ipa-icf.c: Likewise.
23328         * ipa-predicate.c: Likewise.
23329         * ipa-profile.c: Likewise.
23330         * ipa-prop.c: Likewise.
23331         * ipa-split.c: Likewise.
23332         * ipa.c: Likewise.
23333         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
23334         edge_predicate_pool, dump_inline_hints,
23335         inline_summary::account_size_time, redirect_to_unreachable,
23336         edge_set_predicate, set_hint_predicate,
23337         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
23338         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
23339         inline_summary_t::remove, remap_hint_predicate_after_duplication,
23340         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
23341         ipa_call_summary_t::remove, initialize_growth_caches,
23342         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
23343         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
23344         mark_modified, unmodified_parm_1, unmodified_parm,
23345         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
23346         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
23347         compute_bb_predicates, will_be_nonconstant_expr_predicate,
23348         will_be_nonconstant_predicate, record_modified_bb_info,
23349         get_minimal_bb, record_modified, param_change_prob,
23350         phi_result_unknown_predicate, predicate_for_phi_result,
23351         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
23352         estimate_function_body_sizes, compute_inline_parameters,
23353         compute_inline_parameters_for_curren, pass_data_inline_parameters,
23354         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
23355         inline_update_callee_summaries, remap_edge_change_prob,
23356         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
23357         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
23358         inline_analyze_function, inline_summary_t::insert,
23359         inline_generate_summary, read_ipa_call_summary, inline_read_section,
23360         inline_read_summary, write_ipa_call_summary, inline_write_summary,
23361         inline_free_summary): Move to ipa-fnsummary.h
23362         (predicate_t): Remove.
23363         * ipa-fnsummary.c: New file.
23364         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
23365         (enum inline_hints_vals, inline_hints, agg_position_info,
23366         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
23367         inline_summaries, ipa_call_summary, ipa_call_summary_t,
23368         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
23369         dump_inline_summary, dump_inline_hints, inline_generate_summary,
23370         inline_read_summary, inline_write_summary, inline_free_summary,
23371         inline_analyze_function, initialize_inline_failed,
23372         inline_merge_summary, inline_update_overall_summary,
23373         compute_inline_parameters): Move to ipa-fnsummary.h
23374         * ipa-fnsummary.h: New file.
23375         * ipa-inline-transform.h: Include ipa-inline.h.
23376         * ipa-inline.c: LIkewise.
23378 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
23380         * ipa-inline.c (edge_badness): Use inlined_time instead of
23381         inline_summaries->get.
23383 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
23385         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
23387 2017-05-22  Nathan Sidwell  <nathan@acm.org>
23389         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
23390         (fdump-lang): Document 'raw' option.
23391         * dumpfile.h (TDI_tu): Delete.
23392         * dumpfile.c (dump_files): Remove translation-unit.
23393         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
23395 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
23397         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
23398         command option from $(AWK) call.
23399         * config/avr/genmultilib.awk: Simplify and rewrite so that it
23400         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
23401         [FORMAT]: Remove handling of variable.
23402         * config/avr/t-multilib: Regenerate.
23404 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
23406         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
23407         self_time.
23408         (dump_inline_summary): Do not print self_time.
23409         (estimate_function_body_sizes): Do not set self_time.
23410         (compute_inline_parameters): Likewise.
23411         (inline_read_section, inline_write_summary): Do not stream self_time.
23412         * ipa-inline.h (inline_summary): Drop self_time.
23414 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
23416         * ipa-inline-analysis.c (account_size_time): Rename to ...
23417         (inline_summary::account_size_time): ... this one.
23418         (reset_ipa_call_summary): Turn to ...
23419         (ipa_call_summary::reset): ... this one.
23420         (reset_inline_summary): Turn to ...
23421         (inline_summary::reset): ... this one.
23422         (inline_summary_t::remove): Update.
23423         (inline_summary_t::duplicate): Update.
23424         (ipa_call_summary_t::remove): Update.
23425         (dump_inline_summary): Update.
23426         (estimate_function_body_sizes): Update.
23427         (compute_inline_parameters): Update.
23428         (estimate_node_size_and_time): Update.
23429         (inline_merge_summary): Update.
23430         (inline_update_overall_summary): Update.
23431         (inline_read_section): Update.
23432         (inline_write_summary): Update.
23433         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
23434         add account_size_time and reset member functions.
23435         (ipa_call_summary): Add reset function.
23436         * ipa-predicate.h (predicate::operator &): Constify.
23438 2017-05-22  Richard Biener  <rguenther@suse.de>
23440         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
23442 2017-05-19  Jason Merrill  <jason@redhat.com>
23444         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
23446 2017-05-19  Marek Polacek  <polacek@redhat.com>
23448         PR sanitizer/80800
23449         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
23450         TYPE_OVERFLOW_WRAPS checks.
23452 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
23454         * tree-core.h (enum omp_clause_default_kind): Add
23455         "OMP_CLAUSE_DEFAULT_PRESENT".
23456         * tree-pretty-print.c (dump_omp_clause): Handle it.
23457         * gimplify.c (enum gimplify_omp_var_data): Add
23458         "GOVD_MAP_FORCE_PRESENT".
23459         (gimplify_adjust_omp_clauses_1): Map it to
23460         "GOMP_MAP_FORCE_PRESENT".
23461         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
23463         * gimplify.c (oacc_default_clause): Clarify.
23465 2017-05-19  Nathan Sidwell  <nathan@acm.org>
23467         LANG_HOOK_REGISTER_DUMPS
23468         * toplev.c (general_init): Call register dump lang hook.
23469         * doc/invoke.texi: Document -fdump-lang option family.
23470         * dumpfile.c (dump_files): Remove class dump here.
23471         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
23472         * dumpfile.h (tree_dump_index): Remove TDI_class.
23473         * langhooks-def.h (lhd_register_dumps): Declare.
23474         (LANG_HOOKS_REGISTER_DUMPS): Define.
23475         (LANG_HOOKS_INITIALIZER): Add it.
23476         * langhooks.c (lhd_register_dumps): Define.
23477         * langhooks.h (struct lang_hooks): Add register_dumps.
23479 2017-05-19  Nathan Sidwell  <nathan@acm.org>
23481         * context.h (context::set_passes): New.
23482         * context.c (context::context): Do not create pass manager.
23483         * toplev.c (general_init): Create pass manager here.
23485 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
23487         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
23488         use this splitter if two add or or instructions would also work for
23489         the constant we want to generate.
23491 2017-05-19  Richard Biener  <rguenther@suse.de>
23493         PR build/80821
23494         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
23495         predicate evaluation.
23497 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
23499         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
23500         add ctor.
23501         * ipa-inline.c (want_inline_small_function_p): Do not cast to
23502         unsigned.
23504 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
23506         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
23507         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
23508         (inline_edge_summary_vec): Turn into ...
23509         (ipa_call_summaries): ... this one.
23510         (redirect_to_unreachable, edge_set_predicate,
23511         evaluate_properties_for_edge, inline_summary_alloc,
23512         reset_ipa_call_summary, reset_inline_summary,
23513         inline_summary_t::duplicate): Update.
23514         (inline_edge_duplication_hook): Turn to ...
23515         (ipa_call_summary_t::duplicate): ... this one.
23516         (inline_edge_removal_hook): Turn to ...
23517         (ipa_call_summary_t::remove): ... this one.
23518         (dump_inline_edge_summary): Turn to ...
23519         (dump_ipa_call_summary): ... this one.
23520         (estimate_function_body_sizes): Update.
23521         (inline_update_callee_summaries): Update.
23522         (remap_edge_change_prob): Update.
23523         (remap_edge_summaries): Update.
23524         (inline_merge_summary): Update.
23525         (do_estimate_edge_time): Update.
23526         (inline_generate_summary): Update.
23527         (inline_read_section): Update.
23528         (inline_read_summary): Update.
23529         (inline_free_summary): Update.
23530         * ipa-inline.c (can_inline_edge_p): Update.
23531         (compute_inlined_call_time): Update.
23532         (want_inline_small_function_p): Update.
23533         (edge_badness): Update.
23534         (early_inliner): Update.
23535         * ipa-inline.h (inline_edge_summary): Turn to ...
23536         (ipa_call_summary): ... this one.
23537         (ipa_call_summary_t): New class.
23538         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
23539         (ipa_call_summaries): New.
23540         (inline_edge_summary): Remove.
23541         (estimate_edge_growth): Update.
23542         * ipa-profile.c (ipa_propagate_frequency_1): Update.
23543         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
23544         * ipa-split.c (execute_split_functions): Update.
23545         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
23547 2017-05-19  Richard Biener  <rguenther@suse.de>
23549         PR middle-end/80764
23550         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
23552 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
23554         * config/rs6000/rs6000.c (struct machine_function): Add field
23555         fpr_is_wrapped_separately.
23556         (rs6000_get_separate_components): Use 64 components.  Handle the
23557         new FPR components.
23558         (rs6000_components_for_bb): Handle the FPR components.
23559         (rs6000_emit_prologue_components): Handle the FPR components.
23560         (rs6000_emit_epilogue_components): Handle the FPR components.
23561         (rs6000_set_handled_components): Handle the FPR components.
23562         (rs6000_emit_prologue): Don't output prologue code for those FPRs
23563         that are already separately shrink-wrapped.
23564         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
23565         that are already separately shrink-wrapped.
23567 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
23569         PR target/80510
23570         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
23571         New predicate.
23573         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
23574         (define_peephole2 for Altivec d-form load): Add peepholes to catch
23575         cases where the register allocator uses a move and an offsettable
23576         memory operation to/from a FPR register on ISA 2.06/2.07.
23577         (define_peephole2 for Altivec d-form store): Likewise.
23579 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
23581         PR target/80799
23582         * config/i386/mmx.md (*mov<mode>_internal): Enable
23583         alternatives 11, 12, 13 and 14 also for 32bit targets.
23584         Remove alternatives 15, 16, 17 and 18.
23585         * config/i386/sse.md (vec_concatv2di): Change
23586         alternative (!x, *y) to (x, ?!*Yn).
23588 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
23590         * dumpfile.h (enum dump_kind): Remove stray comma.
23592 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
23594         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
23595         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
23596         predicate::num_conditions
23597         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
23598         (CHANGED): turn into predicate::changed.
23599         (agg_position_info): Move to ipa-predicate.h
23600         (add_condition, predicate::add_clause, predicate::operator &=,
23601         predicate::or_with, predicate::evaluate, predicate::probability,
23602         dump_condition, dump_clause, predicate::dump,
23603         predicate::remap_after_duplication, predicate::remap_after_inlining,
23604         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
23605         (evaluate_conditions_for_known_args): Update.
23606         (set_cond_stmt_execution_predicate): Update.
23607         * ipa-inline.h: Include ipa-predicate.h
23608         (condition, inline_param_summary, conditions, agg_position_info,
23609         predicate): Move to ipa-predicate.h
23610         * ipa-predicate.c: New file.
23611         * ipa-predicate.h: New file.
23613 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
23615         * final.c (leaf_function_p): Check we are not in a sequence.
23617 2017-05-18  Martin Liska  <mliska@suse.cz>
23619         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
23620         * dumpfile.c (dump_register): Use new enum dump_kind.
23621         (get_dump_file_name): Likewise.
23622         (dump_enable_all): Likewise.
23623         (dump_switch_p_1): Likewise.
23624         (enable_rtl_dump_file): Remove usage of TDF_RTL.
23625         * dumpfile.h (enum dump_kind): New enum type.
23626         (struct dump_file_info): Create constructor and
23627         format fields and comments.
23628         * passes.c (pass_manager::register_one_dump_file):
23629         Use num dump_kind.
23630         * statistics.c (statistics_early_init): Likewise.
23631         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
23632         TDF_TREE with TDF_SLIM.
23633         (gather_memory_references_ref): Likewise.
23635 2017-05-18  Martin Liska  <mliska@suse.cz>
23637         * vec.h (struct vnull): Use it.
23639 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
23641         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
23642         (true_predicate, false_predicate, true_predicate_p,
23643         false_predicate_p): Remove.
23644         (single_cond_predicate, not_inlined_predicate): Turn to member function
23645         in ipa-inline.h
23646         (add_condition): Update.
23647         (add_clause): Turn to...
23648         (predicate::add_clause): ... this one; update; allow passing NULL
23649         as parameter.
23650         (and_predicates): Turn to ...
23651         (predicate::operator &=): ... this one.
23652         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
23653         (or_predicates): Turn to ...
23654         (predicate::or_with): ... this one.
23655         (evaluate_predicate): Turn to ...
23656         (predicate::evaluate): ... this one.
23657         (predicate_probability): Turn to ...
23658         (predicate::probability): ... this one.
23659         (dump_condition): Update.
23660         (dump_predicate): Turn to ...
23661         (predicate::dump): ... this one.
23662         (account_size_time): Update.
23663         (edge_set_predicate): Update.
23664         (set_hint_predicate): UPdate.
23665         (evaluate_conditions_for_known_args): Update.
23666         (evaluate_properties_for_edge): Update.
23667         (remap_predicate_after_duplication): Turn to...
23668         (predicate::remap_after_duplication): ... this one.
23669         (remap_hint_predicate_after_duplication): Update.
23670         (inline_summary_t::duplicate): UPdate.
23671         (dump_inline_edge_summary): Update.
23672         (dump_inline_summary): Update.
23673         (set_cond_stmt_execution_predicate): Update.
23674         (set_switch_stmt_execution_predicate): Update.
23675         (compute_bb_predicates): Update.
23676         (will_be_nonconstant_expr_predicate): Update.
23677         (will_be_nonconstant_predicate): Update.
23678         (phi_result_unknown_predicate): Update.
23679         (predicate_for_phi_result): Update.
23680         (array_index_predicate): Update.
23681         (estimate_function_body_sizes): Update.
23682         (estimate_node_size_and_time): Update.
23683         (estimate_ipcp_clone_size_and_time): Update.
23684         (remap_predicate): Rename to ...
23685         (predicate::remap_after_inlining): ... this one.
23686         (remap_hint_predicate): Update.
23687         (inline_merge_summary): Update.
23688         (inline_update_overall_summary): Update.
23689         (estimate_size_after_inlining): Update.
23690         (read_predicate): Rename to ...
23691         (predicate::stream_in): ... this one.
23692         (read_inline_edge_summary): Update.
23693         (write_predicate): Rename to ...
23694         (predicate::stream_out): ... this one.
23695         (write_inline_edge_summary): Update.
23696         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
23697         (clause_t): Turn to uint32_t
23698         (predicate): Turn to class; implement constructor and operators
23699         ==, !=, &
23700         (size_time_entry): Update.
23701         (inline_summary): Update.
23702         (inline_edge_summary): Update.
23704 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
23706         * fold-const.c (fold_binary_loc): Move transformation...
23707         * match.pd (C - X CMP X): ... here.
23709 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
23711         * config/sparc/sparc.c (sparc_option_override): Set function
23712         alignment for -mcpu=niagara7 to 64 to match the I$ line.
23713         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
23714         latency to 1.
23715         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
23716         latency to 2.
23717         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
23719 2017-05-18  Marek Polacek  <polacek@redhat.com>
23721         PR sanitizer/80797
23722         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
23723         (pass_ubsan::execute): Call gimple_assign_single_p instead of
23724         gimple_assign_load_p.
23726 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
23728         PR middle-end/80692
23729         * real.c (do_compare): Give decimal_do_compare preference over
23730         comparing just the signs.
23732 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
23734         * doc/md.texi (Canonicalization of Instructions): Describe the
23735         canonical form of instructions that inherently set a condition
23736         code register.
23738 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
23740         PR middle-end/80775
23741         * tree-cfg.c: Move deletion of unreachable case statements to after
23742         the merging of consecutive case labels.
23744 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23746         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
23747         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
23748         restoring of callee-saved registers.
23750 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
23752         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
23753         * config/visium/visium.c (single_set_and_flags): Likewise.
23754         * config/visium/visium.md (Substitutions): Likewise.
23756 2017-05-17  Martin Liska  <mliska@suse.cz>
23758         * cfg.c: Introduce dump_flags_t type and
23759         use it instead of int type.
23760         * cfg.h: Likewise.
23761         * cfghooks.c: Likewise.
23762         * cfghooks.h (struct cfg_hooks): Likewise.
23763         * cfgrtl.c: Likewise.
23764         * cfgrtl.h: Likewise.
23765         * cgraph.c (cgraph_node::get_body): Likewise.
23766         * coretypes.h: Likewise.
23767         * domwalk.c: Likewise.
23768         * domwalk.h: Likewise.
23769         * dumpfile.c (struct dump_option_value_info): Likewise.
23770         (dump_enable_all): Likewise.
23771         (dump_switch_p_1): Likewise.
23772         (opt_info_switch_p): Likewise.
23773         * dumpfile.h (enum tree_dump_index): Likewise.
23774         (struct dump_file_info): Likewise.
23775         * genemit.c: Likewise.
23776         * generic-match-head.c: Likewise.
23777         * gengtype.c (open_base_files): Likewise.
23778         * gimple-pretty-print.c: Likewise.
23779         * gimple-pretty-print.h: Likewise.
23780         * graph.c (print_graph_cfg): Likewise.
23781         * graphite-scop-detection.c (dot_all_sese): Likewise.
23782         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
23783         * loop-unroll.c (report_unroll): Likewise.
23784         * passes.c (pass_manager::register_one_dump_file): Likewise.
23785         * print-tree.c: Likewise.
23786         * statistics.c: Likewise.
23787         * tree-cfg.c: Likewise.
23788         * tree-cfg.h: Likewise.
23789         * tree-dfa.c: Likewise.
23790         * tree-dfa.h: Likewise.
23791         * tree-dump.c (dump_function): Likewise.
23792         * tree-dump.h (struct dump_info): Likewise.
23793         * tree-pretty-print.c: Likewise.
23794         * tree-pretty-print.h: Likewise.
23795         * tree-ssa-live.c: Likewise.
23796         * tree-ssa-live.h: Likewise.
23797         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
23798         * tree-vect-loop.c: Likewise.
23799         * tree-vect-slp.c: Likewise.
23801 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
23802             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23804         PR tree-optimization/80457
23805         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
23806         of all arguments to a statement as scalar_to_vec operations.
23807         (vectorizable_call): Adjust call to vect_model_simple_cost for
23808         new parameter.
23809         (vectorizable_conversion): Likewise.
23810         (vectorizable_assignment): Likewise.
23811         (vectorizable_shift): Likewise.
23812         (vectorizable_operation): Likewise.
23813         (vectorizable_comparison): Likewise.
23814         (vect_is_simple_cond): Record the def types for operands.
23815         (vectorizable_condition): Likewise, call vect_model_simple_cost.
23816         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
23817         for statement argument count.
23819 2017-05-16  Carl Love  <cel@us.ibm.com>
23821         * config/rs6000/rs6000-c: Add support for built-in functions
23822         vector unsigned long long vec_bperm (vector unsigned long long,
23823                                              vector unsigned char)
23824         vector signed long long vec_mule (vector signed int,
23825                                           vector signed int)
23826         vector unsigned long long vec_mule (vector unsigned int,
23827                                             vector unsigned int)
23828         vector signed long long vec_mulo (vector signed int,
23829                                           vector signed int)
23830         vector unsigned long long vec_mulo (vector unsigned int,
23831                                             vector unsigned int)
23832         vector signed char vec_sldw (vector signed char,
23833                                      vector signed char,
23834                                      const int)
23835         vector unsigned char vec_sldw (vector unsigned char,
23836                                        vector unsigned char,
23837                                        const int)
23838         vector signed short vec_sldw (vector signed short,
23839                                       vector signed short,
23840                                       const int)
23841         vector unsigned short vec_sldw (vector unsigned short,
23842                                         vector unsigned short,
23843                                         const int)
23844         vector signed int vec_sldw (vector signed int,
23845                                     vector signed int,
23846                                     const int)
23847         vector unsigned int vec_sldw (vector unsigned int,
23848                                       vector unsigned int,
23849                                       const int)
23850         vector signed long long vec_sldw (vector signed long long,
23851                                           vector signed long long,
23852                                           const int)
23853         vector unsigned long long vec_sldw (vector unsigned long long,
23854                                             vector unsigned long long,
23855                                             const int)
23856         * config/rs6000/rs6000-c: Add support for built-in functions
23857         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
23858         * config/rs6000/altivec.h: Add defintion for vec_sldw.
23859         * doc/extend.texi: Update the built-in documentation for the
23860         new built-in functions.
23862 2017-05-16  Marek Polacek  <polacek@redhat.com>
23864         PR sanitizer/80536
23865         PR sanitizer/80386
23866         * tree.c (save_expr): Don't fold the expression.
23868 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
23870         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
23871         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
23872         and (?*y,m).  Update insn attributes.
23874 2017-05-16  Martin Liska  <mliska@suse.cz>
23876         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
23877         flags argument of print_gimple_stmt, print_gimple_expr,
23878         print_generic_stmt and print_generic_expr.
23879         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
23880         * coretypes.h: Likewise.
23881         * except.c (dump_eh_tree): Likewise.
23882         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
23883         * gimple-pretty-print.h: Likewise.
23884         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
23885         (backprop::push_to_worklist): Likewise.
23886         (backprop::pop_from_worklist): Likewise.
23887         (backprop::process_use): Likewise.
23888         (backprop::intersect_uses): Likewise.
23889         (note_replacement): Likewise.
23890         * gimple-ssa-store-merging.c
23891         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
23892         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
23893         (pass_store_merging::execute): Likewise.
23894         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
23895         (ssa_base_cand_dump_callback): Likewise.
23896         (dump_incr_vec): Likewise.
23897         (replace_refs): Likewise.
23898         (replace_mult_candidate): Likewise.
23899         (create_add_on_incoming_edge): Likewise.
23900         (create_phi_basis): Likewise.
23901         (insert_initializers): Likewise.
23902         (all_phi_incrs_profitable): Likewise.
23903         (introduce_cast_before_cand): Likewise.
23904         (replace_one_candidate): Likewise.
23905         * gimplify.c (gimplify_expr): Likewise.
23906         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
23907         (set_rename): Likewise.
23908         (rename_uses): Likewise.
23909         (copy_loop_phi_nodes): Likewise.
23910         (add_close_phis_to_merge_points): Likewise.
23911         (copy_loop_close_phi_args): Likewise.
23912         (copy_cond_phi_args): Likewise.
23913         (graphite_copy_stmts_from_block): Likewise.
23914         (translate_pending_phi_nodes): Likewise.
23915         * graphite-poly.c (print_pdr): Likewise.
23916         (dump_gbb_cases): Likewise.
23917         (dump_gbb_conditions): Likewise.
23918         (print_scop_params): Likewise.
23919         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
23920         (build_cross_bb_scalars_use): Likewise.
23921         (gather_bbs::before_dom_children): Likewise.
23922         * hsa-dump.c (dump_hsa_immed): Likewise.
23923         * ipa-cp.c (print_ipcp_constant_value): Likewise.
23924         (get_replacement_map): Likewise.
23925         * ipa-inline-analysis.c (dump_condition): Likewise.
23926         (estimate_function_body_sizes): Likewise.
23927         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
23928         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
23929         * ipa-prop.c (ipa_dump_param): Likewise.
23930         (ipa_print_node_jump_functions_for_edge): Likewise.
23931         (ipa_modify_call_arguments): Likewise.
23932         (ipa_modify_expr): Likewise.
23933         (ipa_dump_param_adjustments): Likewise.
23934         (ipa_dump_agg_replacement_values): Likewise.
23935         (ipcp_modif_dom_walker::before_dom_children): Likewise.
23936         * ipa-pure-const.c (check_stmt): Likewise.
23937         (pass_nothrow::execute): Likewise.
23938         * ipa-split.c (execute_split_functions): Likewise.
23939         * omp-offload.c (dump_oacc_loop_part): Likewise.
23940         (dump_oacc_loop): Likewise.
23941         * trans-mem.c (tm_log_emit): Likewise.
23942         (tm_memopt_accumulate_memops): Likewise.
23943         (dump_tm_memopt_set): Likewise.
23944         (dump_tm_memopt_transform): Likewise.
23945         * tree-cfg.c (gimple_verify_flow_info): Likewise.
23946         (print_loop): Likewise.
23947         * tree-chkp-opt.c (chkp_print_addr): Likewise.
23948         (chkp_gather_checks_info): Likewise.
23949         (chkp_get_check_result): Likewise.
23950         (chkp_remove_check_if_pass): Likewise.
23951         (chkp_use_outer_bounds_if_possible): Likewise.
23952         (chkp_reduce_bounds_lifetime): Likewise.
23953         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
23954         (chkp_mark_completed_bounds): Likewise.
23955         (chkp_register_incomplete_bounds): Likewise.
23956         (chkp_mark_invalid_bounds): Likewise.
23957         (chkp_maybe_copy_and_register_bounds): Likewise.
23958         (chkp_build_returned_bound): Likewise.
23959         (chkp_get_bound_for_parm): Likewise.
23960         (chkp_build_bndldx): Likewise.
23961         (chkp_get_bounds_by_definition): Likewise.
23962         (chkp_generate_extern_var_bounds): Likewise.
23963         (chkp_get_bounds_for_decl_addr): Likewise.
23964         * tree-chrec.c (chrec_apply): Likewise.
23965         * tree-data-ref.c (dump_data_reference): Likewise.
23966         (dump_subscript): Likewise.
23967         (dump_data_dependence_relation): Likewise.
23968         (analyze_overlapping_iterations): Likewise.
23969         * tree-inline.c (expand_call_inline): Likewise.
23970         (tree_function_versioning): Likewise.
23971         * tree-into-ssa.c (dump_defs_stack): Likewise.
23972         (dump_currdefs): Likewise.
23973         (dump_names_replaced_by): Likewise.
23974         (dump_update_ssa): Likewise.
23975         (update_ssa): Likewise.
23976         * tree-object-size.c (pass_object_sizes::execute): Likewise.
23977         * tree-parloops.c (build_new_reduction): Likewise.
23978         (try_create_reduction_list): Likewise.
23979         (ref_conflicts_with_region): Likewise.
23980         (oacc_entry_exit_ok_1): Likewise.
23981         (oacc_entry_exit_single_gang): Likewise.
23982         * tree-pretty-print.h: Likewise.
23983         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
23984         (get_scalar_evolution): Likewise.
23985         (add_to_evolution): Likewise.
23986         (get_loop_exit_condition): Likewise.
23987         (analyze_evolution_in_loop): Likewise.
23988         (analyze_initial_condition): Likewise.
23989         (analyze_scalar_evolution): Likewise.
23990         (instantiate_scev): Likewise.
23991         (number_of_latch_executions): Likewise.
23992         (gather_chrec_stats): Likewise.
23993         (final_value_replacement_loop): Likewise.
23994         (scev_const_prop): Likewise.
23995         * tree-sra.c (dump_access): Likewise.
23996         (disqualify_candidate): Likewise.
23997         (create_access): Likewise.
23998         (reject): Likewise.
23999         (maybe_add_sra_candidate): Likewise.
24000         (create_access_replacement): Likewise.
24001         (analyze_access_subtree): Likewise.
24002         (analyze_all_variable_accesses): Likewise.
24003         (sra_modify_assign): Likewise.
24004         (initialize_constant_pool_replacements): Likewise.
24005         (find_param_candidates): Likewise.
24006         (decide_one_param_reduction): Likewise.
24007         (replace_removed_params_ssa_names): Likewise.
24008         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
24009         * tree-ssa-copy.c (dump_copy_of): Likewise.
24010         (copy_prop_visit_cond_stmt): Likewise.
24011         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
24012         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
24013         (record_equivalences_from_stmt): Likewise.
24014         * tree-ssa-dse.c (compute_trims): Likewise.
24015         (delete_dead_call): Likewise.
24016         (delete_dead_assignment): Likewise.
24017         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
24018         (forward_propagate_into_cond): Likewise.
24019         (pass_forwprop::execute): Likewise.
24020         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
24021         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
24022         Likewise.
24023         (move_computations_worker): Likewise.
24024         (execute_sm): Likewise.
24025         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
24026         (remove_exits_and_undefined_stmts): Likewise.
24027         (remove_redundant_iv_tests): Likewise.
24028         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
24029         (adjust_iv_update_pos): Likewise.
24030         * tree-ssa-math-opts.c (bswap_replace): Likewise.
24031         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
24032         (value_replacement): Likewise.
24033         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
24034         * tree-ssa-pre.c (print_pre_expr): Likewise.
24035         (get_representative_for): Likewise.
24036         (create_expression_by_pieces): Likewise.
24037         (insert_into_preds_of_block): Likewise.
24038         (eliminate_insert): Likewise.
24039         (eliminate_dom_walker::before_dom_children): Likewise.
24040         (eliminate): Likewise.
24041         (remove_dead_inserted_code): Likewise.
24042         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
24043         * tree-ssa-reassoc.c (get_rank): Likewise.
24044         (eliminate_duplicate_pair): Likewise.
24045         (eliminate_plus_minus_pair): Likewise.
24046         (eliminate_not_pairs): Likewise.
24047         (undistribute_ops_list): Likewise.
24048         (eliminate_redundant_comparison): Likewise.
24049         (update_range_test): Likewise.
24050         (optimize_range_tests_var_bound): Likewise.
24051         (optimize_vec_cond_expr): Likewise.
24052         (rewrite_expr_tree): Likewise.
24053         (rewrite_expr_tree_parallel): Likewise.
24054         (linearize_expr): Likewise.
24055         (break_up_subtract): Likewise.
24056         (linearize_expr_tree): Likewise.
24057         (attempt_builtin_powi): Likewise.
24058         (attempt_builtin_copysign): Likewise.
24059         (transform_stmt_to_copy): Likewise.
24060         (transform_stmt_to_multiply): Likewise.
24061         (dump_ops_vector): Likewise.
24062         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
24063         (print_scc): Likewise.
24064         (set_ssa_val_to): Likewise.
24065         (visit_reference_op_store): Likewise.
24066         (visit_use): Likewise.
24067         (sccvn_dom_walker::before_dom_children): Likewise.
24068         (run_scc_vn): Likewise.
24069         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
24070         Likewise.
24071         (expr_hash_elt::print): Likewise.
24072         (const_and_copies::pop_to_marker): Likewise.
24073         (const_and_copies::record_const_or_copy_raw): Likewise.
24074         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
24075         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
24076         (dump_predicates): Likewise.
24077         (find_uninit_use): Likewise.
24078         (warn_uninitialized_phi): Likewise.
24079         (pass_late_warn_uninitialized::execute): Likewise.
24080         * tree-ssa.c (verify_vssa): Likewise.
24081         (verify_ssa): Likewise.
24082         (maybe_optimize_var): Likewise.
24083         * tree-vrp.c (dump_value_range): Likewise.
24084         (dump_all_value_ranges): Likewise.
24085         (dump_asserts_for): Likewise.
24086         (register_edge_assert_for_2): Likewise.
24087         (vrp_visit_cond_stmt): Likewise.
24088         (vrp_visit_switch_stmt): Likewise.
24089         (vrp_visit_stmt): Likewise.
24090         (vrp_visit_phi_node): Likewise.
24091         (simplify_cond_using_ranges_1): Likewise.
24092         (fold_predicate_in): Likewise.
24093         (evrp_dom_walker::before_dom_children): Likewise.
24094         (evrp_dom_walker::push_value_range): Likewise.
24095         (evrp_dom_walker::pop_value_range): Likewise.
24096         (execute_early_vrp): Likewise.
24098 2017-05-16  Richard Biener  <rguenther@suse.de>
24100         * dwarf2out.c (loc_list_from_tree_1): Do not create
24101         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
24103 2017-05-16  Richard Biener  <rguenther@suse.de>
24105         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
24106         just generated.
24107         (note_variable_value_in_expr): If we resolved the decl ref
24108         do not push to the stack.
24110 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
24112         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
24113         operations in fast-math mode.
24114         (vaddq_f16): Likewise.
24115         (vmul_f16): Likewise.
24116         (vmulq_f16): Likewise.
24117         (vsub_f16): Likewise.
24118         (vsubq_f16): Likewise.
24119         * config/arm/neon.md (add<mode>3): New.
24120         (sub<mode>3): New.
24121         (fma:<VH:mode>3): New.  Also remove outdated comment.
24122         (mul<mode>3): New.
24124 2017-05-16  Martin Liska  <mliska@suse.cz>
24126         PR ipa/79849.
24127         PR ipa/79850.
24128         * ipa-devirt.c (warn_types_mismatch): Fix typo.
24129         (odr_types_equivalent_p): Likewise.
24131 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
24133         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
24135 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
24137         PR target/80425
24138         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
24139         non-interunit SSE move alternatives with '?'.
24140         (zero-extendsidi peephole2): New peephole to skip intermediate
24141         general register in SSE zero-extend sequence.
24143 2017-05-15  Jeff Law  <law@redhat.com>
24145         * reorg.c (relax_delay_slots): Create a new variable to hold
24146         the temporary target rather than clobbering TARGET_LABEL.
24148         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
24149         missing argument to extract_bit_field call.
24150         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
24152 2017-05-15  Martin Liska  <mliska@suse.cz>
24154         PR driver/31468
24155         * gcc.c (process_command): Do not allow empty argument of -o option.
24157 2017-05-15  Renlin Li  <renlin.li@arm.com>
24159         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
24160         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
24161         * config/aarch64/constraints.md (Usf): Add long call check.
24162         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
24163         (call_value): Likewise.
24164         (sibcall): Likewise.
24165         (sibcall_value): Likewise.
24166         (call_insn): New.
24167         (call_value_insn): New.
24168         (sibcall_insn): Update rtx pattern.
24169         (sibcall_value_insn): Likewise.
24170         (call_internal): Remove.
24171         (call_value_internal): Likewise.
24172         (sibcall_internal): Likewise.
24173         (sibcall_value_internal): Likewise.
24174         (call_reg): Likewise.
24175         (call_symbol): Likewise.
24176         (call_value_reg): Likewise.
24177         (call_value_symbol): Likewise.
24179 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
24181         PR target/80600
24182         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
24184 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
24186         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
24187         compatible with CCGOCmode and with CCZmode.
24189 2017-05-14  Martin Sebor  <msebor@redhat.com>
24191         PR middle-end/77671
24192         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
24193         (gimple_fold_builtin_snprintf): Same.
24194         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
24195         (gimple_fold_builtin_snprintf): Same.
24196         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
24197         of character types.
24198         (is_call_safe): New function.
24199         (try_substitute_return_value): Call it.
24200         (try_simplify_call): New function.
24201         (pass_sprintf_length::handle_gimple_call): Call it.
24203 2017-05-14  Martin Sebor  <msebor@redhat.com>
24205         PR middle-end/80669
24206         * builtins.c (expand_builtin_stpncpy): Simplify.
24208 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
24210         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
24211         * config/i386/i386.h
24212         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
24213         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
24214         (struct machine_function): Add new members call_ms2sysv,
24215         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
24216         (struct machine_frame_state): New fields sp_realigned and
24217         sp_realigned_offset.
24218         * config/i386/i386.c
24219         (enum xlogue_stub): New enum.
24220         (enum xlogue_stub_sets): New enum.
24221         (class xlogue_layout): New class.
24222         (struct ix86_frame): New fields stack_realign_allocate_offset,
24223         stack_realign_offset and outlined_save_offset.  Modify comments to
24224         detail stack layout when using out-of-line stubs.
24225         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
24226         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
24227         -mcall-ms2sysv-xlogues.
24228         (stub_managed_regs): New static variable.
24229         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
24230         registers managed by out-of-line stub.
24231         (disable_call_ms2sysv_xlogues): New function.
24232         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
24233         m->call_ms2sysv when appropriate and compute frame layout for
24234         out-of-line stubs.
24235         (sp_valid_at, fp_valid_at): New inline functions.
24236         (choose_basereg): New function.
24237         (choose_baseaddr): Add align parameter, use choose_basereg and modify
24238         all callers.
24239         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
24240         Use align parameter of choose_baseaddr to generated aligned SSE movs
24241         when possible.
24242         (pro_epilogue_adjust_stack): Modify to track
24243         machine_frame_state::sp_realigned.
24244         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
24245         (ix86_nsaved_sseregs): Likewise.
24246         (ix86_emit_save_regs): Likewise.
24247         (ix86_emit_save_regs_using_mov): Likewise.
24248         (ix86_emit_save_sse_regs_using_mov): Likewise.
24249         (get_scratch_register_on_entry): Likewise.
24250         (gen_frame_set): New function.
24251         (gen_frame_load): Likewise.
24252         (gen_frame_store): Likewise.
24253         (emit_outlined_ms2sysv_save): Likewise.
24254         (emit_outlined_ms2sysv_restore): Likewise.
24255         (ix86_expand_prologue): Modify stack re-alignment code and call
24256         emit_outlined_ms2sysv_save when appropriate.
24257         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
24258         parameter rtx_insn *insn, which allows the function to be used to only
24259         generate the notes.
24260         (ix86_expand_epilogue): Modify validity checks of frame and stack
24261         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
24262         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
24263         * config/i386/predicates.md
24264         (save_multiple): New predicate.
24265         (restore_multiple): Likewise.
24266         * config/i386/sse.md
24267         (save_multiple<mode>): New pattern.
24268         (save_multiple_realign<mode>): Likewise.
24269         (restore_multiple<mode>): Likewise.
24270         (restore_multiple_and_return<mode>): Likewise.
24271         (restore_multiple_leave_return<mode>): Likewise.
24272         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
24274 2017-05-14  Julia Koval  <julia.koval@intel.com>
24276         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
24277         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
24278         (__builtin_ia32_xsetbv): New builtins.
24279         * config/i386/i386.c (ix86_expand_special_args_builtin):
24280         Process new types.
24281         (ix86_expand_builtin): Special expand for new intrinsics.
24282         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
24283         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
24284         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
24286 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24288         * cfganal.c (inverted_post_order_compute): Change argument type
24289         to vec *.
24290         * cfganal.h (inverted_post_order_compute): Adjust prototype.
24291         * df-core.c (rest_of_handle_df_initialize): Adjust.
24292         (rest_of_handle_df_finish): Likewise.
24293         (df_analyze_1): Likewise.
24294         (df_analyze): Likewise.
24295         (loop_inverted_post_order_compute): Change argument to be a vec *.
24296         (df_analyze_loop): Adjust.
24297         (df_get_n_blocks): Likewise.
24298         (df_get_postorder): Likewise.
24299         * df.h (struct df_d): Change field to be a vec.
24300         * lcm.c (compute_laterin): Adjust.
24301         (compute_available): Likewise.
24302         * lra-lives.c (lra_create_live_ranges_1): Likewise.
24303         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
24304         * tree-ssa-pre.c (compute_antic): Likewise.
24306 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24308         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
24309         (depth_first_search::depth_first_search): Change structure init
24310         function to this constructor.
24311         (depth_first_search::add_bb): Rename function to this member.
24312         (depth_first_search::execute): Likewise.
24313         (flow_dfs_compute_reverse_finish): Adjust.
24315 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24317         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
24318         (longest_simple_path): Likewise.
24319         * shrink-wrap.c (spread_components): Likewise.
24320         (disqualify_problematic_components): Likewise.
24321         (emit_common_heads_for_components): Likewise.
24322         (emit_common_tails_for_components): Likewise.
24323         (insert_prologue_epilogue_for_components): Likewise.
24325 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24327         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
24328         auto_sbitmap.
24330 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24332         * df-core.c (df_set_blocks): Start using auto_bitmap.
24333         (df_compact_blocks): Likewise.
24334         * df-problems.c (df_rd_confluence_n): Likewise.
24335         * df-scan.c (df_insn_rescan_all): Likewise.
24336         (df_process_deferred_rescans): Likewise.
24337         (df_update_entry_block_defs): Likewise.
24338         (df_update_exit_block_uses): Likewise.
24339         (df_entry_block_bitmap_verify): Likewise.
24340         (df_exit_block_bitmap_verify): Likewise.
24341         (df_scan_verify): Likewise.
24342         * lra-constraints.c (lra_constraints): Likewise.
24343         (undo_optional_reloads): Likewise.
24344         (lra_undo_inheritance): Likewise.
24345         * lra-remat.c (calculate_gen_cands): Likewise.
24346         (do_remat): Likewise.
24347         * lra-spills.c (assign_spill_hard_regs): Likewise.
24348         (spill_pseudos): Likewise.
24349         * tree-ssa-pre.c (bitmap_set_and): Likewise.
24350         (bitmap_set_subtract_values): Likewise.
24352 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24354         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
24355         management with auto_bitmap.
24356         (fix_inter_tick): Likewise.
24357         (fix_recovery_deps): Likewise.
24358         * ira.c (add_store_equivs): Likewise.
24359         (find_moveable_pseudos): Likewise.
24360         (split_live_ranges_for_shrink_wrap): Likewise.
24361         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
24362         (rtx_reuse_manager::seen_def_p): Likewise.
24363         (rtx_reuse_manager::set_seen_def): Likewise.
24364         * print-rtl.h (class rtx_reuse_manager): Likewise.
24366 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24368         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
24369         lifetime.
24370         (migrate_btr_def): Likewise.
24371         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
24372         * df-core.c (loop_post_order_compute): Likewise.
24373         (loop_inverted_post_order_compute): Likewise.
24374         * hsa-common.h: Likewise.
24375         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
24376         * init-regs.c (initialize_uninitialized_regs): Likewise.
24377         * ipa-inline.c (resolve_noninline_speculation): Likewise.
24378         (inline_small_functions): Likewise.
24379         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
24380         * ira.c (combine_and_move_insns): Likewise.
24381         (build_insn_chain): Likewise.
24382         * loop-invariant.c (find_invariants): Likewise.
24383         * lower-subreg.c (propagate_pseudo_copies): Likewise.
24384         * predict.c (tree_predict_by_opcode): Likewise.
24385         (predict_paths_leading_to): Likewise.
24386         (predict_paths_leading_to_edge): Likewise.
24387         (estimate_loops_at_level): Likewise.
24388         (estimate_loops): Likewise.
24389         * shrink-wrap.c (try_shrink_wrapping): Likewise.
24390         (spread_components): Likewise.
24391         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
24392         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
24393         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
24394         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
24395         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
24396         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
24397         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
24398         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
24399         (mark_threaded_blocks): Likewise.
24400         (thread_through_all_blocks): Likewise.
24401         * tree-ssa.c (verify_ssa): Likewise.
24402         (execute_update_addresses_taken): Likewise.
24403         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
24405 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24407         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
24408         auto_vec.
24409         (post_order_compute): Likewise.
24410         (inverted_post_order_compute): Likewise.
24411         (pre_and_rev_post_order_compute_fn): Likewise.
24413 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24415         * genrecog.c (int_set::int_set): Explicitly construct our
24416         auto_vec base class.
24417         * vec.h (auto_vec::auto_vec): New constructor.
24419 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24421         * bitmap.h (class auto_bitmap): New constructor taking
24422         bitmap_obstack * argument.
24424 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24426         * bitmap.h (class auto_bitmap): Change type of m_bits to
24427         bitmap_head, and adjust ctor / dtor and member operators.
24429 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
24431         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
24432         when returned register mode doesn't match original mode.
24434 2017-05-12  Jeff Law  <law@redhat.com>
24435             Jakub Jelinek  <jakub@redhat.com>
24437         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
24438         we look for cc setter after the compare-elim changes.
24439         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
24440         within the vector to match what compare-elim now expects.
24441         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
24442         (xorsi3_flags, one_cmplsi2_flags): Likewise.
24444         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
24445         after the compare-elim changes.
24446         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
24447         the vector to match what compare-elim now expects.
24448         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
24449         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
24450         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
24451         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
24452         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
24454         * config/visium/visium.c (single_set_and_flags): Fix where
24455         we look for cc setter after the compare-elim changes.
24456         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
24457         with the vector to match what compare-elim now expects.
24458         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
24459         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
24460         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
24461         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
24462         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
24463         (neg<mode>2_insn_set_overflow): Likewise.
24465 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
24467         PR middle-end/79794
24468         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
24469         maybe_expand_insn call, set ops[0].target.  If still set after call,
24470         set alt_rtl.  Add extra arg to recursive calls.
24471         (extract_bit_field): Add alt_rtl argument.  Pass to
24472         extract_bit_field.
24473         * expmed.h (extract_bit_field): Fix prototype.
24474         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
24475         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
24476         to extract_bit_field_calls.
24477         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
24478         Pass alt_rtl to extract_bit_field calls.
24479         * calls.c (store_unaligned_arguments_into_psuedos)
24480         load_register_parameters): Pass extra NULL to extract_bit_field calls.
24481         * optabs.c (maybe_legitimize_operand): Clear op->target when call
24482         gen_reg_rtx.
24483         * optabs.h (struct expand_operand): Add target bitfield.
24485 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
24487         * compare-elim.c (try_eliminate_compare): Canonicalize
24488         operation with embedded compare to
24489         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
24490          (set (reg) (operation)].
24492         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
24494 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
24496         PR target/80723
24497         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
24498         cost of adding a carry flag for ADC instruction.
24499         [case MINUS]: Ignore the cost of subtracting a carry flag
24500         for SBB instruction.
24502 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
24504         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
24505         and x86intrin.h
24506         * config/rs6000/bmiintrin.h: New file.
24507         * config/rs6000/bmi2intrin.h: New file.
24508         * config/rs6000/x86intrin.h: New file.
24510 2017-05-12  Jeff Law  <law@redhat.com>
24512         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
24513         markers.
24515 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
24517         PR middle-end/80707
24518         * tree-cfg.c: Remove cfg edges of unreachable case statements.
24520 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
24522         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
24523         early expansion of vector divide builtins.
24524         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
24525         builtins identified as having unsigned arguments.
24527 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
24529         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
24530         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
24531         expansion of vector logical operations (and, andc, or, xor,
24532         nor, orc, nand).
24534 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
24536         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
24537         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
24539 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
24541         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
24542         early GIMPLE expansion of vector multiplies.
24544 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
24546         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
24547         TARGET_HAVE_MOVT conditional.
24548         (movt splitter): Likewise.
24550 2017-05-12  Richard Biener  <rguenther@suse.de>
24552         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
24553         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24554         Fold all stmts not inplace.
24556 2017-05-12  Richard Biener  <rguenther@suse.de>
24558         PR tree-optimization/80713
24559         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
24560         inserted_exprs bit for not removed stmts.
24562 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
24564         PR middle-end/69921
24565         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
24566         parallelized" attribute for parallelized OpenACC kernels.
24567         * omp-offload.c (execute_oacc_device_lower): Use it.
24569         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
24570         Set "oacc kernels" attribute.
24571         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
24572         parameter.  Adjust all users.
24573         (oacc_fn_attrib_kernels_p): Remove function.
24574         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
24575         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
24576         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
24577         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
24578         assert "oacc kernels" attribute is set.
24580 2017-05-11  Carl Love  <cel@us.ibm.com>
24582         * config/rs6000/rs6000-c: Add support for built-in functions
24583         vector unsigned char vec_popcnt (vector signed char)
24584         vector unsigned char vec_popcnt (vector unsigned char)
24585         vector unsigned short vec_popcnt (vector signed short)
24586         vector unsigned short vec_popcnt (vector unsigned short)
24587         vector unsigned int vec_popcnt (vector signed int)
24588         vector unsigned int vec_popcnt (vector unsigned int)
24589         vector unsigned long long vec_popcnt (vector signed long long)
24590         vector unsigned long long vec_popcnt (vector unsigned long long)
24591         vector signed long long vec_slo (vector signed long long,
24592                                          vector signed char)
24593         vector signed long long vec_slo (vector signed long long,
24594                                          vector unsigned char)
24595         vector unsigned long long vec_slo (vector unsigned long long,
24596                                            vector signed char)
24597         vector unsigned long long vec_slo (vector unsigned long long,
24598                                            vector unsigned char)
24599         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
24600         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
24601         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
24602         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
24603         * doc/extend.texi: Update the built-in documentation file for the
24604         new built-in functions.
24606 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
24608         * attribs.h (sorted_attr_string): Move machine independent
24609         functions for target clone support from the i386 port to common
24610         code.  Rename ix86_function_versions to common_function_versions.
24611         Rename make_name to make_unique_name.
24612         (common_function_versions): Likewise.
24613         (make_unique_name): Likewise.
24614         (make_dispatcher_decl): Likewise.
24615         (is_function_default_version): Likewise.
24616         * attribs.c (attr_strcmp): Likewise.
24617         (sorted_attr_string): Likewise.
24618         (common_function_versions): Likewise.
24619         (make_unique_name): Likewise.
24620         (make_dispatcher_decl): Likewise.
24621         (is_function_default_version): Likewise.
24622         * config/i386/i386.c (attr_strcmp): Likewise.
24623         (sorted_attr_string): Likewise.
24624         (ix86_function_versions): Likewise.
24625         (make_name): Likewise.
24626         (make_dispatcher_decl): Likewise.
24627         (is_function_default_version): Likewise.
24628         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
24630 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24632         PR target/80695
24633         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
24634         Account for direct move costs for vec_construct of integer
24635         vectors.
24637 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
24639         PR target/80706
24640         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
24641         (UNSPEC_STX_ATOMIC): Ditto.
24642         (loaddi_via_sse): New insn.
24643         (storedi_via_sse): Ditto.
24644         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
24645         Update corresponding peephole2 patterns.
24646         (atomic_storedi_fpu): Ditto.
24648 2017-05-11  Julia Koval  <julia.koval@intel.com>
24650         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
24651         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
24652         New intrinsics.
24653         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
24654         (__builtin_ia32_rsqrt14ss_mask): New builtins.
24655         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
24657 2017-05-11  Nathan Sidwell  <nathan@acm.org>
24659         * graphite-poly.c: Include dumpfile.h.
24661         * dumpfle.h (dump_function): Declare here ...
24662         * tree-dump.h (dump_function): ... not here.
24663         * dumpfile.c: #include tree-cfg.h.
24664         (dump_function): Move here from ...
24665         * tree-dump.c (dump_function): ... here.
24666         * gimplify.c: #include splay-tree.h, not tree-dump.h.
24667         * graphite-poly.c: Don't include tree-dump.h.
24668         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
24669         * print-tree.c: Likewise.
24670         * stor-layout.c: Likewise.
24671         * tree-nested.c: Likewise.
24673         * dumpfile.c (dump_start): Use TDF_FLAGS.
24674         (dump_enable_all): Fix TDF_KIND check thinko.
24676 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24678         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24679         array entries to represent two legal parameterizations of the
24680         overloaded __builtin_cmpb function, as represented by the
24681         P6_OV_BUILTIN_CMPB constant.
24682         (altivec_resolve_overloaded_builtin): Add special case handling
24683         for the __builtin_cmpb function, as represented by the
24684         P6_OV_BUILTIN_CMPB constant.
24685         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
24686         (BU_P6_64BIT_2): New macro.
24687         (BU_P6_OVERLOAD_2): New macro
24688         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
24689         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
24690         (CMPB): Add overload support to represent both 32-bit and 64-bit
24691         compare-bytes function.
24692         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
24693         support for TARGET_CMPB.
24694         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
24695         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
24696         documentation of the __builtin_cmpb overloaded built-in function.
24698 2017-05-11  Richard Biener  <rguenther@suse.de>
24700         PR tree-optimization/80705
24701         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
24702         bases are not vectorizable.
24704 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24706         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
24707         when counting register pressure.
24709 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24711         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
24712         (iv_ca_more_deps): Renamed to ...
24713         (iv_ca_compare_deps): ... this.
24714         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
24716 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24718         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
24719         to ...
24720         (determine_group_iv_costs): ... here.
24721         (find_inv_vars_cb): Record inv var if it's not recorded before.
24723 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24725         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
24726         (get_shiftadd_cost): Ditto.
24728 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24730         * tree-ssa-address.c: Include header file.
24731         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
24732         address.
24733         (add_to_parts): Refactor.
24734         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
24735         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
24736         in new order.
24738 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24740         PR tree-optimization/53090
24741         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
24742         COMP_IV_EXPR_2.
24743         (extract_cond_operands): Detect condition with IV on both sides
24744         and return COMP_IV_EXPR_2.
24745         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
24746         (rewrite_use_compare): Simplify by removing call to function
24747         extract_cond_operands.
24749 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24751         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
24752         (extract_cond_operands): Detect condition comparing against non-
24753         invariant bound and return appropriate enum value.
24754         (find_interesting_uses_cond): Update use of extract_cond_operands.
24755         Handle its return value accordingly.
24756         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
24758 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24760         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
24761         nonlinear iv_use computation in loop invariant sensitive way.
24763 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24765         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
24766         (find_iv_candidates): Call relate_compare_use_with_all_cands.
24768 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24770         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
24771         (dump_cand): Support iv_cand.inv_exprs.
24772         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
24773         for candidates.
24774         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
24775         iv_cand.inv_exprs.
24777 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24779         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
24780         from ...
24781         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
24782         as local function.  Include necessary header files.
24783         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
24785 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24787         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
24789 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24791         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
24792         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
24793         RSHIFT_EXPR and BIT_NOT_EXPR.
24795 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24797         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
24798         (adjust_setup_cost): New parameter supporting round up adjustment.
24799         (struct address_cost_data): Delete.
24800         (force_expr_to_var_cost): Don't bound cost with spill_cost.
24801         (split_address_cost, ptr_difference_cost): Delete.
24802         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
24803         (struct ainc_cost_data): New struct.
24804         (get_address_cost_ainc): New function.
24805         (get_address_cost, get_computation_cost): Reimplement.
24806         (determine_group_iv_cost_address): Record inv_expr for all uses of
24807         a group.
24808         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
24809         (iv_ca_has_deps): Reimplemented to ...
24810         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
24811         than OLD_CP.
24812         (iv_ca_extend): Call iv_ca_more_deps.
24814 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24816         * tree-ssa-address.c (struct mem_address): Move to header file.
24817         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
24818         * tree-ssa-address.h (struct mem_address): Move from C file.
24819         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
24821 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24823         * tree-affine.h (aff_combination_type): New interface.
24824         (aff_combination_zero_p): Remove static.
24825         (aff_combination_const_p): New interface.
24826         (aff_combination_singleton_var_p): New interfaces.
24828 2017-05-11  Richard Biener  <rguenther@suse.de>
24830         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24831         Skip unreachable blocks and destinations.
24832         (eliminate): Move stmt removal and fixup ...
24833         (fini_eliminate): ... here.  Skip inserted exprs.
24834         (pass_pre::execute): Move fini_pre after fini_eliminate.
24835         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
24836         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
24837         PRE to get rid of dead code that has invalid SSA form and
24838         split critical edges again.
24840 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
24842         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
24844 2017-05-11  Richard Biener  <rguenther@suse.de>
24846         * passes.c (execute_function_todo): Verify loops if they are
24847         said to be up-to-date.
24848         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
24849         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
24851 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
24853         PR target/80090
24854         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
24855         handle calling assemble_external ourself.
24857         PR target/79027
24858         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
24859         modes with zero size.  Enhance comment.
24861 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24863         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
24864         built-ins for vec_xl and vec_xst with short and char pointer
24865         arguments.
24867 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
24869         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
24870         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
24871         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
24872         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
24873         (_mm_maskz_min_round_ss): New intrinsics.
24874         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
24875         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
24876         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
24877         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
24878         (__builtin_ia32_minss_mask_round): New builtins.
24879         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
24880         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
24881         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
24882         Rename to ...
24883         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
24884         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
24885         Change to ...
24886         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
24887         ... this.
24889 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
24891         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
24892         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
24893         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
24894         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
24895         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
24896         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
24897         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
24898         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
24899         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
24900         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
24901         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
24902         (__builtin_ia32_mulss_mask_round): New builtins.
24903         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
24904         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
24905         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
24906         Rename to ...
24907         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
24908         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
24909         Change to ...
24910         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
24911         ... this.
24913 2017-05-10  Julia Koval  <julia.koval@intel.com>
24915         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
24916         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
24917         (_mm256_setr_m128i): New intrinsics.
24919 2017-05-10  Julia Koval  <julia.koval@intel.com>
24921         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
24922         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
24923         (_mm_maskz_rcp14_ss): New intrinsics.
24924         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
24925         (__builtin_ia32_rcp14ss_mask): New builtins.
24926         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
24928 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
24930         PR tree-optimization/51513
24931         * tree-cfg.c (gimple_seq_unreachable_p): New function.
24932         (assert_unreachable_fallthru_edge_p): Use it.
24933         (group_case_labels_stmt): Likewise.
24934         * tree-cfg.h: Prototype it.
24935         * stmt.c: Include cfghooks.h and tree-cfg.h.
24936         (emit_case_dispatch_table) <gap_label>: New local variable.
24937         Use it to fill dispatch table gaps.
24938         Test for default_label before updating probabilities.
24939         (expand_case) <default_label>: Remove unneeded initialization.
24940         Test for unreachable default case statement and remove its edge.
24941         Set default_label accordingly.
24942         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
24944 2017-05-10  Carl Love  <cel@us.ibm.com>
24946         * config/rs6000/rs6000-c: Add support for built-in functions
24947         vector signed char      vec_neg (vector signed char)
24948         vector signed short int vec_neg (vector short int)
24949         vector signed int       vec_neg (vector signed int)
24950         vector signed long long vec_neg (vector signed long long)
24951         vector float            vec_neg (vector float)
24952         vector double           vec_neg (vector double)
24953         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
24954         overload.
24955         * config/rs6000/altivec.h: Add define for vec_neg
24956         * doc/extend.texi: Update the built-in documentation for the
24957         new built-in functions.
24959 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
24961         PR tree-optimization/77644
24962         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
24964 2017-05-10  Nathan Sidwell  <nathan@acm.org>
24966         * dumpfile.h (TDI_lang_all): New.
24967         (TDF_KIND): New. Renumber others
24968         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
24969         than bits.
24970         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
24971         lang-all.
24972         (get_dump_file_name): Adjust suffix generation.
24973         (dump_enable_all): Use TDF_KIND.
24974         * doc/invoke.texi (-fdump-lang-all): Document.
24976         * dumpfile.h: Tabify.
24978 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
24980         PR target/80671
24981         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
24982         Move member access before delete.
24984 2017-05-10  Alexandre Oliva <aoliva@redhat.com>
24986         * tree-inline.c (expand_call_inline): Split block at stmt
24987         before the call.
24989 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
24991         PR target/68163
24992         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
24993         are now unused after splitting mov{sf,sd}_hardfloat.
24994         (f32_lr2): Likewise.
24995         (f32_lm): Likewise.
24996         (f32_lm2): Likewise.
24997         (f32_li): Likewise.
24998         (f32_li2): Likewise.
24999         (f32_lv): Likewise.
25000         (f32_sr): Likewise.
25001         (f32_sr2): Likewise.
25002         (f32_sm): Likewise.
25003         (f32_sm2): Likewise.
25004         (f32_si): Likewise.
25005         (f32_si2): Likewise.
25006         (f32_sv): Likewise.
25007         (f32_dm): Likewise.
25008         (f32_vsx): Likewise.
25009         (f32_av): Likewise.
25010         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
25011         For movsf, order stores so the VSX stores occur before the GPR
25012         store which encourages the register allocator to use a traditional
25013         FPR instead of a GPR.  For movsd, order the stores so that the GPR
25014         store comes before the VSX stores to allow the power6 to work.
25015         This is due to the power6 not having a 32-bit integer store
25016         instruction from a FPR.
25017         (movsf_hardfloat): Likewise.
25018         (movsd_hardfloat): Likewise.
25020 2017-05-09  Martin Sebor  <msebor@redhat.com>
25022         PR translation/80280
25023         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
25024         added in r247778.
25026         PR translation/80280
25027         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
25028         data member added in r247778.
25029         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
25031 2017-05-09  Nathan Sidwell  <nathan@acm.org>
25033         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
25035         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
25036         typedefs.
25038 2017-05-09  Marek Polacek  <polacek@redhat.com>
25040         * doc/invoke.texi: Fix typo.
25042 2017-05-09  Richard Biener  <rguenther@suse.de>
25044         * tree-vrp.c (vrp_val_is_max): Adjust comment.
25045         (vrp_val_is_min): Likewise.
25046         (set_value_range_to_value): Likewise.
25047         (set_value_range_to_nonnegative): Likewise.
25048         (gimple_assign_nonzero_p): Likewise.
25049         (gimple_stmt_nonzero_p): Likewise.
25050         (vrp_int_const_binop): Likewise.  Remove unreachable case.
25051         (adjust_range_with_scev): Adjust comments.
25052         (compare_range_with_value): Likewise.
25053         (extract_range_from_phi_node): Likewise.
25054         (test_for_singularity): Likewise.
25056 2017-05-09  Richard Biener  <rguenther@suse.de>
25058         * tree-vrp.c (get_single_symbol): Add assert that we don't
25059         get overflowed constants as invariant part.
25060         (compare_values_warnv): Add comment before the TREE_NO_WARNING
25061         checks.  Use wi::cmp instead of recursing for integer constants.
25062         (compare_values): Just ignore whether we assumed undefined
25063         overflow instead of failing the compare.
25064         (extract_range_for_var_from_comparison_expr): Add comment before the
25065         TREE_NO_WARNING sets.
25066         (test_for_singularity): Likewise.
25067         (extract_range_from_comparison): Do not disable optimization
25068         when we assumed undefined overflow.
25069         (extract_range_basic): Remove init of unused var.
25071 2017-05-09  Richard Biener  <rguenther@suse.de>
25073         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
25074         (extract_range_from_multiplicative_op_1): Adjust.
25075         (extract_range_from_binary_expr_1): Use int_const_binop.
25077 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
25079         PR target/80101
25080         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
25081         rs6000_store_data_bypass_p in seven define_bypass directives and
25082         in several comments.
25083         * config/rs6000/rs6000-protos.h: Add prototype for
25084         rs6000_store_data_bypass_p function.
25085         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
25086         function implements slightly different (rs6000-specific) semantics
25087         than store_data_bypass_p, returning false rather than aborting
25088         with assertion error when arguments do not satisfy the
25089         requirements of store data bypass.
25090         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
25091         rs6000_store_data_bypass_p.
25093 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
25095         * config/xtensa/xtensa-protos.h
25096         (xtensa_initial_elimination_offset): New declaration.
25097         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
25098         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
25099         macro definition, add case for FRAME_POINTER_REGNUM when
25100         FRAME_GROWS_DOWNWARD.
25101         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
25102         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
25103         xtensa_initial_elimination_offset.
25105 2017-05-08  Nathan Sidwell  <nathan@acm.org>
25107         * doc/invoke.texi: Alphabetize -fdump options.
25109 2017-05-08  Martin Sebor  <msebor@redhat.com>
25111         PR translation/80280
25112         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
25114 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
25116         * target.def (compute_frame_layout): New optional target hook.
25117         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
25118         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
25119         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
25120         target hook.
25121         * reload1.c (verify_initial_elim_offsets): Likewise.
25122         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
25123         (use_simple_return_p): Call arm_compute_frame_layout if needed.
25124         (arm_get_frame_offsets): Split up into this ...
25125         (arm_compute_frame_layout): ... and this function.
25127 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
25129         * config/aarch64/constraints.md (Usa): New constraint.
25130         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
25132 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25134         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
25135         with_multilib_list after it has been checked.
25137 2017-05-08  Richard Biener  <rguenther@suse.de>
25139         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
25140         (bitmap_set_subtract_values): Likewise.
25142 2017-05-08  Richard Biener  <rguenther@suse.de>
25144         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
25145         (gimple_assign_nonzero): ... this and remove strict_overflow_p
25146         argument.
25147         (gimple_stmt_nonzero_warnv_p): Rename to ...
25148         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
25149         argument.
25150         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
25151         (extract_range_basic): Adjust, do not disable propagation on
25152         strict overflow sensitive simplification.
25153         (vrp_visit_cond_stmt): Likewise.
25155 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
25157         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
25158         body size unconditionally.
25160 2017-05-07  Jeff Law  <law@redhat.com>
25162         Revert:
25163         2017-05-06  Jeff Law  <law@redhat.com>
25164         PR tree-optimization/78496
25165         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
25166         code.
25168         PR tree-optimization/78496
25169         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
25170         (simplify_stmt_using_ranges): Call it.
25171         (vrp_dom_walker::before_dom_children): Extract equivalences
25172         from an ASSERT_EXPR with an equality comparison against a
25173         constant.
25175 2017-05-06  Jeff Law  <law@redhat.com>
25177         PR tree-optimization/78496
25178         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
25179         code.
25181         PR tree-optimization/78496
25182         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
25183         (simplify_stmt_using_ranges): Call it.
25184         (vrp_dom_walker::before_dom_children): Extract equivalences
25185         from an ASSERT_EXPR with an equality comparison against a
25186         constant.
25188 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
25190         * lra-constraints.c (lra_copy_reg_equiv): New function.
25191         (split_reg): Use it to copy equivalence information from the
25192         original register to the spill register.
25194 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
25196         PR rtl-optimization/75964
25197         * simplify-rtx.c (simplify_const_relational_operation): Remove
25198         invalid handling of comparisons of integer ABS.
25200 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
25202         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
25203         initialize to zero.
25204         (init_regs): Remove declaration.
25205         (function_arg_advance_32): Initialize error_p as boolean variable.
25207 2017-05-05  Nathan Sidwell  <nathan@acm.org>
25209         * store-motion.c (remove_reachable_equiv_notes): Reformat long
25210         lines.  Use for (;;).
25212 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25214         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
25215         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
25216         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
25217         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
25218         VF=2 that require versioning.
25220 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
25222         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
25223         int.
25225 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
25227         * diagnostic.h (diagnostic_override_option_index): Convert from
25228         macro to inline function.
25230 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
25232         * diagnostic.c (last_module_changed_p): New function.
25233         (set_last_module): New function.
25234         (diagnostic_report_current_module): Convert macro usage to
25235         the above functions.
25236         * diagnostic.h (diagnostic_context::last_module): Strengthen
25237         from const line_map * to const line_map_ordinary *.
25238         (diagnostic_last_module_changed): Delete macro.
25239         (diagnostic_set_last_module): Delete macro.
25241 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
25243         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
25244         with diagnostic_report_diagnostic.
25245         (diagnostic_n_impl_richloc): Likewise.
25246         * diagnostic.h (report_diagnostic): Delete macro.
25247         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
25248         with diagnostic_report_diagnostic.
25249         * substring-locations.c (format_warning_va): Likewise.
25251 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
25253         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
25254         save/restor of format_spec.  Move option-printing code to...
25255         (print_option_information): ...this new function, and
25256         reimplement by simply printing to the pretty_printer,
25257         rather than appending to the format string.
25259 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
25261         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
25262         handling logic into...
25263         (update_effective_level_from_pragmas): ...this new function.
25265 2017-05-04  Andrew Waterman  <andrew@sifive.com>
25267         * config/riscv/riscv.opt (mstrict-align): New option.
25268         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
25269         (SLOW_UNALIGNED_ACCESS): Define.
25270         (riscv_slow_unaligned_access): Declare.
25271         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
25272         field.
25273         (riscv_slow_unaligned_access): New variable.
25274         (rocket_tune_info): Set slow_unaligned_access to true.
25275         (optimize_size_tune_info): Set slow_unaligned_access to false.
25276         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
25277         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
25278         (riscv_option_override): Set riscv_slow_unaligned_access.
25279         * doc/invoke.texi: Add -mstrict-align to RISC-V.
25281 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
25283         * config/riscv/riscv.md: Unify indentation.
25285 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
25287         PR target/79038
25288         PR target/79202
25289         PR target/79203
25290         * config/rs6000/rs6000.md (u code attribute): Add FIX and
25291         UNSIGNED_FIX.
25292         (extendsi<mode>2): Add support for doing sign extension via
25293         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
25294         don't have ISA 3.0 instructions.
25295         (extendsi<mode>2 splitter): Likewise.
25296         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
25297         generate the normal insns since SImode can now go in vector
25298         registers.  Disallow the special UNSPECs needed for previous
25299         machines to hide SImode being used.  Add new insns
25300         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
25301         (fix_trunc<mode>si2_stfiwx): Likewise.
25302         (fix_trunc<mode>si2_internal): Likewise.
25303         (fixuns_trunc<mode>si2): Likewise.
25304         (fixuns_trunc<mode>si2_stfiwx): Likewise.
25305         (fctiw<u>z_<mode>_smallint): Likewise.
25306         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
25307         of floating point to 32-bit integer from doing a direct move to
25308         the GPR registers to do a store.
25309         (fctiwz_<mode>): Break long line.
25311 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
25313         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
25314         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
25315         (addr_list, addr_offset_valid_p): New.
25316         (split_address_groups): Check offset validity with above function.
25317         (gt-tree-ssa-loop-ivopts.h): Include header file.
25319 2017-05-05  Nathan Sidwell  <nathan@acm.org>
25321         * config.gcc (arm*-*-*): Add missing 'fi'.
25323 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
25325         * doc/invoke.texi (-fopt-info): Explicitly say order of options
25326         included in -fopt-info does not matter.
25327         * doc/optinfo.texi (-fopt-info): Fix description of default
25328         behavour. Explicitly say order of options included in -fopt-info
25329         does not matter.
25331 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25333         * config.gcc: Allow combinations of aprofile and rmprofile values for
25334         --with-multilib-list.
25335         * config/arm/t-multilib: New file.
25336         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
25337         variables.  Remove setting of ISA and floating-point ABI in
25338         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
25339         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
25340         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
25341         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
25342         CPU options.
25343         * config/arm/t-rmprofile: Likewise except for the matches changes.
25344         * doc/install.texi (--with-multilib-list): Document the combination of
25345         aprofile and rmprofile values and warn about pitfalls in doing that.
25347 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
25349         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
25350         (movdi_aarch64): Likewise.
25352 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
25354         PR tree-optimization/80632
25355         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
25356         field.
25357         (build_arrays): Initialize it for virtual phis.
25358         (fix_phi_nodes): Use it for virtual phis.
25360         PR tree-optimization/80558
25361         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
25362         [x, y] op z into [x op, y op z] for op & or | if conditions
25363         are met.
25365 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
25366             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
25368         PR target/71607
25369         * config/arm/arm.md (use_literal_pool): Remove.
25370         (64-bit immediate split): No longer takes cost into consideration
25371         if arm_disable_literal_pool is enabled.
25372         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
25373         used when arm_disable_literal_pool is enabled.
25374         (arm_max_const_double_inline_cost): Remove use of
25375         arm_disable_literal_pool.
25376         (push_minipool_fix): Add assert.
25377         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
25378         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
25379         (no_literal_pool_sf_immediate): New.
25381 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
25383         PR tree-optimization/80613
25384         * tree-ssa-dce.c (propagate_necessity): Remove cases for
25385         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
25387 2017-05-05  Richard Biener  <rguenther@suse.de>
25389         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
25391 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
25393         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
25394         of this flag from insn conditions due to removal from r247495.
25396 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
25398         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
25399         New function.
25400         (arm_early_store_addr_dep_ptr): Likewise.
25401         * config/arm/aarch-common-protos.h
25402         (arm_early_load_addr_dep_ptr): Add prototype.
25403         (arm_early_store_addr_dep_ptr): Likewise.
25404         * config/arm/cortex-a53.md: Add new bypasses.
25406 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
25408         * tree.c (next_type_uid): Change type to unsigned.
25409         (type_hash_canon): Decrement back next_type_uid if
25410         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
25411         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
25412         if possible.
25414 2017-05-04  Martin Sebor  <msebor@redhat.com>
25416         * builtins.c: Fix a trivial typo in a comment.
25418         PR middle-end/79234
25419         * builtins.c (check_sizes): Adjust to handle reading past the end.
25420         Avoid printing excessive upper bound of ranges.  Use %E to print
25421         tree nodes instead of converting them to %wu.
25422         (expand_builtin_memchr): New function.
25423         (compute_dest_size): Rename...
25424         (compute_objsize): ...to this.
25425         (expand_builtin_memcpy): Adjust.
25426         (expand_builtin_mempcpy): Adjust.
25427         (expand_builtin_strcat): Adjust.
25428         (expand_builtin_strcpy): Adjust.
25429         (check_strncat_sizes): Adjust.
25430         (expand_builtin_strncat): Adjust.
25431         (expand_builtin_strncpy): Adjust and simplify.
25432         (expand_builtin_memset): Adjust.
25433         (expand_builtin_bzero): Adjust.
25434         (expand_builtin_memcmp): Adjust.
25435         (expand_builtin): Handle memcmp.
25436         (maybe_emit_chk_warning): Check strncat just once.
25438 2017-05-04  Martin Sebor  <msebor@redhat.com>
25440         PR preprocessor/79214
25441         PR middle-end/79222
25442         PR middle-end/79223
25443         * builtins.c (check_sizes): Add inlining context and issue
25444         warnings even when -Wno-system-headers is set.
25445         (check_strncat_sizes): Same.
25446         (expand_builtin_strncat): Same.
25447         (expand_builtin_memmove): New function.
25448         (expand_builtin_stpncpy): Same.
25449         (expand_builtin): Handle memmove and stpncpy.
25451 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
25453         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
25454         which is not used any more.
25456 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
25458         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
25460 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
25462         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
25463         (cortexa53_tunings): Likewise.
25464         (cortexa57_tunings): Likewise.
25465         (cortexa72_tunings): Likewise.
25466         (cortexa73_tunings): Likewise.
25468 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
25470         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
25471         Set loop alignment to 8.
25473 2017-05-04  Martin Sebor  <msebor@redhat.com>
25475         PR translation/80280
25476         * builtins.c (expand_builtin_object_size): Add missing quoting to
25477         %D and like directives.
25478         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
25479         (hsa_type_for_tree_type): Same.
25480         (verify_function_arguments): Same.
25481         * symtab.c (symbol_table::change_decl_assembler_name): Same.
25482         * varasm.c (get_section): Same.
25483         (mark_weak): Same.
25485 2017-05-04  Martin Sebor  <msebor@redhat.com>
25487         PR translation/80280
25488         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
25490 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
25492         * config/aarch64/aarch64.c (generic_addrcost_table):
25493         Change HI/TI mode setting.
25495 2017-05-04  Martin Jambor  <mjambor@suse.cz>
25497         PR tree-optimization/80622
25498         * tree-sra.c (comes_initialized_p): New function.
25499         (build_accesses_from_assign): Only set write lazily when
25500         comes_initialized_p is false.
25501         (analyze_access_subtree): Use comes_initialized_p.
25502         (propagate_subaccesses_across_link): Assert !comes_initialized_p
25503         instead of testing for PARM_DECL.
25505 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25507         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
25508         constraint on operand 0 to allow more general addressing modes.
25509         Adjust output template.
25510         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
25511         New function.
25512         * config/aarch64/aarch64-protos.h
25513         (aarch64_address_valid_for_prefetch_p): Declare prototype.
25514         * config/aarch64/constraints.md (Dp): New address constraint.
25515         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
25516         predicate.
25518 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
25520         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
25521         update use of estimate_ipcp_clone_size_and_time.
25522         (estimate_local_effects): Update use of
25523         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
25524         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
25525         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
25526         Return nonspecialized time.
25528 2017-05-04  Richard Biener  <rguenther@suse.de>
25530         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
25531         for the last VUSE which def dominates the PHI.  Directly call
25532         maybe_skip_until.
25533         (get_continuation_for_phi_1): Remove.
25535 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
25537         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
25538         to explain the use of truncating division.  Cap the number of
25539         iterations to the maximum given by nb_iterations_upper_bound,
25540         if defined.
25542 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25544         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
25545         * configure: Regenerate.
25546         * config.in: Regenerate.
25547         * config/i386/driver-mingw32.c: new file.
25548         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
25549         * config.host: Link driver-mingw32.o on MinGW host.
25550         * doc/install.texi: Document new --enable-mingw-wildcard configure
25551         option.
25553 2017-05-04  Marek Polacek  <polacek@redhat.com>
25555         PR tree-optimization/80612
25556         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
25558 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
25559             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
25561         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
25562         (movt splitter): Likewise.
25563         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
25564         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
25565         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
25566         block for Thumb-1 with MOVT.
25567         (thumb2_legitimate_address_p): Move code block ...
25568         (can_avoid_literal_pool_for_label_p): ... into this new function.
25569         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
25570         literal pool.
25571         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
25572         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
25573         "M-profile targets with the MOVT instruction".
25575 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
25577         * config/arm/arm-builtins.c (arm_init_builtins): Rename
25578         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
25579         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
25581 2017-05-04  Martin Liska  <mliska@suse.cz>
25583         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
25584         variable cond_code.
25586 2017-05-04  Richard Biener  <rguenther@suse.de>
25588         * tree.c (array_at_struct_end_p): Handle arrays at struct
25589         end with flexarrays more conservatively.  Refactor and treat
25590         arrays of arrays or aggregates more strict.  Fix
25591         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
25592         * tree.c (array_at_struct_end_p): Adjust prototype.
25593         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
25594         * gimple-fold.c (get_range_strlen): Likewise.
25595         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
25597 2017-05-04  Richard Biener  <rguenther@suse.de>
25599         PR tree-optimization/31130
25600         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
25601         false.
25602         (supports_overflow_infinity): Likewise.
25603         (is_negative_overflow_infinity): Likewise.
25604         (is_positive_overflow_infinity): Likewise.
25605         (is_overflow_infinity): Likewise.
25606         (stmt_overflow_infinity): Likewise.
25607         (overflow_infinity_range_p): Likewise.
25608         (usable_range_p): Remove as always returning true.
25609         (make_overflow_infinity): Remove.
25610         (negative_overflow_infinity): Likewise.
25611         (positive_overflow_infinity): Likewise.
25612         (avoid_overflow_infinity): Likewise.
25613         (set_value_range): Adjust accordingly.
25614         (set_value_range_to_nonnegative): Likewise, remove now unused
25615         overflow_infinity arg.
25616         (vrp_operand_equal_p): Adjust.
25617         (update_value_range): Likewise.
25618         (range_int_cst_singleton_p): Likewise.
25619         (operand_less_p): Likewise.
25620         (compare_values_warnv): Likewise.
25621         (extract_range_for_var_from_comparison_expr): Likewise.
25622         (vrp_int_const_binop): Likewise.
25623         (zero_nonzero_bits_from_vr): Likewise.
25624         (extract_range_from_multiplicative_op_1): Likewise.
25625         (extract_range_from_binary_expr_1): Likewise.
25626         (extract_range_from_unary_expr): Likewise.
25627         (extract_range_from_comparison): Likewise.
25628         (extract_range_basic): Likewise.
25629         (adjust_range_with_scev): Likewise.
25630         (compare_ranges): Likewise.
25631         (compare_range_with_value): Likewise.
25632         (dump_value_range): Likewise.
25633         (test_for_singularity): Likewise, remove strict_overflow_p parameter
25634         never used.
25635         (simplify_cond_using_ranges): Adjust.
25637 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
25639         * brig-builtins.def: Added a builtin for class_f64.
25640         * builtin-types.def: Added a builtin type needed by class_f64.
25642 2017-05-03  Jason Merrill  <jason@redhat.com>
25644         * timevar.def: Add TV_CONSTEXPR.
25646 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
25648         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
25650 2017-05-03  Martin Jambor  <mjambor@suse.cz>
25652         * ipa-prop.c (ipa_update_after_lto_read): Removed.
25653         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
25654         * ipa-cp.c (ipcp_propagate_stage): Do not call
25655         ipa_update_after_lto_read.
25656         * ipa-inline.c (ipa_inline): Likewise.
25658 2017-05-03  Martin Jambor  <mjambor@suse.cz>
25660         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
25661         tag.  Added a default constructor and a destructor.
25662         (ipa_edge_args_sum_t): New class;
25663         (ipa_edge_args_sum): Declare.
25664         (ipa_edge_args_vector): Remove declaration.
25665         (IPA_EDGE_REF): Use ipa_edge_args_sum.
25666         (ipa_free_edge_args_substructures): Remove declaration.
25667         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
25668         (ipa_edge_args_info_available_for_edge_p): Likewise.
25669         * ipa-prop.c (ipa_edge_args_vector): Removed.
25670         (edge_removal_hook_holder): Likewise.
25671         (edge_duplication_hook_holder): Likewise.
25672         (ipa_edge_args_sum): New variable.
25673         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
25674         ipa_edge_args_vector.
25675         (ipa_free_edge_args_substructures): Likewise.
25676         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
25677         ipa_edge_args_vector.
25678         (ipa_edge_removal_hook): Turned into method
25679         ipa_edge_args_sum_t::remove.
25680         (ipa_edge_duplication_hook): Turned into method
25681         ipa_edge_args_sum_t::duplicate.
25682         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
25683         registering edge hooks.
25684         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
25685         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
25686         ipa_edge_args_sum instead of ipa_edge_args_vector.
25687         * ipa-profile.c (ipa_profile): Likewise.
25689 2017-05-03  Martin Jambor  <mjambor@suse.cz>
25691         * symbol-summary.h (function_summary): New method exists.
25692         (function_summary::symtab_removal): Deallocate through release.
25693         (call_summary): New class.
25694         (gt_ggc_mx): New overload.
25695         (gt_pch_nx): Likewise.
25696         (gt_pch_nx): Likewise.
25698 2017-05-03  Jeff Law  <law@redhat.com>
25700         PR tree-optimization/78496
25701         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
25702         from simplify_cond_using_ranges.  Split off code to walk
25703         backwards through casts into ...
25704         (simplify_cond_using_ranges_2): New function.
25705         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
25706         (execute_vrp): After identifying jump threads, call
25707         simplify_cond_using_ranges_2.
25709 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
25711         PR bootstrap/80609
25712         * ipa-inline.h (inline_summary): Add ctor.
25713         (create_ggc): Do not use ggc_cleared_alloc.
25715 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
25716             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25718         * gcc.c (handle_braces): Support escaping in switch matching
25719         text.
25720         * doc/invoke.texi (Spec Files): Document it.
25721         Remove superfluous @code markup in items.
25723 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
25725         * diagnostic-show-locus.c (struct column_range): New struct.
25726         (get_affected_columns): New function.
25727         (get_printed_columns): New function.
25728         (struct correction): New struct.
25729         (correction::ensure_capacity): New function.
25730         (correction::ensure_terminated): New function.
25731         (struct line_corrections): New struct.
25732         (line_corrections::~line_corrections): New dtor.
25733         (line_corrections::add_hint): New function.
25734         (layout::print_trailing_fixits): Reimplement in terms of the new
25735         classes.
25736         (selftest::test_overlapped_fixit_printing): New function.
25737         (selftest::diagnostic_show_locus_c_tests): Call it.
25739 2017-05-03  Nathan Sidwell  <nathan@acm.org>
25741         Canonicalize canonical type hashing
25742         * tree.h (type_hash_canon_hash): Declare.
25743         * tree.c (type_hash_list, attribute_hash_list): Move into
25744         type_hash_canon_hash.
25745         (build_type_attribute_qual_variant): Break out hash code calc into
25746         type_hash_canon_hash.
25747         (type_hash_canon_hash): New.  Generic type hash computation.
25748         (build_range_type_1, build_array_type_1, build_function_type,
25749         build_method_type_directly, build_offset_type, build_complex_type,
25750         make_vector_type): Call it.
25752 2017-05-03  Richard Biener  <rguenther@suse.de>
25754         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
25755         When all DRs have unknown misaligned do not always peel
25756         when there is a store but apply the same costing model as if
25757         there were only loads.
25759 2017-05-03  Richard Biener  <rguenther@suse.de>
25761         Revert
25762         PR tree-optimization/80492
25763         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
25764         compare_base_decls returning dont-know properly.
25766 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25768         * config/arm/iterators.md (CCSI): New mode iterator.
25769         (arch): New mode attribute.
25770         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
25771         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
25772         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
25773         code iterator for success result mode.
25774         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
25775         the corresponding new insn generators.
25777 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
25779         Revert r247509
25780         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
25781         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
25783 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
25785         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
25786         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
25787         (DDR_A): Wrap DDR argument in brackets.
25788         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
25789         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
25790         (DDR_REVERSED_P): Likewise.
25792 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
25794         PR tree-optimization/79472
25795         * tree-switch-conversion.c (struct switch_conv_info): Add
25796         contiguous_range and default_case_nonstandard fields.
25797         (collect_switch_conv_info): Compute contiguous_range and
25798         default_case_nonstandard fields, don't clear final_bb if
25799         contiguous_range and only the default case doesn't have the required
25800         structure.
25801         (check_all_empty_except_final): Set default_case_nonstandard instead
25802         of failing if contiguous_range and the default case doesn't have empty
25803         block.
25804         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
25805         and only the default case doesn't have the required constants.  Skip
25806         virtual phis.
25807         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
25808         if default_case_nonstandard.
25809         (build_constructors): Build constant 1 just once.  Assert that default
25810         values aren't inserted in between cases if contiguous_range.  Skip
25811         virtual phis.
25812         (build_arrays): Skip virtual phis.
25813         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
25814         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
25815         Handle virtual phis.
25816         (gen_inbound_check): Handle default_case_nonstandard case.
25817         (process_switch): Adjust check_final_bb caller.  Call
25818         gather_default_values with the first non-default case instead of
25819         default case if default_case_nonstandard.
25821 2017-05-02  Nathan Sidwell  <nathan@acm.org>
25823         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
25824         check.  Fix formatting.
25826 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
25828         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
25829         errors when comparing specialized and unspecialized times.
25831 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
25833         * diagnostic-show-locus.c
25834         (layout::should_print_annotation_line_p): Make private.
25835         (layout::print_annotation_line): Make private.
25836         (layout::annotation_line_showed_range_p): Make private.
25837         (layout::show_ruler): Make private.
25838         (layout::print_source_line): Make private.  Pass in line and
25839         line_width, rather than calling location_get_source_line.  Drop
25840         returned value.
25841         (layout::print_leading_fixits): New method.
25842         (layout::print_any_fixits): Rename to...
25843         (layout::print_trailing_fixits): ...this, and make private.
25844         Don't print newline fixits.
25845         (diagnostic_show_locus): Move logic for printing one row into...
25846         (layout::print_line): ...this new function.  Move the
25847         location_get_source_line call and error-handling from
25848         print_source_line to here.  Call print_leading_fixits, and rename
25849         print_any_fixits to print_trailing_fixits.
25850         (selftest::test_fixit_insert_containing_newline): Update now that
25851         newlines are partially supported.
25852         (selftest::test_fixit_insert_containing_newline_2): New test.
25853         (selftest::test_fixit_replace_containing_newline): Update comments.
25854         (selftest::diagnostic_show_locus_c_tests): Call the new test.
25855         * edit-context.c (class added_line): New class.
25856         (class edited_line): Describe newline handling in comment.
25857         (edited_line::actually_edited_p): New method.
25858         (edited_line::print_content): Delete redundant decl.
25859         (edited_line::m_predecessors): New field.
25860         (edited_file::print_content): Call edited_line::print_content.
25861         (edited_file::print_diff): Update to support newlines.
25862         (edited_file::print_diff_hunk): Likewise.
25863         (edited_file::print_run_of_changed_lines): New function.
25864         (edited_file::print_diff_line): Convert to...
25865         (print_diff_line): ...this.
25866         (edited_file::get_effective_line_count): New function.
25867         (edited_line::edited_line): Initialize new field m_predecessors.
25868         (edited_line::~edited_line): Clean up m_predecessors.
25869         (edited_line::apply_fixit): Handle newlines.
25870         (edited_line::get_effective_line_count): New function.
25871         (edited_line::print_content): New function.
25872         (edited_line::print_diff_lines): New function.
25873         (selftest::test_applying_fixits_insert_containing_newline): New
25874         test.
25875         (selftest::test_applying_fixits_replace_containing_newline): New
25876         test.
25877         (selftest::insert_line): New function.
25878         (selftest::test_applying_fixits_multiple_lines): Add example of
25879         inserting a line.
25880         (selftest::edit_context_c_tests): Call the new tests.
25882 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
25884         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
25885         parameter cand.  Update dump information.
25886         (get_computation_cost): Update uses.
25888 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
25890         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
25891         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
25892         (get_computation_at, rewrite_use_address): Update use of
25893         get_computation_aff.
25895 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
25897         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
25898         (get_computation): Delete.
25899         (get_computation_cost): Implement like get_computation_cost_at.
25900         Use get_computation_at.
25901         (get_computation_cost_at): Delete.
25902         (rewrite_use_nonlinear_expr): Use get_computation_at.
25903         (rewrite_use_compare, remove_unused_ivs): Ditto.
25905 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
25907         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
25909 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
25911         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
25912         (ivopts_global_cost_for_size): Rename parameter and update uses.
25913         (iv_ca_recount_cost): Update uses.
25914         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
25915         candidates seperately in n_invs and n_cands.
25916         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
25918 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
25920         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
25921         (find_inv_vars_cb): New.
25922         (find_depends): Renamed to ...
25923         (find_inv_vars): ... this.
25924         (add_candidate_1, force_var_cost): Call find_inv_vars.
25925         (split_address_cost, determine_group_iv_cost_cond): Ditto.
25927 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
25929         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
25930         inv_vars.  Add inv_exprs.
25931         (struct iv_cand): Rename depends_on to inv_vars.
25932         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
25933         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
25934         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
25935         (dump_cand): Dump inv_vars.
25936         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
25937         (record_invariant, find_depends, add_candidate_1): Ditto.
25938         (set_group_iv_cost, force_var_cost): Ditto.
25939         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
25940         (get_computation_cost_at, get_computation_cost): Ditto.
25941         (determine_group_iv_cost_generic): Ditto.
25942         (determine_group_iv_cost_address): Ditto.
25943         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
25944         (determine_group_iv_costs): Ditto.
25945         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
25946         (iv_ca_set_remove_invariants): Renamed to ...
25947         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
25948         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
25949         (iv_ca_set_add_invariants):  Renamed to ...
25950         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
25951         (iv_ca_set_cp): Use iv_ca_set_add_invs.
25952         (iv_ca_has_deps): Support inv_vars and inv_exprs.
25953         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
25954         (create_new_ivs): Remove useless dump.
25956 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
25958         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
25959         iv_cand code.
25960         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
25961         (iv_ca_set_no_cp, create_new_iv): Ditto.
25963 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
25965         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
25967 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
25969         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
25970         function tree_check2.
25972 2017-05-02  Martin Liska  <mliska@suse.cz>
25974         * doc/gcov.texi: Add missing preposition.
25975         * gcov.c (function_info::function_info): Properly fill up
25976         all member variables.
25978 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
25980         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
25982 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
25984         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
25986 2017-05-02  Martin Liska  <mliska@suse.cz>
25988         PR lto/77954.
25989         * lto-streamer-in.c (lto_read_tree_1): Remove
25990         LTO_STREAMER_DEBUG.
25991         * lto-streamer.c (struct tree_hash_entry): Likewise.
25992         (struct tree_entry_hasher): Likewise.
25993         (tree_entry_hasher::hash): Likewise.
25994         (tree_entry_hasher::equal): Likewise.
25995         (lto_streamer_init): Likewise.
25996         (lto_orig_address_map): Likewise.
25997         (lto_orig_address_get): Likewise.
25998         (lto_orig_address_remove): Likewise.
25999         * lto-streamer.h: Likewise.
26000         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
26001         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
26003 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
26005         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
26006         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
26007         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
26008         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
26009         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
26010         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
26011         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
26012         (mm_maskz_sub_ss): New intrinsics.
26013         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
26014         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
26015         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
26016         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
26017         (__builtin_ia32_subss_mask_round): New builtins.
26018         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
26019         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
26020         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
26021         Renamed to ...
26022         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
26023         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
26024         Changed to ...
26025         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
26026         ... this.
26028 2017-05-02  Martin Jambor  <mjambor@suse.cz>
26030         PR tree-optimization/78687
26031         * tree-sra.c (access): New field parent.
26032         (process_subtree_disqualification): New function.
26033         (disqualify_candidate): Call it.
26034         (build_accesses_from_assign): Reset write flag if creating an
26035         assighnment link.
26036         (build_access_subtree): Fill in parent field and also prpagate
26037         down grp_write flag.
26038         (create_artificial_child_access): New parameter set_grp_write, set
26039         grp_write to its value.
26040         (propagate_subaccesses_across_link): Also propagate grp_write flag
26041         values.
26042         (propagate_all_subaccesses): Push the closest parent back to work
26043         queue if add_access_to_work_queue returned true.
26045 2017-05-02  Richard Biener  <rguenther@suse.de>
26047         * common.opt (fstrict-overflow): Alias negative to fwrapv.
26048         * doc/invoke.texi (fstrict-overflow): Remove all traces of
26049         -fstrict-overflow documentation.
26050         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
26051         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
26052         flag_strict_overflow.
26053         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
26054         * lto-opts.c (lto_write_options): Do not stream it.
26055         * lto-wrapper.c (merge_and_complain): Do not handle it.
26056         * opts.c (default_options_table): Do not set -fstrict-overflow.
26057         (finish_options): Likewise do not clear it when sanitizing.
26058         * simplify-rtx.c (simplify_const_relational_operation): Do not
26059         test flag_strict_overflow.
26061 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
26063         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
26064         using enabled attribute.
26065         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
26066         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
26067         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
26068         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
26069         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
26070         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
26071         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
26072         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
26073         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
26074         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
26076 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
26078         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
26080 2017-05-02  Richard Biener  <rguenther@suse.de>
26082         PR tree-optimization/80591
26083         Revert
26084         2017-04-10  Richard Biener  <rguenther@suse.de>
26086         * tree-ssa-structalias.c (find_func_aliases): Properly handle
26087         asm inputs.
26089 2017-05-02  Richard Biener  <rguenther@suse.de>
26091         PR tree-optimization/80549
26092         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
26093         (cleanup_tree_cfg_noloop): Create forwarders to known loop
26094         headers if they do not have a preheader.
26096 2017-05-02  Martin Liska  <mliska@suse.cz>
26098         PR other/80589
26099         * common.opt: Fix typo.
26100         * doc/invoke.texi: Likewise.
26102 2017-05-01  Jan Beulich  <jbeulich@suse.com>
26104         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
26105         swapping, add (x,x,m,x,n) alternative.
26107 2017-05-01  Nathan Sidwell  <nathan@acm.org>
26109         * calls.c (combine_pending_stack_adjustment_and_call): Remove
26110         unnecessary unadjusted_alignment check.
26112 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
26114         PR c++/80038
26115         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
26116         operations here.
26117         * gimplify.c (gimplify_cilk_detach): New function.
26118         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
26119         * tree-core.h: Document EXPR_CILK_SPAWN.
26120         * tree.h (EXPR_CILK_SPAWN): Define.
26122 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
26124         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
26125         to use new fixit_hint representation, using the "replace" logic.
26126         (get_line_span_for_fixit_hint): Likewise.
26127         (layout::print_any_fixits): Likewise.
26128         (selftest::test_one_liner_many_fixits): Rename to...
26129         (selftest::test_one_liner_many_fixits_1): ...this, and update
26130         comment and expected output to reflect that the multiple fix-it
26131         hints are now consolidated into one insertion.
26132         (selftest::test_one_liner_many_fixits_2): New test.
26133         (selftest::test_diagnostic_show_locus_one_liner): Update for
26134         above.
26135         (selftest::test_fixit_consolidation): Update for fix-it API
26136         change.
26137         * diagnostic.c (print_parseable_fixits): Likewise.
26138         * edit-context.c (edited_line::m_line_events): Convert from
26139         auto_vec <line_event *> to auto_vec <line_event>.
26140         (class line_event): Convert from abstract base class to a concrete
26141         class, taking over the role of replace_event.
26142         (class insert_event): Delete.
26143         (class replace_event): Rename to class line_event.  Convert to
26144         half-open range.
26145         (edit_context::add_fixits): Reimplement.
26146         (edit_context::apply_insert): Delete.
26147         (edit_context::apply_replace): Rename to...
26148         (edit_context::apply_fixit): ...this.  Convert to half-open range.
26149         (edited_file::apply_insert): Delete.
26150         (edited_file::apply_replace): Rename to...
26151         (edited_file::apply_fixit): ...this.
26152         (edited_line::~edited_line): Drop deletion of events.
26153         (edited_line::apply_insert): Delete.
26154         (edited_line::apply_replace): Rename to...
26155         (edited_line::apply_fixit): ...this.  Convert to half-open range.
26156         Update for change to type of m_line_events.
26157         * edit-context.h (edit_context::apply_insert): Delete.
26158         (edit_context::apply_replace): Rename to...
26159         (edit_context::apply_fixit): ...this.
26161 2017-05-01  Martin Sebor  <msebor@redhat.com>
26163         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
26164         known.
26166 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
26168         PR target/68491
26169         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
26170         __get_cpuid_max returns 0.
26171         (__get_cpuid_count): Ditto.
26173 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
26175         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
26176         replacement expression is another instance of one of its arguments.
26178 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
26180         PR target/79430
26181         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
26182         check for stack push/pop autoinc.
26183         * config/i386/i386.c (ix86_agi_dependent): Return false
26184         if the only reason why modified_in_p returned true is that
26185         addr is SP based and set_insn is a push or pop.
26187 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
26189         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
26190         overflow check.
26192 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
26194         PR ipa/79224
26195         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
26196         (account_size_time): Use two predicates - exec_pred and
26197         nonconst_pred_ptr.
26198         (evaluate_conditions_for_known_args): Compute both clause and
26199         nonspec_clause.
26200         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
26201         (inline_summary_t::duplicate): Update.
26202         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
26203         separately.
26204         (compute_inline_parameters): Likewise.
26205         (estimate_edge_size_and_time): Update caluclation of time.
26206         (estimate_node_size_and_time): Compute both time and nonspecialized
26207         time.
26208         (estimate_ipcp_clone_size_and_time): Update.
26209         (inline_merge_summary): Update.
26210         (do_estimate_edge_time): Update.
26211         (do_estimate_edge_size): Update.
26212         (do_estimate_edge_hints): Update.
26213         (inline_read_section, inline_write_summary): Stream both new predicates.
26214         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
26215         as argument.
26216         (compute_inlined_call_time): Cleanup.
26217         (big_speedup_p): Update.
26218         (edge_badness): Update.
26219         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
26220         (size_time_entry): Replace predicate by exec_predicate and
26221         nonconst_predicate.
26222         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
26223         (estimate_edge_time): Return also nonspec_time.
26224         (reset_edge_growth_cache): Update.
26226 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
26228         PR rtl-optimization/80491
26229         * ifcvt.c (noce_process_if_block): When looking for x setter
26230         with missing else_bb, don't check only the insn right before
26231         cond_earliest, but look for the last insn that x is modified in
26232         within the same bb.
26234         PR rtl-optimization/80491
26235         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
26237 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
26239         PR tree-optimization/80487
26240         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
26242 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
26244         PR tree-optimization/79697
26245         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
26246         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
26247         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
26248         BUILT_IN_STRNDUP.
26249         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
26250         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
26252 2017-04-28  Martin Sebor  <msebor@redhat.com>
26254         PR tree-optimization/80523
26255         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
26256         (init_target_to_host_charmap, target_to_host, target_strtol10): New
26257         functions.
26258         (maybe_warn, format_directive, parse_directive): Use new functions.
26259         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
26261 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
26263         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
26265 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26267         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
26268         target_header_dir): Set correctly.
26269         * configure: Regenerated.
26270         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
26271         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
26272         instead of SYSTEM_HEADER_DIR.
26274 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
26276         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
26277         (estimate_local_effects): Likewise.
26278         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
26279         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
26280         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
26281         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
26282         do_estimate_edge_time, estimate_edge_time): Likewise.
26283         * ipa-inline-analysis.c (estimate_node_size_and_time,
26284         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
26285         (estimate_time_after_inlining): Remove.
26287 2017-04-28  Martin Liska  <mliska@suse.cz>
26289         * doc/gcov.texi: Enhance documentation of gcov.
26291 2017-04-28  Martin Liska  <mliska@suse.cz>
26293         * doc/gcov.texi: Sort options in alphabetic order.
26294         * doc/gcov-dump.texi: Likewise.
26295         * doc/gcov-tool.texi: Likewise.
26296         * gcov.c (print_usage): Likewise.
26297         * gcov-dump.c (print_usage): Likewise.
26298         * gcov-tool.c (print_merge_usage_message): Likewise.
26299         (print_rewrite_usage_message): Likewise.
26300         (print_overlap_usage_message): Likewise.
26302 2017-04-28  Martin Liska  <mliska@suse.cz>
26304         PR gcov-profile/53915
26305         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
26307 2017-04-28  Martin Liska  <mliska@suse.cz>
26309         PR gcov-profile/79891
26310         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
26311         is marked by compiler as living on a line.
26312         (get_cycles_count): Remove usage of the union.
26313         (output_intermediate_file): Likewise.
26314         (find_source): Fix GNU coding style.
26315         (accumulate_line_counts): Remove old non-all block mode.
26316         (output_lines): Remove usage of the union.
26317         * profile.c (output_location): Include all BBs, even if
26318         belonging to a same line (and file) as a previous BB.
26320 2017-04-28  Martin Liska  <mliska@suse.cz>
26322         * gcov.c (process_args): Handle new argument 'w'.
26323         (read_graph_file): Assign ID to BBs.
26324         (output_branch_count): Display BB # if verbose flag is set.
26325         (output_lines): Likewise for arcs.
26326         (print_usage): Add '--verbose' option help.
26327         * doc/gcov.texi: Document --verbose (-w) option.
26329 2017-04-28  Martin Liska  <mliska@suse.cz>
26331         * gcov.c (struct block_location_info): New struct.
26332         (process_file): Fill up the new structure.
26333         (read_graph_file): Replace usage of encoding by the newly added
26334         struct.
26335         (add_line_counts): Likewise.
26336         (accumulate_line_counts): Remove usage of the union.
26337         (function_info::function_info): New function.
26338         (function_info::~function_info): Likewise.
26339         (process_file): Call delete instead of release_function.
26340         (release_function): Release the function.
26341         (release_structures): Call delete instead of release_function.
26342         (solve_flow_graph): Replace usage of num_blocks.
26343         (find_exception_blocks): Likewise.
26344         (output_lines): Fix GNU coding style.
26346 2017-04-28  Martin Liska  <mliska@suse.cz>
26348         PR driver/56469
26349         * coverage.c (coverage_remove_note_file): New function.
26350         * coverage.h: Declare the function.
26351         * toplev.c (finalize): Clean if an error has been seen.
26353 2017-04-28  Martin Liska  <mliska@suse.cz>
26355         PR gcov-profile/80031
26356         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
26357         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
26358         * gcov.c (read_graph_file): Read just number of blocks.
26359         * profile.c (branch_prob): Do not stream 0 flags per a basic
26360         block.
26362 2017-04-28  Martin Liska  <mliska@suse.cz>
26364         * gcov-dump.c (tag_*): Add new argument to declarations.
26365         (dump_gcov_file): Likewise.
26366         (tag_blocks): Add and use new argument depth.
26367         (tag_arcs): Likewise.
26368         (tag_lines): Likewise.
26369         (tag_counters): Likewise.
26370         (tag_summary): Likewise.
26371         (dump_working_sets): Use depth to do a proper indentation.
26373 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
26375         PR bootstrap/80531
26376         * cgraph.h (symtab_node::debug_symtab): No longer inline.
26377         * symtab.c (symtab_node::debug_symtab): Move definition here.
26379 2017-04-28  Richard Biener  <rguenther@suse.de>
26381         * lto-streamer.h (LTO_major_version): Bump to 7.
26383 2017-04-28  Richard Biener  <rguenther@suse.de>
26385         * tree-vrp.c (assert_info): New struct.
26386         (add_assert_info): New helper.
26387         (register_edge_assert_for_2): Refactor to add asserts to a vector
26388         of assert_info.
26389         (register_edge_assert_for_1): Likewise.
26390         (register_edge_assert_for): Likewise.
26391         (finish_register_edge_assert_for): New helper actually registering
26392         asserts where live on edge.
26393         (find_conditional_asserts): Adjust.
26394         (find_switch_asserts): Likewise.
26395         (evrp_dom_walker::try_find_new_range): Generalize.
26396         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
26398 2017-04-27  Marek Polacek  <polacek@redhat.com>
26400         PR sanitizer/80349
26401         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
26402         arg10 and arg11 to itype.
26404 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
26406         * doc/extend.texi (Object Size Checking): Improve grammar.
26408 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
26410         PR target/80530
26411         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
26412         that the logic for permitting reciprocal estimates matches that
26413         in use_rsqrt_p.
26415 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
26417         PR c++/80534
26418         * tree.c (type_cache_hasher::equal): Only compare
26419         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
26420         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
26421         non-aggregate element types.
26422         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
26423         about the flag on ARRAY_TYPEs in the comment, formatting fix.
26425 2017-04-27  Richard Biener  <rguenther@suse.de>
26427         PR middle-end/80533
26428         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
26429         stripping ARRAY_REFs from MEM_EXPR make sure we're not
26430         keeping a reference to a trailing array.
26432 2017-04-27  Richard Biener  <rguenther@suse.de>
26434         PR middle-end/80539
26435         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
26436         being in loop-closed SSA form conservatively.
26437         (chrec_fold_multiply_poly_poly): Likewise.
26439 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
26441         PR middle-end/79665
26442         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
26443         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
26445 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
26447         PR target/77728
26448         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
26449         (aarch64_function_arg_alignment): Return unsigned int again, but still
26450         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
26451         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
26452         Don't emit -Wpsabi note.
26453         (aarch64_function_arg_boundary): Likewise.
26454         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
26455         caller.
26457 2017-04-26  Nathan Sidwell  <nathan@acm.org>
26459         * tree.h (crc32_unsigned_n): Declare.
26460         (crc32_unsigned, crc32_unsigned): Make inline.
26461         * tree.c (crc32_unsigned_bits): Replace with ...
26462         (crc32_unsigned_n): ... this.
26463         (crc32_unsigned, crc32_byte): Remove.
26464         (crc32_string): Remove unnecessary braces.
26466 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
26468         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
26469         * ipa-inline-analysis.c (MAX_TIME): Remove.
26470         (account_size_time): Use sreal for time.
26471         (dump_inline_summary): Update.
26472         (estimate_function_body_sizes): Update.
26473         (estimate_edge_size_and_time): Update.
26474         (estimate_calls_size_and_time): Update.
26475         (estimate_node_size_and_time): Update.
26476         (inline_merge_summary): Update.
26477         (inline_update_overall_summary): Update.
26478         (estimate_time_after_inlining): Update.
26479         (inline_read_section): Update.
26480         (inline_write_summary): Update.
26481         * ipa-inline.c (compute_uninlined_call_time): Update.
26482         (compute_inlined_call_time): Update.
26483         (recursive_inlining): Update.
26484         (inline_small_functions): Update.
26485         (dump_overall_stats): Update.
26486         * ipa-inline.h: Include sreal.h.
26487         (size_time_entry): Turn time to sreal.
26488         (inline_summary): Turn self_time nad time to sreal.
26490 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
26492         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
26493         data-streamer.h
26494         (sreal::stream_out, sreal::stream_in): New.
26495         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
26497 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
26499         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
26500         environment.
26502 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
26504         PR target/70799
26505         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
26506         Handle ASHIFTRT.
26507         (dimode_scalar_chain::compute_convert_gain): Ditto.
26508         (dimode_scalar_chain::make_vector_copies): Ditto.
26509         (dimode_scalar_chain::convert_reg): Ditto.
26510         (dimode_scalar_chain::convert_insn): Ditto.
26511         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
26512         (VI248_AVX512BW_1): New mode iterator.
26513         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
26514         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
26515         mode iterator.
26517 2017-04-25  Martin Sebor  <msebor@redhat.com>
26519         PR tree-optimization/80497
26520         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
26521         constants are representable in HOST_WIDE_INT.
26522         (parse_directive): Ditto.
26524 2017-04-25  Martin Sebor  <msebor@redhat.com>
26526         PR bootstrap/80486
26527         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
26528         (new_zero_array): Adjust signature.
26529         (dom_info::dom_init): Used unsigned rather that size_t.
26530         (dom_info::dom_info): Same.
26532 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26533             Jakub Jelinek  <jakub@redhat.com>
26535         PR target/77728
26536         * config/arm/arm.c: Include gimple.h.
26537         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
26538         returns negative, increment ncrn only if it returned positive.
26539         (arm_needs_doubleword_align): Return int instead of bool,
26540         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
26541         members, but if there is any such non-FIELD_DECL
26542         > PARM_BOUNDARY aligned decl, return -1 instead of false.
26543         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
26544         returns negative, increment nregs only if it returned positive.
26545         (arm_setup_incoming_varargs): Likewise.
26546         (arm_function_arg_boundary): Emit -Wpsabi note if
26547         arm_needs_doubleword_align returns negative, return
26548         DOUBLEWORD_ALIGNMENT only if it returned positive.
26550 2017-04-25  Marek Polacek  <polacek@redhat.com>
26552         PR sanitizer/80349
26553         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
26554         first argument to type.
26556 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
26558         PR target/80482
26559         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
26560         type checks to test for compatibility instead of equality.
26562 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26563             Jakub Jelinek  <jakub@redhat.com>
26565         PR target/77728
26566         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
26567         type.
26568         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
26569         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
26570         the alignment computation, but return their maximum in warn_alignment.
26571         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
26572         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
26573         is smaller.
26574         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
26575         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
26576         caller.
26578 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
26580         * config/arc/simdext.md (dmpyh): Fix typo.
26582 2017-04-25  Richard Biener  <rguenther@suse.de>
26584         PR tree-optimization/80492
26585         * alias.c (compare_base_decls): Handle registers with asm
26586         specification conservatively.
26587         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
26588         compare_base_decls returning dont-know properly.
26590 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
26592         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
26593         (legitimate_offset_address_p): New function.
26594         (arc_legitimate_address_p): Use above function.
26596 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
26598         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
26600 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
26602         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
26603         ACCH registers whenever they are available.
26605 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
26607         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
26608         double regs fix when not used.
26610 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
26612         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
26613         core registers.
26614         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
26615         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
26617 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
26619         * config/arc/arc.c (arc_output_addsi): Check for h-register class
26620         when emitting short ADD instructions.
26622 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
26624         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
26625         constraint.
26626         (cmpsi_cc_c_insn): Likewise.
26627         (cbranchsi4_scratch): Compute proper instruction length using
26628         compact_hreg_operand.
26629         * config/arc/predicates.md (compact_hreg_operand): New predicate.
26631 2017-04-25  Richard Biener  <rguenther@suse.de>
26633         PR middle-end/80509
26634         * passes.c (pass_manager::pass_manager): Initialize
26635         m_name_to_pass_map.
26637 2017-04-25  Richard Biener  <rguenther@suse.de>
26639         PR tree-optimization/79201
26640         * tree-ssa-sink.c (statement_sink_location): Handle calls.
26642 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26644         PR target/80464
26645         * config/s390/vector.md: Split MEM->GPR vector moves for
26646         non-s_operand addresses.
26648 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26650         PR target/79895
26651         * config/s390/predicates.md (reload_const_wide_int_operand): New
26652         predicate.
26653         * config/s390/s390.md ("movti"): Remove d/P alternative.
26654         ("movti_bigconst"): New pattern definition.
26656 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26658         PR target/80080
26659         * s390-protos.h (s390_expand_cs_hqi): Removed.
26660         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
26661         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
26662         modes as well as CCZ1mode and CCZmode.
26663         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
26664         signature of s390_emit_compare_and_swap.
26665         (s390_expand_cs_hqi): Likewise, make static.
26666         (s390_expand_cs_tdsi): Generate an explicit compare before trying
26667         compare-and-swap, in some cases.
26668         (s390_expand_cs): Wrapper function.
26669         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
26670         atomic_exchange.
26671         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
26672         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
26673         patterns for small and large integers.  Forbid symref memory operands.
26674         Move expander to s390.c.  Require cc register.
26675         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
26676         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
26677         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
26678         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
26679         symref memory operands.  Remove CC mode and call s390_match_ccmode
26680         instead.
26681         ("atomic_exchange<mode>"): Allow and implement all integer modes.
26683 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26685         * config/s390/s390.md (define_peephole2): New peephole to help
26686         combining the load-and-test pattern with volatile memory.
26688 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26690         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
26691         with CCZmode for TARGET_Z196.
26693 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
26695         PR rtl-optimization/80501
26696         * combine.c (make_compound_operation_int): Set subreg_code to SET
26697         even for AND with mask of the sign bit of mode.
26699         PR rtl-optimization/80500
26700         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
26701         sum's initial value.
26703 2017-04-25  Julian Brown  <julian@codesourcery.com>
26704             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26706         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
26708 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
26710         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
26712 2017-04-25  Julian Brown  <julian@codesourcery.com>
26713             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26715         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
26716         (thunderx2t99_sha): New Reservation.
26718 2017-04-25  Julian Brown  <julian@codesourcery.com>
26719             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26721         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
26722         type for 1-element load.
26724 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
26726         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
26728 2017-04-24  Martin Jambor  <mjambor@suse.cz>
26730         PR tree-optimization/80293
26731         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
26732         char arrays not totally scalarizable if it is false.
26733         (analyze_all_variable_accesses): Pass correct value in the new
26734         parameter.  Add a statistics counter.
26736 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
26738         PR middle-end/79931
26739         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
26741 2017-04-24  Richard Biener  <rguenther@suse.de>
26743         PR tree-optimization/80494
26744         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
26745         out for complex types.
26747 2017-04-24  Richard Biener  <rguenther@suse.de>
26749         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
26750         * tree-ssa-sccvn.c (print_scc): Print SCC size.
26751         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
26752         (DFS): Adjust and never fail.
26753         (sccvn_dom_walker::fail): Remove.
26754         (sccvn_dom_walker::before_dom_children): Adjust.
26755         (run_scc_vn): Likewise and never fail.
26756         * tree-ssa-pre.c (pass_pre::execute): Adjust.
26757         (pass_fre::execute): Likewise.
26759 2017-04-24  Richard Biener  <rguenther@suse.de>
26761         PR tree-optimization/79725
26762         * tree-ssa-sink.c (statement_sink_location): Return whether
26763         failure reason was zero uses.  Move that check later.
26764         (sink_code_in_bb): Deal with zero uses by removing the stmt
26765         if possible.
26767 2017-04-24  Richard Biener  <rguenther@suse.de>
26769         PR c++/2972
26770         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
26771         pointer-based references.
26773 2017-04-24  Richard Biener  <rguenther@suse.de>
26775         PR bootstrap/79814
26776         * pass_manager.h (pass_manager::operator new): Remove.
26777         (pass_manager::operator delete): Likewise.
26778         * passes.c (pass_manager::operator new): Remove.
26779         (pass_manager::operator delete): Likewise.
26780         (pass_manager::pass_manager): Zero individual pass members.
26782 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
26784         PR target/70799
26785         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
26786         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
26787         Check "XEXP (src, 1)" operand here.
26788         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
26789         Check "XEXP (src, 1)" operand here.
26790         (dimode_scalar_chain::make_vector_copies): Detect count register
26791         of a shift instruction.  Zero extend count register from QImode
26792         to DImode to satisfy vector shift pattern count operand predicate.
26793         Substitute vector shift count operand with a DImode copy.
26794         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
26795         vector register.
26797 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
26799         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
26800         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
26801         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
26802         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
26803         (UNSPEC_NOREX_MEM): Remove definition.
26805 2017-04-21  Richard Biener  <rguenther@suse.de>
26807         PR tree-optimization/79547
26808         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26809         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
26810         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
26811         without any constraints.
26813 2017-04-21  Richard Biener  <rguenther@suse.de>
26815         PR tree-optimization/78847
26816         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
26818 2017-04-21  Richard Biener  <rguenther@suse.de>
26820         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
26821         (build_distinct_type_copy): Likewise.
26822         (build_variant_type_copy): Likewise.
26823         * tree.c (build_qualified_type): Pass down mem-stat info.
26824         (build_distinct_type_copy): Likewise.
26825         (build_variant_type_copy): Likewise.
26827 2017-04-21  Richard Biener  <rguenther@suse.de>
26829         PR tree-optimization/80237
26830         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
26831         defaulted to NULL.
26832         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
26833         for a simplified result.
26835 2016-04-21  Richard Biener  <rguenther@suse.de>
26837         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
26838         sth as strict as a simple_iv but a chrec without symbols and an
26839         operand defined in the loop we are peeling (and not some subloop).
26840         (propagate_constants_for_unrolling): Propagate all constants.
26842 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
26844         PR target/79804
26845         * config/i386/i386.c (print_reg): Remove assert for disalowed
26846         regno values, call output_operand_lossage instead.
26848 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
26850         PR target/78090
26851         * config/i386/constraints.md (Yc): New register constraint.
26852         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
26853         Use Yc constraint for alternative 2 of operand 0.  Remove
26854         preferred_for_speed attribute.
26856 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
26858         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
26859         lastprivate clauses in SIMT case.
26861 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
26863         * doc/invoke.texi (-Wextra-semi): Document new warning option.
26865 2017-04-20  Richard Biener  <rguenther@suse.de>
26867         PR tree-optimization/57796
26868         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
26869         as N scalar stores.
26870         (vect_model_load_cost): Cost gathers as N scalar loads.
26872 2017-04-20  Richard Biener  <rguenther@suse.de>
26874         * ggc-page.c (ggc_allocated_p): Rename to ...
26875         (safe_lookup_page_table_entry): ... this and return the lookup
26876         result.
26877         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
26879 2017-04-20  Richard Biener  <rguenther@suse.de>
26881         PR tree-optimization/80453
26882         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
26883         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
26884         from the conditions.
26885         (vn_phi_eq): Pass them down.
26886         (vn_phi_lookup): Record them.
26887         (vn_phi_insert): Likewise.
26889 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
26891         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
26892         uninitialized variable warning to avoid buffer overrun.
26894 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
26896         PR other/71250
26897         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
26898         is suppressed for '{ 0 }' in C.
26900 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
26902         * BASE-VER: Set to 8.0.0.
26904 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26906         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
26907         priority .init_array and .fini_array section with SECTION_NOTYPE
26908         flag.
26910 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
26912         PR middle-end/80423
26913         * tree.h (build_array_type): Add typeless_storage default argument.
26914         * tree.c (type_cache_hasher::equal): Also compare
26915         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
26916         (build_array_type): Add typeless_storage argument, set
26917         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
26918         recursive call.
26919         (build_nonshared_array_type): Adjust build_array_type_1 caller.
26920         (build_array_type): Likewise.  Add typeless_storage argument.
26922 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
26923             Jakub Jelinek  <jakub@redhat.com>
26925         PR tree-optimization/80426
26926         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
26927         operation on symbolic operands, also compute the overflow for the
26928         invariant part when the operation degenerates into a negation.
26930 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
26932         PR debug/80461
26933         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
26934         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
26936         PR debug/80436
26937         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
26939 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
26941         PR target/80462
26942         * config/avr/avr.c (tree.h): Include it.
26943         (cgraph.h): Include it.
26944         (avr_encode_section_info): Don't warn for uninitialized progmem
26945         variable if it's just an alias.
26947 2017-04-19  Richard Biener  <rguenther@suse.de>
26949         PR ipa/65972
26950         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
26951         when needed by AutoPGO.
26953 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
26955         PR lto/50345
26956         * doc/lto.texi: Remove an extra 'that'.
26958 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
26960         PR rtl-optimization/80429
26961         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
26962         are only used in debug insns.
26964 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
26965             Vladimir Makarov  <vmakarov@redhat.com>
26967         * config/sparc/predicates.md (input_operand): Add comment.  Return
26968         true for any memory operand when LRA is in progress.
26969         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
26971 2017-04-18  Jeff Law  <law@redhat.com>
26973         PR target/74563
26974         * mips.md ({return,simple_return}_internal): Do not overwrite
26975         operands[0].
26977 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
26979         PR tree-optimization/80443
26980         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
26981         instead of adding 1, subtract -1 and similarly instead of subtracting
26982         1 add -1.
26984 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
26986         PR rtl-optimization/80357
26987         * haifa-sched.c (tmp_bitmap): New variable.
26988         (model_recompute): Handle duplicate use records.
26989         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
26990         (free_global_sched_pressure_data): Free it.
26992 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26994         Revert:
26995         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26996         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
26997         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
26998         instead of SYSTEM_HEADER_DIR.
27000 2017-04-18  Jeff Law  <law@redhat.com>
27002         PR middle-end/80422
27003         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
27004         predecessors after walking up the insn chain.
27006 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
27008         PR debug/80263
27009         * dwarf2out.c (modified_type_die): Try harder not to emit internal
27010         sizetype type into debug info.
27012 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
27014         PR target/80099
27015         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
27016         unneeded test for TARGET_UPPER_REGS_SF.
27017         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
27019 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
27021         PR sanitizer/80444
27022         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
27023         instead of gsi_after_labels.
27025 2017-04-18  Jeff Law  <law@redhat.com>
27027         * regcprop.c (maybe_mode_change): Avoid creating copies of the
27028         stack pointer.
27030         Revert:
27031         2017-04-13  Jeff Law  <law@redhat.com>
27032         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
27033         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
27035 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
27037         PR target/79453
27038         * config/avr/avr.c (intl.h): Include it.
27039         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
27041 2017-04-18  Martin Liska  <mliska@suse.cz>
27043         PR gcov-profile/78783
27044         * gcov-tool.c (gcov_output_files): Validate that destination
27045         file is either removed by the tool or by a user.
27047 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
27048             Guy Benyei  <guybe@mellanox.com>
27050         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
27051         block, and do not negate it, the stored id is already negative.
27053 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
27055         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
27057 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
27059         PR target/80098
27060         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
27061         masks of options that should be turned off if the VSX vector
27062         options are turned off.
27063         (OTHER_P8_VECTOR_MASKS): Likewise.
27064         (OTHER_VSX_VECTOR_MASKS): Likewise.
27065         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
27066         rs6000_disable_incompatible_switches to validate no type switches
27067         like -mvsx.
27068         (rs6000_incompatible_switch): New function to disallow turning on
27069         other vector options if -mno-vsx, -mno-power8-vector, or
27070         -mno-power9-vector are specified.
27072 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
27074         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
27076 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
27078         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
27079         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
27080         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
27081         (ARG_POINTER_CFA_OFFSET): Likewise.
27083 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
27085         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
27086         conditions to take advantage of various optimizations.
27088 2017-04-13  Jeff Law  <law@redhat.com>
27090         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
27091         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
27092         (zero_extendsidi2_dext): Likewise.
27094 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
27096         PR sanitizer/80403
27097         * fold-const.c (fold_ternary_loc): Revert
27098         use op0 instead of fold_convert_loc (loc, type, arg0) part of
27099         2017-04-12 change.
27101 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
27103         PR rtl-optimization/80343
27104         * lra-remat.c (update_scratch_ops): Assign original hard reg to
27105         new scratch pseudo.
27107 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
27109         PR sanitizer/80414
27110         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
27111         to ubsan_encode_value.
27113 2017-04-13  Jeff Law  <law@redhat.com>
27115         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
27116         appearing in DEBUG_INSNs.
27118 2017-04-13  Martin Liska  <mliska@suse.cz>
27120         PR gcov-profile/80413
27121         * gcov-io.c (gcov_write_string): Copy to buffer just when
27122         allocated size is greater than zero.
27124 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
27126         PR debug/80321
27127         * dwarf2out.c (decls_for_scope): Ignore declarations of
27128         current_function_decl in BLOCK_NONLOCALIZED_VARS.
27130 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
27132         PR lto/69953
27133         * ipa-visibility.c (non_local_p): Fix typos.
27134         (localize_node): When localizing symbol in same comdat group,
27135         dissolve the group only when we know external symbols are going
27136         to be privatized.
27137         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
27139 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
27141         PR tree-optimization/79390
27142         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
27143         order does not result in usable sequence, retry with reversed operand
27144         order.
27146         PR sanitizer/80403
27147         PR sanitizer/80404
27148         PR sanitizer/80405
27149         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
27150         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
27151         op0 instead of fold_convert_loc (loc, type, arg0).
27153 2017-04-12  Jeff Law  <law@redhat.com>
27155         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
27156         has a delay slot in the generated code.
27158         * config/cris/cris.md (cris_preferred_reload_class): Return
27159         GENNONACR_REGS rather than GENERAL_REGS.
27161 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
27163         PR c/80163
27164         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
27165         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
27166         signedness of the result type.
27168 2017-04-12  Richard Biener  <rguenther@suse.de>
27169             Jeff Law  <law@redhat.com>
27171         PR tree-optimization/80359
27172         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
27173         trim stores to TARGET_MEM_REFs.
27175 2017-04-12  Richard Biener  <rguenther@suse.de>
27177         PR tree-optimization/79390
27178         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
27179         threading case even more.
27181 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
27183         PR target/80382
27184         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
27185         for quad_address_p for TImode, instead of just not indexed_address.
27187 2017-04-12  Richard Biener  <rguenther@suse.de>
27188             Bernd Edlinger  <bernd.edlinger@hotmail.de>
27190         PR middle-end/79671
27191         * alias.c (component_uses_parent_alias_set_from): Handle
27192         TYPE_TYPELESS_STORAGE.
27193         (get_alias_set): Likewise.
27194         * tree-core.h (tree_type_common): Add typeless_storage flag.
27195         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
27196         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
27197         for types containing members with TYPE_TYPELESS_STORAGE.
27198         (place_field): Likewise.
27199         (layout_type): Likewise for ARRAY_TYPE.
27200         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
27201         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
27202         TYPE_TYPELESS_STORAGE.
27203         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
27205 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
27207         PR sanitizer/80349
27208         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
27209         first argument to type.
27211 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27213         PR target/80376
27214         PR target/80315
27215         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
27216         CONST0_RTX (mode) rather than const0_rtx where appropriate.
27217         (rs6000_expand_binop_builtin): Likewise.
27218         (rs6000_expand_ternop_builtin): Likewise; also add missing
27219         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
27220         vshasigma built-ins.
27221         * doc/extend.texi: Document that vec_xxpermdi's third argument
27222         must be a constant.
27224 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
27226         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
27227         Use shift_const cost parameter when calculating gain of STV shifts.
27229 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
27231         PR rtl-optimization/70478
27232         * lra-constraints.c (process_alt_operands): Check memory for
27233         disfavoring memory insn operand.
27235 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
27237         PR middle-end/80100
27238         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
27239         left shift in unsigned HOST_WIDE_INT type.
27241         PR rtl-optimization/80385
27242         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
27243         (not (neg X)) into (plus X -1) for complex or non-integral modes.
27245         PR libgomp/80394
27246         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
27247         if they have any depend clauses.
27249 2017-04-11  Martin Liska  <mliska@suse.cz>
27251         PR ipa/80212
27252         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
27253         * ipa-split.c (split_function): Create a local comdat symbol
27254         if caller is in a comdat group.
27256 2017-04-11  Martin Liska  <mliska@suse.cz>
27258         PR ipa/80212
27259         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
27260         flags.
27262 2017-04-11  Martin Sebor  <msebor@redhat.com>
27264         PR middle-end/80364
27265         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
27266         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
27267         for INTEGER_TYPE.
27268         (directive::set_width, directive::set_precision, format_character):
27269         Adjust.
27270         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
27271         INTEGER_TYPE.
27273 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
27275         PR target/80389
27276         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
27277         conflict, set target->arch_name instead of target->cpu_name.
27279 2017-04-11  Richard Biener  <rguenther@suse.de>
27281         PR tree-optimization/80374
27282         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
27283         build_zero_cst, remove fold_convertible_p check again.
27285 2017-04-11  Martin Liska  <mliska@suse.cz>
27287         PR sanitizer/70878
27288         * ubsan.c (instrument_object_size): Do not instrument register
27289         variables.
27291 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
27293         PR target/80381
27294         * config/i386/i386-builtin-types.def
27295         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
27296         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
27297         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
27298         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
27299         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
27300         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
27301         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
27302         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
27303         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
27304         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
27305         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
27306         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
27307         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
27308         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
27309         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
27310         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
27311         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
27312         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
27313         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
27314         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
27315         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
27316         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
27317         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
27318         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
27319         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
27320         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
27321         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
27322         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
27323         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
27324         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
27325         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
27326         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
27327         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
27328         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
27329         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
27330         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
27331         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
27332         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
27333         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
27334         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
27335         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
27336         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
27337         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
27338         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
27339         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
27340         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
27341         aliases.
27342         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
27343         flag to second_arg_count, handle 4 argument function type _COUNT
27344         aliases, handle second_arg_count on second argument rather than last.
27346 2017-04-10  Jeff Law  <law@redhat.com>
27348         PR tree-optimization/80374
27349         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
27350         record anything if we can not convert integer_zero_node to the
27351         desired type.
27353 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
27355         PR target/80108
27356         * config/rs6000/rs6000.c (rs6000_option_override_internal):
27357         Enhance special handling given to the TARGET_P9_MINMAX option in
27358         relation to certain other options.
27360 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
27362         PR tree-optimization/80153
27363         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
27364         remove POINTER_PLUS_EXPR's base part directly, rather than through
27365         aff_tree.
27367 2017-04-10  Richard Biener  <rguenther@suse.de>
27368             Bin Cheng  <bin.cheng@arm.com>
27370         PR tree-optimization/80153
27371         * tree-affine.c (aff_combination_to_tree): Get base pointer from
27372         the first element of pointer type aff_tree.  Build result expr in
27373         aff_tree's type.
27374         (add_elt_to_tree): Convert to type unconditionally.  Remove other
27375         fold_convert calls.
27376         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
27377         (rewrite_use_nonlinear_expr): Check invariant using iv information.
27379 2017-04-10  Richard Biener  <rguenther@suse.de>
27381         * tree-ssa-structalias.c (find_func_aliases): Properly handle
27382         asm inputs.
27384 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
27386         PR rtl-optimization/70478
27387         * lra-constraints.c (curr_small_class_check): New.
27388         (update_and_check_small_class_inputs): New.
27389         (process_alt_operands): Update curr_small_class_check.  Disfavor
27390         alternative insn memory operands.  Check available regs for small
27391         class operands.
27393 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
27395         PR target/80057
27396         * config/mips/mips.opt (-mvirt): Update description.
27397         * doc/invoke.texi (-mvirt): Likewise.
27399 2017-04-10  Richard Biener  <rguenther@suse.de>
27401         PR middle-end/80362
27402         * fold-const.c (fold_binary_loc): Look at unstripped ops when
27403         looking for NEGATE_EXPR in -A / -B to A / B folding.
27405 2017-04-10  Martin Liska  <mliska@suse.cz>
27407         PR gcov-profile/80224
27408         * gcov.c (print_usage): Fix usage string.
27409         (get_gcov_intermediate_filename): Remove.
27410         (output_gcov_file): Use both for normal and intermediate format.
27411         (generate_results): Do not initialize special file for
27412         intermediate format.
27414 2017-04-10  Richard Biener  <rguenther@suse.de>
27416         PR tree-optimization/80304
27417         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
27418         for safelen.
27420 2017-04-10  Nathan Sidwell  <nathan@acm.org>
27422         PR target/79905
27423         * config/rs6000/rs6000.c (rs6000_vector_type): New.
27424         (rs6000_init_builtins): Use it.
27426 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27428         * config/arm/arm.md (<mrc>): Add mode to SET source.
27429         (<mrrc>): Likewise.
27431 2017-04-10  Richard Biener  <rguenther@suse.de>
27433         PR middle-end/80344
27434         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
27436 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
27438         PR target/80324
27439         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
27440         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
27441         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
27442         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
27443         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
27444         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
27445         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
27446         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
27447         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
27448         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
27449         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
27450         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
27451         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
27452         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
27453         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
27454         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
27455         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
27456         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
27457         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
27458         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
27459         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
27460         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
27461         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
27463 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
27465         PR rtl-optimization/70478
27466         * lra-constraints.c: Reverse the last patch.
27468 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
27470         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
27471         Add comment for WCHAR_T.
27473 2017-04-08  Martin Liska  <mliska@suse.cz>
27475         Revert:
27476         2017-04-07  Martin Liska  <mliska@suse.cz>
27478         PR ipa/80212
27479         * ipa-split.c (split_function): Add function part to a same comdat
27480         group.
27482 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
27484         PR target/80358
27485         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
27487 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
27489         * rs6000/rs6000.c (vec_load_pendulum): Rename...
27490         (vec_pairing): ...to this.
27491         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
27492         (rs6000_sched_init): Adjust for name change.
27493         (struct rs6000_sched_context): Likewise.
27494         (rs6000_init_sched_context): Likewise.
27495         (rs6000_set_sched_context): Likewise.
27497 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
27499         PR target/80322
27500         PR target/80323
27501         PR target/80325
27502         PR target/80326
27503         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
27504         intrinsics.
27505         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
27506         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
27507         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
27509 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
27511         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
27513 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
27515         PR rtl-optimization/70703
27516         * ira-color.c (update_conflict_hard_regno_costs): Use
27517         int64_t instead of HOST_WIDE_INT.
27519 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
27521         PR rtl-optimization/70478
27522         * lra-constraints.c (process_alt_operands): Disfavor alternative
27523         insn memory operands.
27525 2017-04-07  Jeff Law  <law@redhat.com>
27527         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
27528         CALL and NOTE_INSN_CALL_ARG_LOCATION.
27530 2017-04-07  Martin Liska  <mliska@suse.cz>
27532         PR target/79889
27533         * config/aarch64/aarch64.c (aarch64_process_target_attr):
27534         Show error message instead of an ICE.
27536 2017-04-07  Martin Liska  <mliska@suse.cz>
27538         PR ipa/80212
27539         * ipa-split.c (split_function): Add function part to a same comdat
27540         group.
27542 2017-04-07  Richard Biener  <rguenther@suse.de>
27544         PR middle-end/80341
27545         * tree.c (get_unwidened): Also handle ! for_type case for
27546         INTEGER_CSTs.
27547         * convert.c (do_narrow): Split out from ...
27548         (convert_to_integer_1): ... here.  Do not pass final truncation
27549         type to get_unwidened for TRUNC_DIV_EXPR.
27551 2017-04-07  Richard Biener  <rguenther@suse.de>
27553         * tree-affine.c (wide_int_ext_for_comb): Take type rather
27554         than aff_tree.
27555         (aff_combination_const): Adjust.
27556         (aff_combination_scale): Likewise.
27557         (aff_combination_add_elt): Likewise.
27558         (aff_combination_add_cst): Likewise.
27559         (aff_combination_convert): Likewise.
27560         (add_elt_to_tree): Likewise.  Remove unused argument.
27561         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
27563 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
27565         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
27566         definition.
27567         * config/arm/arm.c (arm_default_short_enums): Use
27568         ARM_DEFAULT_SHORT_ENUMS.
27569         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
27571 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
27573         PR debug/80234
27574         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
27575         members with redundant out-of-class redeclaration.
27577 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
27579         PR target/80286
27580         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
27581         * config/i386/i386.md (*zero_extendsidi2):
27582         Add (?*x,*x) and (?*v,*v) alternatives.
27584 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
27586         PR target/79733
27587         * config/i386/i386.c (ix86_expand_builtin)
27588         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
27589         mode from insn data. Convert operands to insn operand mode.
27590         Copy operands that don't satisfy insn predicate to a register.
27592 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
27594         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
27595         Update comments.
27597 2017-04-06  Richard Biener  <rguenther@suse.de>
27599         PR tree-optimization/80334
27600         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
27601         preserve alignment of accesses.
27603 2017-04-06  Richard Biener  <rguenther@suse.de>
27605         PR tree-optimization/80262
27606         * tree-sra.c (build_ref_for_offset): Preserve address-space
27607         information.
27608         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
27609         Drop useless address-space information on MEM_REF offsets.
27611 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
27613         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
27615 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
27617         PR rtl-optimization/70703
27618         * ira-color.c (update_conflict_hard_regno_costs): Use
27619         HOST_WIDE_INT instead of long.
27621 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
27623         PR target/80298
27624         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
27625         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
27626         is not defined.
27627         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
27628         for x86_64 target.  Handle -m3dnowa option.
27630 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
27632         PR rtl-optimization/70703
27633         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
27634         (update_conflict_hard_regno_costs): Use long instead of unsigned
27635         arithmetic for cost calculation.
27637 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
27638             Bernd Edlinger  <bernd.edlinger@hotmail.de>
27640         PR sanitizer/80308
27641         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
27642         for big endian.
27644 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
27646         PR target/78002
27647         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
27648         ptr_mode with Pmode throughout.
27649         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
27650         into probe_stack_range and use DImode.
27652 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27654         PR target/79890
27655         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
27656         call_eh_return is true.
27658 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27660         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
27661         Initialize last_match_fntype_index.
27663 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
27665         PR target/80310
27666         * tree-nvr.c: Include internal-fn.h.
27667         (pass_return_slot::execute): Ignore internal calls without
27668         direct optab.
27670 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
27671             Richard Biener  <rguenther@suse.de>
27673         PR c++/80297
27674         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
27675         captures used multiple times, except for the last use.
27676         * generic-match-head.c: Include gimplify.h.
27678 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
27680         PR tree-optimization/79390
27681         * target.h (struct noce_if_info): Declare.
27682         * targhooks.h (default_noce_conversion_profitable_p): Declare.
27683         * target.def (noce_conversion_profitable_p): New target hook.
27684         * ifcvt.h (struct noce_if_info): New type, moved from ...
27685         * ifcvt.c (struct noce_if_info): ... here.
27686         (noce_conversion_profitable_p): Renamed to ...
27687         (default_noce_conversion_profitable_p): ... this.  No longer
27688         static nor inline.
27689         (noce_try_store_flag_constants, noce_try_addcc,
27690         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
27691         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
27692         instead of noce_conversion_profitable_p.
27693         * config/i386/i386.c: Include ifcvt.h.
27694         (ix86_option_override_internal): Don't override
27695         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
27696         (ix86_noce_conversion_profitable_p): New function.
27697         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
27698         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
27699         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
27700         * doc/tm.texi: Regenerated.
27702 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27704         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
27705         correction.
27707 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27709         PR target/80307
27710         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
27711         instructions for small multiply cores.
27713 2017-04-04  Jeff Law  <law@redhat.com>
27715         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
27716         added member.
27717         (mips_expand_vec_perm_const): Initialize elements in orig_perm
27718         that are not set by the loop over the elements.
27720 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
27722         PR target/80286
27723         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
27724         int mode, convert_modes it to mode as unsigned, otherwise use
27725         lowpart_subreg to mode rather than SImode.
27726         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
27727         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
27728         Use DImode instead of SImode for the shift count operand.
27729         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
27730         Likewise.
27732 2017-04-04  Richard Biener  <rguenther@suse.de>
27734         PR middle-end/80281
27735         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
27736         arithmetic done for the negate or the plus.  Simplify.
27737         (A - (-B) -> A + B): Likewise.
27738         * fold-const.c (split_tree): Make sure to not negate pointers.
27740 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
27742         PR rtl-optimization/60818
27743         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
27744         a compare of comparisons with the thing compared if this results
27745         in a different machine mode.
27747 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
27749         * alias.c (base_alias_check): Fix typo in comment.
27750         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
27751         * cgraphunit.c (symbol_table::compile): Likewise.
27752         * collect2.c (maybe_run_lto_and_relink): Likewise.
27753         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
27754         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
27755         * config/avr/avr.c (avr_map_op_t): Likewise.
27756         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
27757         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
27758         * config/epiphany/epiphany.md (movcc): Likewise.
27759         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
27760         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
27761         Likewise.
27762         * config/mips/mips.c (mips_save_restore_reg): Likewise.
27763         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
27764         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
27765         * config/sh/sh.c (sh_rtx_costs): Likewise.
27766         * fold-const.c (fold_truth_andor): Likewise.
27767         * genautomata.c (collapse_flag): Likewise.
27768         * gengtype.h (struct type::u::s): Likewise.
27769         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
27770         * input.c (FORMAT_AMOUNT): Likewise.
27771         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
27772         (known_aggs_to_agg_replacement_list): Likewise.
27773         * ipa-inline-analysis.c: Likewise.
27774         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
27775         * ipa-polymorphic-call.c
27776         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
27777         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
27778         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
27779         Likewise.
27780         * modulo-sched.c (apply_reg_moves): Likewise.
27781         * omp-expand.c (build_omp_regions_1): Likewise.
27782         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
27783         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
27784         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
27785         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
27786         * value-prof.c: Likewise.
27787         * var-tracking.c (val_reset): Likewise.
27789 2017-04-03  Richard Biener  <rguenther@suse.de>
27791         PR tree-optimization/80275
27792         * fold-const.c (split_address_to_core_and_offset): Handle
27793         POINTER_PLUS_EXPR.
27795 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
27797         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
27798         descriptors is at least equal to that of functions.
27800 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
27802         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
27804 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
27806         PR target/80250
27807         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
27808         (mov<IMOD4:mode>): New expander.
27809         (*mov<IMOD4:mode>_internal): New insn and split pattern.
27811 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
27813         PR rtl-optimization/79405
27814         * fwprop.c (propagations_left): New variable.
27815         (forward_propagate_into): Decrement it.
27816         (fwprop_init): Initialize it.
27817         (fw_prop): If the variable has reached zero, stop propagating.
27818         (fwprop_addr): Ditto.
27820 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
27822         PR debug/79255
27823         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
27824         a FUNCTION_DECL, pass it as decl instead of origin to
27825         process_scope_var.
27827 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
27829         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
27830         string.
27832 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
27834         PR target/80107
27835         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
27836         TARGET_VSX_SMALL_INTEGER.
27838 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27840         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
27841         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
27843 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
27845         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
27846         extraction from odd-numbered MSA register.
27848 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
27850         PR middle-end/80173
27851         * expmed.c (store_bit_field_1): Don't attempt to create
27852         a word subreg out of hard registers wider than word if they
27853         have HARD_REGNO_NREGS of 1 for their mode.
27855         PR middle-end/80163
27856         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
27857         conversions to integer types wider than word and pointer.
27859         PR debug/80025
27860         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
27861         (rtx_equal_for_cselib_p): Pass 0 to it.
27862         * cselib.c (cselib_hasher::equal): Likewise.
27863         (rtx_equal_for_cselib_1): Add depth argument.  If depth
27864         is 128, don't look up VALUE locs and punt.  Increment
27865         depth in recursive calls when walking VALUE locs.
27867 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27869         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
27870         (make_gcov_file_name): Use the canonical path name for generating
27871         the MD5 value.
27872         (read_line): Fix handling of files with ascii null bytes.
27874 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
27876         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
27877         to initialise a vector register instead
27878         of using a const_int.
27880 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
27882         PR translation/80189
27883         * gimplify.c (omp_default_clause): Use %qs instead of %s in
27884         diagnostic messages.
27886 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
27888         PR target/80246
27889         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
27890         (dfp_diex_<mode>): Update mode of operand 1.
27891         * doc/extend.texi (dxex, dxexq): Document change to return type.
27892         (diex, diexq): Document change to argument type.
27894 2017-03-30  Martin Jambor  <mjambor@suse.cz>
27896         PR ipa/77333
27897         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
27898         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
27899         it reflects the signature changes performed at the callee side.
27900         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
27901         to cgraph_build_function_type_skip_args.
27902         (build_function_decl_skip_args): Adjust call to the above function.
27904 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
27906         PR target/80206
27907         * config/i386/sse.md
27908         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
27909         register as dest whenever it is a MEM not rtx_equal_p to the
27910         corresponding dup operand, and when forcing into reg move the
27911         reg into the memory afterwards.
27912         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
27913         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
27914         for the force_reg mode.
27915         (avx512vl_vextractf128<mode>): Use register as dest either
27916         always when a MEM, or when it is a MEM not rtx_equal_p to the
27917         corresponding dup operand, or even not when it is a CONST_VECTOR
27918         depending on the mode and lo vs. hi.
27919         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
27920         parens.
27921         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
27922         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
27923         Likewise.  Require that operands[2] is even.
27924         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
27925         Remove extraneous parens.  Require that operands[2] is a multiple
27926         of 4.
27927         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
27928         operands[0] is a MEM if <mask_applied>, the predicates/constraints
27929         disallow memory then.
27931 2017-03-30  Richard Biener  <rguenther@suse.de>
27933         PR tree-optimization/77498
27934         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
27935         to non-constants over backedges.
27937 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
27939         PR rtl-optimization/80233
27940         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
27941         as last_combined_insn.  Do not test for BARRIER_P separately.
27943 2017-03-29  Andreas Schwab  <schwab@suse.de>
27945         PR ada/80146
27946         * calls.c (prepare_call_address): Convert funexp to Pmode before
27947         copying to temp reg.
27949 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27951         PR tree-optimization/80158
27952         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
27953         Handle possible future case of more than one alternate
27954         interpretation.
27955         (replace_rhs_if_not_dup): Likewise.
27956         (replace_one_candidate): Likewise.
27958 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
27960         PR rtl-optimization/80193
27961         * ira.c (ira): Do not check allocation for LRA.
27963 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
27965         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
27966         (nvptx_output_simt_exit): Declare.
27967         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
27968         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
27969         (init_softstack_frame): Move initialization of crtl->is_leaf to...
27970         (nvptx_declare_function_name): ...here.  Emit declaration of local
27971         memory space buffer for omp_simt_enter insn.
27972         (nvptx_output_unisimt_switch): New.
27973         (nvptx_output_softstack_switch): New.
27974         (nvptx_output_simt_enter): New.
27975         (nvptx_output_simt_exit): New.
27976         * config/nvptx/nvptx.h (struct machine_function): New fields
27977         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
27978         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
27979         (UNSPECV_SIMT_EXIT): Ditto.
27980         (omp_simt_enter_insn): New insn.
27981         (omp_simt_enter): New expansion.
27982         (omp_simt_exit): New insn.
27983         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
27985         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
27986         (expand_GOMP_SIMT_ENTER_ALLOC): New.
27987         (expand_GOMP_SIMT_EXIT): New.
27988         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
27989         (GOMP_SIMT_ENTER_ALLOC): Ditto.
27990         (GOMP_SIMT_EXIT): Ditto.
27991         * target-insns.def (omp_simt_enter): New insn.
27992         (omp_simt_exit): Ditto.
27993         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
27994         simt_dlist.
27995         (lower_rec_simd_input_clauses): Implement SIMT privatization.
27996         (lower_rec_input_clauses): Likewise.
27997         (lower_lastprivate_clauses): Handle SIMT privatization.
27999         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
28000         (ompdevlow_adjust_simt_enter): New.
28001         (find_simtpriv_var_op): New.
28002         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
28003         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
28005         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
28006         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
28007         (copy_decl_for_dup_finish): Ditto.
28009         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
28011 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
28013         PR target/53383
28014         * config/i386/i386.c (ix86_option_override_internal): Always
28015         allow -mpreferred-stack-boundary=3 for 64-bit targets.
28017 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
28019         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
28021 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
28023         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
28024         mark new edge's irreducible flag accordign to it.
28025         (vect_do_peeling): Check loop preheader edge's irreducible flag
28026         and pass it to function slpeel_add_loop_guard.
28028 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
28030         PR tree-optimization/80218
28031         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
28032         Update block frequencies and counts.
28034 2017-03-28  Richard Biener  <rguenther@suse.de>
28036         PR tree-optimization/78644
28037         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
28038         of a simplification result we may not use it at all.
28040 2017-03-28  Richard Biener  <rguenther@suse.de>
28042         PR ipa/80205
28043         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
28044         without arguments, generate default definition of a SSA name.
28046 2017-03-28  Richard Biener  <rguenther@suse.de>
28048         PR middle-end/80222
28049         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
28050         TYPE_REF_CAN_ALIAS_ALL references.
28051         * fold-const.c (fold_indirect_ref_1): Likewise.
28053 2017-03-28  Martin Liska  <mliska@suse.cz>
28055         PR ipa/80104
28056         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
28057         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
28059 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
28060             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
28062         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
28063         (EXTRA_SPECS): Define.
28064         (SUBTARGET_EXTRA_SPECS): Likewise.
28065         (SUBTARGET_CPP_SPEC): Likewise.
28066         * config/arc/elf.h (EXTRA_SPECS): Renamed to
28067         SUBTARGET_EXTRA_SPECS.
28068         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
28070 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
28072         * config/arc/simdext.md (vst64_insn): Update pattern.
28073         (vld32wh_insn): Likewise.
28074         (vld32wl_insn): Likewise.
28075         (vld64_insn): Likewise.
28076         (vld32_insn): Likewise.
28078 2017-03-28  Marek Polacek  <polacek@redhat.com>
28080         PR sanitizer/80067
28081         * fold-const.c (fold_comparison): Use protected_set_expr_location
28082         instead of SET_EXPR_LOCATION.
28084 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
28086         * tree.c (add_expr): Avoid name lookup warning.
28088 2017-03-27  Jeff Law  <law@redhat.com>
28090         PR tree-optimization/80216
28091         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
28092         function name.  Limit recursion depth.
28093         (record_temporary_equivalences): Corresponding changes.
28095 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
28097         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
28098         covered first.
28100 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
28102         PR target/80102
28103         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
28104         notes.
28105         * cfgcleanup.c (reg_note_cfa_p): New array.
28106         (insns_have_identical_cfa_notes): New function.
28107         (old_insns_match_p): Don't cross-jump in between /f
28108         and non-/f instructions.  If both i1 and i2 are frame related,
28109         verify all CFA notes, their order and content.
28111 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
28113         PR target/78543
28114         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
28115         HImode and SImode with zero extend to DImode to one insn.
28116         (bswap<mode>2_extenddi): Likewise.
28117         (bswapsi2_extenddi): Likewise.
28118         (bswaphi2_extendsi): Likewise.
28119         (bswaphi2): Combine bswap HImode and SImode into one insn.
28120         Separate memory insns from swapping register.
28121         (bswapsi2): Likewise.
28122         (bswap<mode>2): Likewise.
28123         (bswaphi2_internal): Delete, no longer used.
28124         (bswapsi2_internal): Likewise.
28125         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
28126         store, and gpr<-gpr swap insns.
28127         (bswap<mode>2_store): Likewise.
28128         (bswaphi2_reg): Register only splitter, combine with the splitter.
28129         (bswaphi2 splitter): Likewise.
28130         (bswapsi2_reg): Likewise.
28131         (bswapsi2 splitter): Likewise.
28132         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
28133         the insns into load, store, and register/register insns.
28134         (bswapdi2_ldbrx): Likewise.
28135         (bswapdi2_load): Likewise.
28136         (bswapdi2_store): Likewise.
28137         (bswapdi2_reg): Likewise.
28139 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
28141         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
28142         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
28144 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
28146         PR target/80103
28147         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
28148         add comments.
28149         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
28150         special handling for target option conflicts between dform
28151         options (-mpower9-dform, -mpower9-dform-vector,
28152         -mpower9-dform-scalar) and -mno-direct-move.
28154 2017-03-27  Richard Biener  <rguenther@suse.de>
28156         PR tree-optimization/80181
28157         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
28159 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
28161         * config/arc/predicates.md (move_double_src_operand): Replace the
28162         call to move_double_src_operand with a call to address_operand.
28164 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
28166         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
28167         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
28168         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
28170 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
28172         * config/arc/predicates.md (long_immediate_loadstore_operand):
28173         Consider scaled addresses cases.
28175 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
28177         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
28178         restored when in interrupt.
28179         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
28180         doesn't have delay slot.
28182 2017-03-27  Richard Biener  <rguenther@suse.de>
28184         PR ipa/79776
28185         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
28186         inlined thunk clones.
28188 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
28190         PR sanitizer/80168
28191         * asan.c (instrument_derefs): Copy over last operand from
28192         original COMPONENT_REF to the new COMPONENT_REF with
28193         DECL_BIT_FIELD_REPRESENTATIVE.
28194         * ubsan.c (instrument_object_size): Likewise.
28196 2017-03-27  Richard Biener  <rguenther@suse.de>
28198         PR tree-optimization/80170
28199         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
28200         sure DR/SCEV didnt fold in constants we do not see when looking
28201         at the reference base alignment.
28203 2017-03-27  Richard Biener  <rguenther@suse.de>
28205         PR middle-end/80171
28206         * gimple-fold.c (fold_ctor_reference): Properly guard against
28207         NULL return value from canonicalize_constructor_val.
28209 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
28211         PR target/80180
28212         * config/i386/i386.c (ix86_expand_builtin)
28213         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
28214         flags reg setting and flags reg using instructions.
28215         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
28216         clobbering instructions to zero extend op2.
28218 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
28220         * doc/install.texi (Configuration) <--with-aix-soname>:
28221         Update link to AIX ld.
28223 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
28225         PR rtl-optimization/80160
28226         PR rtl-optimization/80159
28227         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
28228         reg_alternate_class into account.
28230 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
28232         PR target/80148
28233         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
28234         to consider in curr_insn_transform.
28236 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
28238         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
28239         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
28240         and emit_mode_inner.
28242 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28244         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
28245         argument to the overloaded builtin variants.  Use the new flag to
28246         deprecate certain builtin variants.
28247         * config/s390/s390-builtin-types.def: Add new builtin types.
28248         * config/s390/s390-builtins.h: Support new flags field for
28249         overloaded builtins.
28250         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
28251         (s390_macro_to_expand): Enable vector float data type.
28252         (s390_cpu_cpp_builtins_internal): Indicate support of the new
28253         builtins by incrementing the __VEC__ version number.
28254         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
28255         vec_xst.
28256         (s390_resolve_overloaded_builtin): Emit error messages depending
28257         on the builtin flags.
28258         * config/s390/s390.c (s390_expand_builtin): Support additional
28259         flags argument.  Change error message to match the messages
28260         emitted in s390-c.c.
28261         * config/s390/s390.md: New UNSPEC_* constants.
28262         (op_type): Add new instruction types.
28263         * config/s390/vecintrin.h: Add new builtins and test data class
28264         constants.
28265         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
28266         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
28267         (VEC_INEXACT, VEC_NOINEXACT): New constants.
28268         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
28269         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
28270         ("vec_mergel<mode>"): V_HW -> VEC_HW.
28272         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
28273         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
28274         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
28275         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
28277         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
28278         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
28279         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
28280         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
28282         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
28283         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
28284         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
28285         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
28286         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
28287         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
28288         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
28290         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
28291         ("vec_scatter_element<V_HW_4:mode>_DI")
28292         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
28293         ("vec_fpint<mode>", "vflls")
28294         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
28295         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
28296         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
28297         ("*vec_cmphe<mode>_cc"): ... these.
28299         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
28300         mode constant instead of magic value.
28302 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28304         * config/s390/s390.c (s390_expand_vec_compare): Support other
28305         vector floating point modes than just V2DF.
28306         (s390_expand_vcond): Likewise.
28307         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
28308         (s390_cannot_change_mode_class): Prevent mode changes between TF
28309         and V1TF in vector registers.
28310         * config/s390/s390.md (DF, SF): New mode attributes.
28311         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
28312         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
28313         SFmode support for VRs.
28314         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
28315         vector fp modes.
28316         (VFT, VF_HW): New mode iterators.
28317         (vw, sdx): New mode attributes.
28318         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
28319         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
28320         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
28321         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
28322         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
28323         also the new vector floating point modes.  Renaming to ...
28325         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
28326         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
28327         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
28328         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
28329         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
28330         ("vec_unordered<mode>"): ... these.
28332         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
28333         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
28334         ("*vec_extendv2df"): New insn definitions.
28336 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28338         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
28339         ("mulditi3_2", "*muldi3_sign"): New patterns.
28340         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
28341         rename the pattern definition.
28343 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28345         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
28346         expander.
28347         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
28349 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28351         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
28352         instruction if possible.
28353         * config/s390/vector.md (vec_halfnumelts): New mode
28354         attribute.
28355         ("*vec_vllezlf<mode>"): New pattern.
28357 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28359         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
28360         ("popcountv4si2", "popcountv2di2"): Rename to ...
28361         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
28362         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
28363         condition.
28364         ("popcount<mode>2_vxe"): New pattern.
28366 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28368         * common/config/s390/s390-common.c (processor_flags_table): Add
28369         arch12.
28370         * config.gcc: Add arch12.
28371         * config/s390/driver-native.c (s390_host_detect_local_cpu):
28372         Default to arch12 for unknown CPU model numbers.
28373         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
28374         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
28375         PROCESSOR_max sanity check.
28376         * config/s390/s390-opts.h (enum processor_type): Add
28377         PROCESSOR_ARCH12.
28378         * config/s390/s390.c (processor_table): Add arch12.
28379         (s390_expand_builtin): Add check for B_VXE flag.
28380         (s390_issue_rate): Add PROCESSOR_ARCH12.
28381         (s390_get_sched_attrmask): Likewise.
28382         (s390_get_unit_mask): Likewise.
28383         (s390_sched_score): Enable z13 scheduling for arch12.
28384         (s390_sched_reorder): Likewise.
28385         (s390_sched_variable_issue): Likewise.
28386         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
28387         PF_VXE.
28388         (s390_tune_attr): Use z13 scheduling also for arch12.
28389         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
28390         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
28391         (TARGET_VXE_P): New macros.
28392         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
28393         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
28394         * config/s390/s390.opt: Add arch12 as processor_type.
28396 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28398         * config/s390/s390.md
28399         ("fixuns_truncdddi2", "fixuns_trunctddi2")
28400         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
28401         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
28403         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
28404         Rename expanders to ...
28406         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
28407         ("fixuns_truncdddi2_emu"): ... these.
28409         ("fixuns_trunc<mode>si2_emu"): New expander.
28411         ("*fixuns_truncdfdi2_z13"): Rename to ...
28412         ("*fixuns_truncdfdi2_vx"): ... this.
28414 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28416         * config/s390/2964.md: Remove the single element vector compare
28417         instructions which are no longer used.
28418         * config/s390/s390.c (s390_select_ccmode): Remove handling of
28419         vector CCmodes.
28420         (s390_canonicalize_comparison): Remove handling of DFmode
28421         compares.
28422         (s390_expand_vec_compare_scalar): Remove function.
28423         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
28424         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
28425         pattern.
28426         ("*cmp<mode>_ccs"): Add wfcdb instruction.
28428 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28430         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
28431         FP zero.
28432         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
28433         will anyway by matched by mov<mode>_64dfp.
28435 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28437         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
28438         vlef/vstef.  Add missing operand to vleif.
28440 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28442         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
28443         pair for all vector types with 64 bit elements.
28444         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
28445         * config/s390/vector.md (V_HW_64): ... here.
28446         (V_128_NOSINGLE): New mode iterator.
28447         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
28448         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
28449         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
28450         ("*vec_load_pairv2di"): Change to ...
28451         ("*vec_load_pair<mode>"): ... this one.
28453 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28455         * config/s390/constraints.md: Add comments.
28456         (jKK): Reject element sizes > 8 bytes.
28457         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
28458         s_operands.
28459         * config/s390/s390.md: Add the s_operand checks formerly in
28460         s390_split_ok_p to various splitters where they are still
28461         required.
28462         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
28463         for 128 bit vectors.  Plus two splitters.
28465 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28467         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
28468         the file.
28470 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28472         PR target/79893
28473         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
28474         error if the boundary argument is not constant.
28476 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
28478         PR rtl-optimization/80112
28479         * loop-doloop.c (doloop_condition_get): Don't check condition
28480         if cmp isn't SET with IF_THEN_ELSE src.
28482 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28484         PR tree-optimization/80158
28485         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
28486         replacing a candidate statement, also replace it for the
28487         candidate's alternate interpretation.
28488         (replace_rhs_if_not_dup): Likewise.
28489         (replace_one_candidate): Likewise.
28491 2017-03-24  Richard Biener  <rguenther@suse.de>
28493         PR tree-optimization/80167
28494         * graphite-isl-ast-to-gimple.c
28495         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
28496         properly.
28497         (translate_isl_ast_to_gimple::get_rename): Likewise.
28499 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
28501         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
28502         handling of certain combinations of target options, including the
28503         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
28504         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
28506 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28508         PR target/71436
28509         * config/arm/arm.md (*load_multiple): Add reload_completed to
28510         matching condition.
28512 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28513             Richard Biener  <rguenth@suse.de>
28515         PR tree-optimization/79908
28516         PR tree-optimization/80136
28517         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
28518         been cast away, gimplify_and_add suffices.
28520 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
28522         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
28524 2017-03-23  Richard Biener  <rguenther@suse.de>
28526         PR tree-optimization/80032
28527         * gimplify.c (gimple_push_cleanup): Forced unconditional
28528         cleanups still have to go to the conditional_cleanups
28529         sequence.
28531 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
28533         PR tree-optimization/80072
28534         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
28535         to unsigned int.
28536         (next_operand_entry_id): Change type to unsigned int.
28537         (sort_by_operand_rank): Make sure to return the right return value
28538         even if unsigned fields are bigger than INT_MAX.
28539         (struct oecount): Change cnt and id type to unsigned int.
28540         (oecount_hasher::equal): Formatting fix.
28541         (oecount_cmp): Make sure to return the right return value
28542         even if unsigned fields are bigger than INT_MAX.
28543         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
28545         PR c++/80129
28546         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
28547         TREE_READONLY on result if writing it more than once.
28549         PR sanitizer/80110
28550         * doc/invoke.texi (-fsanitize=thread): Document that with
28551         -fnon-call-exceptions atomics are not able to throw
28552         exceptions.
28554         PR sanitizer/80110
28555         * tsan.c: Include tree-eh.h.
28556         (instrument_builtin_call): Call maybe_clean_eh_stmt or
28557         maybe_clean_or_replace_eh_stmt where needed.
28558         (instrument_memory_accesses): Add cfg_changed argument.
28559         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
28560         if it returned true.
28561         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
28563         PR rtl-optimization/63191
28564         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
28565         wrapper function, moved the whole old content into ...
28566         (ix86_delegitimize_address_1): ... this.  New inline function.
28567         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
28568         true as last argument instead of ix86_delegitimize_address.
28570 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
28572         * config/aarch64/aarch64.c (generic_branch_cost): Copy
28573         cortexa57_branch_cost.
28575 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
28577         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
28579 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
28581         PR target/80123
28582         * doc/md.texi (Constraints): Document wA constraint.
28583         * config/rs6000/constraints.md (wA): New.
28584         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
28585         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
28586         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
28587         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
28589 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
28591         PR c++/80029
28592         * gimplify.c (is_oacc_declared): New function.
28593         (oacc_default_clause): Use it to set default flags for acc declared
28594         variables inside parallel regions.
28595         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
28596         declared variables.
28597         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
28598         declare attribute to any decl as necessary.
28600 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28602         PR target/80082
28603         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
28604         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
28605         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
28606         (arm_arch_lpae): This.
28607         * config/arm/arm.c (arm_arch7ve): Rename into ...
28608         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
28609         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
28610         arm_arch_lpae.
28612 2017-03-22  Martin Liska  <mliska@suse.cz>
28614         PR target/79906
28615         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
28616         error message instead of an ICE.
28618 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28620         * doc/extend.texi (6.11 Additional Floating Types): Revise.
28622 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
28624         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
28625         comments.
28626         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
28627         comments.
28629 2017-03-21  Martin Sebor  <msebor@redhat.com>
28631         * doc/extend.texi: Use "cannot" instead of "can't."
28632         * doc/hostconfig.texi: Same.
28633         * doc/install.texi: Same.
28634         * doc/invoke.texi: Same.
28635         * doc/loop.texi: Same.
28636         * doc/md.texi: Same.
28637         * doc/objc.texi: Same.
28638         * doc/rtl.texi: Same.
28639         * doc/tm.texi: Same.
28640         * doc/tm.texi.in: Same.
28641         * doc/trouble.texi: Same.
28643 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
28645         PR debug/63238
28646         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
28647         (collect_checksum_attributes): Set it.
28648         (die_checksum_ordered): Use it.
28650 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28652         PR tree-optimization/79908
28653         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
28654         change: For a VA_ARG whose LHS has been cast away, use
28655         force_gimple_operand to construct the side effects.
28657 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
28659         PR translation/80001
28660         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
28661         more amenable to translation.
28662         (oacc_loop_auto_partitions): Likewise.
28664 2017-03-21  Marek Polacek  <polacek@redhat.com>
28665             Martin Sebor  <msebor@redhat.com>
28667         PR tree-optimization/80109
28668         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
28669         on INTEGRAL_TYPE_P.
28671 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
28672             Segher Boessenkool  <segher@kernel.crashing.org>
28674         PR target/80125
28675         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
28676         check reg_used_between_p between insn and one of succ or succ2
28677         depending on if succ is artificial insn not inserted into insn
28678         stream.
28680 2017-03-21  Martin Liska  <mliska@suse.cz>
28682         PR gcov-profile/80081
28683         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
28684         * doc/gcc.texi: Include gcov-dump stuff.
28685         * doc/gcov-dump.texi: New file.
28687 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
28689         PR rtl-optimization/79150
28690         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
28691         conditional jump, if the jump is the last insn of the loop.
28693 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28694             Richard Biener  <rguenth@suse.de>
28696         PR tree-optimization/79908
28697         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
28698         been cast away, use force_gimple_operand to construct the side
28699         effects.
28701 2017-03-21  Martin Liska  <mliska@suse.cz>
28703         PR libfortran/79956
28704         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
28705         to NULL.
28707 2017-03-21  Brad Spengler <spender@grsecurity.net>
28709         PR plugins/80094
28710         * plugin.c (htab_hash_plugin): New function.
28711         (add_new_plugin): Use it and adjust.
28712         (parse_plugin_arg_opt): Adjust.
28713         (init_one_plugin): Likewise.
28715 2017-03-21  Richard Biener  <rguenther@suse.de>
28717         PR tree-optimization/80032
28718         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
28719         if set force the cleanup to happen unconditionally.
28720         (gimplify_target_expr): Push inserted clobbers with force_uncond
28721         to avoid them being removed by control-dependent DCE.
28723 2017-03-21  Richard Biener  <rguenther@suse.de>
28725         PR tree-optimization/80122
28726         * tree-inline.c (copy_bb): Do not expans va-arg packs or
28727         va_arg_pack_len when the inlined call stmt requires pack
28728         expansion itself.
28729         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
28731 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
28733         PR sanitizer/78158
28734         * tsan.c (instrument_builtin_call): If the memory model argument
28735         is not a constant, assume it is valid.
28737         PR c/67338
28738         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
28739         avoid UB.
28741 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
28743         PR rtl-optimization/79910
28744         * combine.c (can_combine_p): Do not allow combining an I0 or I1
28745         if its dest is used by an insn before I2 (other than the combined
28746         insns themselves, which are properly handled already).
28748 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
28750         Revert:
28751         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
28753         * combine.c (record_used_regs): New static function.
28754         (try_combine): Handle situations where there is an additional
28755         instruction between I2 and I3 which needs to have a LOG_LINK
28756         updated.
28758         Revert:
28759         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
28761         * combine.c (try_combine): Delete redundant i1 test.  Call
28762         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
28764 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
28766         PR target/80083
28767         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
28768         alternatives 13/14.
28770 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28772         PR tree-optimization/80054
28773         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
28774         the optimization if a PHI or any of its arguments is not dominated
28775         by the candidate's basis.  Use gphi* rather than gimple* as
28776         appropriate.
28777         (replace_profitable_candidates): Clean up a gimple* variable that
28778         should be a gphi* variable.
28780 2017-03-20  Martin Sebor  <msebor@redhat.com>
28782         PR c++/52477
28783         * doc/extend.texi (attribute constructor): Document present limitation.
28785 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
28787         PR target/79963
28788         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
28789         __POWER9_VECTOR__ #ifdef control, change template definition to
28790         use Power9-specific built-in function.
28791         (vec_any_eq): Likewise.
28792         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
28793         to control outcomes from this test.
28794         (vector_ae_<mode>p): For VEC_F modes, likewise.
28796 2017-03-20  Ian Lance Taylor  <iant@google.com>
28798         * config/i386/i386.c (ix86_function_regparm): Save an extra
28799         register for -fsplit-stack with DECL_STATIC_CHAIN.
28801 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
28803         PR target/79912
28804         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
28805         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
28807 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
28809         * config/riscv/riscv.c (riscv_print_operand): Use "fence
28810         iorw,ow".
28811         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
28812         iorw,iorw".
28814 2017-03-20  Marek Polacek  <polacek@redhat.com>
28816         PR sanitizer/80063
28817         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
28819 2017-03-20  Richard Biener  <rguenther@suse.de>
28821         PR tree-optimization/80113
28822         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
28823         allocate extra SSA name for PHI def.
28824         (add_close_phis_to_outer_loops): Likewise.
28825         (add_close_phis_to_merge_points): Likewise.
28826         (copy_loop_close_phi_args): Likewise.
28827         (copy_cond_phi_nodes): Likewise.
28829 2017-03-20  Martin Liska  <mliska@suse.cz>
28831         PR middle-end/79753
28832         * tree-chkp.c (chkp_build_returned_bound): Do not build
28833         returned bounds for a LHS that's not a BOUNDED_P type.
28835 2017-03-20  Martin Liska  <mliska@suse.cz>
28837         PR target/79769
28838         PR target/79770
28839         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
28840         COMPLEX_CST and VECTOR_CST.
28842 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28844         PR target/78857
28845         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
28846         target operand.  A new splitter adds the clobber statement in case
28847         the target operand is dead anyway.
28849 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
28851         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
28852         to age-old versions of binutils and glibc.
28854 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
28856         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
28858 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
28860         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
28862 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
28864         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
28865         requirement for binutils 2.13.
28867 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
28869         * combine.c (try_combine): Delete redundant i1 test.  Call
28870         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
28872 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
28874         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
28875         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
28876         contents.
28877         <riscv64-*-elf>: Re-arrange section
28878         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
28879         <riscv32-*-linux>: Likewise.
28880         <riscv64-*-elf>: Likewise
28881         <riscv64-*-linux>: Likewise.
28883 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
28885         PR target/80052
28886         * aarch64.opt(verbose-cost-dump): Fix typo.
28888 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
28890         PR target/79951
28891         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
28892         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
28894 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
28896         * reload.c (find_reloads): When reloading a nonoffsettable address,
28897         use RELOAD_OTHER for it and its address reloads.
28899         PR rtl-optimization/79910
28900         * combine.c (record_used_regs): New static function.
28901         (try_combine): Handle situations where there is an additional
28902         instruction between I2 and I3 which needs to have a LOG_LINK
28903         updated.
28905 2017-03-17  Jeff Law  <law@redhat.com>
28907         PR tree-optimization/71437
28908         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
28909         conditional in the hash table first.
28910         (vrp_dom_walker::before_dom_children): Extract condition from
28911         ASSERT_EXPR.  Record condition, its inverion and any implied
28912         conditions as well.
28914 2017-03-17  Marek Polacek  <polacek@redhat.com>
28915             Markus Trippelsdorf  <markus@trippelsdorf.de>
28917         PR tree-optimization/80079
28918         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
28919         m_stores_head.
28921 2017-03-17  Richard Biener  <rguenther@suse.de>
28923         PR middle-end/80075
28924         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
28925         Properly verify the LHS before the RHS possibly claims to be
28926         handled.
28927         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
28928         do not throw.
28930 2017-03-17  Martin Jambor  <mjambor@suse.cz>
28932         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
28933         (List of -O2 options): Likewise.
28934         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
28935         (-fipa-vrp) New.
28937 2017-03-17  Tom de Vries  <tom@codesourcery.com>
28939         * gcov-dump.c (print_usage): Print bug_report_url.
28941 2017-03-17  Richard Biener  <rguenther@suse.de>
28943         PR middle-end/80050
28944         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
28945         (parser::peek): Likewise.
28947 2017-03-17  Richard Biener  <rguenther@suse.de>
28949         PR tree-optimization/80048
28950         * sese.c (free_sese_info): Properly release rename_map and
28951         copied_bb_map elements.
28953 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
28955         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
28956         Add linked-list forward and backlinks.  Insert on
28957         construction, remove on destruction.
28958         (class pass_store_merging): Add m_stores_head field.
28959         (pass_store_merging::terminate_and_process_all_chains):
28960         Iterate over m_stores_head list.
28961         (pass_store_merging::terminate_all_aliasing_chains):
28962         Likewise.
28963         (pass_store_merging::execute): Check for debug stmts first.
28964         Push new chains onto the m_stores_head stack.
28966 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
28968         PR target/71294
28969         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
28970         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
28971         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
28973 2017-03-16  Jeff Law  <law@redhat.com>
28975         PR tree-optimization/71437
28976         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
28977         member function.  Implementation moved into after_dom_children
28978         member function and into the threader's thread_outgoing_edges
28979         function.
28980         (dom_opt_dom_walker::after_dom_children): Simplify by moving
28981         some code into new thread_outgoing_edges.
28982         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
28983         definition.  Simplify marker handling (do it here).   Assume we always
28984         have the available expression and the const/copies tables.
28985         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
28986         and tree-vrp.c
28987         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
28988         * tree-vrp.c (equiv_stack): No longer file scoped.
28989         (vrp_dom_walker): New class.
28990         (vrp_dom_walker::before_dom_children): New member function.
28991         (vrp_dom_walker::after_dom_children): Likewise.
28992         (identify_jump_threads):  Setup domwalker.  Use it rather than
28993         walking edges in a random order by hand.  Simplify setup/finalization.
28994         (finalize_jump_threads): Remove.
28995         (vrp_finalize): Do not call identify_jump_threads here.
28996         (execute_vrp): Do it here instead and call thread_through_all_blocks
28997         here too.
28999         PR tree-optimization/71437
29000         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
29001         callers changed.
29002         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
29003         callers changed.
29004         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
29005         (dom_opt_dom_walker::thread_across_edge): Remove
29006         handle_dominating_asserts argument.  All callers changed.
29007         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
29008         changes.  Remove calls to lhs_of_dominating_assert.  Other
29009         uses of handle_dominating_asserts turn into unconditional code
29010         (simplify_control_stmt_condition_1): Likewise.
29011         (simplify_control_stmt_condition): Likewise.
29012         (thread_through_normal_block, thread_across_edge): Likewise.
29013         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
29014         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
29015         object if it is not an SSA_NAME.
29016         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
29017         before calling into the VRP specific simplifiers.
29018         (identify_jump_threads): Remove handle_dominating_asserts
29019         argument.
29021 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
29023         PR fortran/79886
29024         * tree-diagnostic.c (default_tree_printer): No longer static.
29025         * tree-diagnostic.h (default_tree_printer): New prototype.
29027 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
29029         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
29030         Change ins into fmov.
29032 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29034         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
29035         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
29036         Use h_con constraint for operand 1.
29037         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
29038         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
29040 2017-03-15  Jeff Law  <law@redhat.com>
29042         PR tree-optimization/71437
29043         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
29044         (record_temporary_equivalences): Use it.
29046         PR tree-optimization/71437
29047         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
29048         tree-ssa-scopedtables.
29049         (lookup_avail_expr, build_and_record_new_cond): Likewise.
29050         (record_conditions, record_cond, vuse_eq): Likewise.
29051         (record_edge_info): Adjust to API tweak of record_conditions.
29052         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
29053         (record_temporary_equivalences, optimize_stmt): Likewise.
29054         (eliminate_redundant_computations): Likewise.
29055         (record_equivalences_from_stmt): Likewise.
29056         * tree-ssa-scopedtables.c: Include options.h and params.h.
29057         (vuse_eq): New function, moved from tree-ssa-dom.c
29058         (build_and_record_new_cond): Likewise.
29059         (record_conditions): Likewise.  Accept vector of conditions rather
29060         than edge_equivalence structure for first argument.
29061         for the first argument.
29062         (avail_exprs_stack::lookup_avail_expr): New member function, moved
29063         from tree-ssa-dom.c.
29064         (avail_exprs_stack::record_cond): Likewise.
29065         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
29066         from tree-ssa-dom.c.
29067         (avail_exprs_stack): Add new member functions lookup_avail_expr
29068         and record_cond.
29069         (record_conditions): Declare.
29071 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
29073         PR target/80017
29074         * lra-constraints.c (process_alt_operands): Increase reject for
29075         reloading an input/output operand.
29077 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
29079         PR target/79038
29080         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
29081         insns to convert from signed/unsigned char/short to IEEE 128-bit
29082         floating point.
29083         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
29085 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
29087         PR target/80019
29088         * config/i386/i386.c (ix86_vector_duplicate_value): Create
29089         subreg of inner mode for values already in registers.
29091 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
29093         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
29094         iteration reg is used after the loop.
29096 2017-03-14  Martin Sebor  <msebor@redhat.com>
29098         PR tree-optimization/79800
29099         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
29100         precision in negative-positive range.
29101         (format_floating): Call non-const overload with adjusted precision.
29103 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
29105         PR target/79947
29106         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
29107         -mpowerpc-gfxopt.
29109 2017-03-14  Martin Sebor  <msebor@redhat.com>
29111         PR middle-end/80020
29112         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
29113         * builtins.def (aligned_alloc): Use it.
29115         PR c/79936
29116         * Makefile.in (GTFILES): Add calls.c.
29117         * calls.c: Include "gt-calls.h".
29119 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
29121         PR rtl-optimization/79728
29122         * regs.h (struct target_regs): New field
29123         x_contains_allocatable_regs_of_mode.
29124         (contains_allocatable_regs_of_mode): New macro.
29125         * reginfo.c (init_reg_sets_1): Initialize it, and change
29126         contains_reg_of_mode so it includes global regs as well.
29127         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
29128         rather than contains_regs_of_mode.
29130 2017-03-14  Martin Liska  <mliska@suse.cz>
29132         * doc/invoke.texi: Document options that can't be combined with
29133         -fcheck-pointer-bounds.
29135 2017-03-14  Martin Liska  <mliska@suse.cz>
29137         PR middle-end/79831
29138         * doc/invoke.texi (-Wchkp): Document the option.
29140 2017-03-14  Martin Liska  <mliska@suse.cz>
29142         * Makefile.in: Install gcov-dump.
29144 2017-03-14  Martin Liska  <mliska@suse.cz>
29146         * multiple_target.c (expand_target_clones): Bail out for
29147         an invalid attribute.
29149 2017-03-14  Richard Biener  <rguenther@suse.de>
29151         * alias.c (struct alias_set_entry): Pack properly.
29152         * cfgloop.h (struct loop): Likewise.
29153         * cse.c (struct set): Likewise.
29154         * ipa-utils.c (struct searchc_env): Likewise.
29155         * loop-invariant.c (struct invariant): Likewise.
29156         * lra-remat.c (struct cand): Likewise.
29157         * recog.c (struct change_t): Likewise.
29158         * rtl.h (struct address_info): Likewise.
29159         * symbol-summary.h (function_summary): Likewise.
29160         * tree-loop-distribution.c (struct partition): Likewise.
29161         * tree-object-size.c (struct object_size_info): Likewise.
29162         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
29163         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
29164         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
29165         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
29166         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
29167         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
29168         (struct _stmt_vec_info): Likewise.
29170 2017-03-14  Martin Liska  <mliska@suse.cz>
29172         PR target/79892
29173         * multiple_target.c (create_dispatcher_calls): Check that
29174         a target can create a function dispatcher.
29176 2017-03-14  Martin Liska  <mliska@suse.cz>
29178         PR lto/66295
29179         * multiple_target.c (expand_target_clones): Drop local.local
29180         flag for default implementation.
29182 2017-03-14  Richard Biener  <rguenther@suse.de>
29184         PR tree-optimization/80030
29185         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
29187 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
29189         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
29190         gcc_fallthrough() instead of __attribute__((fallthrough));
29192 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
29194         * doc/gcc.texi: Remove "up" link to (DIR).
29195         * doc/gccint.texi: Ditto.
29197 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
29199         * doc/install.texi (Specific) <avr>: Remove reference to
29200         binutils 2.13.
29202 2017-03-13  Jeff Law  <law@redhat.com>
29204         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
29205         attribute rather than comments.
29207         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
29208         match_scratch operand is highest.
29210 2017-03-13  Martin Liska  <mliska@suse.cz>
29212         PR middle-end/78339
29213         * ipa-pure-const.c (warn_function_noreturn): If the declarations
29214         is a CHKP clone, use original declaration.
29216 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
29218         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
29219         (arc_conditional_register_usage): Use a different allocation order
29220         when optimizing for size.
29221         * common/config/arc/arc-common.c (arc_option_optimization_table):
29222         Section anchors default on when optimizing for size.
29224 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
29226         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
29228 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
29230         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
29231         * config/arc/arc.md (cpu_facility): Add cd variant.
29232         (*movqi_insn): Add code density variant.
29233         (*movhi_insn): Likewise.
29234         (*movqi_insn): Likewise.
29235         (*addsi3_mixed): Likewise.
29236         (subsi3_insn): Likewise.
29238 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
29240         * config/arc/arc.md (movsi_cond_exec): Update constraint.
29242 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
29244         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
29245         expressions with MINUS and UNARY ops.
29247 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29249         PR target/79911
29250         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
29251         Rename to...
29252         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
29253         between vec_select and vector argument.
29254         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
29255         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
29256         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
29257         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
29258         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
29259         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
29261 2017-03-13  Richard Biener  <rguenther@suse.de>
29263         PR other/79991
29264         * params.def (vect-max-peeling-for-alignment): Fix typo.
29266 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
29268         * doc/install.texi (Specific) <mips-*-*>: Remove description of
29269         issue that only occurred with binutils below 2.18.
29271 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
29273         * doc/install.texi (Specific) <cris-axis-elf>: No longer
29274         refer to binutils 2.11/2.12 minimum.
29276 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
29278         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
29279         ftp.kernel.org and simplify binutils requirement.
29281 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
29283         * doc/invoke.texi (Warning Options): Fix spelling of link-time
29284         optimization.
29285         (Optimize Options): Ditto.  Also remove redundancy.
29287 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
29289         PR translation/79848
29290         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
29291         "%qs".
29292         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
29293         to G_ to avoid double translation.
29295 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
29297         PR translation/79923
29298         * auto-profile.c (get_combined_location): Convert leading
29299         character of diagnostics to lower case and remove trailing period.
29300         (read_profile): Likewise for various diagnostics.
29301         * config/arm/arm.c (arm_option_override): Remove trailing period
29302         from various diagnostics.
29303         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
29304         (msp430_expand_delay_cycles): Likewise.
29306 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
29308         PR target/79925
29309         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
29310         full command-line argument, rather than just "str".
29311         (aarch64_validate_march): Likewise.
29312         (aarch64_validate_mtune): Likewise.
29314 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
29316         PR rtl-optimization/78911
29317         * lra-assigns.c (must_not_spill_p): New function.
29318         (spill_for): Use it.
29320 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
29322         PR tree-optimization/79981
29323         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
29324         ATOMIC_COMPARE_EXCHANGE ifn result.
29325         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
29326         IFN_ATOMIC_COMPARE_EXCHANGE.
29328 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
29330         PR driver/79875
29331         * opts.c (parse_sanitizer_options): Add missing question mark to
29332         "did you mean" message.
29334 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29336         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
29337         built-in.
29338         (VMULEUH_UNS): Likewise.
29339         (VMULOUB_UNS): Likewise.
29340         (VMULOUH_UNS): Likewise.
29341         * config/rs6000/rs6000.c (builtin_function_type): Remove
29342         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
29344 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
29346         PR bootstrap/79952
29347         * read-rtl-function.c (function_reader::read_rtx_operand): Update
29348         x with result of extra_parsing_for_operand_code_0.
29349         (function_reader::extra_parsing_for_operand_code_0): Convert
29350         return type from void to rtx, returning x.  When reading
29351         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
29352         larger size containing struct block_symbol.
29354 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
29356         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
29357         -mfloat128-hardware without -m64.
29359 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
29361         PR target/79941
29362         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
29363         entries to the case statement that marks unsigned arguments to
29364         overloaded functions.
29366 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
29368         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
29369         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
29371 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
29373         PR target/79907
29374         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
29375         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
29377 2017-03-10  Martin Liska  <mliska@suse.cz>
29379         PR target/65705
29380         PR target/69804
29381         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
29382         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
29383         FIELD != NULL.
29385 2017-03-10  Olivier Hainque  <hainque@adacore.com>
29387         * tree-switch-conversion (array_value_type): Start by resetting
29388         candidate type to it's main variant.
29390 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
29392         PR rtl-optimization/79909
29393         * combine.c (try_combine): Use simplify_replace_rtx on individual
29394         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
29395         of the whole CALL_INSN_FUNCTION_USAGE.
29397         PR tree-optimization/79972
29398         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
29399         get_range_info on SSA_NAMEs.  Formatting fixes.
29401 2017-03-10  Richard Biener  <rguenther@suse.de>
29402             Jakub Jelinek  <jakub@redhat.com>
29404         PR tree-optimization/77975
29405         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
29406         edge to be constant.
29407         (get_val_for): For constant x return it.  Formatting fix.
29408         (loop_niter_by_eval): Avoid pointless looping if the next iteration
29409         would use the same bases as the current one.
29411 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29413         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
29414         instead of vec_select for V1TImode.
29415         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
29416         longer needed.
29417         (VSX_LE_128): Add V1TI to this mode iterator.
29418         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
29419         (*vsx_le_perm_store_<mode>): Likewise.
29420         (pre-reload splitter for VSX stores): Likewise.
29421         (post-reload splitter for VSX stores): Likewise.
29422         (*vsx_xxpermdi2_le_<mode>): Likewise.
29423         (*vsx_lxvd2x2_le_<mode>): Likewise.
29424         (*vsx_stxvd2x2_le_<mode>): Likewise.
29426 2017-03-09  Michael Eager  <eager@eagercon.com>
29428         Correct failures with --enable-checking=yes,rtl.
29430         * config/microblaze/microblaze.c (microblaze_expand_shift):
29431         Replace GET_CODE test with CONST_INT_P and INTVAL test with
29432         test for const0_rtx.
29433         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
29434         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
29436 2017-03-09  Richard Biener  <rguenther@suse.de>
29438         PR tree-optimization/79977
29439         * graphite-scop-detection.c (scop_detection::merge_sese):
29440         Handle the case of extra exits to blocks dominating the entry.
29442 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
29444         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
29445         Document rdynamic.
29447 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
29449         PR rtl-optimization/79949
29450         * lra-constraints.c (process_alt_operands): Check memory when
29451         trying to predict a cycle.  Print about the overall increase.
29453 2017-03-09  Richard Biener  <rguenther@suse.de>
29455         PR middle-end/79971
29456         * gimple-expr.c (useless_type_conversion_p): Preserve
29457         TYPE_SATURATING for fixed-point types.
29459 2017-03-09  Richard Biener  <rguenther@suse.de>
29461         PR ipa/79970
29462         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
29463         alignment of BLKmode params.
29465 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29467         PR target/79913
29468         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
29469         (VALL_NO_V2Q): Likewise.
29470         (VDQF_DF): Delete.
29471         * config/aarch64/aarch64-simd.md
29472         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
29473         iterator.
29474         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
29475         VALL_NO_V2Q mode iterator.
29476         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
29478 2017-03-09  Martin Liska  <mliska@suse.cz>
29480         PR tree-optimization/79631
29481         * tree-chkp-opt.c (chkp_is_constant_addr): Call
29482         tree_int_cst_sign_bit just for INTEGER constants.
29484 2017-03-09  Martin Liska  <mliska@suse.cz>
29486         PR target/65705
29487         PR target/69804
29488         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
29489         sanitizers.
29491 2017-03-09  Marek Polacek  <polacek@redhat.com>
29493         PR c++/79672
29494         * tree.c (inchash::add_expr): Handle TREE_VEC.
29496 2017-03-09  Martin Liska  <mliska@suse.cz>
29498         PR ipa/79764
29499         (chkp_narrow_size_and_offset): New function.
29500         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
29501         (void chkp_parse_bit_field_ref): New function.
29502         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
29503         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
29505 2017-03-09  Martin Liska  <mliska@suse.cz>
29507         PR ipa/79761
29508         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
29509         (chkp_find_bounds_1): Remove gcc_unreachable.
29511 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
29513         PR sanitizer/79944
29514         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
29515         BUILT_IN_SYNC*, determine the access type from the size suffix and
29516         always build a MEM_REF with that type.  Handle forgotten
29517         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
29519         PR target/79932
29520         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
29521         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
29522         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
29523         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
29524         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
29525         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
29526         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
29527         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
29528         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
29529         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
29530         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
29531         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
29532         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
29533         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
29534         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
29535         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
29536         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
29537         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
29538         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
29539         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
29540         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
29541         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
29542         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
29543         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
29544         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
29545         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
29546         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
29547         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
29548         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
29549         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
29550         definitions outside of __OPTIMIZE__ guarded section.
29552         PR target/79932
29553         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
29554         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
29555         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
29556         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
29557         guarded section.
29559 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29561         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
29562         ("vfenez<mode>"): Add missing constraints.
29564 2017-03-08  Martin Sebor  <msebor@redhat.com>
29566         PR target/79928
29567         * config/nds32/nds32.c (nds32_option_override):
29568         Fix misspelled diagnostic.
29570 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
29572         PR c/79940
29573         * gimplify.c (gimplify_omp_for): Replace index var in outer
29574         taskloop statement with an artificial variable and add
29575         OMP_CLAUSE_PRIVATE clause for it.
29577 2017-03-08  Richard Biener  <rguenther@suse.de>
29579         PR tree-optimization/79955
29580         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
29581         for accesses that are completely outside of the variable.
29583 2017-03-08  Andrew Haley  <aph@redhat.com>
29585         PR tree-optimization/79943
29586         * tree-ssa-loop-split.c (compute_new_first_bound): When
29587         calculating the new upper bound, (END-BEG) should be added, not
29588         subtracted.
29590 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
29592         * config/avr/avr.md (setmemhi): Make sure match_dup
29593         operand number comes before match_scratch.
29595 2017-03-08  Richard Biener  <rguenther@suse.de>
29597         PR tree-optimization/79920
29598         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
29599         with ncopies == 1 to ...
29600         (vect_transform_slp_perm_load): ... here.  Properly compute
29601         all element loads by iterating VF times over the group.  Do
29602         not handle ncopies (computed in a broken way) in
29603         vect_create_mask_and_perm.
29605 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
29607         PR sanitizer/79904
29608         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
29609         is a uniform vector, use uniform_vector_p return value instead of
29610         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
29612 2017-03-07  Marek Polacek  <polacek@redhat.com>
29614         PR middle-end/79809
29615         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
29616         (alloca_call_type): Likewise.
29618 2017-03-07  Martin Liska  <mliska@suse.cz>
29620         * gcov.c (process_args): Put comment to correct location.
29622 2017-03-07  Martin Liska  <mliska@suse.cz>
29624         PR middle-end/68270
29625         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
29626         Use array_at_struct_end_p instead of DECL_CHAIN (field).
29627         (chkp_narrow_bounds_for_field): Likewise.
29628         (chkp_parse_array_and_component_ref): Pass one more argument to
29629         call.
29631 2017-03-07  Richard Biener  <rguenther@suse.de>
29633         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
29634         preheaders.
29636 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
29638         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
29639         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
29641 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29643         PR c/79855
29644         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
29645         to end of description.
29646         (PARAM_MAX_STORES_TO_MERGE): Likewise.
29648 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
29650         PR rtl-optimization/79901
29651         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
29652         ...
29653         (*avx512f_<code><mode>3<mask_name>): ... this.
29654         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
29655         iterator instead of VI8_AVX2_AVX512BW.
29657         PR rtl-optimization/79901
29658         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
29659         min/max expander, expand it using expand_vec_cond_expr.
29661         PR sanitizer/79897
29662         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
29663         temporary.
29665 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
29667         PR c++/79821
29668         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
29669         to void * for PCH reasons.
29670         * dwarf2out.c (output_loc_operands, output_die): Cast
29671         v.val_vec.array to unsigned char *.
29673 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
29675         PR target/77850
29676         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
29677         vector types.
29679 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
29681         PR rtl-optimization/79571
29682         * lra-constraints.c (process_alt_operands): Calculate static
29683         reject and subtract it from overall when only addresses will be
29684         reloaded.
29686 2017-03-06  Julia Koval  <julia.koval@intel.com>
29688         PR target/79793
29689         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
29690         incoming stack boundary to 128 for 64-bit targets.
29692 2017-03-06  Richard Biener  <rguenther@suse.de>
29694         PR tree-optimization/79894
29695         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
29696         to NULL after folding it.
29698 2017-03-06  Richard Biener  <rguenther@suse.de>
29700         PR tree-optimization/79824
29701         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
29702         check disabling peeling for gaps.
29704 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
29706         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
29707         attributes): Document gettimeofday.
29709 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29711         * config/s390/s390.c (s390_option_override_internal): Set
29712         PARAM_MIN_VECT_LOOP_BOUND
29714 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29716         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
29717         * config/s390/s390.md: Likewise.
29719 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
29721         PR target/79812
29722         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
29723         (<avx2_avx512>_perm<mode>): Rename to ...
29724         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
29725         of VI8F_256_512.
29726         (<avx512>_perm<mode>_mask): Rename to ...
29727         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
29728         of VI8F_256_512.
29729         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
29730         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
29731         instead of VI8F_256_512.
29732         (avx512f_perm<mode>): New define_expand.
29733         (avx512f_perm<mode>_mask): Likewise.
29734         (avx512f_perm<mode>_1<mask_name>): New define_insn.
29735         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
29737 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
29739         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
29740         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
29741         if_then_else.
29742         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
29744 2017-03-06  Martin Liska  <mliska@suse.cz>
29746         PR sanitize/79783
29747         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
29748         when having a SSA NAME w/o VAR_DECL assigned to it.
29750 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
29752         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
29753         msa_dpsub_<su>_d): Fix MODE for vec_select.
29755 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
29757         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
29758         argument.
29759         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
29761 2017-03-06  Richard Biener  <rguenther@suse.de>
29763         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
29764         * plugin.c (register_plugin_info): Likewise.
29765         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
29767 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
29769         * config/i386/sse.md (sse_storehps, sse_storelps,
29770         avx_<castmode><avxsizesuffix>_<castmode>,
29771         avx512f_<castmode><avxsizesuffix>_<castmode>,
29772         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
29773         in condition that at least one operand is not a MEM.
29775 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
29777         PR middle-end/79805
29778         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
29779         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
29780         ECF_NOTHROW.
29781         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
29782         gimple_call_nothrow_p flag based on whether original builtin can throw.
29783         If it can, emit following stmts on the fallthrough edge.
29784         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
29785         don't create new bb if inserting just debug stmts on the edge, try to
29786         insert them on the fallthru bb or just reset debug stmts.
29788 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
29790         PR target/43763
29791         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
29792         restore recog_data (including the operand rtxes inside it) around
29793         the call to get_insn_template.
29795 2017-03-03  Martin Sebor  <msebor@redhat.com>
29797         PR tree-optimization/79699
29798         * context.c (context::~context): Free MPFR caches to avoid
29799         a memory leak on program exit.
29801 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29803         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
29804         Use wide_int::ulow () instead of .elt (0).
29806 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
29808         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
29809         (*pushxf): Limit oF constraint to 32bit targets and add oC
29810         constraint for 64bit targets.
29811         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
29812         (*pushdf): Change rmF constraint to rmC.
29814 2017-03-03  Martin Liska  <mliska@suse.cz>
29816         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
29817         Remove unused variable.
29819 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
29821         PR target/79807
29822         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
29823         is a memory operand, increase num_memory.
29824         (ix86_expand_args_builtin): Likewise.
29826 2017-03-03  Jan Hubicka  <jh@suse.cz>
29828         PR lto/79760
29829         * ipa-devirt.c (maybe_record_node): Properly handle
29830         __cxa_pure_virtual visibility.
29832 2017-03-03  Martin Liska  <mliska@suse.cz>
29834         PR tree-optimization/79803
29835         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
29836         assert.
29837         (pass_loop_prefetch::execute): Disabled optimization if an
29838         assumption about L1 cache size is not met.
29840 2017-03-03  Martin Liska  <mliska@suse.cz>
29842         PR rtl-optimization/79574
29843         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
29844         (hash_scan_set): Likewise.
29845         (dump_hash_table): Likewise.
29846         (hoist_code): Likewise.
29848 2017-03-03  Richard Biener  <rguenther@suse.de>
29850         * fixed-value.c (fixed_from_string): Restore use of elt (1)
29851         in place of uhigh ().
29852         (fixed_convert_from_real): Likewise.
29854 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
29856         PR target/79514
29857         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
29859 2017-03-03  Richard Biener  <rguenther@suse.de>
29861         PR middle-end/79818
29862         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
29863         TYPE_OVERFLOW_UNDEFINED check.
29865 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29867         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
29868         numbers.
29869         (vector_ae_<mode>_p): Likewise.
29870         (vector_nez_<mode>_p): Likewise.
29871         (vector_ne_v2di_p): Likewise.
29872         (vector_ae_v2di_p): Likewise.
29873         (vector_ne_<mode>_p): Likewise.
29874         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
29875         numbers.
29876         (vsx_tsqrt<mode>2_fe): Likewise.
29878 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
29880         PR target/79514
29881         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
29883 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
29885         PR rtl-optimization/79780
29886         * cprop.c (one_cprop_pass): When second and further conditional trap
29887         in a single basic block is turned into an unconditional trap, turn it
29888         into a deleted note to avoid RTL verification failures.
29890 2017-03-02  Richard Biener  <rguenther@suse.de>
29892         * fold-const.c (const_binop): Use ulow () instead of elt (0).
29894 2017-03-02  Richard Biener  <rguenther@suse.de>
29896         PR tree-optimization/79345
29897         PR c++/42000
29898         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
29899         param and abort the walk, returning -1 if it is hit.
29900         (walk_aliased_vdefs): Take a limit param and pass it on.
29901         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
29902         defaulting to 0 and return a signed int.
29903         * tree-ssa-uninit.c (struct check_defs_data): New struct.
29904         (check_defs): New helper.
29905         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
29906         about uninitialized memory.
29907         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
29908         bogus uninitialized warning.
29909         (fixed_convert_from_real): Likewise.
29911 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
29913         PR tree-optimization/66768
29914         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
29915         iv_use if base object can't be determined.
29917 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
29919         PR tree-optimization/79345
29920         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
29921         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
29922         (get_pattern_stats): Initialize it.
29923         * genemit.c (gen_expand): Verify match_scratch numbers come after
29924         match_operand/match_dup numbers.
29925         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
29926         match_scratch numbers.
29927         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
29928         Likewise.
29929         * config/s390/s390.md (trunctdsd2): Likewise.
29931 2017-03-02  Richard Biener  <rguenther@suse.de>
29933         * wide-int.h (wide_int_storage::operator=): Implement in terms
29934         of wi::copy.
29936 2017-03-02  Richard Biener  <rguenther@suse.de>
29938         PR tree-optimization/79777
29939         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
29940         the to insert expression to sth existing.
29942 2017-03-01  Martin Sebor  <msebor@redhat.com>
29944         PR middle-end/79692
29945         * gimple-ssa-sprintf.c
29946         (directive::known_width_and_precision): New function.
29947         (format_integer): Use it.
29948         (get_mpfr_format_length): Consider the full range of precision
29949         when computing %g output with the # flag.  Set the likely byte
29950         count to 3 rather than 1 when precision is indeterminate.
29951         (format_floating): Correct the lower bound of precision.
29953 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29955         * doc/invoke.texi: Document default code model for 64-bit Linux.
29957 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
29959         PR target/79752
29960         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
29961         udiv rather than div since input pattern is unsigned.
29963 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
29965         * config/i386/i386.c (print_reg): Warn for values of
29966         unsupported size in integer register.
29968 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
29970         PR target/79439
29971         * config/rs6000/predicates.md (current_file_function_operand): Do
29972         not allow self calls to be local if the function is replaceable.
29974 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
29976         PR target/79395
29977         * config/rs6000/altivec.h (vec_ctz and others): Change the
29978         preprocessor macro that controls conditional compilation from
29979         _ARCH_PWR9 to __POWER9_VECTOR__.
29980         (vec_all_ne): Change parameterization of __altivec_scalar_pred
29981         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
29982         control (instead of _ARCH_PWR9 control) so that template
29983         definition uses power9-specific function.
29984         (vec_any_eq): Likewise.
29985         (vec_all_ne): Change macro definition to use a power9-specific
29986         expansion under #ifdef __POWER9_VECTOR__ control (instead of
29987         _ARCH_PWR9 control).
29988         (vec_any_eq) Likewise.
29989         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
29990         expansion for CMPNEF to remove support for xvcmpnesp instruction.
29991         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
29992         support for xvcmpnedp instruction.
29993         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
29994         macro expansion so that Power9 implementation of vec_all_ne does
29995         not use the AltiVec predicate framework.
29996         (VCMPNEH_P): Likewise.
29997         (VCMPNEW_P): Likewise.
29998         (VCMPNED_P): Likewise.
29999         (VCMPNEFP_P): Likewise.
30000         (VCMPNEDP_P): Likewise.
30001         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
30002         implementation of vec_any_eq to not use AltiVec predicate
30003         framework.
30004         (VCMPAEH_P): Likewise.
30005         (VCMPAEW_P): Likewise.
30006         (VCMPAED_P): Likewise.
30007         (VCMPAEFP_P): Likewise.
30008         (VCMPAEDP_P): Likewise.
30009         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
30010         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
30011         not use the AltiVec predicate framework.
30012         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
30013         of vec_any_eq to not use AltiVec predicate framework.
30014         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
30015         support for predefined __POWER9_VECTOR__ macro to indicate that
30016         Power9 instruction selection is enabled.
30017         (altivec_overloaded_builtins): Remove extraneous
30018         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
30019         function argument types RS6000_BTI_bool_V16QI and
30020         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
30021         entry for overloaded function argument types RS6000_BTI_bool_V4SI
30022         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
30023         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
30024         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
30025         Power9 for implementations of vec_cmpne.  Change the signature for
30026         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
30027         (representing vec_all_ne) to remove the previously described first
30028         argument of type RS6000_BTI_INTSI, as this was an artifact of
30029         reliance on the AltiVec predicate framework, which is no longer
30030         used in the implementation of these functions.  Add
30031         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
30032         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
30033         since, unlike the AltiVec predicate framework implementation, we
30034         do not share function descriptors between vec_alle and vec_anyeq.
30035         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
30036         set of modes that receive special treatment even when
30037         TARGET_P9_VECTOR is true.  The special treatment emits code that
30038         does not depend on Power9 instructions.
30039         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
30040         define_expand to not rely on AltiVec predicate framework.
30041         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
30042         function.
30043         (vector_ne_v2di_p): Change this define_expand to not rely on
30044         AltiVec predicate framework.
30045         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
30046         function.
30047         (vector_ne_<mode>_p): Change this define_expand to not rely on
30048         AltiVec predicate framework.
30049         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
30050         function.
30051         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
30052         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
30053         define_insn pattern.
30054         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
30055         define_insn pattern because the xvcmpne<VSs>. instruction is not
30056         supported.
30057         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
30058         instruction is not supported.
30060 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
30062         * config/nvptx/nvptx.c: Include intl.h.
30064 2017-03-01  Martin Jambor  <mjambor@suse.cz>
30066         PR lto/78140
30067         * ipa-prop.h (ipa_bits): Removed field known.
30068         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
30069         to pointers.  Adjusted their comments to warn about their sharing.
30070         (ipcp_transformation_summary): Change bits to a vector of pointers.
30071         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
30072         (ipa_get_ipa_bits_for_value): Declare.
30073         * tree-vrp.h (value_range): Mark as GTY((for_user)).
30074         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
30075         (ipa_bits_hash_table): Likewise.
30076         (ipa_vr_ggc_hash_traits): Likewise.
30077         (ipa_vr_hash_table): Likewise.
30078         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
30079         being pointers and vr_known being removed.
30080         (ipa_set_jf_unknown): Likewise.
30081         (ipa_get_ipa_bits_for_value): New function.
30082         (ipa_set_jfunc_bits): Likewise.
30083         (ipa_get_value_range): New overloaded functions.
30084         (ipa_set_jfunc_vr): Likewise.
30085         (ipa_compute_jump_functions_for_edge): Use the above functions to
30086         construct bits and vr parts of jump functions.
30087         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
30088         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
30089         exist.
30090         (ipcp_grow_transformations_if_necessary): Also allocate
30091         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
30092         exist.
30093         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
30094         them.  Fix too long lines.
30095         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
30096         vr_known being removed.
30097         (ipa_read_jump_function): Use new setter functions to construct bits
30098         and vr parts of jump functions or set them to NULL.
30099         (write_ipcp_transformation_info): Adjust for bits being pointers.
30100         (read_ipcp_transformation_info): Likewise.
30101         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
30102         space.
30103         Include gt-ipa-prop.h.
30104         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
30105         being pointers.
30106         (ipcp_store_bits_results): Likewise.
30107         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
30108         Do not write to existing jump functions but use a temporary instead.
30110 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
30112         PR c++/79681
30113         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
30114         attempt to use its first operand as BIT_FIELD_REF base.
30116 2017-03-01  Richard Biener  <rguenther@suse.de>
30118         PR middle-end/79721
30119         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
30120         interpolating formula in wrapping arithmetic.
30121         (chrec_apply): Convert chrec_evaluate return value to wanted type.
30123 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
30125         PR tree-optimization/79734
30126         * tree-vect-generic.c (expand_vector_condition): Optimize
30127         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
30128         Handle VEC_COND_EXPR where comparison has different inner width from
30129         type's inner width.
30131 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
30133         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
30134         markup, and similar issues.  Remove @opindex entries for things
30135         that aren't options.  Add missing -mmpy-option entries.
30137 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
30139         PR tree-optimization/79737
30140         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
30141         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
30142         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
30143         instead of byte_size.  Formatting fix.
30144         (shift_bytes_in_array_right): Formatting fix.
30146 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
30148         PR target/79749
30149         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
30150         condition on optimize for the leaf function test.
30152 2017-02-28  Martin Liska  <mliska@suse.cz>
30154         PR lto/79625
30155         * read-rtl-function.c (function_reader::handle_unknown_directive):
30156         Bail out when one uses -flto.
30158 2017-02-28  Martin Liska  <mliska@suse.cz>
30160         * common.opt: Replace space with tabular for options of <number>
30161         type.
30162         * config/i386/i386.opt: Show <number> value for
30163         -mlarge-data-threshold.
30164         * opts.c (print_filtered_help): Do not display number in hexadecimal
30165         format.
30167 2017-02-28  Martin Liska  <mliska@suse.cz>
30169         * common.opt: Fix --help=option -Q for options which are of
30170         an enum type.
30172 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
30174         * config/i386/i386.c (print_reg): Error out for values
30175         of 8-bit size in invalid integer register.
30177 2017-02-28  Martin Sebor  <msebor@redhat.com>
30179         PR tree-optimization/79691
30180         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
30182 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
30184         PR target/79729
30185         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
30186         gcc_unreachable with output_operand_lossage.
30188 2017-02-28  Richard Biener  <rguenther@suse.de>
30190         PR tree-optimization/79740
30191         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
30192         inserts.
30193         (visit_nary_op): Insert the nary into the hashtable if we
30194         pattern-matched sth.
30195         * tree-ssa-pre.c (eliminate_insert): Robustify.
30197 2017-02-28  Richard Biener  <rguenther@suse.de>
30199         PR middle-end/79731
30200         * fold-const.c (decode_field_reference): Reject out-of-bound
30201         accesses.
30203 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
30205         * config/i386/i386.c: Include intl.h.
30206         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
30207         instead of just cond ? "..." : "...".
30208         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
30209         * coverage.c (read_counts_file): Likewise.
30210         * omp-offload.c: Include intl.h.
30211         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
30212         of just cond ? "..." : "...".
30213         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
30214         of just cond ? "..." : "...".
30216 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
30218         PR target/79742
30219         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
30220         entry, if present.
30221         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
30222         'tune for' CPU name.
30223         * config/arm/arm-cpu-data.h: Regenerated.
30225 2017-02-28  Richard Biener  <rguenther@suse.de>
30227         PR tree-optimization/79732
30228         * tree-inline.c (expand_call_inline): Do not shadow var.
30230 2017-02-28  Richard Biener  <rguenther@suse.de>
30232         PR tree-optimization/79723
30233         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
30234         address-space properly.
30236 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
30238         * doc/optinfo.texi (Optimization groups): Fix option used for
30239         OPTGROUP_ALL.
30240         * doc/invoke.texi (-fopt-info): Document "omp".
30241         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
30242         (OPTGROUP_ALL): Add OPTGROUP_OMP.
30243         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
30244         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
30245         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
30247         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
30248         all users.
30249         * dumpfile.c (optgroup_options): Instead of "openmp", associate
30250         OPTGROUP_OMP with "omp".
30252 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
30254         PR target/79544
30255         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
30256         for arithmetic shift of unsigned V2DI.
30258 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
30260         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
30261         arc/linux.h headers.
30262         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
30263         (LINK_SPEC): Likewise.
30264         (ARC_TLS_EXTRA_START_SPEC): Likewise.
30265         (EXTRA_SPECS): Likewise.
30266         (STARTFILE_SPEC): Likewise.
30267         (ENDFILE_SPEC): Likewise.
30268         (LIB_SPEC): Likewise.
30269         (TARGET_SDATA_DEFAULT): Likewise.
30270         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
30271         (MULTILIB_DEFAULTS): Likewise.
30272         (DWARF2_UNWIND_INFO): Likewise.
30273         * config/arc/big.h: New file.
30274         * config/arc/elf.h: Likewise.
30275         * config/arc/linux.h: Likewise.
30276         * config/arc/t-uClibc: Remove.
30278 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
30280         PR tree-optimization/77536
30281         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
30282         (tree_transform_and_unroll_loop): Use above function to compute the
30283         estimated niter of unrolled loop and use it when scaling profile.
30284         Also use count info rather than frequency if it's non-zero.
30285         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
30286         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
30287         (vect_transform_loop): Call above function.
30289 2017-02-27  Richard Biener  <rguenther@suse.de>
30291         PR tree-optimization/45397
30292         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
30293         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
30294         (visit_nary_op): Add pattern matching for CSEing sign-changed
30295         or truncated operations with wider ones.
30297 2017-02-27  Richard Biener  <rguenther@suse.de>
30299         PR tree-optimization/79690
30300         * tree-vect-stmts.c (vectorizable_store): Use vector type
30301         built from the DR with address-space.
30303 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
30305         * doc/invoke.texi (Optimize Options): Refine the description
30306         of asan-use-after-return.
30308 2017-02-25  Alan Modra  <amodra@gmail.com>
30310         PR rtl-optimization/79584
30311         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
30312         base, not ad->base_term, the reg within base.  Remove assertion
30313         that ad->base == ad->base_term.  Replace gen_int_mode using
30314         bogus mode with const0_rtx.
30316 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
30318         PR middle-end/79396
30319         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
30320         FMA_EXPR like tcc_binary or tcc_unary.
30322         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
30324         PR debug/77589
30325         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
30326         bitfield.
30327         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
30328         (output_loc_operands): Handle DW_OP_call_ref and
30329         DW_OP_GNU_variable_value.
30330         (struct variable_value_struct): New type.
30331         (struct variable_value_hasher): Likewise.
30332         (variable_value_hash): New variable.
30333         (string_types): Remove.
30334         (copy_loc_descr): New function.
30335         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
30336         (prepend_loc_descr_to_each): New function.
30337         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
30338         instead of add_loc_descr_to_each if the first argument is single
30339         location list and the second has multiple.
30340         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
30341         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
30342         when looking for variable value which doesn't have other location info.
30343         (loc_list_from_tree): Formatting fix.
30344         (gen_array_type_die): Simplify DW_AT_string_length handling.
30345         (adjust_string_types): Remove.
30346         (gen_subprogram_die): Don't call adjust_string_types nor test/set
30347         string_types.  Call resolve_variable_values.
30348         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
30349         (resolve_addr_in_expr): Likewise.  Add A argument.
30350         (copy_deref_exprloc): Remove deref argument.  Adjust for the
30351         original expression being DW_OP_GNU_variable_value with optionally
30352         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
30353         optionally after it.
30354         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
30355         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
30356         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
30357         (variable_value_hasher::hash, variable_value_hasher::equal): New
30358         methods.
30359         (resolve_variable_value_in_expr, resolve_variable_value,
30360         resolve_variable_values, note_variable_value_in_expr,
30361         note_variable_value): New functions.
30362         (dwarf2out_early_finish): Call note_variable_value on all toplevel
30363         DIEs.
30365 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
30367         PR c/79677
30368         * opts.h (handle_generated_option): Add GENERATED_P argument.
30369         * opts-common.c (handle_option): Adjust function comment.
30370         (handle_generated_option): Add GENERATED_P argument, pass it to
30371         handle_option.
30372         (control_warning_option): Pass false to handle_generated_option
30373         GENERATED_P.
30374         * opts.c (maybe_default_option): Pass true to handle_generated_option
30375         GENERATED_P.
30376         * optc-gen.awk: Likewise.
30378 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
30380         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
30381         a REG, look at the REG it is a SUBREG of.
30382         (splitter for cmpeqsi_t): Ditto.
30384 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
30386         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
30387         the special USEs with the pattern of the insn, not the insn itself.
30389 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
30391         PR target/79473
30392         * doc/invoke.texi: Document -mload-store-pairs.
30394 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
30395             Sandra Loosemore  <sandra@codesourcery.com>
30397         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
30398         argument isn't a CONST_INT.
30399         (nios2_alternate_compare_const): Assert op is a CONST_INT.
30400         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
30401         (nios2_validate_compare): Bypass alternate compare logic if *op2
30402         is not a CONST_INT.
30403         (ldstwm_operation_p): Return false if first_base is not a REG or
30404         if first_offset is not a CONST_INT.
30406 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
30408         * config/cris/cris.md: Use correct operand in a define_peephole2.
30410 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
30412         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
30414 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
30416         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
30417         this_insn if it is an INSN or JUMP_INSN.
30418         (force_offsettable): Look at base, not at addr.
30419         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
30420         on things that aren't necessarily CONST_INTs.
30422 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
30424         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
30425         -mfpmath=sse is the default also for x86-32 targets with SSE2
30426         instruction set when @option{-ffast-math} is enabled
30428 2017-02-24  Jeff Law  <law@redhat.com>
30430         PR rtl-optimizatoin/79286
30431         * ira.c (update_equiv_regs): Drop may_trap_p exception to
30432         dominance test.
30434 2017-02-24  Richard Biener  <rguenther@suse.de>
30436         PR tree-optimization/79389
30437         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
30438         debug insns.
30440 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
30442         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
30443         function comment to reflect reality.
30444         (loop_exits_before_overflow): Fix typo in function description.
30446 2017-02-24  Richard Biener  <rguenther@suse.de>
30448         PR tree-optimization/79389
30449         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
30450         properly that a threading opportunity exists.  Detect conditional
30451         copy/constant propagation opportunities.
30453 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
30455         * config/visium/visium.md (type): Add trap.
30456         (b): New mode attribute.
30457         (*btst): Rename into...
30458         (*btst<mode>): ...this and adjust.
30459         (*cbranchsi4_btst_insn): Rename into...
30460         (*cbranch<mode>4_btst_insn): ...this and adjust.
30461         (trap): New define_insn.
30463 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
30465         PR tree-optimization/79389
30466         * ifcvt.c (struct noce_if_info): Add rev_cond field.
30467         (noce_reversed_cond_code): New function.
30468         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
30469         reversed_comparison_code.  Formatting fix.
30470         (noce_try_store_flag): Test rev_cond != NULL in addition to
30471         reversed_comparison_code.
30472         (noce_try_store_flag_constants): Likewise.
30473         (noce_try_store_flag_mask): Likewise.
30474         (noce_try_addcc): Use rev_cond if non-NULL instead of
30475         reversed_comparison_code.
30476         (noce_try_cmove_arith): Likewise.  Formatting fixes.
30477         (noce_try_minmax, noce_try_abs): Clear rev_cond.
30478         (noce_find_if_block): Initialize rev_cond.
30479         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
30480         instead of false as last argument never attempt to reverse it
30481         afterwards.
30483 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
30485         PR tree-optimization/79663
30486         * tree-predcom.c (combine_chains): Process refs in reverse order
30487         only for ZERO length chains, and add explaining comment.
30489 2017-02-23  Jeff Law  <law@redhat.com>
30491         PR tree-optimization/79578
30492         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
30493         in call to operand_equal_p.
30495 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
30497         PR target/71017
30498         * config/i386/cpuid.h: Fix another undefined behavior.
30500 2017-02-23  Richard Biener  <rguenther@suse.de>
30502         PR tree-optimization/79683
30503         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
30504         vector types for data-refs.
30506 2017-02-23  Martin Liska  <mliska@suse.cz>
30508         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
30510 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
30512         PR middle-end/79665
30513         * internal-fn.c (get_range_pos_neg): Moved to ...
30514         * tree.c (get_range_pos_neg): ... here.  No longer static.
30515         * tree.h (get_range_pos_neg): New prototype.
30516         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
30517         are known to be in between 0 and signed maximum inclusive, try to
30518         expand both unsigned and signed divmod and use the cheaper one from
30519         those.
30521 2017-02-22  Jeff Law  <law@redhat.com>
30523         PR tree-optimization/79578
30524         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
30525         to compare base operands.
30527 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
30529         PR target/79211
30530         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
30531         gpc_reg_operand instead of fpr_reg_operand.
30533 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
30535         * config/mips/mips.c (mips_return_in_memory): Force FP
30536         vector types to be returned in memory for o32 ABI.
30538 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
30540         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
30541         instead of DW_TAG_member for static data member declarations and don't
30542         set no_linkage_name for static inline data members.
30543         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
30544         to DW_TAG_member.
30546 2017-02-22  Martin Liska  <mliska@suse.cz>
30548         * doc/invoke.texi: Replace inequality signs with square brackets
30549         for -Wnormalized.
30551 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
30553         PR target/78660
30554         * lra-constraints.c (simplify_operand_subreg): Handle
30555         WORD_REGISTER_OPERATIONS targets.
30557 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
30559         PR target/70465
30560         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
30561         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
30562         elimination by swapping fld*.
30564 2017-02-22  Richard Biener  <rguenther@suse.de>
30566         PR tree-optimization/79673
30567         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
30568         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
30569         irrelevant address-space qualifiers and avoiding a
30570         ADDR_SPACE_CONVERT_EXPR from fold_convert.
30572 2017-02-22  Richard Biener  <rguenther@suse.de>
30574         PR tree-optimization/79666
30575         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
30576         to not symbolically negate if that may introduce undefined
30577         overflow.
30579 2017-02-22  Martin Liska  <mliska@suse.cz>
30581         PR lto/79587
30582         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
30583         * data-streamer-out.c (streamer_write_gcov_count_stream):
30584         Likewise.
30585         * value-prof.c (stream_out_histogram_value): Make assert more
30586         precise based on type of counter.
30588 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
30590         PR target/79593
30591         * config/i386/i386.md (standard_x87sse_constant_load splitter):
30592         Use nonimmediate_operand instead of memory_operand for operand 1.
30593         (float-extend standard_x87sse_constant_load splitter): Ditto.
30595 2017-02-21  Jeff Law  <law@redhat.com>
30597         PR tree-optimization/79621
30598         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
30599         blocks with edges to themselves.
30601 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
30603         PR target/79633
30604         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
30605         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
30606         Use gimple_call_builtin_p.
30608         PR target/79570
30609         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
30610         on temporarily removed DEBUG_INSNs.
30612         PR tree-optimization/79649
30613         * tree-loop-distribution.c (classify_partition): Give up on
30614         non-generic address space loads/stores.
30616 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
30618         * doc/loop.texi (Loop manipulation): Remove nonexistent
30619         tree_ssa_loop_version from the documentation.
30620         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
30622 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
30624         PR target/79494
30625         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
30626         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
30627         * config/rs6000/rs6000.c: Include except.h.
30628         (rs6000_expand_split_stack_prologue): Call
30629         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
30631 2017-02-21  Martin Jambor  <mjambor@suse.cz>
30633         PR lto/79579
30634         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
30635         have been analyzed.
30637 2017-02-21  Martin Jambor  <mjambor@suse.cz>
30639         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
30640         for backward compatibility only.
30641         * doc/invoke.texi (Option Summary): Remove all references to
30642         -fipa-cp-alignment.
30644 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
30646         PR target/78660
30647         Revert:
30648         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
30650         * lra-constraints.c (curr_insn_transform): Handle
30651         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
30653 2017-02-21  Martin Liska  <mliska@suse.cz>
30655         * config/i386/i386.opt: Replace -masm-dialect with -masm.
30657 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
30659         PR translation/79638
30660         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
30662 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
30664         PR ada/67205
30665         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
30666         (arm_function_ok_for_sibcall): Return false for an indirect call by
30667         descriptor if all the argument registers are used.
30668         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
30669         alignment of the function.
30671 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
30673         PR tree-optimization/61441
30674         * simplify-rtx.c (simplify_const_unary_operation): For
30675         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
30676         the sNaN unmodified.
30678 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30680         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
30681         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
30682         instead of SYSTEM_HEADER_DIR.
30684 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
30685             Martin LiÅ¡ka  <mliska@suse.cz>
30687         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
30688         Fix typos and grammar, use active voice, and clarify.
30690 2017-02-20  Marek Polacek  <polacek@redhat.com>
30692         PR middle-end/79537
30693         * gimplify.c (gimplify_expr): Handle unused *&&L;.
30695         PR sanitizer/79558
30696         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
30698 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
30700         PR target/79568
30701         * config/i386/i386.c (ix86_expand_builtin): Handle
30702         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
30703         ix86_builtins_isa[fcode].isa as a requirement of those
30704         flags and any other flag in the bitmask.
30705         (ix86_init_mmx_sse_builtins): Use 0 instead of
30706         ~OPTION_MASK_ISA_64BIT as mask.
30707         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
30708         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
30709         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
30710         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
30712 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
30714         PR target/78012
30715         * lra-constraints.c (split_reg): Check requested split mode
30716         is supported by the register.
30718 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
30720         * lra-constraints.c (simplify_operand_subreg): Remove early
30721         return false.
30723 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
30725         PR target/78660
30726         * lra-constraints.c (curr_insn_transform): Tighten condition
30727         for converting SUBREG reloads from OP_OUT to OP_INOUT.
30729 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
30731         PR target/78660
30732         * lra-constraints.c (curr_insn_transform): Handle
30733         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
30735 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
30737         Revert:
30738         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
30740         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
30742 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
30744         PR c++/69523
30745         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
30746         description.
30748 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30750         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
30751         for FMA_EXPR.
30753 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
30755         * final.c (last_columnnum, override_columnnum): New variables.
30756         (final_start_function): Set last_columnnum, pass it to begin_prologue
30757         hook and pass 0 to dwarf2out_begin_prologue.
30758         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
30759         to source_line debug hook.
30760         (notice_source_line): Compute last_columnnum and for debug_column_info
30761         return true on column changes.
30762         * debug.h (struct gcc_debug_hooks): Add column argument to
30763         source_line and begin_prologue hooks.
30764         (debug_nothing_int_charstar_int_bool): Remove prototype.
30765         (debug_nothing_int_int_charstar,
30766         debug_nothing_int_int_charstar_int_bool): New prototypes.
30767         (dwarf2out_begin_prologue): Add column argument.
30768         * debug.c (do_nothing_debug_hooks): Adjust source_line and
30769         begin_prologue hooks.
30770         (debug_nothing_int_charstar_int_bool): Remove.
30771         (debug_nothing_int_int_charstar,
30772         debug_nothing_int_int_charstar_int_bool): New functions.
30773         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
30774         through to dwarf2out_source_line.
30775         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
30776         (dwarf2out_source_line): Add column argument, emit it if requested.
30777         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
30778         arguments.
30779         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
30780         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
30781         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
30782         through to dwarf2out_begin_prologue.
30783         (vmsdbgout_source_line): Add column argument, pass it through to
30784         dwarf2out_source_line.
30785         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
30786         dbxout_source_line caller.
30787         (dbxout_source_line): Add column argument.
30789         * common.opt (gno-column-info, gcolumn-info): New options.
30790         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
30791         (check_die): Also test for multiple DW_AT_decl_column attributes.
30792         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
30793         DW_AT_decl_column if requested.
30794         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
30795         if requested.
30796         (gen_variable_die): Likewise.
30797         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
30798         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
30800         PR target/79569
30801         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
30802         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
30803         (ix86_handle_option): Handle OPT_m3dnowa.
30804         * doc/invoke.texi (-m3dnowa): Document.
30805         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
30806         -m3dnowa instead of -m3dnow -march=athlon.
30808         PR target/79559
30809         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
30810         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
30812 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30814         PR target/79261
30815         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
30816         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
30817         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
30818         generator for vsx_xxpermdi_<mode>_be.
30819         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
30820         force big-endian semantics.
30821         (vsx_xxpermdi_<mode>_be): New define_expand with same
30822         implementation as previous version of vsx_xxpermdi_<mode>.
30824 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
30826         PR tree-optimization/79327
30827         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
30828         variable, its initialization and use.
30830 2017-02-17  Julia Koval  <julia.koval@intel.com>
30832         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
30833         (OPTION_MASK_ISA_PKU_UNSET): New.
30834         (ix86_handle_option): Handle -mrdpid.
30835         * config/i386/cpuid.h (bit_RDPID): New.
30836         * config/i386/driver-i386.c (host_detect_local_cpu):
30837         Detect RDPID feature.
30838         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
30839         * config/i386/i386-c.c (ix86_target_macros_internal):
30840         Handle RDPID flag.
30841         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
30842         (ix86_valid_target_attribute_inner_p): Add "rdpid".
30843         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
30844         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
30845         * config/i386/i386.md (define_insn "rdpid"): New.
30846         * config/i386/i386.opt Add -mrdpid.
30847         * config/i386/immintrin.h (_rdpid_u32): New.
30849 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
30851         PR rtl-optimization/79541
30852         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
30853         instead of transforming it into USE.
30855 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
30857         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
30858         If HONOR_SNANS (SFmode) force the input to a register.
30859         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
30860         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
30861         an frsp or similar insn.
30863 2017-02-17  Martin Liska  <mliska@suse.cz>
30865         PR rtl-optimization/79577
30866         * params.def (selsched-max-sched-times): Increase minimum to 1.
30868 2017-02-17  Martin Liska  <mliska@suse.cz>
30870         PR rtl-optimization/79574
30871         * gcse.c (want_to_gcse_p): Prevent integer overflow.
30873 2017-02-17  Martin Liska  <mliska@suse.cz>
30875         PR tree-optimization/79529
30876         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
30877         ssa_defined_default_def_p to handle cases which are implicitly
30878         defined.
30879         * tree-ssa.c (ssa_defined_default_def_p): New function.
30880         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
30881         which are implicitly defined.
30882         * tree-ssa.h (ssa_defined_default_def_p): Declare.
30884 2017-02-17  Richard Biener  <rguenther@suse.de>
30886         PR middle-end/79576
30887         * params.def (max-ssa-name-query-depth): Limit to 10.
30889 2017-02-17  Richard Biener  <rguenther@suse.de>
30891         PR tree-optimization/79552
30892         * tree-ssa-structalias.c (visit_loadstore): Properly verify
30893         default defs.
30895 2017-02-17  Richard Biener  <rguenther@suse.de>
30897         PR bootstrap/79567
30898         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
30900 2017-02-17  Marek Polacek  <polacek@redhat.com>
30902         PR middle-end/79536
30903         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
30904         (fold_negate_expr): New wrapper.
30906 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
30908         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
30909         Correct terminology and de-emphasize pre-standard behavior.
30911 2017-02-16  Alan Modra  <amodra@gmail.com>
30913         PR rtl-optimization/79286
30914         * ira.c (def_dominates_uses): New function.
30915         (update_equiv_regs): Don't create an equivalence for insns that
30916         may trap where the register def does not dominate the use.
30918 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
30920         PR rtl-optimization/78127
30921         * lra.c (lra): Call lra_eliminate before finish the loop after
30922         lra_constraint.
30924 2017-02-16  Richard Biener  <rguenther@suse.de>
30926         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
30927         isl/isl_val.h.
30928         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
30929         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
30930         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
30931         (isl_val_int_from_wi): New function.
30932         (extract_affine_gmp): Rename to ...
30933         (extract_affine_wi): ... this, take a widest_int.
30934         (extract_affine_int): Just wrap extract_affine_wi.
30935         (add_param_constraints): Use isl_val_int_from_wi.
30936         (add_loop_constraints): Likewise, and extract_affine_wi.
30938 2017-02-15  Jeff Law  <law@redhat.com>
30940         PR middle-end/79521
30941         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
30942         ira_init_register_move_cost_if_necessary.
30944 2017-02-15  Martin Sebor  <msebor@redhat.com>
30946         PR middle-end/32003
30947         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
30948         removed in a prior commit.
30950 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
30952         PR tree-optimization/79347
30953         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
30954         counters during peeling.
30956 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
30958         * Makefile.in (site.exp): Remove "set ISLVER".
30960 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
30962         PR target/79487
30963         * real.c (real_from_integer): Call real_convert even for decimal.
30965 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30967         PR target/79421
30968         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
30970 2017-02-14  Andrew Pinski  <apinski@cavium.com>
30972         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
30973         cores and change the partno/implementer to be correct.
30974         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
30975         the 'B" as the implementer.
30976         * config/aarch64/aarch64-tune.md: Regenerate.
30978 2017-02-14  Carl Love  <cel@us.ibm.com>
30980         * config/rs6000/rs6000.c: Add case statement entry to make the
30981         xvcvuxdsp built-in argument unsigned.
30982         * config/rs6000/vsx.md: Fix the source and return operand types so they
30983         match the instruction definitions from the ISA document.  Fix typo
30984         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
30985         statement.
30987 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
30989         PR target/79282
30990         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
30991         member early_clobber_alts.
30992         * lra-lives.c (reg_early_clobber_p): New.
30993         (process_bb_lives): Use it.
30994         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
30995         (debug_operand_data): Initialize early_clobber_alts.
30996         (setup_operand_alternative): Set up early_clobber_alts.
30997         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
30998         alternatives to new_insn_reg.
30999         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
31000         it.
31001         (lra_update_insn_regno_info): Pass the new arg.
31003 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
31005         PR middle-end/79505
31006         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
31007         (new_oacc_loop_raw): Don't clear already cleared fields.
31009         PR target/79481
31010         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
31011         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
31012         _mm512_prefetch_i64gather_ps): New inline functions and macros.
31014 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
31016         PR target/79495
31017         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
31019 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
31021         PR target/79498
31022         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
31023         the extra instruction to the right place to store 128-bit constant
31024         when needed.
31026 2017-02-14  Martin Sebor  <msebor@redhat.com>
31028         PR middle-end/79448
31029         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
31030           warning for strings of unknown length.
31032 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
31034         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
31036 2017-02-14  Jeff Law  <law@redhat.com>
31038         PR target/79404
31039         * ira-costs.c (scan_one_insn): Initialize register move costs
31040         for pseudos seen in USE/CLOBBER insns.
31042         PR tree-optimization/79095
31043         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
31044         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
31045         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
31046         if the operands are known to be not equal, then the resulting range
31047         is ~[0,0].
31048         (intersect_ranges): If the new range is ~[0,0] and the old range is
31049         wide, then prefer ~[0,0].
31050         * tree-vrp.c (overflow_comparison_p_1): New function.
31051         (overflow_comparison_p): New function.
31052         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
31053         if NAME is used in an overflow test.
31054         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
31055         overflow check that can be expressed as an equality test, then adjust
31056         ops to be that equality test.
31058 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
31060         * config/s390/s390-builtin-types.def: Remove flags argument.
31061         * config/s390/s390.c (s390_init_builtins): Likewise.
31063 2017-02-14  Martin Liska  <mliska@suse.cz>
31065         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
31066         vector.  Fix trailing white spaces.
31068 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
31070         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
31071         HFmode.
31073 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31075         PR rtl-optimization/68664
31076         * config/arm/arm.c (arm_sched_can_speculate_insn):
31077         New function.  Declare prototype.
31078         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
31080 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31082         PR rtl-optimization/68664
31083         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
31084         New function.
31085         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
31087 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
31089         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
31090         max skip bytes for function, loop and jump.
31092 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31094         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
31095         ABS_EXPR for gimple dump.
31097 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
31099         PR target/79462
31100         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
31102         PR tree-optimization/79408
31103         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
31104         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
31105         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
31106         also if rhs1 is INTEGER_CST.
31108 2017-02-14  Richard Biener  <rguenther@suse.de>
31110         PR middle-end/79432
31111         * tree-into-ssa.c (insert_phi_nodes): When the function can
31112         have abnormal edges rewrite SSA names with broken use-def
31113         dominance out of SSA and register them for PHI insertion.
31115 2017-02-13  Martin Sebor  <msebor@redhat.com>
31117         PR middle-end/79496
31118         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
31119         clearing info.nowrite flag when snprintf size argument is a range.
31121 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
31123         * cprop.c (cprop_jump): Add missing space in string literal.
31124         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
31125         (get_constraint_for_component_ref): Likewise.
31126         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
31127         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
31128         * lra-constraints.c (process_alt_operands): Likewise.
31129         * ipa-inline.c (inline_small_functions): Likewise.
31130         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
31131         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
31132         * trans-mem.c (diagnose_tm_1_op): Likewise.
31133         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
31134         (grid_parallel_clauses_gridifiable): Likewise.
31136         * config/nvptx/mkoffload.c (process): Add space in between
31137         , and %d.
31139         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
31140         "MOD4_SSE_REGS" and "ALL_REGS".
31142         * spellcheck.c (test_data): Add , in between "foo" and "food".
31144 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
31146         PR target/79449
31147         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
31148         boundary crossing check and subsequent code generation agree.
31150 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31152         * config/aarch64/aarch64.c (has_memory_op): Delete.
31153         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
31154         has_memory_op.
31156 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
31158         PR rtl-optimization/79388
31159         PR rtl-optimization/79450
31160         * combine.c (distribute_notes): When removing TEM_INSN for which
31161         corresponding dest has last value recorded, invalidate that last
31162         value.
31164 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31166         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
31167         of explicit '@'.  Add missing assembly comment marker on branch costs
31168         printout.
31170 2017-02-13  Nathan Sidwell  <nathan@acm.org>
31172         * gengtype-lex.l (<in_struct>): Add '/'.
31174 2017-02-13  Martin Liska  <mliska@suse.cz>
31176         PR c/79471
31177         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
31179 2017-02-13  Richard Biener  <rguenther@suse.de>
31181         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
31182         Remove.
31183         * configure: Re-generate.
31184         * config.in: Likewise.
31185         * graphite-dependences.c: Simplify as if
31186         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
31187         * graphite-isl-ast-to-gimple.c: Likewise.
31188         * graphite-optimize-isl.c: Likewise.
31189         * graphite-poly.c: Likewise.
31190         * graphite-sese-to-poly.c: Likewise.
31191         * graphite.h: Likewise.
31192         * toplev.c: Include isl/version.h and use isl_version () for
31193         printing the ISL version.
31194         * doc/install.texi: Update ISL requirement.
31196 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
31198         * doc/standards.texi (Standards): Update reference to
31199         Objective-C 2.0.
31201 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
31203         * doc/extend.texi (Named Address Spaces): sourceware.org now
31204         defaults to https.
31205         * doc/install.texi (Binaries): Ditto.
31206         (Specific): Ditto.
31208 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
31210         * doc/cpp.texi: Replace "stringify"/"stringification" with C
31211         standard terminology "stringize"/"stringizing" throughout.
31212         * doc/cppinternals.texi: Likewise.
31214 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
31216         * doc/extend.texi: Fix some spelling mistakes and typos.
31217         * doc/invoke.texi: Likewise.
31219 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
31221         PR ipa/79224
31222         * params.def (inline-min-speedup) Change from 10 to 8.
31224 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
31226         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
31227         4.5.
31229 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
31231         PR ipa/79224
31232         * ipa-inline-analysis.c (get_minimal_bb): New function.
31233         (record_modified): Use it.
31234         (remap_edge_change_prob): Handle also ancestor functions.
31236 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
31238         * doc/contrib.texi (Contributors): Remove broken link into
31239         the Mauve CVS repository.
31241 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
31243         PR middle-end/79454
31244         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
31245         result computation whenever lhs doesn't have vector mode, not
31246         just when it has BLKmode.
31248 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
31250         * doc/makefile.texi (profiledbootstrap): Refer to the
31251         installation instructions only in textual form.
31253 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
31255         PR target/79295
31256         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
31258 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
31260         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
31261         (Specific): Update mingw-w64 reference.
31262         (Binaries): Ditto.
31263         (Specific): Remove broken link to Renesas RX processor.
31265 2017-02-10  Richard Biener  <rguenther@suse.de>
31267         * toplev.c (process_options): Do not mention obsolete graphite
31268         options when printing sorry message about missing graphite support.
31269         Mention -floop-nest-optimize.
31271 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
31273         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
31274         (vtst_p16): Likewise.
31275         (vtstq_p8): Likewise.
31276         (vtstq_p16): Likewise.
31277         (vtst_p64): New.
31278         (vtstq_p64): Likewise.
31279         * config/arm/arm_neon.h (vgetq_lane_p64): New.
31280         (vset_lane_p64): New.
31281         (vsetq_lane_p64): New.
31283 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
31285         PR tree-optimization/79411
31286         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
31287         stmt operands are SSA_NAMEs used in abnormal phis.
31288         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
31289         phis.
31291 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
31293         PR ipa/70795
31294         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
31295         flag if needed.
31297 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
31299         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
31301 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
31303         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
31304         to avoid warning.
31306         PR c/79413
31307         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
31308         not arbitrary TREE_CONSTANT.
31310         PR c/79431
31311         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
31312         "omp declare target link" attribute unless is_global_var.
31313         * omp-offload.c (find_link_var_op): Likewise.
31315 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
31316             Chung-Lin Tang  <cltang@codesourcery.com>
31318         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
31319         OMP_CLAUSE_TILE.
31320         (gimplify_adjust_omp_clauses): Don't delete TILE.
31321         (gimplify_omp_for): Deal with TILE.
31322         * internal-fn.c (expand_GOACC_TILE): New function.
31323         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
31324         (GOACC_TILE): New.
31325         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
31326         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
31327         element fields.
31328         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
31329         avoid DIV for outermost collapse var.
31330         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
31331         Remove out of date comments, fix whitespace.
31332         * omp-general.c (omp_extract_for_data): Deal with tiling.
31333         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
31334         adjust OLF_DIM_BASE value.
31335         (struct omp_for_data): Add tiling field.
31336         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
31337         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
31338         for auto loops.  Remove default auto determining, moved to
31339         oacc_loop_fixed_partitions.
31340         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
31341         stmts, add e_mask field.
31342         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
31343         (oacc_thread_numbers): Use oacc_dim_call.
31344         (oacc_xform_tile): New.
31345         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
31346         (finish_oacc_loop): Adjust for ifns vector.
31347         (oacc_loop_discover_walk): Append loop abstraction sites to list,
31348         add case for GOACC_TILE fns.
31349         (oacc_loop_xform_loop): Delete.
31350         (oacc_loop_process): Iterate over call list directly, and add
31351         handling for GOACC_TILE fns.
31352         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
31353         dump partitioning.
31354         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
31355         vector partitioning to outer loops.  Assign 2 partitions to loops
31356         when available. Add TILE handling.
31357         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
31358         (execite_oacc_device_lower): Process GOACC_TILE fns,
31359         ignore unknown specs.
31360         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
31361         * tree.c (omp_clause_num_ops): Adjust TILE ops.
31362         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
31364 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
31366         * configure.ac (ACX_BUGURL): Update.
31367         * configure: Regenerate.
31369 2017-02-09  Richard Biener  <rguenther@suse.de>
31371         PR tree-optimization/69823
31372         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
31373         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
31375 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
31377         * config/arc/arc-c.def: Add __NPS400__ definition.
31378         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
31379         (TARGET_NPS400): Define.
31381 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
31383         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
31384         file.
31385         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
31386         pointer, arch_info.
31387         (arc_cpu_types): Fill the arch_info field with a pointer into the
31388         arc_arch_types table.
31389         (arc_selected_cpu): Declare.
31390         * config/arc/arc.c (arc_selected_cpu): Make global.
31391         (arc_selected_arch): Delete.
31392         (arc_base_cpu): Delete.
31393         (arc_override_options): Remove references to deleted variables,
31394         update access to arch information.
31395         (ARC_OPT): Update access to arch information.
31396         (ARC_OPTX): Likewise.
31397         * config/arc/arc.h (arc_base_cpu): Remove declaration.
31398         (TARGET_ARC600): Update access to arch information.
31399         (TARGET_ARC601): Likewise.
31400         (TARGET_ARC700): Likewise.
31401         (TARGET_EM): Likewise.
31402         (TARGET_HS): Likewise.
31403         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
31404         information.
31406 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
31408         PR target/78604
31409         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
31410         condition/operands for integer GE/LE/GEU/LEU operations.
31412 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
31414         PR translation/79397
31415         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
31416         of AltiVec.
31418 2017-02-08  Martin Jambor  <mjambor@suse.cz>
31420         PR ipa/79375
31421         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
31422         whether allocation happened.
31423         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
31424         nothing was allocated.
31426 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
31428         PR tree-optimization/79408
31429         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
31430         constant, but SSA_NAME with a known integer range, use the minimum
31431         of that range instead of op1 to determine if modulo can be replaced
31432         with its first operand.
31434 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31436         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
31438 2017-02-08  Richard Biener  <rguenther@suse.de>
31440         PR tree-optimization/71824
31441         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
31442         Check all loops contained in the merged region.
31444 2017-02-07  Andrew Pinski  <apinski@cavium.com>
31446         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
31448 2017-02-07  Andrew Pinski  <apinski@cavium.com>
31450         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
31451         (thunderxt88): Likewise.
31452         (thunderxt81): Disable LSE and change v8.1 to v8.
31453         (thunderxt83): Likewise.
31455 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
31456             Richard Biener  <rguenther@suse.de>
31458         PR middle-end/79399
31459         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
31460         type from int to size_t.
31461         * ira-costs.c (struct_costs_size): Change type from int to size_t.
31463 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
31465         PR rtl-optimization/79386
31466         * cprop.c (bypass_conditional_jumps): Initialize
31467         bypass_last_basic_block already before splitting bbs after
31468         unconditional traps...
31469         (bypass_conditional_jumps): ... rather than here.
31471         PR target/79299
31472         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
31473         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
31474         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
31475         fix -masm=intel patterns.
31477 2017-02-07  Richard Biener  <rguenther@suse.de>
31479         PR tree-optimization/79256
31480         PR middle-end/79278
31481         * builtins.c (get_object_alignment_2): Use min_align_of_type
31482         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
31483         and ADJUST_FIELD_ALIGN.
31485         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
31486         type parameter.
31487         * doc/tm.texi: Regenerate.
31488         * stor-layout.c (layout_decl): Adjust.
31489         (update_alignment_for_field): Likewise.
31490         (place_field): Likewise.
31491         (min_align_of_type): Likewise.
31492         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
31493         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
31494         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
31495         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
31496         * config/frv/frv.c (frv_adjust_field_align): Likewise.
31497         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
31498         * config/i386/i386.c (x86_field_alignment): Likewise.
31499         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
31500         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
31501         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
31502         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
31503         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
31504         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
31505          Likewise.
31507         Revert
31508         2017-01-30  Richard Biener  <rguenther@suse.de>
31510         PR tree-optimization/79256
31511         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
31512         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
31513         alignment on TYPE.
31515 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
31517         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
31518         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
31519         builtins to SImode and emit a zero-extend, if necessary.
31521 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
31523         * docs/invoke.texi (RISC-V Options): Alphabetize.
31525 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
31527         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
31528         options.
31530 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
31532         * config/riscv/riscv.c: New file.
31533         * common/config/riscv/riscv-common.c: Likewise.
31534         * config.gcc: Likewise.
31535         * config/riscv/constraints.md: Likewise.
31536         * config/riscv/elf.h: Likewise.
31537         * config/riscv/generic.md: Likewise.
31538         * config/riscv/linux.h: Likewise.
31539         * config/riscv/multilib-generator: Likewise.
31540         * config/riscv/peephole.md: Likewise.
31541         * config/riscv/pic.md: Likewise.
31542         * config/riscv/predicates.md: Likewise.
31543         * config/riscv/riscv-builtins.c: Likewise.
31544         * config/riscv/riscv-c.c: Likewise.
31545         * config/riscv/riscv-ftypes.def: Likewise.
31546         * config/riscv/riscv-modes.def: Likewise.
31547         * config/riscv/riscv-opts.h: Likewise.
31548         * config/riscv/riscv-protos.h: Likewise.
31549         * config/riscv/riscv.h: Likewise.
31550         * config/riscv/riscv.md: Likewise.
31551         * config/riscv/riscv.opt: Likewise.
31552         * config/riscv/sync.md: Likewise.
31553         * config/riscv/t-elf-multilib: Likewise.
31554         * config/riscv/t-linux: Likewise.
31555         * config/riscv/t-linux-multilib: Likewise.
31556         * config/riscv/t-riscv: Likewise.
31557         * configure.ac: Likewise.
31558         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
31559         Waterman as RISC-V maintainers.
31560         * doc/install.texi: Add RISC-V entries.
31561         * doc/invoke.texi: Add RISC-V options section.
31562         * doc/md.texi: Add RISC-V constraints section.
31563         * configure: Regenerated.
31565 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
31567         PR target/66144
31568         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
31569         false values to be constant vectors with all 0 or all 1 bits set.
31570         (vcondu<mode><mode>): Likewise.
31571         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
31572         predicate.
31573         (fpmask_comparison_operator): Update comment.
31574         (vecint_comparison_operator): New predicate.
31575         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
31576         vector conditionals when the true and false values are constant
31577         vectors with all 0 bits or all 1 bits set.
31579 2017-02-06  Martin Sebor  <msebor@redhat.com>
31581         PR  tree-optimization/79376
31582         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
31584 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
31586         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
31587         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
31588         to simplify split condition.
31590 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
31592         * omp-expand.c (oxpand_omp_atomic_fetch_op,
31593         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
31594         false.
31596 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
31598         PR rtl-optimization/68664
31599         * target.def (can_speculate_insn): New hook.
31600         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
31601         * doc/tm.texi: Regenerate.
31602         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
31603         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
31604         (rs6000_sched_can_speculate_insn): New function.
31606 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
31608         PR tree-optimization/79284
31609         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
31610         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
31611         vectorizable_mask_load_store, vectorizable_operation,
31612         vect_is_simple_cond, get_same_sized_vectype): Use it instead
31613         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
31614         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
31615         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
31616         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
31617         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
31618         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
31619         is_gimple_assign (stmt).  Replace another such test with
31620         is_gimple_assign (stmt).
31622 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
31624         PR target/78883
31625         * config/avr/avr.c (rtl-iter.h): Include it.
31626         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
31627         (avr_legitimate_combined_insn): ...and implementation.
31629 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
31631         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
31632         * config/s390/s390.c (s390_const_operand_ok)
31633         (s390_canonicalize_comparison, s390_extract_part)
31634         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
31635         (s390_contiguous_bitmask_p, s390_rtx_costs)
31636         (legitimize_pic_address): Likewise.
31637         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
31638         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
31639         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
31640         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
31641         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
31643 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
31645         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
31646         REGNO($0) == REGNO($1).
31648 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
31650         * config/s390/linux.h(SIZE_TYPE): Add comment.
31652 2017-02-06  Julian Brown  <julian@codesourcery.com>
31653             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
31654             Virendra Pathak  <virendra.pathak@broadcom.com>
31656         * config/aarch64/aarch64-cores.def: Change the scheduler
31657         to Thunderx2t99.
31658         * config/aarch64/aarch64.md: Include thunderx2t99.md.
31659         * config/aarch64/thunderx2t99.md: New file.
31661 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
31663         * doc/standards.texi (Go Language): Update link to language
31664         standard.
31666 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
31668         * tree-eh.c (lower_resx): Sanitize profile.
31669         (cleanup_empty_eh_move_lp): Likewise.
31671 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
31673         PR tree-ssa/79347
31674         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
31675         ELSE_PROB.
31676         * cfgloopmanip.h (loop_version): Update prototype.
31677         * modulo-sched.c (sms_schedule): Update call of loop_version.
31678         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
31679         * tree-parloops.c (gen_parallel_loop): Likewise.
31680         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
31681         * tree-ssa-loop-split.c (split_loop): Likewise.
31682         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
31683         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
31685 2017-02-05  Martin Liska  <mliska@suse.cz>
31687         PR bootstrap/78985
31688         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
31689         variable to NULL.
31690         (print_operand_address): Initialize a struct to zero.
31692 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
31694         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
31695         garbage collector only in textual form.
31697 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
31699         * doc/extend.texi (x86 specific memory model extensions for
31700         transactional memory): Simplify a phrase.
31702 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
31704         PR target/79353
31705         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
31706         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
31707         (atomic_storedi_1): Likewise.
31709 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
31711         PR tree-optimization/79338
31712         * tree-parloops.c (gather_scalar_reductions): Don't call
31713         vect_analyze_loop_form for loop->inner before destroying loop's
31714         loop_vinfo.
31716 2017-02-03  Martin Sebor  <msebor@redhat.com>
31718         PR tree-optimization/79327
31719         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
31720         when precision has resulted in leading zeros.
31721         (format_integer): Adjust the likely counter to assume an unknown
31722         argument that may be zero is non-zero.
31724 2017-02-03  Jason Merrill  <jason@redhat.com>
31726         PR c++/78689
31727         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
31728         avoid copying non-taken branch.
31730 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
31732         PR tree-optimization/79340
31733         * tree-vect-loop.c (vectorizable_reduction): Release
31734         vec_defs elements after safe_splicing them into other vectors.
31735         Formatting fixes.
31737         PR tree-optimization/79327
31738         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
31739         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
31740         dirtype.
31741         (format_integer): Use wide_int_to_tree instead of build_int_cst
31742         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
31743         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
31744         of shortest and longest sequence.
31746 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
31748         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
31749         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
31751 2017-02-03  Walter Lee  <walt@tilera.com>
31753         PR target/78862
31754         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
31755         after initial stackframe link reg save.
31756         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
31758 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
31760         PR target/79354
31761         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
31762         wu for stxssp alternative.
31764 2017-02-03  Martin Sebor  <msebor@redhat.com>
31766         PR tree-optimization/79352
31767         * gimple-fold.c (get_range_strlen): Add argument.
31768         (get_range_strlen): Change return type to bool.
31769         (get_maxval_strlen): Pass in a dummy argument.
31770         * gimple-fold.h (get_range_strlen): Change return type to bool.
31771         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
31772         * tree.h (array_at_struct_end_p): Add argument.
31773         * tree.c (array_at_struct_end_p): Handle it.
31775 2017-02-03  Martin Liska  <mliska@suse.cz>
31777         PR lto/66295
31778         * multiple_target.c (create_dispatcher_calls): Redirect edge
31779         from a caller of a dispatcher.
31780         (expand_target_clones): Make the clones local.
31781         (ipa_target_clone): Do both target clones and resolvers.
31782         (ipa_dispatcher_calls): Remove the pass.
31783         (pass_dispatcher_calls::gate): Likewise.
31784         (make_pass_dispatcher_calls): Likewise.
31785         * passes.def (pass_target_clone): Put as very first IPA early
31786         pass.
31788 2017-02-03  Martin Liska  <mliska@suse.cz>
31790         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
31791         in case of a function with ifunc attribute.
31793 2017-02-03  Martin Liska  <mliska@suse.cz>
31795         * cgraph.c (cgraph_node::dump): Dump function version info.
31796         * symtab.c (symtab_node::dump_base): Add missing new line.
31798 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
31800         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
31801         (ifcombine_ifandif): Use it.
31803 2017-02-03  Martin Liska  <mliska@suse.cz>
31805         * doc/invoke.texi: Document default value for
31806         use-after-scope-direct-emission-threshold.
31808 2017-02-03  Martin Liska  <mliska@suse.cz>
31810         PR tree-optimization/79339
31811         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
31812         (format_floating): Likewise.
31814 2017-02-03  Martin Liska  <mliska@suse.cz>
31816         PR ipa/79337
31817         * ipa-prop.c (ipa_node_params_t::insert): Remove current
31818         implementation.
31819         (ipa_node_params_t::remove): Likewise.
31820         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
31821         initialization from removed ipa_node_params_t::insert.
31822         (ipa_node_params::~ipa_node_params): Move from removed
31823         ipa_node_params_t::release.
31824         * symbol-summary.h (symbol_summary::m_released): New member.
31825         Do not release a summary twice.  Do not allow to call finalizer
31826         for types of a summary that live in GGC memory.
31828 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
31830         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
31831         cmp_branch fusion.
31833 2017-02-02  Martin Sebor  <msebor@redhat.com>
31835         PR middle-end/79275
31836         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
31837         (format_string): Tighten up the range of output for non-constant
31838         strings and correct the expected range for wide non-constant strings.
31840 2017-02-02  Martin Sebor  <msebor@redhat.com>
31842         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
31844         PR middle-end/32003
31845         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
31846         index.
31847         (-fdump-tree-@var): Add to index and document how to come up
31848         with pass-specific option and dump file names.
31849         (-fdump-passes): Clarify where to look for output.
31851 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
31853         PR middle-end/77445
31854         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
31855         statistics of the analyzed path; allow threading for speed when
31856         any of BBs along the path are optimized for speed.
31858 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
31860         PR middle-end/78468
31861         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
31862         settings of the virtual registers.
31864         Revert again
31865         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
31867         * explow.c (get_dynamic_stack_size): Take known alignment of stack
31868         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
31869         needed.
31871 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
31873         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
31874         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
31876 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
31878         * config/s390/s390.md: Add missing comments with the expanded
31879         mnemonics.
31880         * config/s390/vector.md: Likewise.
31881         * config/s390/vx-builtins.md: Likewise.
31883 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
31885         PR target/79197
31886         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
31887         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
31888         conditions on a single line.
31890 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
31892         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
31893         __S390_VX__ to __VX__.
31895 2017-02-01  Andrew Pinski  <apinski@cavium.com>
31897         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
31898         stmt_info to record_stmt_cost.
31899         (vect_get_known_peeling_cost): Pass stmt_info if known to
31900         record_stmt_cost.
31901         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
31902         cpu_vector_cost field into
31903         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
31904         field into vec_int_stmt_cost and vec_fp_stmt_cost.
31905         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
31906         splitting of scalar_stmt_cost and vec_stmt_cost.
31907         (thunderx_vector_cost): Likewise.
31908         (cortexa57_vector_cost): LIkewise.
31909         (exynosm1_vector_cost): Likewise.
31910         (xgene1_vector_cost): Likewise.
31911         (thunderx2t99_vector_cost): Improve after the splitting of the two
31912         fields.
31913         (aarch64_builtin_vectorization_cost): Update for the splitting of
31914         scalar_stmt_cost and vec_stmt_cost.
31916 2017-02-01  Torvald Riegel  <triegel@redhat.com>
31917             Richard Henderson  <rth@redhat.com>
31919         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
31920         conditional on existance of a fast atomic load.
31921         * optabs-query.c (can_atomic_load_p): New function.
31922         * optabs-query.h (can_atomic_load_p): Declare it.
31923         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
31924         no fast atomic load is available for the particular size of access.
31925         (expand_atomic_compare_and_swap): Likewise.
31926         (expand_atomic_load): Likewise.
31927         (expand_atomic_store): Likewise.
31928         (expand_atomic_fetch_op): Likewise.
31929         * testsuite/lib/target-supports.exp
31930         (check_effective_target_sync_int_128): Remove x86 because it provides
31931         no fast atomic load.
31932         (check_effective_target_sync_int_128_runtime): Likewise.
31934 2017-02-01  Richard Biener  <rguenther@suse.de>
31936         * graphite.c: Include tree-vectorizer.h for find_loop_location.
31937         (graphite_transform_loops): Provide opt-info for optimized nests.
31938         * tree-parloop.c (parallelize_loops): Provide opt-info for
31939         parallelized loops.
31941 2017-02-01  Richard Biener  <rguenther@suse.de>
31943         PR middle-end/79315
31944         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
31945         was not set before.
31947 2017-02-01  Richard Biener  <rguenther@suse.de>
31949         PR tree-optimization/71824
31950         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
31951         Verify the loops are valid in the merged SESE region.
31952         (scop_detection::can_represent_loop_1): Check analyzing the
31953         evolution of the number of iterations in the region succeeds.
31955 2017-01-31  Ian Lance Taylor  <iant@golang.org>
31957         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
31958         REG_ARGS_SIZE note to 32-bit push insns and call insn.
31960 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
31962         PR preprocessor/79210
31963         * input.c (get_substring_ranges_for_loc): Replace line_width
31964         assertion with error-handling.
31966 2017-01-31  Richard Biener  <rguenther@suse.de>
31968         PR tree-optimization/77318
31969         * graphite-sese-to-poly.c (extract_affine): Fix assert.
31970         (create_pw_aff_from_tree): Take loop parameter.
31971         (add_condition_to_pbb): Pass loop of the condition to
31972         create_pw_aff_from_tree.
31974 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
31976         * config/s390/s390.c (s390_asan_shadow_offset): New function.
31977         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
31979 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
31981         PR target/78597
31982         PR target/79038
31983         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
31984         no longer used.
31985         (convert_int_to_float128): Likewise.
31986         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
31987         (convert_int_to_float128): Likewise.
31988         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
31989         (UNSPEC_IEEE128_CONVERT): Likewise.
31990         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
31991         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
31992         Use local variables for IBM extended format.
31993         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
31994         (fix_trunc<mode>si2_fprs): Likewise.
31995         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
31996         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
31997         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
31998         to know that we can now have integers of all sizes in vector
31999         registers.
32000         (fix<uns>_<mode>di2_hw): Likewise.
32001         (float<uns>_<mode>si2_hw): Likewise.
32002         (fix_<mode>si2_hw): Likewise.
32003         (fixuns_<mode>si2_hw): Likewise.
32004         (float<uns>_<mode>di2_hw): Likewise.
32005         (float_<mode>di2_hw): Likewise.
32006         (float_<mode>si2_hw): Likewise.
32007         (floatuns_<mode>di2_hw): Likewise.
32008         (floatuns_<mode>si2_hw): Likewise.
32009         (xscvqp<su>wz_<mode>): Delete, no longer used.
32010         (xscvqp<su>dz_<mode>): Likewise.
32011         (xscv<su>dqp_<mode>): Likewise.
32012         (ieee128_mfvsrd_64bit): Likewise.
32013         (ieee128_mfvsrd_32bit): Likewise.
32014         (ieee128_mfvsrwz): Likewise.
32015         (ieee128_mtvsrw): Likewise.
32016         (ieee128_mtvsrd_64bit): Likewise.
32017         (ieee128_mtvsrd_32bit): Likewise.
32019 2017-01-31  Martin Liska  <mliska@suse.cz>
32021         PR ipa/79285
32022         * ipa-prop.c (ipa_free_all_node_params): Call release method
32023         instead of ~sumbol_summary to not to trigger double times
32024         dtor of hash_map.
32026 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
32028         PR tree-optimization/71691
32029         * bitmap.h (class auto_bitmap): New.
32030         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
32031         is_maybe_undefined instead of ssa_undefined_value_p.
32033 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
32035         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
32036         __S390_ARCH_LEVEL__ to __ARCH__.
32038 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
32040         PR tree-optimization/79267
32041         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
32042         if should_remove_lhs_p is true.
32044 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
32046         PR debug/63238
32047         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
32048         (add_alignment_attribute): New.
32049         (base_type_die): Add alignment attribute.
32050         (subrange_type_die): Likewise.
32051         (modified_type_die): Likewise.
32052         (gen_array_type_die): Likewise.
32053         (gen_descr_array_type_die: Likewise.
32054         (gen_enumeration_type_die): Likewise.
32055         (gen_subprogram_die): Likewise.
32056         (gen_variable_die): Likewise.
32057         (gen_field_die): Likewise.
32058         (gen_ptr_to_mbr_type_die): Likewise.
32059         (gen_struct_or_union_type_die): Likewise.
32060         (gen_subroutine_type_die): Likewise.
32061         (gen_typedef_die): Likewise.
32062         (base_type_cmp): Compare alignment attribute.
32064 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
32066         PR target/79170
32067         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
32068         (setb_unsigned) New pattern for setb with CCUNS.
32069         * config/rs6000/rs6000.c (expand_block_compare): Use a different
32070         subfc./subfe sequence to avoid overflow problems.  Generate a
32071         shorter sequence with cmpld/setb for power9.
32072         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
32073         for generating subfc. instruction.
32074         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
32075         now uses this instruction.
32077 2017-01-30  Ian Lance Taylor  <iant@google.com>
32079         PR debug/79289
32080         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
32081         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
32083 2017-01-30  Martin Sebor  <msebor@redhat.com>
32085         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
32086         Move constant to the right of a relational operator.
32087         (get_mpfr_format_length, format_character, format_string): Ditto.
32088         (should_warn_p, maybe_warn): Same.
32090         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
32092 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
32094         PR lto/79061
32095         * asan.c (get_translation_unit_decl): Remove function.
32096         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
32098 2017-01-30  Martin Liska  <mliska@suse.cz>
32100         PR gcov-profile/79259
32101         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
32102         -fprofile-generate.
32104 2017-01-30  Martin Liska  <mliska@suse.cz>
32106         PR bootstrap/78985
32107         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
32108         Initialize variables with NULL value.
32110 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
32112         PR target/79260
32113         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
32114         tm_p_file.
32115         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
32117 2017-01-30  Richard Biener  <rguenther@suse.de>
32119         PR tree-optimization/79276
32120         * tree-vrp.c (process_assert_insertions): Properly adjust common
32121         when removing a duplicate.
32123 2017-01-30  Richard Biener  <rguenther@suse.de>
32125         PR tree-optimization/79256
32126         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
32127         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
32128         alignment on TYPE.
32129         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
32131 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32133         PR target/79240
32134         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
32135         ("*r<noxa>sbg_<mode>_sll_bitmask")
32136         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
32137         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
32138         Use contiguous_bitmask_nowrap_operand.
32140 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32142         PR target/79268
32143         * config/rs6000/altivec.h (vec_xl): Revise #define.
32144         (vec_xst): Likewise.
32146 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
32148         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
32150 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
32152         PR rtl-optimization/79194
32153         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
32154         traps before call to bypass_conditional_jumps.
32156 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
32158         PR tree-optimization/71374
32159         * lra-constraints.c (check_conflict_input_operands): New.
32160         (match_reload): Use it.
32162 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
32164         PR target/79131
32165         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
32166         account to calculate conflict_set.
32168 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
32170         PR rtl-optimization/78559
32171         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
32172         other_insn in combine.
32174 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
32176         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
32177         uint16_type_node for BT_UINT16.
32179 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
32181         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
32182         "RTL Tests" to menu.
32183         (GIMPLE Tests): New node.
32184         (RTL Tests): New node.
32186 2017-01-27  Richard Biener  <rguenther@suse.de>
32188         PR tree-optimization/79245
32189         * tree-loop-distribution.c (distribute_loop): Apply cost
32190         modeling also to detected patterns.
32192 2017-01-27  Richard Biener  <rguenther@suse.de>
32194         PR tree-optimization/71433
32195         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
32196         (compare_assert_loc): New function.
32197         (process_assert_insertions): Sort and optimize assert locations
32198         to remove duplicates and push down identical assertions on
32199         edges to their destination block.
32201 2017-01-27  Richard Biener  <rguenther@suse.de>
32203         PR tree-optimization/79244
32204         * tree-vrp.c (remove_range_assertions): Forcefully propagate
32205         out SSA names even if abnormal.
32207 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
32209         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
32210         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
32211         instead of MPFR_RNDN.
32213 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
32215         PR target/79239
32216         * arm.c (arm_option_override): Don't call build_target_option_node
32217         until after doing all option overrides.
32218         (arm_valid_target_attribute_tree): Likewise.
32220 2017-01-27  Martin Liska  <mliska@suse.cz>
32222         * doc/invoke.texi (-fprofile-arcs): Document profiling support
32223         for {cd}tors and C++ {cd}tors.
32225 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32227         * config/s390/s390.md ("*setmem_long_and")
32228         ("*setmem_long_and_31z"): Use zero_extend instead of and.
32230 2017-01-26  Martin Sebor  <msebor@redhat.com>
32232         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
32233         of precision.
32235 2017-01-26  Martin Sebor  <msebor@redhat.com>
32237         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
32238         HAVE_DFmode before using XFmode or DFmode.
32239         (parse_directive): Avoid using the z length modifier to avoid
32240         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
32242         PR middle-end/78703
32243         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
32244         to accept adjustment as an array.
32245         (get_int_range): New function.
32246         (struct directive): Make width and prec arrays.
32247         (directive::set_width, directive::set_precision): Call get_int_range.
32248         (format_integer, format_floating): Handle width and precision ranges.
32249         (format_string, parse_directive): Same.
32251 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
32253         PR debug/79129
32254         * dwarf2out.c (generate_skeleton_bottom_up): For children with
32255         comdat_type_p set, just clone them, but keep the children in the
32256         original DIE.
32258         PR debug/78835
32259         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
32260         which have direct callers with -fvar-tracking-assignments enabled
32261         in the current TU.
32262         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
32263         inside of type units.
32265 2017-01-26  Martin Sebor  <msebor@redhat.com>
32267         PR middle-end/78703
32268         * gimple-ssa-sprintf.c (struct result_range): Add likely and
32269         unlikely counters.
32270         (struct format_result): Replace number_chars, number_chars_min,
32271         and number_chars_max with a single member of struct result_range.
32272         Remove bounded.
32273         (format_result::operator+=): Adjust.
32274         (struct fmtresult): Remove bounded.  Handle likely and unlikely
32275         counters.
32276         (fmtresult::adjust_for_width_or_precision): New function.
32277         (fmtresult:type_max_digits): New function.
32278         (bytes_remaining): Handle likely and unlikely counters.
32279         (min_bytes_remaining): Remove.
32280         (format_percent): Simplify.
32281         (format_integer, format_floating): Set likely and unlikely counters.
32282         (get_string_length, format_character, format_string): Same.
32283         (format_plain, should_warn_p): New function.
32284         (maybe_warn): Call should_warn_p.  Update diagnostic messages
32285         and handle those for all directives, including plain strings.
32286         (format_directive): Handle likely and unlikely counters.
32287         Remove unnecessary quoting from diagnostics.  Add an informational
32288         note.
32289         (add_bytes): Remove.
32290         (pass_sprintf_length::compute_format_length): Simplify.
32291         (try_substitute_return_value): Handle likely and unlikely counters.
32293 2017-01-26  Carl Love  <cel@us.ibm.com>
32295         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
32296         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
32298 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
32300         PR target/79131
32301         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
32302         endianess for subregs into account.
32303         * lra-constraints.c (lra_constraints): Do risky transformations
32304         always on the first iteration.
32305         * lra-lives.c (check_pseudos_live_through_calls): Add arg
32306         last_call_used_reg_set.
32307         (process_bb_lives): Define and use last_call_used_reg_set.
32308         * lra.c (lra): Always continue after lra_constraints on the first
32309         iteration.
32311 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
32313         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
32314         constant.
32315         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
32317 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
32319         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
32320         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
32321         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
32322         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
32323         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
32324         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
32325         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
32326         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
32327         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
32329 2017-01-26  Marek Polacek  <polacek@redhat.com>
32331         PR c/79199
32332         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
32333         for the third operand.
32335 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
32337         PR middle-end/79236
32338         * omp-low.c (struct omp_context): Add simt_stmt field.
32339         (scan_omp_for): Return omp_context *.
32340         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
32341         context to the _simt_ SIMD stmt.
32342         (lower_omp_for): For combined SIMD with sibling _simt_
32343         SIMD, make sure to use the same decls in _looptemp_
32344         clauses as in the sibling.
32346 2017-01-26  David Sherwood  <david.sherwood@arm.com>
32348         PR middle-end/79212
32349         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
32350         all contexts.
32352 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
32354         PR target/70465
32355         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
32356         emit fld b; fld a; if possible.
32358         * brig-builtins.def: Update copyright years.
32359         * config/arm/arm_acle_builtins.def: Update copyright years.
32361 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
32363         PR target/79179
32364         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
32365         constraint instead of o for the stxsd instruction.
32367 2017-01-25  Carl Love  <cel@us.ibm.com>
32369         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
32370         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
32372 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
32374         * doc/invoke.texi (C++ Dialect Options): Fix typo.
32376 2017-01-25  Richard Biener  <rguenther@suse.de>
32378         PR tree-optimization/69264
32379         * target.def (vector_alignment_reachable): Improve documentation.
32380         * doc/tm.texi: Regenerate.
32381         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
32382         and add a comment.
32383         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
32384         earlier changes with respect to TYPE_USER_ALIGN.
32385         (vector_alignment_reachable_p): Likewise.  Improve dumping.
32387 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32389         PR target/79145
32390         * config/arm/arm.md (xordi3): Force constant operand into a register
32391         for TARGET_IWMMXT.
32393 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32395         * doc/invoke.texi (-fstore-merging): Correct default optimization
32396         levels at which it is enabled.
32397         (-O): Move -fstore-merging from list to...
32398         (-O2): ... Here.
32400 2017-01-25  Richard Biener  <rguenther@suse.de>
32402         PR debug/78363
32403         * omp-expand.c: Include debug.h.
32404         (expand_omp_taskreg): Make sure to generate early debug before
32405         outlining anything from a function.
32406         (expand_omp_target): Likewise.
32407         (grid_expand_target_grid_body): Likewise.
32409 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
32411         PR lto/79061
32412         * asan.c (get_translation_unit_decl): New function.
32413         (asan_add_global): Extract modules file name from globals
32414         TRANSLATION_UNIT_DECL name.
32416 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
32418         PR target/77439
32419         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
32420         for long calls with APCS frame and VFP.
32422 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
32424         * cfg.c (original_copy_tables_initialized_p): New function.
32425         * cfg.h (original_copy_tables_initialized_p): New decl.
32426         * cfgrtl.c (relink_block_chain): Guard the call to
32427         free_original_copy_tables with a call to
32428         original_copy_tables_initialized_p.
32429         * cgraph.h (symtab_node::native_rtl_p): New decl.
32430         * cgraphunit.c (symtab_node::native_rtl_p): New function.
32431         (symtab_node::needed_p): Don't assert for early assembly output
32432         for __RTL functions.
32433         (cgraph_node::finalize_function): Set "force_output" for __RTL
32434         functions.
32435         (cgraph_node::analyze): Bail out early for __RTL functions.
32436         (analyze_functions): Update assertion to support __RTL functions.
32437         (cgraph_node::expand): Bail out early for __RTL functions.
32438         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
32439         __RTL functions.
32440         * function.h (struct function): Update comment for field
32441         "pass_startwith".
32442         * gimple-expr.c: Include "tree-pass.h".
32443         (gimple_has_body_p): Return false for __RTL functions.
32444         * Makefile.in (OBJS): Add run-rtl-passes.o.
32445         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
32446         accessor.
32447         (gcc::pass_manager::get_clean_slate): New accessor.
32448         * passes.c: Include "insn-addr.h".
32449         (should_skip_pass_p): Add logging.  Update logic for running
32450         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
32451         property-provider override so it is only done for gimple passes.
32452         Don't skip dfinit.
32453         (skip_pass): New function.
32454         (execute_one_pass): Call skip_pass when skipping passes.
32455         * read-md.c (md_reader::read_char): Support filtering
32456         the input to a subset of line numbers.
32457         (md_reader::md_reader): Initialize fields
32458         m_first_line and m_last_line.
32459         (md_reader::read_file_fragment): New function.
32460         * read-md.h (md_reader::read_file_fragment): New decl.
32461         (md_reader::m_first_line): New field.
32462         (md_reader::m_last_line): New field.
32463         * read-rtl-function.c (function_reader::create_function): Only
32464         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
32465         curr_properties.  Set DECL_INITIAL to a dummy block.
32466         (read_rtl_function_body_from_file_range): New function.
32467         * read-rtl-function.h (read_rtl_function_body_from_file_range):
32468         New decl.
32469         * run-rtl-passes.c: New file.
32470         * run-rtl-passes.h: New file.
32472 2017-01-24  Jeff Law  <law@redhat.com>
32474         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
32475         buffer size.
32477 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
32479         PR tree-optimization/79159
32480         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
32481         (record_nonwrapping_iv): Improve boundary using above function if no
32482         value range information.
32484 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
32485             Martin Jambor  <mjambor@suse.cz>
32487         * brig-builtins.def: New file.
32488         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
32489         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
32490         (DEF_HSAIL_SAT_BUILTIN): Likewise.
32491         (DEF_HSAIL_INTR_BUILTIN): Likewise.
32492         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
32493         * builtin-types.def (BT_INT8): New.
32494         (BT_INT16): Likewise.
32495         (BT_UINT8): Likewise.
32496         (BT_UINT16): Likewise.
32497         (BT_FN_ULONG): Likewise.
32498         (BT_FN_UINT_INT): Likewise.
32499         (BT_FN_UINT_ULONG): Likewise.
32500         (BT_FN_UINT_LONG): Likewise.
32501         (BT_FN_UINT_PTR): Likewise.
32502         (BT_FN_ULONG_PTR): Likewise.
32503         (BT_FN_INT8_FLOAT): Likewise.
32504         (BT_FN_INT16_FLOAT): Likewise.
32505         (BT_FN_UINT32_FLOAT): Likewise.
32506         (BT_FN_UINT16_FLOAT): Likewise.
32507         (BT_FN_UINT8_FLOAT): Likewise.
32508         (BT_FN_UINT64_FLOAT): Likewise.
32509         (BT_FN_UINT16_UINT32): Likewise.
32510         (BT_FN_UINT32_UINT16): Likewise.
32511         (BT_FN_UINT16_UINT16_UINT16): Likewise.
32512         (BT_FN_INT_PTR_INT): Likewise.
32513         (BT_FN_UINT_PTR_UINT): Likewise.
32514         (BT_FN_LONG_PTR_LONG): Likewise.
32515         (BT_FN_ULONG_PTR_ULONG): Likewise.
32516         (BT_FN_VOID_UINT64_UINT64): Likewise.
32517         (BT_FN_UINT8_UINT8_UINT8): Likewise.
32518         (BT_FN_INT8_INT8_INT8): Likewise.
32519         (BT_FN_INT16_INT16_INT16): Likewise.
32520         (BT_FN_INT_INT_INT): Likewise.
32521         (BT_FN_UINT_FLOAT_UINT): Likewise.
32522         (BT_FN_FLOAT_UINT_UINT): Likewise.
32523         (BT_FN_ULONG_UINT_UINT): Likewise.
32524         (BT_FN_ULONG_UINT_PTR): Likewise.
32525         (BT_FN_ULONG_ULONG_ULONG): Likewise.
32526         (BT_FN_UINT_UINT_UINT): Likewise.
32527         (BT_FN_VOID_UINT_PTR): Likewise.
32528         (BT_FN_UINT_UINT_PTR: Likewise.
32529         (BT_FN_UINT32_UINT64_PTR): Likewise.
32530         (BT_FN_INT_INT_UINT_UINT): Likewise.
32531         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
32532         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
32533         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
32534         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
32535         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
32536         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
32537         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
32538         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
32539         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
32540         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
32541         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
32542         * doc/frontends.texi: List BRIG FE.
32543         * doc/install.texi (Testing): Add BRIG tesring requirements.
32544         * doc/invoke.texi (Overall Options): Mention BRIG.
32545         * doc/standards.texi (Standards): Doucment BRIG HSA version.
32547 2017-01-24  Richard Biener  <rguenther@suse.de>
32549         PR translation/79208
32550         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
32552 2017-01-24  Martin Jambor  <mjambor@suse.cz>
32554         PR bootstrap/79198
32555         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
32556         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
32557         and known_contexts.
32559 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
32561         PR middle-end/79123
32562         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
32563         casts from signed to unsigned really don't have a range.
32565 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
32567         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
32568         GMP_RNDx for compatiblity.
32570 2017-01-24  Martin Liska  <mliska@suse.cz>
32572         PR bootstrap/79132
32573         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
32574         that would prevent us to call alloca with -1 as argument.
32576 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
32578         * dwarf2out.c (output_compilation_unit_header, output_file_names):
32579         Avoid -Wformat-security warning.
32581 2017-01-23  Andrew Pinski  <apinski@cavium.com>
32583         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
32584         cost table.
32586 2017-01-23  Martin Sebor  <msebor@redhat.com>
32588         PR middle-end/78703
32589         * gimple-ssa-sprintf.c (warn_level): New global.
32590         (format_integer): Use it here and throughout the rest of the file.
32591         Use the same switch to compute sign as base.
32592         (maybe_warn): New function.
32593         (format_directive): Factor out warnings into maybe_warn.
32594         Add debugging output.  Use warn_level.
32595         (add_bytes): Use warn_level.
32596         (pass_sprintf_length::compute_format_length): Add debugging output.
32597         (try_substitute_return_value): Same.
32598         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
32600         PR middle-end/78703
32601         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
32602         (struct fmtresult, format_integer, format_floating): Adjust.
32603         (fmtresult::fmtresult): Set max correctly in two argument ctor.
32604         (get_string_length, format_string,format_directive): Same.
32605         (pass_sprintf_length::compute_format_length): Same.
32606         (try_substitute_return_value): Simplify slightly.
32608         PR middle-end/78703
32609         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
32610         (fmtresult::operator+=): Outlined.
32611         (struct fmtresult): Add ctors.
32612         (struct conversion_spec): Rename...
32613         (struct directive): ...to this.  Add and remove data members.
32614         (directive::set_width, directive::set_precision): New functions.
32615         (format_percent): Use fmtresult ctor.
32616         (get_width_and_precision): Remove.
32617         (format_integer): Make naming changes.  Avoid computing width and
32618         precision.
32619         (format_floating): Same.  Adjust indentation.
32620         (format_character, format_none): New functions.
32621         (format_string): Moved character handling to format_character.
32622         (format_directive): Remove arguments, change return type.
32623         (parse_directive): New function.
32624         (pass_sprintf_length::compute_format_length): Move directive
32625         parsing to parse_directive.
32627 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
32629         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
32630         (assign_assembler_name_if_needed): ... this.
32631         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
32632         (assign_assembler_name_if_needed): ... this.
32633         (free_lang_data_in_cgraph): Adjust callers.
32634         * cgraphunit.c (cgraph_node::analyze): Likewise.
32635         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
32636         Likewise.
32638 2017-01-23  Richard Biener  <rguenther@suse.de>
32640         PR tree-optimization/79088
32641         PR tree-optimization/79188
32642         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
32643         resetting loop bounds after last path deletion.  Reset loop
32644         bounds of the target loop, make code match the comments.
32645         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
32646         Make sure loops need no fixups.
32648 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
32650         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
32651         exponent support with double type for first argument.
32652         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
32653         type returned by __builtin_vec_extract_sig,
32654         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
32655         functions from "vector int" to "vector unsigned int" or from
32656         "vector long long int" to "vector unsigned long long int".
32657         Changed type returned by __builtin_vec_extract_exp,
32658         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
32659         functions from "vector int" to "vector unsigned int" or from
32660         "vector long long int" to "vector unsigned long long int".
32661         Changed return type of __builtin_vec_test_data_class,
32662         __builtin_vec_test_data_class_sp, and
32663         __builtin_vec_test_data_class_dp from "vector int" to
32664         "vector bool int" or from "vector long long int" to "vector bool
32665         long long int" and changed second argument type from "unsigned
32666         int" to "int".  Added new overloaded function forms "vector float
32667         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
32668         "vector float __builtin_vec_insert_exp_sp (vector float, vector
32669         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
32670         double, vector unsigned long long int)" and "vector double
32671         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
32672         long int)".  Changed return type of
32673         __builtin_scalar_test_data_class and
32674         __builtin_scalar_test_data_class_sp and
32675         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
32676         int" and changed second argument from "unsigned int" to "int".
32677         Changed type returned by __builtin_scalar_test_neg,
32678         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
32679         from "int" to "bool int".  Added new overloaded function form
32680         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
32681         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
32682         exponent double-precision with floating point first argument.
32683         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
32684         documentation of scalar_test_data_class, scalar_test_neg,
32685         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
32686         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
32687         vec_test_data_class built-in functions to reflect refinements in
32688         their type signatures.
32690 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
32692         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
32693         size of buf.
32694         (aarch64_elf_asm_destructor): Likewise.
32696 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
32698         PR rtl-optimization/78634
32699         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
32700         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
32701         * ifcvt.c (noce_try_cmove): Add missing cost check.
32703         PR rtl-optimization/71724
32704         * combine.c (if_then_else_cond): Look for situations where it is
32705         beneficial to undo the work of one of the recursive calls.
32707 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
32709         PR tree-optimization/70754
32710         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
32711         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
32712         combined stmt before it if not NULL.
32713         (combine_chains): Process refs reversely and compute dominance point
32714         for root ref.
32716 2017-01-23  Martin Liska  <mliska@suse.cz>
32718         PR tree-optimization/79196
32719         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
32720         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
32721         instead of memcmp.
32722         (strlen_optimize_stmt): Call the renamed function.
32724 2017-01-23  Michael Matz  <matz@suse.de>
32726         PR tree-optimization/78384
32727         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
32729 2017-01-23  Richard Biener  <rguenther@suse.de>
32731         PR tree-optimization/79186
32732         * tree-vrp.c (register_new_assert_for): Make sure we've seen
32733         both incoming edges before moving an assert.
32735 2017-01-23  Martin Jambor  <mjambor@suse.cz>
32737         * ipa-prop.c (load_from_param_1): Removed.
32738         (load_from_unmodified_param): Bits from load_from_param_1 put back
32739         here.
32740         (load_from_param): Removed.
32741         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
32742         with stmt.  Reverted back to use of load_from_unmodified_param.
32744 2017-01-23  Martin Jambor  <mjambor@suse.cz>
32746         PR ipa/79108
32747         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
32748         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
32749         field a pointer to garbage collected vector, mark lattices and
32750         ipcp_orig_node with GTY((skip)).
32751         (ipa_get_param_count): Adjust to descriptors being a pointer.
32752         (ipa_get_param): Likewise.
32753         (ipa_get_type): Likewise.
32754         (ipa_get_param_move_cost): Likewise.
32755         (ipa_set_param_used): Likewise.
32756         (ipa_get_controlled_uses): Likewise.
32757         (ipa_set_controlled_uses): Likewise.
32758         (ipa_is_param_used): Likewise.
32759         (ipa_node_params_t): Move into garbage collector.  New methods insert
32760         and remove.
32761         (ipa_node_params_sum): Annotate wth GTY(()).
32762         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
32763         garbage collected.
32764         (ipa_load_from_parm_agg): Adjust declaration.
32765         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
32766         * ipa-profile.c (ipa_profile): Likewise.
32767         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
32768         (ipa_populate_param_decls): Make descriptors parameter garbage
32769         collected.
32770         (ipa_dump_param): Adjust to descriptors being a pointer.
32771         (ipa_alloc_node_params): Likewise.
32772         (ipa_initialize_node_params): Likewise.
32773         (load_from_param_1): Make descriptors parameter garbage collected.
32774         (load_from_unmodified_param): Likewise.
32775         (load_from_param): Likewise.
32776         (ipa_load_from_parm_agg): Likewise.
32777         (ipa_node_params::~ipa_node_params): Removed.
32778         (ipa_free_all_node_params): Remove call to delete operator.
32779         (ipa_node_params_t::insert): New.
32780         (ipa_node_params_t::remove): Likewise.
32781         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
32782         copy known_csts and known_contexts vectors.
32783         (ipa_read_node_info): Adjust to descriptors being a pointer.
32784         (ipcp_modif_dom_walker): Make m_descriptors field garbage
32785         collected.
32786         (ipcp_transform_function): Make descriptors variable garbage
32787         collected.
32789 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
32791         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
32792         * config/i386/avx512dqintrin.h: Ditto.
32793         * config/i386/avx512fintrin.h: Ditto.
32794         * config/i386/i386.c: Handle new builtins.
32795         * config/i386/i386-builtin.def: Add new builtins.
32796         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
32797         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
32799 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
32800             Martin Liska  <mliska@suse.cz>
32802         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
32803         * asan.c (asan_expand_poison_ifn): Support stores and use
32804         appropriate ASAN report function.
32805         * internal-fn.c (expand_ASAN_POISON_USE): New function.
32806         * internal-fn.def (ASAN_POISON_USE): Declare.
32807         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
32808         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
32809         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
32810         ASAN_POISON calls w/o LHS.
32811         * tree-ssa.c (execute_update_addresses_taken): Create clobber
32812         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
32813         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
32814         * gimplify.c (asan_poison_variables): Add attribute
32815         use_after_scope_memory to variables that really needs to live
32816         in memory.
32817         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
32818         having the attribute.
32820 2017-01-23  Martin Liska  <mliska@suse.cz>
32822         * asan.c (create_asan_shadow_var): New function.
32823         (asan_expand_poison_ifn): Likewise.
32824         * asan.h (asan_expand_poison_ifn): New declaration.
32825         * internal-fn.c (expand_ASAN_POISON): Likewise.
32826         * internal-fn.def (ASAN_POISON): New builtin.
32827         * sanopt.c (pass_sanopt::execute): Expand
32828         asan_expand_poison_ifn.
32829         * tree-inline.c (copy_decl_for_dup_finish): Make function
32830         external.
32831         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
32832         * tree-ssa.c (is_asan_mark_p): New function.
32833         (execute_update_addresses_taken): Rewrite local variables
32834         (identified just by use-after-scope as addressable) into SSA.
32836 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
32838         * doc/install.texi (Specific): opensource.apple.com uses https
32839         now. Remove trailing slash.
32841 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
32843         * README.Portability: Remove note on an Irix compatibility issue.
32845 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
32847         * gcov.c (INCLUDE_ALGORITHM): Define.
32848         (INCLUDE_VECTOR): Define.
32849         No longer include <vector> and <algorithm> directly.
32851 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
32853         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
32854         to https.
32855         * doc/invoke.texi (Code Gen Options): Ditto.
32857 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
32859         PR lto/78407
32860         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
32862 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
32864         rtl-optimization/79125
32865         * cprop.c (local_cprop_pass): Handle cases where we make an
32866         unconditional trap.
32868 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
32870         PR target/61729
32871         PR target/77850
32872         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
32873         read from, for big endian.
32875 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
32877         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
32878         register pauth builtins for LP64 only.
32880 2017-01-20  Marek Polacek  <polacek@redhat.com>
32882         PR c/79152
32883         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
32884         non-case labels.
32886 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
32888         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
32889         of safelen status.
32890         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
32891         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
32892         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
32894 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32896         PR target/71270
32897         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
32898         in big-endian mode when they are not a single duplicated value.
32900 2017-01-20  Richard Biener  <rguenther@suse.de>
32902         * BASE-VER: Bump to 7.0.1.
32904 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
32906         * omp-low.c (omplow_simd_context): New struct.  Use it...
32907         (lower_rec_simd_input_clauses): ...here and...
32908         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
32909         references to idx, lane, max_vf, is_simt.
32911 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
32913         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
32914         mcpu=nps400.
32916 2017-01-20  Martin Jambor  <mjambor@suse.cz>
32918         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
32919         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
32920         gt-hsa-common.h.
32921         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
32922         (GTFILES): Rename hsa.c to hsa-common.c.
32923         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
32924         * hsa-dump.c: Likewise.
32925         * hsa-gen.c: Likewise.
32926         * hsa-regalloc.c: Likewise.
32927         * ipa-hsa.c: Likewise.
32928         * omp-expand.c: Likewise.
32929         * omp-low.c: Likewise.
32930         * toplev.c: Likewise.
32932 2017-01-20  Marek Polacek  <polacek@redhat.com>
32934         PR c/64279
32935         * doc/invoke.texi: Document -Wduplicated-branches.
32936         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
32937         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
32938         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
32939         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
32940         return 0 only when not OEP_LEXICOGRAPHIC.
32941         (fold_build_cleanup_point_expr): Use the expression
32942         location when building CLEANUP_POINT_EXPR.
32943         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
32944         * tree.c (add_expr): Handle error_mark_node.
32946 2017-01-20  Martin Liska  <mliska@suse.cz>
32948         PR lto/69188
32949         * tree-profile.c (init_ic_make_global_vars): Do not call
32950         finalize_decl.
32951         (gimple_init_gcov_profiler): Likewise.
32953 2017-01-20  Martin Liska  <mliska@suse.cz>
32955         PR ipa/71190
32956         * cgraph.h (maybe_create_reference): Remove argument and
32957         update comment.
32958         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
32959         argument.
32960         * ipa-cp.c (create_specialized_node): Likewise.
32961         * symtab.c (symtab_node::maybe_create_reference): Handle
32962         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
32964 2017-01-20  Martin Liska  <mliska@suse.cz>
32966         * read-rtl-function.c (function_reader::create_function): Use
32967         build_decl instread of build_decl_stat.
32969 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
32971         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
32972         * config/i386/avx512dqintrin.h: Ditto.
32973         * config/i386/avx512fintrin.h: Ditto.
32974         * config/i386/i386-builtin-types.def: Add new types.
32975         * config/i386/i386.c: Handle new types.
32976         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
32977         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
32978         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
32979         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
32980         (__builtin_ia32_kshiftridi): New.
32981         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
32983 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
32985         PR target/78875
32986         PR target/79140
32987         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
32988         define to rs6000_init_stack_protect_guard.
32989         (rs6000_init_stack_protect_guard): New function.
32991 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
32992             Yunqiang Su  <yunqiang.su@imgtec.com>
32994         * config.gcc (supported_defaults): Add madd4.
32995         (with_madd4): Add validation.
32996         (all_defaults): Add madd4.
32997         * config/mips/mips.opt (mmadd4): New option.
32998         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
32999         mmadd4.
33000         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
33001         __mips_no_madd4.
33002         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
33003         (ISA_HAS_FUSED_MADD4): Likewise.
33004         * doc/invoke.texi (-mmadd4): Document the new option.
33005         * doc/install.texi (--with-madd4): Document the new option.
33007 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
33009         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
33010         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
33011         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
33012         (aarch64_init_pauth_hint_builtins): New.
33013         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
33014         (aarch64_expand_builtin): Expand new builtins.
33016 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
33018         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
33019         * combine-stack-adj.c (no_unhandled_cfa): Handle
33020         REG_CFA_TOGGLE_RA_MANGLE.
33021         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
33022         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
33023         info for return address signing.
33024         (aarch64_expand_epilogue): Likewise.
33026 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
33028         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
33029         * config/aarch64/aarch64-protos.h
33030         (aarch64_return_address_signing_enabled): New declaration.
33031         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
33032         New function.
33033         (aarch64_expand_prologue): Sign return address before it's pushed onto
33034         stack.
33035         (aarch64_expand_epilogue): Authenticate return address fetched from
33036         stack.
33037         (aarch64_override_options): Sanity check for ILP32 and ISA level.
33038         (aarch64_attributes): New function attributes for "sign-return-address".
33039         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
33040         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
33041         ("*do_return"): Generate combined instructions according to key index.
33042         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
33043         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
33044         iterators.
33045         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
33046         * config/aarch64/aarch64.opt (msign-return-address=): New.
33047         * doc/extend.texi (AArch64 Function Attributes): Documents
33048         "sign-return-address=".
33049         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
33051 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
33053         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
33054         overall option summary.
33056 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
33058         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
33059         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
33060         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
33061         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
33063 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
33065         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
33066         -mpower9-minmax by default for -mcpu=power9.
33067         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
33068         128-bit floating point.
33070 2017-01-20  Alan Modra  <amodra@gmail.com>
33072         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
33073         optimizing for size.
33075 2017-01-20  Alan Modra  <amodra@gmail.com>
33077         PR target/79144
33078         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
33079         for strcmp and strncmp from corresponding builtin decl.
33081 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
33083         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
33084         instead of i386/rtems-64.h.
33085         * config/i386/rtems-64.h: Remove.
33087 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
33089         PR target/78478
33090         Revert:
33091         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
33093         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
33095 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
33097         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
33098         Change int to HOST_WIDE_INT.
33099         * config/aarch64/aarch64-protos.h
33100         (aarch64_simd_gen_const_vector_dup): Likewise.
33101         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
33103 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
33105         * langhooks-def.h (lhd_type_for_size): New decl.
33106         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
33107         * langhooks.c (lhd_type_for_size): New function, taken from
33108         lto_type_for_size.
33110 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
33112         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
33113         define_bypass for CR latency.
33114         (power9-cracked-alu): Update bypass latency and remove power9-branch.
33115         (power9-alu2): Add define_bypass for CR latency.
33116         (power9-cmp): New.
33117         (power9-mul): Update insn latency.
33118         (power9-mul-compare): Update insn latency, bypass latency and remove
33119         power9-branch.
33121 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33123         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
33124         Delete.
33125         * config/aarch64/aarch64.md
33126         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
33127         aarch64_nopcrelative_literal_loads.
33128         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
33130 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
33132         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
33133         TARGET_LOONGSON_3A.
33134         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
33136 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
33138         PR target/78176
33139         * config.gcc (supported_defaults): Add lxc1-sxc1.
33140         (with_lxc1_sxc1): Add validation.
33141         (all_defaults): Add lxc1-sxc1.
33142         * config/mips/mips.opt (mlxc1-sxc1): New option.
33143         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
33144         mlxc1-sxc1.
33145         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
33146         __mips_no_lxc1_sxc1.
33147         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
33148         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
33149         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
33151 2017-01-19  Richard Biener  <rguenther@suse.de>
33153         PR tree-optimization/72488
33154         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
33155         sure to restore SSA info.
33156         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
33158 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
33160         PR rtl-optimization/79121
33161         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
33162         of the inner type when shifting an extended value.
33164 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
33166         PR lto/78407
33167         * symtab.c (symtab_node::equal_address_to): Fix comparing of
33168         interposable aliases.
33170 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
33172         PR target/78516
33173         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
33174         Use the evmergelohi instruction.
33175         (mov_si<mode>_e500_subreg4_2_le): Likewise.
33176         (mov_sitf_e500_subreg8_2_be): Likewise.
33177         (mov_sitf_e500_subreg12_2_le): Likewise.
33178         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
33179         (mov_si<mode>_e500_subreg4_2_be): Likewise.
33180         (mov_sitf_e500_subreg8_2_le): Likewise.
33181         (mov_sitf_e500_subreg12_2_be): Likewise.
33183 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33185         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
33186         attribute from vecsimple to vecperm.
33187         (altivec_vbpermq2): Likewise.
33189 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33191         PR target/79040
33192         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
33194 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
33195         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
33196         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
33197         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
33198         case where N arg is SIZE_MAX.
33199         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
33200         (cmpstrsi): Add pattern.
33202 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
33204         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
33205         __builtin_vec_revb builtins.
33206         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
33207         built-in functions to support generation of the ISA 3.0 XXBR<x>
33208         vector byte reverse instructions.
33209         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
33210         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
33211         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
33212         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
33213         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
33214         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
33215         (P9V_BUILTIN_VEC_REVB): Likewise.
33216         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
33217         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
33218         (p9_xxbrq_v16qi): Likewise.
33219         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
33220         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
33221         (p9_xxbrh_v8hi): Likewise.
33222         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
33223         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
33224         vec_revb built-in functions.
33226 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
33228         PR rtl-optimization/78952
33229         * config/i386/i386.md (any_extract): New code iterator.
33230         (*insvqi_2): Use any_extract for source operand.
33231         (*insvqi_3): Use any_shiftrt for source operand.
33233 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
33235         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
33236         New function.
33237         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
33239 2017-01-18  Matthias Klose  <doko@ubuntu.com>
33241         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
33243 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33245         * config/rs6000/altivec.h (vec_bperm): Change #define.
33246         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
33247         (altivec_vbpermq2): New define_insn.
33248         (altivec_vbpermd): Likewise.
33249         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
33250         function interface.
33251         (VBPERMD): Likewise.
33252         (VBPERM): New polymorphic function interface.
33253         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
33254         Add entries for P9V_BUILTIN_VEC_VBPERM.
33255         * doc/extend.texi: Add interfaces for vec_bperm.
33257 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33259         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
33260         first letter of error messages.
33261         (s390_resolve_overloaded_builtin): Likewise.
33262         * config/s390/s390.c (s390_expand_builtin): Likewise.
33263         (s390_invalid_arg_for_unprototyped_fn): Likewise.
33264         (s390_valid_target_attribute_inner_p): Likewise.
33265         * config/s390/s390.md ("tabort"): Likewise.
33267 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
33269         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
33270         (ISA_AVOID_DIV_HILO): New macro.
33271         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
33272         (ISA_HAS_DDIV): Likewise.
33274 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
33276         * doc/invoke.texi (fabi-version): Correct number of occurrences.
33278 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
33280         * doc/invoke.texi (fabi-version): Spelling fix.
33282 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
33284         PR c++/70182
33285         * doc/invoke.texi (fabi-version): Mention mangling fix for
33286         operator names.
33288 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
33290         PR c++/77489
33291         * doc/invoke.texi (fabi-version): Document discriminator mangling.
33293 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
33295         PR target/78875
33296         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
33297         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
33298         the new options.
33299         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
33300         flexible settings.
33301         (stack_protect_test): Ditto.
33302         * config/rs6000/rs6000.opt (mstack-protector-guard=,
33303         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
33304         options.
33305         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
33306         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
33307         -mstack-protector-guard-offset=.
33308         (RS/6000 and PowerPC Options): Ditto.
33310 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
33312         * config/i386/i386.h (MASK_CLASS_P): New define.
33313         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
33314         there are no registers from different register sets also when
33315         mask registers are used.  Update function comment.
33316         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
33317         to (*k/*r) and (*k/*km) alternatives.
33319 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
33321         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
33322         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
33323         (EH_RETURN_HANDLER_RTX): New define.
33324         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
33325         Force frame pointer in EH return functions.
33326         (aarch64_expand_epilogue): Add barrier for eh_return.
33327         (aarch64_final_eh_return_addr): Remove.
33328         (aarch64_eh_return_handler_rtx): New function.
33329         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
33330         Remove.
33331         (aarch64_eh_return_handler_rtx): New prototype.
33333 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33335         * config/rs6000/altivec.h (vec_rlmi): New #define.
33336         (vec_vrlnm): Likewise.
33337         (vec_rlnm): Likewise.
33338         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
33339         (UNSPEC_VRLNM): Likewise.
33340         (VIlong): New mode iterator.
33341         (altivec_vrl<VI_char>mi): New define_insn.
33342         (altivec_vrl<VI_char>nm): Likewise.
33343         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
33344         function entry.
33345         (VRLDNM): Likewise.
33346         (RLNM): New polymorphic function entry.
33347         (VRLWMI): New monomorphic function entry.
33348         (VRLDMI): Likewise.
33349         (RLMI): New polymorphic function entry.
33350         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
33351         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
33352         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
33353         vec_vrlnm.
33355 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
33357         PR debug/78839
33358         * dwarf2out.c (field_byte_offset): Restore the
33359         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
33360         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
33361         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
33362         of build2 + fold.
33364 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
33366         PR ada/67205
33367         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
33369 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
33371         PR debug/71669
33372         * dwarf2out.c (add_data_member_location_attribute): For constant
33373         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
33374         instead of DW_AT_data_member_location, DW_AT_bit_offset and
33375         DW_AT_byte_size attributes.
33377 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
33379         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
33380         after forcing to constant memory when the code model is medium.
33382 2017-01-17  Julia Koval  <julia.koval@intel.com>
33384         PR target/76731
33385         * config/i386/avx512fintrin.h
33386         (_mm512_i32gather_ps): Change __addr type to void const*.
33387         (_mm512_mask_i32gather_ps): Ditto.
33388         (_mm512_i32gather_pd): Ditto.
33389         (_mm512_mask_i32gather_pd): Ditto.
33390         (_mm512_i64gather_ps): Ditto.
33391         (_mm512_mask_i64gather_ps): Ditto.
33392         (_mm512_i64gather_pd): Ditto.
33393         (_mm512_mask_i64gather_pd): Ditto.
33394         (_mm512_i32gather_epi32): Ditto.
33395         (_mm512_mask_i32gather_epi32): Ditto.
33396         (_mm512_i32gather_epi64): Ditto.
33397         (_mm512_mask_i32gather_epi64): Ditto.
33398         (_mm512_i64gather_epi32): Ditto.
33399         (_mm512_mask_i64gather_epi32): Ditto.
33400         (_mm512_i64gather_epi64): Ditto.
33401         (_mm512_mask_i64gather_epi64): Ditto.
33402         (_mm512_i32scatter_ps): Change __addr type to void*.
33403         (_mm512_mask_i32scatter_ps): Ditto.
33404         (_mm512_i32scatter_pd): Ditto.
33405         (_mm512_mask_i32scatter_pd): Ditto.
33406         (_mm512_i64scatter_ps): Ditto.
33407         (_mm512_mask_i64scatter_ps): Ditto.
33408         (_mm512_i64scatter_pd): Ditto.
33409         (_mm512_mask_i64scatter_pd): Ditto.
33410         (_mm512_i32scatter_epi32): Ditto.
33411         (_mm512_mask_i32scatter_epi32): Ditto.
33412         (_mm512_i32scatter_epi64): Ditto.
33413         (_mm512_mask_i32scatter_epi64): Ditto.
33414         (_mm512_i64scatter_epi32): Ditto.
33415         (_mm512_mask_i64scatter_epi32): Ditto.
33416         (_mm512_i64scatter_epi64): Ditto.
33417         (_mm512_mask_i64scatter_epi64): Ditto.
33418         * config/i386/avx512pfintrin.h
33419         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
33420         (_mm512_mask_prefetch_i32gather_ps): Ditto.
33421         (_mm512_mask_prefetch_i64gather_pd): Ditto.
33422         (_mm512_mask_prefetch_i64gather_ps): Ditto.
33423         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
33424         (_mm512_prefetch_i32scatter_ps): Ditto.
33425         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
33426         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
33427         (_mm512_prefetch_i64scatter_pd): Ditto.
33428         (_mm512_prefetch_i64scatter_ps): Ditto.
33429         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
33430         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
33431         * config/i386/avx512vlintrin.h
33432         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
33433         (_mm_mmask_i32gather_ps): Ditto.
33434         (_mm256_mmask_i32gather_pd): Ditto.
33435         (_mm_mmask_i32gather_pd): Ditto.
33436         (_mm256_mmask_i64gather_ps): Ditto.
33437         (_mm_mmask_i64gather_ps): Ditto.
33438         (_mm256_mmask_i64gather_pd): Ditto.
33439         (_mm_mmask_i64gather_pd): Ditto.
33440         (_mm256_mmask_i32gather_epi32): Ditto.
33441         (_mm_mmask_i32gather_epi32): Ditto.
33442         (_mm256_mmask_i32gather_epi64): Ditto.
33443         (_mm_mmask_i32gather_epi64): Ditto.
33444         (_mm256_mmask_i64gather_epi32): Ditto.
33445         (_mm_mmask_i64gather_epi32): Ditto.
33446         (_mm256_mmask_i64gather_epi64): Ditto.
33447         (_mm_mmask_i64gather_epi64): Ditto.
33448         (_mm256_i32scatter_ps): Change __addr type to void*.
33449         (_mm256_mask_i32scatter_ps): Ditto.
33450         (_mm_i32scatter_ps): Ditto.
33451         (_mm_mask_i32scatter_ps): Ditto.
33452         (_mm256_i32scatter_pd): Ditto.
33453         (_mm256_mask_i32scatter_pd): Ditto.
33454         (_mm_i32scatter_pd): Ditto.
33455         (_mm_mask_i32scatter_pd): Ditto.
33456         (_mm256_i64scatter_ps): Ditto.
33457         (_mm256_mask_i64scatter_ps): Ditto.
33458         (_mm_i64scatter_ps): Ditto.
33459         (_mm_mask_i64scatter_ps): Ditto.
33460         (_mm256_i64scatter_pd): Ditto.
33461         (_mm256_mask_i64scatter_pd): Ditto.
33462         (_mm_i64scatter_pd): Ditto.
33463         (_mm_mask_i64scatter_pd): Ditto.
33464         (_mm256_i32scatter_epi32): Ditto.
33465         (_mm256_mask_i32scatter_epi32): Ditto.
33466         (_mm_i32scatter_epi32): Ditto.
33467         (_mm_mask_i32scatter_epi32): Ditto.
33468         (_mm256_i32scatter_epi64): Ditto.
33469         (_mm256_mask_i32scatter_epi64): Ditto.
33470         (_mm_i32scatter_epi64): Ditto.
33471         (_mm_mask_i32scatter_epi64): Ditto.
33472         (_mm256_i64scatter_epi32): Ditto.
33473         (_mm256_mask_i64scatter_epi32): Ditto.
33474         (_mm_i64scatter_epi32): Ditto.
33475         (_mm_mask_i64scatter_epi32): Ditto.
33476         (_mm256_i64scatter_epi64): Ditto.
33477         (_mm256_mask_i64scatter_epi64): Ditto.
33478         (_mm_i64scatter_epi64): Ditto.
33479         (_mm_mask_i64scatter_epi64): Ditto.
33480         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
33481         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
33482         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
33483         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
33484         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
33485         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
33486         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
33487         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
33488         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
33489         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
33490         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
33491         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
33492         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
33493         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
33494         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
33495         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
33496         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
33497         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
33498         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
33499         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
33500         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
33501         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
33502         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
33503         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
33504         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
33505         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
33506         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
33507         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
33508         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
33509         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
33510         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
33511         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
33512         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
33513         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
33514         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
33515         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
33516         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
33517         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
33518         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
33519         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
33520         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
33521         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
33522         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
33523         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
33524         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
33525         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
33526         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
33527         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
33528         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
33529         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
33530         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
33531         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
33532         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
33533         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
33534         definitions accordingly.
33536 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
33537             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
33539         PR target/79079
33540         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
33541         gen_lowpart.
33543 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
33545         PR target/79058
33546         * ira-conflicts.c (ira_build_conflicts): Update total conflict
33547         hard regs for inner regno.
33549 2017-01-17  Martin Liska  <mliska@suse.cz>
33551         PR ipa/71207
33552         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
33553         assumption and add comment.
33555 2017-01-17  Nathan Sidwell  <nathan@acm.org>
33557         * ipa-visibility.c (localize_node): New function, broken out of ...
33558         (function_and_variable_visibility): ... here. Call it.
33560 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
33562         PR middle-end/77445
33563         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
33564         correctly set frequency of oudgoing edge.
33565         (duplicate_thread_path): Fix profile updating.
33567 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
33569         PR other/79046
33570         * configure.ac: Add GCC_BASE_VER.
33571         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
33572         version from BASE-VER file.
33573         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
33574         (gcc.o): Depend on $(BASEVER).
33575         * common.opt (dumpfullversion): New option.
33576         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
33577         * doc/invoke.texi: Document -dumpfullversion.
33578         * doc/install.texi: Document --with-gcc-major-version-only.
33579         * configure: Regenerated.
33581 2017-01-17  Richard Biener  <rguenther@suse.de>
33583         PR tree-optimization/71433
33584         * tree-vrp.c (register_new_assert_for): Merge same asserts
33585         on all incoming edges.
33586         (process_assert_insertions_for): Handle insertions at the
33587         beginning of BBs.
33589 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
33591         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
33592         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
33594 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
33596         PR target/78633
33597         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
33598         RTL sharing.
33600 2017-01-17  Alan Modra  <amodra@gmail.com>
33602         PR target/79066
33603         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
33604         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
33605         symbolic stack limit when pic.
33607 2017-01-16  Martin Sebor  <msebor@redhat.com>
33609         PR tree-optimization/78608
33610         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
33612 2017-01-16  Jeff Law  <law@redhat.com>
33614         Revert:
33615         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
33616         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
33617         for several include directories that may be relative to sysroot.
33618         * config/i386/x-mingw32 (gplus_includedir): Define.
33619         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
33620         (native_system_includedir): Likewise.
33621         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
33622         override if TARGET_SYSTEM_ROOT is defined.
33623         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
33625         PR tree-optimization/79090
33626         PR tree-optimization/33562
33627         PR tree-optimization/61912
33628         PR tree-optimization/77485
33629         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
33630         and computed trims into the dump file.
33632 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
33634         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
33636 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
33638         PR c/79089
33639         * gimplify.c (gimplify_init_constructor): If want_value and
33640         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
33641         fix.
33643         PR target/79080
33644         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
33645         sequence.  Formatting fixes.
33646         (doloop_optimize): Formatting fixes.
33648         PR driver/49726
33649         * gcc.c (debug_level_greater_than_spec_func): New function.
33650         (static_spec_functions): Add debug-level-gt spec function.
33651         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
33652         !g0.
33653         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
33654         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
33655         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
33656         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
33657         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
33658         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
33660 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
33662         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
33663         QImode fixups to general and mask registers only.
33665 2017-01-16  Carl Love  <cel@us.ibm.com>
33667         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
33668         for built-in functions
33669         vector signed char vec_nabs (vector signed char)
33670         vector signed short vec_nabs (vector signed short)
33671         vector signed int vec_nabs (vector signed int)
33672         vector signed long long vec_nabs (vector signed long long)
33673         vector float vec_nabs (vector float)
33674         vector double vec_nabs (vector double)
33675         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
33676         and NABS overload.
33677         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
33678         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
33679         * doc/extend.texi: Update the documentation file for the new built-in
33680         functions.
33682 2017-01-16  Martin Sebor  <msebor@redhat.com>
33684         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
33685         message.
33687 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33689         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
33690         UNSPEC_VSX__XXSPLTD to require special splat handling.
33692 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
33694         PR bootstrap/78616
33695         * system.h: Poison strndup.
33697 2017-01-16  Alan Modra  <amodra@gmail.com>
33699         PR target/79098
33700         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
33701         use a switch.
33703 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
33705         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
33707 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
33709         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
33710         call recog here.  Assert that INSN_CODE (insn) is non-negative.
33712 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
33714         PR target/72749
33715         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
33716         fallthrough.
33717         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
33718         in the currently scheduled RTL fragment.
33720 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
33722         PR rtl-optimization/78751
33723         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
33724         give up.
33726 2017-01-14  Jeff Law  <law@redhat.com>
33728         PR tree-optimization/79090
33729         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
33730         variable length stores.
33731         (compute_trims): Delete dead assignment to *trim_tail.
33732         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
33733         zero length.
33735 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
33737         PR rtl-optimization/78626
33738         PR rtl-optimization/78727
33739         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
33740         of a block, and split such blocks after everything else is finished.
33742 2017-01-14  Alan Modra  <amodra@gmail.com>
33744         PR target/72749
33745         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
33746         target legitimate_combined_insn.
33747         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
33748         (rs6000_legitimate_combined_insn): New function.
33749         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
33750         all uses.
33751         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
33752         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
33753         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
33755 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
33757         * doc/frontends.texi (G++ and GCC): Remove references to Java.
33759 2017-01-13  Jeff Law  <law@redhat.com>
33761         PR tree-optimization/33562
33762         PR tree-optimization/61912
33763         PR tree-optimization/77485
33764         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
33765         a statement.
33766         (delete_dead_assignment): Likewise.
33767         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
33768         statement to delete_dead_call and delete_dead_assignment.
33770 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
33772         PR c/78304
33773         * substring-locations.c (format_warning_va): Strengthen case 1 so
33774         that both endpoints of the substring must be within the format
33775         range for just the substring to be printed.
33777 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
33779         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
33780         * config/i386/i386.c (ix86_target_string): Add missing options
33781         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
33782         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
33783         flags_other and ix86_target_other to flags2_other.  Display unknown
33784         isa2 options.
33785         (ix86_valid_target_attribute_inner_p): Add missing options and
33786         reorder options by implied ISAs, as in ix86_target_string.
33788 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
33790         * hash-table.h (hash_table::too_empty_p): New function.
33791         (hash_table::expand): Use it.
33792         (hash_table::traverse): Likewise.
33793         (hash_table::empty_slot): Use sizeof (value_type) instead of
33794         sizeof (PTR) to convert bytes to elements.  Shrink the table
33795         if the current size is excessive for the current number of
33796         elements.
33798 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
33800         * ira-costs.c (record_reg_classes): Break from the inner loop
33801         early once alt_fail is known to be true.  Update outer loop
33802         handling accordingly.
33804 2017-01-13  Jeff Law  <law@redhat.com>
33806         * tree-ssa-dse.c (decrement_count): New function.
33807         (increment_start_addr, maybe_trim_memstar_call): Likewise.
33808         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
33809         when we know the partially dead statement is a mem* function.
33811         PR tree-optimization/61912
33812         PR tree-optimization/77485
33813         * tree-ssa-dse.c: Include expr.h.
33814         (maybe_trim_constructor_store): New function.
33815         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
33817         PR tree-optimization/33562
33818         PR tree-optimization/61912
33819         PR tree-optimization/77485
33820         * doc/invoke.texi: Document new dse-max-object-size param.
33821         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
33822         * tree-ssa-dse.c: Include params.h.
33823         (dse_store_status): New enum.
33824         (initialize_ao_ref_for_dse): New, partially extracted from
33825         dse_optimize_stmt.
33826         (valid_ao_ref_for_dse, normalize_ref): New.
33827         (setup_live_bytes_from_ref, compute_trims): Likewise.
33828         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
33829         (maybe_trim_partially_dead_store): Likewise.
33830         (maybe_trim_complex_store): Likewise.
33831         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
33832         Track what bytes live from the original store.  Return tri-state
33833         for dead, partially dead or live.
33834         (dse_dom_walker): Add constructor, destructor and new private members.
33835         (delete_dead_call, delete_dead_assignment): New extracted from
33836         dse_optimize_stmt.
33837         (dse_optimize_stmt): Make a member of dse_dom_walker.
33838         Use initialize_ao_ref_for_dse.
33840         PR tree-optimization/33562
33841         PR tree-optimization/61912
33842         PR tree-optimization/77485
33843         * sbitmap.h (bitmap_count_bits): Prototype.
33844         (bitmap_clear_range, bitmap_set_range): Likewise.
33845         * sbitmap.c (bitmap_clear_range): New function.
33846         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
33848 2017-01-13  Martin Liska  <mliska@suse.cz>
33850         PR ipa/79043
33851         * function.c (set_cfun): Add new argument force.
33852         * function.h (set_cfun): Likewise.
33853         * ipa-inline-transform.c (inline_call): Use the function when
33854         strict alising from is dropped for function we inline to.
33856 2017-01-13  Richard Biener  <rguenther@suse.de>
33858         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
33859         for dumping GIMPLE INTEGER_CSTs.
33861 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33863         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
33864         to 201112L since C++17.
33866 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
33868         PR sanitizer/78887
33869         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
33870         if -fsanitize=kernel-address is present.
33872 2017-01-13  Richard Biener  <rguenther@suse.de>
33874         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
33875         as _Literal ( type ) number in case usual suffixes do not
33876         preserve all information.
33878 2017-01-13  Richard Biener  <rguenther@suse.de>
33880         PR tree-optimization/77283
33881         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
33882         and ssa-iterators.h.
33883         (is_feasible_trace): Implement a cost model based on joiner
33884         PHI node uses.
33886 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
33888         PR target/79004
33889         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
33890         char or short to __float128/_Float128 directly.
33892 2017-01-12  Martin Sebor  <msebor@redhat.com>
33894         to -Wformat-overflow.
33895         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
33896         (min_bytes_remaining): Same.
33897         (get_string_length): Same.
33898         (format_string): Same.
33899         (format_directive): Same.
33900         (add_bytes): Same.
33901         (pass_sprintf_length::handle_gimple_call): Same.
33903 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
33905         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
33906         info.nowrite calls with no lhs that can't throw.  Return bool
33907         whether gsi_remove has been called or not.
33908         (pass_sprintf_length::handle_gimple_call): Return bool whether
33909         try_substitute_return_value called gsi_remove.  Formatting fix.
33910         (pass_sprintf_length::execute): Don't use gsi_remove if
33911         handle_gimple_call returned true.
33913         PR bootstrap/79069
33914         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
33915         be removed due to side-effects, don't remove following barrier nor
33916         turn the successor edge into fallthru edge.
33918 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33920         PR target/79044
33921         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
33922         element-reversing loads and stores as not swappable.
33924 2017-01-12  Nathan Sidwell  <nathan@acm.org>
33925             Nicolai Stange  <nicstange@gmail.com>
33927         * combine.c (try_combine): Don't ignore result of overlap checking
33928         loop.  Combine overlap & asm check into single loop.
33930 2017-01-12  Richard Biener  <rguenther@suse.de>
33932         * tree-pretty-print.c (dump_generic_node): Provide -gimple
33933         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
33935 2017-01-12  Richard Biener  <rguenther@suse.de>
33937         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
33938         and TS_TARGET_OPTION directly derive from TS_BASE.
33939         * tree-core.h (tree_optimization_option): Derive from tree_base.
33940         (tree_target_option): Likewise.
33942 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
33944         * config/i386/i386.c (memory_address_length): Increase len
33945         only when rip_relative_addr_p returns false.
33947 2017-01-11  Julia Koval  <julia.koval@intel.com>
33949         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
33950         (OPTION_MASK_ISA_SGX_SET): New.
33951         (ix86_handle_option): Handle OPT_msgx.
33952         * config.gcc: Added sgxintrin.h.
33953         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
33954         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
33955         * config/i386/i386.c (ix86_target_string): Add -msgx.
33956         (PTA_SGX): New.
33957         (ix86_option_override_internal): Handle new options.
33958         (ix86_valid_target_attribute_inner_p): Add sgx.
33959         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
33960         * config/i386/i386.opt: Add msgx.
33961         * config/i386/sgxintrin.h: New file.
33962         * config/i386/x86intrin.h: Add sgxintrin.h.
33964 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
33966         PR c++/71537
33967         * fold-const.c (maybe_nonzero_address): Return 1 for function
33968         local objects.
33969         (tree_single_nonzero_warnv_p): Don't handle function local objects
33970         here.
33972         PR c++/72813
33973         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
33974         of c-header.
33976 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
33978         PR driver/78877
33979         * opts.c: Include "spellcheck.h"
33980         (struct string_fragment): New struct.
33981         (struct edit_distance_traits<const string_fragment &>): New
33982         struct.
33983         (get_closest_sanitizer_option): New function.
33984         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
33986 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
33988         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
33989         by 12.
33990         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
33991         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
33992         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
33993         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
33994         for initial die_offset if dwarf_split_debug_info.
33995         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
33996         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
33997         fields.
33998         (output_skeleton_debug_sections): Formatting fix.  Use
33999         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
34000         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
34002 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
34004         * config/arm/cortex-a53.md: Add bypasses for
34005         cortex_a53_r2f_cvt.
34006         (cortex_a53_r2f): Only use for transfers.
34007         (cortex_a53_f2r): Likewise.
34008         (cortex_a53_r2f_cvt): Add reservation for conversions.
34009         (cortex_a53_f2r_cvt): Likewise.
34011 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
34013         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
34014         to all inlined functions, change static to extern.
34016 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
34018         PR target/78253
34019         * config/arm/arm.c (legitimize_pic_address): Handle reference to
34020         weak symbol.
34021         (arm_assemble_integer): Likewise.
34023 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
34025         * config.gcc: Use new awk script to check CPU, FPU and architecture
34026         parameters for --with-... options.
34027         * config/arm/parsecpu.awk: New file
34028         * config/arm/arm-cpus.in: New file.
34029         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
34030         files.
34031         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
34032         files.
34033         * config/arm/t-arm: Update dependency rules.
34034         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
34035         of processing .def files.
34036         * config/arm/genopt.sh: Deleted.
34037         * config/arm/gentune.sh: Deleted.
34038         * config/arm/arm-cores.def: Deleted.
34039         * config/arm/arm-arches.def: Deleted.
34040         * config/arm/arm-fpus.def: Deleted.
34041         * config/arm/arm-tune.md: Regenerated.
34042         * config/arm/arm-tables.opt: Regenerated.
34043         * config/arm/arm-cpu.h: New generated file.
34044         * config/arm/arm-cpu-data.h: New generated file.
34045         * config/arm/arm-cpu-cdata.h: New generated file.
34047 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
34049         PR lto/79042
34050         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
34051         bit.
34052         (input_varpool_node): Unpack dynamically_initialized bit.
34054 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
34056         PR rtl-optimization/79032
34057         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
34058         the alignment of the adjusted memory reference against that of MODE,
34059         instead of the alignment of the original memory reference.
34061 2017-01-11  Martin Jambor  <mjambor@suse.cz>
34063         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
34064         test.
34065         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
34066         decorated functions.
34068 2017-01-11  Richard Biener  <rguenther@suse.de>
34070         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
34071         set range/nonnull info for PHI results.  Do not set it on
34072         stmts marked for removal.
34074 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
34076         * expr.c (store_field): In the bitfield case, fetch the return value
34077         from the registers before applying a single big-endian adjustment.
34078         Always do a final load for a BLKmode value not larger than a word.
34080 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
34082         PR c++/77949
34083         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
34084         that we correctly handle column numbers greater than
34085         LINE_MAP_MAX_COLUMN_NUMBER.
34087 2017-01-10  Martin Sebor  <msebor@redhat.com>
34089         PR middle-end/78245
34090         * gimple-ssa-sprintf.c (get_destination_size): Call
34091         {init,fini}object_sizes.
34092         * tree-object-size.c (addr_object_size): Adjust.
34093         (pass_through_call): Adjust.
34094         (pass_object_sizes::execute): Adjust.
34095         * tree-object-size.h (fini_object_sizes): Declare.
34097 2017-01-10  Martin Sebor  <msebor@redhat.com>
34099         PR tree-optimization/78775
34100         * builtins.c (get_size_range): Move...
34101         * calls.c: ...to here.
34102         (alloc_max_size): Accept zero argument.
34103         (operand_signed_p): Remove.
34104         (maybe_warn_alloc_args_overflow): Call get_size_range.
34105         * calls.h (get_size_range): Declare.
34107 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
34109         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
34110         from TI's devices.csv file as of September 2016.
34111         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
34113 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
34115         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
34116         * doc/invoke.texi: Likewise.
34117         * doc/md.texi: Likewise.
34118         * doc/objc.texi: Likewise.
34120 2017-01-10  Joshua Conner  <joshconner@google.com>
34122         * config/arm/fuchsia-elf.h: New file.
34123         * config/fuchsia.h: New file.
34124         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
34125         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
34126         targets.
34127         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
34129 2016-01-10  Richard Biener  <rguenther@suse.de>
34131         PR tree-optimization/79034
34132         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
34133         Propagate out degenerate PHIs in the joiner.
34135 2017-01-10  Martin Liska  <mliska@suse.cz>
34137         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
34138         (sort_congruence_classes_by_decl_uid): Likewise.
34139         (sort_congruence_class_groups_by_decl_uid): Likewise.
34140         (sem_item_optimizer::merge_classes): Sort class, groups in these
34141         classes and members in the groups by DECL_UID of declarations.
34142         This would make merge operations stable.
34144 2017-01-10  Martin Liska  <mliska@suse.cz>
34146         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
34147         usage of m_classes_vec.
34148         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
34149         (sem_item_optimizer::get_group_by_hash): Likewise.
34150         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
34151         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
34152         (sem_item_optimizer::verify_classes): Likewise.
34153         (sem_item_optimizer::process_cong_reduction): Likewise.
34154         (sem_item_optimizer::dump_cong_classes): Likewise.
34155         (sem_item_optimizer::merge_classes): Likewise.
34156         * ipa-icf.h (congruence_class_hash): Rename from
34157         congruence_class_group_hash.  Remove declaration of m_classes_vec.
34159 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
34161         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
34162         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
34163         * config.gcc: Add avx512vpopcntdqintrin.h.
34164         * config/i386/avx512vpopcntdqintrin.h: New.
34165         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
34166         * config/i386/i386-builtin-types.def: Add new types.
34167         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
34168         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
34169         __builtin_ia32_vpopcountq_v8di_mask): New.
34170         * config/i386/i386-c.c (ix86_target_macros_internal): Define
34171         __AVX512VPOPCNTDQ__.
34172         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
34173         (PTA_AVX512VPOPCNTDQ): Define.
34174         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
34175         TARGET_AVX512VPOPCNTDQ_P): Define.
34176         * config/i386/i386.opt: Add mavx512vpopcntdq.
34177         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
34178         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
34180 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
34182         PR middle-end/77484
34183         * predict.def (PRED_CALL): Set to 67.
34185 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
34187         * expr.c (store_field): In the bitfield case, if the value comes from
34188         a function call and is of an aggregate type returned in registers, do
34189         not modify the field mode; extract the value in all cases if the mode
34190         is BLKmode and the size is not larger than a word.
34192 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
34194         PR target/71017
34195         * config/i386/cpuid.h: Fix undefined behavior.
34197 2017-01-04  Jeff Law  <law@redhat.com>
34199         PR tree-optimization/79007
34200         PR tree-optimization/67955
34201         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
34202         conservative for pt.null when flag_non_call_exceptions is on.
34204 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
34206         PR translation/79019
34207         PR translation/79020
34208         * params.def (PARAM_INLINE_MIN_SPEEDUP,
34209         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
34210         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
34211         in descriptions.
34212         * config/avr/avr.opt (maccumulate-args): Likewise.
34213         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
34214         * common.opt (freport-bug): Likewise.
34215         * cif-code.def (CIF_FINAL_ERROR): Likewise.
34216         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
34217         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
34218         translatable string.
34219         * config/i386/i386.c (function_value_32): Likewise.
34220         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
34221         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
34222         Likewise.
34223         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
34224         * common/config/msp430/msp430-common.c (msp430_handle_option):
34225         Likewise.
34226         * symtab.c (symtab_node::verify_base): Likewise.
34227         * opts.c (set_debug_level): Likewise.
34228         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
34229         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
34230         missing whitespace to translatable strings.
34231         * config/avr/avr.md (bswapsi2): Fix typo in comment.
34232         * config/sh/superh.h: Likewise.
34233         * config/i386/xopintrin.h: Likewise.
34234         * config/i386/znver1.md: Likewise.
34235         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
34236         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
34237         * double-int.h (struct double_int): Likewise.
34238         * double-int.c (div_and_round_double): Likewise.
34239         * wide-int.cc: Likewise.
34240         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
34241         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
34242         * cfgcleanup.c (crossjumps_occured): Renamed to ...
34243         (crossjumps_occurred): ... this.
34244         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
34245         Adjust all uses.
34247         PR tree-optimization/78899
34248         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
34249         returning bool return struct loop *, NULL for failure and the new
34250         loop on success.
34251         (versionable_outer_loop_p): Don't version outer loop if it has
34252         dont_vectorized bit set.
34253         (tree_if_conversion): When versioning outer loop, ensure
34254         tree_if_conversion is performed also on the inner loop of the
34255         non-vectorizable outer loop copy.
34256         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
34257         LOOP_VECTORIZED in inner loop of the scalar outer loop and
34258         prevent vectorization of it.
34259         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
34260         the outer loop vectorization of the non-scalar version is attempted
34261         before vectorization of the inner loop in scalar version.  If
34262         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
34263         vectorization of its inner loop.
34264         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
34265         has 2 inner loops, rename also on edges from bb whose single pred
34266         is outer_loop->header.  Fix typo in function comment.
34268 2017-01-09  Martin Sebor  <msebor@redhat.com>
34270         PR bootstrap/79033
34271         * asan.c (asan_emit_stack_protection): Increase local buffer size
34272         to avoid snprintf truncation warning.
34274 2017-01-09  Andrew Pinski  <apinski@cavium.com>
34276         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
34277         to reference thunderx2t99 for the tuning structure
34278         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
34279         Rename to ...
34280         (thunderx2t99_extra_costs): This.
34281         * config/aarch64/aarch64-tune.md: Regenerate.
34282         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
34283         (vulcan_addrcost_table): This.
34284         (vulcan_regmove_cost): Rename to ...
34285         (thunderx2t99_regmove_cost): This.
34286         (vulcan_vector_cost): Rename to ...
34287         (thunderx2t99_vector_cost): this.
34288         (vulcan_branch_cost): Rename to ...
34289         (thunderx2t99_branch_cost): This.
34290         (vulcan_tunings): Rename to ...
34291         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
34292         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
34294 2017-01-09  Martin Jambor  <mjambor@suse.cz>
34296         PR ipa/78365
34297         PR ipa/78599
34298         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
34299         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
34300         (propagate_vr_accross_jump_function): Use the above function for all
34301         value range computations for pass-through jump functions and type
34302         converasion from explicit value range values.
34303         (ipcp_propagate_stage): Do not attempt to deduce types of formal
34304         parameters from TYPE_ARG_TYPES.
34305         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
34306         (ipa_write_node_info): Stream type of the actual argument.
34307         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
34309 2017-01-09  Martin Liska  <mliska@suse.cz>
34311         PR pch/78970
34312         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
34313         (lookup_compiler): Do not show error message with have_E.
34315 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
34317         PR tree-optimization/78938
34318         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
34319         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
34320         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
34321         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
34322         fixes.
34324 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34326         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
34327         is const0_rtx.
34329 2017-01-09  Richard Biener  <rguenther@suse.de>
34331         PR tree-optimization/78997
34332         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
34333         name condition properly.
34335 2017-01-09  Richard Biener  <rguenther@suse.de>
34337         PR debug/79000
34338         * dwarf2out.c (is_cxx): New overload with context.
34339         (is_naming_typedef_decl): Use it.
34341 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
34343         * invoke.texi (Option Summary): Correct spacing in option lists
34344         and add line breaks to fix over-long lines.
34346 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
34348         PR middle-end/17660
34350         * extend.texi (Common Variable Attributes): Add xref to GCC
34351         Internals manual to explain mode attribute keywords.
34353 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
34355         PR other/16519
34356         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
34357         and Preprocessor Options.
34358         (Options for Linking): Document -pthread here....
34359         (RS/6000 and PowerPC Options): ...not here.
34360         (Solaris 2 Options): ...or here.
34361         * doc/cppopts.texi: Document -pthread.
34363 2017-01-08  Martin Sebor  <msebor@redhat.com>
34365         PR middle-end/77708
34366         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
34367         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
34368         New member functions.
34369         (format_directive): Used them.
34370         (add_bytes): Same.
34371         (pass_sprintf_length::handle_gimple_call): Same.
34372         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
34373         to avoid truncation for any argument.
34374         (extract_affine_mul): Same.
34375         * tree.c (get_file_function_name): Same.
34377 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
34379         PR middle-end/77484
34380         * predict.def (PRED_INDIR_CALL): Set to 86.
34382 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
34384         PR preprocessor/54124
34385         * doc/cppopts.texi: Reformat -d subtable to list the full name
34386         of the options.  Add cross-reference to the docs for the general
34387         compiler -d options.
34388         * doc/invoke.texi (Developer Options): Add cross-reference to the
34389         preprocessor-specific -d option documentation.
34391 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
34393         PR preprocessor/13498
34394         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
34395         redudant material, and reflect new command-line options.
34396         (System Headers): Likewise.
34398 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
34400         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
34401         -isystem, and -idirafter.  Copy-edit.
34402         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
34403         default for -ftrack-macro-expansion.  Delete obsolete and
34404         badly-formatted implementation details about -fdebug-cpp output.
34405         * doc/cppwarnopts.texi: Copy-edit.
34407 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
34409         PR c++/72803
34410         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
34411         that the transition from a max line width >= 1<<10 to narrower
34412         lines works correctly.
34414 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
34416         * doc/options.texi (PerFunction): New.
34417         * opt-functions.awk (switch_flags): Map both Optimization and
34418         PerFunction to CL_OPTIMIZATION.
34419         * opth-gen.awk: Test for PerFunction flag along with
34420         Optimization.
34421         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
34422         it only when the latter is present.  Skip those that don't in
34423         the hash function generator.
34424         * common.opt (fvar-tracking): Mark as PerFunction instead of
34425         Optimization.
34426         (fvar-tracking-assignments): Likewise.
34427         (fvar-tracking-assignments-toggle): Likewise.
34428         (fvar-tracking-uninit): Likewise.
34430 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
34432         PR translation/79018
34433         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
34434         the and store.
34436 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
34438         PR target/57583
34439         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
34440         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
34441         TARGET_LONG_JUMP_TABLE_OFFSETS.
34442         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
34443         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
34444         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
34445         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
34446         * config/m68k/m68k.md (tablejump expander): Likewise.
34447         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
34448         TARGET_LONG_JUMP_TABLE_OFFSETS.
34449         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
34450         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
34452 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
34453             David Holsgrove <david.holsgrove@xilinx.com>
34455         * common/config/microblaze/microblaze-common.c
34456         (TARGET_EXCEPT_UNWIND_INFO): Remove.
34457         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
34458         New prototype.
34459         * config/microblaze/microblaze.c (microblaze_must_save_register)
34460         (microblaze_expand_epilogue, microblaze_return_addr): Handle
34461         calls_eh_return.
34462         (microblaze_eh_return): New function.
34463         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
34464         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
34465         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
34466         * config/microblaze/microblaze.md (eh_return): New pattern.
34468 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
34470         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
34471         GCC_DIAGNOSTIC_STRINGIFY): Define.
34473         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
34475 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
34477         * config/arm/arm.md (<mcrr>): New.
34478         (<mrrc>): New.
34479         * config/arm/arm.c (arm_arch5te): New.
34480         (arm_option_override): Set arm_arch5te.
34481         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
34482         and mrrc2.
34483         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
34484         (arm_mcrr_qualifiers): ... this. New.
34485         (MRRC_QUALIFIERS): Define to...
34486         (arm_mrrc_qualifiers): ... this. New.
34487         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
34488         __arm_mrrc2): New.
34489         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
34490         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
34491         (MRRCI, mrrc, MRRC): New.
34492         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
34493         VUNSPEC_MRRC2): New.
34495 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
34497         * config/arm/arm.md (<mcr>): New.
34498         (<mrc>): New.
34499         * config/arm/arm.c (arm_coproc_builtin_available): Add
34500         support for mcr, mrc, mcr2 and mrc2.
34501         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
34502         (arm_mcr_qualifiers): ... this. New.
34503         (MRC_QUALIFIERS): Define to ...
34504         (arm_mrc_qualifiers): ... this. New.
34505         (MCR_QUALIFIERS): Define to ...
34506         (arm_mcr_qualifiers): ... this. New.
34507         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
34508         __arm_mrc2): New.
34509         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
34510         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
34511         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
34512         VUNSPEC_MRC2): New.
34514 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
34516         * config/arm/arm.md (*ldc): New.
34517         (*stc): New.
34518         (<ldc>): New.
34519         (<stc>): New.
34520         * config/arm/arm.c (arm_coproc_builtin_available): Add
34521         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
34522         (arm_coproc_ldc_stc_legitimate_address): New.
34523         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
34524         'qualifier_const_pointer'.
34525         (LDC_QUALIFIERS): Define to...
34526         (arm_ldc_qualifiers): ... this. New.
34527         (STC_QUALIFIERS): Define to...
34528         (arm_stc_qualifiers): ... this. New.
34529         * config/arm/arm-protos.h
34530         (arm_coproc_ldc_stc_legitimate_address): New.
34531         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
34532         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
34533         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
34534         stc2, stcl, stc2l): New.
34535         * config/arm/constraints.md (Uz): New.
34536         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
34537         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
34538         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
34539         VUNSPEC_STC2L): New.
34541 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
34543         * config/arm/arm.md (<cdp>): New.
34544         * config/arm/arm.c (neon_const_bounds): Rename this ...
34545         (arm_const_bounds): ... this.
34546         (arm_coproc_builtin_available): New.
34547         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
34548         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
34549         (CDP_QUALIFIERS): Define to...
34550         (arm_cdp_qualifiers): ... this. New.
34551         (void_UP): Define.
34552         (arm_expand_builtin_args): Add case for 6 arguments.
34553         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
34554         (arm_const_bounds): ... this.
34555         (arm_coproc_builtin_available): New.
34556         * config/arm/arm_acle.h (__arm_cdp): New.
34557         (__arm_cdp2): New.
34558         * config/arm/arm_acle_builtins.def (cdp): New.
34559         (cdp2): New.
34560         * config/arm/iterators.md (CDPI,CDP,cdp): New.
34561         * config/arm/neon.md: Rename all 'neon_const_bounds' to
34562         'arm_const_bounds'.
34563         * config/arm/types.md (coproc): New.
34564         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
34565         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
34566         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
34567         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
34569 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
34571         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
34572         (UBINOP_QUALIFIERS): New.
34573         (si_UP): Define.
34574         (acle_builtin_data): New. Change comment.
34575         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
34576         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
34577         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
34578         arm_acle_builtins.def.
34579         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
34580         (arm_init_acle_builtins): New.
34581         (CRC32_BUILTIN): Remove.
34582         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
34583         crc32cb, crc32ch and crc32cw.
34584         (arm_init_crc32_builtins): Remove.
34585         (arm_init_builtins): Use arm_init_acle_builtins rather
34586         than arm_init_crc32_builtins.
34587         (arm_expand_acle_builtin): New.
34588         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
34589         * config/arm/arm_acle_builtins.def: New.
34591 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
34593         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
34594         (arm_builtin_datum): ... this.
34595         (arm_init_neon_builtin): Rename to ...
34596         (arm_init_builtin): ... this. Add a new parameters PREFIX
34597         and USE_SIG_IN_NAME.
34598         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
34599         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
34600         'arm_builtin_datum'.
34601         (arm_init_vfp_builtins): Likewise.
34602         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
34603         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
34604         (arm_expand_neon_args): Rename to ...
34605         (arm_expand_builtin_args): ... this. Rename builtin_arg
34606         enum values and differentiate between ARG_BUILTIN_MEMORY
34607         and ARG_BUILTIN_NEON_MEMORY.
34608         (arm_expand_neon_builtin_1): Rename to ...
34609         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
34610         values, arm_expand_builtin_args and add bool parameter NEON.
34611         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
34612         (arm_expand_vfp_builtin): Likewise.
34613         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
34615 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
34617         PR middle-end/77484
34618         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
34619         * predict.c (tree_estimate_probability_bb): Reverse direction of
34620         polymorphic call predictor.
34622 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
34624         * passes.c (execute_one_pass): Split out pass-skipping logic into...
34625         (determine_pass_name_match): ...this new function and...
34626         (should_skip_pass_p): ...this new function.
34628 2017-01-06  Nathan Sidwell  <nathan@acm.org>
34630         * ipa-visibility.c (function_and_variable_visibility): Reformat
34631         comments and long lines.  Remove extrneous if.
34632         * symtab.c (symtab_node::make_decl_local): Fix code format.
34633         (symtab_node::set_section_for_node): Fix comment typo.
34635 2017-01-06  Martin Liska  <mliska@suse.cz>
34637         PR bootstrap/79003
34638         * lra-constraints.c: Rename invariant to lra_invariant.
34639         * predict.c (set_even_probabilities): Initialize e to NULL.
34641 2017-01-05  Martin Sebor  <msebor@redhat.com>
34643         PR tree-optimization/78910
34644         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
34645         (format_integer): Correct off-by-one error in the handling
34646         of precision with negative numbers in signed conversions..
34648 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
34650         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
34652 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
34654         PR tree-optimization/71016
34655         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
34656         factor_out_conditional_conversion.  Formatting fix.
34657         (factor_out_conditional_conversion): Add cond_stmt argument.
34658         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
34659         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
34660         Formatting fix.
34662 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
34664         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
34665         read-rtl-function.o, and selftest-rtl.o.
34666         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
34667         (selftest::aarch64_test_loading_full_dump): New function.
34668         (selftest::aarch64_run_selftests): New function.
34669         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
34670         selftest::aarch64_run_selftests.
34671         * config/i386/i386.c
34672         (selftest::ix86_test_loading_dump_fragment_1): New function.
34673         (selftest::ix86_test_loading_call_insn): New function.
34674         (selftest::ix86_test_loading_full_dump): New function.
34675         (selftest::ix86_test_loading_unspec): New function.
34676         (selftest::ix86_run_selftests): Call the new functions.
34677         * emit-rtl.c (maybe_set_max_label_num): New function.
34678         * emit-rtl.h (maybe_set_max_label_num): New decl.
34679         * function.c (instantiate_decls): Guard call to
34680         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
34681         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
34682         "static".
34683         * gensupport.c (gen_reader::gen_reader): Pass "false"
34684         for new "compact" param of rtx_reader.
34685         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
34686         rather than an empty string for NULL strings.
34687         * read-md.c: Potentially include config.h rather than bconfig.h.
34688         Wrap include of errors.h with #ifdef GENERATOR_FILE.
34689         (have_error): New global, copied from errors.c.
34690         (md_reader::read_name): Rename to...
34691         (md_reader::read_name_1): ...this, adding "out_loc" param,
34692         and converting "missing name or number" to returning false, rather
34693         than failing.
34694         (md_reader::read_name): Reimplement in terms of read_name_1.
34695         (md_reader::read_name_or_nil): New function.
34696         (md_reader::read_string): Handle "(nil)" by returning NULL.
34697         (md_reader::md_reader): Add new param "compact".
34698         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
34699         (md_reader::read_file): New method.
34700         * read-md.h (md_reader::md_reader): Add new param "compact".
34701         (md_reader::read_file): New method.
34702         (md_reader::is_compact): New accessor.
34703         (md_reader::read_name): Convert return type from void to file_location.
34704         (md_reader::read_name_or_nil): New decl.
34705         (md_reader::read_name_1): New decl.
34706         (md_reader::m_compact): New field.
34707         (noop_reader::noop_reader): Pass "false" for new "compact" param
34708         of rtx_reader.
34709         (rtx_reader::rtx_reader): Add new "compact" param.
34710         (rtx_reader::read_rtx_operand): Make virtual and convert return
34711         type from void to rtx.
34712         (rtx_reader::read_until): New decl.
34713         (rtx_reader::handle_any_trailing_information): New virtual function.
34714         (rtx_reader::postprocess): New virtual function.
34715         (rtx_reader::finalize_string): New virtual function.
34716         (rtx_reader::m_in_call_function_usage): New field.
34717         (rtx_reader::m_reuse_rtx_by_id): New field.
34718         * read-rtl-function.c: New file.
34719         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
34720         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
34721         (selftest::verify_three_block_rtl_cfg): New decl.
34722         * read-rtl-function.h: New file.
34723         * read-rtl.c: Potentially include config.h rather than bconfig.h.
34724         For host, include function.h, memmodel.h, and emit-rtl.h.
34725         (one_time_initialization): New function.
34726         (struct compact_insn_name): New struct.
34727         (compact_insn_names): New array.
34728         (find_code): Handle insn codes in compact dumps.
34729         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
34730         (bind_subst_iter_and_attr): Likewise.
34731         (add_condition_to_string): Likewise.
34732         (add_condition_to_rtx): Likewise.
34733         (apply_attribute_uses): Likewise.
34734         (add_current_iterators): Likewise.
34735         (apply_iterators): Likewise.
34736         (initialize_iterators): Guard usage of apply_subst_iterator with
34737         #ifdef GENERATOR_FILE.
34738         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
34739         (md_reader::read_mapping): Likewise.
34740         (add_define_attr_for_define_subst): Likewise.
34741         (add_define_subst_attr): Likewise.
34742         (read_subst_mapping): Likewise.
34743         (check_code_iterator): Likewise.
34744         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
34745         logic to...
34746         (one_time_initialization): New function.
34747         (rtx_reader::read_until): New method.
34748         (read_flags): New function.
34749         (parse_reg_note_name): New function.
34750         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
34751         Handle reuse_rtx ids.
34752         Wrap iterator lookup within #ifdef GENERATOR_FILE.
34753         Add parsing support for RTL dumps, mirroring the special-cases in
34754         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
34755         values, and calling handle_any_trailing_information.
34756         (rtx_reader::read_rtx_operand): Convert return type from void
34757         to rtx, returning return_rtx.  Handle case 'e'.  Call
34758         finalize_string on XSTR and XTMPL fields.
34759         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
34760          "(nil)" values were omitted.  Call the postprocess vfunc on the
34761         return_rtx.
34762         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
34763         class ctor.  Initialize m_in_call_function_usage.  Call
34764         one_time_initialization.
34765         * rtl-tests.c (selftest::test_uncond_jump): Call
34766         set_new_first_and_last_insn.
34767         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
34768         * selftest-rtl.c: New file.
34769         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
34770         (selftest::get_insn_by_uid): New decl.
34771         * selftest-run-tests.c (selftest::run_tests): Call
34772         read_rtl_function_c_tests.
34773         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
34774         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
34775         dumps.
34777 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
34779         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
34780         operands in a special way.  Assert that pos+len <= mode precision.
34782 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
34784         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
34785         3 argument Alias with unlimited for the negative form.
34786         (fno-vect-cost-model): Removed.
34788 2017-01-05  Martin Liska  <mliska@suse.cz>
34790         * hsa-gen.c (gen_hsa_divmod): New function.
34791         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
34793 2017-01-05  Martin Liska  <mliska@suse.cz>
34795         PR pch/78970
34796         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
34797         header.
34799 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34801         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
34802         small constant length operands.
34804 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34806         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
34807         between loop iterations.
34809 2017-01-05  Martin Liska  <mliska@suse.cz>
34811         PR sanitizer/78815
34812         * gimplify.c (gimplify_decl_expr): Compare to
34813         asan_poisoned_variables instread of checking flags.
34814         (gimplify_target_expr): Likewise.
34815         (gimplify_expr): Likewise.
34816         (gimplify_function_tree): Conditionally initialize
34817         asan_poisoned_variables.
34819 2017-01-04  Jeff Law  <law@redhat.com>
34821         PR tree-optimizatin/78812
34822         * rtl.h (contains_mem_rtx_p): Prototype.
34823         * ifcvt.c (containts_mem_rtx_p): Move from here to...
34824         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
34825         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
34826         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
34827         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
34829 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
34831         * input.c (assert_char_at_range): Default-initialize actual_range.
34833 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
34835         * df-scan.c (df_ref_create_structure): Make regno unsigned,
34836         to match the caller.
34838 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
34840         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
34841         insns after final jump in test to emit dummy move.
34843 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
34845         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
34846         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
34848 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
34850         * multiple_target.c (create_dispatcher_calls): Init e_next.
34851         * tree-ssa-loop-split.c (split_loop): Init border.
34852         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
34853         scalar_type.
34855 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
34857         PR target/71977
34858         PR target/70568
34859         PR target/78823
34860         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
34861         (altivec_register_operand): Do not return true if the operand
34862         contains a SUBREG mixing SImode and SFmode.
34863         (vsx_register_operand): Likewise.
34864         (vsx_reg_sfsubreg_ok): New predicate.
34865         (vfloat_operand): Do not return true if the operand contains a
34866         SUBREG mixing SImode and SFmode.
34867         (vint_operand): Likewise.
34868         (vlogical_operand): Likewise.
34869         (gpc_reg_operand): Likewise.
34870         (int_reg_operand): Likewise.
34871         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
34872         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
34873         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
34874         SImode and SFmode.
34875         (rs6000_emit_move_si_sf_subreg): New helper function.
34876         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
34877         fixup SUBREGs involving SImode and SFmode.
34878         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
34879         numbers for the new peephole2 optimization.
34880         (peephole2 for SFmode unions): New peephole2 to optimize cases in
34881         the GLIBC math library that do AND/IOR/XOR operations on single
34882         precision floating point.
34883         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
34884         target macros to say whether we need to avoid SUBREGs mixing
34885         SImode and SFmode.
34886         (TARGET_ALLOW_SF_SUBREG): Likewise.
34887         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
34888         (UNSPEC_SI_FROM_SF): Likewise.
34889         (iorxor): Change spacing.
34890         (and_ior_xor): New iterator for AND, IOR, and XOR.
34891         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
34892         (movdi_from_sf_zero_ext): Likewise.
34893         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
34894         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
34895         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
34896         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
34897         (fms<mode>4): Likewise.
34898         (fnma<mode>4): Likewise.
34899         (fnms<mode>4): Likewise.
34900         (nfma<mode>4): Likewise.
34901         (nfms<mode>4): Likewise.
34903 2017-01-04  Marek Polacek  <polacek@redhat.com>
34905         PR c++/64767
34906         * doc/invoke.texi: Document -Wpointer-compare.
34908 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
34910         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
34911         RejectNegative.
34913         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
34914         descriptions for -gdwarf-5 and emit them as uleb128 instead of
34915         2-byte data.
34917 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34919         PR target/78056
34920         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
34921         documentation of the powerpc_popcntb_ok attribute.
34922         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34923         code to issue warning messages if a requested CPU configuration is
34924         not supported by the binary (assembler and loader) toolchain.
34925         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
34926         made to define a built-in function that has been disabled.
34927         (paired_init_builtins): Add assertion to prevent ICE if attempt is
34928         made to define a built-in function that has been disabled.
34929         (altivec_init_builtins): Add comment explaining why definition
34930         of the DST built-in functions is not preceded by an assertion
34931         check.  Add assertions to prevent ICE if attempts are made to
34932         define an altivec predicate or an abs* built-in function that has
34933         been disabled.
34934         (htm_init_builtins): Add comment explaining why definition of the
34935         htm built-in functions is not preceded by an assertion check.
34937 2017-01-04  Jeff Law  <law@redhat.com>
34939         PR tree-optimizatin/67955
34940         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
34941         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
34942         the points-to solution does not include pt_null.  Use DECL_PT_UID
34943         unconditionally.
34945 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
34947         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
34948         Use gen_int_mode instead of gen_lopwart for const_int operands.
34950 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
34952         PR tree-optimization/71563
34953         * match.pd: Simplify X << Y into X if Y is known to be 0 or
34954         out of range value - has low bits known to be zero.
34956 2017-01-04  Alan Modra  <amodra@gmail.com>
34958         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
34959         * configure: Regenerate.
34960         * config.in: Regenerate.
34962 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
34964         PR bootstrap/77569
34965         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
34966         a substring of the message, but strcmp with the whole message.  Ifdef
34967         ENABLE_NLS, translate the message first using dgettext.
34969 2017-01-03  Jeff Law  <law@redhat.com>
34971         PR tree-optimizatin/78856
34972         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
34973         (mark_threaded_blocks): Remove code to truncate thread paths that
34974         cross multiple loop headers.  Instead invalidate the cached loop
34975         iteration information and handle case of a thread path walking
34976         into an irreducible region.
34978 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
34980         PR target/78900
34981         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
34982         assertions.  Add support for doing the signbit if the IEEE 128-bit
34983         floating point value is in a GPR.
34984         * config/rs6000/rs6000.md (Fsignbit): Delete.
34985         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
34986         Update the length attribute if the value is in a GPR.
34987         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
34988         the sign or zero extension instruction, since the value is always 0/1.
34989         (signbit<mode>2_dm2): Delete using <Fsignbit>.
34991         PR target/78953
34992         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
34993         extracting SImode to a GPR register so that we can generate a
34994         store, limit the vector to be in a traditional Altivec register
34995         for the vextuwrx instruction.
34997 2017-01-03  Ian Lance Taylor  <iant@google.com>
34999         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
35001 2017-01-03  Martin Sebor  <msebor@redhat.com>
35003         PR tree-optimization/78696
35004         * gimple-ssa-sprintf.c (format_floating): Correct handling of
35005         precision.  Use MPFR for %f for greater fidelity.  Correct handling
35006         of %g.
35007         (pass_sprintf_length::compute_format_length): Set width and precision
35008         specified by asrerisk to void_node for vararg functions.
35009         (try_substitute_return_value): Adjust dump output.
35011 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
35013         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
35015 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
35017         * doc/invoke.texi (SPARC options): Document -mlra as the default.
35018         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
35019         -mlra/-mno-lra was passed to the compiler.
35021 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
35023         PR rtl-optimization/65618
35024         * emit-rtl.c (try_split): Move initialization of "before" and
35025         "after" to just before the call to emit_insn_after_setloc.
35027 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
35029         * doc/md.texi (Standard Names): Remove reference to Java frontend.
35031 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
35033         * dwarf2out.c (gen_enumeration_type_die): When
35034         -gno-strict-dwarf, add a DW_AT_encoding attribute.
35036 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
35038         PR tree-optimization/78965
35039         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
35040         Change first argument from const call_info & to call_info &.  For %n
35041         set info.nowrite to false.
35043         PR middle-end/78901
35044         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
35045         possibly throwing calls.
35047         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
35048         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
35049         and fns handling, rather than in a separate case SSA_NAME.
35051 2017-01-02  Jeff Law  <law@redhat.com>
35053         * config/darwin-driver.c (darwin_driver_init): Const-correctness
35054         fixes for first_period and second_period variables.
35056 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
35058         PR target/78967
35059         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
35060         (*insvqi_1): New insn pattern.
35061         (*insvqi_1_mem_rex64): Ditto.
35062         (*insvqi_2): Ditto.
35063         (*insvqi_3): Rename from *insvqi.
35065         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
35067 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
35069         * doc/cfg.texi (Edges): Remove reference to Java.
35070         (Maintaining the CFG): Ditto.
35072 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
35074         PR middle-end/77674
35075         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
35076         transparent aliases.
35078 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
35080         PR middle-end/77484
35081         * predict.def (PRED_CALL): Update hitrate.
35082         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
35083         * predict.c (tree_estimate_probability_bb): Split CALL predictor
35084         into direct/indirect/polymorphic variants.
35086 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
35088         Update copyright years.
35090         * gcc.c (process_command): Update copyright notice dates.
35091         * gcov-dump.c (print_version): Ditto.
35092         * gcov.c (print_version): Ditto.
35093         * gcov-tool.c (print_version): Ditto.
35094         * gengtype.c (create_file): Ditto.
35095         * doc/cpp.texi: Bump @copying's copyright year.
35096         * doc/cppinternals.texi: Ditto.
35097         * doc/gcc.texi: Ditto.
35098         * doc/gccint.texi: Ditto.
35099         * doc/gcov.texi: Ditto.
35100         * doc/install.texi: Ditto.
35101         * doc/invoke.texi: Ditto.
35103 Copyright (C) 2017 Free Software Foundation, Inc.
35105 Copying and distribution of this file, with or without modification,
35106 are permitted in any medium without royalty provided the copyright
35107 notice and this notice are preserved.