2017-10-21 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / ChangeLog
blobbff49a6bfcdba116ea5a9a1b90460933fef4e028
1 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
3         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
5 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
7         * config/i386/i386.md (isa): Remove fma_avx512f.
8         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
9         <avx512>_fmadd_<mode>_mask3<round_name>,
10         <avx512>_fmsub_<mode>_mask<round_name>,
11         <avx512>_fmsub_<mode>_mask3<round_name>,
12         <avx512>_fnmadd_<mode>_mask<round_name>,
13         <avx512>_fnmadd_<mode>_mask3<round_name>,
14         <avx512>_fnmsub_<mode>_mask<round_name>,
15         <avx512>_fnmsub_<mode>_mask3<round_name>,
16         <avx512>_fmaddsub_<mode>_mask<round_name>,
17         <avx512>_fmaddsub_<mode>_mask3<round_name>,
18         <avx512>_fmsubadd_<mode>_mask<round_name>,
19         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
20         (*vec_widen_umult_even_v16si<mask_name>,
21         *vec_widen_smult_even_v16si<mask_name>): Likewise.
22         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
24 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
26         * extend.texi: Add 'nocf_check' documentation.
27         * gimple.texi: Add second parameter to
28         gimple_build_call_from_tree.
29         * invoke.texi: Add -fcf-protection documentation.
30         * rtl.texi: Add REG_CALL_NOTRACK documenation.
32 2017-10-20  Richard Biener  <rguenther@suse.de>
34         PR tree-optimization/82473
35         * tree-vect-loop.c (vectorizable_reduction): Properly get at
36         the largest input type.
38 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
40         * c-attribs.c (handle_nocf_check_attribute): New function.
41         (c_common_attribute_table): Add 'nocf_check' handling.
42         * gimple-parser.c: Add second argument NULL to
43         gimple_build_call_from_tree.
44         * attrib.c (comp_type_attributes): Check nocf_check attribute.
45         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
46         call insn.
47         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
48         * common.opt: Add fcf-protection flag.
49         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
50         * flag-types.h: Add enum cf_protection_level.
51         * gimple.c (gimple_build_call_from_tree): Add second parameter.
52         Add 'nocf_check' attribute propagation to gimple call.
53         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
54         (gimple_build_call_from_tree): Update prototype.
55         (gimple_call_nocf_check_p): New function.
56         (gimple_call_set_nocf_check): Likewise.
57         * gimplify.c: Add second argument to gimple_build_call_from_tree.
58         * ipa-icf.c: Add nocf_check attribute in statement hash.
59         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
60         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
61         * toplev.c (process_options): Add flag_cf_protection handling.
63 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
65         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
67 2017-10-20  Richard Biener  <rguenther@suse.de>
69         PR tree-optimization/82603
70         * tree-if-conv.c (predicate_mem_writes): Make sure to only
71         remove false predicated stores.
73 2017-10-20  Richard Biener  <rguenther@suse.de>
75         * graphite-isl-ast-to-gimple.c
76         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
77         Remove return value and simplify, dump copied stmt after lhs
78         adjustment.
79         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
80         Reduce dump verbosity.
81         (gsi_insert_earliest): Likewise.
82         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
83         * graphite.c (print_global_statistics): Adjust dumping.
84         (print_graphite_scop_statistics): Likewise.
85         (print_graphite_statistics): Do not dump loops here.
86         (graphite_transform_loops): But here.
88 2017-10-20  Nicolas Roche  <roche@adacore.com>
90         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
91         * configure: Regenerate.
93 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
95         PR target/82158
96         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
97         functions when optimizing replace GIMPLE_RETURN stmts with
98         calls to __builtin_unreachable ().
100         PR sanitizer/82595
101         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
102         for -fsanitize=thread link of executables.
103         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
104         link of executables.
106         PR target/82370
107         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
108         New mode iterators.
109         (<shift_insn><mode>3<mask_name>): Change the last of the 3
110         define_insns for logical vector shifts to use VI248_AVX512BW
111         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
112         condition, useless isa and prefix attributes.  Change the first
113         2 of these define_insns to ...
114         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
115         define_insn for avx512vl.
116         (<shift_insn><mode>3): ... and this, new define_insn without
117         masking for non-avx512vl.
119         PR target/82370
120         * config/i386/sse.md (*andnot<mode>3,
121         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
122         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
123         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
124         not applied use empty suffix even for TARGET_AVX512VL.
125         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
126         is applied, supply evex,evex or evex,evex,evex instead of just
127         evex.
129 2017-10-20  Julia Koval  <julia.koval@intel.com>
131         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
132         (OPTION_MASK_ISA_GFNI_UNSET): New.
133         (ix86_handle_option): Handle OPT_mgfni.
134         * config/i386/cpuid.h (bit_GFNI): New.
135         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
136         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
137         * config/i386/i386.c (ix86_target_string): Add -mgfni.
138         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
139         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
140         * config/i386/i386.opt: Add mgfni.
142 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
144         * config/msp430/msp430.c (msp430_option_override): Disable
145         -fdelete-null-pointer-checks.
146         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
148 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
150         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
151         of x87 and SSE instructions.
153 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
155         * asan.c (create_cond_insert_point): Do not update edge count.
156         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
157         (afdo_propagate_circuit): Likewise.
158         (afdo_calculate_branch_prob): Likewise.
159         (afdo_annotate_cfg): Likewise.
160         * basic-block.h (struct edge_def): Remove count.
161         (edge_def::count): New accessor.
162         * bb-reorder.c (rotate_loop): Update.
163         (find_traces_1_round): Update.
164         (connect_traces): Update.
165         (sanitize_hot_paths): Update.
166         * cfg.c (unchecked_make_edge): Update.
167         (make_single_succ_edge): Update.
168         (check_bb_profile): Update.
169         (dump_edge_info): Update.
170         (update_bb_profile_for_threading): Update.
171         (scale_bbs_frequencies_int): Update.
172         (scale_bbs_frequencies_gcov_type): Update.
173         (scale_bbs_frequencies_profile_count): Update.
174         (scale_bbs_frequencies): Update.
175         * cfganal.c (connect_infinite_loops_to_exit): Update.
176         * cfgbuild.c (compute_outgoing_frequencies): Update.
177         (find_many_sub_basic_blocks): Update.
178         * cfgcleanup.c (try_forward_edges): Update.
179         (try_crossjump_to_edge): Update
180         * cfgexpand.c (expand_gimple_cond): Update
181         (expand_gimple_tailcall): Update
182         (construct_exit_block): Update
183         * cfghooks.c (verify_flow_info): Update
184         (redirect_edge_succ_nodup): Update
185         (split_edge): Update
186         (make_forwarder_block): Update
187         (duplicate_block): Update
188         (account_profile_record): Update
189         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
190         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
191         * cfgloopmanip.c (scale_loop_profile): Update.
192         (loopify): Update.
193         (lv_adjust_loop_entry_edge): Update.
194         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
195         (force_nonfallthru_and_redirect): Update.
196         (purge_dead_edges): Update.
197         (rtl_flow_call_edges_add): Update.
198         * cgraphunit.c (init_lowered_empty_function): Update.
199         (cgraph_node::expand_thunk): Update.
200         * gimple-pretty-print.c (dump_probability): Update.
201         (dump_edge_probability): Update.
202         * gimple-ssa-isolate-paths.c (isolate_path): Update.
203         * haifa-sched.c (sched_create_recovery_edges): Update.
204         * hsa-gen.c (convert_switch_statements): Update.
205         * ifcvt.c (dead_or_predicable): Update.
206         * ipa-inline-transform.c (inline_transform): Update.
207         * ipa-split.c (split_function): Update.
208         * ipa-utils.c (ipa_merge_profiles): Update.
209         * loop-doloop.c (add_test): Update.
210         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
211         * lto-streamer-in.c (input_cfg): Update.
212         (input_function): Update.
213         * lto-streamer-out.c (output_cfg): Update.
214         * modulo-sched.c (sms_schedule): Update.
215         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
216         * predict.c (maybe_hot_edge_p): Update.
217         (unlikely_executed_edge_p): Update.
218         (probably_never_executed_edge_p): Update.
219         (dump_prediction): Update.
220         (drop_profile): Update.
221         (propagate_unlikely_bbs_forward): Update.
222         (determine_unlikely_bbs): Update.
223         (force_edge_cold): Update.
224         * profile.c (compute_branch_probabilities): Update.
225         * reg-stack.c (better_edge): Update.
226         * shrink-wrap.c (handle_simple_exit): Update.
227         * tracer.c (better_p): Update.
228         * trans-mem.c (expand_transaction): Update.
229         (split_bb_make_tm_edge): Update.
230         * tree-call-cdce.c: Update.
231         * tree-cfg.c (gimple_find_sub_bbs): Update.
232         (gimple_split_edge): Update.
233         (gimple_duplicate_sese_region): Update.
234         (gimple_duplicate_sese_tail): Update.
235         (gimple_flow_call_edges_add): Update.
236         (insert_cond_bb): Update.
237         (execute_fixup_cfg): Update.
238         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
239         * tree-complex.c (expand_complex_div_wide): Update.
240         * tree-eh.c (lower_resx): Update.
241         (unsplit_eh): Update.
242         (cleanup_empty_eh_move_lp): Update.
243         * tree-inline.c (copy_edges_for_bb): Update.
244         (freqs_to_counts): Update.
245         (copy_cfg_body): Update.
246         * tree-ssa-dce.c (remove_dead_stmt): Update.
247         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
248         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
249         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
250         (unloop_loops): Update.
251         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
252         * tree-ssa-loop-split.c (connect_loops): Update.
253         (split_loop): Update.
254         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
255         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
256         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
257         * tree-ssa-reassoc.c (branch_fixup): Update.
258         * tree-ssa-tail-merge.c (replace_block_by): Update.
259         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
260         (compute_path_counts): Update.
261         (update_profile): Update.
262         (recompute_probabilities): Update.
263         (update_joiner_offpath_counts): Update.
264         (estimated_freqs_path): Update.
265         (freqs_to_counts_path): Update.
266         (clear_counts_path): Update.
267         (ssa_fix_duplicate_block_edges): Update.
268         (duplicate_thread_path): Update.
269         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
270         (case_bit_test_cmp): Update.
271         (collect_switch_conv_info): Update.
272         (gen_inbound_check): Update.
273         (do_jump_if_equal): Update.
274         (emit_cmp_and_jump_insns): Update.
275         * tree-tailcall.c (decrease_profile): Update.
276         (eliminate_tail_call): Update.
277         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
278         (vect_do_peeling): Update.
279         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
280         * ubsan.c (ubsan_expand_null_ifn): Update.
281         (ubsan_expand_ptr_ifn): Update.
282         * value-prof.c (gimple_divmod_fixed_value): Update.
283         (gimple_mod_pow2): Update.
284         (gimple_mod_subtract): Update.
285         (gimple_ic): Update.
286         (gimple_stringop_fixed_value): Update.
288 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
290         PR target/82618
291         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
293 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
295         PR rtl-optimization/82395
296         * ira-color.c (allocno_priority_compare_func): Fix comparison step
297         based on non_spilled_static_chain_regno_p.
299 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
301         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
302         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
303         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
305 2017-10-19  Martin Sebor  <msebor@redhat.com>
307         PR tree-optimization/82596
308         * tree.c (array_at_struct_end_p): Handle STRING_CST.
310 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
312         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
313         (get_mem_refs_of_builtin_call): Likewise.
314         * builtins.c (expand_builtin_apply): Adjust call to
315         allocate_dynamic_stack_space.
316         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
317         the third argument to allocate_dynamic_stack_space, otherwise -1.
318         (expand_builtin): Deal with all alloca variants.
319         (is_inexpensive_builtin): Likewise.
320         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
321         * calls.c (special_function_p): Deal with all alloca variants.
322         (initialize_argument_information): Adjust call to
323         allocate_dynamic_stack_space.
324         (expand_call): Likewise.
325         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
326         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
327         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
328         use it for the stack usage computation.
329         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
330         * function.c (gimplify_parameters): Call build_alloca_call_expr.
331         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
332         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
333         (in_loop_p): Remove first argument and useless check.
334         (pass_walloca::execute): Remove useless test and adjust call to above.
335         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
336         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
337         (gimplify_call_expr): Deal with all alloca variants.
338         * hsa-gen.c (gen_hsa_alloca): Likewise.
339         (gen_hsa_insns_for_call): Likewise.
340         * ipa-pure-const.c (special_builtin_state): Likewise.
341         * tree-chkp.c (chkp_build_returned_bound): Likewise.
342         * tree-object-size.c (alloc_object_size): Likewise.
343         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
344         (call_may_clobber_ref_p_1): Likewise.
345         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
346         (ccp_fold_stmt): Likewise.
347         (optimize_stack_restore): Likewise.
348         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
349         (mark_all_reaching_defs_necessary_1): Likewise.
350         (propagate_necessity): Likewise.
351         (eliminate_unnecessary_stmts): Likewise.
352         * tree.c (build_common_builtin_nodes): Build
353         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
354         (build_alloca_call_expr): New function.
355         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
356         (CASE_BUILT_IN_ALLOCA): Likewise.
357         (build_alloca_call_expr): Declare.
358         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
360 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
362         PR debug/82509
363         * dwarf2out.c (new_die_raw): New static inline function.
364         (new_die): Use it to create the DIE.
365         (add_AT_external_die_ref): Likewise.
366         (clone_die): Likewise.
367         (clone_as_declaration): Likewise.
368         (dwarf2out_vms_debug_main_pointer): Likewise.
369         (base_type_die): Likewise.  Remove early return for corner cases.
370         Do not call add_pubtype on the DIE here.
371         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
372         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
373         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
374         native order exists for base types, attach the DIE manually and call
375         add_pubtype on it.  Do not equate a reverse order DIE to the type.
377 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
379         * config/arm/arm.c (align_ok_ldrd_strd): New function.
380         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
381         the mem into it.
382         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
384 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
386         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
387         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
388         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
389         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
390         * opts.c (sanitizer_opts): Add builtin.
391         * ubsan.c (instrument_builtin): New function.
392         (pass_ubsan::execute): Call it.
393         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
394         * doc/invoke.texi: Document -fsanitize=builtin.
396         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
397         builtins, store max (log2 (align), 0) into uchar field instead of
398         align into uptr field.
399         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
400         store uchar 0 field instead of uptr 0 field.
401         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
402         instead of passing one address of struct with 2 locations pass
403         two addresses of structs with 1 location each.
404         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
405         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
406         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
407         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
408         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
409         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
410         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
411         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
413 2017-10-19  Martin Liska  <mliska@suse.cz>
415         PR driver/81829
416         * file-find.c (remove_prefix): Remove.
417         * file-find.h (remove_prefix): Likewise.
418         * gcc-ar.c: Remove smartness of lookup.
420 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
422         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
423         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
424         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
426 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
428         PR target/82580
429         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
430         (setcc + and to xor + setcc): New peephole2.
432 2017-10-19  Tom de Vries  <tom@codesourcery.com>
434         * doc/sourcebuild.texi (Test Directives, Variants of
435         dg-require-support): Add dg-require-stack-size.
437 2017-10-19  Martin Liska  <mliska@suse.cz>
439         PR sanitizer/82517
440         * gimplify.c (gimplify_decl_expr): Do not instrument variables
441         that have a large alignment.
442         (gimplify_target_expr): Likewise.
444 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
446         PR rtl-optimization/82602
447         * ira.c (rtx_moveable_p): Return false for volatile asm.
449 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
451         PR target/82580
452         * config/i386/i386-modes.def (CCGZ): New CC mode.
453         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
454         * config/i386/predicates.md (ix86_comparison_operator):
455         Handle CCGZmode.
456         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
457         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
458         with double-word subtraction.
459         (put_condition_code): Handle CCGZmode.
461 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
463         * wide-int.cc (debug (const wide_int &)): New.
464         (debug (const wide_int *)): New.
465         (debug (const widest_int &)): New.
466         (debug (const widest_int *)): New.
468 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
470         PR middle-end/82556
471         * lra-constraints.c (curr_insn_transform): Use non-input operand
472         instead of output one for matched reload.
474 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
476         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
477         (tree-ssa-loop-ivopts.h): New header file.
478         (struct builtin_info): New fields.
479         (classify_builtin_1): Compute and record base and offset parts for
480         memset builtin partition by calling strip_offset.
481         (offset_cmp, fuse_memset_builtins): New functions.
482         (finalize_partitions): Fuse adjacent memset partitions by calling
483         above function.
484         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
485         Expose the interface.
486         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
488 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
490         PR tree-optimization/82574
491         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
492         that data reference must be executed exactly once per iteration
493         against the outermost loop in nest.
494         (classify_partition): Update call to above function.
496 2017-10-18  Richard Biener  <rguenther@suse.de>
498         PR tree-optimization/82591
499         * graphite.c (graphite_transform_loops): Move code gen message
500         printing ...
501         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
502         Here.  Handle scop_to_isl_ast failing.
503         (scop_to_isl_ast): Limit the number of ISL operations.
505 2017-10-18  Richard Biener  <rguenther@suse.de>
507         * graphite-isl-ast-to-gimple.c
508         (translate_isl_ast_to_gimple::set_rename): Simplify.
509         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
510         (graphite_copy_stmts_from_block): ... here.
511         (copy_bb_and_scalar_dependences): Simplify.
512         (add_parameters_to_ivs_params): Canonicalize.
513         (generate_entry_out_of_ssa_copies): Simplify.
514         * graphite-sese-to-poly.c (extract_affine_name): Simplify
515         by passing in ISL dimension.
516         (parameter_index_in_region_1): Rename to ...
517         (parameter_index_in_region): ... this.
518         (extract_affine): Adjust assert, pass down parameter index.
519         (add_param_constraints): Use range-info when available.
520         (build_scop_context): Adjust.
521         * sese.c (new_sese_info): Adjust.
522         (free_sese_info): Likewise.
523         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
524         Remove unused typedefs.
525         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
527 2017-10-18  Martin Liska  <mliska@suse.cz>
529         * combine.c (simplify_compare_const): Add gcc_fallthrough.
531 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
533         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
534         (s390_sched_init): Do not reset s390_sched_state if we entered the
535         current basic block via a fallthru edge and all others are unlikely.
537 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
539         * config/s390/s390.c (NUM_SIDES): New variable.
540         (LONGRUNNING_THRESHOLD): New variable.
541         (LATENCY_FACTOR): New variable.
542         (s390_sched_score): Decrease score for long-running instructions on
543         wrong side.
544         (s390_sched_variable_issue): Perform bookkeeping for long-running
545         instructions.
547 2017-10-18  Richard Biener  <rguenther@suse.de>
549         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
550         Simplify with removal of the parameter rename map.
551         (set_rename): Likewise.
552         (should_copy_to_new_region): Likewise.
553         (graphite_copy_stmts_from_block): Likewise.
554         (copy_bb_and_scalar_dependences): Remove initialization of
555         unused copied_bb_map.
556         (copy_def): Remove.
557         (copy_internal_parameters): Likewise.
558         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
559         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
560         Use INTEGRAL_TYPE_P.
561         (parameter_index_in_region_1): Rename to ...
562         (assign_parameter_index_in_region): ... this.  Assert we have
563         a parameter we handle.
564         (scan_tree_for_params): Adjust.
565         * sese.h (parameter_rename_map_t): Remove.
566         (struct sese_info_t): Remove unused parameter_rename_map and
567         copied_bb_map members.
568         * sese.c (new_sese_info): Adjust.
569         (free_sese_info): Likewise.
571 2017-10-18  Martin Liska  <mliska@suse.cz>
573         PR sanitizer/82545
574         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
575         on an abnormal edge.
577 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
579         * doc/invoke.texi (ffunction-sections and fdata-sections):
580         Update.
582 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
584         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
585         the use statement can throw internally.
587 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
589         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
590         any RTX present on the RHS of a SET.
591         * compare-elim.c (try_eliminate_compare): Restore comment.
593 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
595         * langhooks.h (struct lang_hooks): Document that tree_size langhook
596         may be also called on tcc_type nodes.
597         * langhooks.c (lhd_tree_size): Likewise.
599 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
601         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
602         format_warning_at_substring.
603         (maybe_warn): Convert source_range * param to a location_t.  Pass
604         UNKNOWN_LOCATION rather than NULL to fmtwarn.
605         (format_directive): Remove code to extract source_ranges and
606         source_range * in favor of just a location_t.
607         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
608         fmtwarn.
609         * substring-locations.c (format_warning_va): Convert
610         source_range * param to a location_t.
611         (format_warning_at_substring): Likewise.
612         * substring-locations.h (format_warning_va): Likewise.
613         (format_warning_at_substring): Likewise.
615 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
617         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
618         vec_scatter_store
619         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
620         and scatter/gather ops.
622         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
623         vec_gather_load and vec_scatter_store.
624         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
625         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
626         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
627         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
628         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
629         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
631 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
633         * reg-stack.c (compare_for_stack_reg): Add bool argument.
634         Detect FTST instruction and handle its register pops.  Only pop
635         second operand if can_pop_second_op is true.
636         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
637         set can_pop_second_op to false in the compare_for_stack_reg call.
639         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
640         output_fp_compare for stack register operands.
641         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
642         instructions here.  Do not emit stack register pops here.  Assert
643         that FCOMPP pops next to top stack register.  Rewrite function.
645 2017-10-17  Nathan Sidwell  <nathan@acm.org>
647         PR middle-end/82577
648         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
649         use DECL_ASSEMBLER_NAME_RAW.
651         PR middle-end/82546
652         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
653         TYPE nodes.
655 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
656             Wilco Dijkstra <wilco.dijkstra@arm.com>
658         * builtins.c (expand_builtin_update_setjmp_buf): Add a
659         converstion to Pmode from the buf_addr.
661 2017-10-17  Richard Biener  <rguenther@suse.de>
663         * graphite-dependences.c (scop_get_reads_and_writes): Change
664         output parameters to references.
666 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
668         PR 71026/tree-optimization
669         * fold-const.c (distribute_real_division): Removed.
670         (fold_binary_loc): Remove calls to distribute_real_divison.
672 2017-10-17  Richard Biener  <rguenther@suse.de>
674         * graphite-scop-detection.c
675         (scop_detection::stmt_has_simple_data_refs_p): Always use
676         the full nest as region.
677         (try_generate_gimple_bb): Likewise.
678         * sese.c (scalar_evolution_in_region): Simplify now that
679         SCEV can handle instantiation in regions.
680         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
681         in the non-loop part of a function if requested.
683 2017-10-17  Richard Biener  <rguenther@suse.de>
685         PR tree-optimization/82563
686         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
687         New function.
688         (graphite_regenerate_ast_isl): Call it.
689         * graphite-scop-detection.c (build_scops): Remove entry edge split.
691 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
693         PR tree-optimization/82549
694         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
695         Formatting fixes.  Instead of calling make_bit_field_ref with negative
696         bitpos return 0.
698 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
700         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
701         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
702         _mm_maskz_reduce_ss): New.
703         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
704         __builtin_ia32_reducess_mask): Ditto..
705         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
706         * config/i386/sse.md (reduces<mode>): Renamed to ...
707         (reduces<mode><mask_scalar_name>): ... this.
708         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): Changed
709         to ...
710         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
711         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
713 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
715         * Makefile.in (OBJS): Add unique-ptr-tests.o.
716         * selftest-run-tests.c (selftest::run_tests): Call
717         selftest::unique_ptr_tests_cc_tests.
718         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
719         * unique-ptr-tests.cc: New file.
721 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
723         PR sanitizer/82353
724         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
725         locations.
726         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
727         (make_hard_regno_born, make_hard_regno_dead): Update
728         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
730 2017-10-16  Jeff Law  <law@redhat.com>
732         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
734 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
736         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
738 2017-10-16  Olivier Hainque  <hainque@adacore.com>
740         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
741         with_cpu if we were configured for an e500v2 target cpu name.
743 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
745         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
746         * doc/invoke.texi: Document +nodsp as a valid extension for
747         -mcpu=cortex-m33.
749 2017-10-16  Martin Liska  <mliska@suse.cz>
751         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
752         (test_set_range): Likewise.
753         (test_range_functions): Rename to ...
754         (test_bit_in_range): ... this.
755         (sbitmap_c_tests): Add new test.
757 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
759         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): New.
760         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
761         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
763 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
765         * config/aarch64/aarch64-builtins.c
766         (aarch64_types_quadopu_lane_qualifiers): New.
767         (TYPES_QUADOPU_LANE): New.
768         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
769         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
770         (aarch64_<sur>dot_laneq<vsi2qi>): New.
771         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
772         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
773         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
774         (Vdottype, DOTPROD): New.
775         (sur): Add SDOT and UDOT.
777 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
779         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
780         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
781         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add TARGET_DOTPROD.
782         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
783         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): Enable TARGET_DOTPROD.
784         (cortex-a75.cortex-a55): Likewise.
785         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
787 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
789         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
790         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): New.
791         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): new.
792         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
793         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
794         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
795         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
796         * config/arm/types.md (neon_dot, neon_dot_q): New.
797         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
799 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
801         * config/arm/arm.h (TARGET_DOTPROD): New.
802         * config/arm/arm.c (arm_arch_dotprod): New.
803         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
804         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
805         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
806         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
807         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
808         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
809         * doc/invoke.texi (armv8.2-a): Document dotprod
811 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
813         * i386.c (ix86_vec_cost): New function.
814         (ix86_rtx_costs): Handle vector operations better.
815         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
816         * x86-tune-costs.h: Add new costs to all tables.
818 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
820         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
821         operations.
822         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
823         divsd, sqrtss and sqrtsd
824         * x86-tune-costs.h: Add new entries to all costs.
825         (znver1_cost): Fix to match real instruction latencies.
827 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
828             Michael Collison <michael.collison@arm.com>
830         * compare-elim.c: Include emit-rtl.h.
831         (can_merge_compare_into_arith): New function.
832         (try_validate_parallel): Likewise.
833         (try_merge_compare): Likewise.
834         (try_eliminate_compare): Call the above when no previous clobber
835         is available.
836         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
837         dataflow problems.
839 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
841         PR middle-end/62263
842         PR middle-end/82498
843         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
844         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
846         PR middle-end/62263
847         PR middle-end/82498
848         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
849         to be any operand_equal_p operands.  For & (B - 1) require
850         B to be power of 2.  Recognize
851         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
853 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
855         PR bootstrap/82553
856         * optabs.c (expand_memory_blockage): Fix call of
857         targetm.have_memory_blockage.
859 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
861         PR bootstrap/82548
862         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
863         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
864         objects to extra_objs instead of overwriting it.
866 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
868         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
869         Use any_fp_register_operand as operand[3] predicate.  Simplify
870         equality test for operands[2] and operands[4] memory location.
871         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
872         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
873         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
874         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
875         any_fp_register_operand as operand[1] predicate.  Simplify
876         equality test for operands[0] and operands[3] memory location.
877         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
878         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
879         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
881 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
883         * target-insns.def: Add memory_blockage.
884         * optabs.c (expand_memory_blockage): New function.
885         (expand_asm_memory_barrier): Rename ...
886         (expand_asm_memory_blockage): ... to this.
887         (expand_mem_thread_fence): Call expand_memory_blockage
888         instead of expand_asm_memory_barrier.
889         (expand_mem_singnal_fence): Ditto.
890         (expand_atomic_load): Ditto.
891         (expand_atomic_store): Ditto.
892         * doc/md.texi (Standard Pattern Names For Generation):
893         Document memory_blockage instruction pattern.
895 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
897         * config/rl78/rl78.c (rl78_emit_libcall): New function.
898         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
899         * config/rl78/rl78.md: New define_expand "adddi3".
901 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
903         * cfghooks.c (verify_flow_info): Disable check that all probabilities
904         are set correctly.
906 2017-10-13  Jeff Law  <law@redhat.com>
908         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
910 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
912         PR target/82274
913         * internal-fn.c (expand_mul_overflow): If both operands have
914         the same highpart of -1 or 0 and the topmost bit of lowpart
915         is different, overflow is if res <= 0 rather than res < 0.
917 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
919         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
920         TARGET_P9_VECTOR code for unaligned_load case.
922 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
924         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
926 2017-10-13  Nathan Sidwell  <nathan@acm.org>
928         * tree-core.h (tree_contains_struct): Make bool.
929         * tree.c (tree_contains_struct): Likewise.
930         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
931         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
932         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
933         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
934         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
936 2017-10-13  Richard Biener  <rguenther@suse.de>
938         * graphite-isl-ast-to-gimple.c
939         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
940         parameters and dominance check.
941         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
942         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
943         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
944         Do not update SSA form here or do intermediate IL verification.
945         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
946         (graphite_initialize): Remove check on the number of loops in
947         the function and inline into graphite_transform_loops.
948         (graphite_finalize): Inline into graphite_transform_loops.
949         (graphite_transform_loops): Perform SSA update and IL verification
950         here.
951         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
953 2017-10-13  Richard Biener  <rguenther@suse.de>
955         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
956         graphite_expression_type_precision): Avoid global constructor
957         by moving ...
958         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
959         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
960         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
961         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
962         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
963         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
965 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
967         PR target/82499
968         * config/i386/i386.h (ix86_red_zone_size): New.
969         * config/i386/i386.md (push peephole2s): Replace
970         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
972 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
973             Alan Hayward  <alan.hayward@arm.com>
974             David Sherwood  <david.sherwood@arm.com>
976         * combine.c (can_change_dest_mode): Reject changes in
977         REGMODE_NATURAL_SIZE.
979 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
980             Alan Hayward  <alan.hayward@arm.com>
981             David Sherwood  <david.sherwood@arm.com>
983         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
984         (expand_debug_source_expr): Likewise.
985         * combine.c (combine_simplify_rtx): Likewise.
986         * cse.c (fold_rtx): Likewise.
987         * fwprop.c (canonicalize_address): Likewise.
988         * targhooks.c (default_shift_truncation_mask): Likewise.
990 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
991             Alan Hayward  <alan.hayward@arm.com>
992             David Sherwood  <david.sherwood@arm.com>
994         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
995         (widened_mode): Likewise.
996         (expand_unop): Likewise.
997         * ree.c (transform_ifelse): Likewise.
998         (merge_def_and_ext): Likewise.
999         (combine_reaching_defs): Likewise.
1000         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1002 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
1003             Alan Hayward  <alan.hayward@arm.com>
1004             David Sherwood  <david.sherwood@arm.com>
1006         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
1007         * combine.c (gen_lowpart_for_combine): Likewise.
1008         * dwarf2out.c (rtl_for_decl_location): Likewise.
1009         * final.c (alter_subreg): Likewise.
1010         * rtlhooks.c (gen_lowpart_general): Likewise.
1011         (gen_lowpart_if_possible): Likewise.
1013 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
1014             Alan Hayward  <alan.hayward@arm.com>
1015             David Sherwood  <david.sherwood@arm.com>
1017         * calls.c (expand_call): Use subreg_lowpart_offset.
1018         * cse.c (cse_insn): Likewise.
1019         * regcprop.c (copy_value): Likewise.
1020         (copyprop_hardreg_forward_1): Likewise.
1022 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
1024         PR target/82524
1025         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
1026         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
1027         =Q constraints to +Q and into insn condition add check
1028         that operands[0] and operands[1] are equal.
1029         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
1030         =Q constraints to +Q and into insn condition add check
1031         that operands[0] is equal to either operands[1] or operands[2].
1033         PR target/82498
1034         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
1035         instead of handling MINUS_EXPR twice (once for each argument),
1036         canonicalize operand order and handle just once, use rtype where
1037         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
1039         PR target/82498
1040         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
1041         any values of __C while still being pattern recognizable as a simple
1042         rotate instruction.
1044 2017-10-13  Richard Biener  <rguenther@suse.de>
1046         PR tree-optimization/82451
1047         Revert
1048         2017-10-02  Richard Biener  <rguenther@suse.de>
1050         PR tree-optimization/82355
1051         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
1052         a mapping for the enclosing loop but avoid generating one for
1053         the loop tree root.
1054         (copy_bb_and_scalar_dependences): Remove premature codegen
1055         error on PHIs in blocks duplicated into multiple places.
1056         * graphite-scop-detection.c
1057         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
1058         in the region use it as loop and nest to analyze the DR in.
1059         (try_generate_gimple_bb): Likewise.
1060         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
1061         (add_loop_constraints): For blocks in a loop not in the region
1062         create a dimension with a single iteration.
1063         * sese.h (gbb_loop_at_index): Remove assert.
1065         * cfgloop.c (loop_preheader_edge): For the loop tree root
1066         return the single successor of the entry block.
1067         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
1068         Reset the SCEV hashtable and niters.
1069         * graphite-scop-detection.c
1070         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
1071         assert that we only have POLYNOMIAL_CHREC that vary in loops
1072         contained in the region.
1073         (scop_detection::graphite_can_represent_expr): Adjust.
1074         (scop_detection::stmt_has_simple_data_refs_p): For loops
1075         not in the region set loop to NULL.  The nest is now the
1076         entry edge to the region.
1077         (try_generate_gimple_bb): Likewise.
1078         * sese.c (scalar_evolution_in_region): Adjust for
1079         instantiate_scev change.
1080         * tree-data-ref.h (graphite_find_data_references_in_stmt):
1081         Make nest parameter the edge into the region.
1082         (create_data_ref): Likewise.
1083         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
1084         entry edge into a region and adjust instantiate_scev calls.
1085         (create_data_ref): Likewise.
1086         (graphite_find_data_references_in_stmt): Likewise.
1087         (find_data_references_in_stmt): Pass the loop preheader edge
1088         from the nest argument.
1089         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
1090         parameter the edge into the region.
1091         (instantiate_parameters): Use the loop preheader edge as entry.
1092         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
1093         NULL loop.
1094         (get_instantiated_value_entry): Make instantiate_below parameter
1095         the edge into the region.
1096         (instantiate_scev_name): Likewise.  Adjust dominance checks,
1097         when we cannot use loop-based instantiation instantiate by
1098         walking use-def chains.
1099         (instantiate_scev_poly): Adjust.
1100         (instantiate_scev_binary): Likewise.
1101         (instantiate_scev_convert): Likewise.
1102         (instantiate_scev_not): Likewise.
1103         (instantiate_array_ref): Remove.
1104         (instantiate_scev_3): Likewise.
1105         (instantiate_scev_2): Likewise.
1106         (instantiate_scev_1): Likewise.
1107         (instantiate_scev_r): Do not blindly handle N-operand trees.
1108         Do not instantiate array-refs.  Handle all constants and invariants.
1109         (instantiate_scev): Make instantiate_below parameter
1110         the edge into the region.
1111         (resolve_mixers): Use the loop preheader edge for the region
1112         parameter to instantiate_scev_r.
1113         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
1115 2017-10-13  Richard Biener  <rguenther@suse.de>
1117         PR tree-optimization/82525
1118         * graphite-isl-ast-to-gimple.c
1119         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
1120         out from ...
1121         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
1122         Fail code generation when we cannot represent the isl integer.
1123         (binary_op_to_tree): Elide modulo operations that are no-ops
1124         in the type we code generate.  Remove now superfluous code
1125         generation errors.
1127 2017-10-13  Richard Biener  <rguenther@suse.de>
1129         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
1130         (scop_detection::harmful_loop_in_region): Remove premature
1131         IV type restriction.
1132         (scop_detection::graphite_can_represent_scev): We can handle
1133         pointer IVs just fine.
1135 2017-10-13  Alan Modra  <amodra@gmail.com>
1137         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
1138         "Clobbers and Scratch Registers".  Add paragraph on
1139         alternative to clobbers for scratch registers and OpenBLAS
1140         example.
1142 2017-10-13  Alan Modra  <amodra@gmail.com>
1144         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
1145         example of a memory input for a string of known length.  Move
1146         commentary out of table.  Add a number of new examples
1147         covering array memory inputs.
1149 2017-10-12  Martin Liska  <mliska@suse.cz>
1151         PR tree-optimization/82493
1152         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
1153         (test_range_functions): New function.
1154         (sbitmap_c_tests): Likewise.
1155         * selftest-run-tests.c (selftest::run_tests): Run new tests.
1156         * selftest.h (sbitmap_c_tests): New function.
1158         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
1160 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
1162         * config/rs6000/amo.h: Fix spacing issue.
1164 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
1166         PR target/82498
1167         * config/i386/i386.md (*ashl<mode>3_mask_1,
1168         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
1169         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
1170         patterns.
1172 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
1174         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
1175         (profile_probability): Set max_probability
1176         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
1177         in temporaries.
1178         * profile-count.c (profile_probability::differs_from_p): Do not
1179         rely on max_probaiblity == 10000
1181 2017-10-12  Jeff Law  <law@redhat.com>
1183         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
1184         negative offsets.
1186 2017-10-12  Martin Sebor  <msebor@redhat.com>
1188         PR other/82301
1189         PR c/82435
1190         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
1191         (handle_alias_pairs): Call it.
1192         * common.opt (-Wattribute-alias): New option.
1193         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
1194         * doc/invoke.texi (-Wattribute-alias): Document.
1196 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
1198         Revert
1199         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
1200         PR sanitizer/82353
1201         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1202         locations.
1203         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1204         (make_hard_regno_born, make_hard_regno_dead): Update
1205         bb_killed_pseudos and bb_gen_pseudos.
1207 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
1209         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
1211 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
1213         * config/alpha/alpha.c (alpha_split_conditional_move):
1214         Use std::swap instead of manually swapping.
1215         (alpha_stdarg_optimize_hook): Ditto.
1216         (alpha_canonicalize_comparison): Ditto.
1218 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
1220         * tree-loop-distribution.c (struct builtin_info): New struct.
1221         (struct partition): Refactor fields into struct builtin_info.
1222         (partition_free): Free struct builtin_info.
1223         (build_size_arg_loc, build_addr_arg_loc): Delete.
1224         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
1225         information from struct builtin_info.
1226         (find_single_drs): New function refactored from classify_partition.
1227         Also moved builtin validity checks to this function.
1228         (compute_access_range, alloc_builtin): New functions.
1229         (classify_builtin_st, classify_builtin_ldst): New functions.
1230         (classify_partition): Refactor code into functions find_single_drs,
1231         classify_builtin_st and classify_builtin_ldst.
1232         (distribute_loop): Don't do runtime alias check when distributing
1233         loop nest.
1234         (find_seed_stmts_for_distribution): New function.
1235         (pass_loop_distribution::execute): Refactor code finding seed
1236         stmts into above function.  Support distribution for the innermost
1237         two-level loop nest.  Adjust dump information.
1239 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
1241         * tree-loop-distribution.c: Adjust the general comment.
1242         (NUM_PARTITION_THRESHOLD): New macro.
1243         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
1244         (classify_partition): Skip builtin pattern of loop nest's inner loop.
1245         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
1246         in call to build_partition_graph.
1247         (finalize_partitions): New parameter.  Make loop distribution more
1248         conservative by fusing more partitions.
1249         (distribute_loop): Don't do runtime alias check in case of loop nest
1250         distribution.
1251         (find_seed_stmts_for_distribution): New function.
1252         (prepare_perfect_loop_nest): New function.
1253         (pass_loop_distribution::execute): Refactor code finding seed stmts
1254         and loop nest into above functions.  Support loop nest distribution.
1255         Adjust dump information accordingly.
1257 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
1259         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
1260         and set PTYPE_SEQUENTIAL for merged partition.
1262 2017-10-12  Richard Biener  <rguenther@suse.de>
1264         PR tree-optimization/69728
1265         Revert
1266         2017-09-19  Richard Biener  <rguenther@suse.de>
1268         PR tree-optimization/69728
1269         * graphite-sese-to-poly.c (schedule_error): New global.
1270         (add_loop_schedule): Handle empty domain by failing the
1271         schedule.
1272         (build_original_schedule): Handle schedule_error.
1274         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
1275         domain by returning an unchanged schedule.
1277 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
1279         * genrecog.c (validate_pattern): For VEC_SELECT verify that
1280         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
1282 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
1284         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
1285         Handle params.def.
1287 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
1289         PR c++/82159
1290         * expr.c (store_field): Don't optimize away bitsize == 0 store
1291         from CALL_EXPR with addressable return type.
1293 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
1295         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
1296         * config/rs6000/rs6000.md (sel): Delete mode attribute.
1297         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
1298         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
1299         TARGET_ISEL instead of TARGET_ISEL<sel>.
1301 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
1303         * config/rs6000/rs6000.c
1304         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
1306 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
1308         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
1309         Move up in file.
1310         (reg_or_cint_operand): Fix comment.
1311         (reg_or_zero_operand): New predicate.
1312         * config/rs6000/rs6000-protos.h (output_isel): Delete.
1313         * config/rs6000/rs6000.c (output_isel): Delete.
1314         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
1315         instead of reg_or_cint_operand.  Output instruction directly (not via
1316         output_isel).
1317         (isel_unsigned_<mode>): Ditto.
1318         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
1319         gpc_reg_operand.  Add an instruction alternative for this.  Output
1320         instruction directly.
1321         (*isel_reversed_unsigned_<mode>): Ditto.
1323 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
1325         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
1326         (TARGET_CANONICALIZE_COMPARISON): Define.
1328 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
1330         PR target/81422
1331         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1332         Check whether the dest is REG before adding REG_EQUIV note.
1334 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
1336         PR sanitizer/82353
1337         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
1338         locations.
1339         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
1340         (make_hard_regno_born, make_hard_regno_dead): Update
1341         bb_killed_pseudos and bb_gen_pseudos.
1343 2017-10-11  Nathan Sidwell  <nathan@acm.org>
1345         * incpath.h (enum incpath_kind): Name enum, prefix values.
1346         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
1347         * incpath.c (heads, tails): Use INC_MAX.
1348         (add_env_var_paths, add_standard_paths): Use incpath_kind.
1349         (merge_include_chains, split_quote_chain,
1350         register_include_chains): Update incpath_kind names.
1351         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
1352         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
1353         names.
1354         (add_framework_path, darwin_register_objc_includes): Likewise.
1355         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
1357 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
1359         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
1360         Do not use float_operator operator predicate.
1361         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
1362         * config/i386/predicates.md (float_operator): Remove predicate.
1364 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
1366         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
1367         (*jccxf_i387): Ditto.
1368         (*jcc<mode>_i387): Ditto.
1369         (*jccu<mode>_i387): Ditto.
1370         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
1371         (*jcc_*_i387 splitters): Remove.
1372         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
1373         * config/i386/i386.c (ix86_split_fp_branch): Remove.
1374         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
1375         Remove predicate.
1377 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
1379         * profile-count.h (slow_safe_scale_64bit): New function.
1380         (safe_scale_64bit): New inline.
1381         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
1382         * profile-count.c: Include wide-int.h
1383         (slow_safe_scale_64bit): New.
1385 2017-10-11  Nathan Sidwell  <nathan@acm.org>
1387         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
1388         HAS_DECL_ASSEMBLER_NAME_P.
1389         * gimple-expr.c (gimple_decl_printable_name: Check
1390         HAS_DECL_ASSEMBLER_NAME_P too.
1391         * ipa-utils.h (type_in_anonymous_namespace_p): Check
1392         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
1393         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
1394         * passes.c (rest_of_decl_compilation): Check
1395         HAS_DECL_ASSEMBLER_NAME_P too.
1396         * recog.c (verify_changes): Likewise.
1397         * tree-pretty-print.c (dump_decl_name): Likewise.
1398         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
1400         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
1401         (SET_DECL_ASSEMBLER_NAME): Use it.
1402         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
1403         (COPY_DECL_ASSEMBLER_NAME): Likewise.
1404         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
1406 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
1408         * config.gcc (i386, x86_64): Add extra objects.
1409         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
1410         (ix86_min_insn_size): Declare.
1411         (ix86_issue_rate): Declare.
1412         (ix86_adjust_cost): Declare.
1413         (ia32_multipass_dfa_lookahead): Declare.
1414         (ix86_macro_fusion_p): Declare.
1415         (ix86_macro_fusion_pair_p): Declare.
1416         (ix86_bd_has_dispatch): Declare.
1417         (ix86_bd_do_dispatch): Declare.
1418         (ix86_core2i7_init_hooks): Declare.
1419         (ix86_atom_sched_reorder): Declare.
1420         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
1421         (COSTS_N_BYTES): Move to x86-tune-costs.h.
1422         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
1423         (rip_relative_addr_p): Rename to ...
1424         (ix86_rip_relative_addr_p): ... this one; export.
1425         (memory_address_length): Update.
1426         (ix86_issue_rate): Move to x86-tune-sched.c.
1427         (ix86_flags_dependent): Move to x86-tune-sched.c.
1428         (ix86_agi_dependent): Move to x86-tune-sched.c.
1429         (exact_dependency_1): Move to x86-tune-sched.c.
1430         (exact_store_load_dependency): Move to x86-tune-sched.c.
1431         (ix86_adjust_cost): Move to x86-tune-sched.c.
1432         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
1433         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
1434         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
1435         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
1436         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
1437         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
1438         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
1439         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
1440         (min_insn_size): Rename to ...
1441         (ix86_min_insn_size): ... this one; export.
1442         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
1443         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
1444         (core2i7_first_cycle_multipass_backtrack): Move to
1445         x86-tune-sched-core.c.
1446         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
1447         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
1448         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
1449         (ix86_avoid_jump_mispredicts): Update.
1450         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
1451         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
1452         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
1453         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
1454         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
1455         (MAX_INSN): Move to ix86-tune-sched-bd.c.
1456         (MAX_IMM): Move to ix86-tune-sched-bd.c.
1457         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
1458         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
1459         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
1460         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
1461         (MAX_STORE): Move to ix86-tune-sched-bd.c.
1462         (BIG): Move to ix86-tune-sched-bd.c.
1463         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
1464         (enum insn_path): Move to ix86-tune-sched-bd.c.
1465         (get_mem_group): Move to ix86-tune-sched-bd.c.
1466         (is_cmp): Move to ix86-tune-sched-bd.c.
1467         (dispatch_violation): Move to ix86-tune-sched-bd.c.
1468         (is_branch): Move to ix86-tune-sched-bd.c.
1469         (is_prefetch): Move to ix86-tune-sched-bd.c.
1470         (init_window): Move to ix86-tune-sched-bd.c.
1471         (allocate_window): Move to ix86-tune-sched-bd.c.
1472         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
1473         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
1474         (process_end_window): Move to ix86-tune-sched-bd.c.
1475         (allocate_next_window): Move to ix86-tune-sched-bd.c.
1476         (find_constant): Move to ix86-tune-sched-bd.c.
1477         (get_num_immediates): Move to ix86-tune-sched-bd.c.
1478         (has_immediate): Move to ix86-tune-sched-bd.c.
1479         (get_insn_path): Move to ix86-tune-sched-bd.c.
1480         (get_insn_group): Move to ix86-tune-sched-bd.c.
1481         (count_num_restricted): Move to ix86-tune-sched-bd.c.
1482         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
1483         (add_insn_window): Move to ix86-tune-sched-bd.c.
1484         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
1485         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
1486         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
1487         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
1488         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
1489         (do_dispatch): Move to ix86-tune-sched-bd.c.
1490         (has_dispatch): Move to ix86-tune-sched-bd.c.
1491         * config/i386/t-i386: Add new object files.
1492         * config/i386/x86-tune-costs.h: New file.
1493         * config/i386/x86-tune-sched-atom.c: New file.
1494         * config/i386/x86-tune-sched-bd.c: New file.
1495         * config/i386/x86-tune-sched-core.c: New file.
1496         * config/i386/x86-tune-sched.c: New file.
1498 2017-10-11  Liu Hao  <lh_mouse@126.com>
1500         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
1501         the generic version below instead.
1502         (should_colorize): Recognize Windows consoles as terminals
1503         for MinGW targets.
1504         * pretty-print.c [__MINGW32__] (write_all): New function.
1505         [__MINGW32__] (find_esc_head): Likewise.
1506         [__MINGW32__] (find_esc_terminator): Likewise.
1507         [__MINGW32__] (eat_esc_sequence): Likewise.
1508         [__MINGW32__] (mingw_ansi_fputs): New function that handles
1509         ANSI escape codes.
1510         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
1511         for MinGW targets.
1513 2017-10-11  Richard Biener  <rguenther@suse.de>
1515         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
1516         Properly call analyze_scalar_evolution with the loop of the stmt.
1518 2017-10-11  Richard Biener  <rguenther@suse.de>
1520         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
1521         * tree-core.h (tree_base): Add chrec_var union member.
1522         * tree.h (CHREC_VAR): Remove.
1523         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
1524         * tree-chrec.h (build_polynomial_chrec): Adjust.
1525         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
1526         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
1528 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
1530         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
1531         * match.pd: ... here.
1532         ((T) X == (T) Y): Relax condition.
1534 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
1536         PR tree-optimization/82472
1537         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
1538         comment.
1539         (break_alias_scc_partitions): Update postorder number.
1541 2017-10-11  Martin Liska  <mliska@suse.cz>
1543         PR sanitizer/82490
1544         * opts.c (parse_no_sanitize_attribute): Do not use error_value
1545         variable.
1546         * opts.h (parse_no_sanitize_attribute): Remove last argument.
1548 2017-10-11  Martin Liska  <mliska@suse.cz>
1550         * print-rtl.c (print_insn): Move declaration of idbuf
1551         to same scope as name.
1553 2017-10-11  Martin Liska  <mliska@suse.cz>
1555         Revert r253637:
1557         PR sanitizer/82484
1558         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
1559         volatile arguments.
1561 2017-10-11  Martin Liska  <mliska@suse.cz>
1563         PR sanitizer/82484
1564         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
1565         volatile arguments.
1567 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
1569         * config.gcc (default_gnu_indirect_function): Default to yes for
1570         arm*-*-linux* with glibc.
1572 2017-10-11  Richard Biener  <rguenther@suse.de>
1574         * tree-scalar-evolution.c (get_scalar_evolution): Handle
1575         default-defs and types we do not want to analyze.
1576         (interpret_loop_phi): Replace unreachable code with an assert.
1577         (compute_scalar_evolution_in_loop): Remove and inline ...
1578         (analyze_scalar_evolution_1): ... here, replacing condition with
1579         what makes the intent clearer.  Remove handling of cases
1580         get_scalar_evolution now handles.
1582 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
1584         PR rtl-optimization/81434
1585         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
1586         comment for main loop.  In sched_group_found if, also add checks for
1587         pass and min_cost_group.
1589 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
1591         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
1592         (rs6000_insn_cost): New function.
1593         * config/rs6000/rs6000.md (cost): New attribute.
1595 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
1596             H.J. Lu  <hongjiu.lu@intel.com>
1598         PR target/79565
1599         PR target/82483
1600         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
1601         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
1602         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
1603         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
1604         to OPTION_MASK_ISA_AVX512VL - builtins that have both
1605         OPTION_MASK_ISA_MMX and some other bit set require both
1606         mmx and the ISAs without the mmx bit.
1607         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
1608         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
1609         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
1610         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
1611         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
1612         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
1613         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
1614         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
1615         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
1616         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
1617         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
1618         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
1619         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
1620         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
1621         Add OPTION_MASK_ISA_MMX.
1623 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
1625         * config.gcc (armv7*-*-freebsd*): New target.
1626         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
1628 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
1630         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
1631         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
1632         spot in the file.
1634 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
1636         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
1637         a template parameter.
1638         (WIDE_INT_REF_FOR): Update accordingly.
1639         * tree.h (wi::int_traits <const_tree>): Delete.
1640         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
1641         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
1642         (wi::tree_to_wide_ref): New typedef.
1643         (wi::to_wide): New function.
1644         * calls.c (get_size_range): Use wi::to_wide when operating on
1645         trees as wide_ints.
1646         * cgraph.c (cgraph_node::create_thunk): Likewise.
1647         * config/i386/i386.c (ix86_data_alignment): Likewise.
1648         (ix86_local_alignment): Likewise.
1649         * dbxout.c (stabstr_O): Likewise.
1650         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
1651         * expr.c (const_vector_from_tree): Likewise.
1652         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
1653         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
1654         (fold_negate_expr_1, int_const_binop_1, const_binop)
1655         (fold_convert_const_int_from_real, optimize_bit_field_compare)
1656         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
1657         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
1658         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
1659         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
1660         (fold_not_const, round_up_loc): Likewise.
1661         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
1662         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
1663         (alloca_call_type): Likewise.
1664         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
1665         * godump.c (go_output_typedef): Likewise.
1666         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
1667         * internal-fn.c (get_min_precision): Likewise.
1668         * ipa-cp.c (ipcp_store_vr_results): Likewise.
1669         * ipa-polymorphic-call.c
1670         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
1671         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
1672         (ipa_modify_call_arguments): Likewise.
1673         * match.pd: Likewise.
1674         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
1675         * print-tree.c (print_node_brief, print_node): Likewise.
1676         * stmt.c (expand_case): Likewise.
1677         * stor-layout.c (layout_type): Likewise.
1678         * tree-affine.c (tree_to_aff_combination): Likewise.
1679         * tree-cfg.c (group_case_labels_stmt): Likewise.
1680         * tree-data-ref.c (dr_analyze_indices): Likewise.
1681         (prune_runtime_alias_test_list): Likewise.
1682         * tree-dump.c (dequeue_and_dump): Likewise.
1683         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
1684         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
1685         * tree-pretty-print.c (dump_generic_node): Likewise.
1686         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
1687         (simple_iv_with_niters): Likewise.
1688         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1689         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
1690         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
1691         * tree-ssa-loop-niter.c (split_to_var_and_offset)
1692         (refine_value_range_using_guard, number_of_iterations_ne_max)
1693         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
1694         (get_cst_init_from_scev, record_nonwrapping_iv)
1695         (scev_var_range_cant_overflow): Likewise.
1696         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
1697         * tree-ssa-pre.c (compute_avail): Likewise.
1698         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
1699         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
1700         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
1701         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
1702         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
1703         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
1704         (dump_case_nodes, try_switch_expansion): Likewise.
1705         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
1706         (vect_do_peeling): Likewise.
1707         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
1708         * tree-vect-stmts.c (vectorizable_load): Likewise.
1709         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
1710         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
1711         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
1712         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
1713         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
1714         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
1715         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
1716         (evrp_dom_walker::before_dom_children): Likewise.
1717         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
1718         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
1719         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
1720         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
1721         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
1722         (get_range_pos_neg): Likewise.
1723         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
1724         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
1725         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
1726         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
1727         * config/avr/avr.c (avr_fold_builtin): Likewise.
1728         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
1729         * config/msp430/msp430.c (msp430_attr): Likewise.
1730         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
1731         * config/powerpcspe/powerpcspe-c.c
1732         (altivec_resolve_overloaded_builtin): Likewise.
1733         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
1734         (rs6000_expand_ternop_builtin): Likewise.
1735         * config/rs6000/rs6000-c.c
1736         (altivec_resolve_overloaded_builtin): Likewise.
1737         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
1738         (rs6000_expand_ternop_builtin): Likewise.
1739         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
1741 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
1743         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
1744         when copying loop nest with only one inner loop.
1746 2017-10-10  Richard Biener  <rguenther@suse.de>
1748         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
1749         blocks if SCEV is active.
1750         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
1751         dead code.
1752         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
1753         (scev_initialize): Assert we are not yet initialized.
1755 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
1757         * tree-loop-distribution.c (generate_loops_for_partition): Remove
1758         inner loop's exit stmt by making it always exit the loop, otherwise
1759         we would generate an infinite empty loop.
1761 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
1763         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
1764         renaming variables in new preheader if it's deleted.
1766 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
1768         * tree-loop-distribution.c (struct partition): Remove unused field
1769         loops of the structure.
1770         (partition_alloc, partition_free): Ditto.
1771         (build_rdg_partition_for_vertex): Ditto.
1773 2017-10-09  Jeff Law  <law@redhat.com>
1775         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
1776         return type to match prototype and documentation.
1778 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
1780         * config/rs6000/rs6000.c (processor_costs): Move to ...
1781         * config/rs6000/rs6000.h: ... here.
1782         (rs6000_cost): Declare.
1784 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
1786         * except.c (setjmp_fn): New global variable.
1787         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
1788         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
1789         if DONT_USE_BUILTIN_SETJMP is defined.
1791 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
1793         * target.def (insn_cost): New hook.
1794         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
1795         * doc/tm.texi: Regenerate.
1796         * rtlanal.c (insn_cost): Use the new hook.
1798 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
1800         * combine.c (combine_validate_cost): Compute the new insn_cost,
1801         not just pattern_cost.
1802         (try_combine): Adjust comment.
1804 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
1806         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
1807         insn_cost.
1808         * combine.c (uid_insn_cost): Adjust comment.
1809         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
1810         of insn_rtx_cost
1811         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
1812         * dse.c (find_shift_sequence): Ditto.
1813         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
1814         (bb_valid_for_noce_process_p): Use pattern_cost.
1815         * rtl.h (insn_rtx_cost): Delete.
1816         (pattern_cost): New prototype.
1817         (insn_cost): New prototype.
1818         * rtlanal.c (insn_rtx_cost): Rename to...
1819         (pattern_cost): ... this.
1820         (insn_cost): New.
1822 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
1824         * config/i386/i386.md (*jcc_2): Remove insn pattern.
1825         (*jcc<mode>_0_r_i387): Ditto.
1826         (*jccxf_r_i387): Ditto.
1827         (*jcc<mode>_r_i387): Ditto.
1828         (*jccu<mode>_r_i387): Ditto.
1829         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
1830         (*jcc): Rename from *jcc_1.
1832 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1834         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
1835         deferred rescans after the lvx/stvx recombination pre-pass.
1837 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1839         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
1840         memory operation instruction support.
1841         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
1842         (rs6000-ibm-aix[789]*): Likewise.
1843         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
1844         Document new functions.
1846 2017-10-09  Richard Biener  <rguenther@suse.de>
1848         PR tree-optimization/82397
1849         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
1850         equality only for semantically equal trees.
1852 2017-10-09  Richard Biener  <rguenther@suse.de>
1854         PR tree-optimization/82449
1855         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
1856         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
1857         allow constant addresses.
1858         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
1859         are linear.
1861 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1863         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
1864         flags.
1866 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1868         PR target/82463
1869         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
1870         definitions.
1872 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1874         PR target/82465
1875         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
1877 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
1879         PR target/82464
1880         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
1881         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
1883 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
1885         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
1886         (WI_BINARY_PREDICATE_RESULT): Likewise.
1887         (wi::binary_traits::operator_result): New type.
1888         (wi::binary_traits::predicate_result): Likewise.
1889         (generic_wide_int::operator~, unary generic_wide_int::operator-)
1890         (generic_wide_int::operator==, generic_wide_int::operator!=)
1891         (generic_wide_int::operator&, generic_wide_int::and_not)
1892         (generic_wide_int::operator|, generic_wide_int::or_not)
1893         (generic_wide_int::operator^, generic_wide_int::operator+
1894         (binary generic_wide_int::operator-, generic_wide_int::operator*):
1895         Delete.
1896         (operator~, unary operator-, operator==, operator!=, operator&)
1897         (operator|, operator^, operator+, binary operator-, operator*): New
1898         functions.
1899         * expr.c (get_inner_reference): Use wi::bit_and_not.
1900         * fold-const.c (fold_binary_loc): Likewise.
1901         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
1902         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1903         (bit_value_binop): Likewise.
1904         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
1905         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
1906         (extract_range_from_binary_expr_1): Likewise.
1907         (masked_increment): Likewise.
1908         (simplify_bit_ops_using_ranges): Likewise.
1910 2017-10-09  Martin Jambor  <mjambor@suse.cz>
1912         PR hsa/82416
1913         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
1914         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
1915         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
1916         COMPLEX types.
1917         (hsa_fixup_mov_insn_type): New function.
1918         (hsa_op_with_type::get_in_type): Use it.
1919         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
1920         immediates in an assert.
1921         (hsa_op_with_type::extend_int_to_32bit): New method.
1922         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
1923         types.  Convert to dest type if necessary.
1924         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
1925         (reg_for_gimple_ssa): Pass false as min32int to
1926         hsa_type_for_scalar_tree_type.
1927         (gen_hsa_addr): Fixup type when creating addresable temporary.
1928         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
1929         (gen_hsa_unary_operation): Extend operands and convert to dest type if
1930         necessary.  Call hsa_fixup_mov_insn_type.
1931         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
1932         extend operands and convert to dest type if necessary.
1933         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
1934         to dest type if necessary.
1935         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
1936         if conversion nt necessary and size matches.
1937         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
1938         to dest type if necessary.
1939         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
1940         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
1941         necessary.
1942         (gen_hsa_clrsb): Likewise.
1943         (gen_hsa_ffs): Likewise.
1944         (gen_hsa_divmod): Extend operands and convert to dest type if
1945         necessary.
1946         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
1948 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
1950         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
1951         Remove empty default arguments.  Use a brace block as output
1952         statement.
1953         (conditional return): Ditto.
1954         (jump): Ditto.
1955         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
1956         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
1957         Ditto.
1958         (group_ending_nop): Ditto.
1959         (doloop_end): Ditto.
1960         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
1961         (splitters for those): Ditto.
1963 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
1965         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
1966         a conditional jump (and the compare for it) so that pc_rtx is the
1967         last operand.
1968         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
1969         for the deleted and renamed ctr<mode>_internal[234] patterns.
1970         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
1971         Delete second conditional return pattern.
1972         (ctr<mode>_internal2): Delete this second bdnz pattern.
1973         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
1974         (ctr<mode>_internal4): Delete this second bdz pattern.
1976 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
1978         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
1979         (always_initialized_rtx_for_ssa_name_p): New predicate.
1980         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
1981         (finish_out_of_ssa): Free new field of SA.
1982         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
1983         * tree-ssa-coalesce.c: Include tree-ssa.h.
1984         (get_parm_default_def_partitions): Remove extern keyword.
1985         (get_undefined_value_partitions): New function.
1986         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
1987         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
1988         uninitialized bits.
1989         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
1991 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
1993         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
1995 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
1997         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
1998         for targets that preffer 128bit.
2000 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
2002         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
2004 2017-10-08  Olivier Hainque  <hainque@adacore.com>
2006         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
2007         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
2008         prevent DSE.
2009         (thumb_set_return_address): Likewise.
2011 2017-10-08  Olivier Hainque  <hainque@adacore.com>
2013         * common/config/arm/arm-common.c (arm_except_unwind_info):
2014         Handle DWARF2_UNWIND_INFO.
2016 2017-10-07  Michael Collison <michael.collison@arm.com>
2018         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
2019         New pattern.
2021 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
2023         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
2024         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
2025         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
2026         defined, force the creation of a new block for a dispatch label.
2028 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
2030         * invoke.texi (Wsuggest-attribute=cold): Document.
2031         * common.opt (Wsuggest-attribute=cold): New
2032         * ipa-pure-const.c (warn_function_cold): New function.
2033         * predict.c (compute_function_frequency): Use it.
2034         * predict.h (warn_function_cold): Declare.
2036 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
2038         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
2039         Update profile.
2041 2017-10-06  Martin Liska  <mliska@suse.cz>
2043         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
2044         keyword for member functions.
2045         (struct sanopt_tree_couple): New struct.
2046         (struct sanopt_tree_couple_hash): New function.
2047         (struct sanopt_ctx): Add new hash_map.
2048         (has_dominating_ubsan_ptr_check): New function.
2049         (record_ubsan_ptr_check_stmt): Likewise.
2050         (maybe_optimize_ubsan_ptr_ifn): Likewise.
2051         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
2052         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
2054 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
2056         PR target/82440
2057         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
2058         aarch64_simd_valid_immediate on CONST_VECTORs.
2059         (aarch64_reg_or_bic_imm): Likewise.
2061 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
2063         PR rtl-optimization/82396
2064         * haifa-sched.c (ready_sort_real): Disable qsort checking.
2066 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
2068         * graphite-dependences.c (scop_get_reads): Move code to...
2069         (scop_get_must_writes): Move code to...
2070         (scop_get_may_writes): Move code to...
2071         (scop_get_reads_and_writes): ... here.
2072         (scop_get_dependences): Call scop_get_reads_and_writes.
2074 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
2076         PR tree-optimization/82434
2077         * fold-const.h (can_native_encode_type_p,
2078         can_native_encode_string_p): Remove.
2079         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
2080         don't encode anything, just return what would be otherwise returned.
2081         (native_encode_fixed, native_encode_complex, native_encode_vector):
2082         Likewise.
2083         (native_encode_string): Likewise.  Inline by hand
2084         can_native_encode_string_p.
2085         (can_native_encode_type_p): Remove.
2086         (can_native_encode_string_p): Remove.
2087         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
2088         STRING_CSTs using can_native_encode_string_p, test all
2089         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
2090         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
2091         argument from native_encode_expr.
2092         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
2093         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
2094         but just 2.
2096 2017-10-06  Richard Biener  <rguenther@suse.de>
2098         PR tree-optimization/82397
2099         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
2100         operand_equal_p but rely on data_ref_compare_tree for detecting
2101         equalities.
2102         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
2103         to match up with dr_group_sort_cmp.
2105 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2107         PR target/82322
2108         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
2109         builtin.
2110         * config/s390/s390-builtin-types.def: Regenerate.
2112 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2114         PR target/82317
2115         * config/s390/s390-builtin-types.def: Regenerate.
2116         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
2117         Change flag from B_VXE to B_VX.
2118         (s390_vec_min_dbl): Remove B_VXE flag.
2120 2017-10-06  Richard Biener  <rguenther@suse.de>
2122         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
2123         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
2124         translate_isl_ast_to_gimple::is_valid_rename,
2125         translate_isl_ast_to_gimple::get_rename,
2126         translate_isl_ast_to_gimple::get_def_bb_for_const,
2127         translate_isl_ast_to_gimple::get_new_name,
2128         translate_isl_ast_to_gimple::collect_all_ssa_names,
2129         translate_isl_ast_to_gimple::copy_loop_phi_args,
2130         translate_isl_ast_to_gimple::collect_all_ssa_names,
2131         translate_isl_ast_to_gimple::copy_loop_phi_args,
2132         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
2133         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
2134         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
2135         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
2136         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
2137         translate_isl_ast_to_gimple::copy_cond_phi_args,
2138         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
2139         translate_isl_ast_to_gimple::edge_for_new_close_phis,
2140         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
2141         translate_isl_ast_to_gimple::rename_uses,
2142         translate_isl_ast_to_gimple::rename_all_uses): Remove.
2143         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
2144         (set_rename_for_each_def): Likewise.
2145         (graphite_copy_stmts_from_block): Handle debug stmt resetting
2146         here.  Handle rewriting SCEV analyzable uses here.
2147         (copy_bb_and_scalar_dependences): Generate code for PHI
2148         copy-in/outs.
2149         (graphite_regenerate_ast_isl): Adjust.
2150         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
2151         (add_write, add_read): New functions.
2152         (build_cross_bb_scalars_def): Use it and simplify.
2153         (build_cross_bb_scalars_use): Likewise.
2154         (graphite_find_cross_bb_scalar_vars): Inline into...
2155         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
2156         simulating out-of-SSA.  Compute liveout and add dependencies.
2157         (build_scops): Force an empty entry block.
2158         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
2159         members.
2160         (sese_build_liveouts): Declare.
2161         (sese_trivially_empty_bb_p): Likewise.
2162         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
2163         compute liveout and debug_liveout.
2164         (sese_bad_liveouts_use): Remove.
2165         (sese_reset_debug_liveouts_bb): Likewise.
2166         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
2167         (sese_build_liveouts): Build liveout and debug_liveout and store
2168         it in region.
2169         (new_sese_info): Adjust.
2170         (free_sese_info): Likewise.
2171         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
2172         do not build liveout here.
2173         (move_sese_in_condition): Adjust region entry.
2174         (scev_analyzable_p): Match up with chrec_apply requirements.
2175         (sese_trivially_empty_bb_p): New.
2176         * tree-into-ssa.c (get_reaching_def): Properly support generating
2177         default-defs for incremental rewrite of anonymous names.
2179 2017-10-06  Richard Biener  <rguenther@suse.de>
2181         * graphite-sese-to-poly.c (extract_affine): For casts increasing
2182         precision do not perform modulo reduction.
2184 2017-10-06  Richard Biener  <rguenther@suse.de>
2186         PR tree-optimization/82436
2187         * tree-vect-slp.c (vect_supported_load_permutation_p): More
2188         conservatively choose the vectorization factor when checking
2189         whether we can perform the required load permutation.
2190         (vect_transform_slp_perm_load): Assert when we may not fail.
2192 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
2194         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
2195         message for incompatible -msdata=* and -mcall-* options.
2197 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
2199         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
2200         rate for post-reload scheduling.
2202 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
2204         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
2206 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
2208         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
2209         to improve monte carlo in scimark.
2211 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
2213         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
2214         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
2215         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
2216         pentium4_cost, nocona_cost): Set reassociation width to 1.
2217         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
2218         width to 2 for fp operations and 1 otherwise.
2219         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
2220         for int and fp.
2221         (atom_cost): Set reassociation width to 2.
2222         (slm_cost, generic_cost): Set fp reassociation width
2223         to 2 and 1 otherwise.
2224         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
2225         (core_cost): Set fp reassociation width to 4 and vector to 2.
2226         (ix86_reassociation_width): Rewrite using cost table; special case
2227         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
2228         and TARGET_AVX128_OPTIMAL.
2229         * config/i386/i386.h (processor_costs): Add
2230         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
2231         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
2232         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
2233         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
2234         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
2235         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
2237 2017-10-05  Nathan Sidwell  <nathan@acm.org>
2239         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
2241 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
2243         * config/arm/arm.c (arm_test_fpu_data): New.
2244         (arm_run_selftests): Call arm_test_fpu_data.
2246 2017-10-04  Nathan Sidwell  <nathan@acm.org>
2248         * toplev.c (toplev::main): Remove excess parens on pretty_printer
2249         decl.
2250         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
2252 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
2254         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
2255         check type for aarch64_simd_valid_immediate.
2256         (aarch64_output_simd_mov_immediate): Update prototype.
2257         (aarch64_simd_valid_immediate): Update prototype.
2258         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
2259         support for ORR-immediate.
2260         (and<mode>3): modified pattern to add support for BIC-immediate.
2261         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
2262         now checks for valid immediate for BIC and ORR based on new enum
2263         argument.
2264         (aarch64_output_simd_mov_immediate): Function now used to output
2265         BIC/ORR imm as well based on new enum argument.
2266         * config/aarch64/constraints.md (Do): New vector immediate constraint.
2267         (Db) : Likewise.
2268         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
2269         (aarch64_reg_or_bic_imm): Likewise.
2271 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2273         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
2274         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
2276 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
2278         Revert r253399:
2280         PR rtl-optimization/82396
2281         * haifa-sched.c (autopref_multipass_init): Simplify
2282         initialization.
2283         (autopref_rank_data): Simplify sort order.
2284         * sched-int.h (autopref_multipass_data_): Remove
2285         multi_mem_insn_p, min_offset and max_offset.
2287 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2289         * doc/sourcebuild.texi: Document vect_peeling_profitable.
2291 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2293         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
2294         vect_doubleint_cvt.
2296 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2298         * doc/sourcebuild.texi: Document vect_long_mult.
2300 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
2302         PR tree-optimization/82413
2303         * fold-const.c (build_range_check): Use widest_int when comparing
2304         the maximum ETYPE value with HIGH.
2306 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
2308         PR rtl-optimization/82396
2309         * haifa-sched.c (autopref_multipass_init): Simplify
2310         initialization.
2311         (autopref_rank_data): Simplify sort order.
2312         * sched-int.h (autopref_multipass_data_): Remove
2313         multi_mem_insn_p, min_offset and max_offset.
2315 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
2317         PR tree-optimization/82381
2318         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
2319         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
2320         is not.
2322         PR tree-optimization/82374
2323         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
2324         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
2325         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
2326         current_function_decl to the new decl.
2328 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2330         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
2331         helper macro for IEEE float128 hardware built-in functions.
2332         (SQRTF128_ODD): Add built-in functions with the round-to-odd
2333         semantics.
2334         (TRUNCF128_ODD): Likewise.
2335         (ADDF128_ODD): Likewise.
2336         (SUBF128_ODD): Likewise.
2337         (MULF128_ODD): Likewise.
2338         (DIVF128_ODD): Likewise.
2339         (FMAF128_ODD): Likewise.
2340         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
2341         UNSPEC_TRUNC_ROUND_TO_ODD.
2342         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
2343         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
2344         floating point round to odd instructions.
2345         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
2346         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
2347         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
2348         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
2349         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
2350         (trunc<mode>sf2_hw): Change the truncate with round to odd
2351         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
2352         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
2353         to odd hardware instructions.
2354         (sub<mode>3_odd): Likewise.
2355         (mul<mode>3_odd): Likewise.
2356         (div<mode>3_odd): Likewise.
2357         (sqrt<mode>2_odd): Likewise.
2358         (fma<mode>4_odd): Likewise.
2359         (fms<mode>4_odd): Likewise.
2360         (nfma<mode>4_odd): Likewise.
2361         (nfms<mode>4_odd): Likewise.
2362         (trunc<mode>df2_odd): Change the truncate with round to odd
2363         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
2364         function.
2365         * doc/extend.texi (PowerPC built-in functions): Update documentation
2366         for existing IEEE float128-bit built-in functions.  Add built-in
2367         functions that generate the IEEE 128-bit floating point round to
2368         odd instructions.
2370 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
2372         PR rtl-optimization/77729
2373         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
2374         to (X&(C1&~C2))|C2 transformations.
2376 2017-10-03  Martin Jambor  <mjambor@suse.cz>
2378         PR tree-optimization/82363
2379         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
2380         mismatch, mark lacc written regardless of racc.
2382 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
2384         PR tree-optimization/82381
2385         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
2386         stmt_to_insert nor wheather SSA_NAMEs are default defs.
2387         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
2388         fallthrough into reassoc_stmt_dominates_stmt_p.
2390         PR target/82386
2391         * combine.c (combine_instructions): Don't combine in unreachable
2392         basic blocks.
2394 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
2396         PR target/80210
2397         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
2398         function to not use the have_cpu variable.  Do not set cpu_index,
2399         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
2400         or the default cpu.
2401         (rs6000_valid_attribute_p): Remove duplicate initializations of
2402         old_optimize and func_optimize.
2403         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
2404         (rs6000_activate_target_options): Make global.
2405         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
2406         prototype.
2408 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
2410         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
2411         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
2412         Set *poffset to 0 and *psize and *pmax_size to -1 if
2413         *poffset + *psize overflows in HOST_WIDE_INT.
2415         PR tree-optimization/82387
2416         PR tree-optimization/82388
2417         PR tree-optimization/82389
2418         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
2419         instead of live_bytes non-NULL.
2421 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
2423         PR target/41076
2424         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
2425         alternative.
2427 2017-10-02  Richard Biener  <rguenther@suse.de>
2429         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
2430         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
2431         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
2433 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
2435         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
2436         requested precision matches the type's.
2437         * calls.c (alloc_max_size): Calculate the new candidate size as
2438         a widest_int and use wi::to_widest when comparing it with the
2439         current candidate size.
2440         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
2441         zero rather than integer_zero_node.
2442         * match.pd: Check for a no-op conversion before using wi::add
2443         rather than after.  Use tree_to_uhwi when summing small shift
2444         counts into an unsigned int.
2446 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
2447             Alan Hayward  <alan.hayward@arm.com>
2448             David Sherwood  <david.sherwood@arm.com>
2450         PR target/71307
2451         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
2452         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2453         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
2454         POINTER_AND_FP_REGS.
2456 2017-10-02  Richard Biener  <rguenther@suse.de>
2458         PR tree-optimization/82355
2459         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
2460         a mapping for the enclosing loop but avoid generating one for
2461         the loop tree root.
2462         (copy_bb_and_scalar_dependences): Remove premature codegen
2463         error on PHIs in blocks duplicated into multiple places.
2464         * graphite-scop-detection.c
2465         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
2466         in the region use it as loop and nest to analyze the DR in.
2467         (try_generate_gimple_bb): Likewise.
2468         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
2469         (add_loop_constraints): For blocks in a loop not in the region
2470         create a dimension with a single iteration.
2471         * sese.h (gbb_loop_at_index): Remove assert.
2473 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
2475         * omp-expand.c (adjust_context_scope): New function.
2476         (expand_parallel_call): Call adjust_context_scope.
2478 2017-10-01  Jeff Law  <law@redhat.com>
2480         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
2481         dom_opt_dom_walker class with direct access to private members.
2482         Add comments.  Call test_for_singularity.
2483         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
2484         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
2485         m_dummy_cond anymore.
2486         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
2487         class ctor.
2488         (pass_dominator:execute): Build the dummy_cond here and pass it
2489         to the dom_opt_dom_walker ctor.
2490         (test_for_singularity): New function.
2492 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
2493             Maya Rashish  <coypu@sdf.org>
2495         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
2496         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
2497         (alpha*-*-netbsd*) Use nbsd_tm_file.
2498         (arm*-*-netbsdelf*) Likewise.
2499         (i[34567]86-*-netbsdelf*) Likewise.
2500         (x86_64-*-netbsd*) Likewise.
2501         (mips*-*-netbsd*) Likewise.
2502         (powerpc-*-netbsd*) Likewise.
2503         (sh*-*-netbsd*) Likewise.
2504         (sparc-*-netbsdelf*) Likewise.
2505         (sparc64-*-netbsd*) Likewise.
2506         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
2507         to tm_defines.
2508         (vax-*-netbsdelf*) Likewise.
2509         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
2510         (UINT_FAST8_TYPE) Likewise.
2511         (INT_FAST16_TYPE) Check CHAR_FAST16.
2512         (UINT_FAST16_TYPE) Likewise.
2514 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
2516         PR target/82361
2517         * config/i386/i386.md
2518         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
2519         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
2520         *divmodsi4_zext_2): New define_insn_and_split.
2521         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
2522         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
2523         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
2524         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
2525         New define_insn_and_split.
2526         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
2527         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
2528         operands[1] having DImode when mode is SImode.
2530         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
2531         always SImode for DIV and MOD in REG_EQUAL notes.
2533 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
2535         PR middle-end/82319
2536         * match.pd: Fix handling of NaNs in pattern.
2538 2017-09-29  Jeff Law  <law@redhat.com>
2540         * sbitmap.c (bitmap_bit_in_range_p): New function.
2541         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
2542         * tree-ssa-dse.c (live_bytes_read): New function.
2543         (dse_classify_store): Ignore reads of dead bytes.
2545         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
2546         typos and whitespace errors.
2547         * config/i386/predicates.md (address_no_seg_operand): Likewise.
2548         * config/s390/s390.c (s390_emit_prologue): Likewise.
2550 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
2552         PR target/81481
2553         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
2554         with a symbol for LRA.
2556 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
2558         PR rtl-optimization/82338
2559         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
2561 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
2563         * genmodes.c (calc_wider_mode): Suppress qsort macro.
2564         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
2565         (qsort_chk): Declare.
2566         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
2567         (qsort_chk): New function.
2569 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2571         PR tree-optimization/82337
2572         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
2573         phi definition if the PHI result appears in an abnormal PHI.
2574         (find_basis_for_base_expr): Don't record a basis if the LHS of the
2575         basis appears in an abnormal PHI.
2577 2017-09-29  Richard Biener  <rguenther@suse.de>
2579         * graphite-isl-ast-to-gimple.c
2580         (translate_isl_ast_to_gimple::set_codegen_error): New function.
2581         (binary_op_to_tree): Use it.
2582         (get_rename_from_scev): Likewise.
2583         (copy_loop_phi_nodes): Likewise.
2584         (copy_bb_and_scalar_dependences): Likewise.
2585         (translate_pending_phi_nodes): Likewise.
2587 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
2589         PR target/82339
2590         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
2591         for movabsq $(i32 << shift), r64.
2593 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
2595         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
2596         index when encoding %esp as %rsp to avoid 0x67 prefix.
2598 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
2600         * config/i386/i386.md (*movsf_internal, *movdf_internal):
2601         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
2603 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2605         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
2606         Extensions with more than 16 double VFP registers.
2607         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
2608         to_clear_mask and all code related to it.  Replace the remaining
2609         entry by a sbitmap and adapt code accordingly.
2611 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
2613         * brig-builtins.def: Change pure attributes to const.
2615 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
2617         * config.gcc (default_gnu_indirect_function): Default to yes for
2618         sparc*-*-linux* with glibc.
2620 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
2622         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
2623         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
2624         when creating .init_array and .fini_array sections with priority
2625         specified.
2627 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
2629         PR target/71727
2630         * config/aarch64/aarch64.c
2631         (aarch64_builtin_support_vector_misalignment): Always return false
2632         when misalignment is unknown.
2634 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2636         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
2637         this function to return false if the definition used by the swap
2638         instruction is artificial, or if the memory address from which the
2639         constant value is loaded is not represented by a base address held
2640         in a register or if the base address register is a frame or stack
2641         pointer.  Additionally, return false if the base address of the
2642         loaded constant is a SYMBOL_REF but is not considered to be a
2643         constant.
2644         (replace_swapped_load_constant): New function.
2645         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
2646         loaded constant vector with a load of a swapped constant vector.
2648 2017-09-27  Carl Love  <cel@us.ibm.com>
2650         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
2651         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
2652         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
2653         fctiw instruction.
2655 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
2657         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
2658         first, always call autopref_rank_data otherwise.
2660 2017-09-27  Richard Biener  <rguenther@suse.de>
2662         * graphite-scop-detection.c (find_scop_parameters): Move
2663         loop bound handling ...
2664         (gather_bbs::before_dom_children): ... here, avoiding the need
2665         to build scop_info->loop_nest.
2666         (record_loop_in_sese): Remove.
2667         * sese.h (sese_info_t::loop_nest): Remove.
2668         * sese.c (new_sese_info): Do not allocate loop_nest.
2669         (free_sese_info): Do not free loop_nest.
2671 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
2673         PR c++/82159
2674         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
2675         lhs from calls if the lhs has addressable type.
2677 2017-09-27  Richard Biener  <rguenther@suse.de>
2679         * graphite.h (scop::max_alias_set): New member.
2680         * graphite-scop-detection.c: Remove references to non-existing
2681         --param in comments.
2682         (build_alias_sets): Record the maximum alias set used for drs.
2683         (build_scops): Support zero as unlimited for
2684         --param graphite-max-arrays-per-scop.
2685         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
2686         and inline into ...
2687         (build_poly_sr_1): ... here.  Compute alias set based on the
2688         maximum alias set used for drs rather than
2689         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
2691 2017-09-27  Richard Biener  <rguenther@suse.de>
2693         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
2694         --param loop-block-tile-size=0 to disable tiling.
2696 2017-09-27  Richard Biener  <rguenther@suse.de>
2698         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
2699         (graphite-max-nb-scop-params): Document special value zero.
2700         * domwalk.h (dom_walker::STOP): New symbolical constant.
2701         (dom_walker::dom_walker): Add optional parameter for bb to
2702         RPO mapping.
2703         (dom_walker::~dom_walker): Declare.
2704         (dom_walker::before_dom_children): Document STOP return value.
2705         (dom_walker::m_user_bb_to_rpo): New member.
2706         (dom_walker::m_bb_to_rpo): Likewise.
2707         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
2708         mapping here if not provided by the user.
2709         (dom_walker::~dom_walker): Free bb to RPO mapping if not
2710         provided by the user.
2711         (dom_walker::STOP): Define.
2712         (dom_walker::walk): Do not compute bb to RPO mapping here.
2713         Support STOP return value from before_dom_children to stop
2714         walking.
2715         * graphite-optimize-isl.c (optimize_isl): If the schedule
2716         is the same still generate code if -fgraphite-identity
2717         or -floop-parallelize-all are given.
2718         * graphite-scop-detection.c: Include cfganal.h.
2719         (gather_bbs::gather_bbs): Get and pass through bb to RPO
2720         mapping.
2721         (gather_bbs::before_dom_children): Return STOP for BBs
2722         not in the region.
2723         (build_scops): Compute bb to RPO mapping and pass it to
2724         the domwalk.  Treat --param graphite-max-nb-scop-params=0
2725         as not limiting the number of params.
2726         * graphite.c (graphite_initialize): Remove limit on the
2727         number of basic-blocks in a function.
2728         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
2729         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
2730         default value of 10.
2732 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2734         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
2735         Adjust code to eliminate needing to do the shift right 32-bits
2736         operation after XSCVDPSPN.
2738 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2740         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
2741         ((X / Y) != 0 -> X >= Y): Likewise.
2743 2017-09-26  Carl Love  <cel@us.ibm.com>
2745         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
2746         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
2747         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
2748         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
2749         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
2750         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
2751         definitions and overloading.
2752         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
2753         statement for P9V_BUILTIN_XST_LEN_R.
2754         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
2755         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
2756         define_expand and define_insn for the instructions and builtins.
2757         * doc/extend.texi: Update the built-in documentation file for the new
2758         built-in functions.
2759         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
2760         define_insn for the instructions
2762 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
2764         PR target/39570
2765         * gcc/config/netbsd-protos.h: New file.
2766         * gcc/config/netbsd.c: New file.
2767         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
2768         * gcc/config/t-netbsd: New file.
2769         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
2770         (tmake_file) Add t-netbsd.
2771         (extra_objs) Add netbsd.o.
2773 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
2775         PR fortran/82143
2776         PR fortran/82324
2777         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
2779 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2781         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
2782         sign extension from a vector register to a GPR by doing a 32-bit
2783         direct move and then an EXTSW.
2784         (extendsi<mode>2 splitter): Likewise.
2785         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
2786         right or vector extract after doing XSCVDPSPN.  Use
2787         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
2788         the GPRs.
2789         (movdi_from_sf_zero_ext): Likewise.
2790         (reload_gpr_from_vsxsf): Likewise.
2791         (p8_mfvsrd_4_disf): Delete, no longer used.
2792         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
2793         then needing to move the SFmode to a GPR to use the XSCVDPSP
2794         instruction instead of FRSP and XSCVDPSPN.
2795         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
2796         it is adjacent to the other XSCVSPDP insns.
2797         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
2798         SFmode to be in traditional Altivec registers.
2799         (vsx_xscvdpspn): Eliminate useless alternative constraint.
2800         (vsx_xscvspdpn): Likewise.
2801         (vsx_xscvspdpn_scalar): Likewise.
2803 2017-09-26  Martin Jambor  <mjambor@suse.cz>
2805         * tree-sra.c (compare_access_positions): Put integral types first,
2806         stabilize sorting of integral types, remove conditions putting
2807         non-full-precision integers last.
2808         (sort_and_splice_var_accesses): Disable scalarization if a
2809         non-integert would be represented by a non-full-precision integer.
2811 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
2813         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
2814         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
2815         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
2816         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
2817         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
2818         conditionals inside the function instead of around it.  Call
2819         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
2820         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
2822 2017-09-26  Richard Biener  <rguenther@suse.de>
2824         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
2825         fold in ...
2826         (scop_detection::build_scop_breadth): ... this.  Removed.
2827         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
2828         (scop_detection::harmful_stmt_in_bb): Likewise.
2829         (scop_detection::graphite_can_represent_stmt): Likewise.
2830         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
2831         (scop_detection::can_represent_loop): Remove recursion, fold in ...
2832         (scop_detection::can_represent_loop_1): ... this.  Removed.
2833         (scop_detection::harmful_loop_in_region): Simplify after inlining
2834         the above and remove more quadraticness.
2835         (build_scops): Adjust.
2836         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
2837         quadraticness.
2839 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
2841         PR target/82267
2842         * config/i386/i386.c (ix86_print_operand_address_as): Only test
2843         REGNO (base) == SP_REG if base is a REG.
2845         PR middle-end/35691
2846         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
2847         if it is different SSA_NAME.
2848         (optimize_range_tests_cmp_bitwise): New function.
2849         (optimize_range_tests): Call it.
2851 2017-09-26  Richard Biener  <rguenther@suse.de>
2853         PR tree-optimization/82321
2854         * graphite.c (canonicalize_loop_closed_ssa): Properly check
2855         for the def being inside the loop.
2857 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2859         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
2860         assembler output.
2861         * config/s390/s390-builtins.def: Fix constraint on op4.
2863 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2865         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
2866         independent expanders.
2867         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
2868         ("vec_ordered", "vec_unordered"): New expanders.
2870 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2872         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
2873         for SFmode.
2875 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2877         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
2878         vec_unpacks_lo_v16qi.
2879         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
2881 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2883         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
2884         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
2885         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
2887 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2889         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
2890         predicate.
2891         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
2892         and V16QI.
2893         ("*vec_slb<mode>"): New insn pattern.
2894         ("vec_shr_<mode>"): New expander.
2895         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
2896         and force the shift count operand to V16QImode.
2897         ("vec_srb<mode>"): Set shift count mode to V16QI.
2899 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2901         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
2902         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
2903         ("vec_widen_smult_hi_<mode>"): New expander definitions.
2905 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
2907         PR target/82175
2908         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
2910 2017-09-26  Richard Biener  <rguenther@suse.de>
2912         PR tree-optimization/82320
2913         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
2914         isn't a change.
2916 2017-09-25  Jeff Law  <law@redhat.com>
2918         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
2919         prototype for new argument.
2920         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
2921         mostly extracted from rs6000_emit_allocate_stack.
2922         (rs6000_emit_probe_stack_range_stack_clash): New function.
2923         (rs6000_emit_allocate_stack): Call
2924         rs6000_emit_probe_stack_range_stack_clash as needed.
2925         (rs6000_emit_probe_stack_range): Add additional argument
2926         to call to gen_probe_stack_range{si,di}.
2927         (output_probe_stack_range): New.
2928         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
2929         (output_probe_stack_range_stack_clash): New.
2930         (rs6000_emit_prologue): Emit notes into dump file as requested.
2931         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
2932         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
2933         Add additional operand and pass it to output_probe_stack_range.
2935 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
2937         PR tree-optimization/82163
2938         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
2939         (checking_verify_loop_closed_ssa): New parameter.
2940         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
2941         (check_loop_closed_ssa_stmt): Delete.
2942         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
2943         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
2944         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
2945         changed loops.
2947 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
2949         * brig-builtins.def: Treat HSAIL barrier builtins as
2950         setjmp/longjump style functions.
2952 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
2954         * target.def (constant_alignment): New hook.
2955         * defaults.h (CONSTANT_ALIGNMENT): Delete.
2956         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
2957         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
2958         * doc/tm.texi: Regenerate.
2959         * targhooks.h (default_constant_alignment): Declare.
2960         (constant_alignment_word_strings): Likewise.
2961         * targhooks.c (default_constant_alignment): New function.
2962         (constant_alignment_word_strings): Likewise.
2963         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
2964         instead of CONSTANT_ALIGNMENT.
2965         * varasm.c (align_variable, get_variable_align, build_constant_desc)
2966         (force_const_mem): Likewise.
2967         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
2968         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
2969         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
2970         (TARGET_CONSTANT_ALIGNMENT): Redefine.
2971         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
2972         definition.
2973         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
2974         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2975         constant_alignment_word_strings.
2976         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
2977         (CONSTANT_ALIGNMENT): Likewise.
2978         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2979         (arm_constant_alignment): New function.
2980         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
2981         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2982         constant_alignment_word_strings.
2983         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
2984         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2985         constant_alignment_word_strings.
2986         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
2987         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2988         (cris_constant_alignment): New function.
2989         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
2990         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
2991         (epiphany_constant_alignment): New function.
2992         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
2993         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2994         constant_alignment_word_strings.
2995         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
2996         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
2997         constant_alignment_word_strings.
2998         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
2999         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3000         constant_alignment_word_strings.
3001         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
3002         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
3003         * config/i386/i386.c (ix86_constant_alignment): Make static.
3004         Use the same interface as the target hook.
3005         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3006         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
3007         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3008         constant_alignment_word_strings.
3009         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
3010         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
3011         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3012         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
3013         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3014         constant_alignment_word_strings.
3015         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
3016         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3017         constant_alignment_word_strings.
3018         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
3019         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3020         constant_alignment_word_strings.
3021         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
3022         * config/microblaze/microblaze.c (microblaze_constant_alignment):
3023         New function.
3024         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3025         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
3026         * config/mips/mips.c (mips_constant_alignment): New function.
3027         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3028         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
3029         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
3030         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3031         (mmix_constant_alignment): Make static.  Use the same interface
3032         as the target hook.
3033         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
3034         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3035         constant_alignment_word_strings.
3036         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
3037         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3038         constant_alignment_word_strings.
3039         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
3040         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3041         constant_alignment_word_strings.
3042         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
3043         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3044         (rs6000_constant_alignment): New function.
3045         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
3046         * config/riscv/riscv.c (riscv_constant_alignment): New function.
3047         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3048         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
3049         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3050         (rs6000_constant_alignment): New function.
3051         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
3052         * config/s390/s390.c (s390_constant_alignment): New function.
3053         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3054         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
3055         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3056         constant_alignment_word_strings.
3057         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
3058         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3059         (sparc_constant_alignment): New function.
3060         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
3061         * config/spu/spu.c (spu_constant_alignment): New function.
3062         (TARGET_CONSTANT_ALIGNMENT): Redefine.
3063         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
3064         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3065         constant_alignment_word_strings.
3066         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
3067         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3068         constant_alignment_word_strings.
3069         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
3070         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
3071         constant_alignment_word_strings.
3072         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
3073         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3074         (visium_constant_alignment): New function.
3075         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
3076         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
3077         (xtensa_constant_alignment): New function.
3078         * system.h (CONSTANT_ALIGNMENT): Poison.
3080 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
3082         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3083         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
3084         (rs6000_builtin_valid_without_lhs): New helper function.
3085         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3086         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
3088 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
3090         * target.h (vec_perm_indices): Use unsigned short rather than
3091         unsigned char.
3092         (auto_vec_perm_indices): Likewise.
3093         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
3094         Use unsigned int rather than unsigned char.
3095         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
3097 2017-09-25  Richard Biener  <rguenther@suse.de>
3099         * cfgloop.h (sort_sibling_loops): Declare.
3100         * cfgloop.c (sort_sibling_loops_cmp): New helper.
3101         (sort_sibling_loops): New function sorting the sibling loop list
3102         in RPO order.
3103         * graphite.c (graphite_transform_loops): Sort sibling loops.
3105 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
3107         * target.def (vec_perm_const_ok): Change sel parameter to
3108         vec_perm_indices.
3109         * optabs-query.c (can_vec_perm_p): Update accordingly.
3110         * doc/tm.texi: Regenerate.
3111         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
3112         auto_vec_perm_indices and remove separate nelt field.
3113         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
3114         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
3115         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
3116         (aarch64_expand_vec_perm_const): Update accordingly.
3117         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
3118         to vec_perm_indices.
3119         * config/arm/arm.c (expand_vec_perm_d): Change perm to
3120         auto_vec_perm_indices and remove separate nelt field.
3121         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
3122         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
3123         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
3124         accordingly.
3125         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
3126         to vec_perm_indices.
3127         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
3128         sel to vec_perm_indices.
3129         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
3130         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
3131         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
3132         Likewise.
3133         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
3134         Likewise.
3136 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
3138         PR debug/82155
3139         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
3140         on the FUNCTION_DECL function context if it has a DIE that is a
3141         declaration.
3143 2017-09-25  Richard Biener  <rguenther@suse.de>
3145         PR tree-optimization/82285
3146         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
3147         enumeral types.
3149 2017-09-25  Tom de Vries  <tom@codesourcery.com>
3151         PR target/80035
3152         PR target/81069
3153         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
3154         noreturn function.
3156 2017-09-25  Richard Biener  <rguenther@suse.de>
3158         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
3159         ISL errors other than isl_error_quota happen.  Dump if the
3160         schedule is the same.
3161         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
3162         errors instead of aborting inside ISL.
3164 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
3166         PR target/80556
3167         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
3168         of libgcc_eh for m64.
3169         * config/i386/darwin64.h: Likewise.
3171 2017-09-25  Richard Biener  <rguenther@suse.de>
3173         PR middle-end/82144
3174         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
3175         attribute for incomplete types nor twice for complete ones.
3177 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
3179         PR target/82267
3180         * config/i386/i386.c (ix86_print_operand_address_as): Encode
3181         %esp as %rsp to avoid 0x67 prefix if there is no index or base
3182         register.
3184 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
3186         PR bootstrap/82306
3187         * config/i386/i386.opt (mprefer-avx256): Use
3188         ix86_target_flags variable.
3189         * config/i386/i386.c (ix86_target_string): Move
3190         -mprefer-avx256 to flag2_opts.
3192 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
3194         PR middle-end/35691
3195         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
3196         and x != -1 | y != -1 into (x & y) != -1.
3198 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
3200         * config.gcc: Add new case statement to set
3201         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
3202         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
3203         s390x-*-linux* case statements.   Added aarch64 to the list of
3204         supported architectures.
3206 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
3208         PR tree-optimization/82289
3209         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
3210         STMT_VINFO_RELEVANT_P.
3212 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
3213             Alan Hayward  <alan.hayward@arm.com>
3214             David Sherwood  <david.sherwood@arm.com>
3216         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
3217         for VR_RANGE only; don't allow VR_ANTI_RANGE.
3218         (extract_range_from_binary_expr_1): Don't call
3219         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
3221 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
3222             Alan Hayward  <alan.hayward@arm.com>
3223             David Sherwood  <david.sherwood@arm.com>
3225         * target.def (preferred_vector_alignment): New hook.
3226         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
3227         hook.
3228         * doc/tm.texi: Regenerate.
3229         * targhooks.h (default_preferred_vector_alignment): Declare.
3230         * targhooks.c (default_preferred_vector_alignment): New function.
3231         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
3232         Expand commentary.
3233         (DR_TARGET_ALIGNMENT): New macro.
3234         (aligned_access_p): Update commentary.
3235         (vect_known_alignment_in_bytes): New function.
3236         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
3237         function.
3238         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
3239         Calculate the misalignment based on the target alignment rather than
3240         the vector size.
3241         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
3242         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
3243         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
3244         the target alignment, rather than masking the element misalignment
3245         with the number of elements in a vector.  Also use the target
3246         alignment when calculating the maximum number of peels.
3247         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
3248         instead of TYPE_ALIGN_UNIT.
3249         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
3250         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
3251         (vect_create_addr_base_for_vector_ref): Update call accordingly.
3252         (vect_create_data_ref_ptr): Likewise.
3253         (vect_setup_realignment): Realign by ANDing with
3254         -DR_TARGET_MISALIGNMENT.
3255         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
3256         the number of peels based on DR_TARGET_ALIGNMENT.
3257         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
3258         with the guaranteed alignment boundary when deciding whether
3259         overrun is OK.
3260         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
3261         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
3262         (ensure_base_align): Remove stmt_info parameter.  Get the
3263         target base alignment from DR_TARGET_ALIGNMENT.
3264         (vectorizable_store): Update call accordingly.   Interpret
3265         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
3266         TYPE_ALIGN_UNIT.
3267         (vectorizable_load): Likewise.
3269 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
3270             Alan Hayward  <alan.hayward@arm.com>
3271             David Sherwood  <david.sherwood@arm.com>
3273         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
3274         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
3275         (vect_enhance_data_refs_alignment): Likewise.
3277 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
3279         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
3280         error.  Only quit immediately if parsing is complete.
3281         (BEGIN): Initialize fatal_err and parse_done.
3282         (begin fpu, end fpu): Check number of arguments.
3283         (begin arch, end arch): Likewise.
3284         (begin cpu, end cpu): Likewise.
3285         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
3286         (optalias): Likewise.
3288 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
3290         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
3291         * config/arm/arm-isa.h: Delete.  Move definitions to ...
3292         * arm-cpus.in: ... here.  Use new feature and fgroup values.
3293         * config/arm/arm.c (arm_option_override): Use lower case for feature
3294         bit names.
3295         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
3296         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
3297         * config/arm/parsecpu.awk (END): Add new command 'isa'.
3298         (isa_pfx): Delete.
3299         (print_isa_bits_for): New function.
3300         (gen_isa): New function.
3301         (gen_comm_data): Use print_isa_bits_for.
3302         (define feature): New keyword.
3303         (define fgroup): New keyword.
3304         * config/arm/t-arm (TM_H): Remove.
3305         (GTM_H): Add arm-isa.h.
3306         (arm-isa.h): Add rule to generate file.
3307         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
3308         case for feature bit names.
3310 2017-09-22  Richard Biener  <rguenther@suse.de>
3312         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
3313         single caller.
3314         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
3315         print of no dependency loops ...
3316         * graphite.c (graphite_transform_loops): ... here.
3317         (canonicalize_loop_closed_ssa_form): Work from inner to outer
3318         loops.
3319         (same_close_phi_node, remove_duplicate_close_phi,
3320         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
3321         (canonicalize_loop_closed_ssa): ... here and simplify.
3322         * graphite-optimize-isl.c: Include tree-vectorizer.h.
3323         (optimize_isl): Use dump_printf_loc to tell when we stopped
3324         optimizing because of an ISL timeout.
3326 2017-09-22  Richard Biener  <rguenther@suse.de>
3328         PR tree-optimization/82291
3329         * tree-if-conv.c (predicate_mem_writes): Make sure to
3330         remove writes in blocks predicated with false.
3332 2017-09-22  Richard Biener  <rguenther@suse.de>
3334         * sese.c: Include cfganal.h.
3335         (if_region_set_false_region): Remove.
3336         (create_if_region_on_edge): Likewise.
3337         (move_sese_in_condition): Re-implement without destroying
3338         dominators.
3340 2017-09-22  Richard Biener  <rguenther@suse.de>
3342         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
3343         Verify both BBs contain loop PHI nodes before dispatching to
3344         copy_loop_phi_args.
3345         (graphite_regenerate_ast_isl): Do not recompute dominators,
3346         do not verify three times.  Restructure for clarity.
3347         * graphite-scop-detection.c (same_close_phi_node,
3348         remove_duplicate_close_phi, make_close_phi_nodes_unique,
3349         defined_in_loop_p, canonicalize_loop_closed_ssa,
3350         canonicalize_loop_closed_ssa_form): Simplify, remove excess
3351         checking and SSA rewrite, move to ...
3352         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
3353         (graphite_initialize): Do not pass in ctx, do not reset the
3354         SCEV cache, compute only dominators.
3355         (graphite_transform_loops): Allocate ISL ctx after
3356         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
3357         Maintain post-dominators only around build_scops.
3358         * sese.c (if_region_set_false_region): Make static.  Free
3359         and recompute dominators.
3360         (move_sese_in_condition): Assert we don't get called with
3361         post-dominators computed.
3362         * sese.h (if_region_set_false_region): Remove.
3364 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
3366         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
3367         mode attribute for TARGET_AVX512VL.
3369 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
3371         * config/i386/i386.opt (mprefer-avx256): New option.
3372         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
3373         to flag_opts.
3374         (ix86_preferred_simd_mode): Return 256-bit AVX modes
3375         for TARGET_PREFER_AVX256.
3376         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
3378 2017-09-21  Jeff Law  <law@redhat.com>
3380         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
3381         Fix dump output if the only stack space is for pushed registers.
3383 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3385         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
3386         of insn_cost.
3388 2017-09-21  Martin Sebor  <msebor@redhat.com>
3390         PR c/81882
3391         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
3392         code (in C++) or code that triggers warnings.
3394 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
3396         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
3398 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
3400         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
3401         * sched-rgn.c: Ditto.
3402         * sel-sched-ir.c: Ditto.
3404 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
3406         * toplev.h (set_random_seed): Adjust return type.
3407         * toplev.c (init_local_tick): Move eager initialization of random_seed
3408         to get_random_seed.  Adjust comment.
3409         (init_random_seed): Inline to get_random_seed, delete.
3410         (get_random_seed): Initialize random_seed lazily.
3411         (set_random_seed): Do not return previous value.
3412         (print_switch_value): Do not call get_random_seed.
3414 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
3416         * cgraph.c (delete_function_version): New, broken out from...
3417         (cgraph_node::delete_function_version): ...here.  Rename to
3418         cgraph_node::delete_function_version_by_decl.  Update all uses.
3419         (cgraph_node::remove): Call delete_function_version.
3421 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
3423         PR sanitizer/81715
3424         * tree-inline.c (expand_call_inline): Emit clobber stmts for
3425         VAR_DECLs to which addressable non-volatile parameters are mapped
3426         and for id->retvar after the return value assignment.  Clear
3427         id->retval and id->retbnd after inlining.
3429 2017-09-21  Richard Biener  <rguenther@suse.de>
3431         PR tree-optimization/82276
3432         PR tree-optimization/82244
3433         * tree-vrp.c (build_assert_expr_for): Set
3434         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
3435         has it set.
3436         (remove_range_assertions): Revert earlier change.
3438 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
3440         PR target/71951
3441         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
3443 2017-09-21  Richard Biener  <rguenther@suse.de>
3445         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
3446         Restore valid IL after code generation errors.
3447         * graphite.c (graphite_transform_loops): Diagnose code
3448         generation issues as MSG_MISSED_OPTIMIZATION and continue
3449         with processing SCOPs.
3451 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3452             Alan Hayward  <alan.hayward@arm.com>
3453             David Sherwood  <david.sherwood@arm.com>
3455         * calls.c (compute_argument_addresses): Use simplify_gen_binary
3456         rather than choosing between plus_constant and gen_rtx_<CODE>.
3457         * expr.c (emit_push_insn): Likewise.
3458         (expand_expr_real_2): Likewise.
3460 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3461             Alan Hayward  <alan.hayward@arm.com>
3462             David Sherwood  <david.sherwood@arm.com>
3464         * loop-unroll.c (split_iv): Call copy_rtx on the step.
3466 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3467             Alan Hayward  <alan.hayward@arm.com>
3468             David Sherwood  <david.sherwood@arm.com>
3470         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
3471         calling tree_to_uhwi.
3473 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3474             Alan Hayward  <alan.hayward@arm.com>
3475             David Sherwood  <david.sherwood@arm.com>
3477         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
3478         INTEGER_CST rather than a negative test for ADDR_EXPR.
3480 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
3481             Alan Hayward  <alan.hayward@arm.com>
3482             David Sherwood  <david.sherwood@arm.com>
3484         * tree-vrp.c (extract_range_from_binary_expr_1): Check
3485         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
3487 2017-09-21  Richard Biener  <rguenther@suse.de>
3489         PR tree-optimization/71351
3490         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
3491         graphite_create_new_loop_guard): Remove, fold remaining parts
3492         into caller ...
3493         (translate_isl_ast_node_for): ... here and simplify.
3495 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
3497         PR target/82260
3498         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
3499         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
3500         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
3501         alternative always use QI mode, for -Os imov (=R,R) alternative
3502         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
3503         ignore -Os.
3505 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3506             Jeff Law  <law@redhat.com>
3508         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
3509         (allocate_stack_space): New function, partially extracted from
3510         s390_emit_prologue.
3511         (s390_emit_prologue): Track offset to most recent stack probe.
3512         Code to allocate space moved into allocate_stack_space.
3513         Dump actions when no stack is allocated.
3514         (s390_prologue_plus_offset): New function.
3515         (s390_emit_stack_probe): Likewise.
3517 2017-09-20  Alexandre Oliva <aoliva@redhat.com>
3519         * common.opt (Wa, Wl, Wp, g, gz=): Add
3520         RejectNegative.
3521         (gno-column-info): Remove.
3522         (gcolumn-info): Drop RejectNegative.
3523         (gno-): New prefix.
3524         (gno-record-gcc-switches): Remove.
3525         (grecord-gcc-switches): Drop RejectNegative.
3526         (gno-split-dwarf): Remove.
3527         (gsplit-dwarf): Drop RejectNegative.
3528         (gno-strict-dwarf): Remove.
3529         (gstrict-dwarf): Drop RejectNegative.
3530         * config/darwin.opt (gfull, gused): Add RejectNegative.
3531         * dwarf2out.c (gen_producer_string): Drop
3532         gno-record-gcc-switches handler.
3533         * optc-gen.awk: Add g to prefixes with negative forms.
3534         * opts-common.c (remapping_prefix_p): New.
3535         (find_opt): Check it.
3536         (generate_canonical_option): Test g prefix.
3537         (option_map): Add -gno- mapping.
3538         (add_misspelling_candidates): Check remapping_prefix_p.
3540 2017-09-20  Jeff Law  <law@redhat.com>
3542         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
3543         thinko in stack clash protection support.
3545         * explow.c (compute_stack_clash_protection_loop_data): Use
3546         CONST_INT_P instead of explicit test.  Verify object is a
3547         CONST_INT_P before looking at INTVAL.
3548         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
3549         instead of explicit test.
3551 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
3553         PR target/77687
3554         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
3555         address instead of to r1 and r11.
3557 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
3559         * config.gcc: Support "knm".
3560         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
3561         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
3562         PROCESSOR_KNM.
3563         * config/i386/i386.c (m_KNM): Define.
3564         (processor_target_table): Add "knm".
3565         (PTA_KNM): Define.
3566         (ix86_option_override_internal): Add "knm".
3567         (ix86_issue_rate): Add PROCESSOR_KNM.
3568         (ix86_adjust_cost): Ditto.
3569         (ia32_multipass_dfa_lookahead): Ditto.
3570         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
3571         (fold_builtin_cpu): Add M_INTEL_KNM.
3572         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
3573         (processor_type): Add PROCESSOR_KNM.
3574         * config/i386/x86-tune.def: Add m_KNM.
3575         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
3577 2017-09-20  Richard Biener  <rguenther@suse.de>
3579         PR tree-optimization/80213
3580         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
3581         are allowed in empty BBs as well.
3582         (canonicalize_loop_closed_ssa): Also look for other complex
3583         edges.
3584         (scop_detection::get_sese): Include the loop-closed PHI block
3585         in loop SESEs.
3586         (scop_detection::merge_sese): Remove code adding extra blocks.
3587         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
3588         (build_scops): Assert the final returned scop is invalid.
3590 2017-09-20  Richard Biener  <rguenther@suse.de>
3592         PR tree-optimization/82264
3593         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
3594         for GIMPLE_CONDs.
3595         (vn_phi_lookup): Likewise.
3596         (vn_phi_insert): Likewise.
3598 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
3600         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
3601         that fits into uhwi or shwi, add DW_AT_const_value regardless
3602         of early_dwarf without going through RTL, using add_AT_unsigned
3603         or add_AT_int.
3605         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
3606         (DEBUG_LTO_ABBREV_SECTION): Likewise.
3607         (DEBUG_LTO_MACINFO_SECTION): Likewise.
3608         (DEBUG_MACRO_SECTION): Likewise.
3609         (DEBUG_LTO_MACRO_SECTION): Likewise.
3610         (DEBUG_STR_DWO_SECTION): Likewise.
3611         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
3612         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
3613         (DEBUG_LTO_DWO_LINE_SECTION): Define.
3614         (DEBUG_LTO_LINE_STR_SECTION): Define.
3615         (init_sections_and_labels): Initialize debug_line_str_section
3616         variable.  Initialize debug_loc_section for -gdwarf-5 to
3617         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
3619 2017-09-20  Richard Biener  <rguenther@suse.de>
3621         * graphite-sese-to-poly.c (extract_affine): Properly handle
3622         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
3624 2017-09-20  Richard Biener  <rguenther@suse.de>
3626         PR tree-optimization/81373
3627         * graphite-scop-detection.c (build_cross_bb_scalars_def):
3628         Force SESE live-out defs to be handled even if they are
3629         scev_analyzable_p.
3631 2017-09-19  Jeff Law  <law@redhat.com>
3633         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
3634         nothing for stack adjustments with REG_STACK_CHECK.
3635         * sched-deps.c (parse_add_or_inc): Reject insns with
3636         REG_STACK_CHECK from dependency breaking.
3637         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
3638         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
3639         * reg-notes.def (STACK_CHECK): New note.
3641         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
3642         (ix86_expand_prologue): Dump stack clash info as needed.
3643         Call ix86_adjust_stack_and_probe_stack_clash as needed.
3645         * function.c (dump_stack_clash_frame_info): New function.
3646         * function.h (dump_stack_clash_frame_info): Prototype.
3647         (enum stack_clash_probes): New enum.
3649         * config/alpha/alpha.c (alpha_expand_prologue): Also check
3650         flag_stack_clash_protection.
3651         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
3652         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
3653         (arm_frame_pointer_required): Likewise.
3654         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
3655         (ia64_expand_prologue): Likewise.
3656         * config/mips/mips.c (mips_expand_prologue): Likewise.
3657         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
3658         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
3659         (sparc_flat_expand_prologue): Likewise.
3660         * config/spu/spu.c (spu_expand_prologue): Likewise.
3662         * explow.c: Include "params.h".
3663         (anti_adjust_stack_and_probe_stack_clash): New function.
3664         (get_stack_check_protect): Likewise.
3665         (compute_stack_clash_protection_loop_data): Likewise.
3666         (emit_stack_clash_protection_loop_start): Likewise.
3667         (emit_stack_clash_protection_loop_end): Likewise.
3668         (allocate_dynamic_stack_space): Use get_stack_check_protect.
3669         Use anti_adjust_stack_and_probe_stack_clash.
3670         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
3671         (emit_stack_clash_protection_loop_start): Likewise.
3672         (emit_stack_clash_protection_loop_end): Likewise.
3673         * rtl.h (get_stack_check_protect): Prototype.
3674         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
3675         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
3676         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
3677         Prototype.
3678         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
3679         Add @hook.
3680         * doc/tm.texi: Rebuilt.
3681         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
3682         get_stack_check_protect.
3683         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
3684         * config/arm/arm.c (arm_expand_prologue): Likewise.
3685         (arm_frame_pointer_required): Likewise.
3686         * config/i386/i386.c (ix86_expand_prologue): Likewise.
3687         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3688         * config/mips/mips.c (mips_expand_prologue): Likewise.
3689         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
3690         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3691         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
3692         (sparc_flat_expand_prologue): Likewise.
3694         * common.opt (-fstack-clash-protection): New option.
3695         * flag-types.h (enum stack_check_type): Note difference between
3696         -fstack-check= and -fstack-clash-protection.
3697         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
3698         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
3699         * toplev.c (process_options): Issue warnings/errors for cases
3700         not handled with -fstack-clash-protection.
3701         * doc/invoke.texi (-fstack-clash-protection): Document new option.
3702         (-fstack-check): Note additional problem with -fstack-check=generic.
3703         Note that -fstack-check is primarily for Ada and refer users
3704         to -fstack-clash-protection for stack-clash-protection.
3705         Document new params for stack clash protection.
3707 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
3709         * config/i386/i386.c (ix86_split_long_move): Do not handle
3710         address used for LEA in a special way.
3712 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
3714         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
3716 2017-09-19  Martin Sebor  <msebor@redhat.com>
3718         PR c/81854
3719         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
3720         of incompatible types.
3722 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
3724         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3725         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
3726         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3727         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
3729 2017-09-19  Richard Biener  <rguenther@suse.de>
3731         PR tree-optimization/82244
3732         * tree-vrp.c (remove_range_assertions): Do not propagate
3733         a constant to abnormals but replace the assert with a copy.
3735 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
3737         PR rtl-optimization/57878
3738         PR rtl-optimization/68988
3739         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
3740         avoidance test involving non_reload_pseudos.  Move frequency test
3741         below the general fragmentation avoidance test.
3743 2017-09-19  Richard Biener  <rguenther@suse.de>
3745         PR tree-optimization/69728
3746         * graphite-sese-to-poly.c (schedule_error): New global.
3747         (add_loop_schedule): Handle empty domain by failing the
3748         schedule.
3749         (build_original_schedule): Handle schedule_error.
3751 2017-09-19  Richard Biener  <rguenther@suse.de>
3753         * graphite-scop-detection.c (scop_detection::can_represent_loop):
3754         Do not iterate to sibling loops but only to siblings of inner
3755         loops.
3757 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
3759         PR target/81613
3760         * config/m68k/m68k.md (moveq feeding equality comparison): Check
3761         that the registers are different.
3763 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
3765         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
3766         to processor_model and "amdfam17h" to arch_names_table.
3767         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
3769 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
3771         PR c/82234
3772         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
3774 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
3775             Alan Hayward  <alan.hayward@arm.com>
3776             David Sherwood  <david.sherwood@arm.com>
3778         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
3779         with a vec_info *.
3780         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
3781         accordingly.
3782         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
3783         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
3784         vect_schedule_slp_instance.
3785         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
3786         Update call to vect_slp_analyze_node_operations.  Simplify return
3787         value.
3788         (vect_slp_analyze_bb_1): Update call accordingly.
3789         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
3790         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
3791         (vect_schedule_slp): Update call accordingly.
3793 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
3794             Alan Hayward  <alan.hayward@arm.com>
3795             David Sherwood  <david.sherwood@arm.com>
3797         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
3798         with types that aren't in fact scalar.
3800 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
3802         * tree-vect-slp.c (vect_record_max_nunits): New function,
3803         split out from...
3804         (vect_build_slp_tree_1): ...here.
3805         (vect_build_slp_tree_2): Call it for phis too.
3807 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
3809         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
3810         to vect_get_vec_def_for_operand when getting the mask operand.
3812 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
3813             Alan Hayward  <alan.hayward@arm.com>
3814             David Sherwood  <david.sherwood@arm.com>
3816         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
3817         bitstart.
3819 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
3820             Alan Hayward  <alan.hayward@arm.com>
3821             David Sherwood  <david.sherwood@arm.com>
3823         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
3824         calculation for vector booleans.
3826 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
3827             Alan Hayward  <alan.hayward@arm.com>
3828             David Sherwood  <david.sherwood@arm.com>
3830         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
3831         split out from...
3832         (vect_transform_stmt): ...here.
3833         (vect_analyze_stmt): Use it instead of calling
3834         vectorizable_live_operation directly.
3836 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
3838         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
3839         non-SIMT targets in acc vector loops.
3841 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
3843         * configure.ac: Add arc and check if assembler supports gdwarf2.
3844         * configure: Regenerate.
3846 2017-09-18  Richard Biener  <rguenther@suse.de>
3848         PR tree-optimization/82220
3849         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
3850         epilogue niters from the min_profitable_iters compute.
3852 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
3854         PR target/82145
3855         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
3856         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
3857         (ix86_init_pic_reg): Revert 2017-09-01 changes.
3859 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
3861         PR target/81361
3862         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
3863         switching to a new text section.
3865 2017-09-18  Richard Biener  <rguenther@suse.de>
3867         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
3868         Simplify.
3869         (build_alias_set): Reject aliases with no access function.
3871 2017-09-18  Richard Biener  <rguenther@suse.de>
3873         PR tree-optimization/79622
3874         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
3875         handle PHIs.
3876         (build_cross_bb_scalars_use): Likewise.
3878 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
3880         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
3882 2017-09-18  Alan Modra  <amodra@gmail.com>
3884         PR target/81996
3885         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
3886         stack_pointer_rtx for count 0.  Update comments.  Break up
3887         large rtl expression.
3889 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
3891         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
3892         Increase to 20 bytes.
3893         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
3894         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
3895         or avx version of the stub.
3897 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
3899         PR target/82166
3900         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
3901         compute the minimum stack alignment.  Also update preferred stack
3902         boundary for leaf functions.
3904 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
3906         PR tree-optimization/82228
3907         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
3908         of ncopies.
3910 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
3912         * common/config/nds32/nds32-common.c
3913         (nds32_option_optimization_table): Refine formatting.
3914         (nds32_option_optimization_table): Use -fsched-pressure and
3915         -fomit-frame-pointer for specific optimization level.
3917 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
3919         * config/nds32/nds32.c: Refine formatting and comments.
3920         * config/nds32/nds32.h: Likewise.
3921         * config/nds32/nds32.md: Likewise.
3922         * config/nds32/nds32-cost.c: Likewise.
3923         * config/nds32/nds32-isr.c: Likewise.
3924         * config/nds32/nds32-md-auxiliary.c: Likewise.
3925         * config/nds32/nds32-multiple.md: Likewise.
3926         * config/nds32/nds32-predicates.c: Likewise.
3928 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
3929             Jakub Jelinek  <jakub@redhat.com>
3931         Add support for -std=c++2a.
3932         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
3933         or -std=gnu+2a.
3934         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
3936 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
3938         PR target/82066
3939         * doc/extend.texi (Common Function Attributes): Add 
3940         references to ARM, AArch64, and S/390 specific attributes.
3941         (Function Specific Option Pragmas): Add AArch64 and S/390
3942         to list of back ends that support the target pragma.
3944 2017-09-15  Nathan Sidwell  <nathan@acm.org>
3946         * doc/standards.texi: Fix C++17 description.  Update URLs for
3947         C++11 & 14.
3949 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3951         * common.opt (Wcast-align=strict): New warning option.
3952         * doc/invoke.texi: Document -Wcast-align=strict. 
3954 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
3956         * cgraph.h (cgraph_thunk_info): Add comments.
3957         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
3958         assert for VIRTUAL_* arguments stricter.
3960 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
3962         PR tree-optimization/71026
3963         * match.pd: Move RDIV patterns from fold-const.c
3964         * fold-const.c (distribute_real_division): Removed.
3965         (fold_binary_loc): Remove calls to distribute_real_divison.
3967 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
3969         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
3970         c++1z and gnu++1z as deprecated.  Change other references to
3971         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
3972         Change -Wc++1z-compat to -Wc++17-compat.
3973         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
3974         * dwarf2out.c (highest_c_language): Handle C++17.
3975         (gen_compile_unit_die): Likewise.
3977 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
3979         PR rtl-optimization/82192
3980         * combine.c (make_extraction): Don't look through non-paradoxical
3981         SUBREGs or TRUNCATE if pos + len is or might be bigger than
3982         inner's mode.
3984 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
3985             Alan Hayward  <alan.hayward@arm.com>
3986             David Sherwood  <david.sherwood@arm.com>
3988         * target.def (function_arg_offset): New hook.
3989         * targhooks.h (default_function_arg_offset): Declare.
3990         * targhooks.c (default_function_arg_offset): New function.
3991         * function.c (locate_and_pad_parm): Use
3992         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
3993         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
3994         (TARGET_FUNCTION_ARG_OFFSET): ...this.
3995         * doc/tm.texi: Regenerate.
3996         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
3997         * config/spu/spu.c (spu_function_arg_offset): New function.
3998         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
3999         * system.h (FUNCTION_ARG_OFFSET): Poison.
4001 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
4002             Alan Hayard  <alan.hayward@arm.com>
4003             David Sherwood  <david.sherwood@arm.com>
4005         * target.def (truly_noop_truncation): New hook.
4006         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
4007         than TRULY_NOOP_TRUNCATION.
4008         * hooks.h (hook_bool_uint_uint_true): Declare.
4009         * hooks.c (hook_bool_uint_uint_true): New function.
4010         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
4011         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
4012         * doc/tm.texi: Regenerate.
4013         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
4014         rather than TRULY_NOOP_TRUNCATION in comments.
4015         (simplify_comparison): Likewise.
4016         (record_truncated_value): Likewise.
4017         * expmed.c (extract_bit_field_1): Likewise.
4018         (extract_split_bit_field): Likewise.
4019         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
4020         instead of TRULY_NOOP_TRUNCATION.
4021         * function.c (assign_parm_setup_block): Likewise.
4022         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
4023         * rtlhooks.c: Include target.h.
4024         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
4025         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
4026         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
4027         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
4028         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
4029         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
4030         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
4031         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
4032         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
4033         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
4034         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
4035         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
4036         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
4037         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
4038         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
4039         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
4040         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
4041         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
4042         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
4043         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
4044         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
4045         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
4046         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
4047         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
4048         * config/mips/mips.c (mips_truly_noop_truncation): New function.
4049         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4050         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4051         rather than TRULY_NOOP_TRUNCATION in comments.
4052         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
4053         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
4054         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
4055         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
4056         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
4057         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
4058         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
4059         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
4060         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
4061         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
4062         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
4063         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4064         rather than TRULY_NOOP_TRUNCATION in comments.
4065         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
4066         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
4067         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
4068         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
4069         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
4070         TRULY_NOOP_TRUNCATION condition.
4071         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4072         (TRULY_NOOP_TRUNCATION): Delete.
4073         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
4074         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
4075         * config/spu/spu.c (spu_truly_noop_truncation): New function.
4076         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4077         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
4078         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
4079         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
4080         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
4081         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
4082         rather than TRULY_NOOP_TRUNCATION in comments.
4083         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
4084         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
4085         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
4086         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
4087         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
4088         * system.h (TRULY_NOOP_TRUNCATION): Poison.
4090 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
4092         PR target/67591
4093         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
4094         (*cmp_ior): Likewise.
4095         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
4096         (*ior_scc_scc_cmp): Likewise.
4097         (*and_scc_scc): Likewise.
4098         (*and_scc_scc_cmp): Likewise.
4100 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
4101             Alan Hayard  <alan.hayward@arm.com>
4102             David Sherwood  <david.sherwood@arm.com>
4104         * target.def (can_change_mode_class): New hook.
4105         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
4106         (hard_regno_nregs): Likewise.
4107         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
4108         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
4109         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
4110         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
4111         (LOAD_EXTEND_OP): Update accordingly.
4112         * doc/tm.texi: Regenerate.
4113         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
4114         CANNOT_CHANGE_MODE_CLASS.
4115         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
4116         (REG_CAN_CHANGE_MODE_P): ...this new macro.
4117         * combine.c (simplify_set): Update accordingly.
4118         * emit-rtl.c (validate_subreg): Likewise.
4119         * recog.c (general_operand): Likewise.
4120         * regcprop.c (mode_change_ok): Likewise.
4121         * reload1.c (choose_reload_regs): Likewise.
4122         (inherit_piecemeal_p): Likewise.
4123         * rtlanal.c (simplify_subreg_regno): Likewise.
4124         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
4125         instead of CANNOT_CHANGE_MODE_CLASS.
4126         (reload_cse_simplify_operands): Likewise.
4127         * reload.c (push_reload): Use targetm.can_change_mode_class
4128         instead of CANNOT_CHANGE_MODE_CLASS.
4129         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
4130         REG_CANNOT_CHANGE_MODE_P.
4131         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4132         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
4133         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4134         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4135         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4136         (arm_can_change_mode_class): New function.
4137         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
4138         than CANNOT_CHANGE_MODE_CLASS in comments.
4139         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4140         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
4141         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
4142         (ix86_can_change_mode_class): ...this new function, inverting the
4143         sense of the return value.
4144         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4145         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4146         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4147         (ia64_can_change_mode_class): New function.
4148         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4149         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
4150         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
4151         (m32c_can_change_mode_class): ...this new function, inverting the
4152         sense of the return value.
4153         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4154         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4155         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
4156         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
4157         (mips_can_change_mode_class): ...this new function, inverting the
4158         sense of the return value.
4159         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4160         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4161         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4162         (msp430_can_change_mode_class): New function.
4163         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4164         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
4165         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4166         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4167         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4168         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
4169         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4170         (pa_cannot_change_mode_class): Replace with...
4171         (pa_can_change_mode_class): ...this new function, inverting the
4172         sense of the return value.
4173         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
4174         than CANNOT_CHANGE_MODE_CLASS in comments.
4175         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4176         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
4177         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4178         (pdp11_cannot_change_mode_class): Replace with...
4179         (pdp11_can_change_mode_class): ...this new function, inverting the
4180         sense of the return value.
4181         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4182         * config/powerpcspe/powerpcspe-protos.h
4183         (rs6000_cannot_change_mode_class_ptr): Delete.
4184         * config/powerpcspe/powerpcspe.c
4185         (rs6000_cannot_change_mode_class_ptr): Delete.
4186         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4187         (rs6000_option_override_internal): Assign to
4188         targetm.can_change_mode_class instead of
4189         rs6000_cannot_change_mode_class_ptr.
4190         (rs6000_cannot_change_mode_class): Replace with...
4191         (rs6000_can_change_mode_class): ...this new function, inverting the
4192         sense of the return value.
4193         (rs6000_debug_cannot_change_mode_class): Replace with...
4194         (rs6000_debug_can_change_mode_class): ...this new function.
4195         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4196         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
4197         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4198         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4199         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
4200         Delete.
4201         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
4202         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4203         (rs6000_option_override_internal): Assign to
4204         targetm.can_change_mode_class instead of
4205         rs6000_cannot_change_mode_class_ptr.
4206         (rs6000_cannot_change_mode_class): Replace with...
4207         (rs6000_can_change_mode_class): ...this new function, inverting the
4208         sense of the return value.
4209         (rs6000_debug_cannot_change_mode_class): Replace with...
4210         (rs6000_debug_can_change_mode_class): ...this new function.
4211         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4212         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
4213         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
4214         (s390_can_change_mode_class): ...this new function, inverting the
4215         sense of the return value.
4216         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4217         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4218         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
4219         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4220         (sh_cannot_change_mode_class): Replace with...
4221         (sh_can_change_mode_class): ...this new function, inverting the
4222         sense of the return value.
4223         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4224         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4225         (sparc_can_change_mode_class): New function.
4226         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4227         * config/spu/spu.c (spu_can_change_mode_class): New function.
4228         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4229         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
4230         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
4231         (visium_can_change_mode_class): New function.
4232         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
4234 2017-09-15  Richard Biener  <rguenther@suse.de>
4236         PR tree-optimization/82217
4237         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
4238         but not undefined case.
4240 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
4242         PR target/82145
4243         * postreload.c (reload_cse_simplify_operands): Skip
4244         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
4246 2017-09-15  Richard Biener  <rguenther@suse.de>
4248         PR tree-optimization/68823
4249         * graphite-scop-detection.c (build_alias_set): If we have a
4250         possible dependence check whether we can handle them by just
4251         looking at the DRs DR_ACCESS_FNs.
4252         (build_scops): If build_alias_set fails, fail the SCOP.
4254 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4256         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
4257         to support float128 built-in functions that require the ISA 3.0
4258         hardware.
4259         (BU_FLOAT128_3_HW): Likewise.
4260         (SQRTF128): Add support for the IEEE 128-bit square root and fma
4261         built-in functions.
4262         (FMAF128): Likewise.
4263         (FMAQ): Likewise.
4264         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
4265         support for built-in functions that need the ISA 3.0 IEEE 128-bit
4266         floating point instructions.
4267         (rs6000_invalid_builtin): Likewise.
4268         (rs6000_builtin_mask_names): Likewise.
4269         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
4270         (RS6000_BTM_FLOAT128_HW): Likewise.
4271         (RS6000_BTM_COMMON): Likewise.
4272         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
4273         function.
4274         * doc/extend.texi (RS/6000 built-in functions): Document the
4275         IEEE 128-bit floating point square root and fused multiply-add
4276         built-in functions.
4278 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
4280         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
4281         reg (r2) isn't in the set of registers defined in the prologue.
4283 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4284             Alan Hayward  <alan.hayward@arm.com>
4285             David Sherwood  <david.sherwood@arm.com>
4287         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
4288         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
4289         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
4290         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
4291         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
4292         accordingly.
4293         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
4294         max_vectorization_factor.
4295         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
4297 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4298             Alan Hayward  <alan.hayward@arm.com>
4299             David Sherwood  <david.sherwood@arm.com>
4301         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
4302         (vect_worthwhile_without_simd_p): Declare.
4303         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
4304         (vectorizable_reduction): Use it.
4305         * tree-vect-stmts.c (vectorizable_shift): Likewise.
4306         (vectorizable_operation): Likewise.
4308 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4309             Alan Hayward  <alan.hayward@arm.com>
4310             David Sherwood  <david.sherwood@arm.com>
4312         * tree-vectorizer.h (vect_get_num_copies): New function.
4313         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
4314         * tree-vect-loop.c (vectorizable_reduction): Likewise.
4315         (vectorizable_induction): Likewise.
4316         (vectorizable_live_operation): Likewise.
4317         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
4318         (vectorizable_bswap): Likewise.
4319         (vectorizable_call): Likewise.
4320         (vectorizable_conversion): Likewise.
4321         (vectorizable_assignment): Likewise.
4322         (vectorizable_shift): Likewise.
4323         (vectorizable_operation): Likewise.
4324         (vectorizable_store): Likewise.
4325         (vectorizable_load): Likewise.
4326         (vectorizable_condition): Likewise.
4327         (vectorizable_comparison): Likewise.
4328         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
4330 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4331             Alan Hayward  <alan.hayward@arm.com>
4332             David Sherwood  <david.sherwood@arm.com>
4334         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
4335         of vect_init_vector.
4337 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4338             Alan Hayward  <alan.hayward@arm.com>
4339             David Sherwood  <david.sherwood@arm.com>
4341         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
4342         an inline wrapper that provides a location.
4343         (gimple_build_vector): Likewise.
4344         * gimple-fold.c (gimple_build_vector_from_val): New function.
4345         (gimple_build_vector): Likewise.
4346         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
4347         functions to build the initial value.  Always return a gimple value.
4348         (get_initial_defs_for_reduction): Likewise.  Only compute
4349         neutral_vec once.
4350         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
4351         vect_init_vector on the results from get_initial_def(s)_for_reduction.
4352         (vectorizable_induction): Use gimple_build_vector rather than
4353         vect_init_vector.
4355 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4356             Alan Hayward  <alan.hayward@arm.com>
4357             David Sherwood  <david.sherwood@arm.com>
4359         * target.h (vec_perm_indices): New typedef.
4360         (auto_vec_perm_indices): Likewise.
4361         * optabs-query.h: Include target.h
4362         (can_vec_perm_p): Take a vec_perm_indices *.
4363         * optabs-query.c (can_vec_perm_p): Likewise.
4364         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
4365         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
4366         * tree-vect-generic.c (lower_vec_perm): Likewise.
4367         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
4368         (vect_grouped_load_supported): Likewise.
4369         (vect_shift_permute_load_chain): Likewise.
4370         (vect_permute_store_chain): Use auto_vec_perm_indices.
4371         (vect_permute_load_chain): Likewise.
4372         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
4373         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
4374         Update uses of can_vec_perm_p.
4375         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
4376         mode with a number of elements.  Take a vec_perm_indices *.
4377         (vect_create_epilog_for_reduction): Update accordingly.
4378         Use auto_vec_perm_indices.
4379         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
4380         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
4381         (vect_transform_slp_perm_load): Likewise.
4382         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
4383         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
4384         (vect_gen_perm_mask_checked): Likewise.
4385         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
4386         (vect_gen_perm_mask_checked): Likewise.
4387         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
4388         (vectorizable_store): Likewise.
4389         (vectorizable_load): Likewise.
4390         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
4391         (vectorizable_bswap): Likewise.
4393 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4394             Alan Hayward  <alan.hayward@arm.com>
4395             David Sherwood  <david.sherwood@arm.com>
4397         * tree.h (build_vector): Take a vec<tree> instead of a tree *.
4398         * tree.c (build_vector): Likewise.
4399         (build_vector_from_ctor): Update accordingly.
4400         (build_vector_from_val): Likewise.
4401         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
4402         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
4403         * tree-vect-generic.c (add_rshift): Likewise.
4404         (expand_vector_divmod): Likewise.
4405         (optimize_vector_constructor): Likewise.
4406         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4407         (vect_transform_slp_perm_load): Likewise.
4408         (vect_schedule_slp_instance): Likewise.
4409         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
4410         (vectorizable_call): Likewise.
4411         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
4412         * expmed.c (make_tree): Likewise.
4413         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
4414         a vector passed to build_vector.
4415         (fold_convert_const): Likewise.
4416         (exact_inverse): Likewise.
4417         (fold_ternary_loc): Likewise.
4418         (fold_relational_const): Likewise.
4419         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
4420         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
4421         (const_unop): Likewise.  Store the reduction accumulator in a
4422         variable rather than an array.
4423         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
4424         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
4425         the new vector, rather than constructing it after the input arrays.
4426         (native_interpret_vector): Use auto_vec<tree> when building
4427         a vector passed to build_vector.  Add elements in order.
4428         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
4429         auto_vec<tree> when building a vector passed to build_vector.
4430         (vect_create_epilog_for_reduction): Likewise.
4431         (vectorizable_induction): Likewise.
4432         (get_initial_def_for_reduction): Likewise.  Fix indentation of
4433         case statements.
4434         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
4435         to a vec<tree> *.
4436         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
4437         passed to build_vector.
4439 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
4440             Alan Hayward  <alan.hayward@arm.com>
4441             David Sherwood  <david.sherwood@arm.com>
4443         * tree-core.h (tree_base::u): Add an "nelts" field.
4444         (tree_vector): Use VECTOR_CST_NELTS as the length.
4445         * tree.c (tree_size): Likewise.
4446         (make_vector): Initialize VECTOR_CST_NELTS.
4447         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
4448         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
4449         TYPE_VECTOR_SUBPARTS.
4450         * expr.c (const_vector_mask_from_tree): Consistently use "units"
4451         as the number of units, setting it from VECTOR_CST_NELTS.
4452         (const_vector_from_tree): Likewise.
4453         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
4454         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
4455         (fold_negate_expr_1): Likewise.
4456         (fold_convert_const): Likewise.
4457         (const_binop): Likewise.  Differentiate the number of output and
4458         input elements.
4459         (const_unop): Likewise.
4460         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
4461         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
4462         in cases that did the opposite.
4464 2017-09-14  Richard Biener  <rguenther@suse.de>
4466         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
4467         to VN_TOP.
4469 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
4471         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
4473 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
4475         PR target/81325
4476         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
4477         if and where to split a bb, except for splitting before debug insn
4478         sequences followed by non-label real insn.  Delete debug insns
4479         in between basic blocks.
4481         * combine.c (make_compound_operation_int): Formatting fixes.
4483         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
4484         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4485         * config/netbsd.h (LINK_EH_SPEC): Likewise.
4486         * config/sol2.h (LINK_EH_SPEC): Likewise.
4487         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4488         * config/s390/linux.h (LINK_SPEC): Likewise.
4489         * config/freebsd.h (LINK_EH_SPEC): Likewise.
4490         * config/openbsd.h (LINK_EH_SPEC): Likewise.
4491         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4492         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
4493         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
4494         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4495         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
4496         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
4498 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
4500         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
4501         support.
4502         (ENDFILE_LINUX_SPEC): Likewise.
4503         (LINK_EH_SPEC): Likewise.
4504         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
4505         (LINK_OS_LINUX_SPEC32): Likewise.
4506         (LINK_OS_LINUX_SPEC64): Likewise.
4507         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
4508         (LINK_OS_LINUX_SPEC): Likewise.
4510 2017-09-13  Martin Liska  <mliska@suse.cz>
4512         PR middle-end/82154
4513         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
4514         CASE_HIGH is NULL_TREE.
4516 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
4517             Alan Hayward  <alan.hayward@arm.com>
4518             David Sherwood  <david.sherwood@arm.com>
4520         * target.def (secondary_memory_needed): New hook.
4521         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
4522         instead of SECONDARY_MEMORY_NEEDED.
4523         (secondary_memory_needed_mode): Likewise.
4524         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
4525         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
4526         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
4527         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
4528         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
4529         * doc/tm.texi: Regenerate.
4530         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
4531         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
4532         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4533         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
4534         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
4535         * config/i386/i386.c (inline_secondary_memory_needed): Put the
4536         mode argument first and change the reg_class arguments to reg_class_t.
4537         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
4538         Make static.  Update the call to inline_secondary_memory_needed.
4539         (ix86_register_move_cost): Update the call to
4540         inline_secondary_memory_needed.
4541         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4542         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
4543         definition.
4544         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
4545         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
4546         in comment.
4547         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
4548         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
4549         * config/mips/mips.c (mips_secondary_memory_needed): Make static
4550         and match hook interface.  Add comment from mips.h.
4551         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4552         * config/mmix/mmix.md (truncdfsf2): Refer to
4553         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
4554         in comment.
4555         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
4556         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
4557         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4558         (pa_secondary_memory_needed): New function.
4559         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
4560         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
4561         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4562         (pdp11_secondary_memory_needed): Make static and match hook interface.
4563         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
4564         * config/powerpcspe/powerpcspe-protos.h
4565         (rs6000_secondary_memory_needed_ptr): Delete.
4566         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
4567         Delete.
4568         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4569         (rs6000_option_override_internal): Assign to
4570         targetm.secondary_memory_needed rather than
4571         rs6000_secondary_memory_needed_ptr.
4572         (rs6000_secondary_memory_needed): Match hook interface.
4573         (rs6000_debug_secondary_memory_needed): Likewise.
4574         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
4575         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
4576         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
4577         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4578         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
4579         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
4580         Delete.
4581         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
4582         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4583         (rs6000_option_override_internal): Assign to
4584         targetm.secondary_memory_needed rather than
4585         rs6000_secondary_memory_needed_ptr.
4586         (rs6000_secondary_memory_needed): Match hook interface.
4587         (rs6000_debug_secondary_memory_needed): Likewise.
4588         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
4589         * config/s390/s390.c (s390_secondary_memory_needed): New function.
4590         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4591         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
4592         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
4593         (sparc_secondary_memory_needed): New function.
4594         * lra-constraints.c (check_and_process_move): Refer to
4595         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
4596         in comment.
4597         (curr_insn_transform): Likewise.
4598         (process_alt_operands): Use targetm.secondary_memory_needed
4599         instead of TARGET_SECONDARY_MEMORY_NEEDED.
4600         (check_secondary_memory_needed_p): Likewise.
4601         (choose_split_class): Likewise.
4602         * reload.c: Unconditionally include code that was previously
4603         conditional on SECONDARY_MEMORY_NEEDED.
4604         (push_secondary_reload): Use targetm.secondary_memory_needed
4605         instead of TARGET_SECONDARY_MEMORY_NEEDED.
4606         (push_reload): Likewise.
4607         * reload1.c: Unconditionally include code that was previously
4608         conditional on SECONDARY_MEMORY_NEEDED.
4609         (choose_reload_regs): Use targetm.secondary_memory_needed
4610         instead of TARGET_SECONDARY_MEMORY_NEEDED.
4611         (gen_reload): Likewise.
4612         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
4614 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
4615             Alan Hayward  <alan.hayward@arm.com>
4616             David Sherwood  <david.sherwood@arm.com>
4618         * target.def (secondary_memory_needed_mode): New hook:
4619         * targhooks.c (default_secondary_memory_needed_mode): Declare.
4620         * targhooks.h (default_secondary_memory_needed_mode): New function.
4621         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
4622         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
4623         * doc/tm.texi: Regenerate.
4624         * lra-constraints.c (check_and_process_move): Use
4625         targetm.secondary_memory_needed_mode instead of
4626         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
4627         (curr_insn_transform): Likewise.
4628         * reload.c (get_secondary_mem): Likewise.
4629         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
4630         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
4631         function.
4632         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
4633         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
4634         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
4635         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
4636         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
4637         Delete.
4638         * config/powerpcspe/powerpcspe-protos.h
4639         (rs6000_secondary_memory_needed_mode): Delete.
4640         * config/powerpcspe/powerpcspe.c
4641         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
4642         (rs6000_secondary_memory_needed_mode): Make static.
4643         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
4644         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
4645         Delete.
4646         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
4647         Redefine.
4648         (rs6000_secondary_memory_needed_mode): Make static.
4649         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
4650         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
4651         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
4652         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
4653         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
4654         Redefine.
4655         (sparc_secondary_memory_needed_mode): New function.
4656         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
4658 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
4660         * config/aarch64/constraints.md (Umq): New constraint.
4661         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
4662         Change to use Umq.
4663         (mov<mode>): Update condition.
4665 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4667         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
4668         when bitposition is the same.
4670 2017-09-13  Richard Biener  <rguenther@suse.de>
4672         * dwarf2out.c (output_die_symbol): Remove.
4673         (output_die): Do not output a DIEs symbol.
4675 2017-09-13  Richard Biener  <rguenther@suse.de>
4677         PR middle-end/82128
4678         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
4679         default-def to avoid breaking iterator update with the weird
4680         interaction with cgraph_update_edges_for_call_stmt_node.
4682 2017-09-13  Richard Biener  <rguenther@suse.de>
4684         * tree-cfg.c (verify_gimple_assign_binary): Add verification
4685         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
4686         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
4687         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
4689 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
4691         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
4692         Disable pc relative literal load irrespective of
4693         TARGET_FIX_ERR_A53_84341 for default.
4695 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
4697         * config/sparc/sparc.c (output_return): Output the source location of
4698         the insn in the delay slot, if any.
4699         (output_sibcall): Likewise.
4701 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
4703         PR driver/81498
4704         * common.opt (-static-pie): New alias.
4705         (shared): Negate static-pie.
4706         (-no-pie): Update help text.
4707         (-pie): Likewise.
4708         (static-pie): New option.
4709         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
4710         -static-pie support.
4711         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
4712         (LINK_EH_SPEC): Likewise.
4713         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
4714         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
4715         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
4716         * gcc.c (LINK_COMMAND_SPEC): Likewise.
4717         (init_gcc_specs): Likewise.
4718         (init_spec): Likewise.
4719         (display_help): Update help message for -pie.
4720         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
4721         -static-pie.
4723 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
4725         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
4726         (movdi_aarch64): Likewise.
4727         (movti_aarch64): Likewise.
4729 2017-09-12 Simon Wright <simon@pushface.org>
4731         PR target/80204
4732         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
4733         calculation of the minor version, always output as 0.
4735 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
4737         PR target/82112
4738         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
4739         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
4740         on it early, rather than manual conversion late.  For
4741         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
4742         instead of performing manual conversion.
4744 2017-09-12  Carl Love  <cel@us.ibm.com>
4746         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
4747         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
4748         vmulouw, vmulosw.
4749         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
4750         VMULOSW): Add definitions.
4751         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4752         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
4753         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
4754         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
4755         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
4757 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
4759         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
4760         types correctly.
4761         (movti_aarch64): Likewise.
4762         (movdf_aarch64): Likewise.
4763         (movtf_aarch64): Likewise.
4764         (load_pairdi): Likewise.
4765         (store_pairdi): Likewise.
4766         (load_pairdf): Likewise.
4767         (store_pairdf): Likewise.
4768         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
4769         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
4770         (ldr_got_small_<mode>): Likewise.
4771         (ldr_got_small_28k_<mode>): Likewise.
4772         (ldr_got_tiny): Likewise.
4773         * config/aarch64/iterators.md (ldst_sz): New.
4774         (ldpstp_sz): Likewise.
4775         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
4776         to store_16.
4777         (thunderx_load): Split load_8 to load_16.
4778         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
4779         load_8 to load_16.
4780         (thunderx2t99_storepair_basic): Split store_8 to store_16.
4781         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
4782         (xgene1_store_pair): Split store_8 to store_16.
4783         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
4784         (falkor_st_0_st_sd): Split store_8 to store_16.
4786 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
4788         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
4789         and store1/2/3/4 to store_4/8/12/16.
4790         * config/aarch64/aarch64.md: Update for rename.
4791         * config/arm/arm.md: Likewise.: Likewise.
4792         * config/arm/arm.c: Likewise.
4793         * config/arm/thumb1.md: Likewise.
4794         * config/arm/thumb2.md: Likewise.
4795         * config/arm/vfp.md: Likewise.
4796         * config/arm/arm-generic.md: Likewise.
4797         * config/arm/arm1020e.md: Likewise.
4798         * config/arm/arm1026ejs.md: Likewise.
4799         * config/arm/arm1136jfs.md: Likewise.
4800         * config/arm/arm926ejs.md: Likewise.
4801         * config/arm/cortex-a15.md: Likewise.
4802         * config/arm/cortex-a17.md: Likewise.
4803         * config/arm/cortex-a5.md: Likewise.
4804         * config/arm/cortex-a53.md: Likewise.
4805         * config/arm/cortex-a57.md: Likewise.
4806         * config/arm/cortex-a7.md: Likewise.
4807         * config/arm/cortex-a8.md: Likewise.
4808         * config/arm/cortex-a9.md: Likewise.
4809         * config/arm/cortex-m4.md: Likewise.
4810         * config/arm/cortex-m7.md: Likewise.
4811         * config/arm/cortex-r4.md: Likewise.
4812         * config/arm/exynos-m1.md: Likewise.
4813         * config/arm/fa526.md: Likewise.
4814         * config/arm/fa606te.md: Likewise.
4815         * config/arm/fa626te.md: Likewise.
4816         * config/arm/fa726te.md: Likewise.
4817         * config/arm/fmp626.md: Likewise.
4818         * config/arm/iwmmxt.md: Likewise.
4819         * config/arm/ldmstm.md: Likewise.
4820         * config/arm/marvell-pj4.md: Likewise.
4821         * config/arm/xgene1.md: Likewise.
4822         * config/aarch64/thunderx.md: Likewise.
4823         * config/aarch64/thunderx2t99.md: Likewise.
4824         * config/aarch64/falkor.md: Likewise.
4826 2017-09-12  Martin Liska  <mliska@suse.cz>
4828         * attribs.c (private_lookup_attribute): New function.
4829         * attribs.h (private_lookup_attribute): Declared here.
4830         (lookup_attribute): Called from this place.
4832 2017-09-12  Richard Biener  <rguenther@suse.de>
4834         PR tree-optimization/82157
4835         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
4836         stmts with side-effects.
4838 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
4839             Alan Hayward  <alan.hayward@arm.com>
4840             David Sherwood <david.sherwood@arm.com>
4842         * target.def (hard_regno_nregs): New hook.
4843         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
4844         * targhooks.h (default_hard_regno_nregs): Declare.
4845         * targhooks.c (default_hard_regno_nregs): New function.
4846         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
4847         (TARGET_HARD_REGNO_NREGS): ...this hook.
4848         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
4849         (CLASS_MAX_NREGS): Likewise.
4850         * doc/tm.texi: Regenerate.
4851         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
4852         instead of HARD_REGNO_NREGS.
4853         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
4854         HARD_REGNO_NREGS in the comment.
4855         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
4856         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
4857         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
4858         Return an unsigned int.
4859         (TARGET_HARD_REGNO_NREGS): Redefine.
4860         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
4861         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
4862         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
4863         (arc_hard_regno_nregs): New function.
4864         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
4865         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
4866         (arm_hard_regno_nregs): New function.
4867         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
4868         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
4869         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
4870         (TARGET_HARD_REGNO_NREGS): Redefine.
4871         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
4872         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
4873         (HARD_REGNO_NREGS): Delete.
4874         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
4875         (cr16_hard_regno_nregs): New function.
4876         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
4877         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
4878         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
4879         (cris_hard_regno_nregs): New function.
4880         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
4881         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
4882         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
4883         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
4884         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
4885         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
4886         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
4887         (frv_hard_regno_nregs): Make static.  Take and return an
4888         unsigned int.
4889         (frv_class_max_nregs): Remove outdated copy of documentation.
4890         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
4891         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
4892         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
4893         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
4894         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
4895         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
4896         (TARGET_HARD_REGNO_NREGS): Redefine.
4897         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
4898         (CLASS_MAX_NREGS): Update comment.
4899         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
4900         (ia64_hard_regno_nregs): New function.
4901         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
4902         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
4903         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
4904         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
4905         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
4906         an unsigned int.
4907         (m32c_hard_regno_nregs): Likewise.  Make static.
4908         (TARGET_HARD_REGNO_NREGS): Redefine.
4909         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
4910         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
4911         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
4912         (m68k_hard_regno_nregs): New function.
4913         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
4914         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
4915         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
4916         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
4917         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
4918         Take and return an unsigned int.
4919         (TARGET_HARD_REGNO_NREGS): Redefine.
4920         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
4921         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
4922         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
4923         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
4924         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
4925         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
4926         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
4927         (msp430_hard_regno_nregs): Make static.  Take and return an
4928         unsigned int.
4929         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
4930         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
4931         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
4932         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
4933         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
4934         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
4935         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
4936         (TARGET_HARD_REGNO_NREGS): Redefine.
4937         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
4938         (PA_HARD_REGNO_NREGS): ...this.
4939         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
4940         (PA_HARD_REGNO_NREGS): ...this.
4941         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
4942         (pa_hard_regno_nregs): New function.
4943         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
4944         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
4945         (pdp11_hard_regno_nregs): New function.
4946         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
4947         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
4948         (rs6000_hard_regno_nregs_hook): New function.
4949         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
4950         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
4951         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
4952         Take and return an unsigned int.  Move earlier in file.
4953         (TARGET_HARD_REGNO_NREGS): Redefine.
4954         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
4955         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
4956         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
4957         (rl78_hard_regno_nregs): Make static.  Take and return an
4958         unsigned int.
4959         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
4960         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
4961         (rs6000_hard_regno_nregs_hook): New function.
4962         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
4963         * config/rx/rx.c (rx_hard_regno_nregs): New function.
4964         (TARGET_HARD_REGNO_NREGS): Redefine.
4965         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
4966         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
4967         instead of HARD_REGNO_NREGS.
4968         (s390_hard_regno_nregs): New function.
4969         (s390_hard_regno_mode_ok): Add comment from s390.h.
4970         (TARGET_HARD_REGNO_NREGS): Redefine.
4971         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
4972         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
4973         (sh_hard_regno_nregs): New function.
4974         (sh_pass_in_reg_p): Use it.
4975         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
4976         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
4977         (sparc_hard_regno_nregs): New function.
4978         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
4979         * config/spu/spu.c (spu_hard_regno_nregs): New function.
4980         (spu_function_arg_advance): Use it, supplying a valid register number.
4981         (TARGET_HARD_REGNO_NREGS): Redefine.
4982         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
4983         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
4984         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
4985         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
4986         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
4987         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
4988         (CLASS_MAX_NREGS): Remove copy of old documentation.
4989         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
4990         (visium_hard_regno_nregs): New function.
4991         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
4992         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
4993         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
4994         xtensa_hard_regno_nregs): New function.
4995         * system.h (HARD_REGNO_NREGS): Poison.
4997 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
4999         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
5000         hard_regno_nregs instead of HARD_REGNO_NREGS.
5001         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
5002         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
5003         (c6x_expand_epilogue): Likewise.
5004         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
5005         (frv_read_iacc_argument): Likewise.
5006         * config/sh/sh.c: Include regs.h.
5007         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
5008         (regs_used): Likewise.
5009         (output_stack_adjust): Likewise.
5010         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
5011         * expmed.c: Include regs.h.
5012         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
5013         * ree.c: Include regs.h.
5014         (combine_reaching_defs): Use hard_regno_nregs instead of
5015         HARD_REGNO_NREGS.
5016         (add_removable_extension): Likewise.
5018 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5020         * regs.h (hard_regno_nregs): Turn into a function.
5021         (end_hard_regno): Update accordingly.
5022         * caller-save.c (setup_save_areas): Likewise.
5023         (save_call_clobbered_regs): Likewise.
5024         (replace_reg_with_saved_mem): Likewise.
5025         (insert_restore): Likewise.
5026         (insert_save): Likewise.
5027         * combine.c (can_change_dest_mode): Likewise.
5028         (move_deaths): Likewise.
5029         (distribute_notes): Likewise.
5030         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
5031         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
5032         (rs6000_split_multireg_move): Likewise.
5033         (rs6000_register_move_cost): Likewise.
5034         (rs6000_memory_move_cost): Likewise.
5035         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
5036         (rs6000_split_multireg_move): Likewise.
5037         (rs6000_register_move_cost): Likewise.
5038         (rs6000_memory_move_cost): Likewise.
5039         * cselib.c (cselib_reset_table): Likewise.
5040         (cselib_lookup_1): Likewise.
5041         * emit-rtl.c (set_mode_and_regno): Likewise.
5042         * function.c (aggregate_value_p): Likewise.
5043         * ira-color.c (setup_profitable_hard_regs): Likewise.
5044         (check_hard_reg_p): Likewise.
5045         (calculate_saved_nregs): Likewise.
5046         (assign_hard_reg): Likewise.
5047         (improve_allocation): Likewise.
5048         (calculate_spill_cost): Likewise.
5049         * ira-emit.c (modify_move_list): Likewise.
5050         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
5051         (ira_hard_reg_in_set_p): Likewise.
5052         * ira.c (setup_reg_mode_hard_regset): Likewise.
5053         (clarify_prohibited_class_mode_regs): Likewise.
5054         (check_allocation): Likewise.
5055         * lra-assigns.c (find_hard_regno_for_1): Likewise.
5056         (lra_setup_reg_renumber): Likewise.
5057         (setup_try_hard_regno_pseudos): Likewise.
5058         (spill_for): Likewise.
5059         (assign_hard_regno): Likewise.
5060         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
5061         * lra-constraints.c (in_class_p): Likewise.
5062         (lra_constraint_offset): Likewise.
5063         (simplify_operand_subreg): Likewise.
5064         (lra_constraints): Likewise.
5065         (split_reg): Likewise.
5066         (split_if_necessary): Likewise.
5067         (invariant_p): Likewise.
5068         (inherit_in_ebb): Likewise.
5069         * lra-lives.c (process_bb_lives): Likewise.
5070         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
5071         (get_hard_regs): Likewise.
5072         (do_remat): Likewise.
5073         * lra-spills.c (assign_spill_hard_regs): Likewise.
5074         * mode-switching.c (create_pre_exit): Likewise.
5075         * postreload.c (reload_combine_recognize_pattern): Likewise.
5076         * recog.c (peep2_find_free_register): Likewise.
5077         * regcprop.c (kill_value_regno): Likewise.
5078         (set_value_regno): Likewise.
5079         (copy_value): Likewise.
5080         (maybe_mode_change): Likewise.
5081         (find_oldest_value_reg): Likewise.
5082         (copyprop_hardreg_forward_1): Likewise.
5083         * regrename.c (check_new_reg_p): Likewise.
5084         (regrename_do_replace): Likewise.
5085         * reload.c (push_reload): Likewise.
5086         (combine_reloads): Likewise.
5087         (find_dummy_reload): Likewise.
5088         (operands_match_p): Likewise.
5089         (find_reloads): Likewise.
5090         (find_equiv_reg): Likewise.
5091         (reload_adjust_reg_for_mode): Likewise.
5092         * reload1.c (count_pseudo): Likewise.
5093         (count_spilled_pseudo): Likewise.
5094         (find_reg): Likewise.
5095         (clear_reload_reg_in_use): Likewise.
5096         (free_for_value_p): Likewise.
5097         (allocate_reload_reg): Likewise.
5098         (choose_reload_regs): Likewise.
5099         (reload_adjust_reg_for_temp): Likewise.
5100         (emit_reload_insns): Likewise.
5101         (delete_output_reload): Likewise.
5102         * rtlanal.c (subreg_get_info): Likewise.
5103         * sched-deps.c (sched_analyze_reg): Likewise.
5104         * sel-sched.c (init_regs_for_mode): Likewise.
5105         (mark_unavailable_hard_regs): Likewise.
5106         (choose_best_reg_1): Likewise.
5107         (verify_target_availability): Likewise.
5108         * valtrack.c (dead_debug_insert_temp): Likewise.
5109         * var-tracking.c (track_loc_p): Likewise.
5110         (emit_note_insn_var_location): Likewise.
5111         * varasm.c (make_decl_rtl): Likewise.
5112         * reginfo.c (choose_hard_reg_mode): Likewise.
5113         (init_reg_modes_target): Refer directly to
5114         this_target_regs->x_hard_regno_nregs.
5116 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5118         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
5119         instead of hard_regno_nregs.
5121 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5123         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
5124         end_hard_regno instead of hard_regno_nregs.
5125         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
5126         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
5127         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
5128         * ira-color.c (improve_allocation): Likewise.
5129         * lra-assigns.c (find_hard_regno_for_1): Likewise.
5130         * lra-lives.c (mark_regno_live): Likewise.
5131         (mark_regno_dead): Likewise.
5132         * lra-remat.c (operand_to_remat): Likewise.
5133         * lra.c (collect_non_operand_hard_regs): Likewise.
5134         * postreload.c (reload_combine_note_store): Likewise.
5135         (move2add_valid_value_p): Likewise.
5136         * reload.c (regno_clobbered_p): Likewise.
5138 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5140         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
5141         hard_regno_nregs.
5142         * config/v850/v850.c (v850_reorg): Likewise.
5143         * reload.c (refers_to_regno_for_reload_p): Likewise.
5144         (find_equiv_reg): Likewise.
5145         * reload1.c (reload_reg_reaches_end_p): Likewise.
5147 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5149         * caller-save.c (add_used_regs): Use REG_NREGS instead of
5150         hard_regno_nregs.
5151         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
5152         * config/arm/arm.c (output_move_neon): Likewise.
5153         (arm_attr_length_move_neon): Likewise.
5154         (neon_split_vcombine): Likewise.
5155         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
5156         (c6x_mark_reg_written): Likewise.
5157         (c6x_dwarf_register_span): Likewise.
5158         * config/i386/i386.c (ix86_save_reg): Likewise.
5159         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
5160         (rws_access_reg): Likewise.
5161         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5162         * mode-switching.c (create_pre_exit): Likewise.
5163         * ree.c (combine_reaching_defs): Likewise.
5164         (add_removable_extension): Likewise.
5165         * regcprop.c (find_oldest_value_reg): Likewise.
5166         (copyprop_hardreg_forward_1): Likewise.
5167         * reload.c (reload_inner_reg_of_subreg): Likewise.
5168         (push_reload): Likewise.
5169         (combine_reloads): Likewise.
5170         (find_dummy_reload): Likewise.
5171         (reload_adjust_reg_for_mode): Likewise.
5172         * reload1.c (find_reload_regs): Likewise.
5173         (forget_old_reloads_1): Likewise.
5174         (reload_reg_free_for_value_p): Likewise.
5175         (reload_adjust_reg_for_temp): Likewise.
5176         (emit_reload_insns): Likewise.
5177         (delete_output_reload): Likewise.
5178         * sel-sched.c (choose_best_reg_1): Likewise.
5179         (choose_best_pseudo_reg): Likewise.
5181 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5182             Alan Hayward  <alan.hayward@arm.com>
5183             David Sherwood <david.sherwood@arm.com>
5185         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
5186         * target.def (slow_unaligned_access): New hook.
5187         * targhooks.h (default_slow_unaligned_access): Declare.
5188         * targhooks.c (default_slow_unaligned_access): New function.
5189         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
5190         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
5191         * doc/tm.texi: Regenerate.
5192         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
5193         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
5194         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
5195         definition.
5196         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
5197         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
5198         Redefine.
5199         (rs6000_slow_unaligned_access): New function.
5200         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
5201         (expand_block_compare): Likewise.
5202         (expand_strn_compare): Likewise.
5203         (rs6000_rtx_costs): Likewise.
5204         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
5205         (riscv_slow_unaligned_access): Likewise.
5206         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
5207         (riscv_slow_unaligned_access_p): ...this and make static.
5208         (riscv_option_override): Update accordingly.
5209         (riscv_slow_unaligned_access): New function.
5210         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
5211         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
5212         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
5213         (rs6000_slow_unaligned_access): New function.
5214         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
5215         (rs6000_rtx_costs): Likewise.
5216         * config/rs6000/rs6000-string.c (expand_block_compare)
5217         (expand_strn_compare): Use targetm.slow_unaligned_access instead
5218         of SLOW_UNALIGNED_ACCESS.
5219         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
5220         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
5221         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
5222         of SLOW_UNALIGNED_ACCESS.
5223         * expmed.c (simple_mem_bitfield_p): Likewise.
5224         * expr.c (alignment_for_piecewise_move): Likewise.
5225         (emit_group_load_1): Likewise.
5226         (emit_group_store): Likewise.
5227         (copy_blkmode_from_reg): Likewise.
5228         (emit_push_insn): Likewise.
5229         (expand_assignment): Likewise.
5230         (store_field): Likewise.
5231         (expand_expr_real_1): Likewise.
5232         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
5233         * lra-constraints.c (simplify_operand_subreg): Likewise.
5234         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
5235         * gimple-ssa-store-merging.c: Likewise in block comment at start
5236         of file.
5237         * tree-ssa-strlen.c: Include target.h.
5238         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
5239         of SLOW_UNALIGNED_ACCESS.
5240         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
5242 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
5244         PR rtl-optimization/82185
5245         * expmed.c (emit_store_flag_int): Only test tem if it has been
5246         initialized.
5248 2017-09-12  Richard Biener  <rguenther@suse.de>
5250         PR middle-end/82149
5251         * match.pd ((FTYPE) N CMP CST): Fix typo.
5253 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
5255         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
5256         attribute.
5257         (mips_near_type_p): Add 'short_call' attribute as a synonym
5258         for 'near'.
5259         * doc/extend.texi (short_call): Document new function attribute.
5261 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
5263         PR target/82112
5264         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
5265         assertion check that in the condition.
5266         (get_atomic_generic_size): Likewise.  Before testing if parameter
5267         has pointer type, if it has array type, call for C++
5268         default_conversion to perform array-to-pointer conversion.
5270 2017-09-12  Richard Biener  <rguenther@suse.de>
5272         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
5273         for operations we cannot scalarize.
5275 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
5277         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
5278         vectors heap vectors.  Clean up comments.
5279         Make visited_bbs a reference.
5280         (profitable_jump_thread_path): Make GC
5281         vectors heap vectors.  Clean up comments.
5282         Misc cleanups.
5283         (convert_and_register_jump_thread_path): Make GC vectors heap
5284         vectors.
5285         (check_subpath_and_update_thread_path): Same.  Clean up comments.
5286         Make visited_bbs a reference.
5287         (handle_phi): Abstract common code to to
5288         register_jump_thread_path_if_profitable.
5289         Rename VAR_BB to DEF_BB.
5290         Update comments.
5291         Make GC vectors heap vectors.
5292         Make visited_bbs a reference.
5293         (handle_assignment): Same.
5294         (register_jump_thread_path_if_profitable): New.
5295         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
5296         DEF_BB.
5297         Make GC vectors heap vectors.  Clean up comments.
5298         Make visited_bbs a reference.
5299         (find_jump_threads_backwards): Make visited_bbs live in the stack.
5300         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
5301         comment.
5303 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
5305         PR target/82181
5306         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
5307         words of E_DImode object are reachable by xtensa_uimm8x4 access.
5309 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
5311         Revert r251800 and r251799.
5313 2017-09-11  Martin Jambor  <mjambor@suse.cz>
5315         PR hsa/82119
5316         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
5317         arguments in advance.
5318         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
5319         use it to find predecessor edges.
5320         (naive_outof_ssa): Collect vector of predecessors.
5322 2017-09-08  Jason Merrill  <jason@redhat.com>
5324         PR c++/70029 - ICE with ref-qualifier and -flto
5325         * langhooks.h (struct lang_hooks_for_types): Add
5326         copy_lang_qualifiers.
5327         * attribs.c (build_type_attribute_qual_variant): Use it.
5328         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
5329         NULL.
5330         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
5331         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
5333 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
5335         PR target/81988
5336         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
5337         (*mulsi3_sp64): New instruction.
5338         (mulsi3): New expander.
5340 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
5342         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
5344 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5346         * sancov.c: Include memmodel.h.
5348 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
5350         PR target/80897
5351         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
5352         large offsets.
5354 2017-09-07  Carl Love  <cel@us.ibm.com>
5356         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
5357         the sldi instruction.
5359 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
5361         * sancov.c: Include tm_p.h.
5363 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
5365         PR target/81979
5366         * output.h (switch_to_other_text_partition): New declaration.
5367         * varasm.c (switch_to_other_text_partition): New function.
5368         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
5369         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
5370         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
5371         to the other text partition before emitting LCL label and switch back
5372         after emitting the word after it.
5374 2017-09-07  Richard Biener  <rguenther@suse.de>
5376         * passes.def (pass_split_crit_edges): Remove instance before PRE.
5377         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
5378         critical edges here, after loop init.
5379         (pass_data_pre): Remove PROP_no_crit_edges flags.
5380         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
5381         for valueization of call args to avoid leaking VN_TOP.
5382         (visit_use): Assert we do not visit default defs.
5383         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
5384         Use error_mark_node to more easily detect leaking VN_TOP.
5385         All default-defs are varying, not VN_TOP.  Mark them visited.
5386         (run_scc_vn): Make code match comment.
5388 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
5390         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
5391         OPTION_MASK_FLOAT128_KEYWORD.
5392         (POWERPC_MASKS): Likewise.
5393         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
5394         support for the -mfloat128-type option, and make -mfloat128
5395         default on PowerPC Linux systems.  Define or undefine
5396         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
5397         Define __float128 to be __ieee128 if IEEE 128-bit support is
5398         enabled, or undefine it.
5399         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
5400         Delete defining __FLOAT128_TYPE__.
5401         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
5402         -mfloat128-type option and make -mfloat128 default on PowerPC
5403         Linux systems.
5404         (TARGET_FLOAT128_TYPE): Likewise.
5405         (-mfloat128-type): Likewise.
5406         * config/rs6000/rs6000.c (rs6000_option_override_internal):
5407         Delete the -mfloat128-type option and make -mfloat128 default on
5408         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
5409         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
5410         128-bit floating point is enabled.  Change tests from using
5411         -mfloat128-type to -mfloat128.
5412         (rs6000_mangle_type): Use the correct mangling for the __float128
5413         type even if normal long double is restricted to 64-bits.
5414         (floatn_mode): Enable the _Float128 type by default on VSX Linux
5415         systems.
5416         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
5417         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
5418         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
5419         -mfloat128-type.
5420         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
5421         documentation for -mfloat128.
5423 2017-09-06  Olivier Hainque  <hainque@adacore.com>
5425         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
5427 2017-09-06  Wish Wu  <wishwu007@gmail.com>
5428             Jakub Jelinek  <jakub@redhat.com>
5430         * asan.c (initialize_sanitizer_builtins): Add
5431         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
5432         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
5433         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
5434         BT_FN_VOID_UINT64_PTR variables.
5435         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
5436         (BT_FN_VOID_UINT16_UINT16): Likewise.
5437         (BT_FN_VOID_UINT32_UINT32): Likewise.
5438         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
5439         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
5440         (BT_FN_VOID_UINT64_PTR): Likewise.
5441         * common.opt (flag_sanitize_coverage): New variable.
5442         (fsanitize-coverage=trace-pc): Remove.
5443         (fsanitize-coverage=): Add.
5444         * flag-types.h (enum sanitize_coverage_code): New enum.
5445         * fold-const.c (fold_range_test): Disable non-short-circuit
5446         optimization if flag_sanitize_coverage.
5447         (fold_truth_andor): Likewise.
5448         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
5449         * opts.c (COVERAGE_SANITIZER_OPT): Define.
5450         (coverage_sanitizer_opts): New array.
5451         (get_closest_sanitizer_option): Add OPTS argument, handle also
5452         OPT_fsanitize_coverage_.
5453         (parse_sanitizer_options): Adjusted to also handle
5454         OPT_fsanitize_coverage_.
5455         (common_handle_option): Add OPT_fsanitize_coverage_.
5456         * sancov.c (instrument_comparison, instrument_switch): New function.
5457         (sancov_pass): Add trace-cmp support.
5458         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
5459         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
5460         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
5461         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
5462         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
5463         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
5464         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
5465         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
5466         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
5467         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
5469 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
5471         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
5472         error.  Only quit immediately if parsing is complete.
5473         (BEGIN): Initialize fatal_err and parse_done.
5474         (begin fpu, end fpu): Check number of arguments.
5475         (begin arch, end arch): Likewise.
5476         (begin cpu, end cpu): Likewise.
5477         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
5478         (optalias): Likewise.
5480 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
5482         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
5483         * config/arm/arm-isa.h: Delete.  Move definitions to ...
5484         * arm-cpus.in: ... here.  Use new feature and fgroup values.
5485         * config/arm/arm.c (arm_option_override): Use lower case for feature
5486         bit names.
5487         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
5488         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
5489         * config/arm/parsecpu.awk (END): Add new command 'isa'.
5490         (isa_pfx): Delete.
5491         (print_isa_bits_for): New function.
5492         (gen_isa): New function.
5493         (gen_comm_data): Use print_isa_bits_for.
5494         (define feature): New keyword.
5495         (define fgroup): New keyword.
5496         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
5497         (arm-isa.h): Add rule to generate file.
5498         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
5499         case for feature bit names.
5501 2017-09-06  Richard Biener  <rguenther@suse.de>
5503         * tree-ssa-pre.c (NECESSARY): Remove.
5504         (create_expression_by_pieces): Do not touch pass-local flags.
5505         (insert_into_preds_of_block): Likewise.
5506         (do_pre_regular_insertion): Likewise.
5507         (eliminate_insert): Likewise.
5508         (eliminate_dom_walker::before_dom_children): Likewise.
5509         (fini_eliminate): Do not look at inserted_exprs.
5510         (mark_operand_necessary): Remove.
5511         (remove_dead_inserted_code): Replace with simple work-list
5512         algorithm based on inserted_exprs and SSA uses.
5513         (pass_pre::execute): Re-order fini_eliminate and
5514         remove_dead_inserted_code.
5516 2017-09-06  Olivier Hainque  <hainque@adacore.com>
5518         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
5519         for VxWorks 7.  Adjust surrounding comments.
5521 2017-09-06  Richard Biener  <rguenther@suse.de>
5523         * gimple-ssa-strength-reduction.c
5524         (find_candidates_dom_walker::before_dom_children): Also allow
5525         pointer types.
5527 2017-09-06  Richard Biener  <rguenther@suse.de>
5529         PR tree-optimization/82108
5530         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
5531         for gap in the non-permutation SLP case.
5533 2017-09-06  Martin Jambor  <mjambor@suse.cz>
5535         PR tree-optimization/82078
5536         * tree-sra.c (sort_and_splice_var_accesses): Move call to
5537         add_access_to_work_queue...
5538         (build_accesses_from_assign): ...here.
5539         (propagate_all_subaccesses): Make sure racc is the group
5540         representative, if there is one.
5542 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
5544         PR middle-end/82095
5545         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
5546         NULL DECL_INITIAL.
5548 2017-09-06  Richard Biener  <rguenther@suse.de>
5550         * gimple-ssa-strength-reduction.c
5551         (find_candidates_dom_walker::before_doom_children): Use a
5552         type and not a mode check.
5554 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5556         PR target/77308
5557         * config/arm/predicates.md (arm_general_adddi_operand): Create new
5558         non-vfp predicate.
5559         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
5561 2017-09-05  Jeff Law  <law@redhat.com>
5563         PR tree-optimization/64910
5564         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
5565         cases where we have 3 or more operands.
5567 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
5569         PR middle-end/81768
5570         * omp-low.c (lower_omp_for): Recompute tree invariant if
5571         gimple_omp_for_initial/final is ADDR_EXPR.
5573         PR middle-end/81768
5574         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
5575         into gimple val before gimplification fo the COND_EXPR.
5577 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
5579         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
5580         REGION_COPY argument.
5581         (thread_through_all_blocks): Remove unused argument to
5582         duplicate_thread_path.
5584 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5585             Alan Hayward  <alan.hayward@arm.com>
5586             David Sherwood  <david.sherwood@arm.com>
5588         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
5589         Take a scalar_mode rather than a machine_mode.
5590         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
5591         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
5592         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
5593         (aarch64_gen_adjusted_ldpstp): Likewise.
5594         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
5596 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5597             Alan Hayward  <alan.hayward@arm.com>
5598             David Sherwood  <david.sherwood@arm.com>
5600         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
5601         Take a scalar_int_mode instead of a machine_mode.
5602         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
5603         (aarch64_output_scalar_simd_mov_immediate): Likewise.
5604         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
5605         (aarch64_simd_attr_length_rglist): Delete.
5606         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
5607         a scalar_int_mode instead of a machine_mode.
5608         (aarch64_add_offset): Likewise.
5609         (aarch64_internal_mov_immediate): Likewise
5610         (aarch64_add_constant_internal): Likewise.
5611         (aarch64_add_constant): Likewise.
5612         (aarch64_movw_imm): Likewise.
5613         (aarch64_rtx_arith_op_extract_p): Likewise.
5614         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
5615         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
5616         Remove assert that the mode isn't a vector.
5617         (aarch64_output_scalar_simd_mov_immediate): Likewise.
5618         (aarch64_expand_mov_immediate): Update calls after above changes.
5619         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
5620         (aarch64_and_bitmask_imm): Check for scalar integer modes.
5621         (aarch64_move_imm): Likewise.
5622         (aarch64_can_const_movi_rtx_p): Likewise.
5623         (aarch64_strip_extend): Likewise.
5624         (aarch64_extr_rtx_p): Likewise.
5625         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
5626         a CONST_INT when the mode parameter is VOIDmode.
5627         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
5629 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5631         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
5632         * stor-layout.c (bitwise_mode_for_mode): Likewise.
5633         (bitwise_type_for_mode): Update accordingly.
5635 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5637         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
5638         * stor-layout.c (mode_for_size_tree): Likewise.
5639         (mode_for_array): Update accordingly.
5640         (layout_decl): Likewise.
5641         (compute_record_mode): Likewise.  Only set the mode once.
5643 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5645         * target.def (get_mask_mode): Change return type to opt_mode.
5646         Expand commentary.
5647         * doc/tm.texi: Regenerate.
5648         * targhooks.h (default_get_mask_mode): Return an opt_mode.
5649         * targhooks.c (default_get_mask_mode): Likewise.
5650         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
5651         * optabs-query.c (can_vec_mask_load_store_p): Update use of
5652         targetm.get_mask_mode.
5653         * tree.c (build_truth_vector_type): Likewise.
5655 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5657         * machmode.h (mode_for_vector): Return an opt_mode.
5658         * stor-layout.c (mode_for_vector): Likewise.
5659         (mode_for_int_vector): Update accordingly.
5660         (layout_type): Likewise.
5661         * config/i386/i386.c (emit_memmov): Likewise.
5662         (ix86_expand_set_or_movmem): Likewise.
5663         (ix86_expand_vector_init): Likewise.
5664         (ix86_get_mask_mode): Likewise.
5665         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
5666         Likewise.
5667         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
5668         * expmed.c (extract_bit_field_1): Likewise.
5669         * expr.c (expand_expr_real_2): Likewise.
5670         * optabs-query.c (can_vec_perm_p): Likewise.
5671         (can_vec_mask_load_store_p): Likewise.
5672         * optabs.c (expand_vec_perm): Likewise.
5673         * targhooks.c (default_get_mask_mode): Likewise.
5674         * tree-vect-stmts.c (vectorizable_store): Likewise.
5675         (vectorizable_load): Likewise.
5676         (get_vectype_for_scalar_type_and_size): Likewise.
5678 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5680         * machmode.h (mode_for_int_vector): New function.
5681         * stor-layout.c (mode_for_int_vector): Likewise.
5682         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
5683         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
5684         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
5685         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
5686         (s390_expand_vcond): Likewise.
5688 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5690         * machmode.h (opt_machine_mode): New type.
5691         (opt_mode<T>): Allow construction from anything that can be
5692         converted to a T.
5693         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
5694         (mode_for_size): Return an opt_machine_mode.
5695         * stor-layout.c (mode_for_size): Likewise.
5696         (mode_for_size_tree): Update call accordingly.
5697         (bitwise_mode_for_mode): Likewise.
5698         (make_fract_type): Likewise.
5699         (make_accum_type): Likewise.
5700         * caller-save.c (replace_reg_with_saved_mem): Update call
5701         accordingly.
5702         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
5703         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
5704         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
5705         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
5706         * expmed.c (extract_bit_field_1): Likewise.
5707         * reload.c (get_secondary_mem): Likewise.
5708         * varasm.c (assemble_integer): Likewise.
5709         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
5710         early-out.
5712 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5714         * machmode.h (decimal_float_mode_for_size): New function.
5715         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
5716         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
5717         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
5718         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
5719         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
5720         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
5722 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5724         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
5725         (get_builtin_sync_mode): Likewise.
5726         (expand_ifn_atomic_compare_exchange): Likewise.
5727         (expand_builtin_atomic_clear): Likewise.
5728         (expand_builtin_atomic_test_and_set): Likewise.
5729         (fold_builtin_atomic_always_lock_free): Likewise.
5730         * calls.c (compute_argument_addresses): Likewise.
5731         (emit_library_call_value_1): Likewise.
5732         (store_one_arg): Likewise.
5733         * combine.c (combine_instructions): Likewise.
5734         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
5735         * config/arm/arm.c (arm_function_value): Likewise.
5736         (aapcs_allocate_return_reg): Likewise.
5737         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
5738         * config/i386/i386.c (construct_container): Likewise.
5739         (ix86_gimplify_va_arg): Likewise.
5740         (ix86_expand_sse_cmp): Likewise.
5741         (emit_memmov): Likewise.
5742         (emit_memset): Likewise.
5743         (expand_small_movmem_or_setmem): Likewise.
5744         (ix86_expand_pextr): Likewise.
5745         (ix86_expand_pinsr): Likewise.
5746         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
5747         * config/microblaze/microblaze.c (microblaze_block_move_straight):
5748         Likewise.
5749         * config/mips/mips.c (mips_function_value_1) Likewise.
5750         (mips_block_move_straight): Likewise.
5751         (mips_expand_ins_as_unaligned_store): Likewise.
5752         * config/powerpcspe/powerpcspe.c
5753         (rs6000_darwin64_record_arg_advance_flush): Likewise.
5754         (rs6000_darwin64_record_arg_flush): Likewise.
5755         * config/rs6000/rs6000.c
5756         (rs6000_darwin64_record_arg_advance_flush): Likewise.
5757         (rs6000_darwin64_record_arg_flush): Likewise.
5758         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
5759         (sparc_function_value_1): Likewise.
5760         * config/spu/spu.c (adjust_operand): Likewise.
5761         (spu_emit_branch_or_set): Likewise.
5762         (arith_immediate_p): Likewise.
5763         * emit-rtl.c (gen_lowpart_common): Likewise.
5764         * expr.c (expand_expr_real_1): Likewise.
5765         * function.c (assign_parm_setup_block): Likewise.
5766         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
5767         * reload1.c (alter_reg): Likewise.
5768         * stor-layout.c (mode_for_vector): Likewise.
5769         (layout_type): Likewise.
5771 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
5773         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
5774         (spu_convert_move): Likewise.
5775         * lower-subreg.c (resolve_simple_move): Likewise.
5777 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5779         PR target/81833
5780         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
5781         define_insn to a define_expand.
5782         (altivec_vsum2sws_direct): New define_insn.
5783         (altivec_vsumsws): Convert from a define_insn to a define_expand.
5785 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
5787         * config/arm/arm.c (arm_option_params_internal): Improve setting of
5788         max_insns_skipped.
5790 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
5792         PR target/59501
5793         PR target/81624
5794         PR target/81769
5795         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
5796         realign stack if stack alignment needed is less than incoming
5797         stack boundary.
5799 2017-09-05  Marek Polacek  <polacek@redhat.com>
5801         PR sanitizer/82072
5802         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
5803         check earlier.
5805 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
5807         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
5809 2017-09-05  Richard Biener  <rguenther@suse.de>
5811         PR tree-optimization/82084
5812         * fold-const.c (can_native_encode_string_p): Handle wide characters.
5814 2017-09-05  Richard Biener  <rguenther@suse.de>
5816         PR tree-optimization/82102
5817         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
5819 2017-09-05  Martin Liska  <mliska@suse.cz>
5821         PR tree-optimization/82032
5822         * tree-cfg.c (generate_range_test): New function.
5823         * tree-cfg.h (generate_range_test): Declared here.
5824         * tree-cfgcleanup.c (convert_single_case_switch): New function.
5825         (cleanup_control_expr_graph): Use it.
5826         * tree-switch-conversion.c (try_switch_expansion): Remove
5827         assert.
5828         (emit_case_nodes): Use generate_range_test.
5830 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
5832         PR target/82098
5833         * config/i386/i386.md (*<btsc><mode>_mask): Add
5834         TARGET_USE_BT to insn constraint.
5835         (*btr<mode>_mask): Ditto.
5837 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
5839         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
5840         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
5842 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5844         PR target/77308
5845         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
5846         TARGET_NEON and TARGET_IWMMXT.
5847         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
5848         TARGET_NEON and TARGET_IWMMXT.
5849         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
5851 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
5853         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
5854         (ix86_rewrite_tls_address): Ditto.
5855         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
5856         (ix86_rewrite_tls_address_1): Ditto.
5857         (ix86_rewrite_tls_address): Ditto.
5858         * config/i386/predicates.md (tls_address_pattern): New predicate.
5859         * config/i386/i386.md (TLS address splitter): New splitter.
5861 2017-09-04  Richard Biener  <rguenther@suse.de>
5863         PR tree-optimization/82084
5864         * fold-const.h (can_native_encode_string_p): Declare.
5865         * fold-const.c (can_native_encode_string_p): Factor out from ...
5866         (native_encode_string): ... here.
5867         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
5868         vectorizing stores from constants we later cannot handle.
5870 2017-09-04  Marek Polacek  <polacek@redhat.com>
5872         PR c/81783
5873         * doc/invoke.texi: Update -Wtautological-compare documentation.
5875 2017-09-04  Jeff Law  <law@redhat.com>
5877         PR tree-optimization/64910
5878         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
5879         swap the first and last operand if the last is a constant.
5881 2017-09-04  Marek Polacek  <polacek@redhat.com>
5883         PR sanitizer/82072
5884         * convert.c (do_narrow): When sanitizing signed integer overflows,
5885         bail out for signed types.
5886         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
5888 2017-09-04  Richard Biener  <rguenther@suse.de>
5890         PR tree-optimization/82060
5891         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5892         Move devirtualization after stmt folding and before EH/AB/noreturn
5893         cleanup to get the stmt refs canonicalized.  Use a bool instead
5894         of gimple_modified_p since that doesn't work for NOPs.  Schedule
5895         NOPs generated by folding for removal.
5897 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
5898             Alan Hayward  <alan.hayward@arm.com>
5899             David Sherwood  <david.sherwood@arm.com>
5901         * coretypes.h (pad_direction): New enum.
5902         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
5903         (FUNCTION_ARG_PADDING): Likewise.
5904         * target.def (function_arg_padding): New hook.
5905         * targhooks.h (default_function_arg_padding): Declare.
5906         * targhooks.c (default_function_arg_padding): New function.
5907         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
5908         (TARGET_FUNCTION_ARG_PADDING): ...this.
5909         * doc/tm.texi: Regenerate.
5910         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
5911         instead of direction.
5912         (compute_argument_addresses): Likewise.
5913         (load_register_parameters): Likewise.
5914         (emit_library_call_value_1): Likewise.
5915         (store_one_arg): Use targetm.calls.function_arg_padding instead
5916         of FUNCTION_ARG_PADDING.
5917         (must_pass_in_stack_var_size_or_pad): Likewise.
5918         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
5919         (emit_group_store): Likewise.
5920         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
5921         instead of FUNCTION_ARG_PADDING.
5922         (emit_push_insn): Likewise, and propagate enum change throughout
5923         function.
5924         * function.h (direction): Delete.
5925         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
5926         of direction.
5927         * function.c (assign_parm_find_stack_rtl): Likewise.
5928         (assign_parm_setup_block_p): Likewise.
5929         (assign_parm_setup_block): Likewise.
5930         (gimplify_parameters): Likewise.
5931         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
5932         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
5933         function.
5934         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
5935         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
5936         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
5937         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
5938         (aarch64_function_arg_padding): ...this new function.
5939         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
5940         (TARGET_FUNCTION_ARG_PADDING): Redefine.
5941         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
5942         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
5943         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
5944         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5945         (arm_pad_arg_upward): Replace with...
5946         (arm_function_arg_padding): ...this new function.
5947         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
5948         of direction.
5949         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
5950         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
5951         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5952         (ia64_hpux_function_arg_padding): Replace with...
5953         (ia64_function_arg_padding): ...this new function.  Use pad_direction
5954         instead of direction.  Check for TARGET_HPUX.
5955         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
5956         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5957         (iq2000_function_arg_padding): New function.
5958         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
5959         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
5960         (mips_function_arg_padding): ...this new function.
5961         (mips_pad_reg_upward): Update accordingly.
5962         (TARGET_FUNCTION_ARG_PADDING): Redefine.
5963         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
5964         targetm.calls.function_arg_padding.
5965         (FUNCTION_ARG_PADDING): Delete.
5966         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
5967         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
5968         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
5969         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
5970         (nios2_block_reg_padding): Return pad_direction instead of direction.
5971         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
5972         instead of direction.
5973         (nios2_function_arg_padding): Likewise.  Make static.
5974         (TARGET_FUNCTION_ARG_PADDING): Redefine.
5975         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
5976         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
5977         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
5978         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
5979         (pa_function_arg_padding): Make static.  Return pad_direction instead
5980         of direction.
5981         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
5982         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
5983         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
5984         instead of direction.  Use targetm.calls.function_arg_padding.
5985         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
5986         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
5987         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
5988         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
5989         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
5990         Redefine.
5991         (function_arg_padding): Rename to...
5992         (rs6000_function_arg_padding): ...this.  Make static.  Return
5993         pad_direction instead of direction.
5994         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
5995         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
5996         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
5997         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
5998         instead of direction.  Use targetm.calls.function_arg_padding.
5999         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
6000         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
6001         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
6002         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
6003         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6004         (function_arg_padding): Rename to...
6005         (rs6000_function_arg_padding): ...this.  Make static.  Return
6006         pad_direction instead of direction.
6007         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
6008         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
6009         * config/s390/s390.c (s390_function_arg_padding): New function.
6010         (TARGET_FUNCTION_ARG_PADDING): Redefine.
6011         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
6012         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
6013         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
6014         (function_arg_padding): Rename to...
6015         (sparc_function_arg_padding): ...this.  Make static.  Return
6016         pad_direction instead of direction.
6017         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
6018         * config/spu/spu.c (spu_function_arg_padding): New function.
6019         (TARGET_FUNCTION_ARG_PADDING): Redefine.
6020         * system.h (FUNCTION_ARG_PADDING): Poison.
6022 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6023             Alan Hayward  <alan.hayward@arm.com>
6024             David Sherwood  <david.sherwood@arm.com>
6026         * target.def (modes_tieable_p): New hook.
6027         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
6028         (TARGET_MODES_TIEABLE_P): ...this.
6029         * doc/tm.texi.in: Regenerate.
6030         * hooks.h (hook_bool_mode_mode_true): Declare.
6031         * hooks.c (hook_bool_mode_mode_true): New function.
6032         * combine.c (subst): Use targetm.modes_tieable_p instead of
6033         MODES_TIEABLE_P.
6034         * dse.c (find_shift_sequence): Likewise.
6035         * expmed.c (extract_low_bits): Likewise.
6036         * lower-subreg.c: Include target.h.
6037         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
6038         MODES_TIEABLE_P.
6039         * rtlanal.c (rtx_cost): Likewise.
6040         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
6041         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
6042         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
6043         (TARGET_MODES_TIEABLE_P): Redefine.
6044         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
6045         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
6046         (TARGET_MODES_TIEABLE_P): Redefine.
6047         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
6048         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
6049         (arc_modes_tieable_p): New function.
6050         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
6051         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
6052         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
6053         (arm_modes_tieable_p): Make static.
6054         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
6055         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
6056         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
6057         (TARGET_MODES_TIEABLE_P): Redefine.
6058         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
6059         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
6060         (TARGET_MODES_TIEABLE_P): Redefine.
6061         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
6062         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
6063         (cr16_modes_tieable_p): New function.
6064         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
6065         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
6066         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
6067         (TRULY_NOOP_TRUNCATION): Update comment.
6068         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
6069         (TRULY_NOOP_TRUNCATION): Update comment.
6070         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
6071         (frv_modes_tieable_p): New function.
6072         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
6073         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
6074         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
6075         (TARGET_MODES_TIEABLE_P): Redefine.
6076         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
6077         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
6078         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
6079         (TARGET_MODES_TIEABLE_P): Redefine.
6080         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
6081         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
6082         (ia64_modes_tieable_p): New function.
6083         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
6084         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
6085         (iq2000_modes_tieable_p): New function.
6086         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
6087         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
6088         (lm32_modes_tieable_p): New function.
6089         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
6090         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
6091         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
6092         (TARGET_MODES_TIEABLE_P): Redefine.
6093         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
6094         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
6095         (m32r_modes_tieable_p): New function.
6096         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
6097         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
6098         (m68k_modes_tieable_p): New function.
6099         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
6100         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
6101         (mcore_modes_tieable_p): New function.
6102         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
6103         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
6104         function.
6105         (TARGET_MODES_TIEABLE_P): Redefine.
6106         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
6107         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
6108         * config/mips/mips.c (mips_modes_tieable_p): Make static.
6109         (TARGET_MODES_TIEABLE_P): Redefine.
6110         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
6111         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
6112         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
6113         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
6114         (mn10300_modes_tieable_p): ...this and make static.
6115         (TARGET_MODES_TIEABLE_P): Redefine.
6116         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
6117         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
6118         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
6119         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
6120         (msp430_modes_tieable_p): Make static.
6121         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
6122         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
6123         (TARGET_MODES_TIEABLE_P): Redefine.
6124         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
6125         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
6126         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
6127         (TARGET_MODES_TIEABLE_P): Redefine.
6128         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
6129         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
6130         * config/pa/pa.c (pa_modes_tieable_p): Make static.
6131         (TARGET_MODES_TIEABLE_P): Redefine.
6132         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
6133         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
6134         (pdp11_modes_tieable_p): New function.
6135         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
6136         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
6137         (rs6000_modes_tieable_p): New function.
6138         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
6139         * config/powerpcspe/powerpcspe.md: Update comment.
6140         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
6141         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
6142         (TARGET_MODES_TIEABLE_P): Redefine.
6143         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
6144         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
6145         (rl78_modes_tieable_p): New function.
6146         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
6147         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
6148         (rs6000_modes_tieable_p): New function.
6149         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
6150         * config/rs6000/rs6000.md: Update comment.
6151         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
6152         * config/rx/rx.c (rx_modes_tieable_p): New function.
6153         (TARGET_MODES_TIEABLE_P): Redefine.
6154         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
6155         * config/s390/s390.c (s390_modes_tieable_p): New function.
6156         (TARGET_MODES_TIEABLE_P): Redefine.
6157         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
6158         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
6159         (sh_modes_tieable_p): New function.
6160         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
6161         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
6162         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
6163         (sparc_modes_tieable_p): Make static.
6164         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
6165         * config/spu/spu.c (spu_modes_tieable_p): New function.
6166         (TARGET_MODES_TIEABLE_P): Redefine.
6167         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
6168         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
6169         (TARGET_MODES_TIEABLE_P): Redefine.
6170         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
6171         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
6172         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
6173         * config/v850/v850.c (v850_modes_tieable_p): New function.
6174         (TARGET_MODES_TIEABLE_P): Redefine.
6175         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
6176         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
6177         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
6178         (visium_modes_tieable_p): New function.
6179         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
6180         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
6181         (xtensa_modes_tieable_p): New function.
6182         * system.h (MODES_TIEABLE_P): Poison.
6184 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6185             Alan Hayward  <alan.hayward@arm.com>
6186             David Sherwood  <david.sherwood@arm.com>
6188         * target.def (hard_regno_mode_ok): New hook.
6189         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
6190         (TARGET_HARD_REGNO_MODE_OK): ...this.
6191         * doc/tm.texi.in: Regenerate.
6192         * hooks.h (hook_bool_uint_mode_true): Declare.
6193         * hooks.c (hook_bool_uint_mode_true): New function.
6194         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
6195         HARD_REGNO_MODE_OK.
6196         * genpreds.c (write_insn_preds_c): Add an include of target.h.
6197         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
6198         instead of HARD_REGNO_MODE_OK.
6199         * caller-save.c: Include target.h.
6200         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
6201         HARD_REGNO_MODE_OK.
6202         * combine.c (can_combine_p): Likewise.
6203         (combinable_i3pat): Likewise.
6204         (can_change_dest_mode): Likewise.
6205         * expr.c (init_expr_target): Likewise.
6206         (convert_move): Likewise.
6207         (convert_modes): Likewise.
6208         * ira.c (setup_prohibited_class_mode_regs): Likewise.
6209         (setup_prohibited_mode_move_regs): Likewise.
6210         * ira.h (target_ira): Likewise.
6211         * lra-assigns.c (find_hard_regno_for_1): Likewise.
6212         * lra-constraints.c (process_alt_operands): Likewise.
6213         (split_reg): Likewise.
6214         * recog.c (peep2_find_free_register): Likewise.
6215         * ree.c (combine_reaching_defs): Likewise.
6216         * regcprop.c (maybe_mode_change): Likewise.
6217         * reginfo.c (init_reg_sets_1): Likewise.
6218         (choose_hard_reg_mode): Likewise.
6219         (simplifiable_subregs): Likewise.
6220         * regrename.c (check_new_reg_p): Likewise.
6221         * reload.c (find_valid_class): Likewise.
6222         (find_valid_class_1): Likewise.
6223         (reload_inner_reg_of_subreg): Likewise.
6224         (push_reload): Likewise.
6225         (combine_reloads): Likewise.
6226         (find_dummy_reload): Likewise.
6227         (find_reloads): Likewise.
6228         * reload1.c (find_reg): Likewise.
6229         (set_reload_reg): Likewise.
6230         (allocate_reload_reg): Likewise.
6231         (choose_reload_regs): Likewise.
6232         (reload_adjust_reg_for_temp): Likewise.
6233         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
6234         (simplify_subreg_regno): Likewise.
6235         * sel-sched.c (init_regs_for_mode): Likewise.
6236         * varasm.c (make_decl_rtl): Likewise.
6237         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
6238         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
6239         HARD_REGNO_MODE_OK.
6240         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
6241         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
6242         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6243         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
6244         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
6245         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6246         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
6247         (arc_mode_class): Delete.
6248         (HARD_REGNO_MODE_OK): Delete.
6249         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6250         (arc_hard_regno_mode_ok): Rename old array to...
6251         (arc_hard_regno_mode_ok_modes): ...this.
6252         (arc_conditional_register_usage): Update accordingly.
6253         (arc_mode_class): Make static.
6254         (arc_hard_regno_mode_ok): New function.
6255         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
6256         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
6257         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6258         (arm_hard_regno_mode_ok): Make static.
6259         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
6260         HARD_REGNO_MODE_OK.
6261         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
6262         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
6263         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
6264         return a bool.
6265         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6266         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
6267         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
6268         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
6269         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
6270         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6271         * config/bfin/predicates.md (valid_reg_operand): Use
6272         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
6273         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
6274         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
6275         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6276         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
6277         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
6278         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6279         (cr16_hard_regno_mode_ok): Make static and return a bool.
6280         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
6281         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6282         (cris_hard_regno_mode_ok): New function.
6283         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
6284         (epiphany_mode_class): Delete.
6285         (HARD_REGNO_MODE_OK): Delete.
6286         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
6287         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6288         (hard_regno_mode_ok): Rename to...
6289         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
6290         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
6291         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
6292         HARD_REGNO_MODE_OK.
6293         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
6294         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
6295         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6296         (frv_hard_regno_mode_ok): Make static and return a bool.
6297         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
6298         HARD_REGNO_MODE_OK.
6299         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
6300         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
6301         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
6302         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
6303         and return a bool.
6304         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6305         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
6306         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
6307         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
6308         return a bool.
6309         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6310         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
6311         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6312         (ia64_hard_regno_mode_ok): New function.
6313         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
6314         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6315         (iq2000_hard_regno_mode_ok): New function.
6316         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
6317         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6318         (lm32_hard_regno_mode_ok): New function.
6319         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
6320         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
6321         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
6322         instead of HARD_REGNO_MODE_OK.
6323         (m32c_hard_regno_ok): Rename to...
6324         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
6325         (m32c_cannot_change_mode_class): Update accordingly.
6326         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6327         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
6328         (m32r_mode_class): Delete.
6329         (HARD_REGNO_MODE_OK): Delete.
6330         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6331         (m32r_hard_regno_mode_ok): Rename to...
6332         (m32r_hard_regno_modes): ...this.
6333         (m32r_mode_class): Make static.
6334         (m32r_hard_regno_mode_ok): New function.
6335         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
6336         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
6337         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6338         (m68k_hard_regno_mode_ok): Make static.
6339         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
6340         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6341         (mcore_hard_regno_mode_ok): New function.
6342         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
6343         (HARD_REGNO_MODE_OK): Delete.
6344         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
6345         Rename to...
6346         (microblaze_hard_regno_mode_ok_p): ...this and make static.
6347         (microblaze_hard_regno_mode_ok): New function.
6348         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6349         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
6350         (mips_hard_regno_mode_ok): Delete.
6351         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
6352         (mips_hard_regno_mode_ok_p): ...this and make static.
6353         (mips_hard_regno_mode_ok_p): Rename to...
6354         (mips_hard_regno_mode_ok_uncached): ...this.
6355         (mips_hard_regno_mode_ok): New function.
6356         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
6357         of HARD_REGNO_MODE_OK.
6358         (mips_option_override): Update after above name changes.
6359         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6360         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
6361         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
6362         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
6363         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
6364         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6365         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
6366         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
6367         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
6368         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6369         (msp430_hard_regno_mode_ok): Make static and return a bool.
6370         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
6371         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
6372         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
6373         and return a bool.
6374         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6375         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
6376         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
6377         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
6378         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
6379         (PA_HARD_REGNO_MODE_OK): ...this
6380         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
6381         (PA_HARD_REGNO_MODE_OK): ...this.
6382         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6383         (pa_hard_regno_mode_ok): New function.
6384         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
6385         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6386         (pdp11_hard_regno_mode_ok): New function.
6387         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
6388         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
6389         Delete.
6390         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
6391         Make static.
6392         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6393         (rs6000_hard_regno_mode_ok): Rename to...
6394         (rs6000_hard_regno_mode_ok_uncached): ...this.
6395         (rs6000_init_hard_regno_mode_ok): Update accordingly.
6396         (rs6000_hard_regno_mode_ok): New function.
6397         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
6398         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
6399         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
6400         (riscv_hard_regno_mode_ok): ...this and make static.
6401         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6402         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
6403         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
6404         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6405         (rl78_hard_regno_mode_ok): Make static and return bool.
6406         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
6407         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
6408         Delete.
6409         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
6410         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6411         (rs6000_hard_regno_mode_ok): Rename to...
6412         (rs6000_hard_regno_mode_ok_uncached): ...this.
6413         (rs6000_init_hard_regno_mode_ok): Update accordingly.
6414         (rs6000_hard_regno_mode_ok): New function.
6415         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
6416         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
6417         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6418         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
6419         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
6420         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
6421         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6422         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
6423         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
6424         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6425         (sh_hard_regno_mode_ok): Make static.
6426         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
6427         instead of HARD_REGNO_MODE_OK.
6428         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
6429         (sparc_mode_class): Delete.
6430         (HARD_REGNO_MODE_OK): Delete.
6431         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6432         (hard_regno_mode_classes): Make static.
6433         (sparc_mode_class): Likewise.
6434         (sparc_hard_regno_mode_ok): New function.
6435         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
6436         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
6437         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
6438         function.
6439         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6440         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
6441         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
6442         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
6443         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
6444         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6445         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
6446         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
6447         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
6448         (visium_hard_regno_mode_ok): New function.
6449         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
6450         instead of HARD_REGNO_MODE_OK.
6451         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
6452         (HARD_REGNO_MODE_OK): Delete.
6453         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
6454         (xtensa_hard_regno_mode_ok_p): ...this and make static.
6455         (xtensa_option_override): Update accordingly.
6456         (TARGET_HARD_REGNO_MODE_OK): Redefine.
6457         (xtensa_hard_regno_mode_ok): New function.
6458         * system.h (HARD_REGNO_MODE_OK): Poison.
6460 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6461             Alan Hayward  <alan.hayward@arm.com>
6462             David Sherwood  <david.sherwood@arm.com>
6464         * target.def (hard_regno_call_part_clobbered): New hook.
6465         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
6466         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
6467         * doc/tm.texi: Regenerate.
6468         * hooks.h (hook_bool_uint_mode_false): Declare.
6469         * hooks.c (hook_bool_uint_mode_false): New function.
6470         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6471         * cselib.c (cselib_process_insn): Use
6472         targetm.hard_regno_call_part_clobbered instead of
6473         HARD_REGNO_CALL_PART_CLOBBERED.
6474         * ira-conflicts.c (ira_build_conflicts): Likewise.
6475         * ira-costs.c (ira_tune_allocno_costs): Likewise.
6476         * lra-constraints.c (need_for_call_save_p): Likewise.
6477         * lra-lives.c: Include target.h.
6478         (check_pseudos_live_through_calls): Use
6479         targetm.hard_regno_call_part_clobbered instead of
6480         HARD_REGNO_CALL_PART_CLOBBERED.
6481         * regcprop.c: Include target.h.
6482         (copyprop_hardreg_forward_1): Use
6483         targetm.hard_regno_call_part_clobbered instead of
6484         HARD_REGNO_CALL_PART_CLOBBERED.
6485         * reginfo.c (choose_hard_reg_mode): Likewise.
6486         * regrename.c (check_new_reg_p): Likewise.
6487         * reload.c (find_equiv_reg): Likewise.
6488         * reload1.c (emit_reload_insns): Likewise.
6489         * sched-deps.c (deps_analyze_insn): Likewise.
6490         * sel-sched.c (init_regs_for_mode): Likewise.
6491         (mark_unavailable_hard_regs): Likewise.
6492         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
6493         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6494         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
6495         New function.
6496         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6497         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6498         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
6499         Delete.
6500         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
6501         and return a bool.
6502         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6503         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6504         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
6505         function.
6506         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6507         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6508         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
6509         function.
6510         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6511         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
6512         Delete.
6513         * config/powerpcspe/powerpcspe.c
6514         (rs6000_hard_regno_call_part_clobbered): New function.
6515         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6516         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6517         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
6518         New function.
6519         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6520         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6521         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
6522         function.
6523         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
6524         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
6525         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
6527 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6528             Alan Hayward  <alan.hayward@arm.com>
6529             David Sherwood  <david.sherwood@arm.com>
6531         * rtl.h (subreg_memory_offset): Declare.
6532         * emit-rtl.c (subreg_memory_offset): New function.
6533         * expmed.c (store_bit_field_1): Use it.
6534         * expr.c (undefined_operand_subword_p): Likewise.
6535         * simplify-rtx.c (simplify_subreg): Likewise.
6537 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
6539         PR rtl-optimization/57448
6540         PR target/67458
6541         PR target/81316
6542         * optabs.c (expand_atomic_load): Place compiler memory barriers if
6543         using atomic_load pattern.
6544         (expand_atomic_store): Likewise.
6546 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
6548         PR sanitizer/81981
6549         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
6550         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
6551         handling.  Use replace_call_with_value with NULL instead of
6552         gsi_replace, unlink_stmt_vdef and release_defs.
6554         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
6555         instead of tab.
6557         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
6559 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
6561         PR bootstrap/82045
6562         * rtl.h (emit_library_call_value_1): Declare.
6563         (emit_library_call): Replace declaration with a series of overloads.
6564         Remove the parameter count argument.
6565         (emit_library_call_value): Likewise.
6566         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
6567         with an "rtx_mode_t *".
6568         (emit_library_call_value): Delete.
6569         (emit_library_call): Likewise.
6570         * asan.c (asan_emit_stack_protection): Update calls accordingly.
6571         (asan_emit_allocas_unpoison): Likewise.
6572         * builtins.c (expand_builtin_powi): Likewise.
6573         (expand_asan_emit_allocas_unpoison): Likewise.
6574         * cfgexpand.c (expand_main_function): Likewise.
6575         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
6576         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
6577         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
6578         * config/arm/arm.c (arm_trampoline_init): Likewise.
6579         (arm_call_tls_get_addr): Likewise.
6580         (arm_expand_divmod_libfunc): Likewise.
6581         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
6582         (smulsi3_highpart): Likewise.
6583         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
6584         (c6x_expand_compare): Likewise.
6585         (c6x_expand_movmem): Likewise.
6586         * config/frv/frv.c (frv_trampoline_init): Likewise.
6587         * config/i386/i386.c (ix86_trampoline_init): Likewise.
6588         (ix86_expand_divmod_libfunc): Likewise.
6589         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
6590         (ia64_expand_compare): Likewise.
6591         (ia64_profile_hook): Likewise.
6592         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
6593         (nonlocal_goto): Likewise.
6594         (restore_stack_nonlocal): Likewise.
6595         * config/m32r/m32r.c (block_move_call): Likewise.
6596         (m32r_trampoline_init): Likewise.
6597         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
6598         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
6599         (m68k_call_m68k_read_tp): Likewise.
6600         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
6601         (microblaze_expand_divide): Likewise.
6602         * config/mips/mips.h (mips_args): Likewise.
6603         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
6604         (MIPS_ICACHE_SYNC): Likewise.
6605         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
6606         (nios2_trampoline_init): Likewise.
6607         * config/pa/pa.c (hppa_tls_call): Likewise.
6608         (pa_trampoline_init): Likewise.
6609         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
6610         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
6611         (expand_strn_compare): Likewise.
6612         (rs6000_generate_compare): Likewise.
6613         (rs6000_expand_float128_convert): Likewise.
6614         (output_profile_hook): Likewise.
6615         (rs6000_trampoline_init): Likewise.
6616         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
6617         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
6618         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
6619         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
6620         (rs6000_generate_compare): Likewise.
6621         (rs6000_expand_float128_convert): Likewise.
6622         (output_profile_hook): Likewise.
6623         (rs6000_trampoline_init): Likewise.
6624         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
6625         * config/sh/sh.c (sh_trampoline_init): Likewise.
6626         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
6627         (sparc_emit_float_lib_cmp): Likewise.
6628         (sparc32_initialize_trampoline): Likewise.
6629         (sparc64_initialize_trampoline): Likewise.
6630         (sparc_profile_hook): Likewise.
6631         * config/spu/spu.c (ea_load_store): Likewise.
6632         * config/spu/spu.md (floatunssidf2): Likewise.
6633         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
6634         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
6635         * config/visium/visium.c (expand_block_move_4): Likewise.
6636         (expand_block_move_2): Likewise.
6637         (expand_block_move_1): Likewise.
6638         (expand_block_set_4): Likewise.
6639         (expand_block_set_2): Likewise.
6640         (expand_block_set_1): Likewise.
6641         (visium_trampoline_init): Likewise.
6642         (visium_profile_hook): Likewise.
6643         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
6644         (xtensa_setup_frame_addresses): Likewise.
6645         (xtensa_trampoline_init): Likewise.
6646         * except.c (sjlj_emit_function_enter): Likewise.
6647         (sjlj_emit_function_exit): Likewise.
6648         * explow.c (allocate_dynamic_stack_space): Likewise.
6649         (probe_stack_range): Likewise.
6650         * expr.c (convert_mode_scalar): Likewise.
6651         * optabs.c (expand_binop): Likewise.
6652         (expand_twoval_binop_libfunc): Likewise.
6653         (expand_unop): Likewise.
6654         (prepare_cmp_insn): Likewise.
6655         (prepare_float_lib_cmp): Likewise.
6656         (expand_float): Likewise.
6657         (expand_fix): Likewise.
6658         (expand_fixed_convert): Likewise.
6659         (maybe_emit_sync_lock_test_and_set): Likewise.
6660         (expand_atomic_compare_and_swap): Likewise.
6661         (expand_mem_thread_fence): Likewise.
6662         (expand_atomic_fetch_op): Likewise.
6664 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
6666         * doc/generic.texi (OpenACC): Adjust URL.
6667         * doc/invoke.texi (C Dialect Options): Ditto.
6669 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
6671         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
6672         predicate for operand 1.  Add (m,<S>) constraint.
6673         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
6674         Prevent memory operand 1 with register operand 2.
6676 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
6678         PR rtl-optimization/82024
6679         * combine.c (try_combine): If the combination result is a PARALLEL,
6680         and we only need to retain the SET in there that would be placed
6681         at I2, check that we can place that at I3 instead, before doing so.
6683 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
6685         PR target/81766
6686         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
6687         instead of void.
6688         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
6689         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
6690         and label.
6692 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
6693             Jeff Law  <law@redhat.com>
6695         * varasm.c (bss_initializer_p): Do not put constants into .bss
6696         (categorize_decl_for_section): Handle bss_initializer_p returning
6697         false when DECL_INITIAL is NULL.
6699 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6701         PR target/82012
6702         * config/s390/s390.c (s390_can_inline_p): New function.
6704 2017-09-01  Jeff Law  <law@redhat.com>
6706         PR tree-optimization/82052
6707         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
6708         Always initialize the returned slot after a hash table miss
6709         when INSERT is true.
6711 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
6713         * config/s390/s390.md (mem_signal_fence): Remove.
6714         * doc/md.texi (mem_signal_fence): Remove.
6715         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
6716         Update comments.
6717         * target-insns.def (mem_signal_fence): Remove.
6719 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
6721         PR sanitizer/81902
6722         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
6724         PR sanitizer/81923
6725         * asan.c (create_odr_indicator): Strip name encoding from assembler
6726         name before appending it after __odr_asan_.
6728 2017-09-01  Martin Liska  <mliska@suse.cz>
6730         PR tree-optimization/82059
6731         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
6732         frequency only when an edge is redirected.
6734 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
6736         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
6737         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
6738         (arc_conditional_register_usage): Remove ARC600 lp_count
6739         exception.
6740         (arc_file_start): Emit Tag_ARC_CPU_variation.
6741         (arc_can_use_doloop_p): New conditions to use ZOLs.
6742         (hwloop_fail): New function.
6743         (hwloop_optimize): Likewise.
6744         (hwloop_pattern_reg): Likewise.
6745         (arc_doloop_hooks): New struct, to be used with reorg_loops.
6746         (arc_reorg_loops): New function, calls reorg_loops.
6747         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
6748         (arc600_corereg_hazard): Remove ZOL checking, case handled by
6749         hwloop_optimize.
6750         (arc_loop_hazard): Remove function, functionality moved into
6751         hwloop_optimize.
6752         (arc_hazard): Remove arc_loop_hazard call.
6753         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
6754         into hwloop_optimize.
6755         (arc_label_align): Remove ZOL handling.
6756         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
6757         * config/arc/arc.md (doloop_begin): Remove pattern.
6758         (doloop_begin_i): Likewise.
6759         (doloop_end_i): Likewise.
6760         (doloop_fallback): Likewise.
6761         (doloop_fallback_m): Likewise.
6762         (doloop_end): Reimplement expand.
6763         (arc_lp): New pattern for LP instruction.
6764         (loop_end): New pattern.
6765         (loop_fail): Likewise.
6766         (decrement_and_branch_until_zero): Likewise.
6767         * config/arc/arc.opt (mlpc-width): New option.
6768         * doc/invoke.texi (mlpc-width): Document option.
6770 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
6772         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
6773         (arc_ccfsm_advance): Fix checking for delay slots.
6774         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
6776 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
6778         * config/arc/arc.md (movqi_insn): Add stores to save constant long
6779         immediates.
6780         (movhi_insn): Update store instruction constraint which are saving
6781         6-bit short immediates.
6782         (movsi_insn): Consider also short scaled load operations.
6783         (zero_extendhisi2_i): Use Usd constraint instead of T.
6784         (extendhisi2_i): Add q constraint.
6785         (arc_clzsi2): Add type and length attributes.
6786         (arc_ctzsi2): Likewise.
6787         * config/arc/constraints.md (Usc): Update constraint, the
6788         assembler can parse two relocations for a single instruction.
6790 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
6792         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
6793         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
6795 2017-08-31  Olivier Hainque  <hainque@adacore.com>
6797         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
6798         match as powerpc-wrs-vxworks*.
6800 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
6802         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
6803         register constraint for by-element operand.
6804         (aarch64_mls_elt_merge<mode>): Likewise.
6806 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
6808         * config/arc/arc.c (arc_can_follow_jump): Check for short
6809         branches.
6811 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
6813         * config.gcc: Use g.opt for arc.
6814         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
6815         functionality moved to ...
6816         (legitimate_scaled_address_p): New function, ...here.
6817         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
6818         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
6819         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
6820         condition.
6821         (arc_override_options): Handle G option.
6822         (arc_output_pic_addr_const): Correct function definition.
6823         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
6824         (arc_decl_anon_ns_mem_p): Delete.
6825         (arc_in_small_data_p): Overhaul this function to take into
6826         consideration the value given via G option.
6827         (arc_rewrite_small_data_1): Renamed and corrected old
6828         arc_rewrite_small_data function.
6829         (arc_rewrite_small_data): New function.
6830         (small_data_pattern): Don't use pic_offset_table_rtx.
6831         * config/arc/arc.h (CC1_SPEC): Recognize G option.
6832         * config/arc/simdext.md (movmisalignv2hi): Use
6833         prepare_move_operands function.
6834         (mov*): Likewise.
6835         (movmisalign*): Likewise.
6836         * doc/invoke.texi (ARC options): Document -G option.
6838 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
6840         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
6841         prototype.
6842         * config/arc/arc.c (arc_print_operand): Output scalled address for
6843         sdata whenever is possible.
6844         (arc_in_small_data_p): Allow sdata for 64bit datum when double
6845         load/stores are available.
6846         (compact_sda_memory_operand): Check for the alignment required by
6847         code density instructions.
6848         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
6849         constraint.
6850         * config/arc/constraints.md (Usd): Update constraint.
6851         (Us0): New constraint.
6852         (Usc): Update constraint.
6854 2017-08-31  Richard Biener  <rguenther@suse.de>
6856         PR middle-end/82054
6857         * dwarf2out.c (dwarf2out_early_global_decl): Process each
6858         function only once.
6860 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
6862         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
6863         Resize type_signature.
6865 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
6866             Alan Hayward  <alan.hayward@arm.com>
6867             David Sherwood  <david.sherwood@arm.com>
6869         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
6870         subregs whose inner modes can be stored in GPRs.
6871         (aarch64_classify_index): Likewise.
6873 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
6874             Alan Hayward  <alan.hayward@arm.com>
6875             David Sherwood  <david.sherwood@arm.com>
6877         * config/aarch64/iterators.md (V_cmp_result): Rename to...
6878         (V_INT_EQUIV): ...this.
6879         (v_cmp_result): Rename to...
6880         (v_int_equiv): ...this.
6881         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
6882         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
6883         (copysign<mode>3): Likewise.
6884         (aarch64_simd_bsl<mode>_internal): Likewise.
6885         (aarch64_simd_bsl<mode>): Likewise.
6886         (vec_cmp<mode><mode>): Likewise.
6887         (vcond<mode><mode>): Likewise.
6888         (vcond<v_cmp_mixed><mode>): Likewise.
6889         (vcondu<mode><v_cmp_mixed>): Likewise.
6890         (aarch64_cm<optab><mode>): Likewise.
6891         (aarch64_cmtst<mode>): Likewise.
6892         (aarch64_fac<optab><mode>): Likewise.
6893         (vec_perm_const<mode>): Likewise.
6894         (vcond_mask_<mode><v_cmp_result>): Rename to...
6895         (vcond_mask_<mode><v_int_equiv>): ...this.
6896         (vec_cmp<mode><v_cmp_result>): Rename to...
6897         (vec_cmp<mode><v_int_equiv>): ...this.
6899 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
6900             Alan Hayward  <alan.hayward@arm.com>
6901             David Sherwood  <david.sherwood@arm.com>
6903         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
6904         vector modes.
6905         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
6906         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
6907         (UNSPEC_LD4_DREG): New unspecs.
6908         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
6909         (aarch64_ld2<mode>_dreg_be): Replace with...
6910         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
6911         unspec.
6912         (aarch64_ld3<mode>_dreg_le)
6913         (aarch64_ld3<mode>_dreg_be): Replace with...
6914         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
6915         unspec.
6916         (aarch64_ld4<mode>_dreg_le)
6917         (aarch64_ld4<mode>_dreg_be): Replace with...
6918         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
6919         unspec.
6921 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6923         PR tree-optimization/81987
6924         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
6925         insert an initializer in a location not dominated by the stride
6926         definition.
6928 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
6930         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
6931         on the entire header of the finally block in the fallthru case.
6933 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
6935         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
6937 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
6939         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
6940         rs6000_emit_move_from_cr and call renamed function.
6941         (rs6000_emit_prologue): Call renamed functions.
6942         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
6943         movesi_from_cr, remove volatile CRs.
6945 2017-08-30  Jon Beniston  <jon@beniston.com>
6946             Richard Biener  <rguenther@suse.de>
6948         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
6949         of VECTOR_MODE_P check.
6950         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
6951         element vector types.
6953 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
6955         * df.h (df_read_modify_subreg_p): Remove in favor of...
6956         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
6957         const_rtx instead of an rtx.
6958         * cprop.c (local_cprop_find_used_regs): Update accordingly.
6959         * df-problems.c (df_word_lr_mark_ref): Likewise.
6960         * ira-lives.c (mark_pseudo_reg_live): Likewise.
6961         (mark_pseudo_reg_dead): Likewise.
6962         (mark_ref_dead): Likewise.
6963         * reginfo.c (init_subregs_of_mode): Likewise.
6964         * sched-deps.c (sched_analyze_1): Likewise.
6965         * df-scan.c (df_def_record_1): Likewise.
6966         (df_uses_record): Likewise.
6967         (df_read_modify_subreg_p): Remove in favor of...
6968         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
6969         const_rtx instead of an rtx.
6971 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
6972             Alan Hayward  <alan.hayward@arm.com>
6973             David Sherwood  <david.sherwood@arm.com>
6975         * rtl.h (partial_subreg_p): New function.
6976         * caller-save.c (save_call_clobbered_regs): Use it.
6977         * calls.c (expand_call): Likewise.
6978         * combine.c (combinable_i3pat): Likewise.
6979         (simplify_set): Likewise.
6980         (make_extraction): Likewise.
6981         (make_compound_operation_int): Likewise.
6982         (gen_lowpart_or_truncate): Likewise.
6983         (force_to_mode): Likewise.
6984         (make_field_assignment): Likewise.
6985         (reg_truncated_to_mode): Likewise.
6986         (record_truncated_value): Likewise.
6987         (move_deaths): Likewise.
6988         * cse.c (record_jump_cond): Likewise.
6989         (cse_insn): Likewise.
6990         * cselib.c (cselib_lookup_1): Likewise.
6991         * expmed.c (extract_bit_field_using_extv): Likewise.
6992         * function.c (assign_parm_setup_reg): Likewise.
6993         * ifcvt.c (noce_convert_multiple_sets): Likewise.
6994         * ira-build.c (create_insn_allocnos): Likewise.
6995         * lra-coalesce.c (merge_pseudos): Likewise.
6996         * lra-constraints.c (match_reload): Likewise.
6997         (simplify_operand_subreg): Likewise.
6998         (curr_insn_transform): Likewise.
6999         * lra-lives.c (process_bb_lives): Likewise.
7000         * lra.c (new_insn_reg): Likewise.
7001         (lra_substitute_pseudo): Likewise.
7002         * regcprop.c (mode_change_ok): Likewise.
7003         (maybe_mode_change): Likewise.
7004         (copyprop_hardreg_forward_1): Likewise.
7005         * reload.c (push_reload): Likewise.
7006         (find_reloads): Likewise.
7007         (find_reloads_subreg_address): Likewise.
7008         * reload1.c (alter_reg): Likewise.
7009         (eliminate_regs_1): Likewise.
7010         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7012 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
7014         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
7015         back to if statements, including unpack.
7017 2017-08-30  Martin Liska  <mliska@suse.cz>
7019         PR inline-asm/82001
7020         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
7021         Rename to ...
7022         (func_checker::compare_asm_inputs_outputs): ... this function.
7023         (func_checker::compare_gimple_asm): Use the function to compare
7024         also ASM constrains.
7025         * ipa-icf-gimple.h: Rename the function.
7027 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7028             Alan Hayward  <alan.hayward@arm.com>
7029             David Sherwood  <david.sherwood@arm.com>
7031         * coretypes.h (complex_mode): New type.
7032         * gdbhooks.py (build_pretty_printer): Handle it.
7033         * machmode.h (complex_mode): New class.
7034         (complex_mode::includes_p): New function.
7035         (is_complex_int_mode): Likewise.
7036         (is_complex_float_mode): Likewise.
7037         * genmodes.c (get_mode_class): Handle complex mode classes.
7038         * function.c (expand_function_end): Use is_complex_int_mode.
7040 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7041             Alan Hayward  <alan.hayward@arm.com>
7042             David Sherwood  <david.sherwood@arm.com>
7044         * coretypes.h (scalar_mode_pod): New typedef.
7045         * gdbhooks.py (build_pretty_printer): Handle it.
7046         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
7047         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
7048         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
7049         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
7050         as_a <scalar_mode>.
7052 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7053             Alan Hayward  <alan.hayward@arm.com>
7054             David Sherwood  <david.sherwood@arm.com>
7056         * machmode.h (mode_for_vector): Take a scalar_mode instead
7057         of a machine_mode.
7058         * stor-layout.c (mode_for_vector): Likewise.
7059         * explow.c (promote_mode): Use as_a <scalar_mode>.
7060         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
7062 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7063             Alan Hayward  <alan.hayward@arm.com>
7064             David Sherwood  <david.sherwood@arm.com>
7066         * target.def (preferred_simd_mode): Take a scalar_mode
7067         instead of a machine_mode.
7068         * targhooks.h (default_preferred_simd_mode): Likewise.
7069         * targhooks.c (default_preferred_simd_mode): Likewise.
7070         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
7071         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
7072         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
7073         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
7074         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
7075         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
7076         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
7077         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
7078         Likewise.
7079         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
7080         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
7081         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
7082         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
7083         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
7084         * doc/tm.texi: Regenerate.
7085         * optabs-query.c (can_vec_mask_load_store_p): Return false for
7086         non-scalar modes.
7088 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7089             Alan Hayward  <alan.hayward@arm.com>
7090             David Sherwood  <david.sherwood@arm.com>
7092         * target.def (scalar_mode_supported_p): Take a scalar_mode
7093         instead of a machine_mode.
7094         * targhooks.h (default_scalar_mode_supported_p): Likewise.
7095         * targhooks.c (default_scalar_mode_supported_p): Likewise.
7096         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
7097         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
7098         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
7099         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
7100         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
7101         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
7102         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
7103         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
7104         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
7105         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
7106         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
7107         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
7108         Likewise.
7109         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
7110         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
7111         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
7112         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
7113         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
7114         Likewise.
7115         * doc/tm.texi: Regenerate.
7117 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7118             Alan Hayward  <alan.hayward@arm.com>
7119             David Sherwood  <david.sherwood@arm.com>
7121         * coretypes.h (opt_scalar_mode): New typedef.
7122         * gdbhooks.py (build_pretty_printers): Handle it.
7123         * machmode.h (mode_iterator::get_2xwider): Add overload for
7124         opt_mode<T>.
7125         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
7126         over scalar modes.
7127         * expr.c (convert_mode_scalar): Likewise.
7128         * omp-low.c (omp_clause_aligned_alignment): Likewise.
7129         * optabs.c (expand_float): Likewise.
7130         (expand_fix): Likewise.
7131         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7133 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7134             Alan Hayward  <alan.hayward@arm.com>
7135             David Sherwood  <david.sherwood@arm.com>
7137         * optabs.c (expand_float): Explicitly check for scalars before
7138         using a branching expansion.
7139         (expand_fix): Likewise.
7141 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7142             Alan Hayward  <alan.hayward@arm.com>
7143             David Sherwood  <david.sherwood@arm.com>
7145         * expr.c (convert_mode): Split scalar handling out into...
7146         (convert_mode_scalar): ...this new function.  Treat the modes
7147         as scalar_modes.
7149 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7150             Alan Hayward  <alan.hayward@arm.com>
7151             David Sherwood  <david.sherwood@arm.com>
7153         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
7154         and scalar_mode.
7155         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
7157 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7158             Alan Hayward  <alan.hayward@arm.com>
7159             David Sherwood  <david.sherwood@arm.com>
7161         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
7162         rather than a machine_mode.
7163         (fixed_from_string): Likewise.
7164         (fixed_convert): Likewise.
7165         (fixed_convert_from_int): Likewise.
7166         (fixed_convert_from_real): Likewise.
7167         (real_convert_from_fixed): Likewise.
7168         * fixed-value.c (fixed_from_double_int): Likewise.
7169         (fixed_from_string): Likewise.
7170         (fixed_convert): Likewise.
7171         (fixed_convert_from_int): Likewise.
7172         (fixed_convert_from_real): Likewise.
7173         (real_convert_from_fixed): Likewise.
7174         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
7176 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7177             Alan Hayward  <alan.hayward@arm.com>
7178             David Sherwood  <david.sherwood@arm.com>
7180         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
7181         of separate mode class checks.  Do not allow vector modes here.
7182         (immed_wide_int_const): Use as_a <scalar_mode>.
7183         * explow.c (trunc_int_for_mode): Likewise.
7184         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
7185         (wi::shwi): Likewise.
7186         (wi::min_value): Likewise.
7187         (wi::max_value): Likewise.
7188         * dwarf2out.c (loc_descriptor): Likewise.
7189         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
7190         for CONST_WIDE_INT.
7192 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7193             Alan Hayward  <alan.hayward@arm.com>
7194             David Sherwood  <david.sherwood@arm.com>
7196         * tree.h (SCALAR_TYPE_MODE): New macro.
7197         * expr.c (expand_expr_addr_expr_1): Use it.
7198         (expand_expr_real_2): Likewise.
7199         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
7200         (fold_convert_const_fixed_from_int): Likewise.
7201         (fold_convert_const_fixed_from_real): Likewise.
7202         (native_encode_fixed): Likewise
7203         (native_encode_complex): Likewise
7204         (native_encode_vector): Likewise.
7205         (native_interpret_fixed): Likewise.
7206         (native_interpret_real): Likewise.
7207         (native_interpret_complex): Likewise.
7208         (native_interpret_vector): Likewise.
7209         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
7210         (simd_clone_adjust_argument_types): Likewise.
7211         (simd_clone_init_simd_arrays): Likewise.
7212         (simd_clone_adjust): Likewise.
7213         * stor-layout.c (layout_type): Likewise.
7214         * tree.c (build_minus_one_cst): Likewise.
7215         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
7216         * tree-inline.c (estimate_move_cost): Likewise.
7217         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
7218         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
7219         (vectorizable_reduction): Likewise.
7220         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
7221         (vect_recog_mixed_size_cond_pattern): Likewise.
7222         (check_bool_pattern): Likewise.
7223         (adjust_bool_pattern): Likewise.
7224         (search_type_for_mask_1): Likewise.
7225         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
7226         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7227         (vectorizable_load): Likewise.
7228         (vectorizable_store): Likewise.
7229         * ubsan.c (ubsan_encode_value): Likewise.
7230         * varasm.c (output_constant): Likewise.
7232 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7233             Alan Hayward  <alan.hayward@arm.com>
7234             David Sherwood  <david.sherwood@arm.com>
7236         * coretypes.h (scalar_mode): New class.
7237         * machmode.h (scalar_mode): Likewise.
7238         (scalar_mode::includes_p): New function.
7239         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
7240         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
7241         * genmodes.c (get_mode_class): Handle remaining scalar modes.
7242         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
7243         * expmed.c (store_bit_field_1): Likewise.
7244         (extract_bit_field_1): Likewise.
7245         * expr.c (write_complex_part): Likewise.
7246         (read_complex_part): Likewise.
7247         (emit_move_complex_push): Likewise.
7248         (expand_expr_real_2): Likewise.
7249         * function.c (assign_parm_setup_reg): Likewise.
7250         (assign_parms_unsplit_complex): Likewise.
7251         * optabs.c (expand_binop): Likewise.
7252         * rtlanal.c (subreg_get_info): Likewise.
7253         * simplify-rtx.c (simplify_immed_subreg): Likewise.
7254         * varasm.c (output_constant_pool_2): Likewise.
7256 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7257             Alan Hayward  <alan.hayward@arm.com>
7258             David Sherwood  <david.sherwood@arm.com>
7260         * expmed.c (extract_high_half): Use scalar_int_mode and remove
7261         assertion.
7262         (expmed_mult_highpart_optab): Likewise.
7263         (expmed_mult_highpart): Likewise.
7265 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7266             Alan Hayward  <alan.hayward@arm.com>
7267             David Sherwood  <david.sherwood@arm.com>
7269         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
7270         instead of a machine_mode.
7271         (builtin_memset_read_str): Likewise.
7272         * builtins.c (c_readstr): Likewise.
7273         (builtin_memcpy_read_str): Likewise.
7274         (builtin_strncpy_read_str): Likewise.
7275         (builtin_memset_read_str): Likewise.
7276         (builtin_memset_gen_str): Likewise.
7277         (expand_builtin_signbit): Use scalar_int_mode for local variables.
7278         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
7279         instead of a machine_mode.
7280         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
7281         variables.
7282         (make_extraction): Likewise.
7283         (try_widen_shift_mode): Take and return scalar_int_modes instead
7284         of machine_modes.
7285         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
7286         a scalar_int_mode instead of a machine_mode.
7287         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
7288         (avr_addr_space_pointer_mode): Likewise.
7289         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
7290         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
7291         (msp430_unwind_word_mode): Likewise.
7292         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
7293         (spu_addr_space_pointer_mode): Likewise.
7294         (spu_addr_space_address_mode): Likewise.
7295         (spu_libgcc_cmp_return_mode): Likewise.
7296         (spu_libgcc_shift_count_mode): Likewise.
7297         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
7298         (rl78_addr_space_pointer_mode): Likewise.
7299         (fl78_unwind_word_mode): Likewise.
7300         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
7301         machine_mode.
7302         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
7303         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
7304         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
7305         (mips_valid_pointer_mode): Likewise.
7306         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
7307         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
7308         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
7309         of a machine_mode.
7310         (ft32_addr_space_address_mode): Likewise.
7311         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
7312         scalar_int_mode instead of a machine_mode.
7313         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
7314         of a machine_mode.
7315         (m32c_addr_space_address_mode): Likewise.
7316         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
7317         (rs6000_eh_return_filter_mode): Likewise.
7318         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
7319         (rs6000_eh_return_filter_mode): Likewise.
7320         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
7321         (s390_libgcc_shift_count_mode): Likewise.
7322         (s390_unwind_word_mode): Likewise.
7323         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
7324         machine_mode.
7325         * target.def (mode_rep_extended): Likewise.
7326         (valid_pointer_mode): Likewise.
7327         (addr_space.valid_pointer_mode): Likewise.
7328         (eh_return_filter_mode): Return a scalar_int_mode rather than
7329         a machine_mode.
7330         (libgcc_cmp_return_mode): Likewise.
7331         (libgcc_shift_count_mode): Likewise.
7332         (unwind_word_mode): Likewise.
7333         (addr_space.pointer_mode): Likewise.
7334         (addr_space.address_mode): Likewise.
7335         * doc/tm.texi: Regenerate.
7336         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
7337         a machine_mode.
7338         (do_jump): Use scalar_int_mode for local variables.
7339         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
7340         rather than a machine_mode.
7341         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
7342         (scompare_loc_descriptor_wide): Likewise.
7343         (scompare_loc_descriptor_narrow): Likewise.
7344         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
7345         variables.
7346         * except.c (sjlj_emit_dispatch_table): Likewise.
7347         (expand_builtin_eh_copy_values): Likewise.
7348         * explow.c (convert_memory_address_addr_space_1): Likewise.
7349         Take a scalar_int_mode rather than a machine_mode.
7350         (convert_memory_address_addr_space): Take a scalar_int_mode rather
7351         than a machine_mode.
7352         (memory_address_addr_space): Use scalar_int_mode for local variables.
7353         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
7354         rather than a machine_mode.
7355         * expmed.c (mask_rtx): Likewise.
7356         (init_expmed_one_conv): Likewise.
7357         (expand_mult_highpart_adjust): Likewise.
7358         (extract_high_half): Likewise.
7359         (expmed_mult_highpart_optab): Likewise.
7360         (expmed_mult_highpart): Likewise.
7361         (expand_smod_pow2): Likewise.
7362         (expand_sdiv_pow2): Likewise.
7363         (emit_store_flag_int): Likewise.
7364         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
7365         variables.
7366         (extract_low_bits): Likewise.
7367         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
7368         a machine_mode.
7369         * expr.c (pieces_addr::adjust):  Likewise.
7370         (can_store_by_pieces): Likewise.
7371         (store_by_pieces): Likewise.
7372         (clear_by_pieces_1): Likewise.
7373         (expand_expr_addr_expr_1): Likewise.
7374         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
7375         (expand_expr_real_1): Likewise.
7376         (try_casesi): Likewise.
7377         * final.c (shorten_branches): Likewise.
7378         * fold-const.c (fold_convert_const_int_from_fixed): Change the
7379         type of "mode" to machine_mode.
7380         * internal-fn.c (expand_arith_overflow_result_store): Take a
7381         scalar_int_mode rather than a machine_mode.
7382         (expand_mul_overflow): Use scalar_int_mode for local variables.
7383         * loop-doloop.c (doloop_modify): Likewise.
7384         (doloop_optimize): Likewise.
7385         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
7386         than a machine_mode.
7387         (expand_doubleword_shift_condmove): Likewise.
7388         (expand_doubleword_shift): Likewise.
7389         (expand_doubleword_clz): Likewise.
7390         (expand_doubleword_popcount): Likewise.
7391         (expand_doubleword_parity): Likewise.
7392         (expand_absneg_bit): Use scalar_int_mode for local variables.
7393         (prepare_float_lib_cmp): Likewise.
7394         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
7395         rather than a machine_mode.
7396         (convert_memory_address_addr_space): Likewise.
7397         (get_mode_bounds): Likewise.
7398         (get_address_mode): Return a scalar_int_mode rather than a
7399         machine_mode.
7400         * rtlanal.c (get_address_mode): Likewise.
7401         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
7402         than a machine_mode.
7403         * targhooks.c (default_mode_rep_extended): Likewise.
7404         (default_valid_pointer_mode): Likewise.
7405         (default_addr_space_valid_pointer_mode): Likewise.
7406         (default_eh_return_filter_mode): Return a scalar_int_mode rather
7407         than a machine_mode.
7408         (default_libgcc_cmp_return_mode): Likewise.
7409         (default_libgcc_shift_count_mode): Likewise.
7410         (default_unwind_word_mode): Likewise.
7411         (default_addr_space_pointer_mode): Likewise.
7412         (default_addr_space_address_mode): Likewise.
7413         * targhooks.h (default_eh_return_filter_mode): Likewise.
7414         (default_libgcc_cmp_return_mode): Likewise.
7415         (default_libgcc_shift_count_mode): Likewise.
7416         (default_unwind_word_mode): Likewise.
7417         (default_addr_space_pointer_mode): Likewise.
7418         (default_addr_space_address_mode): Likewise.
7419         (default_mode_rep_extended): Take a scalar_int_mode rather than
7420         a machine_mode.
7421         (default_valid_pointer_mode): Likewise.
7422         (default_addr_space_valid_pointer_mode): Likewise.
7423         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
7424         local variables.
7425         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
7426         rather than a machine_mode.
7427         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
7428         for local variables.
7429         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7430         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
7431         than a machine_mode.
7433 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7434             Alan Hayward  <alan.hayward@arm.com>
7435             David Sherwood  <david.sherwood@arm.com>
7437         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
7438         the mode argument to scalar_int_mode.
7439         (do_jump_by_parts_zero_rtx): Likewise.
7440         (do_jump_by_parts_equality_rtx): Likewise.
7441         (do_jump_by_parts_greater): Take a mode argument.
7442         (do_jump_by_parts_equality): Likewise.
7443         (do_jump_1): Update calls accordingly.
7445 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7446             Alan Hayward  <alan.hayward@arm.com>
7447             David Sherwood  <david.sherwood@arm.com>
7449         * is-a.h (safe_dyn_cast): New function.
7450         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
7451         (jump_table_for_label): Likewise.
7452         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
7453         instead of an rtx_insn *.
7454         (shorten_branches): Use dyn_cast instead of LABEL_P and
7455         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
7456         rtx_jump_table_data::get_data_mode.
7457         (final_scan_insn): Likewise.
7459 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7460             Alan Hayward  <alan.hayward@arm.com>
7461             David Sherwood  <david.sherwood@arm.com>
7463         * combine.c (try_combine): Use is_a <scalar_int_mode> when
7464         trying to combine a full-register integer set with a subreg
7465         integer set.
7467 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7468             Alan Hayward  <alan.hayward@arm.com>
7469             David Sherwood  <david.sherwood@arm.com>
7471         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
7472         that is always either address_mode or pointer_mode.
7474 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7475             Alan Hayward  <alan.hayward@arm.com>
7476             David Sherwood  <david.sherwood@arm.com>
7478         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
7479         when the two are known to be equal.
7481 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7482             Alan Hayward  <alan.hayward@arm.com>
7483             David Sherwood  <david.sherwood@arm.com>
7485         * simplify-rtx.c (simplify_const_unary_operation): Use
7486         is_a <scalar_int_mode> instead of checking for a nonzero
7487         precision.  Forcibly convert op_mode to a scalar_int_mode
7488         in that case.  More clearly differentiate the operand and
7489         result modes and use the former when deciding what the value
7490         of a count-bits operation should be.  Use is_int_mode instead
7491         of checking for a MODE_INT.  Remove redundant check for whether
7492         this mode has a zero precision.
7494 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7495             Alan Hayward  <alan.hayward@arm.com>
7496             David Sherwood  <david.sherwood@arm.com>
7498         * optabs.c (widen_leading): Change the type of the mode argument
7499         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
7500         (widen_bswap): Likewise.
7501         (expand_parity): Likewise.
7502         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
7503         (expand_ffs): Likewise.
7504         (epand_unop): Check for scalar integer modes before calling the
7505         above routines.
7507 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7508             Alan Hayward  <alan.hayward@arm.com>
7509             David Sherwood  <david.sherwood@arm.com>
7511         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
7512         Expand commentary.
7513         (expand_expr_real_1): Update call accordingly.
7515 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7516             Alan Hayward  <alan.hayward@arm.com>
7517             David Sherwood  <david.sherwood@arm.com>
7519         * expmed.c (store_bit_field_using_insv): Add op0_mode and
7520         value_mode arguments.  Use scalar_int_mode internally.
7521         (store_bit_field_1): Rename the new integer mode from imode
7522         to op0_mode and use it instead of GET_MODE (op0).  Update calls
7523         to store_split_bit_field, store_bit_field_using_insv and
7524         store_fixed_bit_field.
7525         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
7526         Use scalar_int_mode internally.  Use a bit count rather than a mode
7527         when calculating the largest bit size for get_best_mode.
7528         Update calls to store_split_bit_field and store_fixed_bit_field_1.
7529         (store_fixed_bit_field_1): Add mode and value_mode arguments.
7530         Remove assertion that OP0 has a scalar integer mode.
7531         (store_split_bit_field): Add op0_mode and value_mode arguments.
7532         Update calls to extract_fixed_bit_field.
7533         (extract_bit_field_using_extv): Add an op0_mode argument.
7534         Use scalar_int_mode internally.
7535         (extract_bit_field_1): Rename the new integer mode from imode to
7536         op0_mode and use it instead of GET_MODE (op0).  Update calls to
7537         extract_split_bit_field, extract_bit_field_using_extv and
7538         extract_fixed_bit_field.
7539         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
7540         to extract_split_bit_field and extract_fixed_bit_field_1.
7541         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
7542         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
7543         on the target mode.
7544         (extract_split_bit_field): Add an op0_mode argument.  Update call
7545         to extract_fixed_bit_field.
7547 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7548             Alan Hayward  <alan.hayward@arm.com>
7549             David Sherwood  <david.sherwood@arm.com>
7551         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
7552         * explow.c (hard_function_value): Likewise.
7553         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
7554         convert_to_mode call outside the loop.
7555         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
7556         for the mode iterator.  Require the mode specified by max_pieces
7557         to exist.
7558         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
7559         mode iterator.
7560         (copy_blkmode_to_reg): Likewise.
7561         (set_storage_via_setmem): Likewise.
7562         * optabs.c (prepare_cmp_insn): Likewise.
7563         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
7564         * stor-layout.c (finish_bitfield_representative): Likewise.
7566 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7567             Alan Hayward  <alan.hayward@arm.com>
7568             David Sherwood  <david.sherwood@arm.com>
7570         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
7571         * expr.c (convert_move): Use them.
7572         (convert_modes): Likewise.
7573         (store_expr_with_bounds): Likewise.
7575 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7576             Alan Hayward  <alan.hayward@arm.com>
7577             David Sherwood  <david.sherwood@arm.com>
7579         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
7580         parameter for the mode of "x".  Remove the "known_x", "known_mode"
7581         and "known_ret" arguments.  Change the type of the mode argument
7582         to scalar_int_mode.
7583         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
7584         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
7585         (reg_num_sign_bit_copies_for_combine): Likewise.
7586         * rtlanal.c (nonzero_bits1): Likewise.
7587         (num_sign_bit_copies1): Likewise.
7588         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
7589         (reg_num_sign_bit_copies_general): Likewise.
7590         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
7591         (reg_nonzero_bits_general): Likewise.
7593 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7594             Alan Hayward  <alan.hayward@arm.com>
7595             David Sherwood  <david.sherwood@arm.com>
7597         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
7598         than in subroutines.  Return 1 for non-integer modes.
7599         (cached_num_sign_bit_copies): Change the type of the mode parameter
7600         to scalar_int_mode.
7601         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
7602         classes.  Handle CONST_INT_P first and then check whether X also
7603         has a scalar integer mode.  Check the same thing for inner registers
7604         of a SUBREG and for values that are being extended or truncated.
7606 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7607             Alan Hayward  <alan.hayward@arm.com>
7608             David Sherwood  <david.sherwood@arm.com>
7610         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
7611         in subroutines.  Return the mode mask for non-integer modes.
7612         (cached_nonzero_bits): Change the type of the mode parameter
7613         to scalar_int_mode.
7614         (nonzero_bits1): Likewise.  Remove early exit for other mode
7615         classes.  Handle CONST_INT_P first and then check whether X
7616         also has a scalar integer mode.
7618 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7619             Alan Hayward  <alan.hayward@arm.com>
7620             David Sherwood  <david.sherwood@arm.com>
7622         * expr.c (widest_int_mode_for_size): Make the comment match the code.
7623         Return a scalar_int_mode and assert that the size is greater than
7624         one byte.
7625         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
7626         (op_by_pieces_d::op_by_pieces_d): Likewise.
7627         (op_by_pieces_d::run): Likewise.
7628         (can_store_by_pieces): Likewise.
7630 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7631             Alan Hayward  <alan.hayward@arm.com>
7632             David Sherwood  <david.sherwood@arm.com>
7634         * combine.c (extract_left_shift): Add a mode argument and update
7635         recursive calls.
7636         (make_compound_operation_int): Change the type of the mode parameter
7637         to scalar_int_mode and update the call to extract_left_shift.
7639 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7640             Alan Hayward  <alan.hayward@arm.com>
7641             David Sherwood  <david.sherwood@arm.com>
7643         * combine.c (simplify_and_const_int): Change the type of the mode
7644         parameter to scalar_int_mode.
7645         (simplify_and_const_int_1): Likewise.  Update recursive call.
7647 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7648             Alan Hayward  <alan.hayward@arm.com>
7649             David Sherwood  <david.sherwood@arm.com>
7651         * combine.c (simplify_compare_const): Check that the mode is a
7652         scalar_int_mode (rather than VOIDmode) before testing its
7653         precision.
7654         (simplify_comparison): Move COMPARISON_P handling out of the
7655         loop and restrict the latter part of the loop to scalar_int_modes.
7656         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
7657         and when considering SUBREG_REGs.  Use is_int_mode instead of
7658         checking GET_MODE_CLASS against MODE_INT.
7660 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7661             Alan Hayward  <alan.hayward@arm.com>
7662             David Sherwood  <david.sherwood@arm.com>
7664         * combine.c (try_widen_shift_mode): Move check for equal modes to...
7665         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
7666         shift_unit_mode and for modes involved in scalar shifts.
7668 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7669             Alan Hayward  <alan.hayward@arm.com>
7670             David Sherwood  <david.sherwood@arm.com>
7672         * combine.c (force_int_to_mode): New function, split out from...
7673         (force_to_mode): ...here.  Keep xmode up-to-date and use it
7674         instead of GET_MODE (x).
7676 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7677             Alan Hayward  <alan.hayward@arm.com>
7678             David Sherwood  <david.sherwood@arm.com>
7680         * optabs-query.h (extraction_insn::struct_mode): Change type to
7681         opt_scalar_int_mode and update comment.
7682         (extraction_insn::field_mode): Change type to scalar_int_mode.
7683         (extraction_insn::pos_mode): Likewise.
7684         * combine.c (make_extraction): Update accordingly.
7685         * optabs-query.c (get_traditional_extraction_insn): Likewise.
7686         (get_optab_extraction_insn): Likewise.
7687         * recog.c (simplify_while_replacing): Likewise.
7688         * expmed.c (narrow_bit_field_mem): Change the type of the mode
7689         parameter to opt_scalar_int_mode.
7691 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7692             Alan Hayward  <alan.hayward@arm.com>
7693             David Sherwood  <david.sherwood@arm.com>
7695         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
7696         to a scalar_int_mode instead of a machine_mode.
7697         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
7698         (get_best_mode): Return a boolean and use a pointer argument to store
7699         the selected mode.  Replace the limit mode parameter with a bit limit.
7700         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
7701         for the values returned by bit_field_mode_iterator::next_mode.
7702         (store_bit_field): Update call to get_best_mode.
7703         (store_fixed_bit_field): Likewise.
7704         (extract_fixed_bit_field): Likewise.
7705         * expr.c (optimize_bitfield_assignment_op): Likewise.
7706         * fold-const.c (optimize_bit_field_compare): Likewise.
7707         (fold_truth_andor_1): Likewise.
7708         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
7709         Update for new type of m_mode.
7710         (get_best_mode): As above.
7712 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7713             Alan Hayward  <alan.hayward@arm.com>
7714             David Sherwood  <david.sherwood@arm.com>
7716         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
7717         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
7718         (store_bit_field): Check is_a <scalar_int_mode> before calling
7719         strict_volatile_bitfield_p.
7720         (extract_bit_field): Likewise.
7722 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7723             Alan Hayward  <alan.hayward@arm.com>
7724             David Sherwood  <david.sherwood@arm.com>
7726         * target.def (cstore_mode): Return a scalar_int_mode.
7727         * doc/tm.texi: Regenerate.
7728         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
7729         * targhooks.h (default_cstore_mode): Likewise.
7730         * targhooks.c (default_cstore_mode): Likewise, using a forced
7731         conversion.
7732         * expmed.c (emit_cstore): Expect the target of the cstore to be
7733         a scalar_int_mode.
7735 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7736             Alan Hayward  <alan.hayward@arm.com>
7737             David Sherwood  <david.sherwood@arm.com>
7739         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
7740         scalar_int_mode.
7741         (niter_desc): Likewise mode.
7742         (iv_analyze): Add a mode parameter.
7743         (biv_p): Likewise.
7744         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
7745         and change its type to scalar_int_mode.
7746         * loop-iv.c: Update commentary at head of file.
7747         (iv_constant): Pass the mode paraeter before the rtx it describes
7748         and change its type to scalar_int_mode.  Remove VOIDmode handling.
7749         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
7750         (iv_extend): Likewise.
7751         (shorten_into_mode): Likewise.
7752         (iv_add): Use scalar_int_mode.
7753         (iv_mult): Likewise.
7754         (iv_shift): Likewise.
7755         (canonicalize_iv_subregs): Likewise.
7756         (get_biv_step_1): Pass the outer_mode parameter before the rtx
7757         it describes and change its mode to scalar_int_mode.   Also change
7758         the type of the returned inner_mode to scalar_int_mode.
7759         (get_biv_step): Likewise, turning outer_mode from a pointer
7760         into a direct parameter.  Update call to get_biv_step_1.
7761         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
7762         iv_constant and get_biv_step.
7763         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
7764         and change its type to scalar_int_mode.  Don't initialise iv->mode
7765         to VOIDmode and remove later checks for its still being VOIDmode.
7766         Update calls to iv_analyze_op and iv_analyze_expr.  Check
7767         is_a <scalar_int_mode> when changing the mode under consideration.
7768         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
7769         Update call to iv_analyze_expr.
7770         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
7771         inner register is not also a scalar_int_mode.  Update call to
7772         iv_analyze_biv.
7773         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
7774         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
7775         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
7776         separate mode class checks.  Update calls to iv_analyze.  Remove
7777         fix-up of VOIDmodes after iv_analyze_biv.
7778         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
7779         don't have a scalar_int_mode.  Update call to biv_p.
7781 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7782             Alan Hayward  <alan.hayward@arm.com>
7783             David Sherwood  <david.sherwood@arm.com>
7785         * cfgexpand.c (convert_debug_memory_address): Use
7786         as_a <scalar_int_mode>.
7787         * combine.c (expand_compound_operation): Likewise.
7788         (make_extraction): Likewise.
7789         (change_zero_ext): Likewise.
7790         (simplify_comparison): Likewise.
7791         * cse.c (cse_insn): Likewise.
7792         * dwarf2out.c (minmax_loc_descriptor): Likewise.
7793         (mem_loc_descriptor): Likewise.
7794         (loc_descriptor): Likewise.
7795         * expmed.c (init_expmed_one_mode): Likewise.
7796         (synth_mult): Likewise.
7797         (emit_store_flag_1): Likewise.
7798         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
7799         of a comparison with size.
7800         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
7801         (reduce_to_bit_field_precision): Likewise.
7802         * function.c (expand_function_end): Likewise.
7803         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
7804         * loop-doloop.c (doloop_modify): Likewise.
7805         * optabs.c (expand_binop): Likewise.
7806         (expand_unop): Likewise.
7807         (expand_copysign_absneg): Likewise.
7808         (prepare_cmp_insn): Likewise.
7809         (maybe_legitimize_operand): Likewise.
7810         * recog.c (const_scalar_int_operand): Likewise.
7811         * rtlanal.c (get_address_mode): Likewise.
7812         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7813         (simplify_cond_clz_ctz): Likewise.
7814         * tree-nested.c (get_nl_goto_field): Likewise.
7815         * tree.c (build_vector_type_for_mode): Likewise.
7816         * var-tracking.c (use_narrower_mode): Likewise.
7818 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7819             Alan Hayward  <alan.hayward@arm.com>
7820             David Sherwood  <david.sherwood@arm.com>
7822         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
7823         * builtins.c (expand_builtin_signbit): Use it.
7824         * cfgexpand.c (expand_debug_expr): Likewise.
7825         * dojump.c (do_jump): Likewise.
7826         (do_compare_and_jump): Likewise.
7827         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
7828         * expmed.c (make_tree): Likewise.
7829         * expr.c (expand_expr_real_2): Likewise.
7830         (expand_expr_real_1): Likewise.
7831         (try_casesi): Likewise.
7832         * fold-const-call.c (fold_const_call_ss): Likewise.
7833         * fold-const.c (unextend): Likewise.
7834         (extract_muldiv_1): Likewise.
7835         (fold_single_bit_test): Likewise.
7836         (native_encode_int): Likewise.
7837         (native_encode_string): Likewise.
7838         (native_interpret_int): Likewise.
7839         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
7840         * internal-fn.c (expand_addsub_overflow): Likewise.
7841         (expand_neg_overflow): Likewise.
7842         (expand_mul_overflow): Likewise.
7843         (expand_arith_overflow): Likewise.
7844         * match.pd: Likewise.
7845         * stor-layout.c (layout_type): Likewise.
7846         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
7847         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
7848         * tree-ssanames.c (get_range_info): Likewise.
7849         * tree-switch-conversion.c (array_value_type) Likewise.
7850         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
7851         (vect_recog_divmod_pattern): Likewise.
7852         (vect_recog_mixed_size_cond_pattern): Likewise.
7853         * tree-vrp.c (extract_range_basic): Likewise.
7854         (simplify_float_conversion_using_ranges): Likewise.
7855         * tree.c (int_fits_type_p): Likewise.
7856         * ubsan.c (instrument_bool_enum_load): Likewise.
7857         * varasm.c (mergeable_string_section): Likewise.
7858         (narrowing_initializer_constant_valid_p): Likewise.
7859         (output_constant): Likewise.
7861 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7862             Alan Hayward  <alan.hayward@arm.com>
7863             David Sherwood  <david.sherwood@arm.com>
7865         * machmode.h (NARROWEST_INT_MODE): New macro.
7866         * expr.c (alignment_for_piecewise_move): Use it instead of
7867         GET_CLASS_NARROWEST_MODE (MODE_INT).
7868         (push_block): Likewise.
7869         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
7870         Likewise.
7871         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
7873 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7874             Alan Hayward  <alan.hayward@arm.com>
7875             David Sherwood  <david.sherwood@arm.com>
7877         * postreload.c (move2add_valid_value_p): Change the type of the
7878         mode parameter to scalar_int_mode.
7879         (move2add_use_add2_insn): Add a mode parameter and use it instead
7880         of GET_MODE (reg).
7881         (move2add_use_add3_insn): Likewise.
7882         (reload_cse_move2add): Update accordingly.
7884 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7885             Alan Hayward  <alan.hayward@arm.com>
7886             David Sherwood  <david.sherwood@arm.com>
7888         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
7889         double-word mode.
7890         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
7891         * optabs.c (expand_unop): Likewise.
7893 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7894             Alan Hayward  <alan.hayward@arm.com>
7895             David Sherwood  <david.sherwood@arm.com>
7897         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
7898         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
7899         (popcount_loc_descriptor): Likewise.
7900         (bswap_loc_descriptor): Likewise.
7901         (rotate_loc_descriptor): Likewise.
7902         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
7903         calling the functions above.
7905 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7906             Alan Hayward  <alan.hayward@arm.com>
7907             David Sherwood  <david.sherwood@arm.com>
7909         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
7910         checks.
7911         (try_combine): Likewise.
7912         (simplify_if_then_else): Likewise.
7913         * cse.c (cse_insn): Likewise.
7914         * dwarf2out.c (mem_loc_descriptor): Likewise.
7915         * emit-rtl.c (gen_lowpart_common): Likewise.
7916         * simplify-rtx.c (simplify_truncation): Likewise.
7917         (simplify_binary_operation_1): Likewise.
7918         (simplify_const_relational_operation): Likewise.
7919         (simplify_ternary_operation): Likewise.
7920         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7922 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7923             Alan Hayward  <alan.hayward@arm.com>
7924             David Sherwood  <david.sherwood@arm.com>
7926         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
7927         * reload.c (push_reload): Likewise.
7928         (find_reloads): Likewise.
7930 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7931             Alan Hayward  <alan.hayward@arm.com>
7932             David Sherwood  <david.sherwood@arm.com>
7934         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
7935         (make_compound_operation_int): Likewise.
7936         (change_zero_ext): Likewise.
7937         * expr.c (convert_move): Likewise.
7938         (convert_modes): Likewise.
7939         * fwprop.c (forward_propagate_subreg): Likewise.
7940         * loop-iv.c (get_biv_step_1): Likewise.
7941         * optabs.c (widen_operand): Likewise.
7942         * postreload.c (move2add_valid_value_p): Likewise.
7943         * recog.c (simplify_while_replacing): Likewise.
7944         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7945         (simplify_binary_operation_1): Likewise.  Remove redundant
7946         mode equality check.
7948 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7949             Alan Hayward  <alan.hayward@arm.com>
7950             David Sherwood  <david.sherwood@arm.com>
7952         * combine.c (combine_simplify_rtx): Add checks for
7953         is_a <scalar_int_mode>.
7954         (simplify_if_then_else): Likewise.
7955         (make_field_assignment): Likewise.
7956         (simplify_comparison): Likewise.
7957         * ifcvt.c (noce_try_bitop): Likewise.
7958         * loop-invariant.c (canonicalize_address_mult): Likewise.
7959         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7961 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7962             Alan Hayward  <alan.hayward@arm.com>
7963             David Sherwood  <david.sherwood@arm.com>
7965         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
7966         is_a <scalar_int_mode> instead of != BLKmode.
7968 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7969             Alan Hayward  <alan.hayward@arm.com>
7970             David Sherwood  <david.sherwood@arm.com>
7972         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
7973         instead of != VOIDmode.
7974         * combine.c (if_then_else_cond): Likewise.
7975         (change_zero_ext): Likewise.
7976         * dwarf2out.c (mem_loc_descriptor): Likewise.
7977         (loc_descriptor): Likewise.
7978         * rtlanal.c (canonicalize_condition): Likewise.
7979         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
7981 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7982             Alan Hayward  <alan.hayward@arm.com>
7983             David Sherwood  <david.sherwood@arm.com>
7985         * simplify-rtx.c (simplify_binary_operation_1): Use
7986         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
7988 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
7989             Alan Hayward  <alan.hayward@arm.com>
7990             David Sherwood  <david.sherwood@arm.com>
7992         * wide-int.h (int_traits<unsigned char>) New class.
7993         (int_traits<unsigned short>) Likewise.
7994         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
7995         Use GET_MODE_UNIT_PRECISION and remove redundant test for
7996         SCALAR_INT_MODE_P.
7997         * combine.c (set_nonzero_bits_and_sign_copies): Use
7998         is_a <scalar_int_mode>.
7999         (find_split_point): Likewise.
8000         (combine_simplify_rtx): Likewise.
8001         (simplify_logical): Likewise.
8002         (expand_compound_operation): Likewise.
8003         (expand_field_assignment): Likewise.
8004         (make_compound_operation): Likewise.
8005         (extended_count): Likewise.
8006         (change_zero_ext): Likewise.
8007         (simplify_comparison): Likewise.
8008         * dwarf2out.c (scompare_loc_descriptor): Likewise.
8009         (ucompare_loc_descriptor): Likewise.
8010         (minmax_loc_descriptor): Likewise.
8011         (mem_loc_descriptor): Likewise.
8012         (loc_descriptor): Likewise.
8013         * expmed.c (init_expmed_one_mode): Likewise.
8014         * lra-constraints.c (lra_constraint_offset): Likewise.
8015         * optabs.c (prepare_libcall_arg): Likewise.
8016         * postreload.c (move2add_note_store): Likewise.
8017         * reload.c (operands_match_p): Likewise.
8018         * rtl.h (load_extend_op): Likewise.
8019         * rtlhooks.c (gen_lowpart_general): Likewise.
8020         * simplify-rtx.c (simplify_truncation): Likewise.
8021         (simplify_unary_operation_1): Likewise.
8022         (simplify_binary_operation_1): Likewise.
8023         (simplify_const_binary_operation): Likewise.
8024         (simplify_const_relational_operation): Likewise.
8025         (simplify_subreg): Likewise.
8026         * stor-layout.c (bitwise_mode_for_mode): Likewise.
8027         * var-tracking.c (adjust_mems): Likewise.
8028         (prepare_call_arguments): Likewise.
8030 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8031             Alan Hayward  <alan.hayward@arm.com>
8032             David Sherwood  <david.sherwood@arm.com>
8034         * machmode.h (is_int_mode): New fuction.
8035         * combine.c (find_split_point): Use it.
8036         (combine_simplify_rtx): Likewise.
8037         (simplify_if_then_else): Likewise.
8038         (simplify_set): Likewise.
8039         (simplify_shift_const_1): Likewise.
8040         (simplify_comparison): Likewise.
8041         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
8042         * cse.c (notreg_cost): Likewise.
8043         (cse_insn): Likewise.
8044         * cselib.c (cselib_lookup_1): Likewise.
8045         * dojump.c (do_jump_1): Likewise.
8046         (do_compare_rtx_and_jump): Likewise.
8047         * dse.c (get_call_args): Likewise.
8048         * dwarf2out.c (rtl_for_decl_init): Likewise.
8049         (native_encode_initializer): Likewise.
8050         * expmed.c (emit_store_flag_1): Likewise.
8051         (emit_store_flag): Likewise.
8052         * expr.c (convert_modes): Likewise.
8053         (store_field): Likewise.
8054         (expand_expr_real_1): Likewise.
8055         * fold-const.c (fold_read_from_constant_string): Likewise.
8056         * gimple-ssa-sprintf.c (get_format_string): Likewise.
8057         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
8058         * optabs.c (expand_binop): Likewise.
8059         (expand_unop): Likewise.
8060         (expand_abs_nojump): Likewise.
8061         (expand_one_cmpl_abs_nojump): Likewise.
8062         * simplify-rtx.c (mode_signbit_p): Likewise.
8063         (val_signbit_p): Likewise.
8064         (val_signbit_known_set_p): Likewise.
8065         (val_signbit_known_clear_p): Likewise.
8066         (simplify_relational_operation_1): Likewise.
8067         * tree.c (vector_type_mode): Likewise.
8069 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8070             Alan Hayward  <alan.hayward@arm.com>
8071             David Sherwood  <david.sherwood@arm.com>
8073         * machmode.h (smallest_mode_for_size): Fix formatting.
8074         (smallest_int_mode_for_size): New function.
8075         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
8076         instead of smallest_mode_for_size.
8077         * combine.c (make_extraction): Likewise.
8078         * config/arc/arc.c (arc_expand_movmem): Likewise.
8079         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
8080         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
8081         * config/s390/s390.c (s390_expand_insv): Likewise.
8082         * config/sparc/sparc.c (assign_int_registers): Likewise.
8083         * config/spu/spu.c (spu_function_value): Likewise.
8084         (spu_function_arg): Likewise.
8085         * coverage.c (get_gcov_type): Likewise.
8086         (get_gcov_unsigned_t): Likewise.
8087         * dse.c (find_shift_sequence): Likewise.
8088         * expmed.c (store_bit_field_1): Likewise.
8089         * expr.c (convert_move): Likewise.
8090         (store_field): Likewise.
8091         * internal-fn.c (expand_arith_overflow): Likewise.
8092         * optabs-query.c (get_best_extraction_insn): Likewise.
8093         * optabs.c (expand_twoval_binop_libfunc): Likewise.
8094         * stor-layout.c (layout_type): Likewise.
8095         (initialize_sizetypes): Likewise.
8096         * targhooks.c (default_get_mask_mode): Likewise.
8097         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
8099 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8100             Alan Hayward  <alan.hayward@arm.com>
8101             David Sherwood  <david.sherwood@arm.com>
8103         * machmode.h (opt_mode::else_blk): New function.
8104         (int_mode_for_mode): Declare.
8105         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
8106         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
8107         return type.
8108         * cfgexpand.c (expand_debug_expr): Likewise.
8109         * combine.c (gen_lowpart_or_truncate): Likewise.
8110         (gen_lowpart_for_combine): Likewise.
8111         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
8112         * config/avr/avr.c (avr_to_int_mode): Likewise.
8113         (avr_out_plus_1): Likewise.
8114         (avr_out_plus): Likewise.
8115         (avr_out_round): Likewise.
8116         * config/i386/i386.c (ix86_split_to_parts): Likewise.
8117         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
8118         (s390_expand_vcond): Likewise.
8119         * config/spu/spu.c (spu_split_immediate): Likewise.
8120         (spu_expand_mov): Likewise.
8121         * dse.c (get_stored_val): Likewise.
8122         * expmed.c (store_bit_field_1): Likewise.
8123         (convert_extracted_bit_field): Use int_mode_for_mode instead of
8124         int_mode_for_size.
8125         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
8126         (extract_low_bits): Likewise.
8127         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
8128         handling rather than repeating the check.
8129         (emit_group_store): Likewise.
8130         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
8131         * optabs.c (expand_absneg_bit): Likewise.
8132         (expand_copysign_absneg): Likewise.
8133         (expand_copysign_bit): Likewise.
8134         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
8135         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
8136         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
8137         * var-tracking.c (prepare_call_arguments):  Likewise.
8138         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
8139         int_mode_for_mode instead of mode_for_size.
8140         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
8142 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8143             Alan Hayward  <alan.hayward@arm.com>
8144             David Sherwood  <david.sherwood@arm.com>
8146         * machmode.h (int_mode_for_size): New function.
8147         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
8148         instead of mode_for_size.
8149         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
8150         explicit.
8151         * combine.c (expand_field_assignment): Use int_mode_for_size
8152         instead of mode_for_size.
8153         (make_extraction): Likewise.
8154         (simplify_shift_const_1): Likewise.
8155         (simplify_comparison): Likewise.
8156         * dojump.c (do_jump): Likewise.
8157         * dwarf2out.c (mem_loc_descriptor): Likewise.
8158         * emit-rtl.c (init_derived_machine_modes): Likewise.
8159         * expmed.c (flip_storage_order): Likewise.
8160         (convert_extracted_bit_field): Likewise.
8161         * expr.c (copy_blkmode_from_reg): Likewise.
8162         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
8163         * internal-fn.c (expand_mul_overflow): Likewise.
8164         * lower-subreg.c (simple_move): Likewise.
8165         * optabs-libfuncs.c (init_optabs): Likewise.
8166         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8167         * tree.c (vector_type_mode): Likewise.
8168         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
8169         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
8170         * tree-vect-generic.c (expand_vector_parallel): Likewise.
8171         * tree-vect-stmts.c (vectorizable_load): Likewise.
8172         (vectorizable_store): Likewise.
8174 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8175             Alan Hayward  <alan.hayward@arm.com>
8176             David Sherwood  <david.sherwood@arm.com>
8178         * coretypes.h (pod_mode): New type.
8179         (scalar_int_mode_pod): New typedef.
8180         * machmode.h (pod_mode): New class.
8181         (int_n_data_t::m): Change type to scalar_int_mode_pod.
8182         * genmodes.c (emit_mode_int_n): Update accordingly.
8183         * lower-subreg.h (target_lower_subreg): Change type to
8184         scalar_int_mode_pod.
8185         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
8186         scalar_int_mode_pod.
8188 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8189             Alan Hayward  <alan.hayward@arm.com>
8190             David Sherwood  <david.sherwood@arm.com>
8192         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
8193         machine_mode to scalar_int_mode.
8194         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
8195         (rs6000_option_override_internal): Remove cast to int.
8196         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
8197         machine_mode to scalar_int_mode.
8198         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
8199         (rs6000_option_override_internal): Remove cast to int.
8200         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
8201         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
8202         to machine_mode.
8203         * config/s390/s390.c (s390_expand_builtin): Likewise.
8204         * coretypes.h (scalar_int_mode): New type.
8205         (opt_scalar_int_mode): New typedef.
8206         * machmode.h (scalar_int_mode): New class.
8207         (scalar_int_mode::includes_p): New function.
8208         (byte_mode): Change type to scalar_int_mode.
8209         (word_mode): Likewise.
8210         (ptr_mode): Likewise.
8211         * emit-rtl.c (byte_mode): Likewise.
8212         (word_mode): Likewise.
8213         (ptr_mode): Likewise.
8214         (init_derived_machine_modes): Update accordingly.
8215         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
8216         and MODE_PARTIAL_INT.
8217         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
8218         opt_scalar_int_mode.
8220 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8221             Alan Hayward  <alan.hayward@arm.com>
8222             David Sherwood  <david.sherwood@arm.com>
8224         * target.def (libgcc_floating_mode_supported_p): Take a
8225         scalar_float_mode.
8226         * doc/tm.texi: Regenerate.
8227         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
8228         scalar_float_mode.
8229         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
8230         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
8231         Likewise.
8233 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8234             Alan Hayward  <alan.hayward@arm.com>
8235             David Sherwood  <david.sherwood@arm.com>
8237         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
8238         * doc/tm.texi: Regenerate.
8239         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
8240         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
8241         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
8242         * targhooks.h (default_floatn_mode): Likewise.
8243         * targhooks.c (default_floatn_mode): Likewise.
8244         * tree.c (build_common_tree_nodes): Update accordingly.
8246 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8247             Alan Hayward  <alan.hayward@arm.com>
8248             David Sherwood  <david.sherwood@arm.com>
8250         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
8251         (mode_iterator::iterate_p): Likewise.
8252         (mode_iterator::get_wider): Likewise.
8253         * expr.c (init_expr_target): Use opt_scalar_float_mode.
8255 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8256             Alan Hayward  <alan.hayward@arm.com>
8257             David Sherwood  <david.sherwood@arm.com>
8259         * coretypes.h (opt_scalar_float_mode): New typedef.
8260         * machmode.h (float_mode_for_size): New function.
8261         * emit-rtl.c (double_mode): Delete.
8262         (init_emit_once): Use float_mode_for_size.
8263         * stor-layout.c (layout_type): Likewise.
8264         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
8266 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8267             Alan Hayward  <alan.hayward@arm.com>
8268             David Sherwood  <david.sherwood@arm.com>
8270         * output.h (assemble_real): Take a scalar_float_mode.
8271         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
8272         * config/arm/arm.md (consttable_4): Likewise.
8273         (consttable_8): Likewise.
8274         (consttable_16): Likewise.
8275         * config/mips/mips.md (consttable_float): Likewise.
8276         * config/s390/s390.c (s390_output_pool_entry): Likewise.
8277         * varasm.c (assemble_real): Take a scalar_float_mode.
8278         (output_constant_pool_2): Update accordingly.
8279         (output_constant): Likewise.
8281 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8282             Alan Hayward  <alan.hayward@arm.com>
8283             David Sherwood  <david.sherwood@arm.com>
8285         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
8286         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
8287         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
8288         (native_encode_real): Likewise.
8289         (native_interpret_real): Likewise.
8290         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
8291         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8293 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8294             Alan Hayward  <alan.hayward@arm.com>
8295             David Sherwood  <david.sherwood@arm.com>
8297         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
8298         <scalar_float_mode>.  Simplify.
8299         (gen_extend_conv_libfunc): Likewise.
8301 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8302             Alan Hayward  <alan.hayward@arm.com>
8303             David Sherwood  <david.sherwood@arm.com>
8305         * coretypes.h (scalar_float_mode): New type.
8306         * machmode.h (mode_traits::from_int): Use machine_mode if
8307         USE_ENUM_MODES is defined.
8308         (is_a): New function.
8309         (as_a): Likewise.
8310         (dyn_cast): Likewise.
8311         (scalar_float_mode): New class.
8312         (scalar_float_mode::includes_p): New function.
8313         (is_float_mode): Likewise.
8314         * gdbhooks.py (MachineModePrinter): New class.
8315         (build_pretty_printer): Use it for scalar_float_mode.
8316         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
8317         (format_helper::format_helper): Turn into a template.
8318         * genmodes.c (get_mode_class): New function.
8319         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
8320         or machine_mode if none.
8321         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
8322         as_a <scalar_float_mode>.
8323         * dwarf2out.c (mem_loc_descriptor): Likewise.
8324         (insert_float): Likewise.
8325         (add_const_value_attribute): Likewise.
8326         * simplify-rtx.c (simplify_immed_subreg): Likewise.
8327         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
8328         (expand_unop): Update accordingly.
8329         (expand_abs_nojump): Likewise.
8330         (expand_copysign_absneg): Take a scalar_float_mode.
8331         (expand_copysign_bit): Likewise.
8332         (expand_copysign): Update accordingly.
8334 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8335             Alan Hayward  <alan.hayward@arm.com>
8336             David Sherwood  <david.sherwood@arm.com>
8338         * coretypes.h (opt_mode): New class.
8339         * machmode.h (opt_mode): Likewise.
8340         (opt_mode::else_void): New function.
8341         (opt_mode::require): Likewise.
8342         (opt_mode::exists): Likewise.
8343         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
8344         (GET_MODE_2XWIDER_MODE): Likewise.
8345         (mode_iterator::get_wider): Update accordingly.
8346         (mode_iterator::get_2xwider): Likewise.
8347         (mode_iterator::get_known_wider): Likewise, turning into a template.
8348         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
8349         forcing a wider mode to exist.
8350         * config/cr16/cr16.h (LONG_REG_P): Likewise.
8351         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8352         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
8353         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
8354         * lower-subreg.c (init_lower_subreg): Likewise.
8355         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
8356         on the final iteration.
8357         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
8358         a wider mode exists before asking for a move pattern.
8359         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
8360         forcing a wider mode to exist.
8361         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
8362         returning false if no such mode exists.
8363         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
8364         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
8365         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
8366         Avoid checking for a MODE_INT if we already know the mode is not a
8367         SCALAR_INT_MODE_P.
8368         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
8369         forcing a wider mode to exist.
8370         (expmed_mult_highpart_optab): Likewise.
8371         (expmed_mult_highpart): Likewise.
8372         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
8373         using else_void.
8374         * lto-streamer-in.c (lto_input_mode_table): Likewise.
8375         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
8376         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
8377         * internal-fn.c (expand_mul_overflow): Update use of
8378         GET_MODE_2XWIDER_MODE.
8379         * omp-low.c (omp_clause_aligned_alignment): Likewise.
8380         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
8381         GET_MODE_WIDER_MODE.
8382         (convert_plusminus_to_widen): Likewise.
8383         * tree-switch-conversion.c (array_value_type): Likewise.
8384         * var-tracking.c (emit_note_insn_var_location): Likewise.
8385         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
8386         Return false inside rather than outside the loop if no wider mode
8387         exists
8388         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
8389         and GET_MODE_2XWIDER_MODE
8390         (can_compare_p): Use else_void.
8391         * gdbhooks.py (OptMachineModePrinter): New class.
8392         (build_pretty_printer): Use it for opt_mode.
8394 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8395             Alan Hayward  <alan.hayward@arm.com>
8396             David Sherwood  <david.sherwood@arm.com>
8398         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
8399         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
8401 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8402             Alan Hayward  <alan.hayward@arm.com>
8403             David Sherwood  <david.sherwood@arm.com>
8405         * machmode.h (mode_traits): New structure.
8406         (get_narrowest_mode): New function.
8407         (mode_iterator::start): Likewise.
8408         (mode_iterator::iterate_p): Likewise.
8409         (mode_iterator::get_wider): Likewise.
8410         (mode_iterator::get_known_wider): Likewise.
8411         (mode_iterator::get_2xwider): Likewise.
8412         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
8413         (FOR_EACH_MODE): Likewise.
8414         (FOR_EACH_MODE_FROM): Likewise.
8415         (FOR_EACH_MODE_UNTIL): Likewise.
8416         (FOR_EACH_WIDER_MODE): Likewise.
8417         (FOR_EACH_2XWIDER_MODE): Likewise.
8418         * builtins.c (expand_builtin_strlen): Use new mode iterators.
8419         * combine.c (simplify_comparison): Likewise
8420         * config/i386/i386.c (type_natural_mode): Likewise.
8421         * cse.c (cse_insn): Likewise.
8422         * dse.c (find_shift_sequence): Likewise.
8423         * emit-rtl.c (init_derived_machine_modes): Likewise.
8424         (init_emit_once): Likewise.
8425         * explow.c (hard_function_value): Likewise.
8426         * expmed.c (extract_fixed_bit_field_1): Likewise.
8427         (extract_bit_field_1): Likewise.
8428         (expand_divmod): Likewise.
8429         (emit_store_flag_1): Likewise.
8430         * expr.c (init_expr_target): Likewise.
8431         (convert_move): Likewise.
8432         (alignment_for_piecewise_move): Likewise.
8433         (widest_int_mode_for_size): Likewise.
8434         (emit_block_move_via_movmem): Likewise.
8435         (copy_blkmode_to_reg): Likewise.
8436         (set_storage_via_setmem): Likewise.
8437         (compress_float_constant): Likewise.
8438         * omp-low.c (omp_clause_aligned_alignment): Likewise.
8439         * optabs-query.c (get_best_extraction_insn): Likewise.
8440         * optabs.c (expand_binop): Likewise.
8441         (expand_twoval_unop): Likewise.
8442         (expand_twoval_binop): Likewise.
8443         (widen_leading): Likewise.
8444         (widen_bswap): Likewise.
8445         (expand_parity): Likewise.
8446         (expand_unop): Likewise.
8447         (prepare_cmp_insn): Likewise.
8448         (prepare_float_lib_cmp): Likewise.
8449         (expand_float): Likewise.
8450         (expand_fix): Likewise.
8451         (expand_sfix_optab): Likewise.
8452         * postreload.c (move2add_use_add2_insn): Likewise.
8453         * reg-stack.c (reg_to_stack): Likewise.
8454         * reginfo.c (choose_hard_reg_mode): Likewise.
8455         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
8456         * stor-layout.c (mode_for_size): Likewise.
8457         (smallest_mode_for_size): Likewise.
8458         (mode_for_vector): Likewise.
8459         (finish_bitfield_representative): Likewise.
8460         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
8461         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
8462         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8463         * var-tracking.c (prepare_call_arguments): Likewise.
8465 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8466             Alan Hayward  <alan.hayward@arm.com>
8467             David Sherwood  <david.sherwood@arm.com>
8469         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
8470         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
8471         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
8472         * machmode.h (mode_size): Move earlier in file.
8473         (mode_precision): Likewise.
8474         (mode_inner): Likewise.
8475         (mode_nunits): Likewise.
8476         (mode_unit_size): Likewise.
8477         (unit_unit_precision): Likewise.
8478         (mode_wider): Likewise.
8479         (mode_2xwider): Likewise.
8480         (machine_mode): New class.
8481         (mode_to_bytes): New function.
8482         (mode_to_bits): Likewise.
8483         (mode_to_precision): Likewise.
8484         (mode_to_inner): Likewise.
8485         (mode_to_unit_size): Likewise.
8486         (mode_to_unit_precision): Likewise.
8487         (mode_to_nunits): Likewise.
8488         (GET_MODE_SIZE): Use mode_to_bytes.
8489         (GET_MODE_BITSIZE): Use mode_to_bits.
8490         (GET_MODE_PRECISION): Use mode_to_precision.
8491         (GET_MODE_INNER): Use mode_to_inner.
8492         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
8493         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
8494         (GET_MODE_NUNITS): Use mode_to_nunits.
8495         * system.h (ALWAYS_INLINE): New macro.
8496         * config/powerpcspe/powerpcspe-c.c
8497         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
8498         int for arg1_mode and arg2_mode.
8500 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8501             Alan Hayward  <alan.hayward@arm.com>
8502             David Sherwood  <david.sherwood@arm.com>
8504         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
8505         Prefix mode names with E_ in case statements.
8506         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8507         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
8508         (aarch64_split_simd_move): Likewise.
8509         (aarch64_gen_storewb_pair): Likewise.
8510         (aarch64_gen_loadwb_pair): Likewise.
8511         (aarch64_gen_store_pair): Likewise.
8512         (aarch64_gen_load_pair): Likewise.
8513         (aarch64_get_condition_code_1): Likewise.
8514         (aarch64_constant_pool_reload_icode): Likewise.
8515         (get_rsqrte_type): Likewise.
8516         (get_rsqrts_type): Likewise.
8517         (get_recpe_type): Likewise.
8518         (get_recps_type): Likewise.
8519         (aarch64_gimplify_va_arg_expr): Likewise.
8520         (aarch64_simd_container_mode): Likewise.
8521         (aarch64_emit_load_exclusive): Likewise.
8522         (aarch64_emit_store_exclusive): Likewise.
8523         (aarch64_expand_compare_and_swap): Likewise.
8524         (aarch64_gen_atomic_cas): Likewise.
8525         (aarch64_emit_bic): Likewise.
8526         (aarch64_emit_atomic_swap): Likewise.
8527         (aarch64_emit_atomic_load_op): Likewise.
8528         (aarch64_evpc_trn): Likewise.
8529         (aarch64_evpc_uzp): Likewise.
8530         (aarch64_evpc_zip): Likewise.
8531         (aarch64_evpc_ext): Likewise.
8532         (aarch64_evpc_rev): Likewise.
8533         (aarch64_evpc_dup): Likewise.
8534         (aarch64_gen_ccmp_first): Likewise.
8535         (aarch64_gen_ccmp_next): Likewise.
8536         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
8537         (alpha_emit_xfloating_libcall): Likewise.
8538         (emit_insxl): Likewise.
8539         (alpha_arg_type): Likewise.
8540         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
8541         (arc_preferred_simd_mode): Likewise.
8542         (arc_secondary_reload): Likewise.
8543         (get_arc_condition_code): Likewise.
8544         (arc_print_operand): Likewise.
8545         (arc_legitimate_constant_p): Likewise.
8546         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8547         * config/arc/arc.md (casesi_load): Likewise.
8548         (casesi_compact_jump): Likewise.
8549         * config/arc/predicates.md (proper_comparison_operator): Likewise.
8550         (cc_use_register): Likewise.
8551         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8552         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
8553         (arm_init_iwmmxt_builtins): Likewise.
8554         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
8555         (neon_expand_vector_init): Likewise.
8556         (arm_attr_length_move_neon): Likewise.
8557         (maybe_get_arm_condition_code): Likewise.
8558         (arm_emit_vector_const): Likewise.
8559         (arm_preferred_simd_mode): Likewise.
8560         (arm_output_iwmmxt_tinsr): Likewise.
8561         (thumb1_output_casesi): Likewise.
8562         (thumb2_output_casesi): Likewise.
8563         (arm_emit_load_exclusive): Likewise.
8564         (arm_emit_store_exclusive): Likewise.
8565         (arm_expand_compare_and_swap): Likewise.
8566         (arm_evpc_neon_vuzp): Likewise.
8567         (arm_evpc_neon_vzip): Likewise.
8568         (arm_evpc_neon_vrev): Likewise.
8569         (arm_evpc_neon_vtrn): Likewise.
8570         (arm_evpc_neon_vext): Likewise.
8571         (arm_validize_comparison): Likewise.
8572         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
8573         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
8574         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
8575         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
8576         (c6x_preferred_simd_mode): Likewise.
8577         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
8578         (epiphany_rtx_costs): Likewise.
8579         * config/epiphany/predicates.md (proper_comparison_operator):
8580         Likewise.
8581         * config/frv/frv.c (condexec_memory_operand): Likewise.
8582         (frv_emit_move): Likewise.
8583         (output_move_single): Likewise.
8584         (output_condmove_single): Likewise.
8585         (frv_hard_regno_mode_ok): Likewise.
8586         (frv_matching_accg_mode): Likewise.
8587         * config/h8300/h8300.c (split_adds_subs): Likewise.
8588         (h8300_rtx_costs): Likewise.
8589         (h8300_print_operand): Likewise.
8590         (compute_mov_length): Likewise.
8591         (output_logical_op): Likewise.
8592         (compute_logical_op_length): Likewise.
8593         (compute_logical_op_cc): Likewise.
8594         (h8300_shift_needs_scratch_p): Likewise.
8595         (output_a_shift): Likewise.
8596         (compute_a_shift_length): Likewise.
8597         (compute_a_shift_cc): Likewise.
8598         (expand_a_rotate): Likewise.
8599         (output_a_rotate): Likewise.
8600         * config/i386/i386.c (classify_argument): Likewise.
8601         (function_arg_advance_32): Likewise.
8602         (function_arg_32): Likewise.
8603         (function_arg_64): Likewise.
8604         (function_value_64): Likewise.
8605         (ix86_gimplify_va_arg): Likewise.
8606         (ix86_legitimate_constant_p): Likewise.
8607         (put_condition_code): Likewise.
8608         (split_double_mode): Likewise.
8609         (ix86_avx256_split_vector_move_misalign): Likewise.
8610         (ix86_expand_vector_logical_operator): Likewise.
8611         (ix86_split_idivmod): Likewise.
8612         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
8613         (ix86_build_const_vector): Likewise.
8614         (ix86_build_signbit_mask): Likewise.
8615         (ix86_match_ccmode): Likewise.
8616         (ix86_cc_modes_compatible): Likewise.
8617         (ix86_expand_branch): Likewise.
8618         (ix86_expand_sse_cmp): Likewise.
8619         (ix86_expand_sse_movcc): Likewise.
8620         (ix86_expand_int_sse_cmp): Likewise.
8621         (ix86_expand_vec_perm_vpermi2): Likewise.
8622         (ix86_expand_vec_perm): Likewise.
8623         (ix86_expand_sse_unpack): Likewise.
8624         (ix86_expand_int_addcc): Likewise.
8625         (ix86_split_to_parts): Likewise.
8626         (ix86_vectorize_builtin_gather): Likewise.
8627         (ix86_vectorize_builtin_scatter): Likewise.
8628         (avx_vpermilp_parallel): Likewise.
8629         (inline_memory_move_cost): Likewise.
8630         (ix86_tieable_integer_mode_p): Likewise.
8631         (x86_maybe_negate_const_int): Likewise.
8632         (ix86_expand_vector_init_duplicate): Likewise.
8633         (ix86_expand_vector_init_one_nonzero): Likewise.
8634         (ix86_expand_vector_init_one_var): Likewise.
8635         (ix86_expand_vector_init_concat): Likewise.
8636         (ix86_expand_vector_init_interleave): Likewise.
8637         (ix86_expand_vector_init_general): Likewise.
8638         (ix86_expand_vector_set): Likewise.
8639         (ix86_expand_vector_extract): Likewise.
8640         (emit_reduc_half): Likewise.
8641         (ix86_emit_i387_round): Likewise.
8642         (ix86_mangle_type): Likewise.
8643         (ix86_expand_round_sse4): Likewise.
8644         (expand_vec_perm_blend): Likewise.
8645         (canonicalize_vector_int_perm): Likewise.
8646         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
8647         (expand_vec_perm_1): Likewise.
8648         (expand_vec_perm_interleave3): Likewise.
8649         (expand_vec_perm_even_odd_pack): Likewise.
8650         (expand_vec_perm_even_odd_1): Likewise.
8651         (expand_vec_perm_broadcast_1): Likewise.
8652         (ix86_vectorize_vec_perm_const_ok): Likewise.
8653         (ix86_expand_vecop_qihi): Likewise.
8654         (ix86_expand_mul_widen_hilo): Likewise.
8655         (ix86_expand_sse2_abs): Likewise.
8656         (ix86_expand_pextr): Likewise.
8657         (ix86_expand_pinsr): Likewise.
8658         (ix86_preferred_simd_mode): Likewise.
8659         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
8660         * config/i386/sse.md (*andnot<mode>3): Likewise.
8661         (<mask_codefor><code><mode>3<mask_name>): Likewise.
8662         (*<code><mode>3): Likewise.
8663         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
8664         (ia64_expand_atomic_op): Likewise.
8665         (ia64_arg_type): Likewise.
8666         (ia64_mode_to_int): Likewise.
8667         (ia64_scalar_mode_supported_p): Likewise.
8668         (ia64_vector_mode_supported_p): Likewise.
8669         (expand_vec_perm_broadcast): Likewise.
8670         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
8671         (iq2000_function_arg_advance): Likewise.
8672         (iq2000_function_arg): Likewise.
8673         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
8674         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
8675         (m68k_libcall_value): Likewise.
8676         (m68k_function_value): Likewise.
8677         (sched_attr_op_type): Likewise.
8678         * config/mcore/mcore.c (mcore_output_move): Likewise.
8679         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
8680         Likewise.
8681         (microblaze_function_arg): Likewise.
8682         * config/mips/mips.c (mips16_build_call_stub): Likewise.
8683         (mips_print_operand): Likewise.
8684         (mips_mode_ok_for_mov_fmt_p): Likewise.
8685         (mips_vector_mode_supported_p): Likewise.
8686         (mips_preferred_simd_mode): Likewise.
8687         (mips_expand_vpc_loongson_even_odd): Likewise.
8688         (mips_expand_vec_unpack): Likewise.
8689         (mips_expand_vi_broadcast): Likewise.
8690         (mips_expand_vector_init): Likewise.
8691         (mips_expand_vec_reduc): Likewise.
8692         (mips_expand_msa_cmp): Likewise.
8693         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
8694         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
8695         (cc_flags_for_mode): Likewise.
8696         * config/msp430/msp430.c (msp430_print_operand): Likewise.
8697         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
8698         (nds32_output_casesi_pc_relative): Likewise.
8699         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8700         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
8701         (nvptx_gen_unpack): Likewise.
8702         (nvptx_gen_pack): Likewise.
8703         (nvptx_gen_shuffle): Likewise.
8704         (nvptx_gen_wcast): Likewise.
8705         (nvptx_preferred_simd_mode): Likewise.
8706         * config/pa/pa.c (pa_secondary_reload): Likewise.
8707         * config/pa/predicates.md (base14_operand): Likewise.
8708         * config/powerpcspe/powerpcspe-c.c
8709         (altivec_resolve_overloaded_builtin): Likewise.
8710         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
8711         Likewise.
8712         (rs6000_preferred_simd_mode): Likewise.
8713         (output_vec_const_move): Likewise.
8714         (rs6000_expand_vector_extract): Likewise.
8715         (rs6000_split_vec_extract_var): Likewise.
8716         (reg_offset_addressing_ok_p): Likewise.
8717         (rs6000_legitimate_offset_address_p): Likewise.
8718         (rs6000_legitimize_address): Likewise.
8719         (rs6000_emit_set_const): Likewise.
8720         (rs6000_const_vec): Likewise.
8721         (rs6000_emit_move): Likewise.
8722         (spe_build_register_parallel): Likewise.
8723         (rs6000_darwin64_record_arg_recurse): Likewise.
8724         (swap_selector_for_mode): Likewise.
8725         (spe_init_builtins): Likewise.
8726         (paired_init_builtins): Likewise.
8727         (altivec_init_builtins): Likewise.
8728         (do_load_for_compare): Likewise.
8729         (rs6000_generate_compare): Likewise.
8730         (rs6000_expand_float128_convert): Likewise.
8731         (emit_load_locked): Likewise.
8732         (emit_store_conditional): Likewise.
8733         (rs6000_output_function_epilogue): Likewise.
8734         (rs6000_handle_altivec_attribute): Likewise.
8735         (rs6000_function_value): Likewise.
8736         (emit_fusion_gpr_load): Likewise.
8737         (emit_fusion_p9_load): Likewise.
8738         (emit_fusion_p9_store): Likewise.
8739         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
8740         (fusion_gpr_mem_load): Likewise.
8741         (fusion_addis_mem_combo_load): Likewise.
8742         (fusion_addis_mem_combo_store): Likewise.
8743         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
8744         (fusion_gpr_mem_load): Likewise.
8745         (fusion_addis_mem_combo_load): Likewise.
8746         (fusion_addis_mem_combo_store): Likewise.
8747         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8748         Likewise.
8749         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
8750         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
8751         (rs6000_preferred_simd_mode): Likewise.
8752         (output_vec_const_move): Likewise.
8753         (rs6000_expand_vector_extract): Likewise.
8754         (rs6000_split_vec_extract_var): Likewise.
8755         (reg_offset_addressing_ok_p): Likewise.
8756         (rs6000_legitimate_offset_address_p): Likewise.
8757         (rs6000_legitimize_address): Likewise.
8758         (rs6000_emit_set_const): Likewise.
8759         (rs6000_const_vec): Likewise.
8760         (rs6000_emit_move): Likewise.
8761         (rs6000_darwin64_record_arg_recurse): Likewise.
8762         (swap_selector_for_mode): Likewise.
8763         (paired_init_builtins): Likewise.
8764         (altivec_init_builtins): Likewise.
8765         (rs6000_expand_float128_convert): Likewise.
8766         (emit_load_locked): Likewise.
8767         (emit_store_conditional): Likewise.
8768         (rs6000_output_function_epilogue): Likewise.
8769         (rs6000_handle_altivec_attribute): Likewise.
8770         (rs6000_function_value): Likewise.
8771         (emit_fusion_gpr_load): Likewise.
8772         (emit_fusion_p9_load): Likewise.
8773         (emit_fusion_p9_store): Likewise.
8774         * config/rx/rx.c (rx_gen_move_template): Likewise.
8775         (flags_from_mode): Likewise.
8776         * config/s390/predicates.md (s390_alc_comparison): Likewise.
8777         (s390_slb_comparison): Likewise.
8778         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
8779         (s390_vector_mode_supported_p): Likewise.
8780         (s390_cc_modes_compatible): Likewise.
8781         (s390_match_ccmode_set): Likewise.
8782         (s390_canonicalize_comparison): Likewise.
8783         (s390_emit_compare_and_swap): Likewise.
8784         (s390_branch_condition_mask): Likewise.
8785         (s390_rtx_costs): Likewise.
8786         (s390_secondary_reload): Likewise.
8787         (__SECONDARY_RELOAD_CASE): Likewise.
8788         (s390_expand_cs): Likewise.
8789         (s390_preferred_simd_mode): Likewise.
8790         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
8791         * config/sh/sh.c (sh_print_operand): Likewise.
8792         (dump_table): Likewise.
8793         (sh_secondary_reload): Likewise.
8794         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8795         * config/sh/sh.md (casesi_worker_1): Likewise.
8796         (casesi_worker_2): Likewise.
8797         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
8798         (fcc_comparison_operator): Likewise.
8799         * config/sparc/sparc.c (sparc_expand_move): Likewise.
8800         (emit_soft_tfmode_cvt): Likewise.
8801         (sparc_preferred_simd_mode): Likewise.
8802         (output_cbranch): Likewise.
8803         (sparc_print_operand): Likewise.
8804         (sparc_expand_vec_perm_bmask): Likewise.
8805         (vector_init_bshuffle): Likewise.
8806         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
8807         (spu_vector_mode_supported_p): Likewise.
8808         (spu_expand_insv): Likewise.
8809         (spu_emit_branch_or_set): Likewise.
8810         (spu_handle_vector_attribute): Likewise.
8811         (spu_builtin_splats): Likewise.
8812         (spu_builtin_extract): Likewise.
8813         (spu_builtin_promote): Likewise.
8814         (spu_expand_sign_extend): Likewise.
8815         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
8816         (tilegx_simd_int): Likewise.
8817         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
8818         (tilepro_simd_int): Likewise.
8819         * config/v850/v850.c (const_double_split): Likewise.
8820         (v850_print_operand): Likewise.
8821         (ep_memory_offset): Likewise.
8822         * config/vax/vax.c (vax_rtx_costs): Likewise.
8823         (vax_output_int_move): Likewise.
8824         (vax_output_int_add): Likewise.
8825         (vax_output_int_subtract): Likewise.
8826         * config/visium/predicates.md (visium_branch_operator): Likewise.
8827         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
8828         (visium_print_operand_address): Likewise.
8829         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8830         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
8831         (xtensa_expand_conditional_branch): Likewise.
8832         (xtensa_copy_incoming_a7): Likewise.
8833         (xtensa_output_literal): Likewise.
8834         * dfp.c (decimal_real_maxval): Likewise.
8835         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
8837 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8838             Alan Hayward  <alan.hayward@arm.com>
8839             David Sherwood  <david.sherwood@arm.com>
8841         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
8842         (mode_nunits_inline): Likewise.
8843         (mode_inner_inline): Likewise.
8844         (mode_unit_size_inline): Likewise.
8845         (mode_unit_precision_inline): Likewise.
8846         (emit_insn_modes_h): Likewise.  Also emit a #define of the
8847         unprefixed name.
8848         (emit_mode_wider): Add an E_ prefix to mode names.
8849         (emit_mode_complex): Likewise.
8850         (emit_mode_inner): Likewise.
8851         (emit_mode_adjustments): Likewise.
8852         (emit_mode_int_n): Likewise.
8853         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
8854         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
8855         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
8856         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
8857         (CRC32_BUILTIN, ENTRY): Likewise.
8858         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
8859         (aarch64_pop_regs): Likewise.
8860         (aarch64_process_components): Likewise.
8861         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
8862         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
8863         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
8864         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
8865         * config/arm/arm.c (arm_init_libfuncs): Likewise.
8866         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
8867         Likewise.
8868         * config/i386/i386-builtin.def (pcmpestr): Likewise.
8869         (pcmpistr): Likewise.
8870         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
8871         * config/mmix/mmix.c (mmix_output_condition): Likewise.
8872         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
8873         Likewise.
8874         * config/rl78/rl78.c (mduc_regs): Likewise.
8875         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
8876         (htm_expand_builtin): Likewise.
8877         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
8878         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
8879         * config/xtensa/xtensa.c (print_operand): Likewise.
8880         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
8881         (NUM_MODE_VECTOR_INT): Likewise.
8882         * genoutput.c (null_operand): Likewise.
8883         (output_operand_data): Likewise.
8884         * genrecog.c (print_parameter_value): Likewise.
8885         * lra.c (debug_operand_data): Likewise.
8887 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8889         * dwarf2out.c (scompare_loc_descriptor_wide)
8890         (scompare_loc_descriptor_narrow): New functions, split out from...
8891         (scompare_loc_descriptor): ...here.
8892         * expmed.c (emit_store_flag_int): New function, split out from...
8893         (emit_store_flag): ...here.
8895 2017-08-30  Richard Biener  <rguenther@suse.de>
8897         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
8898         (dwarf2out_early_finish): Move setting of AT_pubnames from
8899         early debug output to early finish.
8901 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
8903         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
8904         and -mdata-region to the assembler.
8906 2017-08-30  Richard Biener  <rguenther@suse.de>
8908         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
8909         attributes.
8910         (gen_subprogram_die): Add DW_AT_object_pointer only early.
8911         (dwarf2out_early_global_decl): Only generate a DIE for the
8912         abstract origin if it doesn't already exist or is a declaration DIE.
8913         (resolve_addr): Do not add the linkage name twice when
8914         generating a stub DIE for the DW_TAG_GNU_call_site target.
8916 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8918         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8919         Use machine_mode rather than int for arg1_mode.
8921 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
8923         PR target/82015
8924         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
8925         that the second argument of the built-in functions to unpack
8926         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
8927         switch statement instead a lot of if statements.
8928         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
8929         Allow 64-bit values to be in Altivec registers as well as
8930         traditional floating point registers.
8931         (pack<mode>, FMOVE128_VSX iterator): Likewise.
8933 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
8935         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
8936         MAX_REGS_PER_ADDRESS == 1.
8938 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
8940         * config/i386/i386.opt (flag_fentry): Do not init to -1.
8941         * config/i386/i386.c (ix86_option_override_internal): Simplify
8942         setting of opts->x_flag_entry.
8944 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8945             Jakub Jelinek  <jakub@redhat.com>
8946             Richard Biener  <rguenther@suse.de>
8948         PR tree-optimization/81503
8949         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
8950         folded constant fits in the target type; reorder tests for clarity.
8952 2017-08-29  Martin Liska  <mliska@suse.cz>
8954         * passes.def: Include pass_lower_switch.
8955         * stmt.c (dump_case_nodes): Remove and move to
8956         tree-switch-conversion.
8957         (case_values_threshold): Likewise.
8958         (expand_switch_as_decision_tree_p): Likewise.
8959         (emit_case_decision_tree): Likewise.
8960         (expand_case): Likewise.
8961         (balance_case_nodes): Likewise.
8962         (node_has_low_bound): Likewise.
8963         (node_has_high_bound): Likewise.
8964         (node_is_bounded): Likewise.
8965         (emit_case_nodes): Likewise.
8966         (struct simple_case_node): New struct.
8967         (add_case_node): Remove.
8968         (emit_case_dispatch_table): Use vector instead of case_list.
8969         (reset_out_edges_aux): Remove.
8970         (compute_cases_per_edge): Likewise.
8971         (expand_case): Build list of simple_case_node.
8972         (expand_sjlj_dispatch_table): Use it.
8973         * tree-switch-conversion.c (struct case_node): Moved from
8974         stmt.c and adjusted.
8975         (emit_case_nodes): Likewise.
8976         (node_has_low_bound): Likewise.
8977         (node_has_high_bound): Likewise.
8978         (node_is_bounded): Likewise.
8979         (case_values_threshold): Likewise.
8980         (reset_out_edges_aux): Likewise.
8981         (compute_cases_per_edge): Likewise.
8982         (add_case_node): Likewise.
8983         (dump_case_nodes): Likewise.
8984         (balance_case_nodes): Likewise.
8985         (expand_switch_as_decision_tree_p): Likewise.
8986         (emit_jump): Likewise.
8987         (emit_case_decision_tree): Likewise.
8988         (try_switch_expansion): Likewise.
8989         (do_jump_if_equal): Likewise.
8990         (emit_cmp_and_jump_insns): Likewise.
8991         (fix_phi_operands_for_edge): New function.
8992         (record_phi_operand_mapping): Likewise.
8993         (class pass_lower_switch): New pass.
8994         (pass_lower_switch::execute): New function.
8995         (make_pass_lower_switch): Likewise.
8996         (conditional_probability):
8997         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
8998         * tree-pass.h: Add make_pass_lower_switch.
9000 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
9002         PR target/80993
9003         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
9004         handlers as used.
9006 2017-08-29  Richard Biener  <rguenther@suse.de>
9008         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
9009         we do not add a DW_AT_inline attribute twice.
9010         (gen_subprogram_die): Remove code setting DW_AT_inline on
9011         DECL_ABSTRACT_P nodes.
9013 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
9015         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
9016         calls to internal functions.
9017         (gimplify_modify_expr): Likewise.
9018         * tree-call-cdce.c (use_internal_fn): Likewise.
9019         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
9020         (convert_to_divmod): Set the nothrow flag.
9021         * tree-if-conv.c (predicate_mem_writes):  Likewise.
9022         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
9023         (vectorizable_call): Likewise.
9024         (vectorizable_store): Likewise.
9025         (vectorizable_load): Likewise.
9026         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
9027         (vect_recog_mask_conversion_pattern): Likewise.
9029 2017-08-29  Martin Liska  <mliska@suse.cz>
9031         PR other/39851
9032         * gcc.c (driver_handle_option): Add new argument.
9033         * opts-common.c (handle_option): Pass
9034         target_option_override_hook.
9035         * opts-global.c (lang_handle_option): Add new option.
9036         (set_default_handlers):  Add new argument.
9037         (decode_options): Likewise.
9038         * opts.c (target_handle_option): Likewise.
9039         (common_handle_option): Call target_option_override_hook.
9040         * opts.h (struct cl_option_handler_func): Add hook for
9041         target option override.
9042         (struct cl_option_handlers): Likewise.
9043         (set_default_handlers): Add new argument.
9044         (decode_options): Likewise.
9045         (common_handle_option): Likewise.
9046         (target_handle_option): Likewise.
9047         * toplev.c (toplev::main): Pass targetm.target_option.override
9048         hook.
9050 2017-08-29  Richard Biener  <rguenther@suse.de>
9051         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
9053         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
9054         life to the active subtree.
9056 2017-08-28  Jeff Law  <law@redhat.com>
9058         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
9059         derive_equivalences.
9060         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
9061         Code moved into....
9062         (edge_info::derive_equivalences): New private member function
9064         * tree-ssa-dom.c (class edge_info): Changed from a struct
9065         to a class.  Add ctor/dtor, methods and data members.
9066         (edge_info::edge_info): Renamed from allocate_edge_info.
9067         Initialize additional members.
9068         (edge_info::~edge_info): New.
9069         (free_dom_edge_info): Delete the edge info.
9070         (record_edge_info): Use new class & associated member functions.
9071         Tighten forms for testing for edge equivalences.
9072         (record_temporary_equivalences): Iterate over the simple
9073         equivalences rather than assuming there's only one per edge.
9074         (cprop_into_successor_phis): Iterate over the simple
9075         equivalences rather than assuming there's only one per edge.
9076         (optimize_stmt): Use operand_equal_p rather than pointer
9077         equality for mini-DSE code.
9079 2017-08-28  Nathan Sidwell  <nathan@acm.org>
9081         * gcc.c (execute): Fold SIGPIPE handling into switch
9082         statement.  Adjust internal error message.
9084 2017-08-28  Richard Biener  <rguenther@suse.de>
9086         PR debug/81993
9087         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
9088         Do nothing for removed DIEs.
9090 2017-08-28  Richard Biener  <rguenther@suse.de>
9092         PR tree-optimization/81977
9093         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
9094         memcpy.
9096 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
9098         PR target/80640
9099         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
9100         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
9101         using targetm.gen_mem_thread_fence.
9103 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
9105         PR target/81995
9106         * config/i386/i386.md (*<btsc><mode>): Change operand 2
9107         predicate to register_operand.  Reorder operands.
9108         (*btr<mode>): Ditto.
9109         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
9110         (*btr<mode>_mask): Ditto.
9112 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
9114         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
9115         * config/rs6000/xmmintrin.h: New file.
9116         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
9118 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9120         PR target/81504
9121         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
9122         parameter and_insn and return it.
9123         (recombine_lvx_pattern): Insert a copy to ensure availability of
9124         the base register of the copied masking operation at the point of
9125         the instruction replacement.
9126         (recombine_stvx_pattern): Likewise.
9128 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
9130         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
9131         undocumented switches.
9132         (-mpower9-dform-vector): Likewise.
9133         (-mpower9-dform): Likewise.
9134         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
9135         comments to delete references to -mpower9-dform* switches.
9136         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
9137         Delete reference to -mpower9-dform* switches, test for
9138         -mpower9-vector instead.
9139         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
9140         (OTHER_P9_VECTOR_MASKS): Likewise.
9141         (POWERPC_MASKS): Likewise.
9142         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
9143         tests against -mpower9-dform* to -mpower9-vector.  Delete code
9144         that checked for -mpower9-dform* consistancy with other options.
9145         Add test for -mpower9-misc to enable other power9 switches.
9146         (rs6000_init_hard_regno_mode_ok): Likewise.
9147         (rs6000_option_override_internal): Likewise.
9148         (rs6000_emit_prologue): Likewise.
9149         (rs6000_emit_epilogue): Likewise.
9150         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
9151         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
9152         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
9153         -mpower9-vector.
9154         (emit_fusion_p9_store): Likewise.
9155         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
9156         resetting these macros if the assembler does not support ISA 3.0
9157         instructions.
9158         (TARGET_P9_DFORM_VECTOR): Likewise.
9159         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
9160         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
9162 2017-08-25  Alan Modra  <amodra@gmail.com>
9164         PR rtl-optimization/81747
9165         * cse.c (cse_extended_basic_block): Don't attempt to record
9166         equivalences for degenerate conditional branches that branch
9167         to their fall-through.
9169 2017-08-24  Martin Sebor  <msebor@redhat.com>
9171         PR middle-end/81908
9172         * gimple-fold.c (size_must_be_zero_p): New function.
9173         (gimple_fold_builtin_memory_op): Call it.
9175 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
9177         * config/rs6000/mm_malloc.h: New file.
9179 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
9181         PR tree-optimization/81913
9182         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
9183         analysis when either IVs in condition can wrap.
9185 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
9187         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
9188         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
9190 2017-08-24  Richard Biener  <rguenther@suse.de>
9192         PR target/81921
9193         * targhooks.c (default_target_can_inline_p): Properly
9194         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
9195         is present and always compare.
9196         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
9197         infer -mfpmath=sse from TARGET_SSE_P.
9198         (ix86_can_inline_p): Properly use target_option_default_node when
9199         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
9201 2017-08-24  Richard Biener  <rguenther@suse.de>
9203         PR debug/81936
9204         * dwarf2out.c (output_die): Handle flag_generate_offload like
9205         flag_generate_lto.
9206         (output_comp_unit): Likewise.
9207         (gen_array_type_die): Likewise.
9208         (dwarf2out_early_finish): Likewise.
9209         (note_variable_value_in_expr): Likewise.
9210         (dwarf2out_finish): Likewise.  Adjust assert.
9211         * cgraphunit.c (symbol_table::compile): Move setting of
9212         flag_generate_offload earlier ...
9213         (symbol_table::finalize_compilation_unit): ... here, before
9214         early debug finalization.
9216 2017-08-24  Richard Biener  <rguenther@suse.de>
9218         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
9219         and ipa-fnsummary.h.
9220         (ix86_can_inline_p): When ix86_fpmath flags do not match
9221         check whether the callee uses FP math at all.
9223 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
9225         PR middle-end/81931
9226         * tree-ssanames.c (get_nonzero_bits): Use element_precision
9227         instead of TYPE_PRECISION.
9229 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
9230             Alan Hayward  <alan.hayward@arm.com>
9231             David Sherwood  <david.sherwood@arm.com>
9233         * combine.c (make_extraction): Use subreg_offset_from_lsb.
9235 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
9237         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
9238         Remove field.
9239         (ix86_frame::stack_realign_allocate): New field.
9240         (struct machine_frame_state): Modify comments.
9241         (machine_frame_state::sp_realigned_fp_end): New field.
9242         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
9243         layout calculation.
9244         (sp_valid_at): Add assertion to assure no attempt to access invalid
9245         offset of a realigned stack.
9246         (fp_valid_at): Likewise.
9247         (choose_baseaddr): Modify comments.
9248         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
9249         ix86_expand_prologue.
9250         (ix86_expand_prologue): Modify stack realignment and allocation.
9251         (ix86_expand_epilogue): Modify comments.
9252         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
9253         avx2_runtime, avx512f, and avx512f_runtime.
9255 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
9257         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
9258         (mstackrealign): Do not init to -1.
9259         * config/i386/i386.c (ix86_option_override_internal):
9260         Check opts_set, not opts when setting default value of
9261         opts->x_ix86_force_align_arg_pointer.
9263 2017-08-23  Richard Biener  <rguenther@suse.de>
9265         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
9266         lang_hooks.decl_printable_name.
9267         * print-rtl-function.c (print_rtx_function): Likewise.
9268         * tree-pretty-print.c (dump_function_header): Likewise.
9270 2017-08-23  Richard Biener  <rguenther@suse.de>
9272         PR lto/81940
9273         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
9274         -g0 at compile-time.
9276 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
9278         PR middle-end/19706
9279         * doc/sourcebuild.texi (Other hardware attributes):
9280         Document xorsign.
9282 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
9284         PR middle-end/19706
9285         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
9286         Fix single-use check.
9288 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9290         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
9292 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
9294         * doc/install.texi: Modify to add more details on running selected
9295         tests.
9297 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
9299         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
9300         is combined with -mabi=ms.
9301         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
9302         ms_abi.
9304 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9306         PR tree-optimization/81488
9307         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
9308         and cached_basis fields.
9309         (MAX_SPREAD): New constant.
9310         (alloc_cand_and_find_basis): Initialize new fields.
9311         (clear_visited): New function.
9312         (create_phi_basis_1): Rename from create_phi_basis, set visited
9313         and cached_basis fields.
9314         (create_phi_basis): New wrapper function.
9315         (phi_add_costs_1): Rename from phi_add_costs, add spread
9316         parameter, set visited field, short-circuit when limits reached.
9317         (phi_add_costs): New wrapper function.
9318         (record_phi_increments_1): Rename from record_phi_increments, set
9319         visited field.
9320         (record_phi_increments): New wrapper function.
9321         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
9322         (phi_incr_cost): New wrapper function.
9323         (all_phi_incrs_profitable_1): Rename from
9324         all_phi_incrs_profitable, set visited field.
9325         (all_phi_incrs_profitable): New wrapper function.
9327 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
9328             Alan Hayward  <alan.hayward@arm.com>
9329             David Sherwood  <david.sherwood@arm.com>
9331         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
9332         that takes the outer and inner modes.
9333         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
9334         comparison as the canonical test for a paradoxical subreg.
9335         * combine.c (simplify_set): Use paradoxical_subreg_p.
9336         (make_extraction): Likewise.
9337         (force_to_mode): Likewise.
9338         (rtx_equal_for_field_assignment_p): Likewise.
9339         (gen_lowpart_for_combine): Likewise.
9340         (simplify_comparison): Likewise.
9341         * cse.c (equiv_constant): Likewise.
9342         * expmed.c (store_bit_field_1): Likewise.
9343         * final.c (alter_subreg): Likewise.
9344         * fwprop.c (propagate_rtx): Likewise.
9345         (forward_propagate_subreg): Likewise.
9346         * ira-conflicts.c (ira_build_conflicts): Likewise.
9347         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
9348         * lra-constraints.c (curr_insn_transform): Likewise.
9349         (split_reg): Likewise.
9350         * lra-eliminations.c (move_plus_up): Likewise.
9351         (lra_eliminate_regs_1): Likewise.
9352         * recog.c (general_operand): Likewise.
9353         * ree.c (combine_reaching_defs): Likewise.
9354         * reload.c (push_reload): Likewise.
9355         (find_reloads): Likewise.
9356         * reload1.c (elimination_effects): Likewise.
9357         (compute_reload_subreg_offset): Likewise.
9358         (choose_reload_regs): Likewise.
9359         * rtlanal.c (subreg_lsb_1): Likewise.
9360         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9361         (simplify_subreg): Likewise.
9362         * var-tracking.c (track_loc_p): Likewise.
9363         * emit-rtl.c (byte_lowpart_offset): Likewise.
9364         (paradoxical_subreg_p): Delete out-of-line definition.
9366 2017-08-22  Jeff Law  <law@redhat.com>
9368         PR tree-optimization/81741
9369         PR tree-optimization/71947
9370         * tree-ssa-dom.c: Include tree-inline.h.
9371         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
9372         equivalences if one is more expensive to compute than the other.
9373         * tree-ssa-scopedtables.h (class const_or_copies): Make
9374         record_const_or_copy_raw method private.
9375         (class avail_exprs_stack): New method simplify_binary_operation.
9376         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
9377         avail_exprs_stack::simplify_binary_operation as needed.
9378         (avail_exprs_stack::simplify_binary_operation): New function.
9380 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9382         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
9383         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
9384         (DOT_SYMBOLS): Likewise.
9385         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
9386         (RELOCATABLE_NEEDS_FIXUP): Likewise.
9387         (RS6000_ABI_NAME): Likewise.
9388         (TARGET_CMODEL): Likewise.
9389         (TOC_SECTION_ASM_OP): Likewise.
9390         (SET_CMODEL): New macro.
9391         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
9393 2017-08-22  Richard Biener  <rguenther@suse.de>
9395         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
9396         to allow for free-lang-data replacements similar to verify_type_variant.
9398 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
9399             Alan Hayward  <alan.hayward@arm.com>
9400             David Sherwood  <david.sherwood@arm.com>
9402         * config/aarch64/aarch64.md (casesi): Use DImode rather than
9403         VOIDmode for the LABEL_REF.
9405 2017-08-22  Richard Biener  <rguenther@suse.de>
9407         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
9409 2017-08-22  Richard Biener  <rguenther@suse.de>
9411         * common.opt (feliminate-dwarf2-dups): Ignore.
9412         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
9413         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
9414         same_die_p_wrap, compute_section_prefix,
9415         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
9416         (comdat_symbol_id, comdat_symbol_number): Likewise.
9417         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
9418         Likewise.
9419         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
9420         (output_die): Mark unreachable path unreachable.
9421         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
9422         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
9423         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
9424         (dwarf2out_early_finish): Likewise.
9426 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
9428         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
9430 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
9432         PR target/81910
9433         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
9434         not VAR_P. Filter attribute warnings with OPT_Wattributes.
9435         (avr_attribute_table) <io, io_low, address>: Initialize
9436         .decl_required with true.
9438 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9440         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
9441         undocumented debugging options.
9442         (-mvsx-scalar-double): Likewise.
9443         (-mallow-df-permute): Likewise.
9444         (-mvectorize-builtins): Likewise.
9445         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
9446         (rs6000_builtin_vectorized_function): Likewise.
9447         (rs6000_builtin_md_vectorized_function): Likewise.
9448         (rs6000_opt_vars): Likewise.
9450 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
9452         PR target/46091
9453         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
9454         (*btrq_imm): Rename from *btrq.
9455         (*btcq_imm): Rename from *btcq.
9456         (btsc): New code attribute.
9457         (*<btsc><mode>): New insn pattern.
9458         (*btr<mode>): Ditto.
9459         (*<btsc><mode>_mask): New insn_and_split pattern.
9460         (*btr<mode>_mask): Ditto.
9462 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
9463             Alan Hayward  <alan.hayward@arm.com>
9464             David Sherwood  <david.sherwood@arm.com>
9466         * function.c (pad_below): Simplify padding calculation.
9468 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
9469             Alan Hayward  <alan.hayward@arm.com>
9470             David Sherwood  <david.sherwood@arm.com>
9472         * target.def (function_prologue): Remove frame size argument.
9473         (function_epilogue): Likewise.
9474         * doc/tm.texi: Regenerate.
9475         * final.c (final_start_function): Update call to function_prologue.
9476         (final_end_function): Update call to function_epilogue.
9477         (default_function_pro_epilogue): Remove frame size argument.
9478         * output.h (default_function_pro_epilogue): Likewise.
9479         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
9480         (arm_output_function_prologue): Likewise.
9481         * config/frv/frv.c (frv_function_prologue): Likewise.
9482         (frv_function_epilogue): Likewise.
9483         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
9484         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
9485         (ia64_output_function_epilogue): Likewise.
9486         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
9487         (m32r_output_function_epilogue): Likewise.
9488         * config/microblaze/microblaze.c (microblaze_function_prologue)
9489         (microblaze_function_epilogue): Likewise.
9490         * config/mips/mips.c (mips_output_function_prologue): Likewise.
9491         (mips_output_function_epilogue): Likewise.
9492         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
9493         (mmix_target_asm_function_epilogue): Likewise.
9494         * config/msp430/msp430.c (msp430_start_function): Likewise.
9495         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
9496         (nds32_asm_function_epilogue): Likewise.
9497         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
9498         * config/pa/pa.c (pa_output_function_prologue): Likewise.
9499         (pa_output_function_epilogue): Likewise.
9500         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
9501         (rs6000_output_function_epilogue): Likewise.
9502         * config/rl78/rl78.c (rl78_start_function): Likewise.
9503         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
9504         (rs6000_output_function_epilogue): Likewise.
9505         * config/rx/rx.c (rx_output_function_prologue): Likewise.
9506         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
9507         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
9508         (sparc_asm_function_epilogue): Likewise.
9510 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
9512         * tree.h (type_has_mode_precision_p): New function.
9513         * convert.c (convert_to_integer_1): Use it.
9514         * expr.c (expand_expr_real_2): Likewise.
9515         (expand_expr_real_1): Likewise.
9516         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
9517         * match.pd: Likewise.
9518         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
9519         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
9520         * tree-tailcall.c (process_assignment): Likewise.
9521         * tree-vect-loop.c (vectorizable_reduction): Likewise.
9522         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
9523         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
9524         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
9525         (vectorizable_assignment): Likewise.
9526         (vectorizable_shift): Likewise.
9527         (vectorizable_operation): Likewise.
9528         * tree-vrp.c (register_edge_assert_for_2): Likewise.
9530 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
9532         * match.pd: Add pow (C, x) simplification.
9534 2017-08-21  Richard Biener  <rguenther@suse.de>
9536         PR tree-optimization/81900
9537         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
9538         for blocks with abnormal predecessors.
9539         (compute_antic): Do not set visited flag prematurely.
9541 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
9543         PR target/79883
9544         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
9546 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
9548         * stor-layout.h (vector_type_mode): Move to...
9549         * tree.h (vector_type_mode): ...here.
9550         * stor-layout.c (vector_type_mode): Move to...
9551         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
9553 2017-08-21  Richard Biener  <rguenther@suse.de>
9555         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
9556         register_external_die hooks.
9557         (debug_false_tree_charstarstar_uhwistar): Declare.
9558         (debug_nothing_tree_charstar_uhwi): Likewise.
9559         * debug.c (do_nothing_debug_hooks): Adjust.
9560         (debug_false_tree_charstarstar_uhwistar): New do nothing.
9561         (debug_nothing_tree_charstar_uhwi): Likewise.
9562         * dbxout.c (dbx_debug_hooks): Adjust.
9563         (xcoff_debug_hooks): Likewise.
9564         * sdbout.c (sdb_debug_hooks): Likewise.
9565         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9566         * dwarf2out.c (macinfo_label_base): New global.
9567         (dwarf2out_register_external_die): New function for the
9568         register_external_die hook.
9569         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
9570         (dwarf2_debug_hooks): Use them.
9571         (dwarf2_lineno_debug_hooks): Adjust.
9572         (struct die_struct): Add with_offset flag.
9573         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
9574         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
9575         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
9576         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
9577         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
9578         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
9579         defining section names for the early LTO debug variants.
9580         (reset_indirect_string): New helper.
9581         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
9582         (print_dw_val): Add support for offsetted symbol references.
9583         (get_ultimate_context): Split out from is_cxx.
9584         (is_cxx): Use get_ultimate_context.
9585         (is_fortran): Add decl overload.
9586         (compute_comp_unit_symbol): Split out worker from
9587         compute_section_prefix.
9588         (compute_section_prefix): Call compute_comp_unit_symbol and
9589         set comdat_type_p here.
9590         (output_die): Skip DIE symbol output for the LTO added one.
9591         Handle DIE symbol references with offset.
9592         (output_comp_unit): Guard section name mangling properly.
9593         For LTO debug sections emit a symbol at the section beginning
9594         which we use to refer to its DIEs.
9595         (add_abstract_origin_attribute): For DIEs registered via
9596         dwarf2out_register_external_die directly refer to the early
9597         DIE rather than indirectly through the shadow one we created.
9598         Remove obsolete call to dwarf2out_abstract_function for
9599         non-function/block origins.
9600         (gen_array_type_die): When generating early LTO debug do
9601         not emit DW_AT_string_length.
9602         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
9603         late when in LTO.  As suggested place a gcc_unreachable for
9604         the DECL_ABSTRACT_P case.
9605         (gen_subprogram_die): Avoid another specification DIE
9606         for early built declarations/definitions for the late LTO case.
9607         (gen_variable_die): Add type references for late duplicated VLA dies
9608         when in late LTO.
9609         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
9610         we have the abstract instance already.
9611         (process_scope_var): Adjust decl DIE contexts in LTO which
9612         first puts them in limbo.
9613         (gen_decl_die): Do not generate type DIEs late apart from
9614         types for VLAs or for decls we do not yet have a DIE.  Do not
9615         call dwarf2out_abstract_function late.
9616         (dwarf2out_early_global_decl): Make sure to create DIEs
9617         for abstract instances of a decl first.
9618         (dwarf2out_late_global_decl): Adjust comment.
9619         (output_macinfo_op): With multiple macro sections use
9620         macinfo_label_base to distinguish labels.
9621         (output_macinfo): Likewise.  Update macinfo_label_base.
9622         Pass in the line info label.
9623         (note_variable_value_in_expr): When generating LTO resolve
9624         all variable values here by generating DIEs as needed.
9625         (init_sections_and_labels): Add early LTO debug flag parameter
9626         and generate different sections and names if set.  Add generation
9627         counter for the labels so we can have multiple of them.
9628         (reset_dies): Helper to allow DIEs to be output multiple times.
9629         (dwarf2out_finish): When outputting DIEs to the fat part of an
9630         LTO object first reset DIEs.
9631         (dwarf2out_early_finish): Output early DIEs when generating LTO.
9632         (modified_type_die): Check for decl_ultimate_origin being self
9633         before recursing.
9634         (gen_type_die_with_usage): Likewise.
9635         (gen_typedef_die): Allow decl_ultimate_origin being self.
9636         (set_decl_abstract_flags): Remove.
9637         (set_block_abstract_flags): Likewise.
9638         (dwarf2out_abstract_function): Treat the early generated DIEs
9639         as the abstract copy and only add DW_AT_inline and
9640         DW_AT_artificial here and call set_decl_origin_self.
9641         If the DIE has an abstract origin don't do anything.
9642         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
9643         if we have none yet (Go fails to build one, PR78628).
9644         (variably_modified_type_p): Prevent endless recursion for Ada
9645         cyclic pointer types.
9646         * lto-streamer-in.c: Include debug.h.
9647         (dref_queue): New global.
9648         (lto_read_tree_1): Stream in DIE references.
9649         (lto_input_tree): Register DIE references.
9650         (input_function): Stream DECL_DEBUG_ARGS.
9651         * lto-streamer-out.c: Include debug.h.
9652         (lto_write_tree_1): Output DIE references.
9653         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
9654         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
9655         (output_function): Stream DECL_DEBUG_ARGS.
9656         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9657         Stream DECL_ABSTRACT_ORIGIN.
9658         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
9659         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
9660         DECL_CONTEXT for file-scope decls.
9661         * lto-streamer.h (struct dref_entry): Declare.
9662         (dref_queue): Likewise.
9663         * cfgexpand.c (pass_expand::execute): Do not call the
9664         outlining_inline_function hook here.
9665         * lto-wrapper.c (debug_obj): New global.
9666         (tool_cleanup): Unlink it if required.
9667         (debug_objcopy): New function.
9668         (run_gcc): Handle early debug sections in the IL files by
9669         extracting them to separate files, partially linkin them and
9670         feeding the result back as result to the linker.
9671         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
9672         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
9673         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
9674         sections into a separate segment.
9675         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
9676         segments.
9677         (darwin_asm_dwarf_section): Likewise.
9678         (darwin_asm_output_dwarf_offset): Likewise.
9679         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
9681 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
9682             Alan Hayward  <alan.hayward@arm.com>
9683             David Sherwood  <david.sherwood@arm.com>
9685         * read-md.h (md_reader::record_potential_iterator_use): Replace
9686         pointer argument with an rtx and an index.
9687         * read-rtl.c (iterator_group::apply_iterator): Likewise.
9688         (apply_mode_iterator): Likewise.
9689         (apply_code_iterator): Likewise.
9690         (apply_int_iterator): Likewise.
9691         (apply_subst_iterator): Likewise.
9692         (record_iterator_use): Likewise.
9693         (record_attribute_use): Likewise.
9694         (md_reader::record_potential_iterator_use): Likewise.  Update calls
9695         to record_iterator_use and apply_iterator.
9696         (iterator_use): Replace ptr with x and index.
9697         (attribute_use): Likewise.
9698         (apply_attribute_uses): Update calls to apply_iterator.
9699         (apply_iterators): Likewise.  Update initialization of iterator_use.
9700         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
9701         and record_potential_iterator_use.
9702         (rtx_reader::read_rtx_operand): Likewise.
9704 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
9705             Alan Hayward  <alan.hayward@arm.com>
9706             David Sherwood  <david.sherwood@arm.com>
9708         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
9709         CONST_WIDE_INT.
9711 2017-08-21  Richard Biener  <rguenther@suse.de>
9713         PR middle-end/81884
9714         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
9715         at struct end conservatively when comparing common bases.
9717 2017-08-21  Richard Biener  <rguenther@suse.de>
9719         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
9720         (mem_ref_in_stmt): Remove.
9721         (determine_max_movement): Use ref index to get at the reference.
9722         (invariantness_dom_walker::before_dom_children): Deal with
9723         lim data already initialized.
9724         (gather_mem_refs_stmt): Initialize lim data and record ref index.
9726 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
9728         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
9729         (TARGET_ISA_ROUND): Ditto.
9730         (TARGET_ROUND): Ditto.
9731         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
9732         * config/i386/i386.md: Ditto.
9733         * config/i386/sse.md: Ditto.
9734         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
9735         with OPTION_MASK_ISA_SSE4_1.
9737 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
9739         PR target/81894
9740         * doc/extend.texi (x86 Built-in Functions): Correct the name of
9741         __builtin_ia32_lzcnt_u16.
9743 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
9745         PR target/80210
9746         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
9747         (rs6000_set_current_function): Rewrite function to use it.
9749 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
9751         PR c/53037
9752         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
9753         and TYPE_WARN_IF_NOT_ALIGN.
9754         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
9755         (handle_warn_if_not_align): New.
9756         (place_union_field): Call handle_warn_if_not_align.
9757         (place_field): Call handle_warn_if_not_align.
9758         Copy TYPE_WARN_IF_NOT_ALIGN.
9759         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
9760         (layout_type): Likewise.
9761         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
9762         spare to 18.
9763         (tree_decl_common): Add warn_if_not_align.
9764         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
9765         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
9766         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
9767         (DECL_WARN_IF_NOT_ALIGN): Likewise.
9768         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
9769         * doc/extend.texi: Document warn_if_not_aligned attribute.
9770         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
9772 2017-08-17  Martin Liska  <mliska@suse.cz>
9774         PR bootstrap/81864
9775         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
9776         (get_data_dependence): Use it as pointer type.
9777         (distribute_loop): Likewise.
9779 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9781         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
9782         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
9783         (p8_vmrgow_<mode>_direct): New define_insn.
9784         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
9785         handle endianness for vmrgew and vmrgow permute patterns.
9787 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
9789         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
9790         * config/rs6000/rs6000-cpus.def: Remove comment.
9791         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
9792         (POWERPC_MASKS): Likewise.
9793         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
9794         use of TARGET_VSX_TIMODE.
9795         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
9796         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
9797         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
9798         (rs6000_option_override_internal): Remove dead code.
9799         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
9800         (rs6000_legitimize_reload_address): Likewise.
9801         (rs6000_legitimate_address_p): Likewise.
9802         (rs6000_opt_masks): Delete "vsx-timode".
9803         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
9804         from function comment.
9805         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
9806         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
9807         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
9808         condition.
9809         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
9810         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
9811         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
9812         (VSX_TI): Likewise.
9813         (VSX_M): Likewise.
9814         (define_peephole2): Likewise.
9816 2017-08-17  Martin Sebor  <msebor@redhat.com>
9818         PR c/81859
9819         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
9820         past the end of an array.
9821         (test_pp_format): Add test cases.
9823 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
9825         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
9826         missing ECF_NOTHROW flags.
9828 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
9830         PR target/72804
9831         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
9832         operands residing in integer registers.
9833         (*vsx_le_perm_load_<mode>): Likewise.
9834         (*vsx_le_perm_store_<mode>): Likewise.
9835         (define_peephole2): Add peepholes to optimize the above.
9837 2017-08-17  Marek Polacek  <polacek@redhat.com>
9839         PR middle-end/81814
9840         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
9841         to mimic what shorten_compare did.  Change the return type to bool.
9842         (fold_cond_expr_with_comparison): Update call to
9843         operand_equal_for_comparison_p.
9844         (fold_ternary_loc): Likewise.
9846 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
9848         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
9849         register.
9850         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
9852 2017-08-17  Richard Biener  <rguenther@suse.de>
9854         * tree-ssa-structalias.c (solve_graph): When propagating
9855         to successors update the graphs succ edges and avoid duplicate work.
9857 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
9859         PR target/81861
9860         * config/i386/i386.c (ix86_option_override_internal): Save target
9861         specific options after ix86_stack_protector_guard_reg was changed.
9863 2017-08-17  Richard Biener  <rguenther@suse.de>
9865         PR tree-optimization/81827
9866         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
9867         (new_var_info): Initialize it conservatively.
9868         (get_call_vi): Mark register vars.
9869         (new_scalar_tmp_constraint_exp): Likewise.
9870         (handle_rhs_call): Likewise.
9871         (handle_const_call): Likewise.
9872         (create_function_info_for): Likewise.
9873         (solve_constraints): Sort varinfos to separate register from
9874         non-register vars to pack points-to solution bitmaps during
9875         iteration.
9877 2017-08-17  Marek Polacek  <polacek@redhat.com>
9879         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
9881 2017-08-17  Richard Biener  <rguenther@suse.de>
9883         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
9884         to true when overflow is undefined and we saturated the result.
9886 2017-08-17  Alan Modra  <amodra@gmail.com>
9888         PR target/80938
9889         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
9890         Don't use store multiple if only one reg needs saving.
9891         (interesting_frame_related_regno): New function.
9892         (rs6000_frame_related): Don't emit frame info for regs that
9893         don't need saving.
9894         (rs6000_emit_epilogue): Likewise.
9896 2017-08-16  Nathan Sidwell  <nathan@acm.org>
9898         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
9899         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
9900         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
9901         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
9902         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
9903         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
9904         (verify_type): Adjust for TYPE_BINFO move.
9905         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
9906         process TYPE_BINFO directly.
9907         (hash_tree): Likewise.
9908         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
9909         Likewise.
9910         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
9911         Likewise.
9913 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
9915         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
9917 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
9919         PR target/46091
9920         * config/i386/i386.md (*anddi_1_btr): Change predicates of
9921         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
9922         Add ix86_binary_operator_ok to insn constraint.
9923         (*iordi_1_bts): Ditto.
9924         (*xordi_1_btc): Ditto.
9925         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
9926         Update corresponding peephole2 pattern.
9927         (*btrq): Ditto.
9928         (*btcq): Ditto.
9930 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
9932         PR tree-optimization/81832
9933         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
9934         copy loop header which has IFN_LOOP_DIST_ALIAS call.
9936 2017-08-16  Marek Polacek  <polacek@redhat.com>
9938         PR middle/81695
9939         * fold-const.c (fold_indirect_ref_1): Restore original behavior
9940         regarding size_zero_node.
9942 2017-08-16  Martin Liska  <mliska@suse.cz>
9944         PR target/81753
9945         * config.gcc: Respect previously set extra_objs in case
9946         of darwin target.
9948 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
9950         PR tree-optimization/81835
9951         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
9952         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
9953         not depend on the phi.
9955 2017-08-16  Alan Modra  <amodra@gmail.com>
9957         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
9958         dead code.
9960 2017-08-16  Alan Modra  <amodra@gmail.com>
9962         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
9963         (save_reg_p): ..into this.  Update all callers.
9964         (first_reg_to_save): Simplify.
9966 2017-08-16  Alan Modra  <amodra@gmail.com>
9968         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
9969         fixed regs.
9971 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
9973         PR target/78460
9974         PR target/67712
9975         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
9976         constant count if that count is less than 32.
9978 2017-08-15  Nathan Sidwell  <nathan@acm.org>
9980         * gcc.c (execute): Emit friendlier message if inferior is killed
9981         by an external cause.
9983 2017-08-15  Richard Biener  <rguenther@suse.de>
9985         PR tree-optimization/81790
9986         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
9987         CONSTRUCTORs from simplifying and VN.
9989 2017-08-14  Martin Sebor  <msebor@redhat.com>
9991         * builtin-attrs.def: Add comments.
9993 2017-08-14  Martin Sebor  <msebor@redhat.com>
9995         PR c/81117
9996         * doc/extend.texi (attribute nonstring): Document new attribute.
9998 2017-08-14  Martin Sebor  <msebor@redhat.com>
10000         PR c/81117
10001         * tree-diagnostic.c (default_tree_printer): Handle %G.
10002         * gimple-pretty-print.h (percent_G_format): Declare new function.
10003         * gimple-pretty-print.c (percent_G_format): Define.
10004         * tree-pretty-print.c (percent_K_format): Add argument.
10006 2017-08-14  Martin Sebor  <msebor@redhat.com>
10008         PR translation/79998
10009         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
10010         Remove a stray space.
10012 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
10014         PR target/46091
10015         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
10016         (*iordi_1_bts): Ditto.
10017         (*xordi_1_btc): Ditto.
10019 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10021         PR target/79845
10022         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
10023         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10024         Likewise.
10025         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
10026         quoted strings, and make more translator-friendly.
10027         (darwin_rs6000_override_options): Likewise.
10028         (rs6000_option_override_internal): Likewise.
10029         (rs6000_return_in_memory): Fix overlong line.
10030         (init_cmulative_args): Use quoted strings, and make more
10031         translator-friendly.
10032         (rs6000_pass_by_reference): Fix overlong line.
10033         (def_builtin): Use quoted strings.
10034         (altivec_expand_predicate_builtin): Use quoted strings, and make
10035         more translator-friendly.
10036         (htm_expand_builtin): Use quoted strings.
10037         (cpu_expand_builtin): Use quoted strings, and make more
10038         translator-friendly.
10039         (altivec_expand_builtin): Likewise.
10040         (paired_expand_predicate_builtin): Likewise.
10041         (rs6000_invalid_builtin): Likewise.
10042         (builtin_function_type): Use quoted strings.
10043         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
10044         more translator-friendly.
10045         (rs6000_trampoline_init): Likewise.
10046         (rs6000_handle_altivec_attribute): Likewise.
10047         (rs6000_inner_target_options): Use quoted strings.
10048         (rs6000_disable_incompatible_switches): Likewise.
10049         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
10050         strings, and make more translator-friendly.
10051         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
10053 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
10055         PR tree-optimization/81799
10056         * tree-loop-distribution.c (version_loop_by_alias_check): Force
10057         cond_expr to simple gimple operand.
10059 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
10061         PR middle-end/46932
10062         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
10064 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
10066         PR target/81754
10067         PR target/81268
10068         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
10069         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
10070         TARGET_GASISR_PROLOGUES.
10071         * config/avr/avr.c (avr_option_override): Same.
10072         (avr_pass_pre_proep::execute): Same.
10074 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
10076         PR target/81820
10077         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
10078         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
10080 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
10082         * config/i386/i386.md (*load_tp_<mode>): Redefine as
10083         define_insn_and_split.  Split to a memory load from 0 in
10084         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
10085         using PTR mode iterator.
10086         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
10087         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
10088         (*add_tp_<mode>): Redefine as define_insn_and_split.
10089         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
10090         address space.  Merge with *add_tp_x32 using PTR mode iterator.
10091         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
10092         Split to an add with a  memory load from 0 in
10093         DEFAULT_TLS_SEG_REG address space.
10095 2017-08-12  Andrew Pinski  <apinski@cavium.com>
10097         * config/aarch64/aarch64-option-extensions.def (rdma):
10098         Fix feature string to what Linux prints out in /proc/cpuinfo.
10100 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
10102         PR ada/79542
10103         * dwarf2out.c (modified_type_die): For C typedef types that have
10104         an ultimate origin, process the ultimate origin instead of the
10105         input type.
10106         (gen_typedef_die): Assert that input DECLs have no ultimate
10107         origin.
10108         (gen_type_die_with_usage): For typedef variants that have an
10109         ultimate origin, just call gen_decl_die on the original DECL.
10110         (process_scope_var): Avoid creating DIEs for local typedefs and
10111         concrete static variables.
10113 2017-08-12  Alan Modra  <amodra@gmail.com>
10115         PR target/81170
10116         PR target/81295
10117         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
10118         match gnu-user.h startfile.
10119         (ENDFILE_LINUX_SPEC): Similarly.
10121 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
10123         PR lto/81430
10124         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
10125         Remove function.
10126         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
10128 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
10129         * config/aarch64/aarch64.md (mov<mode>): Change.
10130         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
10131         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
10132         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
10134 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
10136         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
10137         for storage order barriers.
10139 2017-08-11  Martin Liska  <mliska@suse.cz>
10141         PR tree-opt/79987
10142         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
10143         variables of void type.
10145 2017-08-11  Martin Liska  <mliska@suse.cz>
10147         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
10148         TARGET_SUPPORTS_ALIASES.
10149         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
10150         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
10151         (optimize_weakref): Likewise.
10152         * symtab.c (symtab_node::noninterposable_alias): Likewise.
10153         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
10154         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
10156 2017-08-11  Martin Liska  <mliska@suse.cz>
10158         PR ipa/81213
10159         * config/i386/i386.c (make_resolver_func): Do complete
10160         refactoring of the function.
10162 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
10164         PR target/81708
10165         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
10166         * config/i386/i386.c (ix86_stack_protect_guard): Use
10167         ix86_stack_protect_guard_symbol_str to generate varible declaration.
10168         * doc/invoke.texi (x86 Options): Document
10169         -mstack-protector-guard-symbol= option.
10171 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
10173         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
10174         * config/i386/i386.c (ix86_split_stack_guard): New function.
10175         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
10176         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
10177         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
10178         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
10179         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
10180         (split_stack_space_check): Call ix86_split_stack_guard.
10182 2017-08-10  Martin Sebor  <msebor@redhat.com>
10184         * print-tree.c (print_node): Print location using the established
10185         format %s:%i%i.
10186         Replace spaces with colons.
10187         (debug_raw, debug): Ditto.
10189 2017-08-10  Martin Sebor  <msebor@redhat.com>
10191         PR c++/81586
10192         * pretty-print.c (pp_format): Correct the handling of %s precision.
10194 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
10196         PR target/81736
10197         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
10198         to ...
10199         (ix86_finalize_stack_frame_flags): This.  Also clear
10200         frame_pointer_needed if -fno-omit-frame-pointer is used without
10201         stack access.
10202         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
10203         with ix86_finalize_stack_frame_flags.
10204         (ix86_expand_epilogue): Likewise.
10205         (ix86_expand_split_stack_prologue): Likewise.
10206         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
10208 2017-08-10  Martin Liska  <mliska@suse.cz>
10210         PR c++/81355
10211         * c-attribs.c (handle_target_attribute):
10212         Report warning for an empty string argument of target attribute.
10214 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
10216         PR c/81687
10217         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
10218         LABEL_DECLs.
10219         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
10220         or DECL_NONLOCAL labels.
10221         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
10222         or DECL_NONLOCAL labels here.
10224 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
10226         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
10227         to indicate when early gimple folding has been disabled.
10228         (rs6000_gimple_fold_builtin): Add debug content.
10229         (rs6000_invalid_builtin): Fix whitespace.
10230         (rs6000_expand_builtin): Fix whitespace.
10231         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
10233 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
10235         PR target/80938
10236         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
10237         SAVE_MULTIPLE if not all the registers that saves, should be saved.
10239 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
10241         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
10242         (qdf24xx): Likewise.
10243         * config/aarch64/aarch64.md: Include falkor.md.
10244         * config/aarch64/falkor.md: New.
10246 2017-08-09  Marek Polacek  <polacek@redhat.com>
10248         PR c/81233
10249         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
10250         * diagnostic.c (emit_diagnostic): Add a comment.
10251         (emit_diagnostic_valist): New function.
10253 2017-08-09  Marek Polacek  <polacek@redhat.com>
10255         PR c/81417
10256         * input.c (make_location): New overload.
10257         * input.h (make_location): Declare.
10259 2017-08-08  Alan Modra  <amodra@gmail.com>
10260             H.J. Lu  <hongjiu.lu@intel.com>
10262         PR driver/81523
10263         * gcc.c (NO_PIE_SPEC): Delete.
10264         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
10265         exclusion..
10266         (LINK_PIE_SPEC): ..to here.
10267         (LINK_COMMAND_SPEC): Support -no-pie.
10268         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
10269         chain of crtbegin*.o selection, update for PIE_SPEC changes and
10270         format.
10271         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
10272         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
10273         (ENDFILE_CRTEND_SPEC): Similarly.
10275 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
10277         PR target/81708
10278         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
10279         (mstack-protector-guard-offset=): Ditto.
10280         * config/i386/i386.c (ix86_option_override): Handle
10281         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
10282         options.
10283         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
10284         ix86_stack_protect_guard_offset variables.
10285         (TARGET_STACK_PROTECT_GUARD): Always define.
10286         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
10287         and -mstack-protector-guard-offset= options.
10289 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
10291         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
10292         boundary case for the last candidate.
10294 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
10296         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
10297         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
10299 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
10301         PR middle-end/19706
10302         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
10303         * config/aarch64/aarch64-builtins.c
10304         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
10305         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
10306         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
10308 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
10309             Andrew Pinski <pinskia@gmail.com>
10311         PR middle-end/19706
10312         * internal-fn.def (XORSIGN): New.
10313         * optabs.def (xorsign_optab): New.
10314         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
10315         (convert_expand_mult_copysign): New.
10316         (pass_optimize_widening_mul::execute): Call
10317         convert_expand_mult_copysign.
10319 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10321         PR tree-optimization/81354
10322         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
10323         Insert on edges rather than explicitly creating landing pads.
10324         (analyze_candidates_and_replace): Commit edge inserts.
10326 2017-08-08  Richard Biener  <rguenther@suse.de>
10328         PR middle-end/81719
10329         * tree-ssa-loop-niter.c: Include tree-dfa.h.
10330         (expand_simple_operations): Also look through ADDR_EXPRs with
10331         MEM_REF bases treating them as POINTER_PLUS_EXPR.
10333 2017-08-08  Richard Biener  <rguenther@suse.de>
10335         PR tree-optimization/81723
10336         * tree-vect-slp.c (struct bst_traits): New hash traits.
10337         (bst_fail): New global.
10338         (vect_build_slp_tree_2): New worker, split out from ...
10339         (vect_build_slp_tree): ... this now wrapping it with using
10340         bst_fail set to cache SLP tree build fails.  Properly handle
10341         max_tree_size.
10342         (vect_analyze_slp_instance): Allocate and free bst_fail.
10344 2017-08-08  Martin Liska  <mliska@suse.cz>
10346         PR tree-opt/81696
10347         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
10348         LABEL_DECLs that can be from a different function.
10350 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
10352         PR tree-optimization/81744
10353         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
10354         loop's number of iterations.
10356 2017-08-08  Martin Liska  <mliska@suse.cz>
10358         * asan.c: Include header files.
10359         * attribs.c (build_decl_attribute_variant): New function moved
10360         from tree.[ch].
10361         (build_type_attribute_qual_variant): Likewise.
10362         (cmp_attrib_identifiers): Likewise.
10363         (simple_cst_list_equal): Likewise.
10364         (omp_declare_simd_clauses_equal): Likewise.
10365         (attribute_value_equal): Likewise.
10366         (comp_type_attributes): Likewise.
10367         (build_type_attribute_variant): Likewise.
10368         (lookup_ident_attribute): Likewise.
10369         (remove_attribute): Likewise.
10370         (merge_attributes): Likewise.
10371         (merge_type_attributes): Likewise.
10372         (merge_decl_attributes): Likewise.
10373         (merge_dllimport_decl_attributes): Likewise.
10374         (handle_dll_attribute): Likewise.
10375         (attribute_list_equal): Likewise.
10376         (attribute_list_contained): Likewise.
10377         * attribs.h (lookup_attribute): New function moved from tree.[ch].
10378         (lookup_attribute_by_prefix): Likewise.
10379         * bb-reorder.c: Include header files.
10380         * builtins.c: Likewise.
10381         * calls.c: Likewise.
10382         * cfgexpand.c: Likewise.
10383         * cgraph.c: Likewise.
10384         * cgraphunit.c: Likewise.
10385         * convert.c: Likewise.
10386         * dwarf2out.c: Likewise.
10387         * final.c: Likewise.
10388         * fold-const.c: Likewise.
10389         * function.c: Likewise.
10390         * gimple-expr.c: Likewise.
10391         * gimple-fold.c: Likewise.
10392         * gimple-pretty-print.c: Likewise.
10393         * gimple.c: Likewise.
10394         * gimplify.c: Likewise.
10395         * hsa-common.c: Likewise.
10396         * hsa-gen.c: Likewise.
10397         * internal-fn.c: Likewise.
10398         * ipa-chkp.c: Likewise.
10399         * ipa-cp.c: Likewise.
10400         * ipa-devirt.c: Likewise.
10401         * ipa-fnsummary.c: Likewise.
10402         * ipa-inline.c: Likewise.
10403         * ipa-visibility.c: Likewise.
10404         * ipa.c: Likewise.
10405         * lto-cgraph.c: Likewise.
10406         * omp-expand.c: Likewise.
10407         * omp-general.c: Likewise.
10408         * omp-low.c: Likewise.
10409         * omp-offload.c: Likewise.
10410         * omp-simd-clone.c: Likewise.
10411         * opts-global.c: Likewise.
10412         * passes.c: Likewise.
10413         * predict.c: Likewise.
10414         * sancov.c: Likewise.
10415         * sanopt.c: Likewise.
10416         * symtab.c: Likewise.
10417         * toplev.c: Likewise.
10418         * trans-mem.c: Likewise.
10419         * tree-chkp.c: Likewise.
10420         * tree-eh.c: Likewise.
10421         * tree-into-ssa.c: Likewise.
10422         * tree-object-size.c: Likewise.
10423         * tree-parloops.c: Likewise.
10424         * tree-profile.c: Likewise.
10425         * tree-ssa-ccp.c: Likewise.
10426         * tree-ssa-live.c: Likewise.
10427         * tree-ssa-loop.c: Likewise.
10428         * tree-ssa-sccvn.c: Likewise.
10429         * tree-ssa-structalias.c: Likewise.
10430         * tree-ssa.c: Likewise.
10431         * tree-streamer-in.c: Likewise.
10432         * tree-vectorizer.c: Likewise.
10433         * tree-vrp.c: Likewise.
10434         * tsan.c: Likewise.
10435         * ubsan.c: Likewise.
10436         * varasm.c: Likewise.
10437         * varpool.c: Likewise.
10438         * tree.c: Remove functions moved to attribs.[ch].
10439         * tree.h: Likewise.
10440         * config/aarch64/aarch64.c: Add attrs.h header file.
10441         * config/alpha/alpha.c: Likewise.
10442         * config/arc/arc.c: Likewise.
10443         * config/arm/arm.c: Likewise.
10444         * config/avr/avr.c: Likewise.
10445         * config/bfin/bfin.c: Likewise.
10446         * config/c6x/c6x.c: Likewise.
10447         * config/cr16/cr16.c: Likewise.
10448         * config/cris/cris.c: Likewise.
10449         * config/darwin.c: Likewise.
10450         * config/epiphany/epiphany.c: Likewise.
10451         * config/fr30/fr30.c: Likewise.
10452         * config/frv/frv.c: Likewise.
10453         * config/ft32/ft32.c: Likewise.
10454         * config/h8300/h8300.c: Likewise.
10455         * config/i386/winnt.c: Likewise.
10456         * config/ia64/ia64.c: Likewise.
10457         * config/iq2000/iq2000.c: Likewise.
10458         * config/lm32/lm32.c: Likewise.
10459         * config/m32c/m32c.c: Likewise.
10460         * config/m32r/m32r.c: Likewise.
10461         * config/m68k/m68k.c: Likewise.
10462         * config/mcore/mcore.c: Likewise.
10463         * config/microblaze/microblaze.c: Likewise.
10464         * config/mips/mips.c: Likewise.
10465         * config/mmix/mmix.c: Likewise.
10466         * config/mn10300/mn10300.c: Likewise.
10467         * config/moxie/moxie.c: Likewise.
10468         * config/msp430/msp430.c: Likewise.
10469         * config/nds32/nds32-isr.c: Likewise.
10470         * config/nds32/nds32.c: Likewise.
10471         * config/nios2/nios2.c: Likewise.
10472         * config/nvptx/nvptx.c: Likewise.
10473         * config/pa/pa.c: Likewise.
10474         * config/pdp11/pdp11.c: Likewise.
10475         * config/powerpcspe/powerpcspe.c: Likewise.
10476         * config/riscv/riscv.c: Likewise.
10477         * config/rl78/rl78.c: Likewise.
10478         * config/rx/rx.c: Likewise.
10479         * config/s390/s390.c: Likewise.
10480         * config/sh/sh.c: Likewise.
10481         * config/sol2.c: Likewise.
10482         * config/sparc/sparc.c: Likewise.
10483         * config/spu/spu.c: Likewise.
10484         * config/stormy16/stormy16.c: Likewise.
10485         * config/tilegx/tilegx.c: Likewise.
10486         * config/tilepro/tilepro.c: Likewise.
10487         * config/v850/v850.c: Likewise.
10488         * config/vax/vax.c: Likewise.
10489         * config/visium/visium.c: Likewise.
10490         * config/xtensa/xtensa.c: Likewise.
10492 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
10494         PR target/81593
10495         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
10496         constraints since the -mupper-regs-* switches have been
10497         eliminated.
10498         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
10499         into a vector from a double word element that was extracted from
10500         another vector, and eliminate extra XXPERMDI instructions.
10501         (vsx_concat_<mode>_2): Likewise.
10502         (vsx_concat_<mode>_3): Likewise.
10503         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
10504         concat to allow optimizing inserts from previous extracts.
10506 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
10508         * config/i386/i386.c (ix86_stack_protect_guard): Generate
10509         memory reference to a SSP offset in TLS address space.
10510         (ix86_print_operand) <case '@'>: Remove.
10511         (ix86_print_operand_punct_valid_p): Remove '@' code.
10512         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
10513         UNSPEC_SP_TLS_TEST.
10514         (stack_tls_protect_set_<mode>): Remove.
10515         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
10516         (stack_tls_protect_test_<mode>): Remove.
10517         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
10519 2017-08-07  Olivier Hainque  <hainque@adacore.com>
10521         PR target/81755
10522         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
10524 2017-08-07  Douglas Rupp  <rupp@adacore.com>
10526         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
10527         variable was referenced as multidir in command.
10529 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
10531         PR c/69389
10532         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
10533         BIT_FIELD_REF.
10535 2017-08-07  Martin Liska  <mliska@suse.cz>
10537         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
10538         * config/rl78/rl78.c: Add include of attribs.h.
10539         * config/sh/sh.c: Likewise.
10540         * config/v850/v850.c: Likewise.
10542 2017-08-07  Tom de Vries  <tom@codesourcery.com>
10544         PR middle-end/78266
10545         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
10547 2017-08-07  Martin Liska  <mliska@suse.cz>
10549         * config/mips/mips.c: Include attribs.h.
10551 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
10553         PR fortran/68829
10554         * doc/invoke.texi: Document change in behvaior for -Ofast for
10555         Fortran.
10557 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
10559         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
10560         Use gen_frame_mem.
10561         (aarch64_pop_regs): Likewise.
10562         (aarch64_gen_load_pair): Likewise.
10563         (aarch64_save_callee_saves): Likewise.
10564         (aarch64_restore_callee_saves): Likewise.
10566 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
10568         * config/i386/i386.c: Revert the last change.
10570 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
10572         PR target/81736
10573         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
10574         to ...
10575         (ix86_finalize_stack_frame_flags): This.  Also clear
10576         frame_pointer_needed if -fno-omit-frame-pointer is used without
10577         stack access.
10578         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
10579         with ix86_finalize_stack_frame_flags.
10580         (ix86_expand_epilogue): Likewise.
10581         (ix86_expand_split_stack_prologue): Likewise.
10583 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
10585         PR target/81743
10586         * config/i386/i386.c (get_builtin_code_for_version): Set priority
10587         to P_AES for Westmere.
10589 2017-08-07  Jonathan Yong  <10walls@gmail.com>
10591         * config/i386/mingw.opt (fset-stack-executable): Removed.
10592         * config/i386/cygming.opt (fset-stack-executable): Moved
10593         from mingw.opt.
10594         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
10596 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
10598         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
10600 2017-08-07  Marek Polacek  <polacek@redhat.com>
10602         PR middle-end/81737
10603         * fold-const.c (fold_indirect_ref_1): Check type_domain.
10605 2017-08-07  Martin Liska  <mliska@suse.cz>
10607         * attribs.h (canonicalize_attr_name): New function.
10608         (cmp_attribs): Move from c-format.c and adjusted.
10609         (is_attribute_p): Moved from tree.h.
10610         * tree-inline.c: Add new includes.
10611         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
10612         (private_is_attribute_p): Remove.
10613         (private_lookup_attribute): Likewise.
10614         (private_lookup_attribute_by_prefix): Simplify.
10615         (remove_attribute): Use is_attribute_p.
10616         * tree.h: Remove removed declarations.
10618 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
10620         PR middle-end/81698
10621         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
10622         instead of computing it in the function.  Formatting fix.
10623         (expand_case): Don't rely on default_edge being the first edge,
10624         clear it if removing it, pass default_edge to
10625         emit_case_dispatch_table.
10626         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
10627         fix.
10629 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
10631         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
10632         insn in the function, emit NOP after the insn.
10634 2017-08-06  Tom de Vries  <tom@codesourcery.com>
10636         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
10637         and element loops.
10639 2017-08-06  Tom de Vries  <tom@codesourcery.com>
10641         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
10642         loop.
10644 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
10646         PR tree-optimization/57371
10647         * match.pd: New pattern.
10649 2017-08-04  Marek Polacek  <polacek@redhat.com>
10651         PR middle-end/81695
10652         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
10653         perform the computation in offset_int.
10655 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
10657         PR tree-optimization/81136
10658         * tree-vectorizer.h: Include tree-hash-traits.h.
10659         (vec_base_alignments): New typedef.
10660         (vec_info): Add a base_alignments field.
10661         (vect_record_base_alignments): Declare.
10662         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
10663         field.
10664         (DR_IS_CONDITIONAL_IN_STMT): New macro.
10665         (create_data_ref): Add an is_conditional_in_stmt argument.
10666         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
10667         the is_conditional_in_stmt field.
10668         (data_ref_loc): Add an is_conditional_in_stmt field.
10669         (get_references_in_stmt): Set the is_conditional_in_stmt field.
10670         (find_data_references_in_stmt): Update call to create_data_ref.
10671         (graphite_find_data_references_in_stmt): Likewise.
10672         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
10673         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
10674         (vect_record_base_alignment): New function.
10675         (vect_record_base_alignments): Likewise.
10676         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
10677         for nested statements even if we fail to compute a misalignment.
10678         Use pooled base alignments for unconditional references.
10679         (vect_find_same_alignment_drs): Compare base addresses instead
10680         of base objects.
10681         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
10682         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
10684 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
10686         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
10687         Add an explicit name for the enum.  Use auto_vec for slp_instances
10688         and grouped_stores.
10689         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
10690         for all vectors.
10691         (_bb_vec_info): Add a constructor and destructor.
10692         (vinfo_for_stmt): Return NULL for uids of -1 as well.
10693         (destroy_loop_vec_info): Delete.
10694         (vect_destroy_datarefs): Likewise.
10695         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
10696         (vec_info::vec_info): New function.
10697         (vec_info::~vec_info): Likewise.
10698         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
10699         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
10700         destroy_loop_vec_info.
10701         * tree-vect-loop.c (new_loop_vec_info): Replace with...
10702         (_loop_vec_info::_loop_vec_info): ...this.
10703         (destroy_loop_vec_info): Replace with...
10704         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
10705         the stmt_vec_infos.  Leave handling of vec_info information to its
10706         destructor.  Remove explicit vector releases.
10707         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
10708         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
10709         * tree-vect-slp.c (new_bb_vec_info): Replace with...
10710         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
10711         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
10712         (destroy_bb_vec_info): Replace with...
10713         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
10714         information to its destructor.
10715         (vect_slp_analyze_bb_1): Use new and delete instead of
10716         new_bb_vec_info and destroy_bb_vec_info.
10717         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
10718         single delete.
10720 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
10722         * tree-data-ref.h (subscript): Add access_fn field.
10723         (data_dependence_relation): Add could_be_independent_p.
10724         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
10725         (same_access_functions): Move to tree-data-ref.c.
10726         * tree-data-ref.c (ref_contains_union_access_p): New function.
10727         (access_fn_component_p): Likewise.
10728         (access_fn_components_comparable_p): Likewise.
10729         (dr_analyze_indices): Add a reference to access_fn_component_p.
10730         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
10731         DR_ACCESS_FN.
10732         (constant_access_functions): Likewise.
10733         (add_other_self_distances): Likewise.
10734         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
10735         (initialize_data_dependence_relation): Use XCNEW and remove
10736         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
10737         of access functions that have the same type.  Allow the
10738         subsequence to end with different bases in some circumstances.
10739         Record the chosen access functions in SUB_ACCESS_FN.
10740         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
10741         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
10742         (subscript_dependence_tester_1): Likewise dra and drb.
10743         (build_classic_dist_vector): Update calls accordingly.
10744         (subscript_dependence_tester): Likewise.
10745         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
10746         DDR_COULD_BE_INDEPENDENT_P.
10747         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
10748         comp_alias_ddrs instead of may_alias_ddrs.
10749         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
10750         New function.
10751         (vect_analyze_data_ref_dependence): Use it if
10752         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
10753         distance vectors if that fails.
10754         (dependence_distance_ge_vf): New function.
10755         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
10756         LOOP_VINFO_MAY_ALIAS_DDRS.
10758 2017-08-04  Richard Biener  <rguenther@suse.de>
10760         PR middle-end/81705
10761         * fold-const.c (fold_binary_loc): Properly restrict
10762         minus_var0 && minus_var1 case when associating undefined overflow
10763         entities.
10765 2017-08-04  Tom de Vries  <tom@codesourcery.com>
10767         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
10769 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10771         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10772         Don't start diagnostic messages with a capital letter.
10773         * config/rs6000/rs6000.c (rs6000_option_override_internal):
10774         Likewise.
10775         (rs6000_invalid_builtin): Likewise.
10776         (rs6000_trampoline_init): Likewise.
10778 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
10780         PR target/81621
10781         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
10782         after setting changeable df flags.
10784 2017-08-03  Richard Biener  <rguenther@suse.de>
10786         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
10787         up if the use is in USE - X.
10789 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
10791         * toplev.c (dumpfile.h): New include.
10792         (internal_error_reentered): New static function.  Use it...
10793         (internal_error_function): ...here to handle reentered internal_error.
10795 2017-08-03  Richard Biener  <rguenther@suse.de>
10797         PR middle-end/81148
10798         * fold-const.c (split_tree): Add minus_var and minus_con
10799         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
10800         here but always use minus_*.
10801         (associate_trees): Assert we never associate with MINUS_EXPR
10802         and NULL first operand.  Do not recurse for PLUS_EXPR operands
10803         when associating as MINUS_EXPR either.
10804         (fold_binary_loc): Track minus_var and minus_con.
10806 2017-08-03  Tom de Vries  <tom@codesourcery.com>
10808         PR lto/81430
10809         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
10810         ACCEL_COMPILER, apply finish_options on
10811         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
10813 2017-08-03  Tom de Vries  <tom@codesourcery.com>
10815         PR target/81662
10816         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
10817         function_entry_patch_area_size > 0.
10819 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
10821         PR driver/81650
10822         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
10823         instead of 10??LU, perform unit multiplication in wide_int,
10824         don't change alloc_object_size_limit if the limit is larger
10825         than SSIZE_MAX.
10827         PR tree-optimization/81655
10828         PR tree-optimization/81588
10829         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
10830         the case when ranges[i].low and high are 1 for unsigned type with
10831         precision 1.
10833         PR middle-end/81052
10834         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
10835         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
10837 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10839         * tree-vrp.h: Add include guard.
10841 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
10843         PR target/81644
10844         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
10845         (ud2): New insn pattern.
10846         * config/i386/i386.c (ix86_expand_epilogue):
10847         For naked functions, generate ud2 instead of trap insn.
10849 2017-08-02  Marek Polacek  <polacek@redhat.com>
10851         PR other/81667
10852         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
10854 2017-08-02  Tom de Vries  <tom@codesourcery.com>
10855             Cesar Philippidis  <cesar@codesourcery.com>
10857         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
10858         Add missing edge probabilities.
10860 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
10862         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
10863         Correct endianness.
10865 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
10867         PR middle-end/79499
10868         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
10869         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
10870         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
10871         prologue_seq sequences - if any.
10873 2017-08-02  Richard Biener  <rguenther@suse.de>
10875         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
10876         via vectors if supported, integer extracts via punning if supported
10877         or otherwise vector extracts.
10879 2017-08-02  Richard Biener  <rguenther@suse.de>
10881         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
10882         into ...
10883         (bitmap_insert_into_set): ... this.
10885 2017-08-02  Richard Biener  <rguenther@suse.de>
10887         PR tree-optimization/81633
10888         Revert
10889         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
10891         PR tree-optimization/71752
10892         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
10894 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
10896         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
10897         (machine_function::call_ms2sysv_pad_out): Remove field.
10898         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
10899         (ix86_compute_frame_layout): Likewise.
10901 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
10903         PR target/81654
10904         * config/i386/i386.c (ix86_set_func_type): Disallow naked
10905         attribute with interrupt attribute.
10907 2017-08-01  Andrew Pinski  <apinski@cavium.com>
10909         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
10910         BIT_INSERT_EXPR's operand 1
10911         to see if the types precision matches.
10913 2017-08-01  Martin Liska  <mliska@suse.cz>
10915         PR middle-end/70140
10916         * builtins.c (expand_builtin_memcpy_args): Remove.
10917         (expand_builtin_memcpy): Call newly added function
10918         expand_builtin_memory_copy_args.
10919         (expand_builtin_memcpy_with_bounds): Likewise.
10920         (expand_builtin_mempcpy): Remove last argument.
10921         (expand_builtin_mempcpy_with_bounds): Likewise.
10922         (expand_builtin_memory_copy_args): New function created from
10923         expand_builtin_mempcpy_args with small modifications.
10924         (expand_builtin_mempcpy_args): Remove.
10925         (expand_builtin_stpcpy): Remove unused argument.
10926         (expand_builtin): Likewise.
10927         (expand_builtin_with_bounds): Likewise.
10929 2017-08-01  Martin Liska  <mliska@suse.cz>
10931         Revert r250771
10932         Make mempcpy more optimal (PR middle-end/70140).
10934 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
10936         PR target/81622
10937         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
10938         __builtin_vec_cmpne verify both arguments are compatible vectors
10939         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
10940         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
10941         move computation of aligned to after checking the argument types.
10942         Formatting fixes.
10944         PR target/80846
10945         * config/rs6000/vsx.md (vextract_fp_from_shorth,
10946         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
10947         calls.
10949 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
10950             Doug Rupp  <rupp@adacore.com>
10951             Olivier Hainque  <hainque@adacore.com>
10953         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
10954         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
10955         arm8 (arch v4).
10956         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
10957         for TARGET_OS_CPP_BUILTIN.
10958         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
10959         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
10960         arm_arch7.
10961         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
10962         passing required abi options to the assembler for EABI configurations.
10963         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
10964         of .text.hot and .text.unlikely sections for kernel modules when
10965         using ARM style exceptions.
10966         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
10967         options. Add EXTRA_CC1_SPEC.
10968         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
10969         toolchain options.
10970         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
10971         transition.
10972         (ARM_TARGET2_DWARF_FORMAT): Define.
10973         * config/arm/t-vxworks: Adjust multilib control to removal of the
10974         Diab command line options.
10976 2017-08-01  Martin Liska  <mliska@suse.cz>
10978         PR gcov-profile/81561
10979         * gcov.c (unblock): Make unblocking safe as we need to preserve
10980         index correspondence of blocks and block_lists.
10982 2017-08-01  Richard Biener  <rguenther@suse.de>
10984         PR tree-optimization/81181
10985         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
10986         (compute_antic): ... end of iteration here.
10988 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
10990         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
10991         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
10992         (ftree-slp-vectorize): Likewise.
10993         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
10994         can no longer be set independent of flag_tree_loop_vectorize.
10995         * omp-general.c (emp_max_vf): Likewise.
10996         * opts.c (enable_fdo_optimizations): Remove references to
10997         flag_tree_vectorize, these are now implicit.
10998         (common_handle_option): Remove handling for OPT_ftree_vectorize,
10999         and leave it for the options machinery.
11001 2017-08-01  Martin Liska  <mliska@suse.cz>
11003         PR middle-end/70140
11004         * builtins.c (expand_builtin_memcpy_args): Remove.
11005         (expand_builtin_memcpy): Call newly added function
11006         expand_builtin_memory_copy_args.
11007         (expand_builtin_memcpy_with_bounds): Likewise.
11008         (expand_builtin_mempcpy): Remove last argument.
11009         (expand_builtin_mempcpy_with_bounds): Likewise.
11010         (expand_builtin_memory_copy_args): New function created from
11011         expand_builtin_mempcpy_args with small modifications.
11012         (expand_builtin_mempcpy_args): Remove.
11013         (expand_builtin_stpcpy): Remove unused argument.
11014         (expand_builtin): Likewise.
11015         (expand_builtin_with_bounds): Likewise.
11017 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
11019         PR target/81641
11020         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
11021         print "ds:" only for immediates in generic address space.
11023 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
11025         PR target/81639
11026         * config/i386/i386.c (ix86_funciton_naked): New prototype.
11027         (ix86_function_ok_for_sibcall): Return false for naked functions.
11029 2017-08-01  Richard Biener  <rguenther@suse.de>
11031         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
11032         (compute_antic): Seed worklist with exit block predecessors.
11033         * cfganal.c (dfs_find_deadend): For a cycle return the source
11034         of the edge closing it.
11036 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
11038         * config/aarch64/aarch64.c
11039         (aarch64_can_const_movi_rtx_p): Move 0 check.
11041 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
11043         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
11044         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
11045         above macro.
11046         * match.pd: Ditto in address comparison pattern.
11048 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
11050         PR tree-optimization/81627
11051         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
11052         closed ssa form for store-store chain.
11054 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
11056         PR tree-optimization/81620
11057         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
11058         for store-store chain.
11060 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
11062         PR tree-optimization/81588
11063         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
11064         ranges[i].in_p, invert comparison code ccode.  For >/>=,
11065         swap rhs1 and rhs2 and comparison code unconditionally,
11066         for </<= don't do that.  Don't swap rhs1/rhs2 again if
11067         ranges[i].in_p, instead invert comparison code ccode if
11068         opcode or oe->rank is BIT_IOR_EXPR.
11070         PR target/80846
11071         * optabs.def (vec_extract_optab, vec_init_optab): Change from
11072         a direct optab to conversion optab.
11073         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
11074         with GET_MODE_INNER as last argument instead of optab_handler.
11075         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
11076         vector extraction if possible and optab is available.
11077         * expr.c (store_constructor): Use convert_optab_handler instead
11078         of optab_handler.  Use vector initialization from smaller
11079         vectors if possible and optab is available.
11080         * tree-vect-stmts.c (vectorizable_load): Likewise.
11081         * doc/md.texi (vec_extract, vec_init): Document that the optabs
11082         now have two modes.
11083         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
11084         of vec_init from half-sized vectors with the same element mode.
11085         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
11086         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
11087         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
11088         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
11089         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
11090         after mode in gen_vec_extract* calls.
11091         (vec_extract<mode>): Renamed to ...
11092         (vec_extract<mode><ssescalarmodelower>): ... this.
11093         (vec_extract<mode><ssehalfvecmodelower>): New expander.
11094         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
11095         element mode after mode in gen_vec_init* calls.
11096         (VEC_INIT_HALF_MODE): New mode iterator.
11097         (vec_init<mode>): Renamed to ...
11098         (vec_init<mode><ssescalarmodelower>): ... this.
11099         (vec_init<mode><ssehalfvecmodelower>): New expander.
11100         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
11101         (vec_extractv2sfsf): ... this.
11102         (vec_initv2sf): Renamed to ...
11103         (vec_initv2sfsf): ... this.
11104         (vec_extractv2si): Renamed to ...
11105         (vec_extractv2sisi): ... this.
11106         (vec_initv2si): Renamed to ...
11107         (vec_initv2sisi): ... this.
11108         (vec_extractv4hi): Renamed to ...
11109         (vec_extractv4hihi): ... this.
11110         (vec_initv4hi): Renamed to ...
11111         (vec_initv4hihi): ... this.
11112         (vec_extractv8qi): Renamed to ...
11113         (vec_extractv8qiqi): ... this.
11114         (vec_initv8qi): Renamed to ...
11115         (vec_initv8qiqi): ... this.
11116         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
11117         (vec_init<mode>): Renamed to ...
11118         (vec_init<mode><VEC_base_l>): ... this.
11119         (vec_extract<mode>): Renamed to ...
11120         (vec_extract<mode><VEC_base_l>): ... this.
11121         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
11122         (vec_initv2sfsf): ... this.
11123         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
11124         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
11125         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
11126         element mode after mode in gen_vec_init* calls.
11127         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
11128         (vec_init<mode><Vel>): ... this.
11129         (vec_extract<mode>): Renamed to ...
11130         (vec_extract<mode><Vel>): ... this.
11131         * config/aarch64/iterators.md (Vel): New mode attribute.
11132         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
11133         Add element mode after mode in gen_vec_extract* calls.
11134         * config/s390/vector.md (non_vec_l): New mode attribute.
11135         (vec_extract<mode>): Renamed to ...
11136         (vec_extract<mode><non_vec_l>): ... this.
11137         (vec_init<mode>): Renamed to ...
11138         (vec_init<mode><non_vec_l>): ... this.
11139         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
11140         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
11141         vec_extract mode.
11142         * config/arm/iterators.md (V_elem_l): New mode attribute.
11143         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
11144         (vec_extract<mode><V_elem_l>): ... this.
11145         (vec_extractv2di): Renamed to ...
11146         (vec_extractv2didi): ... this.
11147         (vec_init<mode>): Renamed to ...
11148         (vec_init<mode><V_elem_l>): ... this.
11149         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
11150         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
11151         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
11152         Add element mode after gen_vec_extract* calls.
11153         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
11154         (vec_init<mode><unitmode>): ... this.
11155         (vec_extract<mode>): Renamed to ...
11156         (vec_extract<mode><unitmode>): ... this.
11157         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
11158         (vec_init<mode><unitmode>): ... this.
11159         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
11160         (vec_initv2sfsf): ... this.
11161         (vec_extractv2sf): Renamed to ...
11162         (vec_extractv2sfsf): ... this.
11163         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
11164         Add element mode after gen_vec_extract* calls.
11165         * config/mips/mips.md (unitmode): New mode iterator.
11166         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
11167         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
11168         * config/spu/spu.md (inner_l): New mode attribute.
11169         (vec_init<mode>): Renamed to ...
11170         (vec_init<mode><inner_l>): ... this.
11171         (vec_extract<mode>): Renamed to ...
11172         (vec_extract<mode><inner_l>): ... this.
11173         * config/sparc/sparc.md (veltmode): New mode iterator.
11174         (vec_init<VMALL:mode>): Renamed to ...
11175         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
11176         * config/ia64/vect.md (vec_initv2si): Renamed to ...
11177         (vec_initv2sisi): ... this.
11178         (vec_initv2sf): Renamed to ...
11179         (vec_initv2sfsf): ... this.
11180         (vec_extractv2sf): Renamed to ...
11181         (vec_extractv2sfsf): ... this.
11182         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
11183         (vec_init<mode>): Renamed to ...
11184         (vec_init<mode><VEC_base_l>): ... this.
11185         (vec_extract<mode>): Renamed to ...
11186         (vec_extract<mode><VEC_base_l>): ... this.
11187         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
11188         (vec_initv2sfsf): ... this.
11189         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
11190         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
11191         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
11192         gen_vec_init* calls.
11194 2017-08-01  Richard Biener  <rguenther@suse.de>
11196         PR tree-optimization/81297
11197         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
11198         TREE_OVERFLOW from INTEGER_CSTs.
11200 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
11202         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
11204 2017-07-31  Carl Love  <cel@us.ibm.com>
11206         * config/rs6000/rs6000-c: Add support for built-in functions
11207         vector signed char vec_xl_be (signed long long, signed char *);
11208         vector unsigned char vec_xl_be (signed long long, unsigned char *);
11209         vector signed int vec_xl_be (signed long long, signed int *);
11210         vector unsigned int vec_xl_be (signed long long, unsigned int *);
11211         vector signed long long vec_xl_be (signed long long, signed long long *);
11212         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
11213         vector signed short vec_xl_be (signed long long, signed short *);
11214         vector unsigned short vec_xl_be (signed long long, unsigned short *);
11215         vector double vec_xl_be (signed long long, double *);
11216         vector float vec_xl_be (signed long long, float *);
11217         * config/rs6000/altivec.h (vec_xl_be): Add #define.
11218         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
11219         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
11220         for the builtins.
11221         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
11222         (altivec_expand_builtin): Add switch statement to call
11223         altivec_expand_xl_be for each builtin.
11224         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
11225         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
11226         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
11227         __builtin_vsx_le_be_v16qi.
11228         * doc/extend.texi: Update the built-in documentation file for the
11229         new built-in functions.
11231 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
11233         PR target/25967
11234         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
11235         New function.
11236         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
11238 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11240         * config.gcc: Add z14.
11241         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
11242         CPU model numbers for z13s and z14.
11243         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
11244         arch12 with z14.
11245         * config/s390/s390-opts.h (enum processor_type): Rename
11246         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
11247         * config/s390/s390.c (processor_table): Add field for CPU name to
11248         be passed to Binutils.
11249         (s390_asm_output_machine_for_arch): Use the new field in
11250         processor_table for Binutils.
11251         (s390_expand_builtin): Replace arch12 with z14.
11252         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
11253         (s390_get_sched_attrmask): Likewise.
11254         (s390_get_unit_mask): Likewise.
11255         * config/s390/s390.opt: Add z14 to processor_type enum.
11257 2017-07-31  Martin Jambor  <mjambor@suse.cz>
11259         PR hsa/81477
11260         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
11261         regardless of optimization level.
11263 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
11264             Martin Liska  <mliska@suse.cz>
11266         * predict.def: Remove old comment and adjust probability.
11267         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
11268         PREDICT statements.
11270 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
11272         PR target/25967
11273         * config/i386/i386.c (ix86_function_naked): New function.
11274         (ix86_can_use_return_insn_p): Return false for naked functions.
11275         (ix86_expand_prologue): Skip prologue for naked functions.
11276         (ix86_expand_epilogue): Skip epilogue for naked functions
11277         and emit trap instruction.
11278         (ix86_warn_func_return): New function.
11279         (ix86_attribute_table): Add "naked" attribute specification.
11280         (TARGET_WARN_FUNC_RETURN): Define.
11281         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
11283 2017-07-31  Martin Liska  <mliska@suse.cz>
11285         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
11286         (dump_gimple_bb_header): Always dump BB info.
11287         (pp_cfg_jump): Do not append info about BB when dumping a jump.
11289 2017-07-31  Martin Liska  <mliska@suse.cz>
11291         PR sanitize/81530
11292         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
11293         also with current_function_decl non-null equality.
11295 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
11297         PR sanitizer/81604
11298         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
11299         change type to the element type, instead add eltype variable and
11300         use it where we are interested in the element type.
11302         PR tree-optimization/81603
11303         * ipa-polymorphic-call.c
11304         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
11305         offset arithmetic in offset_int, bail out if the resulting bit offset
11306         doesn't fit into shwi.
11308 2017-07-31  Martin Liska  <mliska@suse.cz>
11310         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
11311         (gimplify_save_expr): Fix comment.
11313 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
11315         PR target/79793
11316         * config/i386/i386.c (ix86_function_arg): Update arguments for
11317         exception handler.
11318         (ix86_compute_frame_layout): Set the initial stack offset to
11319         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
11320         INCOMING_FRAME_SP_OFFSET.
11321         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
11322         stack before exception handler returns.
11323         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
11324         the 'ERROR_CODE' for exception handler.
11326 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
11328         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
11329         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
11330         (ASM_OUTPUT_REG_POP): Ditto.
11331         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
11332         instead of asm_fprintf to output pure string.
11334 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
11336         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
11337         to imported_module_or_decl hook.
11338         (debug_nothing_tree_tree_tree_bool): Remove.
11339         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
11340         * debug.c (do_nothing_debug_hooks): Use
11341         debug_nothing_tree_tree_tree_bool_bool instead of
11342         debug_nothing_tree_tree_tree_bool.
11343         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11344         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11345         * sdbout.c (sdb_debug_hooks): Likewise.
11346         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
11347         (gen_namespace_die): Add DW_AT_export_symbols attribute if
11348         langhook wants it.
11349         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
11350         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
11351         attribute, don't add anything.
11353 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11355         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
11356         (fold_build2_stat_loc): Likewise.
11357         (fold_build3_stat_loc): Likewise.
11358         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
11359         (fold_build1_loc): Remove macro.
11360         (fold_build2_loc): Likewise.
11361         (fold_build3_loc): Likewise.
11363 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11365         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
11366         (gimple_build_debug_bind_source_stat): Likewise.
11367         * gimple.h (gimple_build_debug_bind): Remove macro.
11368         (gimple_build_debug_bind_source): Likewise.
11370 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11372         * bitmap.c (bitmap_alloc): Adjust.
11373         (bitmap_gc_alloc): Likewise.
11374         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
11376 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11378         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
11379         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
11380         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
11381         (bitmap_gc_alloc_stat): Likewise.
11382         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
11384 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11386         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
11387         * rtl.h (shallow_copy_rtx): Remove macro.
11389 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11391         * emit-rtl.c (gen_raw_REG): Adjust.
11392         * gengenrtl.c (gendef): Likewise.
11393         * rtl.c (rtx_alloc_stat): Remove _stat from name.
11394         * rtl.h (rtx_alloc): Remove macro.
11396 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11398         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
11399         (build_tree_list_stat): Likewise.
11400         * tree.h (build_tree_list): Remove macro.
11401         (build_tree_list_vec): Likewise.
11403 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11405         * tree.c (make_vector_stat): Remove _stat from name.
11406         (build_vector_stat): Likewise.
11407         * tree.h (make_vector_stat): Remove macro.
11408         (build_vector_stat): Likewise.
11410 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11412         * tree.h (build_var_debug_value): Remove prototype.
11414 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11416         * tree.c (tree_cons_stat): Remove _stat from name.
11417         * tree.h (tree_cons): Remove macro.
11419 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11421         * tree.c (build_vl_exp_stat): Remove _stat from name.
11422         * tree.h (build_vl_exp): Remove macro.
11424 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11426         * tree.c (build_decl_stat): Remove _stat from name.
11427         * tree.h (build_decl): Remove macro.
11429 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11431         * gimple.c (gimple_build_with_ops_stat): Adjust.
11432         (gimple_alloc_stat): Remove _stat from name.
11433         * gimple.h (gimple_alloc): Remove macro.
11435 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11437         * tree.c (make_tree_vec_stat): Remove _stat from name.
11438         (grow_tree_vec_stat): Likewise.
11439         * tree.h (make_tree_vec_stat): Adjust prototype.
11440         (grow_tree_vec_stat): Likewise.
11441         (make_tree_vec): Remove macro.
11442         (grow_tree_vec): Likewise.
11444 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11446         * fold-const.c (fold_build1_stat_loc): Adjust.
11447         (fold_build2_stat_loc): Likewise.
11448         (fold_build3_stat_loc): Likewise.
11449         * tree.c (build0_stat): Remove _stat from name.
11450         (build1_stat): Likewise.
11451         (build2_stat): Likewise.
11452         (build3_stat): Likewise.
11453         (build4_stat): Likewise.
11454         (build5_stat): Likewise.
11455         * tree.h (build1_loc): Remove macro, and rename _stat function
11456         to this.
11457         (build2_loc): Likewise.
11458         (build3_loc): Likewise.
11459         (build4_loc): Likewise.
11460         (build5_loc): Likewise.
11462 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11464         * tree.c (make_int_cst_stat): Remove _stat from name.
11465         * tree.h (make_int_cst_stat): Adjust prototype.
11466         (make_int_cst): Remove macro.
11468 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11470         * tree.c (make_tre_binfo_stat): Remove _stat from name.
11471         * tree.h (make_tree_binfo_stat): Adjust prototype.
11472         (make_tree_binfo): Remove.
11474 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11476         * tree.c (copy_node_stat): Rename to copy_node.
11477         (build_distinct_type_copy): Adjust.
11478         * tree.h (copy_node_stat): Adjust prototype.
11479         (copy_node): Remove macro.
11481 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11483         * tree.c (make_node_stat): rename to make_node.
11484         (build_tree_list_stat): Adjust.
11485         (build0_stat): Likewise.
11486         (build2_stat): Likewise.
11487         (build3_stat): Likewise.
11488         (build4_stat): Likewise.
11489         (build5_stat): Likewise.
11490         (build_decl_stat): Likewise.
11491         * tree.h (make_node_stat): Adjust prototype.
11492         (make_node): remove macro.
11494 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
11496         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
11497         (PPC_FEATURE2_SCV): Likewise.
11498         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
11500 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
11502         * config/aarch64/aarch64.c
11503         (aarch64_internal_mov_immediate): Add new special pattern.
11504         * config/aarch64/aarch64.md (*movdi_aarch64):
11505         Add reg/32bit const mov case.
11507 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
11508             Richard Sandiford <richard.sandiford@linaro.org>
11510         * config/aarch64/aarch64.md (mov<mode>): Generalize.
11511         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
11512         Add integer and movi cases.
11513         (movi-split-hf-df-sf split, fp16): New.
11514         (enabled): Added TARGET_FP_F16INST.
11515         * config/aarch64/iterators.md (GPF_HF): New.
11516         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
11518 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
11520         * config/aarch64/aarch64.c
11521         (aarch64_simd_container_mode): Add prototype.
11522         (aarch64_expand_mov_immediate): Add HI support.
11523         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
11524         (aarch64_can_const_movi_rtx_p): New.
11525         (aarch64_preferred_reload_class):
11526         Remove restrictions of using FP registers for certain SIMD operations.
11527         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
11528         (aarch64_valid_floating_const): Add integer move validation.
11529         (aarch64_simd_imm_scalar_p): Remove.
11530         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
11531         (aarch64_legitimate_constant_p): Expand list of supported cases.
11532         * config/aarch64/aarch64-protos.h
11533         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
11534         (aarch64_reinterpret_float_as_int): New.
11535         (aarch64_simd_imm_scalar_p): Remove.
11536         * config/aarch64/constraints.md (Uvi): New.
11537         (Dd): Split into Ds and new Dd.
11538         * config/aarch64/aarch64.md (*movsi_aarch64):
11539         Add SIMD mov case.
11540         (*movdi_aarch64): Add SIMD mov case.
11542 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
11544         * tree-predcom.c: (struct chain): Handle store-store chain in which
11545         stores for elimination only store loop invariant values.
11546         (execute_pred_commoning_chain): Ditto.
11547         (prepare_initializers_chain_store_elim): Ditto.
11548         (prepare_finalizers): Ditto.
11549         (is_inv_store_elimination_chain): New function.
11550         (initialize_root_vars_store_elim_1): New function.
11552 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
11554         * tree-predcom.c: Revise general description of the pass.
11555         (enum chain_type): New enum type for store elimination.
11556         (struct chain): New field supporting store elimination.
11557         (struct component): Ditto.
11558         (dump_chain): Dump store-stores chain.
11559         (release_chain): Release resources.
11560         (split_data_refs_to_components): Compute and create component
11561         contains only stores for elimination.
11562         (get_chain_last_ref_at): New function.
11563         (make_invariant_chain): Initialization.
11564         (make_rooted_chain): Specify chain type in parameter and record it.
11565         (add_looparound_copies): Skip for store-stores chain.
11566         (determine_roots_comp): Compute type of chain and pass it to
11567         make_rooted_chain.
11568         (initialize_root_vars_store_elim_2): New function.
11569         (finalize_eliminated_stores): New function.
11570         (remove_stmt): Handle store for elimination.
11571         (execute_pred_commoning_chain): Execute predictive commoning on
11572         store-store chains.
11573         (determine_unroll_factor): Skip unroll for store-stores chain.
11574         (prepare_initializers_chain_store_elim): New function.
11575         (prepare_initializers_chain): Hanlde store-store chain.
11576         (prepare_finalizers_chain, prepare_finalizers): New function.
11577         (tree_predictive_commoning_loop): Return integer value indicating
11578         if loop is unrolled or lcssa form is corrupted.
11579         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
11581 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
11583         * tree-predcom.c (initialize_root): Delete.
11584         (execute_pred_commoning_chain): Initialize root vars and replace
11585         reference of non-combined chain directly, rather than call above
11586         function.
11588 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
11590         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
11591         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
11593 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
11595         * tree-predcom.c (struct chain): New field init_seq.
11596         (release_chain): Release init_seq.
11597         (prepare_initializers_chain): Record intialization stmts in above
11598         field.
11599         (insert_init_seqs): New function.
11600         (tree_predictive_commoning_loop): Call insert_init_seqs.
11602 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
11604         * tree-predcom.c (determine_roots_comp): Skip trivial components.
11606 2017-07-28  Richard Biener  <rguenther@suse.de>
11608         * match.pd: Remove superfluous :c.
11609         * genmatch.c (simplify::id): Add member.
11610         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
11611         Copy id.
11612         (current_id): New global.
11613         (dt_node::parent): Move from ...
11614         (dt_operand::parent): ... here.  Add for_id member.
11615         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
11616         (decision_tree::find_node): Relax order requirement when
11617         merging DT_TRUE nodes to ones inbetween the current simplify
11618         and the one we try to merge with.  Add diagnostic whenever
11619         we need to enforce pattern order by not merging.
11620         (decision_tree::insert): Set current_id.
11621         (decision_tree::print_node): Dump parent node and for_id.
11622         (parser::last_id): Add member.
11623         (parser::push_simplify): Assign unique id.
11624         (parser::parser): Initialize last_id.
11626 2017-07-28  Martin Liska  <mliska@suse.cz>
11628         PR sanitizer/81340
11629         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
11630         gimple_build_debug_bind.
11632 2017-07-28  Richard Biener  <rguenther@suse.de>
11634         PR tree-optimization/81502
11635         * match.pd: Add pattern combining BIT_INSERT_EXPR with
11636         BIT_FIELD_REF.
11637         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
11638         size/pos operands.
11639         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
11640         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
11641         for BIT_FIELD_REF args.
11642         * fold-const.c (make_bit_field_ref): Likewise.
11643         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
11645 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
11647         PR sanitizer/80998
11648         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
11649         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
11650         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
11651         Or it into SANITIZER_UNDEFINED.
11652         * ubsan.c: Include gimple-fold.h and varasm.h.
11653         (ubsan_expand_ptr_ifn): New function.
11654         (instrument_pointer_overflow): New function.
11655         (maybe_instrument_pointer_overflow): New function.
11656         (instrument_object_size): Formatting fix.
11657         (pass_ubsan::execute): Call instrument_pointer_overflow
11658         and maybe_instrument_pointer_overflow.
11659         * internal-fn.c (expand_UBSAN_PTR): New function.
11660         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
11661         * sanitizer.def (__ubsan_handle_pointer_overflow,
11662         __ubsan_handle_pointer_overflow_abort): New builtins.
11663         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
11664         * internal-fn.def (UBSAN_PTR): New internal function.
11665         * opts.c (sanitizer_opts): Add pointer-overflow.
11666         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
11667         * fold-const.c (build_range_check): Compute pointer range check in
11668         integral type if pointer arithmetics would be needed.  Formatting
11669         fixes.
11671 2017-07-28  Martin Liska  <mliska@suse.cz>
11673         PR sanitizer/81460
11674         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
11675         parameters that are of a variable-length.
11677 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11679         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
11680         rs6000/biarch64.h.
11681         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
11682         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11683         (CRT_CALL_STATIC_FUNCTION): Likewise.
11684         (ASM_DEFAULT_SPEC): New define.
11685         (ASM_SPEC32): Likewise.
11686         (ASM_SPEC64): Likewise.
11687         (ASM_SPEC_COMMON): Likewise.
11688         (ASM_SPEC): Likewise.
11689         (INVALID_64BIT): Likewise.
11690         (LINK_OS_DEFAULT_SPEC): Likewise.
11691         (LINK_OS_SPEC32): Likewise.
11692         (LINK_OS_SPEC64): Likewise.
11693         (POWERPC_LINUX): Likewise.
11694         (PTRDIFF_TYPE): Likewise.
11695         (RESTORE_FP_PREFIX): Likewise.
11696         (RESTORE_FP_SUFFIX): Likewise.
11697         (SAVE_FP_PREFIX): Likewise.
11698         (SAVE_FP_SUFFIX): Likewise.
11699         (SIZE_TYPE): Likewise.
11700         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
11701         (TARGET_64BIT): Likewise.
11702         (TARGET_64BIT): Likewise.
11703         (TARGET_AIX): Likewise.
11704         (WCHAR_TYPE_SIZE): Likewise.
11705         (WCHAR_TYPE): Undefine.
11706         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
11707         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
11708         (CPP_OS_RTEMS_SPEC): Delete.
11709         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
11710         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
11711         link_os_spec64.
11712         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
11714 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
11716         PR tree-optimization/81578
11717         * tree-parloops.c (build_new_reduction): Bail out if
11718         reduction_code isn't one of the standard OpenMP reductions.
11719         Move the details printing after that decision.
11721 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
11723         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
11724         related to reload_in_progress.
11725         (splat_input_operand): Likewise.
11726         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
11727         Delete prototype.
11728         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
11729         field.
11730         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
11731         (TARGET_INSTANTIATE_DECLS): Likewise.
11732         (legitimate_indexed_address_p): Delete reload_in_progress code.
11733         (rs6000_debug_legitimate_address_p): Likewise.
11734         (rs6000_eliminate_indexed_memrefs): Likewise.
11735         (rs6000_emit_le_vsx_store): Likewise.
11736         (rs6000_emit_move_si_sf_subreg): Likewise.
11737         (rs6000_emit_move): Likewise.
11738         (register_to_reg_type): Likewise.
11739         (rs6000_pre_atomic_barrier): Likewise.
11740         (rs6000_machopic_legitimize_pic_address): Likewise.
11741         (rs6000_allocate_stack_temp): Likewise.
11742         (rs6000_address_for_fpconvert): Likewise.
11743         (rs6000_address_for_altivec): Likewise.
11744         (rs6000_secondary_memory_needed_rtx): Delete function.
11745         (rs6000_check_sdmode): Likewise.
11746         (rs6000_alloc_sdmode_stack_slot): Likewise.
11747         (rs6000_instantiate_decls): Likewise.
11748         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11749         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
11750         Delete reload_in_progress.
11751         (*vec_reload_and_plus_<mptrsize>): Likewise.
11752         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
11753         (vsx_div_v2di): Likewise.
11754         (vsx_udiv_v2di): Likewise.
11756 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
11758         * config/rs6000/rs6000.opt (mlra): Replace with stub.
11759         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
11760         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
11761         (rs6000_debug_reg_global): Delete print of LRA status.
11762         (rs6000_option_override_internal): Delete dead LRA related code.
11763         (rs6000_lra_p): Delete function.
11764         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
11766 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11768         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
11769         * config/riscv/rtems.h: New file.
11771 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11772             Sudakshina Das  <sudi.das@arm.com>
11774         * config/aarch64/aarch64.md
11775         (define_split for and<mode>3nr_compare): Move
11776         non aarch64_logical_operand to a register.
11777         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
11778         register immediate operand to a register.
11779         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
11781 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
11783         PR middle-end/81564
11784         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
11786 2017-07-27  Richard Biener  <rguenther@suse.de>
11788         PR tree-optimization/81573
11789         PR tree-optimization/81494
11790         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
11791         multi defuse cycle case.
11793 2017-07-27  Richard Biener  <rguenther@suse.de>
11795         PR tree-optimization/81571
11796         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
11797         PHIs.
11799 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
11801         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
11802         earlier and only if MASK_FPU is set.  Adjust formatting.
11804 2017-07-27  Martin Liska  <mliska@suse.cz>
11806         * opt-functions.awk: Add validation of value of Init.
11807         * optc-gen.awk: Pass new argument.
11809 2017-07-27  Martin Liska  <mliska@suse.cz>
11811         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
11812         Fix wrong condition.
11814 2017-07-27  Martin Liska  <mliska@suse.cz>
11816         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
11817         BBs and edges seen by autoFDO.
11819 2017-07-27  Richard Biener  <rguenther@suse.de>
11821         PR tree-optimization/81502
11822         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
11823         with incompatible but same sized type.
11824         (execute_update_addresses_taken): Likewise.
11826 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
11828         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
11829         flag_tree_loop_vectorize rather than flag_tree_vectorize.
11831 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11833         PR target/81534
11834         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
11835         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
11836         Change s_operand to memory_operand.
11838 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
11840         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
11841         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
11842         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
11843         Emit instructions rather than returning an expression.  Handle TFmode
11844         and KFmode by casting to TImode.
11845         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
11846         (rs6000_emit_le_vsx_store): Likewise.
11847         * config/rs6000/vsx.md (VSX_TI): New iterator.
11848         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
11849         (*vsx_le_undo_permute_<mode>): Likewise.
11850         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
11851         emit the split sequence.
11852         (*vsx_le_perm_store_<mode>): Likewise.
11854 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
11856         PR tree-optimization/81555
11857         PR tree-optimization/81556
11858         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
11859         if true, force CHANGED for the recursive invocation.
11860         (reassociate_bb): Remember original length of ops array, pass
11861         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
11863         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
11864         attributes for noipa attribute.  For naked attribute use
11865         lookup_attribute first before lookup_attribute_spec.
11866         * final.c (rest_of_handle_final): Disable IPA RA for functions with
11867         noipa attribute.
11868         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
11869         for functions with noipa attribute.
11870         (cgraph_externally_visible_p): Return true for functions with noipa
11871         attribute.
11872         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
11873         for functions with noipa attribute.
11874         * doc/extend.texi: Document noipa function attribute.
11875         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
11876         also for functions with noipa attribute.
11877         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
11879 2017-07-26  Andrew Pinski  <apinski@cavium.com>
11881         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
11882         vec_unalign_load_cost and vec_unalign_store_cost.
11884 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
11886         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
11887         -mvsx-small-integer option.
11888         (ISA_3_0_MASKS_IEEE): Likewise.
11889         (OTHER_VSX_VECTOR_MASKS): Likewise.
11890         (POWERPC_MASKS): Likewise.
11891         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
11892         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
11893         code, only testing for DImode being allowed in non-VSX floating
11894         point registers.
11895         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
11896         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
11897         another VSX test.
11898         (rs6000_option_override_internal): Delete -mvsx-small-integer.
11899         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
11900         TARGET_P8_VECTOR test.
11901         (rs6000_secondary_reload_simple_move): Likewise.
11902         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
11903         since TARGET_P9_VECTOR was already tested.
11904         (rs6000_opt_masks): Remove -mvsx-small-integer.
11905         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
11906         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
11907         used.
11908         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
11909         test for TARGET_VEXTRACTUB was used, and that uses
11910         TARGET_P9_VECTOR.
11911         (p9 extract splitter): Likewise.
11912         (vsx_extract_<mode>_di_p9): Likewise.
11913         (vsx_extract_<mode>_store_p9): Likewise.
11914         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
11915         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
11916         the elimination of TARGET_VSX_SMALL_INTEGER.
11917         (vsx_extract_<mode>_p8): Likewise.
11918         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
11919         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
11920         (vsx_set_<mode>_p9): Likewise.
11921         (vsx_set_v4sf_p9): Likewise.
11922         (vsx_set_v4sf_p9_zero): Likewise.
11923         (vsx_insert_extract_v4sf_p9): Likewise.
11924         (vsx_insert_extract_v4sf_p9_2): Likewise.
11925         * config/rs6000/rs6000.md (sign extend splitter): Change
11926         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
11927         (floatsi<mode>2_lfiwax_mem): Likewise.
11928         (floatunssi<mode>2_lfiwzx_mem): Likewise.
11929         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
11930         since a test for TARGET_P9_VECTOR was used.
11931         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
11932         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
11933         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
11934         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
11935         TARGET_P8_VECTOR test.
11936         (fix_trunc<mode>si2_stfiwx): Likewise.
11937         (fix_trunc<mode>si2_internal): Likewise.
11938         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
11939         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
11940         used.
11941         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
11942         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
11943         TARGET_P8_VECTOR test.
11944         (fixuns_trunc<mode>si2_stfiwx): Likewise.
11945         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
11946         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
11947         used.
11948         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
11949         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
11950         since a test for TARGET_P9_VECTOR was used.
11951         (splitter for loading small constants): Likewise.
11953 2017-07-26  Andrew Pinski  <apinski@cavium.com>
11955         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
11956         vec_fp_stmt_cost.
11958 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
11960         PR target/81563
11961         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
11962         (fp_valid_at): Likewise.
11964 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
11966         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
11967         (qdf24xx_addrcost_table): Likewise.
11968         (cortexa57_tunings): Update to use generic_branch_cost.
11969         (cortexa72_tunings): Likewise.
11970         (cortexa73_tunings): Likewise.
11971         (qdf24xx_tunings): Likewise.
11973 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
11975         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
11976         (thunderx2t99_branch_cost): Likewise.
11977         (cortexa35_tunings): Update to use generic_branch_cost.
11978         (cortexa53_tunings): Likewise.
11979         (cortexa57_tunings): Likewise.
11980         (cortexa72_tunings): Likewise.
11981         (cortexa73_tunings): Likewise.
11982         (thunderx2t99_tunings): Likewise.
11984 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11986         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
11987         (sparc_option_override): Honour MASK_FSMULD.
11988         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
11989         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
11990         * config/sparc/sparc.opt (mfsmuld): New option.
11991         * doc/invoke.texi (mfsmuld): Document option.
11993 2017-07-26  Marek Polacek  <polacek@redhat.com>
11995         PR middle-end/70992
11996         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
11998 2017-07-26  Richard Biener  <rguenther@suse.de>
12000         * gimple-match-head.c (do_valueize): Return OP if valueize
12001         returns NULL_TREE.
12002         (get_def): New helper to get at the def stmt of a SSA name
12003         if valueize allows.
12004         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
12005         do_valueize to get at the def stmt.
12006         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
12008 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
12010         PR middle-end/46932
12011         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
12013 2017-07-26  Martin Liska  <mliska@suse.cz>
12015         PR sanitize/81186
12016         * function.c (expand_function_start): Make expansion of
12017         nonlocal_goto_save_area after parm_birth_insn.
12019 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12021         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
12022         from all CPU target flags enable members.
12024 2017-07-26  Richard Biener  <rguenther@suse.de>
12026         * genmatch.c (dt_simplify::gen): Make iterator vars const.
12027         (decision_tree::gen): Make 'type' const.
12028         (write_predicate): Likewise.
12030 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12032         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
12033         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
12034         (rs6000_option_override_internal): Likewise.
12035         (rs6000_expand_vector_set): Likewise.
12036         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
12037         (TARGET_UPPER_REGS_SF): Likewise.
12038         (TARGET_UPPER_REGS_DI): Likewise.
12039         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
12040         (TARGET_DIRECT_MOVE_64BIT): Likewise.
12041         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
12042         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
12043         (Splitters for DI constants in Altivec registers): Likewise.
12044         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
12045         (vsx_set_v4sf_p9): Likewise.
12046         (vsx_set_v4sf_p9_zero): Likewise.
12047         (vsx_insert_extract_v4sf_p9): Likewise.
12048         (vsx_insert_extract_v4sf_p9_2): Likewise.
12050 2017-07-25  Carl Love  <cel@us.ibm.com>
12052         * doc/extend.texi: Update the built-in documentation file for the
12053         existing built-in functions
12054         vector signed char vec_cnttz (vector signed char);
12055         vector unsigned char vec_cnttz (vector unsigned char);
12056         vector signed short vec_cnttz (vector signed short);
12057         vector unsigned short vec_cnttz (vector unsigned short);
12058         vector signed int vec_cnttz (vector signed int);
12059         vector unsigned int vec_cnttz (vector unsigned int);
12060         vector signed long long vec_cnttz (vector signed long long);
12061         vector unsigned long long vec_cnttz (vector unsigned long long);
12063 2017-07-25  Andrew Pinski  <apinski@cavium.com>
12065         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
12066         accesses where the use is for the first operand of a BIT_INSERT.
12068 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
12070         PR bootstrap/81521
12071         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
12072         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
12074 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
12076         * config/i386/gstabs.h: Delete.
12077         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
12079 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
12081         * config/i386/i386.c (ix86_decompose_address): Do not check for
12082         register RTX when looking at index_reg or base_reg.
12083         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
12085 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
12087         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
12088         to update EH info here.
12090 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
12092         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
12094 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
12096         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
12098 2017-07-25  Torsten Duwe  <duwe@suse.de>
12100         * common.opt: Introduce -fpatchable-function-entry
12101         command line option, and its variables function_entry_patch_area_size
12102         and function_entry_patch_area_start.
12103         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
12104         including a two-value parser.
12105         * target.def (print_patchable_function_entry): New target hook.
12106         * targhooks.h (default_print_patchable_function_entry): New function.
12107         * targhooks.c (default_print_patchable_function_entry): Likewise.
12108         * toplev.c (process_options): Switch off IPA-RA if
12109         patchable function entries are being generated.
12110         * varasm.c (assemble_start_function): Look at the
12111         patchable-function-entry command line switch and current
12112         function attributes and maybe generate NOP instructions by
12113         calling the print_patchable_function_entry hook.
12114         * doc/extend.texi: Document patchable_function_entry attribute.
12115         * doc/invoke.texi: Document -fpatchable_function_entry
12116         command line option.
12117         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
12118         New target hook.
12119         * doc/tm.texi: Re-generate.
12121 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
12123         PR target/81532
12124         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
12125         TARGET_AVX512DQ rather than TARGET_AVX512BW.
12127 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
12129         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
12131 2017-07-25  Richard Biener  <rguenther@suse.de>
12133         PR tree-optimization/81455
12134         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
12135         not walk in cycles when looking for guards.
12137 2017-07-25  Richard Biener  <rguenther@suse.de>
12139         PR tree-optimization/81529
12140         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
12141         when optimizing backedge uses.
12143 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
12145         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
12146         character for AIX.
12147         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
12148         to dl_section_ref.  On AIX, append an expression to subtract
12149         the size of the section length to dl_section_ref.
12151 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
12153         * configure.ac: If any of the config.* scripts fail, exit 1.
12154         * configure: Regenerate.
12156 2017-07-25  Richard Biener  <rguenther@suse.de>
12158         PR middle-end/81546
12159         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
12160         of immediate uses, be more verbose on errors.
12162 2017-07-25  Richard Biener  <rguenther@suse.de>
12164         PR tree-optimization/81510
12165         * tree-vect-loop.c (vect_is_simple_reduction): When the
12166         reduction stmt is not inside the loop bail out.
12168 2017-07-25  Richard Biener  <rguenther@suse.de>
12170         PR tree-optimization/81303
12171         * tree-vect-loop-manip.c (vect_loop_versioning): Build
12172         profitability check against LOOP_VINFO_NITERSM1.
12174 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
12176         * domwalk.c (cmp_bb_postorder): Simplify.
12177         (sort_bbs_postorder): New function.  Use it...
12178         (dom_walker::walk): ...here to optimize common cases.
12180 2017-07-25  Martin Liska  <mliska@suse.cz>
12182         PR ipa/81520
12183         * ipa-visibility.c (function_and_variable_visibility): Make the
12184         redirection just on target that supports aliasing.
12185         Fix GNU coding style.
12187 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12189         PR libgcc/61152
12190         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
12191         Format changes.
12192         * config/arm/rtems.h: Likewise.
12193         * config/bfin/rtems.h: Likewise.
12194         * config/i386/rtemself.h: Likewise.
12195         * config/lm32/rtems.h: Likewise.
12196         * config/m32c/rtems.h: Likewise.
12197         * config/m68k/rtemself.h: Likewise.
12198         * config/microblaze/rtems.h: Likewise.
12199         * config/mips/rtems.h: Likewise.
12200         * config/moxie/rtems.h: Likewise.
12201         * config/nios2/rtems.h: Likewise.
12202         * config/powerpcspe/rtems.h: Likewise.
12203         * config/rs6000/rtems.h: Likewise.
12204         * config/rtems.h: Likewise.
12205         * config/sh/rtems.h: Likewise.
12206         * config/sh/rtemself.h: Likewise.
12207         * config/sparc/rtemself.h: Likewise.
12209 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
12211         PR 81487
12212         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
12213         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
12214         * tree-ssa-structalias.c (alias_get_name): Same.
12216 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
12218         PR target/81414
12219         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
12220         instructions if no du chain is found.
12222 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
12224         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
12226 2017-07-25  Richard Biener  <rguenther@suse.de>
12228         PR middle-end/81505
12229         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
12230         sticky.
12232 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12234         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
12235         upper-regs options.
12236         (ISA_2_7_MASKS_SERVER): Likewise.
12237         (ISA_3_0_MASKS_IEEE): Likewise.
12238         (OTHER_P8_VECTOR_MASKS): Likewise.
12239         (OTHER_VSX_VECTOR_MASKS): Likewise.
12240         (POWERPC_MASKS): Likewise.
12241         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
12242         duplicate list of options.
12243         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
12244         explicit -mupper-regs options.
12245         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
12246         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
12247         alias for -mupper-regs-df.
12248         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
12249         (rs6000_init_hard_regno_mode_ok): Likewise.
12250         (rs6000_option_override_internal): Likewise.
12251         (rs6000_opt_masks): Likewise.
12252         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
12253         options in terms of whether -mvsx or -mpower8-vector was used.
12254         (TARGET_UPPER_REGS_DI): Likewise.
12255         (TARGET_UPPER_REGS_SF): Likewise.
12256         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
12257         -mupper-regs-* options.
12259 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
12261         * passes.c (emergency_dump_function): Print some empty lines and a
12262         header before the RTL dump.
12264 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
12266         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
12268 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
12270         PR target/79041
12271         * config/aarch64/aarch64.c (aarch64_classify_symbol):
12272         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
12274 2017-07-24  Carl Love  <cel@us.ibm.com>
12276         * config/rs6000/rs6000-c.c: Add support for built-in functions
12277         vector float vec_extract_fp32_from_shorth (vector unsigned short);
12278         vector float vec_extract_fp32_from_shortl (vector unsigned short);
12279         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
12280         vec_extract_fp_from_shortl): Add defines for the two builtins.
12281         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
12282         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
12283         new builtins.
12284         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
12285         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
12286         * doc/extend.texi: Update the built-in documentation file for the
12287         new built-in function.
12289 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
12291         PR bootstrap/81521
12292         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
12293         documentation.
12294         * doc/generic.texi: Likewise.
12295         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
12296         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
12298 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
12300         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
12301         (aarch64_mls_elt_merge<mode>): Likewise.
12303 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
12305         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
12306         having __cxa_atexit.
12308 2017-07-23  Michael Collison  <michael.collison@arm.com>
12310         * config/arm/arm.c (arm_option_override): Deprecate
12311         use of -mstructure-size-boundary.
12312         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
12313         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
12315 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12317         PR target/80695
12318         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
12319         Reduce cost estimate for direct moves.
12321 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
12323         PR target/80569
12324         * config/i386/i386.c (ix86_option_override_internal): Disable
12325         BMI, BMI2 and TBM instructions for -m16.
12327 2017-07-21  Carl Love  <cel@us.ibm.com>
12329         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12330         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
12331         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
12332         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
12333         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
12334         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
12335         VMULOSW): New enum "unspec" values.
12336         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
12337         altivec_vmulosw): New patterns.
12338         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
12339         VMULOSW): Add definitions.
12341 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
12343         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
12344         (qdf24xx): Likewise.
12345         * config/aarch64/aarch64-options-extensions.def (rdma); New.
12346         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
12347         (AARCH64_FL_V8_1): Renumber.
12348         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
12349         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
12350         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
12351         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
12352         rdma to feature modifiers list.
12354 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
12356         PR middle-end/56727
12357         * ipa-visibility (function_and_variable_visibility): Convert
12358         recursive PLT call to direct call if appropriate.
12360 2017-07-21  Andrew Pinski  <apinski@cavium.com>
12362         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
12363         operand 1 to see if the types precision matches.
12364         * fold-const.c (operand_equal_p): Likewise.
12366 2017-07-21  Richard Biener  <rguenther@suse.de>
12368         PR tree-optimization/81303
12369         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
12370         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
12371         (vect_peeling_hash_get_lowest_cost): Adjust.
12372         (vect_enhance_data_refs_alignment): Likewise.  Use
12373         vect_get_peeling_costs_all_drs to compute the penalty for no
12374         peeling to match up costs.
12376 2017-07-21  Richard Biener  <rguenther@suse.de>
12378         PR tree-optimization/81500
12379         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
12380         we didn't identify a reduction path.
12382 2017-07-21  Tom de Vries  <tom@codesourcery.com>
12383             Cesar Philippidis  <cesar@codesourcery.com>
12385         PR gcov-profile/81442
12386         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
12387         probabilities.
12389 2017-07-21  Tom de Vries  <tom@codesourcery.com>
12391         PR lto/81430
12392         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
12393         function.
12394         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
12395         nvptx_override_options_after_change.
12397 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
12399         * dwarf2out.c (output_file_names): Avoid double testing for
12400         dwarf_version >= 5.
12402 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
12404         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
12406 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
12408         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
12409         hot/cold regions.
12410         (try_crossjump_to_edge): Do not punt on partitioned functions.
12412 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
12414         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
12415         Put all BBs reachable only via paths crossing cold region to cold
12416         region.
12417         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
12419 2016-07-21  Richard Biener  <rguenther@suse.de>
12421         PR tree-optimization/81303
12422         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
12423         into account prologue and epilogue iterations when raising
12424         min_profitable_iters to sth at least covering one vector iteration.
12426 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
12428         * config/arm/arm.c (arm_test_cpu_arch_dat):
12429         Check for overlap.
12431 2017-07-20  Nathan Sidwell  <nathan@acm.org>
12433         Remove TYPE_METHODS.
12434         * tree.h (TYPE_METHODS): Delete.
12435         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
12436         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
12437         (dbxout_type_methods): Scan TYPE_FIELDS.
12438         (dbxout_type): Don't check TYPE_METHODS here.
12439         * function.c (use_register_for_decl): Always ignore register for
12440         class types when not optimizing.
12441         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
12442         * tree.c (free_lang_data_in_type): Stitch out member functions and
12443         templates from TYPE_FIELDS.
12444         (build_distinct_type_copy, verify_type_variant,
12445         verify_type): Member fns are on TYPE_FIELDS.
12446         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
12447         * tree-pretty-print.c (dump_generic_node): Likewise.
12449 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
12451         PR target/80846
12452         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
12453         V2TImode and V4TImode.
12454         (ix86_expand_vector_extract): Likewise.
12455         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
12456         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
12457         (ssescalarmode): Handle V4TImode and V2TImode.
12458         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
12459         (*vec_extractv2ti, *vec_extractv4ti): New insns.
12460         (VEXTRACTI128_MODE): New mode iterator.
12461         (splitter for *vec_extractv?ti first element): New.
12462         (VEC_INIT_MODE): New mode iterator.
12463         (vec_init<mode>): Consolidate 3 expanders into one using
12464         VEC_INIT_MODE mode iterator.
12466 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
12468         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
12469         non_spilled_static_chain_regno_p.
12471 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
12473         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
12475 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
12477         * bb-reorder.c (connect_traces): Allow copying of blocks within
12478         single partition.
12480 2017-07-20  Richard Biener  <rguenther@suse.de>
12482         * gimple.h (gimple_phi_result): Add gphi * overload.
12483         (gimple_phi_result_ptr): Likewise.
12484         (gimple_phi_arg): Likewise.  Adjust index assert to only
12485         allow actual argument accesses rather than all slots available
12486         by capacity.
12487         (gimple_phi_arg_def): Add gphi * overload.
12488         * tree-phinodes.c (make_phi_node): Initialize only actual
12489         arguments.
12490         (resize_phi_node): Clear memory not covered by old node,
12491         do not initialize excess argument slots.
12492         (reserve_phi_args_for_new_edge): Initialize new argument slot
12493         completely.
12495 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
12497         PR tree-optimization/81388
12498         Revert r238585:
12499         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
12501         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
12502         by removing computation of may_be_zero.
12504 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
12505             Tom de Vries  <tom@codesourcery.com>
12507         PR middle-end/81030
12508         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
12509         when gimple level profile disagrees with what RTL expander did.
12511 2017-07-20  Richard Biener  <rguenther@suse.de>
12513         PR tree-optimization/61171
12514         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
12515         (vect_analyze_stmt): Add slp instance parameter.
12516         (vectorizable_reduction): Likewise.
12517         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
12518         (vect_is_simple_reduction): Deal with chains not detected
12519         as SLP reduction chain, specifically not properly associated
12520         chains containing a mix of plus/minus.
12521         (get_reduction_op): Remove.
12522         (get_initial_defs_for_reduction): Simplify, pass in whether
12523         this is a reduction chain, pass in the SLP node for the PHIs.
12524         (vect_create_epilog_for_reduction): Get the SLP instance as
12525         arg and adjust.
12526         (vectorizable_reduction): Get the SLP instance as arg.
12527         During analysis remember the SLP node with the PHIs in the
12528         instance.  Simplify getting at the vectorized reduction PHIs.
12529         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
12530         through SLP instance.
12531         (vect_slp_analyze_operations): Likewise.
12532         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
12533         (vect_transform_stmt): Likewise.
12535 2017-07-20  Tom de Vries  <tom@codesourcery.com>
12537         PR tree-optimization/81489
12538         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
12539         read of phi arg location to before loop that modifies phi.
12541 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
12543         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
12544         New pattern.
12546 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
12548         PR middle-end/81331
12549         * except.c (execute): Fix ordering issue.
12551 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
12553         PR rtl-optimization/81423
12554         * combine.c (make_compound_operation_int): Don't try to optimize
12555         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
12557 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
12559         PR rtl-optimization/81423
12560         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
12561         with a constant that is -1 in the truncated to mode.
12563 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
12565         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
12566         (determine_unlikely_bbs): ... here.
12567         * predict.h (propagate_unlikely_bbs_forward): Declare.
12568         * cfgexpand.c (pass_expand::execute): Use it.
12569         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
12570         unlikely edges.
12571         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
12572         propagate_unlikely_bbs_forward.
12574 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
12576         PR middle-end/81331
12577         * except.c (maybe_add_nop_after_section_switch): New function.
12578         (execute): Use it.
12580 2017-07-19  Tom de Vries  <tom@codesourcery.com>
12582         * gimple.h (gimple_phi_set_arg): Make assert more strict.
12584 2017-07-19  Tom de Vries  <tom@codesourcery.com>
12586         * gimple.h (gimple_phi_arg): Make assert more strict.
12588 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
12590         * config.gcc (powerpc*-*-*): Add mmintrin.h.
12591         * config/rs6000/mmintrin.h: New file.
12592         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
12594 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
12596         PR tree-optimization/81346
12597         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
12599 2017-07-19  Tom de Vries  <tom@codesourcery.com>
12601         * config/nvptx/nvptx.md (VECIM): Add V2DI.
12603 2017-07-19  Tom de Vries  <tom@codesourcery.com>
12605         * config/nvptx/nvptx-modes.def: Add V2DImode.
12606         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
12607         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
12608         (nvptx_output_mov_insn): Handle lack of mov.b128.
12609         (nvptx_print_operand): Handle 'H' and 'L' codes.
12610         (nvptx_vector_mode_supported): Allow V2DImode.
12611         (nvptx_preferred_simd_mode): New function.
12612         (nvptx_data_alignment): New function.
12613         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
12614         nvptx_preferred_simd_mode.
12615         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
12616         64 to 128 bits.
12617         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
12619 2017-07-19  Tom de Vries  <tom@codesourcery.com>
12621         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
12622         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
12623         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
12624         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
12625         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
12626         (mov<VECIM>_insn): New define_insn.
12627         (define_expand "mov<VECIM>): New define_expand.
12629 2017-07-19  Tom de Vries  <tom@codesourcery.com>
12631         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
12633 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
12635         PR tree-optimization/81346
12636         * fold-const.h (fold_div_compare, range_check_type): Declare.
12637         * fold-const.c (range_check_type): New function.
12638         (build_range_check): Use range_check_type.
12639         (fold_div_compare): No longer static, rewritten into
12640         a match.pd helper function.
12641         (fold_comparison): Don't call fold_div_compare here.
12642         * match.pd (X / C1 op C2): New optimization using fold_div_compare
12643         as helper function.
12645 2017-07-19  Nathan Sidwell  <nathan@acm.org>
12647         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
12648         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
12649         * tree.c (find_decls_types_r, verify_type): Use
12650         TYPE_{MIN,MAX}_VALUE_RAW.
12651         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
12652         (hash_tree): Likewise.
12653         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
12654         Likewise.
12655         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
12656         Likewise.
12658 2017-07-18  Tom de Vries  <tom@codesourcery.com>
12660         PR middle-end/81464
12661         * omp-expand.c (expand_omp_for_static_chunk): Handle
12662         equal-argument loop exit phi.
12664 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
12666         PR target/81471
12667         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
12668         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
12669         operand 2 predicate.
12670         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
12671         operand 2 predicate.
12672         (ror,rol -> rorx splitters): Use const_int_operand as
12673         operand 2 predicate.
12675 2017-06-18  Richard Biener  <rguenther@suse.de>
12677         PR tree-optimization/81410
12678         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
12679         the gap in the ! slp_perm SLP case after each group.
12681 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
12683         PR middle-end/81463
12684         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
12685         again.
12687 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
12689         PR middle-end/81462
12690         * predict.c (set_even_probabilities): Cleanup; do not affect
12691         probabilities that are already known.
12692         (combine_predictions_for_bb): Call even when count is set.
12694 2017-07-18  Nathan Sidwell  <nathan@acm.org>
12696         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
12697         TYPE_MAX_VALUE.
12699 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
12701         PR target/81408
12702         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
12703         optimization for loop niter analysis.
12705 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
12707         PR target/81473
12708         * config/avr/avr.c (avr_optimize_casesi): Don't use
12709         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
12711 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
12713         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
12714         body_cost_vec from _vect_peel_extended_info.
12715         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
12716         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
12717         npeel.
12719 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
12721         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
12723 2017-07-18  Richard Biener  <rguenther@suse.de>
12725         PR tree-optimization/80620
12726         PR tree-optimization/81403
12727         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
12728         info when re-using a VN table entry.
12730 2017-07-18  Richard Biener  <rguenther@suse.de>
12732         PR tree-optimization/81418
12733         * tree-vect-loop.c (vectorizable_reduction): Properly compute
12734         vectype_in.  Verify that with lane-reducing reduction operations
12735         we have a single def-use cycle.
12737 2017-07-17  Carl Love  <cel@us.ibm.com>
12739         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
12741         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12742         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
12743         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
12744         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
12745         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
12746         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
12747         VMULOSW): New enum "unspec" values.
12748         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
12749         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
12750         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
12751         altivec_vmulosw): New patterns.
12752         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
12753         VMULOSW): Add definitions.
12754 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
12756         * config/alpha/alpha.c: Include predict.h.
12758 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
12760         * tree-vrp.c (compare_assert_loc): Fix comparison function
12761         to return predictable results.
12763 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
12765         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
12766         option.
12767         (subdi3): Likewise.
12768         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
12769         * doc/invoke.texi (mexpand-adddi): Update text.
12771 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
12773         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
12774         that also clobbers the CC register. The old expand code is moved
12775         to ...
12776         (*arc_clzsi2): ... here.
12777         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
12778         the CC register. The old expand code is moved to ...
12779         (arc_ctzsi2): ... here.
12781 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
12783         * config/arc/arc.opt (mindexed-loads): Use initial value
12784         TARGET_INDEXED_LOADS_DEFAULT.
12785         (mauto-modify-reg): Use initial value
12786         TARGET_AUTO_MODIFY_REG_DEFAULT.
12787         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
12788         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
12789         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
12790         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
12792 2017-07-17  Martin Liska  <mliska@suse.cz>
12794         PR sanitizer/81302
12795         * opts.c (finish_options): Do not allow -fgnu-tm
12796         w/ -fsanitize={kernel-,}address.  Say sorry.
12798 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
12800         PR target/81369
12801         * tree-loop-distribution.c (classify_partition): Only assert on
12802         numer of iterations.
12803         (merge_dep_scc_partitions): Delete prameter.  Update function call.
12804         (distribute_loop): Remove code handling loop with unknown niters.
12805         (pass_loop_distribution::execute): Skip loop with unknown niters.
12807 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
12809         PR target/81369
12810         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
12811         function sort_partitions_by_post_order.
12813 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
12815         PR tree-optimization/81374
12816         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
12817         the max index of basic blocks, rather than number of basic blocks.
12819 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
12821         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
12822         proto.
12823         (arc_legitimate_pic_operand_p): Likewise.
12824         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
12825         function.
12826         (arc_needs_pcl_p): Likewise.
12827         (arc_legitimate_pc_offset_p): Likewise.
12828         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
12829         function is also used in constrains.md.
12830         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
12831         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
12832         PLUS.  Only return true/false in known cases, otherwise assert.
12833         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
12834         is already called in arc_legitimate_constant_p.
12835         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
12836         pic addresses.
12837         (LEGITIMATE_PIC_OPERAND_P): Use
12838         arc_raw_symbolic_reference_mentioned_p function.
12839         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
12840         function.
12841         (Cal): Likewise.
12842         (C32): Likewise.
12844 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
12845         Andrew Burgess  <andrew.burgess@embecosm.com>
12847         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
12848         (arc_return_address_register): New function.
12849         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
12850         (arc_handle_fndecl_attribute): Add naked attribute.
12851         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
12852         (TARGET_WARN_FUNC_RETURN): Likewise.
12853         (arc_allocate_stack_slots_for_args): New function.
12854         (arc_warn_func_return): Likewise.
12855         (machine_function): Change type fn_type.
12856         (arc_compute_function_type): Consider new naked function type,
12857         change function return type.
12858         (arc_must_save_register): Adapt to handle new
12859         arc_compute_function_type's return type.
12860         (arc_expand_prologue): Likewise.
12861         (arc_expand_epilogue): Likewise.
12862         (arc_return_address_regs): Delete.
12863         (arc_return_address_register): New function.
12864         (arc_epilogue_uses): Use above function.
12865         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
12866         (arc_function_type): Change encoding, add naked type.
12867         (ARC_INTERRUPT_P): Change to handle the new encoding.
12868         (ARC_FAST_INTERRUPT_P): Likewise.
12869         (ARC_NORMAL_P): Define.
12870         (ARC_NAKED_P): Likewise.
12871         (arc_compute_function_type): Delete prototype.
12872         * config/arc/arc.md (in_ret_delay_slot): Use
12873         arc_return_address_register function.
12874         (simple_return): Likewise.
12875         (p_return_i): Likewise.
12877 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
12879         PR tree-optimization/81428
12880         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
12881         can't be built for those types.
12883 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
12885         Remove stuff dead since r239246.
12887         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
12888         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
12889         (avr_inform_devices): Remove dead stuff.
12891 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
12893         * config/arm/arm_neon.h: Fix softp typo.
12895 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
12897         PR tree-optimization/81365
12898         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
12899         aggregate moves onto bb predecessor edges, make sure there are no
12900         loads that could alias the lhs in between the start of bb and the
12901         loads from *phi.
12903 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
12905         PR 80929
12906         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
12907         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
12908         [LSHIFTRT, outer_code = TRUNCATE]: Same.
12910 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
12912         PR tree-optimization/81396
12913         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
12914         (init_symbolic_number): Initialize it to 1.
12915         (perform_symbolic_merge): Add n_ops from both operands into the new
12916         n_ops.
12917         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
12918         without base_addr as useless if they need more than one operation.
12919         (bswap_replace): Handle !bswap case for NULL base_addr.
12921 2017-07-17  Tom de Vries  <tom@codesourcery.com>
12923         PR target/81069
12924         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
12925         as possible.
12927 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12929         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
12930         conditional builtin define __FIX_LEON3FT_B2BST.
12932 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
12934         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
12935         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
12936         with -mfix-ut700.
12938 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
12940         PR rtl-optimization/81424
12941         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
12942         to remove potential trapping from operands if -fnon-call-exceptions.
12944 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
12946         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
12947         profile_proability for scalling.
12948         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
12950 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
12952         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
12954 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
12956         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
12957         fixpoint arithmetics.
12959 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
12961         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
12962         fixpoint arithmetics.
12964 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
12966         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
12967         fixpoint arithmetics.
12969 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
12971         * profile-count.h (profile_probability::from_reg_br_prob_note,
12972         profile_probability::to_reg_br_prob_note): New functions.
12973         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
12974         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
12975         * predict.c (probability_reliable_p): Update.
12976         (edge_probability_reliable_p): Update.
12977         (br_prob_note_reliable_p): Update.
12978         (invert_br_probabilities): Update.
12979         (add_reg_br_prob_note): New function.
12980         (combine_predictions_for_insn): Update.
12981         * asan.c (asan_clear_shadow): Update.
12982         * cfgbuild.c (compute_outgoing_frequencies): Update.
12983         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
12984         (update_br_prob_note): Update.
12985         (rtl_verify_edges): Update.
12986         (purge_dead_edges): Update.
12987         (fixup_reorder_chain): Update.
12988         * emit-rtl.c (try_split): Update.
12989         * ifcvt.c (cond_exec_process_insns): Update.
12990         (cond_exec_process_if_block): Update.
12991         (dead_or_predicable): Update.
12992         * internal-fn.c (expand_addsub_overflow): Update.
12993         (expand_neg_overflow): Update.
12994         (expand_mul_overflow): Update.
12995         * loop-doloop.c (doloop_modify): Update.
12996         * loop-unroll.c (compare_and_jump_seq): Update.
12997         * optabs.c (emit_cmp_and_jump_insn_1): Update.
12998         * predict.h: Update.
12999         * reorg.c (mostly_true_jump): Update.
13000         * rtl.h: Update.
13001         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
13002         * config/alpha/alpha.c (emit_unlikely_jump): Update.
13003         * config/arc/arc.c: (emit_unlikely_jump): Update.
13004         * config/arm/arm.c: (emit_unlikely_jump): Update.
13005         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
13006         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
13007         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
13008         (ix86_print_operand): Update.
13009         (ix86_split_fp_branch): Update.
13010         (predict_jump): Update.
13011         * config/ia64/ia64.c (ia64_print_operand): Update.
13012         * config/mmix/mmix.c (mmix_print_operand): Update.
13013         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
13014         (rs6000_expand_split_stack_prologue): Update.
13015         * config/rs6000/rs6000.c: Update.
13016         * config/s390/s390.c (s390_expand_vec_strlen): Update.
13017         (s390_expand_vec_movstr): Update.
13018         (s390_expand_cs_tdsi): Update.
13019         (s390_expand_split_stack_prologue): Update.
13020         * config/sh/sh.c (sh_print_operand): Update.
13021         (expand_cbranchsi4): Update.
13022         (expand_cbranchdi4): Update.
13023         * config/sparc/sparc.c (output_v9branch): Update.
13024         * config/spu/spu.c (get_branch_target): Update.
13025         (ea_load_store_inline): Update.
13026         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
13027         * config/tilepro/tilepro.c: Update.
13029 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
13031         * gimplify.c (mostly_copy_tree_r): Revert latest change.
13032         (gimplify_save_expr): Likewise.
13034 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
13036         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
13038 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
13040         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
13041         TV_IPA_FNSUMMARY.
13042         * timevar.def (TV_IPA_FNSUMMARY): Define.
13044 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
13046         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
13047         to back store errata sensitive sequence from being generated.
13048         (sqrtdf2_fix): Likewise.
13050 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
13052         * tree-ssa-threadupdate.c (compute_path_counts,
13053         update_joiner_offpath_counts): Use profile_probability.
13055 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13057         Revert:
13058         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13060         * config/arm/arm-c.c (arm_cpu_builtins): Define
13061         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
13063 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13065         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13066         array entries to represent __ieee128 versions of the
13067         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
13068         scalar_extract_sig, and scalar_insert_exp built-in functions.
13069         (altivec_resolve_overloaded_builtin): Add special case handling
13070         for the __builtin_scalar_insert_exp function, as represented by
13071         the P9V_BUILTIN_VEC_VSIEDP constant.
13072         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
13073         exponent support for __ieee128 argument.
13074         (VSESQP): Add scalar extract signature support for __ieee128
13075         argument.
13076         (VSTDCNQP): Add scalar test negative support for __ieee128
13077         argument.
13078         (VSIEQP): Add scalar insert exponent support for __int128 argument
13079         with __ieee128 result.
13080         (VSIEQPF): Add scalar insert exponent support for __ieee128
13081         argument with __ieee128 result.
13082         (VSTDCQP): Add scalar test data class support for __ieee128
13083         argument.
13084         (VSTDCNQP): Add overload support for scalar test negative with
13085         __ieee128 argument.
13086         (VSTDCQP): Add overload support for scalar test data class
13087         __ieee128 argument.
13088         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
13089         UNSPEC_VSX_SXSIGDP.
13090         (UNSPEC_VSX_SIEXPQP): New constant.
13091         (xsxexpqp): New insn for VSX scalar extract exponent quad
13092         precision.
13093         (xsxsigqp): New insn for VSX scalar extract significand quad
13094         precision.
13095         (xsiexpqpf): New insn for VSX scalar insert exponent quad
13096         precision with floating point argument.
13097         (xststdcqp): New expand for VSX scalar test data class quad
13098         precision.
13099         (xststdcnegqp): New expand for VSX scalar test negative quad
13100         precision.
13101         (xststdcqp): New insn to match expansions for VSX scalar test data
13102         class quad precision and VSX scalar test negative quad precision.
13103         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
13104         special case operand checking to enforce that second operand of
13105         VSX scalar test data class with quad precision argument is a 7-bit
13106         unsigned literal.
13107         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
13108         prototypes and descriptions of __ieee128 versions of
13109         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
13110         scalar_test_data_class, and scalar_test_neg built-in functions.
13112 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13114         PR tree-optimization/81162
13115         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
13116         replace a negate with an add.
13118 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
13120         * doc/invoke.texi (arm/-mcpu): Document +crypto.
13122 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13124         * config/arm/arm-c.c (arm_cpu_builtins): Define
13125         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
13127 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13129         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
13130         (armv8-r): Set ARM Cortex-R52 as default CPU.
13131         * config/arm/arm-tables.opt: Regenerate.
13132         * config/arm/arm-tune.md: Regenerate.
13133         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
13134         Cortex-R52.
13135         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
13136         extension for -mcpu=cortex-r52.
13138 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13140         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
13141         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
13142         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
13143         (fp-armv8): Define it as FP_ARMv8 only.
13144         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
13145         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
13146         TARGET_FPU_ARMV8.
13147         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
13148         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
13149         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
13150         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
13151         than TARGET_FPU_ARMV8.
13152         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
13153         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
13154         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
13155         TARGET_FPU_ARMV8.
13156         * config/arm/neon.md (neon_vrint): Likewise.
13157         (neon_vcvt): Likewise.
13158         (neon_<fmaxmin_op><mode>): Likewise.
13159         (<fmaxmin><mode>3): Likewise.
13160         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
13161         * config/arm/predicates.md (arm_cond_move_operator): Check against
13162         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
13164 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
13166         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
13167         to top of function.
13169 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13171         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
13172         loop in comment with memset.
13174 2017-07-14  Martin Liska  <mliska@suse.cz>
13176         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
13177         * dwarf2out.c (is_java): Remove the function.
13178         (output_pubname): Remove usage of the function.
13179         (lower_bound_default): Remove usage of DW_LANG_Java.
13180         (gen_compile_unit_die): Likewise.
13181         * gcc.c: Remove compiler defaults for .java and .zip files.
13182         * gimple-expr.c (remove_suffix): Change as there's no longer
13183         extension than 4-letter one.
13184         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
13185         (gimplify_save_expr): Likewise.
13186         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
13187         as it's possible even for other languages than Java.
13188         * langhooks.h (struct lang_hooks): Remove Java from a comment.
13189         * lto-opts.c (lto_write_options): Remove reference to Java.
13190         * opts.c (strip_off_ending): Update file extension handling.
13191         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
13192         * tree-eh.c (lower_resx): Likewise.
13193         * tree.c (free_lang_data_in_type): Remove dead code.
13194         (find_decls_types_r): Likewise.
13195         (build_common_builtin_nodes): Remove Java from a comment.
13196         (verify_type): Remove dead code.
13197         * varasm.c (assemble_external): Remove Java from a comment.
13199 2017-07-14  Martin Liska  <mliska@suse.cz>
13201         * opts.c (finish_options): Add quotes.
13202         (common_handle_option): Likewise.
13204 2017-07-14  Martin Liska  <mliska@suse.cz>
13206         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
13207         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
13208         Remove N_SO_PASCAL.
13209         * dwarf2out.c (lower_bound_default): Do not handle
13210         DW_LANG_Pascal83.
13211         (gen_compile_unit_die): Likewise.
13212         * gcc.c: Remove default extension binding for GNU Pascal.
13213         * stmt.c: Remove Pascal language from a comment.
13214         * xcoffout.c: Likewise.
13216 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
13218         PR c/81405
13219         * diagnostic-show-locus.c (fixit_cmp): New function.
13220         (layout::layout): Sort m_fixit_hints.
13221         (column_range::column_range): Assert that the values are valid.
13222         (struct char_span): New struct.
13223         (correction::overwrite): New method.
13224         (struct source_line): New struct.
13225         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
13226         calls in terms of classes source_line and char_span, and
13227         correction::overwrite.
13228         (selftest::test_overlapped_fixit_printing_2): New function.
13229         (selftest::diagnostic_show_locus_c_tests): Call it.
13231 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
13233         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
13234         early if there is no lhs.
13236 2017-07-13  Martin Liska  <mliska@suse.cz>
13238         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
13239         (gen_reference_type_die): Likewise.
13240         * stor-layout.c: Remove Pascal-related comment.
13242 2017-07-13  Martin Liska  <mliska@suse.cz>
13244         * opts.c (finish_options): Add quotes to error messages.
13245         (parse_sanitizer_options): Likewise.
13247 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13249         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
13251 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
13253         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
13255 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
13257         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
13258         during expansion.
13259         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
13261 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
13263         PR target/81193
13264         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
13265         provides the hardware capability bits, define the macro
13266         __BUILTIN_CPU_SUPPORTS__.
13267         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
13268         if GLIBC does not provide the hardware capability bits.  Add a
13269         gcc_unreachable call if the built-in cpu function is neither
13270         __builtin_cpu_is nor __builtin_cpu_supports.
13271         (rs6000_get_function_versions_dispatcher): Change the warning
13272         that an old GLIBC is used which does not export the capability
13273         bits to be an error.
13274         * doc/extend.texi (target_clones attribute): Document the
13275         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
13276         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
13277         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
13278         the macros defined by GCC if the newer GLIBC is available.
13280 2017-07-12  Jeff Law  <law@redhat.com>
13282         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
13283         remaining includes slightly.
13284         * config/riscv/riscv-builtins.c: Include profile-count.h.
13286 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
13288         PR target/79883
13289         * config/avr/avr.c (avr_set_current_function): In diagnostic
13290         messages: Quote keywords and (parts of) identifiers.
13291         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
13292         "INTERUPT".
13294 2017-07-12  Carl Love  <cel@us.ibm.com>
13296         * config/rs6000/rs6000-c.c: Add support for built-in functions
13297         vector bool char vec_revb (vector bool char);
13298         vector bool short vec_revb (vector short char);
13299         vector bool int vec_revb (vector bool int);
13300         vector bool long long vec_revb (vector bool long long);
13301         * doc/extend.texi: Update the built-in documentation file for the
13302         new built-in functions.
13304 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13306         * config/s390/s390.md: Remove movcc splitter.
13308 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13310         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
13311         load/store on condition.
13313 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
13315         PR target/81407
13316         * config/avr/avr.c (avr_encode_section_info)
13317         [progmem && !TREE_READONLY]: Error if progmem object needs
13318         constructing.
13320 2017-07-11  Michael Collison  <michael.collison@arm.com>
13322         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
13323         New pattern.
13325 2017-07-11  Carl Love  <cel@us.ibm.com>
13327         * config/rs6000/rs6000-c.c: Add support for builtins
13328         vector unsigned int vec_parity_lsbb (vector signed int);
13329         vector unsigned int vec_parity_lsbb (vector unsigned int);
13330         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
13331         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
13332         vector unsigned long long vec_parity_lsbb (vector signed long long);
13333         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
13334         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
13335         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
13336         * doc/extend.texi: Update the built-in documentation file for the
13337         new built-in functions.
13339 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
13341         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
13342         (layout::m_primary_loc): New field.
13343         (layout::layout): Initialize new field.  Move location filtering
13344         logic from here to...
13345         (layout::maybe_add_location_range): ...this new method.  Add
13346         support for filtering to just the lines already specified by other
13347         locations.
13348         (layout::will_show_line_p): New method.
13349         (gcc_rich_location::add_location_if_nearby): New method.
13350         (selftest::test_add_location_if_nearby): New test function.
13351         (selftest::diagnostic_show_locus_c_tests): Call it.
13352         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
13353         New method.
13355 2017-07-11  Tom de Vries  <tom@codesourcery.com>
13357         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
13358         (bb_first_real_insn): New function.
13359         (nvptx_single): Add extra initialization of broadcasted condition
13360         variables.
13362 2017-07-11  Nathan Sidwell  <nathan@acm.org>
13364         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
13366 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
13368         * doc/extend.texi (AVR Function Attributes): Remove weblink to
13369         Binutils doc as TEXI will mess them up.
13370         * doc/invoke.texi (AVR Options): Same here.
13372 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
13374         * config/sparc/sparc.opt (mfix-ut700): New option.
13375         (mfix-gr712rc): Likewise.
13376         (sparc_fix_b2bst): New variable.
13377         * doc/invoke.texi (SPARC options): Document them.
13378         (ARM options): Fix warnings.
13379         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
13380         instructions to prevent sequences that can trigger the store-store
13381         errata for certain LEON3FT processors.
13382         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
13383         (sparc_option_override): Set sparc_fix_b2bst appropriately.
13384         * config/sparc/sparc.md (fix_b2bst): New attribute.
13385         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
13387 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
13389         PR target/81375
13390         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
13391         (rcpps): Ditto.
13392         (*rsqrtsf2_sse): Ditto.
13393         (rsqrtsf2): Ditto.
13394         (div<mode>3): Macroize insn from divdf3 and divsf3
13395         using MODEF mode iterator.
13397 2017-07-10  Martin Sebor  <msebor@redhat.com>
13399         PR tree-optimization/80397
13400         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
13401         instead of testing for equality to INTEGER_TYPE.
13403 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
13405         * config.gcc: Remove uclibc from arc target spec.
13407 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
13409         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
13411 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
13413         PR lto/80838
13414         * lto-wrapper.c (remove_option): New function.
13415         (merge_and_complain): Merge PIC/PIE options more realistically.
13417 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
13419         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
13421         PR target/20296
13422         PR target/81268
13423         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
13424         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
13425         * config.in: Regenerate.
13426         * configure: Regenerate.
13427         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
13428         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
13429         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
13430         (TARGET_GASISR_PROLOGUES): ...target mask.
13431         * common/config/avr/avr-common.c
13432         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
13433         Set -mgas-isr-prologues.
13434         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
13435         INSERT_PASS_BEFORE for it.
13436         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
13437         * config/avr/avr.c (avr_option_override)
13438         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
13439         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
13440         (avr_attribute_table) <no_gccisr>: Add new function attribute.
13441         (avr_set_current_function) <is_no_gccisr>: Init machine field.
13442         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
13443         and rtl_opt_pass.
13444         (make_avr_pass_pre_proep): New function.
13445         (emit_push_sfr) <treg>: Add argument to function and use it
13446         instead of TMP_REG.
13447         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
13448         and set machine->gasisr.yes.
13449         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
13450         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
13451         __gcc_isr.n_pushed to .L__stack_usage.
13452         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
13453         (avr_asm_final_postscan_insn): ...this new static function.
13454         * config/avr/avr.h (machine_function)
13455         <is_no_gccisr, use_L__stack_usage>: New fields.
13456         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
13457         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
13458         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
13459         (gasisr, *gasisr): New expander and insn.
13460         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
13461         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
13462         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
13464 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
13466         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
13467         in quoted strings.
13469 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
13471         Move jump-tables out of .text again.
13473         PR target/81075
13474         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
13475         (ASM_OUTPUT_ADDR_VEC): New function.
13476         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
13477         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
13478         INSN_ADDRESSes as asm comment.
13479         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
13480         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
13481         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
13482         * config/avr/avr.md (*tablejump): Adjust comment.
13483         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
13484         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
13485         New detail.
13486         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
13487         (avr_output_addr_vec): New proto.
13488         (avr_log_t) <insn_addresses>: New field.
13490 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13492         PR target/81313
13493         * config/i386/i386.c (ix86_function_arg_advance): Set
13494         outgoing_args_on_stack to true if there are outgoing arguments
13495         on stack.
13496         (ix86_function_arg): Likewise.
13497         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
13498         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
13499         * config/i386/i386.h (machine_function): Add
13500         outgoing_args_on_stack.
13502 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
13504         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
13505         supporting pthreds.
13506         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
13508 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
13510         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
13511         (REAL_H): Remove $(MACHMODE_H).
13512         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
13513         double-int.h.
13514         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
13515         $(MACHMODE_H) and double-int.h.
13516         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
13517         $(MACHMODE_H).
13518         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
13519         double-int.h.
13521 2017-07-07  Andrew Pinski  <apinski@cavium.com>
13523         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
13524         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
13526 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
13528         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
13529         Add warning if GCC was not configured to link against a GLIBC that
13530         exports the hardware capability bits.
13531         (make_resolver_func): Make resolver function private and not a
13532         COMDAT function.  Create the name with clone_function_name instead
13533         of make_unique_name.
13535         PR target/81348
13536         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
13537         correct operand in doing the split.
13539 2017-07-07 Carl Love  <cel@us.ibm.com>
13541         * config/rs6000/rs6000-c: Add support for built-in function
13542         vector unsigned short vec_pack_to_short_fp32 (vector float,
13543                                                       vector float).
13544         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
13545         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
13546         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
13547         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
13548         (convert_4f32_8i16): Add define_expand.
13549         * doc/extend.texi: Update the built-in documentation file for the
13550         new built-in function.
13552 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
13554         * config/sparc/m8.md: New file.
13555         * config/sparc/sparc.md: Include m8.md.
13557 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
13559         * config/sparc/sparc.opt: New option -mvis4b.
13560         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
13561         (sparc_option_override): Handle VIS4B.
13562         (enum sparc_builtins): Define
13563         SPARC_BUILTIN_DICTUNPACK{8,16,32},
13564         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
13565         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
13566         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
13567         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
13568         (check_constant_argument): New function.
13569         (sparc_vis_init_builtins): Define builtins
13570         __builtin_vis_dictunpack{8,16,32},
13571         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
13572         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
13573         __builtin_vis_fpcmpde{8,16,32}shl and
13574         __builtin_vis_fpcmpur{8,16,32}shl.
13575         (sparc_expand_builtin): Check that the constant operands to
13576         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
13577         constant and in range.
13578         * config/sparc/sparc-c.c (sparc_target_macros): Handle
13579         TARGET_VIS4B.
13580         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
13581         (SPARC_IMM5_P): Likewise.
13582         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
13583         (enabled): Handle vis4b.
13584         (UNSPEC_DICTUNPACK): New unspec.
13585         (UNSPEC_FPCMPSHL): Likewise.
13586         (UNSPEC_FPUCMPSHL): Likewise.
13587         (UNSPEC_FPCMPDESHL): Likewise.
13588         (UNSPEC_FPCMPURSHL): Likewise.
13589         (cpu_feature): New CPU feature `vis4b'.
13590         (dictunpack{8,16,32}): New insns.
13591         (FPCSMODE): New mode iterator.
13592         (fpcscond): New code iterator.
13593         (fpcsucond): Likewise.
13594         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
13595         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
13596         (fpcmpde{8,16,32}{si,di}shl): Likewise.
13597         (fpcmpur{8,16,32}{si,di}shl): Likewise.
13598         * config/sparc/constraints.md: Define constraints `q' for unsigned
13599         2-bit integer constants and `t' for unsigned 5-bit integer
13600         constants.
13601         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
13602         predicate.
13603         (imm5_operand_dictunpack16): Likewise.
13604         (imm5_operand_dictunpack32): Likewise.
13605         (imm2_operand): Likewise.
13606         * doc/invoke.texi (SPARC Options): Document -mvis4b.
13607         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
13608         ditunpack* and fpcmp*shl builtins.
13610 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
13612         * config.gcc: Handle m8 in --with-{cpu,tune} options.
13613         * config.in: Add HAVE_AS_SPARC6 define.
13614         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
13615         M8.
13616         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
13617         TARGET_CPU_m8.
13618         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
13619         (CPP_CPU_SPEC): Handle m8.
13620         (ASM_CPU_SPEC): Likewise.
13621         * config/sparc/sparc-opts.h (enum processor_type): Add
13622         PROCESSOR_M8.
13623         * config/sparc/sparc.c (m8_costs): New struct.
13624         (sparc_option_override): Handle TARGET_CPU_m8.
13625         (sparc32_initialize_trampoline): Likewise.
13626         (sparc64_initialize_trampoline): Likewise.
13627         (sparc_issue_rate): Likewise.
13628         (sparc_register_move_cost): Likewise.
13629         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
13630         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
13631         (ASM_CPU64_DEFAULT_SPEC): Likewise.
13632         (CPP_CPU_SPEC): Handle M8.
13633         (ASM_CPU_SPEC): Likewise.
13634         (AS_M8_FLAG): Define.
13635         * config/sparc/sparc.md: Add m8 to the cpu attribute.
13636         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
13637         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
13638         M8 instructions.
13639         * configure: Regenerate.
13640         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
13641         -mtune=m8.
13643 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
13645         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
13646         subtypes.
13647         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
13648         ("*movdi_insn_sp32"): Do not set v3pipe.
13649         ("*movsi_insn"): Likewise.
13650         ("*movdi_insn_sp64"): Likewise.
13651         ("*movsf_insn"): Likewise.
13652         ("*movdf_insn_sp32"): Likewise.
13653         ("*movdf_insn_sp64"): Likewise.
13654         ("*zero_extendsidi2_insn_sp64"): Likewise.
13655         ("*sign_extendsidi2_insn"): Likewise.
13656         ("*mov<VM32:mode>_insn"): Likewise.
13657         ("*mov<VM64:mode>_insn_sp64"): Likewise.
13658         ("*mov<VM64:mode>_insn_sp32"): Likewise.
13659         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
13660         ("<vlop:code><VL:mode>3"): Likewise.
13661         ("*not_<vlop:code><VL:mode>3"): Likewise.
13662         ("*nand<VL:mode>_vis"): Likewise.
13663         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
13664         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
13665         ("one_cmpl<VL:mode>2"): Likewise.
13666         ("faligndata<VM64:mode>_vis"): Likewise.
13667         ("alignaddrsi_vis"): Likewise.
13668         ("alignaddrdi_vis"): Likweise.
13669         ("alignaddrlsi_vis"): Likewise.
13670         ("alignaddrldi_vis"): Likewise.
13671         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
13672         ("bmaskdi_vis"): Likewise.
13673         ("bmasksi_vis"): Likewise.
13674         ("bshuffle<VM64:mode>_vis"): Likewise.
13675         ("cmask8<P:mode>_vis"): Likewise.
13676         ("cmask16<P:mode>_vis"): Likewise.
13677         ("cmask32<P:mode>_vis"): Likewise.
13678         ("pdistn<P:mode>_vis"): Likewise.
13679         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
13681 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
13683         * config/sparc/sparc.md ("subtype"): New insn attribute.
13684         ("*wrgsr_sp64"): Set insn subtype.
13685         ("*rdgsr_sp64"): Likewise.
13686         ("alignaddrsi_vis"): Likewise.
13687         ("alignaddrdi_vis"): Likewise.
13688         ("alignaddrlsi_vis"): Likewise.
13689         ("alignaddrldi_vis"): Likewise.
13690         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
13691         ("fexpand_vis"): Likewise.
13692         ("fpmerge_vis"): Likewise.
13693         ("faligndata<VM64:mode>_vis"): Likewise.
13694         ("bshuffle<VM64:mode>_vis"): Likewise.
13695         ("cmask8<P:mode>_vis"): Likewise.
13696         ("cmask16<P:mode>_vis"): Likewise.
13697         ("cmask32<P:mode>_vis"): Likewise.
13698         ("fchksm16_vis"): Likewise.
13699         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
13700         ("fmean16_vis"): Likewise.
13701         ("fp<plusminus_insn>64_vis"): Likewise.
13702         ("<plusminus_insn>v8qi3"): Likewise.
13703         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
13704         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
13705         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
13706         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
13707         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
13708         ("*movqi_insn"): Likewise.
13709         ("*movhi_insn"): Likewise.
13710         ("*movsi_insn"): Likewise.
13711         ("movsi_pic_gotdata_op"): Likewise.
13712         ("*movdi_insn_sp32"): Likewise.
13713         ("*movdi_insn_sp64"): Likewise.
13714         ("movdi_pic_gotdata_op"): Likewise.
13715         ("*movsf_insn"): Likewise.
13716         ("*movdf_insn_sp32"): Likewise.
13717         ("*movdf_insn_sp64"): Likewise.
13718         ("*zero_extendhisi2_insn"): Likewise.
13719         ("*zero_extendqihi2_insn"): Likewise.
13720         ("*zero_extendqisi2_insn"): Likewise.
13721         ("*zero_extendqidi2_insn"): Likewise.
13722         ("*zero_extendhidi2_insn"): Likewise.
13723         ("*zero_extendsidi2_insn_sp64"): Likewise.
13724         ("ldfsr"): Likewise.
13725         ("prefetch_64"): Likewise.
13726         ("prefetch_32"): Likewise.
13727         ("tie_ld32"): Likewise.
13728         ("tie_ld64"): Likewise.
13729         ("*tldo_ldub_sp32"): Likewise.
13730         ("*tldo_ldub1_sp32"): Likewise.
13731         ("*tldo_ldub2_sp32"): Likewise.
13732         ("*tldo_ldub_sp64"): Likewise.
13733         ("*tldo_ldub1_sp64"): Likewise.
13734         ("*tldo_ldub2_sp64"): Likewise.
13735         ("*tldo_ldub3_sp64"): Likewise.
13736         ("*tldo_lduh_sp32"): Likewise.
13737         ("*tldo_lduh1_sp32"): Likewise.
13738         ("*tldo_lduh_sp64"): Likewise.
13739         ("*tldo_lduh1_sp64"): Likewise.
13740         ("*tldo_lduh2_sp64"): Likewise.
13741         ("*tldo_lduw_sp32"): Likewise.
13742         ("*tldo_lduw_sp64"): Likewise.
13743         ("*tldo_lduw1_sp64"): Likewise.
13744         ("*tldo_ldx_sp64"): Likewise.
13745         ("*mov<VM32:mode>_insn"): Likewise.
13746         ("*mov<VM64:mode>_insn_sp64"): Likewise.
13747         ("*mov<VM64:mode>_insn_sp32"): Likewise.
13749 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
13751         * config/sparc/sparc.md ("type"): New insn type viscmp.
13752         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
13753         viscmp.
13754         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
13755         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
13756         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
13757         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
13758         viscmp.
13759         ("n7_vis_logical_11cycle"): Likewise.
13760         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
13761         * config/sparc/niagara2.md ("niag3_vis": Likewise.
13762         * config/sparc/niagara.md ("niag_vis"): Likewise.
13763         * config/sparc/ultra3.md ("us3_fga"): Likewise.
13764         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
13766 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
13768         * config/sparc/sparc.md: New instruction type `bmask'.
13769         (bmaskdi_vis): Use the `bmask' type.
13770         (bmasksi_vis): Likewise.
13771         * config/sparc/ultra3.md (us3_array): Likewise.
13772         * config/sparc/niagara7.md (n7_array): Likewise.
13773         * config/sparc/niagara4.md (n4_array): Likewise.
13774         * config/sparc/niagara2.md (niag2_vis): Likewise.
13775         (niag3_vis): Likewise.
13776         * config/sparc/niagara.md (niag_vis): Likewise.
13778 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
13780         * ipa-comdats.c: Remove optimize check from gate.
13781         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
13782         for functions not optimized.
13783         (ipa_fn_summary_read): Skip optimize check.
13784         (ipa_fn_summary_write): Likewise.
13785         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
13786         is optimized.
13787         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
13788         uninlinable.
13789         (can_inline_edge_p): Check flag_pcc_struct_return for match.
13790         (check_callers): Give up on caller which is not optimized.
13791         (inline_small_functions): Likewise.
13792         (ipa_inline): Do not give up when not optimizing.
13793         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
13794         away unoptimizes cdtors.
13795         (whole_program_function_and_variable_visibility): Do
13796         ipa_discover_readonly_nonaddressable_vars in LTO mode.
13797         * ipa.c (process_references): Do not check optimize.
13798         (symbol_table::remove_unreachable_nodes): Update optimize check.
13799         (set_writeonly_bit): Update optimize check.
13800         (pass_ipa_cdtor_merge::gate): Do not check optimize.
13801         (pass_ipa_single_use::gate): Remove.
13803 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
13805         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
13806         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
13807         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
13808         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
13809         permute_load, permute_store, adjust_extract, adjust_splat,
13810         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
13811         replace_swap_with_copy, dump_swap_insn_table,
13812         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
13813         recombine_lvx_pattern, recombine_stvx_pattern,
13814         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
13815         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
13816         to file rs6000-p8swap.c.
13817         * config/rs6000/rs6000-p8swap.c: New file.
13818         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
13819         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
13820         and rs6000*-*-* targets.
13822 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
13824         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
13826 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
13828         * lto-wrapper.c (merge_and_complain): Do not merge
13829         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
13830         fsigned_zeros, ftrapping_math, fwrapv.
13831         (append_compiler_options): Do not track these options.
13832         (append_linker_options): Likewie
13834 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
13836         * cgraphunit.c (cgraph_node::finalize_function): When
13837         !flag_toplevel_reorde set no_reorder flag.
13838         (varpool_node::finalize_decl): Likewise.
13839         (symbol_table::compile): Drop no toplevel reorder path.
13841 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
13843         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
13844         edges; zero probability is not better than uninitialized.
13846 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
13848         * asan.h (asan_sanitize_allocas_p): Declare.
13849         * asan.c (asan_sanitize_allocas_p): New function.
13850         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
13851         (handle_builtin_alloca): Likewise.
13852         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
13853         if !asan_sanitize_allocas_p.
13854         * params.def (asan-instrument-allocas): Add new option.
13855         * params.h (ASAN_PROTECT_ALLOCAS): Define.
13856         * opts.c (common_handle_option): Disable allocas sanitization for
13857         KASan by default.
13859 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
13861         * asan.c: Include gimple-fold.h.
13862         (get_last_alloca_addr): New function.
13863         (handle_builtin_stackrestore): Likewise.
13864         (handle_builtin_alloca): Likewise.
13865         (asan_emit_allocas_unpoison): Likewise.
13866         (get_mem_refs_of_builtin_call): Add new parameter, remove const
13867         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
13868         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
13869         (instrument_builtin_call): Pass gimple iterator to
13870         get_mem_refs_of_builtin_call.
13871         (last_alloca_addr): New global.
13872         * asan.h (asan_emit_allocas_unpoison): Declare.
13873         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
13874         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
13875         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
13876         if function calls alloca.
13877         * gimple-fold.c (replace_call_with_value): Remove static keyword.
13878         * gimple-fold.h (replace_call_with_value): Declare.
13879         * internal-fn.c: Include asan.h.
13880         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
13881         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
13883 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
13885         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
13886         (C_SELFTEST_FLAGS): New.
13887         (CPP_SELFTEST_FLAGS): New.
13888         (SELFTEST_DEPS): New, from deps of s-selftest.
13889         (C_SELFTEST_DEPS): New, from deps of s-selftest.
13890         (CPP_SELFTEST_DEPS): New.
13891         (selftest): Add dependency on s-selftest-c++.
13892         (s-selftest): Rename to...
13893         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
13894         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
13895         than SELFTEST_FLAGS.
13896         (selftest-gdb): Rename to...
13897         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
13898         C_SELFTEST_FLAGS.
13899         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
13900         (selftest-valgrind): Rename to...
13901         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
13902         C_SELFTEST_FLAGS.
13903         (selftest-valgrind): Reintroduce as an alias for
13904         selftest-c-valgrind.
13905         (s-selftest-c++): New.
13906         (selftest-c++-gdb): New.
13907         (selftest-c++-valgrind): New.
13909 2017-07-06  Olivier Hainque  <hainque@adacore.com>
13911         * gcc.c (process_command): When deciding if undefined variables
13912         should be ignored when processing specs, accept "gcc -v" as well.
13914 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
13916         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
13917         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
13919 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13921         * config/arm/arm-cpus.in (armv8-r): Add new entry.
13922         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
13923         * config/arm/arm-tables.opt: Regenerate.
13924         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
13925         enumerator.
13926         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
13928 2017-07-06  Carl Love  <cel@us.ibm.com>
13930         * ChangeLog: Clean up from mid air collision
13932 2017-07-06  Carl Love  <cel@us.ibm.com>
13934         * config/rs6000/rs6000-c.c: Add support for built-in functions
13935         vector signed int vec_subc (vector signed int, vector signed int);
13936         vector signed __int128 vec_subc (vector signed __int128,
13937                                          vector signed __int128);
13938         vector unsigned __int128 vec_subc (vector unsigned __int128,
13939                                            vector unsigned __int128);
13940         vector signed int vec_sube (vector signed int, vector signed int,
13941                                     vector signed int);
13942         vector unsigned int vec_sube (vector unsigned int,
13943                                       vector unsigned int,
13944                                       vector unsigned int);
13945         vector signed __int128 vec_sube (vector signed __int128,
13946                                          vector signed __int128,
13947                                          vector signed__int128);
13948         vector unsigned __int128 vec_sube (vector unsigned __int128,
13949                                            vector unsigned __int128,
13950                                            vector unsigned __int128);
13951         vector signed int vec_subec (vector signed int, vector signed int,
13952                                      vector signed int);
13953         vector unsigned int vec_subec (vector unsigned int,
13954                                        vector unsigned int,
13955                                        vector unsigned int);
13956         vector signed __int128 vec_subec (vector signed __int128,
13957                                           vector signed __int128,
13958                                           vector signed__int128);
13959         vector unsigned __int128 vec_subec (vector unsigned __int128,
13960                                             vector unsigned __int128,
13961                                             vector unsigned __int128);
13962         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
13963         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
13964         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
13965         BU_ALTIVEC_OVERLOAD_X definitions.
13966         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
13967         * doc/extend.texi: Update the built-in documentation file for the new
13968         built-in functions.
13970 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
13972         PR c++/79300
13973         * diagnostic-show-locus.c (layout::layout): Use start and finish
13974         spelling location for the start and finish of each range.
13975         * genmatch.c (linemap_client_expand_location_to_spelling_point):
13976         Add unused aspect param.
13977         * input.c (expand_location_1): Add "aspect" param, and use it
13978         to access the correct part of the location.
13979         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
13980         expand_location_1.
13981         (expand_location_to_spelling_point): Likewise.
13982         (linemap_client_expand_location_to_spelling_point): Add "aspect"
13983         param, and pass it to expand_location_1.
13985 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
13987         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
13988         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
13989         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
13990         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
13991         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
13992         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
13993         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
13994         _mm_maskz_getmant_ss): New intrinsics.
13995         (__builtin_ia32_getexpss128_mask): Changed to ...
13996         __builtin_ia32_getexpss128_round ... this.
13997         (__builtin_ia32_getexpsd128_mask): Changed to ...
13998         __builtin_ia32_getexpsd128_round ... this.
13999         * config/i386/i386-builtin-types.def
14000         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
14001         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
14002         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
14003         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
14004         __builtin_ia32_getmantss_mask_round): New builtins.
14005         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
14006         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
14007         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
14008         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
14009         * config/i386/sse.md
14010         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
14011         avx512f_sgetexp<mode><mask_scalar_name>
14012         <round_saeonly_scalar_name> ... this.
14013         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
14014         %0, %1, %2<round_saeonly_op3>}): Changed to ...
14015         vgetexp<ssescalarmodesuffix>
14016         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14017         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
14018         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
14019         avx512f_vgetmant<mode><mask_scalar_name>
14020         <round_saeonly_scalar_name> ... this.
14021         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
14022         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
14023         vgetmant<ssescalarmodesuffix>
14024         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
14025         %0<mask_scalar_operand4>, %1, %2
14026         <round_saeonly_scalar_mask_op4>, %3} ... this.
14027         * config/i386/subst.md (mask_scalar_operand4,
14028         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
14029         round_saeonly_scalar_nimm_predicate): New subst attributes.
14031 2017-07-06  Julia Koval  <julia.koval@intel.com>
14033         * config/i386/i386.c (ix86_erase_embedded_rounding):
14034         Remove code for old rounding pattern.
14036 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
14038         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
14040 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
14042         * doc/sourcebuild.texi (Test Directives, Variants of
14043         dg-require-support): Add documentation for dg-require-stack-check.
14045 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
14047         * config/i386/subst.md (mask_scalar, round_scalar,
14048         round_saeonly_scalar): New meta-templates.
14049         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
14050         round_scalar_mask_operand3, round_scalar_mask_op3,
14051         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
14052         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
14053         round_saeonly_scalar_constraint,
14054         round_saeonly_scalar_prefix): New subst attribute.
14055         * config/i386/sse.md
14056         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
14057         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
14058         <round_scalar_name> ... this.
14059         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
14060         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
14061         <round_scalar_name> ... this.
14062         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
14063         <sse>_vm<code><mode>3<mask_scalar_name>
14064         <round_saeonly_scalar_name> ... this.
14065         (v<plusminus_mnemonic><ssescalarmodesuffix>
14066         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
14067         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
14068         v<plusminus_mnemonic><ssescalarmodesuffix>
14069         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14070         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
14071         (v<multdiv_mnemonic><ssescalarmodesuffix>
14072         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
14073         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
14074         v<multdiv_mnemonic><ssescalarmodesuffix>
14075         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14076         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
14077         (v<maxmin_float><ssescalarmodesuffix>
14078         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
14079         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
14080         v<maxmin_float><ssescalarmodesuffix>
14081         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
14082         %0<mask_scalar_operand3>, %1, %<iptr>2
14083         <round_saeonly_scalar_mask_op3>} ... this.
14085 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
14087         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
14088         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
14090 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
14091             Alan Hayward  <alan.hayward@arm.com>
14092             David Sherwood  <david.sherwood@arm.com>
14094         * combine.c (simplify_if_then_else): Remove "enum" before
14095         "machine_mode".
14096         * compare-elim.c (can_eliminate_compare): Likewise.
14097         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
14098         Likewise.
14099         (aarch64_lookup_simd_builtin_type): Likewise.
14100         (aarch64_simd_builtin_type): Likewise.
14101         (aarch64_init_simd_builtin_types): Likewise.
14102         (aarch64_simd_expand_args): Likewise.
14103         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
14104         Likewise.
14105         (aarch64_reverse_mask): Likewise.
14106         (aarch64_simd_emit_reg_reg_move): Likewise.
14107         (aarch64_gen_adjusted_ldpstp): Likewise.
14108         (aarch64_ccmp_mode_to_code): Likewise.
14109         (aarch64_operands_ok_for_ldpstp): Likewise.
14110         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
14111         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
14112         Likewise.
14113         (aarch64_min_divisions_for_recip_mul): Likewise.
14114         (aarch64_reassociation_width): Likewise.
14115         (aarch64_get_condition_code_1): Likewise.
14116         (aarch64_simd_emit_reg_reg_move): Likewise.
14117         (aarch64_simd_attr_length_rglist): Likewise.
14118         (aarch64_reverse_mask): Likewise.
14119         (aarch64_operands_ok_for_ldpstp): Likewise.
14120         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
14121         (aarch64_gen_adjusted_ldpstp): Likewise.
14122         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
14123         Likewise.
14124         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
14125         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
14126         (arm_lookup_simd_builtin_type): Likewise.
14127         (arm_simd_builtin_type): Likewise.
14128         (arm_init_simd_builtin_types): Likewise.
14129         (arm_expand_builtin_args): Likewise.
14130         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
14131         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
14132         (ft32_setup_incoming_varargs): Likewise.
14133         (ft32_function_arg): Likewise.
14134         (ft32_function_arg_advance): Likewise.
14135         (ft32_pass_by_reference): Likewise.
14136         (ft32_arg_partial_bytes): Likewise.
14137         (ft32_valid_pointer_mode): Likewise.
14138         (ft32_addr_space_pointer_mode): Likewise.
14139         (ft32_addr_space_legitimate_address_p): Likewise.
14140         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
14141         Likewise.
14142         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
14143         (ix86_emit_outlined_ms2sysv_restore): Likewise.
14144         (iamcu_alignment): Likewise.
14145         (canonicalize_vector_int_perm): Likewise.
14146         (ix86_noce_conversion_profitable_p): Likewise.
14147         (ix86_mpx_bound_mode): Likewise.
14148         (ix86_operands_ok_for_move_multiple): Likewise.
14149         * config/microblaze/microblaze-protos.h
14150         (microblaze_expand_conditional_branch_reg): Likewise.
14151         * config/microblaze/microblaze.c
14152         (microblaze_expand_conditional_branch_reg): Likewise.
14153         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
14154         Likewise.
14155         (rs6000_reassociation_width): Likewise.
14156         (rs6000_invalid_binary_op): Likewise.
14157         (fusion_p9_p): Likewise.
14158         (emit_fusion_p9_load): Likewise.
14159         (emit_fusion_p9_store): Likewise.
14160         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
14161         Likewise.
14162         (riscv_hard_regno_mode_ok_p): Likewise.
14163         (riscv_address_insns): Likewise.
14164         (riscv_split_symbol): Likewise.
14165         (riscv_legitimize_move): Likewise.
14166         (riscv_function_value): Likewise.
14167         (riscv_hard_regno_nregs): Likewise.
14168         (riscv_expand_builtin): Likewise.
14169         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
14170         (riscv_build_integer): Likewise.
14171         (riscv_split_integer): Likewise.
14172         (riscv_legitimate_constant_p): Likewise.
14173         (riscv_cannot_force_const_mem): Likewise.
14174         (riscv_regno_mode_ok_for_base_p): Likewise.
14175         (riscv_valid_base_register_p): Likewise.
14176         (riscv_valid_offset_p): Likewise.
14177         (riscv_valid_lo_sum_p): Likewise.
14178         (riscv_classify_address): Likewise.
14179         (riscv_legitimate_address_p): Likewise.
14180         (riscv_address_insns): Likewise.
14181         (riscv_load_store_insns): Likewise.
14182         (riscv_force_binary): Likewise.
14183         (riscv_split_symbol): Likewise.
14184         (riscv_force_address): Likewise.
14185         (riscv_legitimize_address): Likewise.
14186         (riscv_move_integer): Likewise.
14187         (riscv_legitimize_const_move): Likewise.
14188         (riscv_legitimize_move): Likewise.
14189         (riscv_address_cost): Likewise.
14190         (riscv_subword): Likewise.
14191         (riscv_output_move): Likewise.
14192         (riscv_canonicalize_int_order_test): Likewise.
14193         (riscv_emit_int_order_test): Likewise.
14194         (riscv_function_arg_boundary): Likewise.
14195         (riscv_pass_mode_in_fpr_p): Likewise.
14196         (riscv_pass_fpr_single): Likewise.
14197         (riscv_pass_fpr_pair): Likewise.
14198         (riscv_get_arg_info): Likewise.
14199         (riscv_function_arg): Likewise.
14200         (riscv_function_arg_advance): Likewise.
14201         (riscv_arg_partial_bytes): Likewise.
14202         (riscv_function_value): Likewise.
14203         (riscv_pass_by_reference): Likewise.
14204         (riscv_setup_incoming_varargs): Likewise.
14205         (riscv_print_operand): Likewise.
14206         (riscv_elf_select_rtx_section): Likewise.
14207         (riscv_save_restore_reg): Likewise.
14208         (riscv_for_each_saved_reg): Likewise.
14209         (riscv_register_move_cost): Likewise.
14210         (riscv_hard_regno_mode_ok_p): Likewise.
14211         (riscv_hard_regno_nregs): Likewise.
14212         (riscv_class_max_nregs): Likewise.
14213         (riscv_memory_move_cost): Likewise.
14214         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
14215         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
14216         (rl78_addr_space_address_mode): Likewise.
14217         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14218         Likewise.
14219         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
14220         (rs6000_reassociation_width): Likewise.
14221         (rs6000_invalid_binary_op): Likewise.
14222         (fusion_p9_p): Likewise.
14223         (emit_fusion_p9_load): Likewise.
14224         (emit_fusion_p9_store): Likewise.
14225         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
14226         (ok_for_simple_move_operands): Likewise.
14227         (ok_for_simple_move_strict_operands): Likewise.
14228         (ok_for_simple_arith_logic_operands): Likewise.
14229         (visium_legitimize_reload_address): Likewise.
14230         (visium_select_cc_mode): Likewise.
14231         (output_cbranch): Likewise.
14232         (visium_split_double_move): Likewise.
14233         (visium_expand_copysign): Likewise.
14234         (visium_expand_int_cstore): Likewise.
14235         (visium_expand_fp_cstore): Likewise.
14236         * config/visium/visium.c (visium_pass_by_reference): Likewise.
14237         (visium_function_arg): Likewise.
14238         (visium_function_arg_advance): Likewise.
14239         (visium_libcall_value): Likewise.
14240         (visium_setup_incoming_varargs): Likewise.
14241         (visium_legitimate_constant_p): Likewise.
14242         (visium_legitimate_address_p): Likewise.
14243         (visium_legitimize_address): Likewise.
14244         (visium_secondary_reload): Likewise.
14245         (visium_register_move_cost): Likewise.
14246         (visium_memory_move_cost): Likewise.
14247         (prepare_move_operands): Likewise.
14248         (ok_for_simple_move_operands): Likewise.
14249         (ok_for_simple_move_strict_operands): Likewise.
14250         (ok_for_simple_arith_logic_operands): Likewise.
14251         (visium_function_value_1): Likewise.
14252         (rtx_ok_for_offset_p): Likewise.
14253         (visium_legitimize_reload_address): Likewise.
14254         (visium_split_double_move): Likewise.
14255         (visium_expand_copysign): Likewise.
14256         (visium_expand_int_cstore): Likewise.
14257         (visium_expand_fp_cstore): Likewise.
14258         (visium_split_cstore): Likewise.
14259         (visium_select_cc_mode): Likewise.
14260         (visium_split_cbranch): Likewise.
14261         (output_cbranch): Likewise.
14262         (visium_print_operand_address): Likewise.
14263         * expmed.c (flip_storage_order): Likewise.
14264         * expmed.h (emit_cstore): Likewise.
14265         (flip_storage_order): Likewise.
14266         * genrecog.c (validate_pattern): Likewise.
14267         * hsa-gen.c (gen_hsa_addr): Likewise.
14268         * internal-fn.c (expand_arith_overflow): Likewise.
14269         * ira-color.c (allocno_copy_cost_saving): Likewise.
14270         * lra-assigns.c (find_hard_regno_for_1): Likewise.
14271         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
14272         (process_invariant_for_inheritance): Likewise.
14273         * lra-eliminations.c (move_plus_up): Likewise.
14274         * omp-low.c (lower_oacc_reductions): Likewise.
14275         * simplify-rtx.c (simplify_subreg): Likewise.
14276         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
14277         (TARGET_CHKP_BOUND_MODE): Likewise..
14278         * targhooks.c (default_chkp_bound_mode): Likewise.
14279         (default_setup_incoming_vararg_bounds): Likewise.
14280         * targhooks.h (default_chkp_bound_mode): Likewise.
14281         (default_setup_incoming_vararg_bounds): Likewise.
14282         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
14283         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
14284         (have_whole_vector_shift): Likewise.
14285         * tree-vect-stmts.c (vectorizable_load): Likewise.
14286         * doc/tm.texi: Regenerate.
14288 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
14290         Graceful degrade if Binutils PR21472 is not available.
14292         PR target/81072
14293         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
14294         .rodata in flash test fails.
14295         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
14296         * confgure: Regenerate.
14297         * config.in: Regenerate.
14298         * config/avr/avr.c (avr_asm_named_section)
14299         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
14300         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
14301         (avr_asm_init_sections): Same.
14303 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14305         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
14306         (fma<VH:mode>4_intrinsic): Likewise.
14307         (*fmsub<VCVTF:mode>4): Likewise.
14308         (*fmsub<VH:mode>4_intrinsic): Likewise.
14310 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
14312         PR target/81305
14313         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
14314         Don't depend on "optimize > 0".
14315         (out_movhi_r_mr, out_movqi_mr_r): Same.
14316         (out_movhi_mr_r, out_movqi_r_mr): Same.
14317         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
14318         io_address_operand on "optimize > 0".
14320 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14322         * tree-loop-distribution.c: Add general explanantion on the pass.
14323         (generate_loops_for_partition): Mark distributed loop.
14324         (pg_add_dependence_edges): New parameter.  Handle alias data
14325         dependence specially and record it in the parameter if asked.
14326         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
14327         (init_partition_graph_vertices, add_partition_graph_edge): New.
14328         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
14329         (free_partition_graph_vdata, build_partition_graph): New.
14330         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
14331         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
14332         (data_ref_segment_size, latch_dominated_by_data_ref): New.
14333         (compute_alias_check_pairs, version_loop_by_alias_check): New.
14334         (version_for_distribution_p, finalize_partitions): New.
14335         (distribute_loop): Handle alias data dependence specially.  Factor
14336         out loop fusion code as functions and call these functions.
14338 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14340         * tree-loop-distribution.c (classify_partition): New parameter and
14341         better handle reduction statement.
14342         (rdg_build_partitions): Revise comment.
14343         (distribute_loop): Compute statements in all partitions and pass it
14344         to classify_partition.
14346 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14348         * tree-loop-distribution.c (enum partition_type): New.
14349         (struct partition): New field type.
14350         (partition_merge_into): Add parameter.  Update partition type.
14351         (data_dep_in_cycle_p, update_type_for_merge): New functions.
14352         (build_rdg_partition_for_vertex): Compute partition type.
14353         (rdg_build_partitions): Dump partition type.
14354         (distribute_loop): Update calls to partition_merge_into.
14356 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14358         * tree-loop-distribution.c (struct ddr_hasher): New.
14359         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
14360         (ddrs_table): New.
14361         (classify_partition): Call get_data_dependence.
14362         (pg_add_dependence_edges): Ditto.
14363         (distribute_loop): Release data dependence hash table.
14365 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14367         * tree-loop-distribution.c (ref_base_address): Delete.
14368         (similar_memory_accesses): Rename ...
14369         (share_memory_accesses): ... to this.  Check if partitions access
14370         the same memory reference.
14371         (distribute_loop): Call share_memory_accesses.
14373 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14375         * tree-loop-distribution.c (struct partition): New field recording
14376         its data reference.
14377         (partition_alloc, partition_free): Init and release data refs.
14378         (partition_merge_into): Merge data refs.
14379         (build_rdg_partition_for_vertex): Collect data refs for partition.
14380         (pg_add_dependence_edges): Change parameters from vector to bitmap.
14381         Update uses.
14382         (distribute_loop): Remve data refs from vertice data of partition
14383         graph.
14385 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14387         * tree-loop-distribution.c (params.h): Include header file.
14388         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
14389         (datarefs_vec): New global var.
14390         (create_rdg_vertices): Use datarefs_vec directly.
14391         (free_rdg): Don't free data references.
14392         (build_rdg): Update use.  Don't free data references.
14393         (distribute_loop): Compute global variable for data references.
14394         Bail out if there are too many data references.
14396 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14398         * tree-loop-distribution.c (loop_nest): New global var.
14399         (build_rdg): Use loop directly, rather than loop nest.
14400         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
14401         variable directly.
14402         (distribute_loop): Compute global variable loop nest.  Update use.
14404 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14406         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
14407         (partition_merge_into): New parameter.  Dump reason for fusion.
14408         (distribute_loop): Update use of partition_merge_into.
14410 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14412         * tree-loop-distribution.c (bb_top_order_index): New.
14413         (bb_top_order_index_size, bb_top_order_cmp): New.
14414         (stmts_from_loop): Use topological order.
14415         (pass_loop_distribution::execute): Compute and release topological
14416         order for basic blocks.
14418 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14420         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
14421         if no loops.
14423 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
14425         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
14426         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
14427         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
14428         * internal-fn.def (LOOP_DIST_ALIAS): New.
14429         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
14430         (fold_loop_internal_call): ... this.
14431         (vect_loop_dist_alias_call): New function.
14432         (set_uid_loop_bbs): Call fold_loop_internal_call.
14433         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
14434         internal calls.
14436 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
14438         PR target/81300
14439         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
14440         Require dead FLAGS_REG at the beginning of a peephole.
14442 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
14444         PR target/81294
14445         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
14446         arguments in the call to __builtin_ia32_sbb_u32.
14447         (_subborrow_u64): Swap _X and _Y arguments in the call to
14448         __builtin_ia32_sbb_u64.
14450 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
14452         PR debug/81278
14453         * tree-vrp.c (compare_assert_loc): Turn into a function template
14454         with stable template parameter.  Only test if a->e is NULL,
14455         !a->e == !b->e has been verified already.  Use e == NULL or
14456         e != NULL instead of e or ! e tests.  If stable is true, don't use
14457         iterative_hash_expr, on the other side allow a or b or both NULL
14458         and sort the NULLs last.
14459         (process_assert_insertions): Sort using compare_assert_loc<false>
14460         instead of compare_assert_loc, later sort using
14461         compare_assert_loc<true> before calling process_assert_insertions_for
14462         in a loop.  Use break instead of continue once seen NULL pointer.
14464 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14466         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
14467         Cortex-R7 and Cortex-R8 processors.
14469 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
14471         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
14472         uninitialized while src is not.
14474 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
14476         * common/config/arm/arm-common.c: Adjust include path for
14477         arm-cpu-cdata.h
14478         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
14479         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
14480         (arm-cpu-data.h): Likewise.
14481         (arm-cpu-cdata.h): Likewise.
14482         * config/arm/arm-cpu.h: Delete.
14483         * config/arm/arm-cpu-cdata.h: Delete.
14484         * config/arm/arm-cpu-data.h: Delete.
14486 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
14488         * config/arm/arm-cpus.in (cortex-a55): New.
14489         (cortex-a75): Likewise.
14490         (cortex-a75.cortex-a55): Likewise.
14491         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
14492         cortex-a75.
14493         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
14494         * config/arm/arm-cpu-cdata.h: Regenerate.
14495         * config/arm/arm-cpu-data.h: Regenerate.
14496         * config/arm/arm-cpu.h: Regenerate.
14497         * config/arm/arm-tables.opt: Regenerate.
14498         * config/arm/arm-tune.md: Regenerate.
14500 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
14502         * haifa-sched.c (sched_create_recovery_edges): Update profile.
14504 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
14506         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
14507         probability.
14509 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
14511         PR tree-optimization/81292
14512         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
14513         full_string_p, also call adjust_related_strinfos if the adjustment
14514         is simple, otherwise invalidate related strinfos.
14516 2017-07-04  Martin Liska  <mliska@suse.cz>
14518         PR sanitizer/81040
14519         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
14520         newly created variable as DECL_IGNORED_P.
14522 2017-07-04  Martin Liska  <mliska@suse.cz>
14524         PR ipa/81293
14525         * ipa-inline.c (inline_small_functions):
14526         Use xstrdup_for_dump.
14528 2017-07-04  Tom de Vries  <tom@codesourcery.com>
14530         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
14532 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
14534         PR target/81033
14535         * config/darwin.c (darwin_function_switched_text_sections):
14536         Fix spaces.
14538 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
14540         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
14542 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
14544         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
14546 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
14548         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
14549         min_profitable_iters, and th as inclusive lower bounds.
14550         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
14551         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
14552         for min_profitable_iters and min_profitable_estimate.
14553         (vect_transform_loop): Treat th as an inclusive lower bound.
14554         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
14556 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
14558         PR target/81033
14559         * config/darwin.c (darwin_function_switched_text_sections):
14560         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
14561         in two pieces, and suppress the use of buf.
14563 2017-07-03  Nathan Sidwell  <nathan@acm.org>
14565         * hash-table.h (hash_table_mod1): Fix indentation.
14567 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
14569         PR middle-end/81290
14570         * predict.c (force_edge_cold): Be more careful about propagation
14571         backward.
14572         * profile-count.h (profile_probability::guessed,
14573         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
14574         New.
14575         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
14577 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14579         * doc/invoke.texi (rcpc architecture extension): Document it.
14581 2017-07-03  Richard Biener  <rguenther@suse.de>
14583         PR tree-optimization/60510
14584         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
14585         the scalar reduction PHI and use it.
14586         (vectorizable_reduction): Properly guard the single_defuse_cycle
14587         path for non-SLP reduction chains where we cannot use it.
14588         Rework reduc_def/index and vector type deduction.  Rework
14589         vector operand gathering during reduction op code-gen.
14590         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
14591         chains dissolve the chain and leave it to non-SLP reduction
14592         handling.
14594 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
14596         * tree-data-ref.h (dr_alignment): Declare.
14597         * tree-data-ref.c (dr_alignment): New function.
14598         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
14599         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
14600         set it.
14601         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
14603 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
14605         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
14606         and base_misalignment fields.
14607         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
14608         * tree-data-ref.c: Include builtins.h.
14609         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
14610         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
14611         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
14612         * tree-vect-data-refs.c: Include tree-cfg.h.
14613         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
14614         fields instead of calculating an alignment here.
14615         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
14616         innermost_loop_behavior fields.
14618 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
14620         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
14621         field.
14622         (DR_STEP_ALIGNMENT): New macro.
14623         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
14624         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
14625         (create_data_ref): Print it.
14626         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
14627         to tell whether the step preserves vector (mis)alignment.
14628         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
14629         Move the check for an integer step and generalise to all INTEGER_CST.
14630         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
14631         Print the outer step alignment.
14633 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
14635         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
14636         with offset_alignment.
14637         (DR_ALIGNED_TO): Delete.
14638         (DR_OFFSET_ALIGNMENT): New macro.
14639         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
14640         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
14641         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
14642         (create_data_ref): Likewise.
14643         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
14644         (vect_analyze_data_refs): Likewise.
14645         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
14646         creating dummy innermost behavior.
14648 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
14650         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
14651         with a "innermost_loop_behavior *" and refeence tree.
14652         * tree-data-ref.c (dr_analyze_innermost): Likewise.
14653         (create_data_ref): Update call accordingly.
14654         * tree-predcom.c (find_looparound_phi): Likewise.
14656 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
14658         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
14659         fields with dr_wrt_vec_loop.
14660         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
14661         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
14662         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
14663         (vect_dr_behavior): New function.
14664         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
14665         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
14666         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
14667         track whether the step preserves the misalignment.
14668         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
14669         Use vect_dr_behavior.
14670         (vect_setup_realignment): Update call accordingly.
14671         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
14672         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
14673         call to vect_create_addr_base_for_vector_ref.
14674         (vect_create_cond_for_align_checks): Likewise.
14675         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
14676         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
14677         (vect_recog_mask_conversion_pattern): Likewise.
14678         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
14679         (new_stmt_vec_info): Remove redundant zeroing.
14681 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
14683         * common/config/arm/arm-common.c (arm_be8_option): New function.
14684         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
14685         (ISA_ARMv6): Add isa_bit_be8.
14686         * config/arm/arm.h (arm_be8_option): Add prototype.
14687         (BE8_SPEC_FUNCTION): New define.
14688         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
14689         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
14690         (mlittle-endian): Similarly.
14691         (mbe8, mbe32): New options.
14692         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
14693         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
14695 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
14697         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
14699 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
14701         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
14702         (cleanup_tree_cfg_bb): Use it.
14703         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
14704         New functions.
14705         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
14707 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
14709         PR bootstrap/81285
14710         * loop-doloop.c (add_test): Update profile.
14712 2017-07-03  Martin Liska  <mliska@suse.cz>
14714         PR sanitize/81040
14715         * sanopt.c (rewrite_usage_of_param): New function.
14716         (sanitize_rewrite_addressable_params): Likewise.
14717         (pass_sanopt::execute): Call rewrite_usage_of_param.
14719 2017-07-03  Richard Biener  <rguenther@suse.de>
14721         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
14722         back to using VIEW_CONVERT_EXPR.
14724 2017-07-03  Martin Liska  <mliska@suse.cz>
14726         PR other/78366
14727         * doc/extend.texi: Document when a resolver function is
14728         generated for target_clones.
14730 2017-07-03  Martin Liska  <mliska@suse.cz>
14732         * asan.c (asan_emit_stack_protection): Unpoison just red zones
14733         and shadow memory of auto variables which are subject of
14734         use-after-scope sanitization.
14735         (asan_expand_mark_ifn): Add do set only when is_poison.
14737 2016-07-03  Richard Biener  <rguenther@suse.de>
14739         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
14740         reduction PHIs.
14741         (vect_force_simple_reduction): Record reduction def -> phi mapping.
14742         (vectorizable_reduction): Perform reduction PHI creation when
14743         visiting a reduction PHI and adjust and simplify code generation
14744         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
14745         (vect_transform_loop): Visit reduction PHIs.
14746         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
14747         defs into the SLP tree.
14748         (vect_build_slp_tree): Reduction defs terminate the recursion.
14749         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
14750         of reduction defs.
14751         (vect_get_vec_defs_for_stmt_copy): Export.
14752         (vect_get_vec_defs): Likewise.
14753         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
14754         purpose.
14755         (vect_get_vec_defs_for_stmt_copy): Declare.
14756         (vect_get_vec_defs): Likewise.
14758 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
14760         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
14761         parameter with a "loop" parameter and use it instead of the
14762         loop containing DR_STMT.  Don't check simple_iv when doing
14763         BB analysis.  Describe the two analysis modes in the comment.
14765 2017-07-03  Tom de Vries  <tom@codesourcery.com>
14767         PR tree-optimization/69468
14768         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
14769         (find_same_succ_bb): Handle ignore_edge_flags.
14771 2017-07-03  Tom de Vries  <tom@codesourcery.com>
14773         PR tree-optimization/81192
14774         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
14775         hash.
14776         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
14777         differs.
14778         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
14780 2017-07-03  Tom de Vries  <tom@codesourcery.com>
14782         PR tree-optimization/81192
14783         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
14784         BB_SAME_SUCC (bb) == NULL.
14786 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
14788         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
14789         consistency.
14791 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
14793         * dumpfile.c: Include profile-count.h
14794         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
14795         update profile.
14796         (insert_cond_bb): Update profile.
14797         * tree-cfg.h (insert_cond_bb): Update prototype.
14798         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
14799         * tree-dump.c: Do not include tree-cfg.
14801 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
14803         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
14805 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
14807         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
14808         bb.
14810 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
14812         * tree-complex.c (expand_complex_div_wide): update profile.
14814 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
14815             Alan Hayward  <alan.hayward@arm.com>
14816             David Sherwood  <david.sherwood@arm.com>
14818         * Makefile.in (MACHMODE_H): Remove insn-modes.h
14819         (CORETYPES_H): New define.
14820         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
14821         (insn-modes-inline.h, s-modes-inline-h): New rules.
14822         (generated_files): Add insn-modes-inline.h.
14823         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
14824         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
14825         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
14826         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
14827         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
14828         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
14829         (build/gencodes.o, build/genconditions.o): Likewise.
14830         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
14831         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
14832         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
14833         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
14834         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
14835         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
14836         * coretypes.h: Include everything up to real.h for generators.
14837         Include insn-modes.h first.  Include wide-int-print.h after
14838         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
14839         * machmode.h: Don't include insn-modes.h here.
14840         * function-tests.c: Remove includes of signop.h, machmode.h,
14841         double-int.h and wide-int.h.
14842         * rtl.h: Likewise.
14843         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
14844         and wide-int.h.
14845         * optc-save-gen.awk: Likewise.
14846         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
14847         * godump.c: Remove include of wide-int-print.h.
14848         * pretty-print.h: Likewise.
14849         * wide-int-print.cc: Likewise.
14850         * wide-int.cc: Likewise.
14851         * hash-map-tests.c: Remove include of signop.h.
14852         * hash-set-tests.c: Likewise.
14853         * rtl-tests.c: Likewise.
14854         * mkconfig.sh: Remove include of machmode.h.
14855         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
14856         into...
14857         (emit_insn_modes_inline_h): ...this new function.  Emit the code
14858         into an insn-modes-inline.h header file, adding appropriate
14859         include guards and end comments.
14860         (emit_insn_modes_c_header): Remove include of machmode.h.
14861         (emit_min_insn_modes_c_header): Include coretypes.h rather than
14862         machmode.h.
14863         (main): Handle -i flag and call emit_insn_modes_inline_h when
14864         it is passed.
14866 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
14868         * tree-ssa-strlen.c (strinfo): Rename the length field to
14869         nonzero_chars.  Add a full_string_p field.
14870         (compare_nonzero_chars, zero_length_string_p): New functions.
14871         (get_addr_stridx): Add an offset_out parameter.
14872         Use compare_nonzero_chars.
14873         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
14874         (new_strinfo): Update after above changes to strinfo.
14875         (set_endptr_and_length): Set full_string_p.
14876         (get_string_length): Update after above changes to strinfo.
14877         (unshare_strinfo): Update call to new_strinfo.
14878         (maybe_invalidate): Likewise.
14879         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
14880         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
14881         as a uhwi instead of an shwi.  Update after above changes to
14882         strinfo and new_strinfo.
14883         (zero_length_string): Assert that chainsi contains full strings.
14884         Use zero_length_string_p.  Update call to new_strinfo.
14885         (adjust_related_strinfos): Update after above changes to strinfo.
14886         Copy full_string_p from origsi.
14887         (adjust_last_stmt): Use zero_length_string_p.
14888         (handle_builtin_strlen): Update after above changes to strinfo and
14889         new_strinfo.  Install the lhs as the string length if the previous
14890         entry didn't describe a full string.
14891         (handle_builtin_strchr): Update after above changes to strinfo
14892         and new_strinfo.
14893         (handle_builtin_strcpy): Likewise.
14894         (handle_builtin_strcat): Likewise.
14895         (handle_builtin_malloc): Likewise.
14896         (handle_pointer_plus): Likewise.
14897         (handle_builtin_memcpy): Likewise.  Track nonzero characters
14898         that aren't necessarily followed by a nul terminator.
14899         (handle_char_store): Likewise.
14901 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
14903         PR tree-optimization/80769
14904         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
14905         for malloc and calloc.  Document the new invariant that all related
14906         strinfos have delayed lengths or none do.
14907         (verify_related_strinfos): Move earlier in file.
14908         (set_endptr_and_length): New function, split out from...
14909         (get_string_length): ...here.  Also set the lengths of related
14910         strinfos.
14911         (zero_length_string): Assert that chainsi has known (rather than
14912         delayed) lengths.
14913         (adjust_related_strinfos): Likewise.
14915 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
14917         PR tree-optimization/81136
14918         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
14919         assert that two references with the same misalignment have the same
14920         compile-time misalignment if those compile-time misalignments
14921         are known.
14923 2017-07-01  Andi Kleen  <ak@linux.intel.com>
14925         * print-tree.c (print_node): Print all attributes.
14927 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
14929         * cfg.c (scale_bbs_frequencies): New function.
14930         * cfg.h (scale_bbs_frequencies): Declare it.
14931         * cfgloopanal.c (single_likely_exit): Cleanup.
14932         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
14933         as parameter.
14934         (scale_loop_profile): Likewise.
14935         (loop_version): Likewise.
14936         (create_empty_loop_on_edge): Update.
14937         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
14938         scale_loop_frequencies, scale_loop_profile, loopify,
14939         loop_version): Update prototypes.
14940         * modulo-sched.c (sms_schedule): Update.
14941         * predict.c (unlikely_executed_edge_p): Also check probability.
14942         (probably_never_executed_edge_p): Fix typo.
14943         * tree-if-conv.c (version_loop_for_if_conversion): Update.
14944         * tree-parloops.c (gen_parallel_loop): Update.
14945         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
14946         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
14947         * tree-ssa-loop-split.c (split_loop): Update.
14948         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
14949         * tree-vect-loop-manip.c (vect_do_peeling): Update.
14950         (vect_loop_versioning): Update.
14951         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
14953 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
14955         * trans-mem.c (split_bb_make_tm_edge): Update profile.
14957 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
14959         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
14960         to keep profile consistent.
14962 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
14964         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
14965         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
14966         * profile-count.h (max_safe_multiplier): Make unsigned.
14967         (profile_count::guessed_zero): New.
14969 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
14971         * bb-reorder.c (fix_up_crossing_landing_pad,
14972         fix_crossing_conditional_branches): Use make_single_succ_edge
14973         to keep profile consistent.
14975 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
14977         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
14978         to update profile.
14980 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
14982         PR sanitizer/81262
14983         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
14984         the right scopes, make sure cond_jump isn't preserved between multiple
14985         iterations.  Search for fallthru edge whenever there are 3+ edges and
14986         use find_fallthru_edge for it.
14988 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
14990         Patch by Alexander Monakov <amonakov@ispras.ru>
14991         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
14992         probabilities consistently.
14994 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
14996         * pa.c (pa_expand_compare_and_swap_loop): Update call of
14997         emit_cmp_and_jump_insns.
14999 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
15001         PR ipa/81261
15002         * tree-inline.c (expand_call_inline): Combine profile statuses.
15004 2017-06-30  Andrew Pinski  <apinski@cavium.com>
15006         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
15007         fold_stmt returned true.
15009 2017-06-30  Nathan Sidwell  <nathan@acm.org>
15011         * ggc.h (empty_string): Delete.
15012         * cfgexpand.c (expand_asm_stmt): Use plain "".
15013         * optabs.c (expand_asm_memory_barrier): Likewise.
15014         * stringpool.c (empty_string): Delete.
15015         (digit_vector, digit_string): Delete.
15016         (ggc_alloc_string): Use plain "", don't optimize single digit
15017         strings.  Use ggc_alloc_atomic.
15019 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
15021         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
15022         comparison set and one other set, use the cost of the non-comparison
15023         set.
15025 2017-06-30  Nathan Sidwell  <nathan@acm.org>
15027         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
15028         some formatting.
15030 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
15032         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
15033         loops.  Remove now unneeded calls to gimple_switch_set_label() that
15034         just set removed labels to NULL_TREE.
15036 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
15038         * tree-ssanames.c (set_range_info_raw): Abstract from ...
15039         (set_range_info): ...here.  Only call set_range_info_raw if domain
15040         is useful.
15041         (set_nonzero_bits): Call set_range_info_raw.
15042         * tree-ssanames.h (set_range_info_raw): New.
15044 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
15046         PR target/81225
15047         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
15048         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
15049         of nonimmediate_operand and <store_mask_constraint> instead of m
15050         for the input operand.  For V8FI iterator, always split if input
15051         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
15052         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
15053         <store_mask_predicate> instead of register_operand and
15054         <store_mask_constraint> instead of v for the input operand.  Make
15055         sure both operands aren't MEMs for if not <mask_applied>.
15057 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
15059         * lto-wrapper.c (copy_file) Close both file descriptors before
15060         exiting normally.
15062 2017-06-30  Martin Liska  <mliska@suse.cz>
15064         PR ipa/81214
15065         * multiple_target.c (create_dispatcher_calls): Make ifunc
15066         also for function that don't have calls or are not referenced.
15068 2017-06-30  Richard Biener  <rguenther@suse.de>
15070         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
15071         analyze the first scalar stmt.  Move vector type computation
15072         for the BB case here from ...
15073         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
15074         live operation processing in the SLP case properly.
15076 2017-06-30  Richard Biener  <rguenther@suse.de>
15078         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
15080 2017-06-30  Martin Liska  <mliska@suse.cz>
15082         PR sanitizer/81021
15083         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
15084         before BUILT_IN_UNWIND_RESUME when ASAN is used.
15086 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
15088         * doc/invoke.texi (AArch64): Add missing options and remove redundant
15089         ones.
15091 2017-06-30  Richard Biener  <rguenther@suse.de>
15093         PR tree-optimization/81249
15094         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
15095         condition reduction result to original scalar type.
15097 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15099         * profile-count.h (enum profile_quality): Fix typos and whitespace
15100         issues.
15102 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15104         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
15105         type for branch probabilities.
15107 2017-06-29  Julian Brown  <julian@codesourcery.com>
15108             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
15110         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
15111         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
15112         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
15113         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
15115 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
15117         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
15118         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
15119         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
15120         CC usage from generic code to here.
15121         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
15122         CC usage into the target macros.
15124 2017-06-29  Maya Rashish  <coypu@sdf.org>
15126         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
15127         objects.
15129 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
15131         * arm/arm-builtins.c: Include profile-count.h
15132         * except.c (sjlj_emit_function_enter): Use
15133         profile_probability::unlikely.
15135 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
15137         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
15138         and tocrel_offset be pointer args rather than implicitly using
15139         static versions.
15140         (legitimate_constant_pool_address_p, rs6000_emit_move,
15141         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
15142         tocrel_offset and use in toc_relative_expr_p call.
15143         (print_operand, print_operand_address): Use static tocrel_base_oac
15144         and tocrel_offset_oac.
15145         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
15146         tocrel_offset_oac.
15148 2017-06-29  Maya Rashish  <coypu@sdf.org>
15150         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
15152 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
15154         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
15155         objects, take into account only the alignment of 'op0' and 'mode1' if
15156         'op0' is a MEM.
15158 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
15160         * ccmp.c (ccmp_tree_comparison_p): New function.
15161         (ccmp_candidate_p): Update to use above function.
15162         (get_compare_parts): New function.
15163         (expand_ccmp_next): Update to use new functions.
15164         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
15165         new functions.
15166         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
15167         take mode as argument.
15168         * ccmp.h (expand_ccmp_expr): Add mode as argument.
15169         * expr.c (expand_expr_real_1): Pass mode as argument.
15171 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
15173         * combine.c (combine_instructions): Print insns to dump_file, together
15174         with their costs.
15176 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
15178         * asan.c (asan_emit_stack_protection): Update.
15179         (create_cond_insert_point): Update.
15180         * auto-profile.c (afdo_propagate_circuit): Update.
15181         * basic-block.h (struct edge_def): Turn probability to
15182         profile_probability.
15183         (EDGE_FREQUENCY): Update.
15184         * bb-reorder.c (find_traces_1_round): Update.
15185         (better_edge_p): Update.
15186         (sanitize_hot_paths): Update.
15187         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
15188         (make_single_succ_edge): Update.
15189         (check_bb_profile): Update.
15190         (dump_edge_info): Update.
15191         (update_bb_profile_for_threading): Update.
15192         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
15193         probabilitycount to 0.
15194         * cfgbuild.c (compute_outgoing_frequencies): Update.
15195         * cfgcleanup.c (try_forward_edges): Update.
15196         (outgoing_edges_match): Update.
15197         (try_crossjump_to_edge): Update.
15198         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
15199         (expand_gimple_tailcall): Update.
15200         (construct_init_block): Use make_single_succ_edge.
15201         (construct_exit_block): Use make_single_succ_edge.
15202         * cfghooks.c (verify_flow_info): Update.
15203         (redirect_edge_succ_nodup): Update.
15204         (split_edge): Update.
15205         (account_profile_record): Update.
15206         * cfgloopanal.c (single_likely_exit): Update.
15207         * cfgloopmanip.c (scale_loop_profile): Update.
15208         (set_zero_probability): Remove.
15209         (duplicate_loop_to_header_edge): Update.
15210         * cfgloopmanip.h (loop_version): Update prototype.
15211         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
15212         (force_nonfallthru_and_redirect): Update.
15213         (update_br_prob_note): Update.
15214         (rtl_verify_edges): Update.
15215         (purge_dead_edges): Update.
15216         (rtl_lv_add_condition_to_bb): Update.
15217         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
15218         * cgraphunit.c (init_lowered_empty_function): Update.
15219         (cgraph_node::expand_thunk): Update.
15220         * cilk-common.c: Include profile-count.h
15221         * dojump.c (inv): Remove.
15222         (jumpifnot): Update.
15223         (jumpifnot_1): Update.
15224         (do_jump_1): Update.
15225         (do_jump): Update.
15226         (do_jump_by_parts_greater_rtx): Update.
15227         (do_compare_rtx_and_jump): Update.
15228         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
15229         do_jump_1. do_compare_rtx_and_jump): Update prototype.
15230         * dwarf2cfi.c: Include profile-count.h
15231         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
15232         (sjlj_emit_dispatch_table): Likewise.
15233         * explow.c: Include profile-count.h
15234         * expmed.c (emit_store_flag_force): Update.
15235         (do_cmp_and_jump): Update.
15236         * expr.c (compare_by_pieces_d::generate): Update.
15237         (compare_by_pieces_d::finish_mode): Update.
15238         (emit_block_move_via_loop): Update.
15239         (store_expr_with_bounds): Update.
15240         (store_constructor): Update.
15241         (expand_expr_real_2): Update.
15242         (expand_expr_real_1): Update.
15243         * expr.h (try_casesi, try_tablejump): Update prototypes.
15244         * gimple-pretty-print.c (dump_probability): Update.
15245         (dump_profile): New.
15246         (dump_gimple_label): Update.
15247         (dump_gimple_bb_header): Update.
15248         * graph.c (draw_cfg_node_succ_edges): Update.
15249         * hsa-gen.c (convert_switch_statements): Update.
15250         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
15251         (find_if_case_1): Update.
15252         (find_if_case_2): Update.
15253         * internal-fn.c (expand_arith_overflow_result_store): Update.
15254         (expand_addsub_overflow): Update.
15255         (expand_neg_overflow): Update.
15256         (expand_mul_overflow): Update.
15257         (expand_vector_ubsan_overflow): Update.
15258         * ipa-cp.c (good_cloning_opportunity_p): Update.
15259         * ipa-split.c (split_function): Use make_single_succ_edge.
15260         * ipa-utils.c (ipa_merge_profiles): Update.
15261         * loop-doloop.c (add_test): Update.
15262         (doloop_modify): Update.
15263         * loop-unroll.c (compare_and_jump_seq): Update.
15264         (unroll_loop_runtime_iterations): Update.
15265         * lra-constraints.c (lra_inheritance): Update.
15266         * lto-streamer-in.c (input_cfg): Update.
15267         * lto-streamer-out.c (output_cfg): Update.
15268         * mcf.c (adjust_cfg_counts): Update.
15269         * modulo-sched.c (sms_schedule): Update.
15270         * omp-expand.c (expand_omp_for_init_counts): Update.
15271         (extract_omp_for_update_vars): Update.
15272         (expand_omp_ordered_sink): Update.
15273         (expand_omp_for_ordered_loops): Update.
15274         (expand_omp_for_generic): Update.
15275         (expand_omp_for_static_nochunk): Update.
15276         (expand_omp_for_static_chunk): Update.
15277         (expand_cilk_for): Update.
15278         (expand_omp_simd): Update.
15279         (expand_omp_taskloop_for_outer): Update.
15280         (expand_omp_taskloop_for_inner): Update.
15281         * omp-simd-clone.c (simd_clone_adjust): Update.
15282         * optabs.c (expand_doubleword_shift): Update.
15283         (expand_abs): Update.
15284         (emit_cmp_and_jump_insn_1): Update.
15285         (expand_compare_and_swap_loop): Update.
15286         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
15287         * predict.c (predictable_edge_p): Update.
15288         (edge_probability_reliable_p): Update.
15289         (set_even_probabilities): Update.
15290         (combine_predictions_for_insn): Update.
15291         (combine_predictions_for_bb): Update.
15292         (propagate_freq): Update.
15293         (estimate_bb_frequencies): Update.
15294         (force_edge_cold): Update.
15295         * profile-count.c (profile_count::dump): Add missing space into dump.
15296         (profile_count::debug): Add newline.
15297         (profile_count::differs_from_p): Explicitly convert to unsigned.
15298         (profile_count::stream_in): Update.
15299         (profile_probability::dump): New member function.
15300         (profile_probability::debug): New member function.
15301         (profile_probability::differs_from_p): New member function.
15302         (profile_probability::differs_lot_from_p): New member function.
15303         (profile_probability::stream_in): New member function.
15304         (profile_probability::stream_out): New member function.
15305         * profile-count.h (profile_count_quality): Rename to ...
15306         (profile_quality): ... this one.
15307         (profile_probability): New.
15308         (profile_count): Update.
15309         * profile.c (compute_branch_probabilities): Update.
15310         * recog.c (peep2_attempt): Update.
15311         * sched-ebb.c (schedule_ebbs): Update.
15312         * sched-rgn.c (find_single_block_region): Update.
15313         (compute_dom_prob_ps): Update.
15314         (schedule_region): Update.
15315         * sel-sched-ir.c (compute_succs_info): Update.
15316         * stmt.c (struct case_node): Update.
15317         (do_jump_if_equal): Update.
15318         (get_outgoing_edge_probs): Update.
15319         (conditional_probability): Update.
15320         (emit_case_dispatch_table): Update.
15321         (expand_case): Update.
15322         (expand_sjlj_dispatch_table): Update.
15323         (emit_case_nodes): Update.
15324         * targhooks.c: Update.
15325         * tracer.c (better_p): Update.
15326         (find_best_successor): Update.
15327         * trans-mem.c (expand_transaction): Update.
15328         * tree-call-cdce.c: Update.
15329         * tree-cfg.c (gimple_split_edge): Upate.
15330         (move_sese_region_to_fn): Upate.
15331         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
15332         * tree-eh.c (lower_resx): Upate.
15333         (cleanup_empty_eh_move_lp): Upate.
15334         * tree-if-conv.c (version_loop_for_if_conversion): Update.
15335         * tree-inline.c (copy_edges_for_bb): Update.
15336         (copy_cfg_body): Update.
15337         * tree-parloops.c (gen_parallel_loop): Update.
15338         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
15339         (gimple_gen_time_profiler): Update.
15340         * tree-ssa-dce.c (remove_dead_stmt): Update.
15341         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
15342         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
15343         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
15344         (unloop_loops): Update.
15345         (try_peel_loop): Update.
15346         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
15347         * tree-ssa-loop-split.c (connect_loops): Update.
15348         (split_loop): Update.
15349         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
15350         (hoist_guard): Update.
15351         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
15352         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
15353         (value_replacement): Update.
15354         * tree-ssa-reassoc.c (branch_fixup): Update.
15355         * tree-ssa-tail-merge.c (replace_block_by): Update.
15356         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
15357         (create_edge_and_update_destination_phis): Update.
15358         (compute_path_counts): Update.
15359         (recompute_probabilities): Update.
15360         (update_joiner_offpath_counts): Update.
15361         (freqs_to_counts_path): Update.
15362         (duplicate_thread_path): Update.
15363         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
15364         (struct switch_conv_info): Update.
15365         (gen_inbound_check): Update.
15366         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
15367         (vect_do_peeling): Update.
15368         (vect_loop_versioning): Update.
15369         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
15370         (optimize_mask_stores): Update.
15371         * ubsan.c (ubsan_expand_null_ifn): Update.
15372         * value-prof.c (gimple_divmod_fixed_value): Update.
15373         (gimple_divmod_fixed_value_transform): Update.
15374         (gimple_mod_pow2): Update.
15375         (gimple_mod_pow2_value_transform): Update.
15376         (gimple_mod_subtract): Update.
15377         (gimple_mod_subtract_transform): Update.
15378         (gimple_ic): Update.
15379         (gimple_stringop_fixed_value): Update.
15380         (gimple_stringops_transform): Update.
15381         * value-prof.h: Update.
15383 2017-06-29  Carl Love  <cel@us.ibm.com>
15385         * config/rs6000/rs6000-c.c: Add support for built-in functions
15386         vector signed int vec_signed (vector float);
15387         vector signed long long vec_signed (vector double);
15388         vector signed int vec_signed2 (vector double, vector double);
15389         vector signed int vec_signede (vector double);
15390         vector signed int vec_signedo (vector double);
15391         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
15392         instruction generator.
15393         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
15394         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
15395         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
15396         Add define_insn.
15397         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
15398         vunsignede_v2df): Add define_expands.
15399         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
15400         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
15401         VEC_UNSIGNEDO): Add definitions.
15402         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
15403         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
15404         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
15405         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
15406         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
15407         * config/rs6000/altivec.h (vec_signed, vec_signed2,
15408         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
15409         vec_unsignede, vec_unsignedo): Add builtin defines.
15410         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
15411         declaration.
15412         * doc/extend.texi: Update the built-in documentation file for the
15413         new built-in functions.
15415 2017-06-29  Richard Biener  <rguenther@suse.de>
15417         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
15418         reduction chains to LOOP_VINFO_REDUCTIONS.
15419         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
15420         SLP reductions after processing reduction chains.
15422 2017-06-29  Nathan Sidwell  <nathan@acm.org>
15424         * builtins.c (fold_builtin_FUNCTION): Use
15425         lang_hooks.decl_printable_name.
15427 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
15429         PR middle-end/81194
15430         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
15431         with only one label.
15432         * stmt.c (expand_case): Assert NCASES is greater than one.
15434 2017-06-29  Richard Biener  <rguenther@suse.de>
15436         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
15437         anything.
15438         (group_case_labels): Likewise.
15439         (find_taken_edge): Push sanity checking on val to workers...
15440         (find_taken_edge_cond_expr): ... here
15441         (find_taken_edge_switch_expr): ... and here, handle cases
15442         with just a default label.
15443         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
15444         (group_case_labels): Likewise.
15445         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
15446         group_case_labels does anything cleanup the CFG again.
15448 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
15450         PR tree-optimization/81196
15451         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
15452         exit condition comparing two IVs.
15454 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
15456         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
15457         profile to the dummy entry at the end of the list of architectures.
15458         * config/arm/arm-cpu-cdata.h: Regenerated.
15460 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15461             Michael Collison <michael.collison@arm.com>
15463         PR target/70119
15464         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
15465         New pattern.
15466         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
15467         (*aarch64_reg_<mode>3_minus_mask): New pattern.
15468         (*aarch64_<optab>_reg_di3_mask2): New pattern.
15469         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
15470         of shift when the shift amount is masked with constant equal to
15471         the size of the mode.
15472         * config/aarch64/predicates.md (subreg_lowpart_operator): New
15473         predicate.
15475 2017-06-29  Martin Liska  <mliska@suse.cz>
15477         * config/i386/i386.opt: Change range from [1,5] to [0,5].
15479 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
15481         PR bootstrap/80565
15482         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
15483         code.
15484         * ipa-inline.h
15485         (edge_growth_cache_entry::edge_growth_cache_entry): New
15486         function.
15487         (reset_edge_growth_cache): Update to use constructor.
15489 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15491         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
15492         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
15493         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
15495 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
15497         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
15498         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
15500 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
15502         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
15503         (*-linux-uclibc*): Add t-uclibc tmake_file.
15504         * config/t-musl: New.
15505         * config/t-uclibc: New.
15507 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
15509         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
15510         context.
15511         (gen_comm_data): Emit architectural setting of arch_prof.
15512         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
15513         profile.
15514         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
15515         (armv8-m.base, armv8-m.main): Likewise.
15516         * arm-protos.h (arm_build_target): Add profile field.
15517         (arch_option): Likewise.
15518         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
15519         the active target.
15520         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
15521         arm_active_target.profile.
15523 2017-06-28  Richard Biener  <rguenther@suse.de>
15525         PR middle-end/81227
15526         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
15527         TYPE_OVERFLOW_WRAPS.
15528         * match.pd (negate_expr_p): Likewise.
15529         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
15530         fold_build2, not fold_binary.
15532 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
15534         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
15535         Convert memory address to Pmode.
15536         (aarch64_print_operand): Assert MEM operands are always Pmode.
15538 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
15540         PR target/79665
15541         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
15542         Remove redundant if.
15543         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
15544         * config/arm/aarch-common-protos.h
15545         (aarch_forward_to_shift_is_not_shifted_re): Remove.
15546         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
15548 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
15550         PR ipa/81238
15551         * multiple_target.c (create_dispatcher_calls): Set the default
15552         clone to be static, not public.
15554 2017-06-28  Richard Biener  <rguenther@suse.de>
15556         * tree-vect-loop.c (vectorizable_reduction): Move special
15557         cond reduction IV var creation ...
15558         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
15559         parameter.  Use STMT_VINFO_VECTYPE.
15560         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
15561         constant_p.
15563 2017-06-28  Martin Liska  <mliska@suse.cz>
15565         PR ipa/81128
15566         * ipa-visibility.c (non_local_p): Handle visibility.
15568 2017-06-28  Martin Liska  <mliska@suse.cz>
15570         PR driver/79659
15571         * common.opt: Add IntegerRange to various options.
15572         * opt-functions.awk (integer_range_info): New function.
15573         * optc-gen.awk: Add integer_range_info to cl_options struct.
15574         * opts-common.c (decode_cmdline_option): Handle
15575         CL_ERR_INT_RANGE_ARG.
15576         (cmdline_handle_error): Likewise.
15577         * opts.c (print_filtered_help): Show valid interval in
15578         when --help is provided.
15579         * opts.h (struct cl_option): Add range_min and range_max fields.
15580         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
15582 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
15584         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
15585         (x * C EQ/NE y * C): New transformation.
15587 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
15589         * genmultilib (combination_space): Accept '+' in option names.
15591 2017-06-28  Martin Liska  <mliska@suse.cz>
15593         PR sanitizer/81224
15594         * asan.c (instrument_derefs): Bail out inner references
15595         that are hard register variables.
15597 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
15599         PR target/81175
15600         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
15601         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
15603 2017-06-28  Richard Biener  <rguenther@suse.de>
15605         * tree-vectorizer.h (vect_get_vec_defs): Remove.
15606         (vect_get_slp_defs): Adjust.
15607         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
15608         out from ...
15609         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
15610         simplify.
15611         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
15612         get_initial_defs_for_reduction instead of vect_get_vec_defs.
15613         (vectorizable_reduction): Adjust.
15614         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
15615         handling.
15616         (vect_get_slp_defs): Likewise.
15617         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
15618         (vectorizable_bswap): Adjust.
15619         (vectorizable_call): Likewise.
15620         (vectorizable_conversion): Likewise.
15621         (vectorizable_assignment): Likewise.
15622         (vectorizable_shift): Likewise.
15623         (vectorizable_operation): Likewise.
15624         (vectorizable_store): Likewise.
15625         (vectorizable_condition): Likewise.
15626         (vectorizable_comparison): Likewise.
15628 2017-06-28  Michael Collison  <michael.collison@arm.com>
15630         PR target/68535
15631         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
15632         set of base_reg
15633         (arm_gen_movmemqi): Removed unused variable 'i'.
15634         Convert 'for' loop into 'while' loop.
15635         (arm_expand_prologue): Remove last unnecessary set of insn.
15636         (thumb_pop): Remove unused variable 'pushed_words'.
15637         (thumb_exit): Remove last unnecessary set of regs_to_pop.
15639 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15641         * config/s390/predicates.md: Use s390_rel_address_ok_p.
15642         * config/s390/s390-protos.h: Add prototype of
15643         s390_rel_address_ok_p.
15644         * config/s390/s390.c (s390_got_symbol): New function.
15645         (s390_rel_address_ok_p): New function.
15646         (legitimize_pic_address): Use s390_rel_address_ok_p.
15647         (s390_load_got): Use s390_got_symbol.
15648         (s390_option_override): Issue error if
15649         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
15650         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
15651         New macro.
15652         * config/s390/s390.opt: New option mpic-data-is-text-relative.
15654 2017-06-27  Andrew Pinski  <apinski@cavium.com>
15656         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
15657         (X * copysign (1.0, X)): New pattern.
15658         (X * copysign (1.0, -X)): New pattern.
15659         (copysign (-1.0, CST)): New pattern.
15661 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
15663         * genmultilib (combination_space): Remove variable.
15664         Validate reuse rules against regular expression for any sequence
15665         of multilib options in any order.
15667 2017-06-27  Michael Collison  <michael.collison@arm.com>
15669         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
15670         call aarch64_split_simd_combine.
15671         * (aarch64_combine_internal<mode>): Delete pattern.
15672         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
15673         Allow register and subreg operands.
15675 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
15677         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
15678         specific need, just fallback on defaults.
15679         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
15681 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
15682             Olivier Hainque  <hainque@adacore.com>
15684         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
15685         map for 64bits.
15686         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
15687         targets. Pick a default if no particular attempt applied.
15688         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
15689         larger contexts.
15691 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
15693         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
15694         (x86_64-wrs-vxworks7): Likewise.
15696 2017-06-27  Marek Polacek  <polacek@redhat.com>
15698         PR sanitizer/81223
15699         * ubsan.c (instrument_null): Check get_base_address's result for null.
15701 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
15703         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
15705 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
15707         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
15708         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
15709         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
15710         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
15711         New function types.
15712         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
15713         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
15714         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
15715         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
15716         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
15717         BUILT_IN_FEUPDATEENV): New builtins.
15718         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
15719         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
15720         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
15721         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
15722         macros.
15723         (builtin_structptr_types): Adjust size.
15724         * tree.c (builtin_structptr_types): Add four entries.
15726 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
15727             Olivier Hainque  <hainque@adacore.com>
15729         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
15730         (TLS_SYM): New local macro, forcing reference to __tls__ on
15731         link command lines for VxWorks 7 RTPs, triggering initialization
15732         of tlsLib.
15733         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
15734         OS features TLS support, true for RTPs on VxWorks 7.
15735         * config/vxworks.c (vxworks_override_options): Setup emutls
15736         accordingly.
15738 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
15740         * predict.c (test_prediction_value_range): Use -1U instead of -1
15741         to avoid narrowing conversion warning.
15742         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
15743         to avoid narrowing conversion warning.
15744         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
15745         -1.
15746         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
15748 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
15750         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
15751         64bit configurations.
15752         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
15753         (SIZE_TYPE): Likewise.
15754         * config/vxworks.c (vxworks_emutls_var_fields): Use
15755         long_unsigned_type_node instead of unsigned_type_node as the offset
15756         field type, which is "pointer" mode in emutls.c.
15758 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
15760         PR sanitizer/81209
15761         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
15763         PR middle-end/81207
15764         * gimple-fold.c (replace_call_with_call_and_fold): Handle
15765         gimple_vuse copying separately from gimple_vdef copying.
15767 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15769         * value-prof.c (free_hist): Remove call to memset and the enclosing if
15770         condition.
15772 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
15773             Olivier Hainque  <hainque@adacore.com>
15775         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
15776         for all vxworks7 targets.
15777         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
15778         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
15779         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
15780         variations for VX6/VX7 and 32/64bits later on in ...
15781         (VXWORKS_LIB_SPEC): Leverage new macros.
15782         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
15783         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
15785 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
15787         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
15788         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
15790 2017-06-26  Carl Love  <cel@us.ibm.com>
15792         * config/rs6000/rs6000-c.c: Add support for built-in functions
15793         vector bool char vec_reve (vector bool char);
15794         vector signed char vec_reve (vector signed char);
15795         vector unsigned char vec_reve (vector unsigned char);
15796         vector bool int vec_reve (vector bool int);
15797         vector signed int vec_reve (vector signed int);
15798         vector unsigned int vec_reve (vector unsigned int);
15799         vector bool long long vec_reve (vector bool long long);
15800         vector signed long long vec_reve (vector signed long long);
15801         vector unsigned long long vec_reve (vector unsigned long long);
15802         vector bool short vec_reve (vector bool short);
15803         vector signed short vec_reve (vector signed short);
15804         vector double vec_reve (vector double);
15805         vector float vec_reve (vector float);
15806         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
15807         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
15808         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
15809         (altivec_vreve): New pattern.
15810         * config/rs6000/altivec.h (vec_reve): New define.
15811         * doc/extend.texi (vec_rev): Update the built-in documentation file
15812         for the new built-in functions.
15814 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15816         PR tree-optimization/71815
15817         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
15818         function.
15819         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
15820         has_single_use.
15821         (slsr_process_phi): Likewise.
15822         (replace_uncond_cands_and_profitable_phis): Don't replace a
15823         multiply candidate with a stride of 1 (copy or cast).
15824         (phi_incr_cost): Call uses_consumed_by_stmt rather than
15825         has_single_use.
15826         (lowest_cost_path): Likewise.
15827         (total_savings): Likewise.
15829 2017-06-26  Richard Biener  <rguenther@suse.de>
15831         PR target/81175
15832         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
15833         Use def_builtin_pure for all gather builtins.
15835 2017-06-26  Richard Biener  <rguenther@suse.de>
15837         PR tree-optimization/81203
15838         * tree-tailcall.c (find_tail_calls): Do not move stmts into
15839         non-dominating BBs.
15841 2017-06-26  Marek Polacek  <polacek@redhat.com>
15843         PR c/80116
15844         * doc/invoke.texi: Document -Wmultistatement-macros.
15846 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
15848         * doc/sourcebuild.texi (ARM-specific attributes): Document new
15849         arm_neon_ok_no_float_abi effective target.
15851 2017-06-26  Richard Biener  <rguenther@suse.de>
15853         PR tree-optimization/80928
15854         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
15855         (copy_bbs): Set BB_DUPLICATED flag early.
15856         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
15857         marked blocks.
15858         (execute_on_shrinking_pred): Likewise.
15859         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
15860         BB_DUPLICATED blocks.
15861         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
15862         iterate over all PHIs considering removal of *gsi.
15864 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
15866         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
15867         qdf24xx.
15869 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
15871         * config/rs6000/rs6000-string.c: (expand_block_clear,
15872         do_load_for_compare, select_block_compare_mode,
15873         compute_current_alignment, expand_block_compare,
15874         expand_strncmp_align_check, expand_strn_compare,
15875         expand_block_move, rs6000_output_load_multiple)
15876         Move functions related to string/block move/compare
15877         to a separate file.
15878         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
15879         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
15880         for this function which is now used in two files.
15881         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
15882         * config.gcc: Add rs6000-string.o to extra_objs for
15883         targets powerpc*-*-* and rs6000*-*-*.
15885 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
15887         PR target/80510
15888         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
15889         32-bit, since indexed is not valid for DImode.
15890         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
15891         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
15892         (define_peephole2 for Altivec d-form load): Add 32-bit support.
15893         (define_peephole2 for Altivec d-form store): Likewise.
15895         PR ipa/81185
15896         * multiple_target.c (create_dispatcher_calls): Only create the
15897         dispatcher call if the function is the default clone of a
15898         versioned function.
15900 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
15902         PR middle-end/80902
15903         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
15904         a call, force the call to not be a tail call.
15906 2017-06-23  Jeff Law  <law@redhat.com>
15908         * doc/contrib.texi: Add entry for Steven Pemberton's work on
15909         enquire.
15911 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
15913         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
15914         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
15915         handling for early expansion of vector shifts (sl,sr,sra,rl).
15916         (builtin_function_type): Add vector shift right instructions
15917         to the unsigned argument list.
15919 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15921         rtl-optimizatoin/79286
15922         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
15923         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
15924         trap.  PIC register plus a const unspec without offset can never trap.
15926 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
15928         * tree.h (builtin_structptr_type): New type.
15929         (builtin_structptr_types): Declare new array.
15930         * tree.c (builtin_structptr_types): New array.
15931         (free_lang_data, build_common_tree_nodes): Use it.
15933 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
15935         PR c++/81187
15936         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
15937         -Wnoexcept.
15939 2017-06-22  Matt Turner  <mattst88@gmail.com>
15941         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
15942         Lake models to skylake case.  Assume skylake for unknown
15943         models with clflushopt.
15945 2017-06-22  Jeff Law  <law@redhat.com>
15947         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
15948         frame sizes that do not satisfy aarch64_uimm12_shift.
15950 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
15952         * profile-count.h (apply_probability,
15953         apply_scale, probability_in): Fix checks for zero.
15955 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15957         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
15958         * doc/cppdiropts.texi (-I @var{dir}): Document it.
15960 2016-06-22  Richard Biener  <rguenther@suse.de>
15962         * tree-vect-loop.c (vect_model_reduction_cost): Handle
15963         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
15964         REDUC_MAX_EXPR support.
15965         (vectorizable_reduction): Likewise.
15966         (vect_create_epilog_for_reduction): Likewise.
15968 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
15970         * match.pd (A / (1 << B) -> A >> B): New.
15971         * generic-match-head.c: Include optabs-tree.h.
15972         * gimple-match-head.c: Likewise.
15973         * optabs-tree.h (target_supports_op_p): New.
15974         * optabs-tree.c (target_supports_op_p): New.
15976 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15978         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
15979         $gcc_cv_ld --help output.
15980         (gcc_cv_ld_demangle): Likewise.
15981         (gcc_cv_ld_eh_frame_hdr): Likewise.
15982         (gcc_cv_ld_pie): Likewise.
15983         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
15984         (gcc_cv_ld_buildid): Likewise.
15985         (gcc_cv_ld_sysroot): Likewise.
15986         (ld_bndplt_support): Likewise.
15987         (ld_pushpopstate_support): Likewise.
15988         * configure: Regenerate.
15989         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
15991 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
15993         PR target/81151
15994         * config/i386/sse.md (round<mode>2): Renumber match_dup and
15995         operands indexes to avoid gap between operands and match_dups.
15997 2017-06-21  Andrew Pinski  <apinski@cavium.com>
15999         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
16000         Increment Arith_shift and Arith_shift_reg by 1.
16001         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
16002         New tuning flag.
16003         * config/aarch64/aarch64.c (thunderx_tunings): Enable
16004         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
16005         (aarch64_strip_extend): Add new argument and test for it.
16006         (aarch64_cheap_mult_shift_p): New function.
16007         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
16008         add a cost if it is true.
16009         Update calls to aarch64_strip_extend.
16010         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
16012 2017-06-21  Andrew Pinski  <apinski@cavium.com>
16014         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
16015         tunings.
16016         (thunderxt88): Likewise.
16017         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
16018         (thunderx_prefetch_tune): New variable.
16019         (thunderx2t99_prefetch_tune): Update for the correct values.
16020         (thunderxt88_tunings): New variable.
16021         (thunderx_tunings): Use thunderx_prefetch_tune instead of
16022         generic_prefetch_tune.
16023         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
16025 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16027         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
16028         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
16029         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
16030         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
16031         (aarch64_atomic_cas<mode>, GPI): Likewise.
16033 2017-06-21  Martin Liska  <mliska@suse.cz>
16035         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
16036         statements on cold and hot labels.
16037         * predict.c (tree_estimate_probability_bb): Remove the
16038         prediction from this place.
16040 2017-06-21  Martin Liska  <mliska@suse.cz>
16042         PR tree-optimization/79489
16043         * gimplify.c (maybe_add_early_return_predict_stmt): New
16044         function.
16045         (gimplify_return_expr): Call the function.
16046         * predict.c (tree_estimate_probability_bb): Remove handling
16047         of early return.
16048         * predict.def: Update comment about early return predictor.
16049         * gimple-predict.h (is_gimple_predict): New function.
16050         * predict.def: Change default value of early return to 66.
16051         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
16052         statements.
16053         * passes.def: Put pass_strip_predict_hints to the beginning of
16054         IPA passes.
16056 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
16058         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
16059         FUNCTION_DECL declarations.
16060         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
16061         declarations.
16062         (dwaf2out_decl): Likewise.
16063         * godump.c (go_early_global_decl): Skip call to the real debug hook
16064         for FUNCTION_DECL declarations.
16065         * passes.c (rest_of_decl_compilation): Skip call to the
16066         early_global_decl debug hook for FUNCTION_DECL declarations, unless
16067         -fdump-go-spec is passed.
16069 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
16071         * config/i386/i386.c (struct builtin_isa): New field pure_p.
16072         Reorder for compactness.
16073         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
16074         (def_builtin_pure, def_builtin_pure2): New functions.
16075         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
16077 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
16079         * match.pd (nop_convert): New predicate.
16080         ((A +- CST1) +- CST2): Allow some NOP conversions.
16082 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
16084         PR c++/81130
16085         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
16086         with ctors/dtors if GOVD_SHARED is set.
16088 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
16090         * config/aarch64/aarch64.md (movti_aarch64):
16091         Emit mov rather than orr.
16092         (movtf_aarch64): Likewise.
16093         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
16094         Emit mov rather than orr.
16096 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
16098         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
16099         Swap alternatives, make integer dup more expensive.
16101 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
16103         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
16104         Return true for non-tls symbols.
16106 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
16108         * config/aarch64/aarch64-cores.def (cortex-a55): New.
16109         (cortex-a75): Likewise.
16110         (cortex-a75.cortex-a55): Likewise.
16111         * config/aarch64/aarch64-tune.md: Regenerate.
16112         * doc/invoke.texi (-mtune): Document new values for -mtune.
16114 2017-06-21  Tom de Vries  <tom@codesourcery.com>
16116         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
16117         stack_size feature.
16118         (Effective-Target Keywords, Other attributes): Suggest using
16119         dg-add-options stack_size feature to get stack limit in stack_size
16120         effective target documentation.
16122 2017-06-21  Julian Brown  <julian@codesourcery.com>
16123             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
16125         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
16126         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
16127         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
16128         reservation.
16129         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
16130         attribute type list for neon_multiply.
16131         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
16132         attribute type list for neon_multiply.
16133         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
16134         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
16135         attribute type list for neon_multiply.
16136         * config/arm/types.md (crypto_pmull): Add.
16137         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
16138         attribute type list.
16140 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
16142         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
16143         arm1176jzf-s.
16145 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
16147         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
16148         to make sure not to dereference a NULL cost_classes_ptr pointer.
16150 2017-06-20  Carl Love  <cel@us.ibm.com>
16152         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16153         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
16154         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
16155         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
16156         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
16157         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
16158         VMULOSW): New enum "unspec" values.
16159         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
16160         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
16161         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
16162         altivec_vmulosw): New patterns.
16163         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
16164         VMULOSW): Add definitions.
16166 2017-06-20  Julia Koval  <julia.koval@intel.com>
16168         * config/i386/i386.c: Fix rounding expand for new pattern.
16169         * config/i386/subst.md: Fix pattern (parallel -> unspec).
16171 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
16173         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
16174         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
16176 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
16178         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
16179         feature string.
16181 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
16183         * config/aarch64/aarch64-cores.def: Rearrange to sort by
16184         architecture, then by implementer ID.
16185         * config/aarch64/aarch64-tune.md: Regenerate.
16187 2017-06-20  Richard Biener  <rguenther@suse.de>
16189         PR middle-end/81097
16190         * fold-const.c (split_tree): Fold to type before negating.
16192 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
16194         * diagnostic-show-locus.c
16195         (selftest::test_fixit_deletion_affecting_newline): New function.
16196         (selftest::diagnostic_show_locus_c_tests): Call it.
16198 2017-06-20  Andreas Schwab  <schwab@suse.de>
16200         PR target/80970
16201         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
16202         instead of "+d".
16204 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
16206         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
16207         __ARM_FEATURE_COPROC according to support.
16209 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
16211         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
16212         Rewritten to avoid overflow for > 32-bit pointers.
16214         PR sanitizer/81125
16215         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
16216         by removing enum keyword.
16217         (ubsan_type_descriptor): Likewise.  Formatting fix.
16219         PR target/81121
16220         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
16221         splitter): Require TARGET_SSE2 in the condition.
16223 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
16225         PR target/79799
16226         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
16227         for doing vector set of SFmode on ISA 3.0.
16228         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
16229         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
16230         element.
16231         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
16232         SFmode value into a V4SF variable that was extracted from another
16233         V4SF variable without converting the element to double precision
16234         and back to single precision vector format.
16235         (vsx_insert_extract_v4sf_p9_2): Likewise.
16237 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
16239         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
16240         in UWHI to avoid undefined overflow.
16242         PR sanitizer/81125
16243         * ubsan.h (enum ubsan_encode_value_phase): New.
16244         (ubsan_encode_value): Change second argument to
16245         enum ubsan_encode_value_phase with default value of
16246         UBSAN_ENCODE_VALUE_GENERIC.
16247         * ubsan.c (ubsan_encode_value): Change second argument to
16248         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
16249         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
16250         create_tmp_var_raw instead of create_tmp_var and use a
16251         TARGET_EXPR.
16252         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
16253         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
16254         ubsan_encode_value callers.
16256         PR sanitizer/81111
16257         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
16258         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
16259         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
16261 2017-06-19  Richard Biener  <rguenther@suse.de>
16263         PR middle-end/81118
16264         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
16265         estimates if we changed anything.
16267 2017-06-19  Richard Biener  <rguenther@suse.de>
16269         PR tree-optimization/80887
16270         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
16271         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
16272         simplified lookups, then reset mprts_hook.
16273         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
16274         simplifying.
16275         (try_to_simplify): Likewise.
16277 2017-06-19  Martin Liska  <mliska@suse.cz>
16279         PR sanitizer/80879
16280         * gimplify.c (gimplify_switch_expr):
16281         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
16283 2017-06-19  Martin Liska  <mliska@suse.cz>
16285         * doc/install.texi: Document that PGO runs in 4 stages.
16287 2017-06-19  Martin Liska  <mliska@suse.cz>
16289         PR ipa/80732
16290         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
16291         to dispatcher function name.
16292         * multiple_target.c (replace_function_decl): New function.
16293         (create_dispatcher_calls): Redirect both edges and references.
16295 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
16297         * profile-count.c (profile_count::dump): Dump quality.
16298         (profile_count::differs_from_p): Update for unsigned val.
16299         * profile-count.h (profile_count_quality): New enum.
16300         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
16302 2017-06-19  Richard Biener  <rguenther@suse.de>
16304         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
16305         struct function as arg.
16306         (estimate_numbers_of_iterations): Export overload with loop arg.
16307         (free_numbers_of_iterations_estimates_loop): Use an overload of
16308         free_numbers_of_iterations_estimates instead.
16309         * tree-cfg.c (remove_bb): Adjust.
16310         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
16311         * tree-parloops.c (gen_parallel_loop): Likewise.
16312         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
16313         Likewise.
16314         (tree_unroll_loops_completely): Likewise.
16315         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
16316         Use an overload instead and export.
16317         (estimated_loop_iterations): Adjust.
16318         (max_loop_iterations): Likewise.
16319         (likely_max_loop_iterations): Likewise.
16320         (estimate_numbers_of_iterations): Take struct function as arg
16321         and adjust.
16322         (loop_exits_before_overflow): Adjust.
16323         (free_numbers_of_iterations_estimates_loop): Use an overload.
16324         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
16325         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
16327 2017-06-19  Richard Biener  <rguenther@suse.de>
16329         PR ipa/81112
16330         * ipa-prop.c (find_constructor_constant_at_offset): Handle
16331         RANGE_EXPR conservatively.
16333 2017-06-16  Carl Love  <cel@us.ibm.com>
16335         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16336         definitions for vec_float, vec_float2, vec_floato,
16337         vec_floate built-ins.
16338         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
16339         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
16340         floate.
16341         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
16342         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
16343         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
16344         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
16345         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
16346         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
16347         vec_floato): Add builtin defines.
16348         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
16349         Update the built-in documentation file for the new built-in
16350         functions.
16352 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16354         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
16355         (mthumb): Mark as the negative of -marm.
16357 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16359         * doc/invoke.texi (ARM Options, -mcpu): Document supported
16360         extension options.
16361         (ARM Options, -mtune): Document that this accepts the same
16362         extension options as -mcpu.
16363         (ARM Options, -mfpu): Document addition of -mfpu=auto.
16365 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16367         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
16368         permitted extensions.
16370 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16372         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
16373         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
16374         (armv8-m.main): Add option +nodsp.
16375         * config/arm/arm-cpu-cdata.h: Regenerated.
16377 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16379         * config/arm/t-fuchsia: New file.
16380         * config.gcc (arm*-*-fuchsia*): Use it.
16382 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16384         * config/arm/t-symbian: Rewrite for new option infrastructure.
16386 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16388         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
16389         (MULTILIB_REQUIRED): Likewise.
16391 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16393         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
16394         (MULTILIB_RESUE): Likewise.
16395         (MULTILIB_MATCHES): Likewise.
16396         (MULTLIB_REQUIRED): Likewise.
16398 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16400         * config/arm/t-rtems: Rewrite for new option framework.
16402 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16404         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
16405         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
16406         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
16407         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
16408         * config/arm/t-multilib: ... here.
16409         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
16410         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
16411         armv7-a and armv8*-a when A-profile libraries have not been built.
16412         * config/arm/t-rmprofile: Rewrite.
16414 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16416         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
16417         with a backslash.  Remove the backslash after substituting unescaped
16418         periods.
16419         * doc/fragments.texi (MULTILIB_REUSE): Document it.
16421 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16423         * config.gcc: (arm*-*-*): When building a-profile libraries, force
16424         the driver to pass through the default setting of -mfloat-abi.
16425         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
16426         rather than NULL.
16427         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
16428         (all_feat_combs): New rule.
16429         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
16430         default libraries.
16431         * config/arm/t-aprofile: Rewrite.
16433 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16435         * config/arm/arm.h (FPUTYPE_AUTO): Define.
16436         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
16437         fpu is not specified by the user/command-line.
16438         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
16439         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
16440         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
16441         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
16442         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
16443         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
16445 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16447         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
16448         * config/arm/t-arm-elf: Rewritten.
16450 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16452         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
16453         have some floating-point instructions.
16454         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
16455         (TARGET_MAYBE_HARD_FLOAT): New macro.
16456         * config/arm/arm-builtins.c (arm_init_builtins): Use
16457         TARGET_MAYBE_HARD_FLOAT.
16458         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
16460 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16462         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
16463         (configargs.h): Include it.
16464         (arm_print_hint_for_fpu_option): New function.
16465         (arm_parse_fpu_option): New function.
16466         (candidate_extension): New class.
16467         (arm_canon_for_multilib): New function.
16468         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
16469         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
16470         (ARCH_CANONICAL_SPECS): New macro.
16471         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
16473 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16475         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
16476         are set after handling multilib fragments.  Set target_cpu_default2
16477         from with_cpu.
16479 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16481         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
16482         cpu name.
16483         (arm*-*-*): Set target_cpu_default2 to a quoted string.
16484         * config/arm/parsecpu.awk (check_cpu): Validate any extension
16485         options.
16486         (check_arch): Likewise.
16487         * config/arm/arm.c (arm_configure_build_target): Handle
16488         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
16489         options in the default.
16491 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16493         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
16494         when an option is an alias of another.
16495         * config/arm/parsecpu.awk (optalias): New parser token.
16496         (gen_comm_data): Mark non-alias options as such.  Emit entries
16497         for extension aliases.
16498         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
16499         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
16500         (armv6kz, armv6zk, armv6t2): Likewise.
16501         (armv7): Make vfpv3-d16 an alias.
16502         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
16503         canonical order.
16504         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
16505         Sort in canonical order.
16506         (armv8-a): Sort in canonical order.
16507         (armv8.1-a, armv8.2-a):  Likewise.
16508         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
16509         canonical order.
16510         (cortex-a9): Sort in canonical order.
16511         * config/arm/arm.c (selftests.h): Include it.
16512         (arm_test_cpu_arch_data): New function.
16513         (arm_run_self_tests): New function.
16514         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
16515         (targetm): Move declaration to the end of the file.
16516         * arm-cpu-cdata.h: Regenerated.
16518 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16520         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
16521         call to target_mode_check describing the type of option passed.
16522         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
16523         (arm_target_thumb_only): Use arm_parse_arch_option_name or
16524         arm_parse_cpu_option_name to match parameters against list of
16525         available targets.
16526         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
16527         arm_arch_core_flags data structure.
16528         * config/arm/arm-cpu_cdata.h: Regenerated.
16530 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16532         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
16533         config/arm/arm.c.
16534         (arm_print_hint_for_cpu_option): Likewise.
16535         (arm_print_hint_for_arch_option): Likewise.
16536         (arm_parse_cpu_option_name): Likewise.
16537         (arm_parse_arch_option_name): Likewise.
16538         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
16539         of entries in the all_fpus list.
16540         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
16541         (arm_parse_cpu_option_name): Declare.
16542         (arm_parse_arch_option_name): Declare.
16543         (arm_parse_option_features): Declare.
16544         (arm_intialize_isa): Declare.
16545         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
16546         data tables to ...
16547         (gen_comm_data): ... here.  Make definitions non-static.
16548         * config/arm/arm-cpu-data.h: Regenerated.
16549         * config/arm/arm-cpu-cdata.h: Regenerated.
16551 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16553         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
16554         (cpu_arch_extension): New structure.
16555         (cpu_arch_option, arch_option, cpu_option): New structures.
16556         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
16557         architecture types.
16558         (gen_data): Generate new format data tables.
16559         * config/arm/arm.c (cpu_tune): New structure.
16560         (cpu_option, processors): Delete.
16561         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
16562         (arm_print_hint_for_cpu_option): ... this and ...
16563         (arm_print_hint_for_arch_option): ... this.
16564         (arm_parse_arch_cpu_name): Delete.  Replace with ...
16565         (arm_parse_cpu_option_name): ... this and ...
16566         (arm_parse_arch_option_name): ... this.
16567         (arm_unrecognized_feature): Change type of target parameter to
16568         cpu_arch_option.
16569         (arm_parse_arch_cpu_features): Delete.  Replace with ...
16570         (arm_parse_option_features): ... this.
16571         (arm_configure_build_target): Rework to use new configuration data
16572         tables.
16573         (arm_print_tune_info): Rework for new configuration data tables.
16574         * config/arm/arm-cpu-data.h: Regenerated.
16575         * config/arm/arm-cpu.h: Regenerated.
16577 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16579         * Makefile.in (OBJS): Move sbitmap.o from here ...
16580         (OBJS-libcommon): ... to here.
16582 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16584         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
16585         (ISA_ALL_CRYPTO): New macro.
16586         (ISA_ALL_SIMD): New macro
16587         (ISA_ALL_FP): New macro.
16588         * config/arm/arm.c (fpu_bitlist): Update initializer.
16589         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
16590         simd or fp.
16591         (arm9e): Add fpu.  Add option for nofp
16592         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
16593         (arm926ej-s, arm1026ej-s): Likewise.
16594         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
16595         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
16596         neon-fp16, neon-vfpv4, nofp and nosimd.
16597         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
16598         (cortex-a8): Add fpu.  Add option for nofp.
16599         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
16600         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
16601         (cortex-r4f): Add fpu.
16602         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
16603         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
16604         for nofp.
16605         (cortex-r8): Likewise.
16606         (cortex-m4): Add fpu.  Add option for nofp.
16607         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
16608         (cortex-a17.cortex-a7): Likewise.
16609         (cortex-a32): Add fpu.  Add options for crypto and nofp.
16610         (cortex-a35, cortex-a53): Likewise.
16611         (cortex-a57): Add fpu.  Add option for crypto.
16612         (cortex-a72, cortex-a73): Likewise.
16613         (exynos-m1): Likewise.
16614         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
16615         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
16616         (cortex-m33): Add fpu.  Add option for nofp.
16617         * config/arm/arm-cpu-cdata.h: Regenerated
16618         * config/arm/arm-cpu-data.h: Regenerated.
16620 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16622         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
16623         (armv5te, armv5tej): Likewise.
16624         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
16625         (armv7): Add options fp and vfpv3-d16.
16626         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
16627         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
16628         nofp and nosimd.
16629         (armv7ve): Likewise.
16630         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
16631         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
16632         (armv8-a): Add nocrypto option.
16633         (armv8.1-a, armv8.2-a): Likewise.
16634         (armv8-m.main): add options fp, fp.dp and nofp.
16636 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16638         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
16639         nofp.
16640         (armv8-a+crc): Delete.
16641         (armv8.1-a): Add options simd, crypto and nofp.
16642         (armv8.2-a): Add options fp16, simd, crypto and nofp.
16643         (armv8.2-a+fp16): Delete.
16644         (armv8-m.main): Add option dsp.
16645         (armv8-m.main+dsp): Delete.
16646         (cortex-a8): Add fpu.  Add nofp option.
16647         (cortex-a9): Add fpu.  Add nofp and nosimd options.
16648         * config/arm/parsecpu.awk (gen_data): Generate option tables and
16649         link to main cpu and architecture data structures.
16650         (gen_comm_data): Only put isa attributes from the main architecture
16651         in common tables.
16652         (option): New statement for architecture and CPU entries.
16653         * arm.c (struct cpu_option): New structure.
16654         (struct processors): Add entry for options.
16655         (arm_unrecognized_feature): New function.
16656         (arm_parse_arch_cpu_name): Ignore any characters after the first
16657         '+' character.
16658         (arm_parse_arch_cpu_feature): New function.
16659         (arm_configure_build_target): Separate out any CPU and architecture
16660         features and parse separately.  Don't error out if -mfpu=auto is
16661         used with only an architecture string.
16662         (arm_print_asm_arch_directives): New function.
16663         (arm_file_start): Call it.
16664         * config/arm/arm-cpu-cdata.h: Regenerated.
16665         * config/arm/arm-cpu-data.h: Likewise.
16666         * config/arm/arm-tables.opt: Likewise.
16668 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16670         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
16671         assembler when it is not -mfpu=auto.
16673 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16675         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
16676         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
16677         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
16678         (ASM_CPU_SPEC): Rewrite.
16679         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
16680         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
16681         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
16682         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
16683         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
16684         copied string is NUL-terminated.  Also strip any characters prefixed
16685         by '+'.
16686         (arm_rewrite_selected_arch): New function.
16687         (arm_rewrite_march): New function.
16689 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
16691         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
16692         (x_arm_cpu_string, x_arm_tune_string): Likewise.
16693         (march, mcpu, mtune): Convert to string-based options.
16694         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
16695         (arm_parse_arch_cpu_name): New function.
16696         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
16697         identify selected architecture or CPU.
16698         (arm_option_save): New function.
16699         (TARGET_OPTION_SAVE): Redefine.
16700         (arm_option_restore): Restore string options.
16701         (arm_option_print): Print string options.
16703 2017-06-16  Martin Sebor  <msebor@redhat.com>
16705         PR tree-optimization/80933
16706         PR tree-optimization/80934
16707         * builtins.c (fold_builtin_3): Do not handle bcmp here.
16708         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
16709         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
16710         (gimple_fold_builtin): Call them.
16712 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
16714         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
16715         as unlikely; update profile.
16717 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
16719         * predict.c (force_edge_cold): Handle declaring edges impossible
16720         more aggresively.
16722 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
16724         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
16725         profile.
16726         (try_unroll_loop_completely): Fix reporting.
16728 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
16730         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
16732 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
16734         PR target/71778
16735         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
16736         if given a non-constant argument for an intrinsic which requires a
16737         constant.
16739 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
16741         * profile.c (compare_freqs): New function.
16742         (branch_prob): Sort edge list.
16743         (find_spanning_tree): Assume that the list is priority sorted.
16745 2017-06-16  Richard Biener  <rguenther@suse.de>
16747         PR tree-optimization/81090
16748         * passes.def (pass_record_bounds): Remove.
16749         * tree-pass.h (make_pass_record_bounds): Likewise.
16750         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
16751         make_pass_record_bounds): Likewise.
16752         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
16753         not free niter estimates at the beginning but at the end.
16754         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
16756 2017-06-16  Richard Biener  <rguenther@suse.de>
16758         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
16759         initializer to workaround ICE in host GCC 4.8.
16761 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
16763         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
16764         counts.
16765         (clone_inlined_nodes): Update.
16767 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16769         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
16770         prefetch settings, and enable prefetching by default at -O3.
16772 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16774         * config/aarch64/aarch64.c (aarch64_override_options_internal):
16775         Set flag_prefetch_loop_arrays according to tuning data.
16777 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16779         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
16780         New tune structure.
16781         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
16782         [Unrelated to main purpose of the patch] Place the pointer field last
16783         to enable type checking errors when tune structure are wrongly merged.
16784         * config/aarch64/aarch64.c (generic_prefetch_tune,)
16785         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
16786         (thunderx2t99_prefetch_tune): New tune constants.
16787         (tune_params *_tunings): Update all tunings (no functional change).
16788         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
16789         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
16790         from tunings structures.
16792 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
16794         PR sanitizer/81094
16795         * ubsan.c (instrument_null): Add T argument, use it instead
16796         of computing it based on IS_LHS.
16797         (instrument_object_size): Likewise.
16798         (pass_ubsan::execute): Adjust instrument_null and
16799         instrument_object_size callers to pass gimple_get_lhs or
16800         gimple_assign_rhs1 result to it.  Use instrument_null instead of
16801         calling get_base_address and instrument_mem_ref.  Handle
16802         aggregate call arguments for object-size sanitization.
16804 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
16806         PR tree-optimization/81089
16807         * tree-vrp.c (is_masked_range_test): Validate operands of
16808         subexpression.
16810 2017-06-15  Martin Sebor  <msebor@redhat.com>
16812         PR c++/80560
16813         * dumpfile.c (dump_register): Avoid calling memset to initialize
16814         a class with a default ctor.
16815         * gcc.c (struct compiler): Remove const qualification.
16816         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
16817         * hash-table.h: Ditto.
16818         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
16819           assignment.
16820         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
16821         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
16822         default ctor.
16823         * params.h (struct param_info): Make struct members non-const.
16824         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
16825         with default initialization.
16826         * vec.h (vec_copy_construct, vec_default_construct): New helper
16827         functions.
16828         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
16829         with vec_copy_construct.
16830         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
16831         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
16832         * doc/invoke.texi (-Wclass-memaccess): Document.
16834 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16836         * emit-rtl.h (is_leaf): Update comment about local
16837         register allocator.
16839 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
16841         PR target/78818
16842         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
16843         for a variable to have a section before checking if the section has a
16844         name.
16845         Set section to.persistent if persistent attribute is set.
16846         Warn if .persistent attribute is used on an automatic variable.
16848 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
16850         PR rtl-optimization/80474
16851         * reorg.c (update_block): Do not ignore instructions in a delay slot.
16853 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
16855         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
16856         of REGNO.
16858 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
16860         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
16861         (casesi): Emit bounds checking as RTL.
16862         (casesi_internal_mips16_<mode>): Remove bounds checking.
16864 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
16866         * config/xtensa/xtensa.c (xtensa_option_override): Append
16867         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
16868         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
16869          xtensa_doloop_hooks): Define unconditionally.
16870         (xtensa_reorg_loops): Only call reorg_loops in the presence of
16871         TARGET_LOOPS.
16872         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
16873         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
16874         for it in xtensa_option_override.
16875         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
16876          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
16878 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
16880         * doc/cppopts.texi: Document '-' special value to -MF.
16882 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
16884         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
16885         (cortex_a53_fconst): Likewise.
16886         (cortex_a53_fpmul): Likewise.
16887         (cortex_a53_f_load_64): Likewise.
16888         (cortex_a53_f_load_many): Likewise.
16889         (cortex_a53_advsimd_alu): Likewise.
16890         (cortex_a53_advsimd_alu_q): Likewise.
16891         (cortex_a53_advsimd_mul): Likewise.
16892         (cortex_a53_advsimd_mul_q): Likewise.
16893         (fpmac bypass): Add new bypass for fpmac-fpmac case.
16894         Add missing fmul, r2f_cvt and fconst cases.
16896 2017-06-14  Richard Biener  <rguenther@suse.de>
16898         PR middle-end/81088
16899         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
16900         literal constants.
16901         (fold_binary_loc): When associating do not treat pre-existing
16902         TREE_OVERFLOW on literal constants as a reason to allow
16903         TREE_OVERFLOW on associated literal constants.
16905 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
16907         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
16908         (MASK_FEATURES): New macro.
16909         * config/sparc/sparc.c (sparc_option_override): Remove the special
16910         handling of -mfpu and generalize it to all MASK_FEATURES switches.
16912 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
16914         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
16915         a division of 0 if non-call exceptions are enabled.
16917 2017-06-14  Andrew Pinski  <apinski@cavium.com>
16918             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
16920         PR target/71663
16921         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
16922         Improve vector initialization code gen for only variable case.
16924 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
16926         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
16928 2017-06-14  Richard Biener  <rguenther@suse.de>
16930         PR tree-optimization/81083
16931         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
16932         as values.
16934 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
16936         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
16937         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
16938         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
16939         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
16940         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
16941         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
16943 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
16945         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
16946         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
16948 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
16950         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
16952 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
16954         * config/rs6000/t-rtems: Don't handle SPE.
16956 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
16958         * config/rs6000/t-linux: Don't handle SPE.
16960 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
16962         * config/rs6000/eabispe.h: Delete file.
16964 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
16966         * config/rs6000/t-spe: Delete file.
16968 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
16970         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
16971         (rs6000_legitimate_offset_address_p): Return false for anything in
16972         V2SImode or V2SFmode.
16974 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
16976         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
16977         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
16978         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
16979         and V4HImode.
16980         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
16981         (rs6000_legitimate_offset_address_p): Ditto.
16982         (rs6000_emit_move): Ditto.
16983         (rs6000_init_builtins): Remove V4HI_type_node.
16985 2017-06-13  Martin Liska  <mliska@suse.cz>
16987         PR sanitize/78204
16988         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
16989         (gate_asan): Likewise.
16990         * asan.h (asan_no_sanitize_address_p): Remove the function.
16991         (sanitize_flags_p): New function.
16992         * builtins.def: Fix coding style.
16993         * common.opt: Use renamed enum value.
16994         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
16995         * doc/extend.texi: Document no_sanitize attribute.
16996         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
16997         to SANITIZE_UNDEFINED_NONDEFAULT.
16998         * gcc.c (sanitize_spec_function): Use the renamed enum value.
16999         * gimple-fold.c (optimize_atomic_compare_exchange_p):
17000         Use sanitize_flags_p.
17001         * gimplify.c (gimplify_function_tree): Likewise.
17002         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
17003         * opts.c (parse_no_sanitize_attribute): New function.
17004         (common_handle_option): Use renamed enum value.
17005         * opts.h (parse_no_sanitize_attribute): Declare.
17006         * tree.c (sanitize_flags_p): New function.
17007         * tree.h: Declared here.
17008         * tsan.c: Use sanitize_flags_p.
17009         * ubsan.c (ubsan_expand_null_ifn): Likewise.
17010         (instrument_mem_ref): Likewise.
17011         (instrument_bool_enum_load): Likewise.
17012         (do_ubsan_in_current_function): Remove the function.
17013         (pass_ubsan::execute): Use sanitize_flags_p.
17014         * ubsan.h: Remove do_ubsan_in_current_function
17015         * tree-cfg.c (print_no_sanitize_attr_value): New function.
17016         (dump_function_to_file): Use it here.
17018 2017-06-13  Martin Jambor  <mjambor@suse.cz>
17020         PR tree-optimization/80803
17021         PR tree-optimization/81063
17022         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
17023         (propagate_subaccesses_across_link): Enqueue subtree whenever
17024         necessary instead of relying on the caller.
17026 2017-06-13  Martin Jambor  <mjambor@suse.cz>
17028         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
17029         that have a first_link.
17030         (sort_and_splice_var_accesses): Do not check first_link before
17031         enquing.
17032         (subtree_mark_written_and_enqueue): Likewise.
17033         (propagate_all_subaccesses): Likewise and do not stop at first
17034         parent with a first_link.
17036 2017-06-13  Martin Jambor  <mjambor@suse.cz>
17038         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
17039         instead of f.
17041 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
17043         * match.pd: New pattern.
17045 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
17047         * tree-vrp.c (is_masked_range_test): New function.
17048         (register_edge_assert_for): Determine ranges for
17049         some bit tests.
17051 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
17053         PR tree-optimization/67328
17054         * fold-const.c (maskable_range_p): New function.
17055         (build_range_check): Generate bittests if possible.
17057 2017-06-13  Martin Liska  <mliska@suse.cz>
17059         * gimple-pretty-print.c (dump_probability): Add new argument.
17060         (dump_edge_probability): Dump both probability and count.
17061         (dump_gimple_label): Likewise.
17062         (dump_gimple_bb_header): Likewise.
17064 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
17066         PR target/81072
17067         * config/avr/avr-devices.c: Fix indentation.
17068         * config/avr/gen-avr-mmcu-specs.c: Dito.
17070 2017-06-13  Richard Biener  <rguenther@suse.de>
17072         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
17073         instead get vector type from stmt_info.
17074         (vectorizable_reduction): Adjust.  Remove dead code.
17076 2017-06-13  Richard Biener  <rguenther@suse.de>
17078         PR middle-end/81065
17079         * fold-const.c (extract_muldiv_1): Remove bogus distribution
17080         case of C * (x * C2 + C3).
17081         (fold_addr_of_array_ref_difference): Properly fold index difference.
17083 2017-06-12  David S. Miller  <davem@davemloft.net>
17085         PR target/80968
17086         * config/sparc/sparc.md (return expander): Emit frame blockage if
17087         function uses alloca.
17089 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
17091         * combine.c (make_field_assignment): Check len rather than the mode
17092         precision when calling force_to_mode.
17094 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
17096         Support multilibs and devices that see flash in RAM address range.
17098         PR target/81072
17099         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
17100         (avr_mcu_t) <flash_pm_offset>: New field.
17101         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
17102         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
17103         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
17104         (AVR_TINY_PM_OFFSET): Remove macro.
17105         * config/avr/avr.opt (-mshort-calls): New option.
17106         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
17107         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
17108         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
17109         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
17110         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
17111         instead of avr_arch->have_jmp_call.
17112         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
17113         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
17114         avr_arch->flash_pm_offset to define.
17115         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
17116         new field flash_pm_offset.  Add entry for avrxmega3.
17117         (avr_texinfo): Add entry for avrxmega3.
17118         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
17119         attiny212, attiny214,
17120         attiny412, attiny414, attiny416, attiny417,
17121         attiny814, attiny816, attiny817,
17122         attiny1614, attiny1616, attiny1617,
17123         attiny3214, attiny3216, attiny3217.
17124         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
17125         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
17126         (avr_print_operand_address) [AVR_TINY]: Same.
17127         (avr_asm_init_sections) <readonly_data_section>: Only patch
17128         callback if avr_arch->flash_pm_offset = 0.
17129         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
17130         for rodata if avr_arch->flash_pm_offset != 0.
17131         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
17132         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
17133         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
17134         (m_options): Append opt_rcall.
17135         (m_dirnames): Append dir_rcall.
17136         * config/avr/t-multilib: Regenerate.
17138         * configure.ac [target=avr]: Check whether avrxmega3 default
17139         linker description file works as needed.
17140         * configure: Regenerate.
17141         * doc/avr-mmcu.texi: Regenerate.
17142         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
17143         <__AVR_ARCH__>: Document avrxmega3 and 103.
17144         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
17145         <__AVR_SHORT_CALLS__>: Document it.
17146         <__AVR_PM_BASE_ADDRESS__>: Document it.
17147         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
17148         (AVR Variable Attributes) <progmem>: Document this is
17149         not needed for avrxmega3.
17150         (AVR Named Address Spaces) <__flash>: Dito.
17152 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
17154         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
17156 2017-06-12  Doug Rupp  <rupp@adacore.com>
17158         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
17159         Append vxworks-stdint.h to the tm_file list.
17160         * config/vxworks-stdint.h: New file.
17162 2017-06-12  Martin Liska  <mliska@suse.cz>
17164         PR tree-optimization/81041
17165         * tree-profile.c (gimple_gen_ic_func_profiler):
17166         Create an extra BB in profile-generate
17167         (gimple_gen_time_profiler): Likewise.
17169 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
17171         PR tree-optimization/81003
17172         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
17173         (update_range_test): Use it instead of force_gimple_operand_gsi.
17175 2017-06-12  Richard Biener  <rguenther@suse.de>
17177         PR tree-optimization/81053
17178         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
17179         with backedge value not defined in loop.  Simplify def stmt
17180         compute.
17182 2017-06-11  Tom de Vries  <tom@codesourcery.com>
17184         PR target/79939
17185         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
17186         Return true.
17187         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
17188         nvptx_cannot_force_const_mem.
17190 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
17192         * opts.c (finish_options): Move test for flag_split_stack after
17193         it has been initialized.
17195 2017-06-11  Jason Merrill  <jason@redhat.com>
17197         * tree.h (id_equal): New.
17198         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
17199         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
17200         instead of strcmp of IDENTIFIER_POINTER.
17202 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
17204         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
17205         (mark_all_inlined_calls_cdtor): Fix formating.
17206         (inline_transform): Rescale profile before inlining.
17208 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
17210         * cgraph.h (cgraph_edge::clone): Update prototype.
17211         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
17212         (cgraph_node::create_clone): Update.
17213         (cgraph_node::create_version_clone): Update.
17214         * tree-inline.c (copy_bb): Update.
17215         (expand_call_inline): Update.
17217 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
17219         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
17220         factored out from ...
17221         (rs6000_emit_prologue): ... here.
17223 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
17225         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
17226         factored out from ...
17227         (rs6000_emit_prologue): ... here.
17229 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
17231         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
17232         edge counts.
17233         (handle_missing_profiles): Fix computation of tp_first_run.
17234         (counts_to_freqs): Do not touch freqs when count is 0.
17236 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
17238         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
17239         profile.
17241 2017-06-10  Tom de Vries  <tom@codesourcery.com>
17243         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
17244         attributes): Document signal effective target.
17246 2017-06-10  Tom de Vries  <tom@codesourcery.com>
17248         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
17249         Document effective target stack_size.
17251 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
17253         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
17254         to the edit_context if they can be auto-applied.
17256 2017-06-9  Ian Lance Taylor  <iant@golang.org>
17258         * opts.c (finish_options): If -fsplit-stack, disable implicit
17259         -forder-blocks-and-partition.
17260         * doc/invoke.texi (Optimize Options): Document that when using
17261         -fsplit-stack -forder-blocks-and-partition is not implicitly
17262         enabled.
17264 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
17266         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
17267         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
17268         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
17269         * builtins.def (abort, trap, unreachable): Declare cold.
17270         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
17271         * tree-core.h (ECF_COLD): New.
17272         * tree.c (set_call_expr_flags): Handle ECF_COLD.
17273         (build_common_builtin_nodes): Mark unreachable and abort as cold.
17275 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
17277         * predict.c (unlikely_executed_stmt_p): Cleanup.
17279 2017-06-09  Richard Biener  <rguenther@suse.de>
17281         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
17282         model if the ref is always written to.
17284 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
17286         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
17288 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
17290         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
17291         than udiv.
17293 2017-06-09  Tom de Vries  <tom@codesourcery.com>
17295         PR target/80855
17296         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
17297         "target cannot support label values" when encountering LABEL_REF.
17299 2017-06-09  Martin Liska  <mliska@suse.cz>
17301         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
17302         (gimple_gen_ic_func_profiler): Emit direct comparison
17303         of __gcov_indirect_call_callee with NULL.
17304         (gimple_gen_time_profiler): Change probability from
17305         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
17307 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
17309         * profile.c (edge_gcov_counts): Turn to pointer.
17310         (compute_branch_probabilities, compute_branch_probabilities): Update.
17311         (branch_prob): Do not clear edge_gcov_count.
17312         * profile.h (edge_gcov_counts): Turn to pointer.
17313         (edge_gcov_count): Update.
17315 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
17317         * gimple.h (gimple_check_failed): Mark cold.
17319 2017-06-09  Richard Biener  <rguenther@suse.de>
17321         PR tree-optimization/66623
17322         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
17323         refactor check_reduction into two parts, properly computing
17324         whether we have to check reduction validity for outer loop
17325         vectorization.
17327 2017-06-09  Richard Biener  <rguenther@suse.de>
17329         PR tree-optimization/79483
17330         * graphite-scop-detection.c (order): New global.
17331         (get_order): Compute bb to order mapping that satisfies code
17332         generation constraints.
17333         (cmp_pbbs): New helper.
17334         (build_scops): Start domwalk at entry block, sort generated
17335         pbbs.
17337 2017-06-09  Richard Biener  <rguenther@suse.de>
17339         PR middle-end/81007
17340         * ipa-polymorphic-call.c
17341         (ipa_polymorphic_call_context::restrict_to_inner_class):
17342         Skip FIELD_DECLs with error_mark_node type.
17343         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
17344         last again.
17346 2017-06-09  Martin Liska  <mliska@suse.cz>
17348         * predict.c (struct branch_predictor): New struct.
17349         (test_prediction_value_range): New test.
17350         (predict_c_tests): New function.
17351         * selftest-run-tests.c (selftest::run_tests): Run the function.
17352         * selftest.h: Declare new tests.
17354 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
17356         PR target/80966
17357         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
17358         gen_add3_insn did not fail.
17359         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
17360         r0, construct that number in a temporary reg and add that reg to r0.
17361         If asked to put the result in r0 as well, fail.
17363 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
17365         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
17366         for early expansion of vec_eqv.
17368 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
17370         PR middle-end/81005
17371         * ubsan.c (instrument_null): Avoid pointless code temporary.
17372         (pass_ubsan::execute): Instrument aggregate arguments of calls.
17374 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
17376         PR target/81015
17377         Revert:
17378         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
17380         PR target/59874
17381         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
17382         (*clzhi2): Ditto.
17384 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17386         * predict.c (unlikely_executed_edge_p): Move ahead.
17387         (probably_never_executed_edge_p): Use it.
17389 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17391         PR middle-end/79988
17392         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
17393         gimple_call_builtin_p call.
17395 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17397         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
17398         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
17399         rtl_check_failed_type2, rtl_check_failed_code1,
17400         rtl_check_failed_code2, rtl_check_failed_code_mode,
17401         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
17402         rtvec_check_failed_bounds, rtl_check_failed_flag,
17403         _fatal_insn_not_found, _fatal_insn): Likewise.
17404         * tree.h (tree_contains_struct_check_failed,
17405         tree_check_failed, tree_not_check_failed,
17406         tree_class_check_failed, tree_range_check_failed,
17407         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
17408         tree_vec_elt_check_failed, phi_node_elt_check_failed,
17409         tree_operand_check_failed, omp_clause_check_failed,
17410         omp_clause_operand_check_failed, omp_clause_range_check_failed):
17411         Likewise.
17413 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17415         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
17416         flag_branch_probabilities.
17417         * ipa-inline.c (edge_badness): Likewise.
17418         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
17419         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
17420         * predict.c (maybe_hot_frequency_p): Likewise.
17421         (probably_never_executed): Likewise.
17422         * sched-ebb.c (schedule_ebbs): Likewise.
17423         * sched-rgn.c (find_single_block_region): Likewise.
17424         * tracer.c (tail_duplicate): Likewise.
17426 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17428         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
17429         longer requires x_flag_profile_use.
17431 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17433         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
17434         instead of flag_reorder_blocks_and_partition.
17435         * dbxout.c (dbxout_function_end): Likewise.
17436         * dwarf2out.c (gen_subprogram_die): Likewise.
17437         * haifa-sched.c (sched_create_recovery_edges): Likewise.
17438         * hw-doloop.c (reorg_loops): Likewise.
17439         * varasm.c (assemble_start_function,
17440         assemble_end_function): Likewise.
17441         (decide_function_section): Do not check for
17442         flag_reorder_blocks_and_partition.
17444 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17446         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
17447         New function.
17448         (chkp_get_hard_register_fake_addr_expr): Ditto.
17449         (chkp_build_addr_expr): Add check for hard reg case.
17450         (chkp_parse_array_and_component_ref): Ditto.
17451         (chkp_find_bounds_1): Ditto.
17452         (chkp_process_stmt): Don't generate bounds store for
17453         hard reg case.
17455 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17457         * predict.c (maybe_hot_bb_p): Do not check profile status.
17458         (maybe_hot_edge_p): Likewise.
17459         (probably_never_executed): Check for zero counts even if profile
17460         is not read.
17461         (unlikely_executed_edge_p): New function.
17462         (unlikely_executed_stmt_p): New function.
17463         (unlikely_executed_bb_p): New function.
17464         (set_even_probabilities): Use unlikely predicates.
17465         (combine_predictions_for_bb): Likewise.
17466         (predict_paths_for_bb): Likewise.
17467         (predict_paths_leading_to_edge): Likewise.
17468         (determine_unlikely_bbs): New function.
17469         (estimate_bb_frequencies): Use it.
17470         (compute_function_frequency): Use zero counts even if profile is
17471         not read.
17472         * profile-count.h: Fix typo.
17474 2017-08-08  Julia Koval  <julia.koval@intel.com>
17476         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
17477         _mm512_mask_cvtsepi16_storeu_epi8,
17478         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
17479         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
17480         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
17481         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
17482         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
17483         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
17484         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
17485         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
17486         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
17487         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
17488         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
17489         __builtin_ia32_pmovuswb256mem_mask,
17490         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
17491         __builtin_ia32_pmovwb512mem_mask): New builtins.
17493 2017-08-08  Julia Koval  <julia.koval@intel.com>
17495         PR target/73350,80862
17496         * config/i386/subst.md (round): Fix round pattern.
17497         * config/i386/i386.c (ix86_erase_embedded_rounding):
17498         Fix erasing rounding for the fixed pattern.
17500 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
17502         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
17504 2017-06-08  Martin Liska  <mliska@suse.cz>
17506         PR gcov-profile/80911
17507         * gcov.c (block_info::block_info): New constructor.
17509 2017-06-07  Carl Love  <cel@us.ibm.com>
17511         * config/rs6000/rs6000-c: The return type of the following
17512         built-in functions was implemented as int not long long.  Fix sign
17513         of return value for the unsigned version of vec_mulo and vec_mule.
17514         vector unsigned long long vec_bperm (vector unsigned long long,
17515                                              vector unsigned char)
17516         vector signed long long vec_mule (vector signed int,
17517                                           vector signed int)
17518         vector unsigned long long vec_mule (vector unsigned int,
17519                                             vector unsigned int)
17520         vector signed long long vec_mulo (vector signed int,
17521                                           vector signed int)
17522         vector unsigned long long vec_mulo (vector unsigned int,
17523                                             vector unsigned int)
17524         * doc/extend.texi: Fix the documentation for the built-in
17525         functions.
17527 2017-06-07  Carl Love  <cel@us.ibm.com>
17529         PR target/80982
17530         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
17531         for BE.
17533 2017-06-07  Carl Love  <cel@us.ibm.com>
17535         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
17536         support, Generate       doublehv for signed int/float for BE case only.
17538 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
17540         * doc/invoke.texi (mcx16): Rewrite.
17542 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17544         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
17545         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
17546         *mov<mode>_softfloat, and an anonymous splitter): Use
17547         nonimmediate_operand instead of rs6000_nonimmediate_operand.
17549 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17551         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
17552         SPEFSCR registers.
17553         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
17554         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
17555         (rs6000_debug_reg_global): Adjust.
17556         (rs6000_init_hard_regno_mode_ok): Adjust.
17557         (rs6000_dbx_register_number): Adjust.
17558         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
17559         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
17560         Remove SPE_ACC and SPEFSCR.
17561         (REG_ALLOC_ORDER): Ditto.
17562         (FRAME_POINTER_REGNUM): Change to 111.
17563         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
17564         (REG_CLASS_NAMES): Ditto.
17565         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
17566         (REGISTER_NAMES): Ditto.
17567         (ADDITIONAL_REG_NAMES): Ditto.
17568         (rs6000_reg_names): Ditto.
17569         * config/rs6000/rs6000.md: Renumber some register number
17570         define_constants.
17572 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17574         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
17575         registers.
17576         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
17577         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
17578         to 117.
17579         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
17580         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
17581         Delete the SPE high registers.
17582         (REG_ALLOC_ORDER): Ditto.
17583         (enum reg_class): Remove SPE_HIGH_REGS.
17584         (REG_CLASS_NAMES): Ditto.
17585         (REG_CLASS_CONTENTS): Delete the SPE high registers.
17586         (REGISTER_NAMES): Ditto.
17587         (rs6000_reg_names): Ditto.
17588         * doc/tm.texi.in: Remove SPE as example.
17589         * doc/tm.texi: Regenerate.
17591 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17593         * config/rs6000/8540.md (ppc8540_brinc): Delete.
17594         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
17595         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
17596         * config/rs6000/rs6000.md (type): Remove "brinc".
17598 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17600         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
17601         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
17602         * config/rs6000/linuxspe.h: Delete file.
17603         * config/rs6000/rs6000.md: Don't include spe.md.
17604         * config/rs6000/spe.h: Delete file.
17605         * config/rs6000/spe.md: Delete file.
17606         * config/rs6000/t-rs6000: Remove spe.md.
17608 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17610         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
17611         (reg_or_none500mem_operand): Delete.
17612         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
17613         instead of reg_or_none500mem_operand.
17615 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17617         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
17618         handling of SPE flags.
17619         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
17621 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17623         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
17624         SPE ABI handling.
17625         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
17626         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
17627         paired_divv2sf3): Similar.
17628         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
17629         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
17630         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
17631         RS6000_BUILTIN_S.
17632         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
17633         Rename the paired_* instruction patterns.
17634         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
17635         define __SPE__.
17636         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
17637         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
17638         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
17639         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
17640         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
17641         PAIRED_VECTOR_MODE.
17642         (struct machine_function): Delete field spe_insn_chain_scanned_p.
17643         (spe_func_has_64bit_regs_p): Delete.
17644         (spe_expand_predicate_builtin): Delete.
17645         (spe_expand_evsel_builtin): Delete.
17646         (TARGET_DWARF_REGISTER_SPAN): Do not define.
17647         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
17648         (invalid_e500_subreg): Delete.
17649         (rs6000_legitimize_address): Always force_reg op2 as well, for
17650         paired single memory accesses.
17651         (rs6000_member_type_forces_blk): Delete.
17652         (rs6000_spe_function_arg): Delete.
17653         (rs6000_expand_unop_builtin): Delete SPE handling.
17654         (rs6000_expand_binop_builtin): Ditto.
17655         (spe_expand_stv_builtin): Delete.
17656         (bdesc_2arg_spe): Delete.
17657         (spe_expand_builtin): Delete.
17658         (spe_expand_predicate_builtin): Delete.
17659         (spe_expand_evsel_builtin): Delete.
17660         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
17661         (spe_init_builtins): Delete.
17662         (spe_func_has_64bit_regs_p): Delete.
17663         (savres_routine_name): Delete "info" parameter.  Adjust callers.
17664         (rs6000_emit_stack_reset): Ditto.
17665         (rs6000_dwarf_register_span): Delete.
17666         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
17667         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
17668         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
17669         Delete.
17670         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
17671         Delete.
17672         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
17673         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
17674         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
17675         mulv2sf3, divv2sf3): Delete expanders.
17677 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17679         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
17681 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17683         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
17684         * config/rs6000/rs6000.c: Ditto.
17686 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17688         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
17689         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
17690         comparison_operator.
17692 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17694         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
17695         * config/rs6000/rs6000.opt: Ditto.
17696         * config/rs6000/t-rtems: Ditto.
17698 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17700         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
17701         TARGET_E500_SINGLE by 0, simplify.
17702         * config/rs6000/rs6000.c: Ditto.
17703         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
17704         (spe_build_register_parallel): Delete.
17705         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
17706         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
17707         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
17708         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
17709         (E500_CONVERT): Delete.
17710         * config/rs6000/spe.md: Remove many patterns and all define_constants.
17712 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
17714         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
17715         * config/rs6000/dfp.md: Ditto.
17716         (negdd2, *negdd2_fpr): Merge.
17717         (absdd2, *absdd2_fpr): Merge.
17718         (negtd2, *negtd2_fpr): Merge.
17719         (abstd2, *abstd2_fpr): Merge.
17720         * config/rs6000/e500.h: Delete file.
17721         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
17722         TARGET_FPRS by 1 and simplify.
17723         * config/rs6000/rs6000-c.c: Ditto.
17724         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
17725         TARGET_DF_SPE by 0.
17726         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
17727         TARGET_DF_SPE.
17728         * config/rs6000/rs6000.md: Ditto.
17729         (floatdidf2, *floatdidf2_fpr): Merge.
17730         (move_from_CR_gt_bit): Delete.
17731         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
17732         (E500_CR_IOR_COMPARE): Delete.
17733         (All patterns that require !TARGET_FPRS): Delete.
17734         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
17736 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
17738         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
17740 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
17742         * graphds.c (add_edge): Intitialize edge's attached data.
17743         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
17744         pointer parameter.  Call pointed function on each edge during
17745         graph traversing.  Skip traversing the edge when the function
17746         returns true.
17747         (graphds_dfs, graphds_scc): Ditto.
17748         (for_each_edge): New parameter.  Pass the new parameter to callback
17749         function.
17750         * graphds.h (skip_edge_callback): New function pointer type.
17751         (graphds_dfs, graphds_scc): New function pointer parameter.
17752         (graphds_edge_callback, for_each_edge): New parameter.
17754 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
17756         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
17757         out code checking if runtime alias check is possible to below ...
17758         Call the new function.
17759         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
17760         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
17762 2017-06-07  Marek Polacek  <polacek@redhat.com>
17764         PR sanitizer/80932
17765         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
17766         TYPE_OVERFLOW_WRAPS check.
17768 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
17770         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
17771         if versioning is required.
17772         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
17773         peeling with the check for versioning.
17775 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
17777         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
17778         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
17779         Set true to new parameter if new ssa variable is defined.
17780         (vect_gen_vector_loop_niters): Refactor.  Set range information
17781         for the new vector loop bound variable.
17782         (vect_do_peeling): Ditto.
17784 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
17786         * tree-affine.c (ssa.h): Include header file.
17787         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
17788         has wrapping overflow behavior.
17790 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
17792         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
17794 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
17796         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
17797         (tree_to_aff_combination): ... here.
17799 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
17801         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
17802         reg_pressure model function.
17803         (ivopts_global_cost_for_size): Delete.
17804         (determine_set_costs, iv_ca_recount_cost): Call new model function
17805         ivopts_estimate_reg_pressure.
17807 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
17809         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
17810         expensive than udiv.  Remove floating point cases from mod.
17812 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
17814         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
17815         Increase idiv cost.
17817 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
17819         * config/aarch64/aarch64.md
17820         (copysignsf3): Fix mask generation.
17822 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
17824         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
17825         TDI_gimple.
17826         (class dump_manager): Add register_dumps method.
17827         * dumpfile.c: Include langhooks.h.
17828         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
17829         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
17830         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
17831         (dump_manager::dump_register): Start with 512 entries instead of 32.
17832         (dump_manager::register_dumps): New method.
17833         * toplev.c (general_init): Instead of invoking register_dumps
17834         langhook, invoke register_dumps method on the dump manager.
17835         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
17836         TDI_generic.
17838 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
17840         * doc/md.texi: Clarify the restrictions on a define_insn condition.
17841         Say that # requires an associated define_split to exist, and that
17842         the define_split must be suitable for use after register allocation.
17844 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
17846         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
17847         (compute_outgoing_frequencies): Also initialize zero counts.
17848         (find_many_sub_basic_blocks): Do not produce uninitialized profile
17849         around loops; preserve more of profile when nothing changes.
17851 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
17853         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
17854         here.
17855         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
17856         * config/arm/arm-cpu-cdata.h: Regenerate.
17857         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
17858         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
17859         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
17860         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
17861         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
17862         support.
17863         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
17864         support.
17865         * config/arm/t-rmprofile: Likewise.
17866         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
17868 2017-06-06  David S. Miller  <davem@davemloft.net>
17870         PR target/80968
17871         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
17872         blockage if function uses alloca.
17874 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17876         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
17877         New "uid" fields to hold pretty-print IDs of group and ref.
17878         Memory references are now identified as <group_id>:<ref_id>
17879         instead of using [random] addresses.
17880         (dump_mem_details): Simplify, no functional change.
17881         (dump_mem_ref): Simplify and make output more concise.
17882         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
17883         (find_or_create_group): Initialize group uid.
17884         (record_ref): Initialize ref uid.  Improve debug output.
17885         (prune_group_by_reuse, should_issue_prefetch_p,)
17886         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
17887         (mark_nontemporal_store, determine_loop_nest_reuse):
17888         Improve debug output.
17890 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17892         * dbgcnt.def (prefetch): New debug counter.
17893         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
17894         (schedule_prefetches): Stop issueing prefetches if debug counter
17895         tripped.
17897 2017-06-06  Tom de Vries  <tom@codesourcery.com>
17899         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
17900         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
17902 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17904         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
17905         Use aarch64_reg_or_zero predicate for operand 4.
17906         (aarch64_compare_and_swap<mode> define_insn_and_split):
17907         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
17908         (aarch64_store_exclusive<mode>): Likewise for operand 2.
17910 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17912         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
17913         (arm_compute_save_core_reg_mask): This.
17914         (thumb1_compute_save_reg_mask): Rename into ...
17915         (thumb1_compute_save_core_reg_mask): This.
17916         (arm_compute_save_reg0_reg12_mask): Adapt comment.
17917         (arm_compute_frame_layout): Likewise.
17919 2017-06-06  Richard Biener  <rguenther@suse.de>
17921         PR tree-optimization/80974
17922         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
17923         keep or clear leaders SSA info.
17925 2017-06-06  Tom de Vries  <tom@codesourcery.com>
17927         * config/nvptx/nvptx.c (split_mode_p): New function.
17928         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
17930 2017-06-06  Tom de Vries  <tom@codesourcery.com>
17932         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
17934 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
17936         PR bootstrap/80978
17937         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
17938         profile.
17940 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
17942         * shrink-wrap.c (handle_simple_exit): Update profile.
17943         (try_shrink_wrapping): Upate profile.
17945 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
17947         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
17948         (tree_guess_outgoing_edge_probabilities): New.
17949         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
17950         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
17952 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
17954         * ipa-split.c (split_function): Initialize return bb profile.
17956 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
17958         * profile.c (compute_branch_probabilities): Also initialize
17959         EXIT_BLOCK profile.
17961 2017-06-06  Richard Biener  <rguenther@suse.de>
17963         PR tree-optimization/80928
17964         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
17965         (vect_analyze_loop_operations): Properly guard analysis for
17966         pure SLP case.
17967         (vect_transform_loop): Likewise.
17968         (vect_analyze_loop_2): Also reset SLP type on PHIs.
17969         (vect_model_induction_cost): Do not cost for pure SLP.
17970         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
17971         of induction in inner loop vectorization.
17972         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
17973         (vect_get_and_check_slp_defs): Handle vect_induction_def.
17974         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
17975         recursion.
17976         (vect_analyze_slp_cost_1): Cost induction.
17977         (vect_detect_hybrid_slp_stmts): Handle PHIs.
17978         (vect_get_slp_vect_defs): Likewise.
17979         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
17980         (vect_transform_stmt): Handle SLP reductions.
17981         * tree-vectorizer.h (vectorizable_induction): Adjust.
17983 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
17985         * config/rs6000/rs6000.c (make_resolver_func): Update
17986         init_lowered_empty_function call.
17988 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17990         * doc/invoke.texi: Document the -fprofile-abs-path option.
17991         * common.opt (fprofile-abs-path): New option.
17992         * gcov-io.h (gcov_write_filename): Declare.
17993         * gcov-io.c (gcov_write_filename): New function.
17994         * coverage.c (coverage_begin_function): Use gcov_write_filename.
17995         * profile.c (output_location): Likewise.
17997 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
17999         * shring-wrap.c: Revert accidental commit.
18001 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
18003         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
18005 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
18007         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
18008         new edge.
18009         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
18010         profile in callgraph edge.
18011         * profile-count.h (apply_probability): If THIS is 0, then result is 0
18012         (apply_scale): Likewise.
18013         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
18014         Also scale profile when inlining function with zero profile.
18015         (initialize_cfun): Update exit block profile even when it is zero.
18016         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
18017         when profile is read.
18019 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
18021         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
18022         (CLONE_*): New constants to define the processors we can generate
18023         code for with the target_clone attribute.
18024         (rs6000_clone_map): New array to identify which clone processors
18025         the current program is running on.
18026         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
18027         target_clone attribute.
18028         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
18029         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
18030         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
18031         (cpu_expand_builtin): Add support for target_clone attribute.
18032         (rs6000_valid_attribute_p): Allow "default" attribute.
18033         (get_decl_name): New debug function to simplify printing the
18034         current function name in debugging statements.
18035         (rs6000_clone_priority): New functions to support the target_clone
18036         attribute, and be able to generate code to switch between ISA 2.05
18037         through ISA 3.0 (power6 through power9).
18038         (rs6000_compare_version_priority): Likewise.
18039         (rs6000_get_function_versions_dispatcher): Likewise.
18040         (make_resolver_func): Likewise.
18041         (add_condition_to_bb): Likewise.
18042         (dispatch_function_versions): Likewise.
18043         (rs6000_generate_version_dispatcher_body): Likewise.
18044         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
18045         (fusion_gpr_load_p): Fix a spacing issue.
18046         * doc/extend.texi (Common Function Attributes): Document that the
18047         PowerPC supports the target_clone attribute.
18049 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18051         * config/arm/arm.h: explain F symbol found in description of ARM
18052         register allocation in its legend.
18054 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
18056         * config/mips/frame-header-opt.c: Include profile-count.h.
18057         * config/riscv/riscv.c: Include profile-count.h
18059 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
18061         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
18062         update profile.
18063         (sm_set_flag_if_changed): Add bbs field.
18064         (execute_sm_if_changed_flag_set): Pass BBS.
18065         (execute_sm): Update.
18067 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18069         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
18070         New pattern.
18072 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18074         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
18075         (peephole2): New peephole2 to emit the above.
18076         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
18078 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18080         * config/aarch64/aarch64.c (define_peephole2 above
18081         *sub_<shift>_<mode>): New peephole.
18083 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
18085         * config/i386/i386.c (make_resolver_func): Update.
18086         * Makefile.in: Add profile-count.h and profile-count.o
18087         * auto-profile.c (afdo_indirect_call): Update to new API.
18088         (afdo_set_bb_count): Update.
18089         (afdo_propagate_edge): Update.
18090         (afdo_propagate_circuit): Update.
18091         (afdo_calculate_branch_prob): Update.
18092         (afdo_annotate_cfg): Update.
18093         * basic-block.h: Include profile-count.h
18094         (struct edge_def): Turn count to profile_count.
18095         (struct basic_block_def): Likewie.
18096         (REG_BR_PROB_BASE): Move to profile-count.h
18097         (RDIV): Move to profile-count.h
18098         * bb-reorder.c (max_entry_count): Turn to profile_count.
18099         (find_traces): Update.
18100         (rotate_loop):Update.
18101         (connect_traces):Update.
18102         (sanitize_hot_paths):Update.
18103         * bt-load.c (migrate_btr_defs): Update.
18104         * cfg.c (RDIV): Remove.
18105         (init_flow): Use alloc_block.
18106         (alloc_block): Uninitialize count.
18107         (unchecked_make_edge): Uninitialize count.
18108         (check_bb_profile): Update.
18109         (dump_edge_info): Update.
18110         (dump_bb_info): Update.
18111         (update_bb_profile_for_threading): Update.
18112         (scale_bbs_frequencies_int): Update.
18113         (scale_bbs_frequencies_gcov_type): Update.
18114         (scale_bbs_frequencies_profile_count): New.
18115         * cfg.h (update_bb_profile_for_threading): Update.
18116         (scale_bbs_frequencies_profile_count): Declare.
18117         * cfgbuild.c (compute_outgoing_frequencies): Update.
18118         (find_many_sub_basic_blocks): Update.
18119         * cfgcleanup.c (try_forward_edges): Update.
18120         (try_crossjump_to_edge): Update.
18121         * cfgexpand.c (expand_gimple_tailcall): Update.
18122         (construct_exit_block): Update.
18123         * cfghooks.c (verify_flow_info): Update.
18124         (dump_bb_for_graph): Update.
18125         (split_edge): Update.
18126         (make_forwarder_block): Update.
18127         (duplicate_block): Update.
18128         (account_profile_record): Update.
18129         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
18130         (get_estimated_loop_iterations): Update.
18131         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
18132         (single_likely_exit): Update.
18133         * cfgloopmanip.c (scale_loop_profile): Update.
18134         (loopify): Update.
18135         (set_zero_probability): Update.
18136         (lv_adjust_loop_entry_edge): Update.
18137         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
18138         (purge_dead_edges): Update.
18139         (rtl_account_profile_record): Update.
18140         * cgraph.c (cgraph_node::create): Uninitialize count.
18141         (symbol_table::create_edge): Uninitialize count.
18142         (cgraph_update_edges_for_call_stmt_node): Update.
18143         (cgraph_edge::dump_edge_flags): Update.
18144         (cgraph_node::dump): Update.
18145         (cgraph_edge::maybe_hot_p): Update.
18146         * cgraph.h: Include profile-count.h
18147         (create_clone), create_edge, create_indirect_edge): Update.
18148         (cgraph_node): Turn count to profile_count.
18149         (cgraph_edge0: Likewise.
18150         (make_speculative, clone): Update.
18151         (create_edge): Update.
18152         (init_lowered_empty_function): Update.
18153         * cgraphclones.c (cgraph_edge::clone): Update.
18154         (duplicate_thunk_for_node): Update.
18155         (cgraph_node::create_clone): Update.
18156         * cgraphunit.c (cgraph_node::analyze): Update.
18157         (cgraph_node::expand_thunk): Update.
18158         * final.c (dump_basic_block_info): Update.
18159         * gimple-streamer-in.c (input_bb): Update.
18160         * gimple-streamer-out.c (output_bb): Update.
18161         * graphite.c (print_global_statistics): Update.
18162         (print_graphite_scop_statistics): Update.
18163         * hsa-brig.c: Include basic-block.h.
18164         * hsa-dump.c: Include basic-block.h.
18165         * hsa-gen.c (T sum_slice): Update.
18166         (convert_switch_statements):Update.
18167         * hsa-regalloc.c: Include basic-block.h.
18168         * ipa-chkp.c (chkp_produce_thunks): Update.
18169         * ipa-cp.c (struct caller_statistics): Update.
18170         (init_caller_stats): Update.
18171         (gather_caller_stats): Update.
18172         (ipcp_cloning_candidate_p): Update.
18173         (good_cloning_opportunity_p): Update.
18174         (get_info_about_necessary_edges): Update.
18175         (dump_profile_updates): Update.
18176         (update_profiling_info): Update.
18177         (update_specialized_profile): Update.
18178         (perhaps_add_new_callers): Update.
18179         (decide_about_value): Update.
18180         (ipa_cp_c_finalize): Update.
18181         * ipa-devirt.c (struct odr_type_warn_count): Update.
18182         (struct decl_warn_count): Update.
18183         (struct final_warning_record): Update.
18184         (possible_polymorphic_call_targets): Update.
18185         (ipa_devirt): Update.
18186         * ipa-fnsummary.c (redirect_to_unreachable): Update.
18187         * ipa-icf.c (sem_function::merge): Update.
18188         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
18189         * ipa-inline.c (compute_uninlined_call_time): Update.
18190         (compute_inlined_call_time): Update.
18191         (want_inline_small_function_p): Update.
18192         (want_inline_self_recursive_call_p): Update.
18193         (edge_badness): Update.
18194         (lookup_recursive_calls): Update.
18195         (recursive_inlining): Update.
18196         (inline_small_functions): Update.
18197         (dump_overall_stats): Update.
18198         (dump_inline_stats): Update.
18199         * ipa-profile.c (ipa_profile_generate_summary): Update.
18200         (ipa_propagate_frequency): Update.
18201         (ipa_profile): Update.
18202         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
18203         * ipa-utils.c (ipa_merge_profiles): Update.
18204         * loop-doloop.c (doloop_modify): Update.
18205         * loop-unroll.c (report_unroll): Update.
18206         (unroll_loop_runtime_iterations): Update.
18207         * lto-cgraph.c (lto_output_edge): Update.
18208         (lto_output_node): Update.
18209         (input_node): Update.
18210         (input_edge): Update.
18211         (merge_profile_summaries): Update.
18212         * lto-streamer-in.c (input_cfg): Update.
18213         * lto-streamer-out.c (output_cfg): Update.
18214         * mcf.c (create_fixup_graph): Update.
18215         (adjust_cfg_counts): Update.
18216         (sum_edge_counts): Update.
18217         * modulo-sched.c (sms_schedule): Update.
18218         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
18219         * predict.c (maybe_hot_count_p): Update.
18220         (probably_never_executed): Update.
18221         (dump_prediction): Update.
18222         (combine_predictions_for_bb): Update.
18223         (propagate_freq): Update.
18224         (handle_missing_profiles): Update.
18225         (counts_to_freqs): Update.
18226         (rebuild_frequencies): Update.
18227         (force_edge_cold): Update.
18228         * predict.h: Include profile-count.h
18229         (maybe_hot_count_p, counts_to_freqs): UPdate.
18230         * print-rtl-function.c: Do not include cfg.h
18231         * print-rtl.c: Include basic-block.h
18232         * profile-count.c: New file.
18233         * profile-count.h: New file.
18234         * profile.c (is_edge_inconsistent): Update.
18235         (correct_negative_edge_counts): Update.
18236         (is_inconsistent): Update.
18237         (set_bb_counts): Update.
18238         (read_profile_edge_counts): Update.
18239         (compute_frequency_overlap): Update.
18240         (compute_branch_probabilities): Update; Initialize and deinitialize
18241         gcov_count tables.
18242         (branch_prob): Update.
18243         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
18244         (edge_gcov_count): New.
18245         (bb_gcov_count): New.
18246         * shrink-wrap.c (try_shrink_wrapping): Update.
18247         * tracer.c (better_p): Update.
18248         * trans-mem.c (expand_transaction): Update.
18249         (ipa_tm_insert_irr_call): Update.
18250         (ipa_tm_insert_gettmclone_call): Update.
18251         * tree-call-cdce.c: Update.
18252         * tree-cfg.c (gimple_duplicate_sese_region): Update.
18253         (gimple_duplicate_sese_tail): Update.
18254         (gimple_account_profile_record): Update.
18255         (execute_fixup_cfg): Update.
18256         * tree-inline.c (copy_bb): Update.
18257         (copy_edges_for_bb): Update.
18258         (initialize_cfun): Update.
18259         (freqs_to_counts): Update.
18260         (copy_cfg_body): Update.
18261         (expand_call_inline): Update.
18262         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
18263         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
18264         (try_unroll_loop_completely): Update.
18265         (try_peel_loop): Update.
18266         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
18267         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
18268         * tree-ssa-loop-split.c (connect_loops): Update.
18269         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
18270         * tree-ssa-reassoc.c (branch_fixup): Update.
18271         * tree-ssa-tail-merge.c (replace_block_by): Update.
18272         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
18273         (compute_path_counts): Update.
18274         (update_profile): Update.
18275         (recompute_probabilities): Update.
18276         (update_joiner_offpath_counts): Update.
18277         (estimated_freqs_path): Update.
18278         (freqs_to_counts_path): Update.
18279         (clear_counts_path): Update.
18280         (ssa_fix_duplicate_block_edges): Update.
18281         (duplicate_thread_path): Update.
18282         * tree-switch-conversion.c (case_bit_test_cmp): Update.
18283         (struct switch_conv_info): Update.
18284         * tree-tailcall.c (decrease_profile): Update.
18285         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
18286         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
18287         * value-prof.c (check_counter): Update.
18288         (gimple_divmod_fixed_value): Update.
18289         (gimple_mod_pow2): Update.
18290         (gimple_mod_subtract): Update.
18291         (gimple_ic_transform): Update.
18292         (gimple_stringop_fixed_value): Update.
18293         * value-prof.h (gimple_ic): Update.
18295 2017-06-02  Carl Love  <cel@us.ibm.com>
18297         * config/rs6000/rs6000-c: Add support for built-in functions
18298         vector double vec_doublee (vector signed int);
18299         vector double vec_doublee (vector unsigned int);
18300         vector double vec_doublee (vector float);
18301         vector double vec_doubleh (vector signed int);
18302         vector double vec_doubleh (vector unsigned int);
18303         vector double vec_doubleh (vector float);
18304         vector double vec_doublel (vector signed int);
18305         vector double vec_doublel (vector unsigned int);
18306         vector double vec_doublel (vector float);
18307         vector double vec_doubleo (vector signed int);
18308         vector double vec_doubleo (vector unsigned int);
18309         vector double vec_doubleo (vector float);.
18310         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
18311         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
18312         UNS_DOUBLEL.
18313         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
18314         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
18315         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
18316         VS_sxwsp.
18317         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
18318         vec_doublel, vec_doubleh.
18319         * doc/extend.texi: Update the built-in documentation file for the
18320         new built-in functions.
18322 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
18324         PR jit/80954
18325         * ipa-inline-analysis.c (free_growth_caches): Set
18326         edge_removal_hook_holder to NULL after removing it.
18328 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
18330         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
18331         comparision with zero.
18333 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
18334         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
18335         for early expansion of vec_min and vec_max builtins.
18336         (builtin_function_type): Add min/max unsigned variants to those
18337         identified as having unsigned arguments.
18339 2017-06-02  Olivier Hainque  <hainque@adacore.com>
18341         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
18343 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18345         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
18346         Use VALL_F16 iterator rather than VALL.
18348 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18350         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
18351         Emit CBNZ inside loop when doing a strong exchange and comparing
18352         against zero.  Generate the CC flags after the loop.
18354 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
18356         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
18357         (dl_section_ref): New.
18358         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
18359         On AIX, append an expression to subtract the size of the
18360         section length to dl_section_ref.
18362 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
18364         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
18365         for early expansion of vector absolute builtins.
18367 2017-06-02  Richard Biener  <rguenther@suse.de>
18369         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
18370         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
18372 2017-06-02  Richard Biener  <rguenther@suse.de>
18374         PR tree-optimization/80948
18375         * tree-tailcall.c (find_tail_calls): Track stmts to move in
18376         stmt order as well.
18378 2017-06-02  Richard Biener  <rguenther@suse.de>
18380         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
18381         PHIs are ok.
18382         * tree-vect-stmts.c (process_use): Do not mark backedge defs
18383         for inductions as relevant.
18385 2017-06-02  Richard Biener  <rguenther@suse.de>
18387         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
18388         (vectorizable_induction): ... this.  Remove dead code.
18390 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
18392         * builtins. (expand_builtin_alloca): Remove second parameter and
18393         infer its value from the first parameter instead.
18394         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
18396 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
18398         PR rtl-optimization/80903
18399         * loop-doloop.c (add_test): Unshare sequence.
18401 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18403         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
18405 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18407         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
18408         static.
18409         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
18410         xlogue_layout::get_instance, logue_layout::xlogue_layout,
18411         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
18412         (xlogue_layout::get_stub_rtx): Make static.
18413         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
18414         (xlogue_layout::compute_stub_managed_regs): Rename to...
18415         (xlogue_layout::count_stub_managed_regs): ...this.
18416         (xlogue_layout::is_stub_managed_reg): New function.
18417         (xlogue_layout::m_stub_names): Rename to...
18418         (xlogue_layout::s_stub_names): ...this, make static.
18419         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
18420         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
18421         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
18422         xlogue_layout::s_stub_names): Instantiate statics.
18423         (stub_managed_regs): Remove.
18424         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
18425         (disable_call_ms2sysv_xlogues): Rename to...
18426         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
18427         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
18428         warning logic.
18429         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
18430         change after reload_completed.
18431         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
18432         directly.
18433         (ix86_expand_prologue): Likewise.
18434         (ix86_expand_epilogue): Likewise.
18435         (ix86_expand_split_stack_prologue): Likewise.
18436         (ix86_compute_frame_layout): Remove frame parameter ...
18437         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
18438         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
18439         only if necessary.
18440         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
18441         (ix86_frame): Move from here ...
18442         * config/i386/i386.h (ix86_frame): ... to here.
18443         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
18444         complete ix86_frame data structure instead.  Remove some_ld_name.
18446 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
18448         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
18449         symbols that hold a DECL_VALUE_EXPR.
18451 2017-06-01  Martin Jambor  <mjambor@suse.cz>
18453         PR tree-optimization/80898
18454         * tree-sra.c (process_subtree_disqualification): Removed.
18455         (disqualify_candidate): Do not acll
18456         process_subtree_disqualification.
18457         (subtree_mark_written_and_enqueue): New function.
18458         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
18459         RHS has been disqualified and re-queue LHS if necessary.  Apart
18460         from that, ignore disqualified RHS.
18462 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18464         * config/s390/s390.c (s390_emit_epilogue): Disable early return
18465         address fetch for z10 or later.
18467 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18469         * config/arc/arc.md (tst_movb): Add guard when splitting.
18471 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18473         * config/arc/arc.c (arc_can_eliminate): Test against
18474         arc_frame_pointer_needed.
18476 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18478         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
18479         to prevent store reordering.
18480         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
18481         (type): Add block type.
18482         (stack_tie): Define special instruction to be used in
18483         expand_prologue.
18485 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18487         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
18488         constraint. It is not valid for the pattern.
18489         (noncommutative_binary_comparison): Likewise.
18491 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18493         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
18494         scaled addresses.
18496 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18498         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
18499         be used by the reg-alloc.
18501 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18503         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
18504         reg-alloc when having mul64 or mul32x16 instructions.
18505         (mulsidi3): Likewise.
18506         (umulsidi3): Likewise.
18507         (mulsi32x16): New pattern.
18508         (mulsi64): Likewise.
18509         (mulsidi64): Likewise.
18510         (umulsidi64): Likewise.
18511         (MUL32x16_REG): Define.
18512         (mul64_600): Use MUL32x16_REG.
18513         (mac64_600): Likewise.
18514         (umul64_600): Likewise.
18515         (umac64_600): Likewise.
18517 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
18519         * config/arc/arc.md (mulsi3_700): Make it commutative.
18521 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
18523         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
18524         type for movstouw.
18525         (*sign_extendsidi2_insn): Likewise for movstosw.
18527 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
18529         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
18530         the type of the input discriminant value.  Convert the
18531         discriminant value of signedness vary.
18533 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
18535         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
18536         Add to -Wall section.
18538 2017-06-01  Richard Biener  <rguenther@suse.de>
18540         PR middle-end/66313
18541         * fold-const.c (fold_plusminus_mult_expr): If the factored
18542         factor may be zero use a wrapping type for the inner operation.
18543         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
18544         and handle moved defs.
18545         (process_assignment): Properly guard the unary op case.  Return a
18546         tri-state indicating that moving the stmt before the call may allow
18547         to continue.  Pass through to_move.
18548         (find_tail_calls): Handle moving unrelated defs before
18549         the call.
18551 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
18553         PR target/80618
18554         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
18555         splitter result in the canonical way.
18557 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
18559         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
18560         also for 32bit target.  Update insn attributes.
18561         (zero-extendsidi2 splitter): Allow all registers for operand 1.
18563 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
18565         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
18566         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
18567         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
18568         (_mm_maskz_min_ss): New intrinsics.
18570 2017-05-31  Martin Liska  <mliska@suse.cz>
18572         * tree-vect-loop.c (vect_create_epilog_for_reduction):
18573         Change comment style to one we normally use.
18574         (vectorizable_reduction): Likewise.
18575         (vectorizable_induction): Likewise.
18576         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
18577         (vectorizable_call): Likewise.
18578         (vectorizable_simd_clone_call): Likewise.
18579         (vectorizable_conversion): Likewise.
18580         (vectorizable_assignment): Likewise.
18581         (vectorizable_shift): Likewise.
18582         (vectorizable_operation): Likewise.
18583         (vectorizable_store): Likewise.
18584         (vectorizable_load): Likewise.
18585         * tree-vectorizer.h: Likewise.
18587 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
18589         * passes.c (emergency_dump_function): New.
18590         * tree-pass.h (emergency_dump_function): Declare.
18591         * plugin.c (plugins_internal_error_function): Remove.
18592         * plugin.h (plugins_internal_error_function): Remove declaration.
18593         * toplev.c (internal_error_function): New static function.  Use it...
18594         (general_init): ...here.
18596 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
18598         * config/arc/arc.c (arc_print_operand): Handle constant operands.
18599         (arc_rtx_costs): Add costs for new patterns.
18600         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
18601         * config/arc/predicates.md: Add _1_2_3_operand predicate.
18603 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
18605         * tree-ssa-strlen.c (get_next_strinfo): New function.
18606         (get_stridx_plus_constant): Use it.
18607         (zero_length_string): Likewise.
18608         (adjust_related_strinfos): Likewise.
18609         (adjust_last_stmt): Likewise.
18611 2017-05-31  Richard Biener  <rguenther@suse.de>
18613         PR target/80880
18614         * config/i386/i386.c (ix86_expand_builtin): Remove assert
18615         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
18617 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
18619         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
18620         loop_vinfo argument and use of dependence distance vectors.
18621         Check instead whether the two references differ only in their
18622         initial value and assume that they have the same alignment if the
18623         difference is a multiple of the vector alignment.
18624         (vect_analyze_data_refs_alignment): Update call accordingly.
18626 2017-05-31  Martin Liska  <mliska@suse.cz>
18628         PR target/79155
18629         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
18631 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
18633         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
18634         (create_intersect_range_checks): Move from ...
18635         * tree-data-ref.c (create_intersect_range_checks_index)
18636         (create_intersect_range_checks): ... to here.
18637         (create_runtime_alias_checks): New function factored from ...
18638         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
18639         here.  Call above function.
18640         * tree-data-ref.h (create_runtime_alias_checks): New function.
18642 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
18644         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
18645         segment length for dr_b and compute it in wide_int.
18647 2017-05-31  Richard Biener  <rguenther@suse.de>
18649         PR tree-optimization/80906
18650         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
18651         and pass through iv_map.
18652         (copy_bb_and_scalar_dependences): Adjust.
18653         (translate_pending_phi_nodes): Likewise.
18654         (copy_loop_close_phi_args): Handle code-generating IVs instead
18655         of ICEing.
18657 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
18659         * diagnostic-color.c (color_dict): Add "type-diff".
18660         (parse_gcc_colors): Update comment.
18661         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
18662         -fdiagnostics-show-template-tree and -fno-elide-type.
18663         (GCC_COLORS): Add type-diff to example.
18664         (type-diff=): New.
18665         (-fdiagnostics-show-template-tree): New.
18666         (-fno-elide-type): New.
18667         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
18668         the pp_format_decoder callback.  Call any m_format_postprocessor's
18669         "handle" method.
18670         (pretty_printer::pretty_printer): Initialize
18671         m_format_postprocessor.
18672         (pretty_printer::~pretty_printer): Delete any
18673         m_format_postprocessor.
18674         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
18675         (class format_postprocessor): New class.
18676         (struct pretty_printer::format_decoder): Document the new parameters.
18677         (struct pretty_printer::m_format_postprocessor): New field.
18678         * tree-diagnostic.c (default_tree_printer): Update for new
18679         bool and const char ** params.
18680         * tree-diagnostic.h (default_tree_printer): Likewise.
18682 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
18684         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
18685         (lwa_operand): Delete rs6000_gen_cell_microcode test.
18686         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
18687         rs6000_gen_cell_microcode code.
18688         (rs6000_final_prescan_insn): Delete.
18689         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
18690         "warn-cell-microcode" entries.
18691         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
18692         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
18693         throughout.  Change cc_reg_not_micro_cr0_operand to
18694         cc_reg_not_cr0_operand throughout.
18695         (*extendhi<mode>2_noload): Delete.
18696         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
18697         (mwarn-cell-microcode): Delete.
18698         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
18699         -mgen-cell-microcode and -mwarn-cell-microcode.
18701 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
18703         PR target/80833
18704         * config/i386/constraints.md (Yd): New constraint.
18705         (Ye): Ditto.
18706         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
18707         and (?Yd, r) alternatives.  Update insn attributes.
18708         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
18709         and (?*Yd, r) alternatives.  Update insn attributes.
18710         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
18712 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
18714         * gimplify.c (gimplify_modify_expr): Don't create a
18715         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
18716         function.
18718 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
18720         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
18722 2017-05-30  Richard Biener  <rguenther@suse.de>
18724         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
18725         and reduc_def fields.
18726         (STMT_VINFO_REDUC_TYPE): New define.
18727         (STMT_VINFO_REDUC_DEF): Likewise.
18728         (vect_force_simple_reduction): Adjust prototype.
18729         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
18730         (vect_is_simple_reduction): Remove check_reduction argument.
18731         (vect_force_simple_reduction): Adjust and set
18732         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
18733         (vectorizable_reduction): Do not re-do reduction analysis
18734         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
18735         * tree-parloops.c (gather_scalar_reductions): Adjust.
18737 2017-05-30  Richard Biener  <rguenther@suse.de>
18739         PR middle-end/80901
18740         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
18741         split_edge code.
18743 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
18745         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
18746         Introduce unknown_misalignment parameter and remove vf.
18747         (vect_peeling_hash_get_lowest_cost):
18748         Pass unknown_misalignment parameter.
18749         (vect_enhance_data_refs_alignment):
18750         Fix unsupportable data ref treatment.
18752 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
18754         * tree-vect-data-refs.c (vect_get_data_access_cost):
18755         Workaround for SLP handling.
18756         (vect_enhance_data_refs_alignment):
18757         Compute costs for doing no peeling at all, compare to the best
18758         peeling costs so far and avoid peeling if cheaper.
18760 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
18762         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
18763         Return peeling info and set costs to zero for unlimited cost
18764         model.
18765         (vect_enhance_data_refs_alignment): Also inspect all datarefs
18766         with unknown misalignment. Compute and costs for unknown
18767         misalignment, compare them to the costs for known misalignment
18768         and choose the cheapest for peeling.
18770 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
18772         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
18773         (vect_get_peeling_costs_all_drs): Create function.
18774         (vect_peeling_hash_get_lowest_cost):
18775         Use vect_get_peeling_costs_all_drs.
18776         (vect_peeling_supportable): Create function.
18777         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
18779 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
18781         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
18782         DR_HAS_NEGATIVE_STEP.
18783         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
18784         (vect_enhance_data_refs_alignment): Use.
18785         (vect_duplicate_ssa_name_ptr_info): Use.
18786         * tree-vectorizer.h (dr_misalignment): Use.
18787         (known_alignment_for_access_p): Use.
18789 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
18791         PR target/78838
18792         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
18793         .lowtext.
18794         (has_section_name): New function.
18796 2017-05-30  Martin Liska  <mliska@suse.cz>
18798         PR other/80909
18799         * auto-profile.c (get_function_decl_from_block): Fix
18800         parenthesis.
18802 2017-05-30  Richard Biener  <rguenther@suse.de>
18804         PR middle-end/80876
18805         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
18807 2017-05-30  Martin Liska  <mliska@suse.cz>
18809         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
18810         * dumpfile.h (struct dump_file_info): Remove ctors.
18812 2017-05-30  Martin Liska  <mliska@suse.cz>
18814         * predict.def: Fix GNU coding style.
18816 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
18818         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
18819         Mark 'to' argument with ATTRIBUTE_UNUSED.
18821 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
18823         * config/xtensa/xtensa.c (xtensa_emit_call): Use
18824         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
18825         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
18826         format string.
18828 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
18830         * doc/install.texi (Options specification): Restore entry of
18831         --enable-sjlj-exceptions.
18833 2017-05-27  Michael Eager  <eager@eagercon.com>
18835         Revert:
18836         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
18838         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
18840         * config/microblaze/microblaze.h
18841         (FIXED_REGISTERS): Update in macro.
18842         (CALL_USED_REGISTERS): Update in macro.
18844 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
18846         * doc/install.texi: Add links to macOS binary distributions.
18848 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
18850         PR bootstrap/80887
18851         Revert:
18852         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
18854         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
18856 2017-05-26  Martin Liska  <mliska@suse.cz>
18858         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
18860 2017-05-26  Martin Liska  <mliska@suse.cz>
18862         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
18863         always leading ';; '.
18864         (dump_bb_info): Likewise.
18865         (brief_dump_cfg): Likewise.
18866         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
18867         * dumpfile.c: Remove usage of TDF_VERBOSE.
18868         * dumpfile.h (enum dump_kind): Likewise.
18869         (dump_gimple_bb_header): Do not use TDF_COMMENT.
18870         * print-tree.c (debug_verbose): Remove.
18871         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
18872         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
18873         * tree-diagnostic.c (default_tree_printer): Replace
18874         TDF_DIAGNOSTIC with TDF_SLIM.
18876 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
18878         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
18879         in parameter loop, rather than loop_vinfo.
18880         (create_intersect_range_checks): Ditto.
18881         (vect_create_cond_for_alias_checks): Update call to above functions.
18883 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
18885         PR tree-optimization/80815
18886         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
18887         for merging runtime alias checks.  Handle negative DR_STEPs.
18889 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
18891         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
18892         Move from ...
18893         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
18894         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
18895         out code pruning runtime alias checks.
18896         * tree-data-ref.c (prune_runtime_alias_test_list): New function
18897         factored out from above.
18898         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
18899         Move from ...
18900         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
18901         ... to here.
18902         (prune_runtime_alias_test_list): New decalaration.
18904 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
18906         * tree-vect-data-refs.c (compare_tree): Rename and move ...
18907         * tree-data-ref.c (data_ref_compare_tree): ... to here.
18908         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
18909         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
18910         (operator==, comp_dr_with_seg_len_pair): Ditto.
18911         (vect_prune_runtime_alias_test_list): Ditto.
18913 2017-05-26  Martin Liska  <mliska@suse.cz>
18915         PR ipa/80663
18916         * params.def: Bound partial-inlining-entry-probability param.
18918 2017-05-26  Marek Polacek  <polacek@redhat.com>
18920         PR sanitizer/80875
18921         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
18922         can be negated.
18924 2017-05-26  Richard Biener  <rguenther@suse.de>
18926         PR tree-optimization/80842
18927         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
18928         value.
18930 2017-05-26  Richard Biener  <rguenther@suse.de>
18932         PR tree-optimization/80844
18933         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
18935 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
18937         * doc/md.texi (Machine Constraints): Update x86 family
18938         machine constraints section to match 'config/i386/constraints.md'.
18940 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
18942         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
18944 2017-05-25  Nathan Sidwell  <nathan@acm.org>
18946         * doc/invoke.texi (--enable-languages): Update documentation.
18948 2017-05-25  Martin Liska  <mliska@suse.cz>
18950         * dumpfile.c: Add TDF_FOLDING.
18951         * dumpfile.h (enum dump_kind): Likewise.
18952         * genmatch.c (dt_simplify::gen_1): Use it.
18954 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
18956         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
18958 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
18960         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
18961         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
18963 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
18965         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
18966         * match.pd (X == C): Rewrite it here.
18967         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
18968         with_certain_nonzero_bits2): New predicates.
18969         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
18971 2017-05-24  Nathan Sidwell  <nathan@acm.org>
18973         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
18974         avoid warning.
18976         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
18977         warning.
18979 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
18981         * config/powerpcspe: New port.  Files are copied from the rs6000
18982         port, with "rs6000" in filenames replaced by "powerpcspe".
18984 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
18986         PR rtl-optimization/80754
18987         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
18989 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
18991         * config/sparc/sparc.md (length): Return the correct value for -mflat
18992         sibcalls to match output_sibcall.
18994 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
18996         PR bootstrap/80860
18997         PR bootstrap/80843
18998         * config/rs6000/rs6000.c (struct machine_function): Add new field
18999         n_components.
19000         (rs6000_get_separate_components): Init that field, use it.
19001         (rs6000_components_for_bb): Use the field.
19003 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19005         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
19007 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
19009         PR middle-end/80823
19010         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
19012 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19014         PR target/80725
19015         * config/s390/s390.c (s390_check_qrst_address): Check incoming
19016         address against address_operand predicate.
19017         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
19019 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
19021         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
19022         parameters passed indirectly.
19024 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
19026         * config/i386/i386.md (*movdi_internal): Remove SSE4
19027         alternative 18 (?r, *v).  Update insn attributes.
19028         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
19029         Update insn attributes.
19030         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
19031         Update insn attributes.
19032         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
19033         alternative 1 (r, v). Remove isa attribute.
19034         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
19035         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
19036         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
19038 2017-05-23  Tom de Vries  <tom@codesourcery.com>
19040         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
19041         dg-line directive.
19043 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
19045         * cgraphunit.c (symbol_table::process_new_functions): Update.
19046         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
19047         (inline_generate_summary): Rename to ...
19048         (ipa_fn_summary_generate): ... this one.
19049         (inline_read_summary): Rename to ...
19050         (ipa_fn_summary_read): ... this one.
19051         (inline_write_summary): Rename to ...
19052         (ipa_fn_summary_write): ... this one.
19053         (inline_free_summary): Rename to ...
19054         (ipa_free_fn_summary): ... this one.
19055         (pass_data_local_fn_summary, pass_local_fn_summary,
19056         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
19057         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
19058         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
19059         make_pass_ipa_fn_summary): New.
19060         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
19061         inline_write_summary, inline_free_summary): Remove.
19062         (ipa_free_fn_summary) : New.
19063         * ipa-inline.c (ipa_inline): Update.
19064         (pass_ipa_inline): Do not generate summaries.
19065         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
19066         Remove.
19067         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
19068         and add pass_ipa_fn_summary.
19069         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
19070         New.
19071         (make_pass_inline_parameters): Remove.
19073 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
19075         * omp-low.c (struct omp_context): Remove "default_kind" member.
19076         Adjust all users.
19078         * omp-offload.c (execute_oacc_device_lower): Remove the
19079         parallelism dimensions function attributes for unparallelized
19080         OpenACC kernels constructs.
19082 2017-05-23  Martin Liska  <mliska@suse.cz>
19084         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
19085         functions.
19086         (cgraph_edge::make_speculative): Likewise.
19087         (cgraph_edge::resolve_speculation): Likewise.
19088         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
19089         (cgraph_node::dump): Likewise.
19090         * cgraph.h: Likewise.
19091         * cgraphunit.c (analyze_functions): Likewise.
19092         (symbol_table::compile): Likewise.
19093         * ipa-cp.c (print_all_lattices): Likewise.
19094         (determine_versionability): Likewise.
19095         (initialize_node_lattices): Likewise.
19096         (ipcp_verify_propagated_values): Likewise.
19097         (estimate_local_effects): Likewise.
19098         (update_profiling_info): Likewise.
19099         (create_specialized_node): Likewise.
19100         (perhaps_add_new_callers): Likewise.
19101         (decide_about_value): Likewise.
19102         (decide_whether_version_node): Likewise.
19103         (identify_dead_nodes): Likewise.
19104         (ipcp_store_bits_results): Likewise.
19105         * ipa-devirt.c (dump_targets): Likewise.
19106         (ipa_devirt): Likewise.
19107         * ipa-icf.c (sem_item::dump): Likewise.
19108         (sem_function::equals): Likewise.
19109         (sem_variable::equals): Likewise.
19110         (sem_item_optimizer::read_section): Likewise.
19111         (sem_item_optimizer::execute): Likewise.
19112         (congruence_class::dump): Likewise.
19113         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
19114         (dump_inline_summary): Likewise.
19115         (estimate_node_size_and_time): Likewise.
19116         (inline_analyze_function): Likewise.
19117         * ipa-inline-transform.c (inline_call): Likewise.
19118         * ipa-inline.c (report_inline_failed_reason): Likewise.
19119         (want_early_inline_function_p): Likewise.
19120         (edge_badness): Likewise.
19121         (update_edge_key): Likewise.
19122         (inline_small_functions): Likewise.
19123         * ipa-profile.c (ipa_profile): Likewise.
19124         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
19125         (ipa_make_edge_direct_to_target): Likewise.
19126         (remove_described_reference): Likewise.
19127         (ipa_impossible_devirt_target): Likewise.
19128         (propagate_controlled_uses): Likewise.
19129         (ipa_print_node_params): Likewise.
19130         (ipcp_transform_function): Likewise.
19131         * ipa-pure-const.c (pure_const_read_summary): Likewise.
19132         (propagate_pure_const): Likewise.
19133         * ipa-reference.c (generate_summary): Likewise.
19134         (read_write_all_from_decl): Likewise.
19135         (propagate): Likewise.
19136         (ipa_reference_read_optimization_summary): Likewise.
19137         * ipa-utils.c (ipa_merge_profiles): Likewise.
19138         * ipa.c (walk_polymorphic_call_targets): Likewise.
19139         (symbol_table::remove_unreachable_nodes): Likewise.
19140         (ipa_single_use): Likewise.
19141         * passes.c (execute_todo): Likewise.
19142         * predict.c (drop_profile): Likewise.
19143         * symtab.c (symtab_node::get_dump_name): New function.
19144         (symtab_node::dump_name): Likewise.
19145         (symtab_node::dump_asm_name): Likewise.
19146         (symtab_node::dump_references): Likewise.
19147         (symtab_node::dump_referring): Likewise.
19148         (symtab_node::dump_base): Likewise.
19149         (symtab_node::debug_symtab): Likewise.
19150         * tree-sra.c (convert_callers_for_node): Likewise.
19151         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
19152         * value-prof.c (init_node_map): Likewise.
19154 2017-05-23  Martin Liska  <mliska@suse.cz>
19156         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
19157         and symtab_node::debug_symtab to symbol_table::debug.
19158         * cgraphunit.c (analyze_functions): Use the renamed function.
19159         (symbol_table::compile): Likewise.
19160         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
19161         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
19162         * passes.c (execute_todo): Likewise.
19163         * symtab.c (symbol_table::dump): New function.
19164         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
19166 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
19168         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
19169         that nonconst implies exec.
19171 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
19173         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
19174         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
19175         (inline_edge_summary_vec): Turn into ...
19176         (ipa_call_summaries): ... this one.
19177         (redirect_to_unreachable, edge_set_predicate,
19178         evaluate_properties_for_edge, inline_summary_alloc,
19179         reset_ipa_call_summary, reset_inline_summary,
19180         inline_summary_t::duplicate): Update.
19181         (inline_edge_duplication_hook): Turn to ...
19182         (ipa_call_summary_t::duplicate): ... this one.
19183         (inline_edge_removal_hook): Turn to ...
19184         (ipa_call_summary_t::remove): ... this one.
19185         (dump_inline_edge_summary): Turn to ...
19186         (dump_ipa_call_summary): ... this one.
19187         (estimate_function_body_sizes): Update.
19188         (inline_update_callee_summaries): Update.
19189         (remap_edge_change_prob): Update.
19190         (remap_edge_summaries): Update.
19191         (inline_merge_summary): Update.
19192         (do_estimate_edge_time): Update.
19193         (inline_generate_summary): Update.
19194         (inline_read_section): Update.
19195         (inline_read_summary): Update.
19196         (inline_free_summary): Update.
19197         * ipa-inline.c (can_inline_edge_p): Update.
19198         (compute_inlined_call_time): Update.
19199         (want_inline_small_function_p): Update.
19200         (edge_badness): Update.
19201         (early_inliner): Update.
19202         * ipa-inline.h (inline_edge_summary): Turn to ...
19203         (ipa_call_summary): ... this one.
19204         (ipa_call_summary_t): New class.
19205         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
19206         (ipa_call_summaries): New.
19207         (inline_edge_summary): Remove.
19208         (estimate_edge_growth): Update.
19209         * ipa-profile.c (ipa_propagate_frequency_1): Update.
19210         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
19211         * ipa-split.c (execute_split_functions): Update.
19212         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
19214 2017-05-23  Tom de Vries  <tom@codesourcery.com>
19216         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
19217         attributes): Document rdrand effective target.
19219 2017-05-23  Tom de Vries  <tom@codesourcery.com>
19221         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
19222         attributes): Sort alphabetically.
19224 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
19226         * config/avr/genmultilib.awk: Use gsub instead of gensub.
19228 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
19230         PR target/80718
19231         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
19232         V2DF/V2DI splat into two separate patterns, one that handles
19233         registers, and the other that only handles memory.  Drop support
19234         for splatting from a GPR on ISA 2.07 and then splitting the
19235         splat into direct move and splat.
19236         (vsx_splat_<mode>_reg): Likewise.
19237         (vsx_splat_<mode>_mem): Likewise.
19239 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
19241         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
19243 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
19245         PR middle-end/80809
19246         * omp-low.c (finish_taskreg_remap): New function.
19247         (finish_taskreg_scan): If unit size of ctx->record_type
19248         is non-constant, unshare the size expression and replace
19249         decls in it with possible outer var refs.
19251         PR middle-end/80809
19252         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
19253         GOVD_SHARED rather than GOVD_PRIVATE with it.
19254         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
19255         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
19257         PR middle-end/80853
19258         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
19259         as last argument to build_outer_var_ref for pointer bases of array
19260         section reductions.
19262 2017-05-19  Martin Sebor  <msebor@redhat.com>
19264         * print-tree.c (print_node): Print DECL_READ_P flag.
19266 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
19268         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
19269         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
19270         * cgraph.c: Likewise.
19271         * cgraphunit.c: Likewise.
19272         * gengtype.c: Likewise.
19273         * ipa-cp.c: Likewise.
19274         * ipa-devirt.c: Likewise.
19275         * ipa-icf.c: Likewise.
19276         * ipa-predicate.c: Likewise.
19277         * ipa-profile.c: Likewise.
19278         * ipa-prop.c: Likewise.
19279         * ipa-split.c: Likewise.
19280         * ipa.c: Likewise.
19281         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
19282         edge_predicate_pool, dump_inline_hints,
19283         inline_summary::account_size_time, redirect_to_unreachable,
19284         edge_set_predicate, set_hint_predicate,
19285         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
19286         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
19287         inline_summary_t::remove, remap_hint_predicate_after_duplication,
19288         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
19289         ipa_call_summary_t::remove, initialize_growth_caches,
19290         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
19291         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
19292         mark_modified, unmodified_parm_1, unmodified_parm,
19293         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
19294         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
19295         compute_bb_predicates, will_be_nonconstant_expr_predicate,
19296         will_be_nonconstant_predicate, record_modified_bb_info,
19297         get_minimal_bb, record_modified, param_change_prob,
19298         phi_result_unknown_predicate, predicate_for_phi_result,
19299         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
19300         estimate_function_body_sizes, compute_inline_parameters,
19301         compute_inline_parameters_for_curren, pass_data_inline_parameters,
19302         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
19303         inline_update_callee_summaries, remap_edge_change_prob,
19304         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
19305         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
19306         inline_analyze_function, inline_summary_t::insert,
19307         inline_generate_summary, read_ipa_call_summary, inline_read_section,
19308         inline_read_summary, write_ipa_call_summary, inline_write_summary,
19309         inline_free_summary): Move to ipa-fnsummary.h
19310         (predicate_t): Remove.
19311         * ipa-fnsummary.c: New file.
19312         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
19313         (enum inline_hints_vals, inline_hints, agg_position_info,
19314         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
19315         inline_summaries, ipa_call_summary, ipa_call_summary_t,
19316         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
19317         dump_inline_summary, dump_inline_hints, inline_generate_summary,
19318         inline_read_summary, inline_write_summary, inline_free_summary,
19319         inline_analyze_function, initialize_inline_failed,
19320         inline_merge_summary, inline_update_overall_summary,
19321         compute_inline_parameters): Move to ipa-fnsummary.h
19322         * ipa-fnsummary.h: New file.
19323         * ipa-inline-transform.h: Include ipa-inline.h.
19324         * ipa-inline.c: LIkewise.
19326 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
19328         * ipa-inline.c (edge_badness): Use inlined_time instead of
19329         inline_summaries->get.
19331 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
19333         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
19335 2017-05-22  Nathan Sidwell  <nathan@acm.org>
19337         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
19338         (fdump-lang): Document 'raw' option.
19339         * dumpfile.h (TDI_tu): Delete.
19340         * dumpfile.c (dump_files): Remove translation-unit.
19341         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
19343 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
19345         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
19346         command option from $(AWK) call.
19347         * config/avr/genmultilib.awk: Simplify and rewrite so that it
19348         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
19349         [FORMAT]: Remove handling of variable.
19350         * config/avr/t-multilib: Regenerate.
19352 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
19354         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
19355         self_time.
19356         (dump_inline_summary): Do not print self_time.
19357         (estimate_function_body_sizes): Do not set self_time.
19358         (compute_inline_parameters): Likewise.
19359         (inline_read_section, inline_write_summary): Do not stream self_time.
19360         * ipa-inline.h (inline_summary): Drop self_time.
19362 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
19364         * ipa-inline-analysis.c (account_size_time): Rename to ...
19365         (inline_summary::account_size_time): ... this one.
19366         (reset_ipa_call_summary): Turn to ...
19367         (ipa_call_summary::reset): ... this one.
19368         (reset_inline_summary): Turn to ...
19369         (inline_summary::reset): ... this one.
19370         (inline_summary_t::remove): Update.
19371         (inline_summary_t::duplicate): Update.
19372         (ipa_call_summary_t::remove): Update.
19373         (dump_inline_summary): Update.
19374         (estimate_function_body_sizes): Update.
19375         (compute_inline_parameters): Update.
19376         (estimate_node_size_and_time): Update.
19377         (inline_merge_summary): Update.
19378         (inline_update_overall_summary): Update.
19379         (inline_read_section): Update.
19380         (inline_write_summary): Update.
19381         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
19382         add account_size_time and reset member functions.
19383         (ipa_call_summary): Add reset function.
19384         * ipa-predicate.h (predicate::operator &): Constify.
19386 2017-05-22  Richard Biener  <rguenther@suse.de>
19388         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
19390 2017-05-19  Jason Merrill  <jason@redhat.com>
19392         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
19394 2017-05-19  Marek Polacek  <polacek@redhat.com>
19396         PR sanitizer/80800
19397         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
19398         TYPE_OVERFLOW_WRAPS checks.
19400 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
19402         * tree-core.h (enum omp_clause_default_kind): Add
19403         "OMP_CLAUSE_DEFAULT_PRESENT".
19404         * tree-pretty-print.c (dump_omp_clause): Handle it.
19405         * gimplify.c (enum gimplify_omp_var_data): Add
19406         "GOVD_MAP_FORCE_PRESENT".
19407         (gimplify_adjust_omp_clauses_1): Map it to
19408         "GOMP_MAP_FORCE_PRESENT".
19409         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
19411         * gimplify.c (oacc_default_clause): Clarify.
19413 2017-05-19  Nathan Sidwell  <nathan@acm.org>
19415         LANG_HOOK_REGISTER_DUMPS
19416         * toplev.c (general_init): Call register dump lang hook.
19417         * doc/invoke.texi: Document -fdump-lang option family.
19418         * dumpfile.c (dump_files): Remove class dump here.
19419         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
19420         * dumpfile.h (tree_dump_index): Remove TDI_class.
19421         * langhooks-def.h (lhd_register_dumps): Declare.
19422         (LANG_HOOKS_REGISTER_DUMPS): Define.
19423         (LANG_HOOKS_INITIALIZER): Add it.
19424         * langhooks.c (lhd_register_dumps): Define.
19425         * langhooks.h (struct lang_hooks): Add register_dumps.
19427 2017-05-19  Nathan Sidwell  <nathan@acm.org>
19429         * context.h (context::set_passes): New.
19430         * context.c (context::context): Do not create pass manager.
19431         * toplev.c (general_init): Create pass manager here.
19433 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
19435         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
19436         use this splitter if two add or or instructions would also work for
19437         the constant we want to generate.
19439 2017-05-19  Richard Biener  <rguenther@suse.de>
19441         PR build/80821
19442         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
19443         predicate evaluation.
19445 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
19447         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
19448         add ctor.
19449         * ipa-inline.c (want_inline_small_function_p): Do not cast to
19450         unsigned.
19452 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
19454         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
19455         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
19456         (inline_edge_summary_vec): Turn into ...
19457         (ipa_call_summaries): ... this one.
19458         (redirect_to_unreachable, edge_set_predicate,
19459         evaluate_properties_for_edge, inline_summary_alloc,
19460         reset_ipa_call_summary, reset_inline_summary,
19461         inline_summary_t::duplicate): Update.
19462         (inline_edge_duplication_hook): Turn to ...
19463         (ipa_call_summary_t::duplicate): ... this one.
19464         (inline_edge_removal_hook): Turn to ...
19465         (ipa_call_summary_t::remove): ... this one.
19466         (dump_inline_edge_summary): Turn to ...
19467         (dump_ipa_call_summary): ... this one.
19468         (estimate_function_body_sizes): Update.
19469         (inline_update_callee_summaries): Update.
19470         (remap_edge_change_prob): Update.
19471         (remap_edge_summaries): Update.
19472         (inline_merge_summary): Update.
19473         (do_estimate_edge_time): Update.
19474         (inline_generate_summary): Update.
19475         (inline_read_section): Update.
19476         (inline_read_summary): Update.
19477         (inline_free_summary): Update.
19478         * ipa-inline.c (can_inline_edge_p): Update.
19479         (compute_inlined_call_time): Update.
19480         (want_inline_small_function_p): Update.
19481         (edge_badness): Update.
19482         (early_inliner): Update.
19483         * ipa-inline.h (inline_edge_summary): Turn to ...
19484         (ipa_call_summary): ... this one.
19485         (ipa_call_summary_t): New class.
19486         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
19487         (ipa_call_summaries): New.
19488         (inline_edge_summary): Remove.
19489         (estimate_edge_growth): Update.
19490         * ipa-profile.c (ipa_propagate_frequency_1): Update.
19491         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
19492         * ipa-split.c (execute_split_functions): Update.
19493         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
19495 2017-05-19  Richard Biener  <rguenther@suse.de>
19497         PR middle-end/80764
19498         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
19500 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
19502         * config/rs6000/rs6000.c (struct machine_function): Add field
19503         fpr_is_wrapped_separately.
19504         (rs6000_get_separate_components): Use 64 components.  Handle the
19505         new FPR components.
19506         (rs6000_components_for_bb): Handle the FPR components.
19507         (rs6000_emit_prologue_components): Handle the FPR components.
19508         (rs6000_emit_epilogue_components): Handle the FPR components.
19509         (rs6000_set_handled_components): Handle the FPR components.
19510         (rs6000_emit_prologue): Don't output prologue code for those FPRs
19511         that are already separately shrink-wrapped.
19512         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
19513         that are already separately shrink-wrapped.
19515 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
19517         PR target/80510
19518         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
19519         New predicate.
19521         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
19522         (define_peephole2 for Altivec d-form load): Add peepholes to catch
19523         cases where the register allocator uses a move and an offsettable
19524         memory operation to/from a FPR register on ISA 2.06/2.07.
19525         (define_peephole2 for Altivec d-form store): Likewise.
19527 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
19529         PR target/80799
19530         * config/i386/mmx.md (*mov<mode>_internal): Enable
19531         alternatives 11, 12, 13 and 14 also for 32bit targets.
19532         Remove alternatives 15, 16, 17 and 18.
19533         * config/i386/sse.md (vec_concatv2di): Change
19534         alternative (!x, *y) to (x, ?!*Yn).
19536 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
19538         * dumpfile.h (enum dump_kind): Remove stray comma.
19540 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
19542         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
19543         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
19544         predicate::num_conditions
19545         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
19546         (CHANGED): turn into predicate::changed.
19547         (agg_position_info): Move to ipa-predicate.h
19548         (add_condition, predicate::add_clause, predicate::operator &=,
19549         predicate::or_with, predicate::evaluate, predicate::probability,
19550         dump_condition, dump_clause, predicate::dump,
19551         predicate::remap_after_duplication, predicate::remap_after_inlining,
19552         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
19553         (evaluate_conditions_for_known_args): Update.
19554         (set_cond_stmt_execution_predicate): Update.
19555         * ipa-inline.h: Include ipa-predicate.h
19556         (condition, inline_param_summary, conditions, agg_position_info,
19557         predicate): Move to ipa-predicate.h
19558         * ipa-predicate.c: New file.
19559         * ipa-predicate.h: New file.
19561 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
19563         * final.c (leaf_function_p): Check we are not in a sequence.
19565 2017-05-18  Martin Liska  <mliska@suse.cz>
19567         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
19568         * dumpfile.c (dump_register): Use new enum dump_kind.
19569         (get_dump_file_name): Likewise.
19570         (dump_enable_all): Likewise.
19571         (dump_switch_p_1): Likewise.
19572         (enable_rtl_dump_file): Remove usage of TDF_RTL.
19573         * dumpfile.h (enum dump_kind): New enum type.
19574         (struct dump_file_info): Create constructor and
19575         format fields and comments.
19576         * passes.c (pass_manager::register_one_dump_file):
19577         Use num dump_kind.
19578         * statistics.c (statistics_early_init): Likewise.
19579         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
19580         TDF_TREE with TDF_SLIM.
19581         (gather_memory_references_ref): Likewise.
19583 2017-05-18  Martin Liska  <mliska@suse.cz>
19585         * vec.h (struct vnull): Use it.
19587 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
19589         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
19590         (true_predicate, false_predicate, true_predicate_p,
19591         false_predicate_p): Remove.
19592         (single_cond_predicate, not_inlined_predicate): Turn to member function
19593         in ipa-inline.h
19594         (add_condition): Update.
19595         (add_clause): Turn to...
19596         (predicate::add_clause): ... this one; update; allow passing NULL
19597         as parameter.
19598         (and_predicates): Turn to ...
19599         (predicate::operator &=): ... this one.
19600         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
19601         (or_predicates): Turn to ...
19602         (predicate::or_with): ... this one.
19603         (evaluate_predicate): Turn to ...
19604         (predicate::evaluate): ... this one.
19605         (predicate_probability): Turn to ...
19606         (predicate::probability): ... this one.
19607         (dump_condition): Update.
19608         (dump_predicate): Turn to ...
19609         (predicate::dump): ... this one.
19610         (account_size_time): Update.
19611         (edge_set_predicate): Update.
19612         (set_hint_predicate): UPdate.
19613         (evaluate_conditions_for_known_args): Update.
19614         (evaluate_properties_for_edge): Update.
19615         (remap_predicate_after_duplication): Turn to...
19616         (predicate::remap_after_duplication): ... this one.
19617         (remap_hint_predicate_after_duplication): Update.
19618         (inline_summary_t::duplicate): UPdate.
19619         (dump_inline_edge_summary): Update.
19620         (dump_inline_summary): Update.
19621         (set_cond_stmt_execution_predicate): Update.
19622         (set_switch_stmt_execution_predicate): Update.
19623         (compute_bb_predicates): Update.
19624         (will_be_nonconstant_expr_predicate): Update.
19625         (will_be_nonconstant_predicate): Update.
19626         (phi_result_unknown_predicate): Update.
19627         (predicate_for_phi_result): Update.
19628         (array_index_predicate): Update.
19629         (estimate_function_body_sizes): Update.
19630         (estimate_node_size_and_time): Update.
19631         (estimate_ipcp_clone_size_and_time): Update.
19632         (remap_predicate): Rename to ...
19633         (predicate::remap_after_inlining): ... this one.
19634         (remap_hint_predicate): Update.
19635         (inline_merge_summary): Update.
19636         (inline_update_overall_summary): Update.
19637         (estimate_size_after_inlining): Update.
19638         (read_predicate): Rename to ...
19639         (predicate::stream_in): ... this one.
19640         (read_inline_edge_summary): Update.
19641         (write_predicate): Rename to ...
19642         (predicate::stream_out): ... this one.
19643         (write_inline_edge_summary): Update.
19644         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
19645         (clause_t): Turn to uint32_t
19646         (predicate): Turn to class; implement constructor and operators
19647         ==, !=, &
19648         (size_time_entry): Update.
19649         (inline_summary): Update.
19650         (inline_edge_summary): Update.
19652 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
19654         * fold-const.c (fold_binary_loc): Move transformation...
19655         * match.pd (C - X CMP X): ... here.
19657 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
19659         * config/sparc/sparc.c (sparc_option_override): Set function
19660         alignment for -mcpu=niagara7 to 64 to match the I$ line.
19661         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
19662         latency to 1.
19663         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
19664         latency to 2.
19665         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
19667 2017-05-18  Marek Polacek  <polacek@redhat.com>
19669         PR sanitizer/80797
19670         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
19671         (pass_ubsan::execute): Call gimple_assign_single_p instead of
19672         gimple_assign_load_p.
19674 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
19676         PR middle-end/80692
19677         * real.c (do_compare): Give decimal_do_compare preference over
19678         comparing just the signs.
19680 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
19682         * doc/md.texi (Canonicalization of Instructions): Describe the
19683         canonical form of instructions that inherently set a condition
19684         code register.
19686 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
19688         PR middle-end/80775
19689         * tree-cfg.c: Move deletion of unreachable case statements to after
19690         the merging of consecutive case labels.
19692 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19694         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
19695         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
19696         restoring of callee-saved registers.
19698 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
19700         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
19701         * config/visium/visium.c (single_set_and_flags): Likewise.
19702         * config/visium/visium.md (Substitutions): Likewise.
19704 2017-05-17  Martin Liska  <mliska@suse.cz>
19706         * cfg.c: Introduce dump_flags_t type and
19707         use it instead of int type.
19708         * cfg.h: Likewise.
19709         * cfghooks.c: Likewise.
19710         * cfghooks.h (struct cfg_hooks): Likewise.
19711         * cfgrtl.c: Likewise.
19712         * cfgrtl.h: Likewise.
19713         * cgraph.c (cgraph_node::get_body): Likewise.
19714         * coretypes.h: Likewise.
19715         * domwalk.c: Likewise.
19716         * domwalk.h: Likewise.
19717         * dumpfile.c (struct dump_option_value_info): Likewise.
19718         (dump_enable_all): Likewise.
19719         (dump_switch_p_1): Likewise.
19720         (opt_info_switch_p): Likewise.
19721         * dumpfile.h (enum tree_dump_index): Likewise.
19722         (struct dump_file_info): Likewise.
19723         * genemit.c: Likewise.
19724         * generic-match-head.c: Likewise.
19725         * gengtype.c (open_base_files): Likewise.
19726         * gimple-pretty-print.c: Likewise.
19727         * gimple-pretty-print.h: Likewise.
19728         * graph.c (print_graph_cfg): Likewise.
19729         * graphite-scop-detection.c (dot_all_sese): Likewise.
19730         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
19731         * loop-unroll.c (report_unroll): Likewise.
19732         * passes.c (pass_manager::register_one_dump_file): Likewise.
19733         * print-tree.c: Likewise.
19734         * statistics.c: Likewise.
19735         * tree-cfg.c: Likewise.
19736         * tree-cfg.h: Likewise.
19737         * tree-dfa.c: Likewise.
19738         * tree-dfa.h: Likewise.
19739         * tree-dump.c (dump_function): Likewise.
19740         * tree-dump.h (struct dump_info): Likewise.
19741         * tree-pretty-print.c: Likewise.
19742         * tree-pretty-print.h: Likewise.
19743         * tree-ssa-live.c: Likewise.
19744         * tree-ssa-live.h: Likewise.
19745         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
19746         * tree-vect-loop.c: Likewise.
19747         * tree-vect-slp.c: Likewise.
19749 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
19750             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19752         PR tree-optimization/80457
19753         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
19754         of all arguments to a statement as scalar_to_vec operations.
19755         (vectorizable_call): Adjust call to vect_model_simple_cost for
19756         new parameter.
19757         (vectorizable_conversion): Likewise.
19758         (vectorizable_assignment): Likewise.
19759         (vectorizable_shift): Likewise.
19760         (vectorizable_operation): Likewise.
19761         (vectorizable_comparison): Likewise.
19762         (vect_is_simple_cond): Record the def types for operands.
19763         (vectorizable_condition): Likewise, call vect_model_simple_cost.
19764         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
19765         for statement argument count.
19767 2017-05-16  Carl Love  <cel@us.ibm.com>
19769         * config/rs6000/rs6000-c: Add support for built-in functions
19770         vector unsigned long long vec_bperm (vector unsigned long long,
19771                                              vector unsigned char)
19772         vector signed long long vec_mule (vector signed int,
19773                                           vector signed int)
19774         vector unsigned long long vec_mule (vector unsigned int,
19775                                             vector unsigned int)
19776         vector signed long long vec_mulo (vector signed int,
19777                                           vector signed int)
19778         vector unsigned long long vec_mulo (vector unsigned int,
19779                                             vector unsigned int)
19780         vector signed char vec_sldw (vector signed char,
19781                                      vector signed char,
19782                                      const int)
19783         vector unsigned char vec_sldw (vector unsigned char,
19784                                        vector unsigned char,
19785                                        const int)
19786         vector signed short vec_sldw (vector signed short,
19787                                       vector signed short,
19788                                       const int)
19789         vector unsigned short vec_sldw (vector unsigned short,
19790                                         vector unsigned short,
19791                                         const int)
19792         vector signed int vec_sldw (vector signed int,
19793                                     vector signed int,
19794                                     const int)
19795         vector unsigned int vec_sldw (vector unsigned int,
19796                                       vector unsigned int,
19797                                       const int)
19798         vector signed long long vec_sldw (vector signed long long,
19799                                           vector signed long long,
19800                                           const int)
19801         vector unsigned long long vec_sldw (vector unsigned long long,
19802                                             vector unsigned long long,
19803                                             const int)
19804         * config/rs6000/rs6000-c: Add support for built-in functions
19805         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
19806         * config/rs6000/altivec.h: Add defintion for vec_sldw.
19807         * doc/extend.texi: Update the built-in documentation for the
19808         new built-in functions.
19810 2017-05-16  Marek Polacek  <polacek@redhat.com>
19812         PR sanitizer/80536
19813         PR sanitizer/80386
19814         * tree.c (save_expr): Don't fold the expression.
19816 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
19818         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
19819         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
19820         and (?*y,m).  Update insn attributes.
19822 2017-05-16  Martin Liska  <mliska@suse.cz>
19824         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
19825         flags argument of print_gimple_stmt, print_gimple_expr,
19826         print_generic_stmt and print_generic_expr.
19827         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
19828         * coretypes.h: Likewise.
19829         * except.c (dump_eh_tree): Likewise.
19830         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
19831         * gimple-pretty-print.h: Likewise.
19832         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
19833         (backprop::push_to_worklist): Likewise.
19834         (backprop::pop_from_worklist): Likewise.
19835         (backprop::process_use): Likewise.
19836         (backprop::intersect_uses): Likewise.
19837         (note_replacement): Likewise.
19838         * gimple-ssa-store-merging.c
19839         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
19840         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
19841         (pass_store_merging::execute): Likewise.
19842         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
19843         (ssa_base_cand_dump_callback): Likewise.
19844         (dump_incr_vec): Likewise.
19845         (replace_refs): Likewise.
19846         (replace_mult_candidate): Likewise.
19847         (create_add_on_incoming_edge): Likewise.
19848         (create_phi_basis): Likewise.
19849         (insert_initializers): Likewise.
19850         (all_phi_incrs_profitable): Likewise.
19851         (introduce_cast_before_cand): Likewise.
19852         (replace_one_candidate): Likewise.
19853         * gimplify.c (gimplify_expr): Likewise.
19854         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
19855         (set_rename): Likewise.
19856         (rename_uses): Likewise.
19857         (copy_loop_phi_nodes): Likewise.
19858         (add_close_phis_to_merge_points): Likewise.
19859         (copy_loop_close_phi_args): Likewise.
19860         (copy_cond_phi_args): Likewise.
19861         (graphite_copy_stmts_from_block): Likewise.
19862         (translate_pending_phi_nodes): Likewise.
19863         * graphite-poly.c (print_pdr): Likewise.
19864         (dump_gbb_cases): Likewise.
19865         (dump_gbb_conditions): Likewise.
19866         (print_scop_params): Likewise.
19867         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
19868         (build_cross_bb_scalars_use): Likewise.
19869         (gather_bbs::before_dom_children): Likewise.
19870         * hsa-dump.c (dump_hsa_immed): Likewise.
19871         * ipa-cp.c (print_ipcp_constant_value): Likewise.
19872         (get_replacement_map): Likewise.
19873         * ipa-inline-analysis.c (dump_condition): Likewise.
19874         (estimate_function_body_sizes): Likewise.
19875         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
19876         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
19877         * ipa-prop.c (ipa_dump_param): Likewise.
19878         (ipa_print_node_jump_functions_for_edge): Likewise.
19879         (ipa_modify_call_arguments): Likewise.
19880         (ipa_modify_expr): Likewise.
19881         (ipa_dump_param_adjustments): Likewise.
19882         (ipa_dump_agg_replacement_values): Likewise.
19883         (ipcp_modif_dom_walker::before_dom_children): Likewise.
19884         * ipa-pure-const.c (check_stmt): Likewise.
19885         (pass_nothrow::execute): Likewise.
19886         * ipa-split.c (execute_split_functions): Likewise.
19887         * omp-offload.c (dump_oacc_loop_part): Likewise.
19888         (dump_oacc_loop): Likewise.
19889         * trans-mem.c (tm_log_emit): Likewise.
19890         (tm_memopt_accumulate_memops): Likewise.
19891         (dump_tm_memopt_set): Likewise.
19892         (dump_tm_memopt_transform): Likewise.
19893         * tree-cfg.c (gimple_verify_flow_info): Likewise.
19894         (print_loop): Likewise.
19895         * tree-chkp-opt.c (chkp_print_addr): Likewise.
19896         (chkp_gather_checks_info): Likewise.
19897         (chkp_get_check_result): Likewise.
19898         (chkp_remove_check_if_pass): Likewise.
19899         (chkp_use_outer_bounds_if_possible): Likewise.
19900         (chkp_reduce_bounds_lifetime): Likewise.
19901         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
19902         (chkp_mark_completed_bounds): Likewise.
19903         (chkp_register_incomplete_bounds): Likewise.
19904         (chkp_mark_invalid_bounds): Likewise.
19905         (chkp_maybe_copy_and_register_bounds): Likewise.
19906         (chkp_build_returned_bound): Likewise.
19907         (chkp_get_bound_for_parm): Likewise.
19908         (chkp_build_bndldx): Likewise.
19909         (chkp_get_bounds_by_definition): Likewise.
19910         (chkp_generate_extern_var_bounds): Likewise.
19911         (chkp_get_bounds_for_decl_addr): Likewise.
19912         * tree-chrec.c (chrec_apply): Likewise.
19913         * tree-data-ref.c (dump_data_reference): Likewise.
19914         (dump_subscript): Likewise.
19915         (dump_data_dependence_relation): Likewise.
19916         (analyze_overlapping_iterations): Likewise.
19917         * tree-inline.c (expand_call_inline): Likewise.
19918         (tree_function_versioning): Likewise.
19919         * tree-into-ssa.c (dump_defs_stack): Likewise.
19920         (dump_currdefs): Likewise.
19921         (dump_names_replaced_by): Likewise.
19922         (dump_update_ssa): Likewise.
19923         (update_ssa): Likewise.
19924         * tree-object-size.c (pass_object_sizes::execute): Likewise.
19925         * tree-parloops.c (build_new_reduction): Likewise.
19926         (try_create_reduction_list): Likewise.
19927         (ref_conflicts_with_region): Likewise.
19928         (oacc_entry_exit_ok_1): Likewise.
19929         (oacc_entry_exit_single_gang): Likewise.
19930         * tree-pretty-print.h: Likewise.
19931         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
19932         (get_scalar_evolution): Likewise.
19933         (add_to_evolution): Likewise.
19934         (get_loop_exit_condition): Likewise.
19935         (analyze_evolution_in_loop): Likewise.
19936         (analyze_initial_condition): Likewise.
19937         (analyze_scalar_evolution): Likewise.
19938         (instantiate_scev): Likewise.
19939         (number_of_latch_executions): Likewise.
19940         (gather_chrec_stats): Likewise.
19941         (final_value_replacement_loop): Likewise.
19942         (scev_const_prop): Likewise.
19943         * tree-sra.c (dump_access): Likewise.
19944         (disqualify_candidate): Likewise.
19945         (create_access): Likewise.
19946         (reject): Likewise.
19947         (maybe_add_sra_candidate): Likewise.
19948         (create_access_replacement): Likewise.
19949         (analyze_access_subtree): Likewise.
19950         (analyze_all_variable_accesses): Likewise.
19951         (sra_modify_assign): Likewise.
19952         (initialize_constant_pool_replacements): Likewise.
19953         (find_param_candidates): Likewise.
19954         (decide_one_param_reduction): Likewise.
19955         (replace_removed_params_ssa_names): Likewise.
19956         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
19957         * tree-ssa-copy.c (dump_copy_of): Likewise.
19958         (copy_prop_visit_cond_stmt): Likewise.
19959         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
19960         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
19961         (record_equivalences_from_stmt): Likewise.
19962         * tree-ssa-dse.c (compute_trims): Likewise.
19963         (delete_dead_call): Likewise.
19964         (delete_dead_assignment): Likewise.
19965         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
19966         (forward_propagate_into_cond): Likewise.
19967         (pass_forwprop::execute): Likewise.
19968         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
19969         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
19970         Likewise.
19971         (move_computations_worker): Likewise.
19972         (execute_sm): Likewise.
19973         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
19974         (remove_exits_and_undefined_stmts): Likewise.
19975         (remove_redundant_iv_tests): Likewise.
19976         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
19977         (adjust_iv_update_pos): Likewise.
19978         * tree-ssa-math-opts.c (bswap_replace): Likewise.
19979         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
19980         (value_replacement): Likewise.
19981         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
19982         * tree-ssa-pre.c (print_pre_expr): Likewise.
19983         (get_representative_for): Likewise.
19984         (create_expression_by_pieces): Likewise.
19985         (insert_into_preds_of_block): Likewise.
19986         (eliminate_insert): Likewise.
19987         (eliminate_dom_walker::before_dom_children): Likewise.
19988         (eliminate): Likewise.
19989         (remove_dead_inserted_code): Likewise.
19990         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
19991         * tree-ssa-reassoc.c (get_rank): Likewise.
19992         (eliminate_duplicate_pair): Likewise.
19993         (eliminate_plus_minus_pair): Likewise.
19994         (eliminate_not_pairs): Likewise.
19995         (undistribute_ops_list): Likewise.
19996         (eliminate_redundant_comparison): Likewise.
19997         (update_range_test): Likewise.
19998         (optimize_range_tests_var_bound): Likewise.
19999         (optimize_vec_cond_expr): Likewise.
20000         (rewrite_expr_tree): Likewise.
20001         (rewrite_expr_tree_parallel): Likewise.
20002         (linearize_expr): Likewise.
20003         (break_up_subtract): Likewise.
20004         (linearize_expr_tree): Likewise.
20005         (attempt_builtin_powi): Likewise.
20006         (attempt_builtin_copysign): Likewise.
20007         (transform_stmt_to_copy): Likewise.
20008         (transform_stmt_to_multiply): Likewise.
20009         (dump_ops_vector): Likewise.
20010         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
20011         (print_scc): Likewise.
20012         (set_ssa_val_to): Likewise.
20013         (visit_reference_op_store): Likewise.
20014         (visit_use): Likewise.
20015         (sccvn_dom_walker::before_dom_children): Likewise.
20016         (run_scc_vn): Likewise.
20017         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
20018         Likewise.
20019         (expr_hash_elt::print): Likewise.
20020         (const_and_copies::pop_to_marker): Likewise.
20021         (const_and_copies::record_const_or_copy_raw): Likewise.
20022         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
20023         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
20024         (dump_predicates): Likewise.
20025         (find_uninit_use): Likewise.
20026         (warn_uninitialized_phi): Likewise.
20027         (pass_late_warn_uninitialized::execute): Likewise.
20028         * tree-ssa.c (verify_vssa): Likewise.
20029         (verify_ssa): Likewise.
20030         (maybe_optimize_var): Likewise.
20031         * tree-vrp.c (dump_value_range): Likewise.
20032         (dump_all_value_ranges): Likewise.
20033         (dump_asserts_for): Likewise.
20034         (register_edge_assert_for_2): Likewise.
20035         (vrp_visit_cond_stmt): Likewise.
20036         (vrp_visit_switch_stmt): Likewise.
20037         (vrp_visit_stmt): Likewise.
20038         (vrp_visit_phi_node): Likewise.
20039         (simplify_cond_using_ranges_1): Likewise.
20040         (fold_predicate_in): Likewise.
20041         (evrp_dom_walker::before_dom_children): Likewise.
20042         (evrp_dom_walker::push_value_range): Likewise.
20043         (evrp_dom_walker::pop_value_range): Likewise.
20044         (execute_early_vrp): Likewise.
20046 2017-05-16  Richard Biener  <rguenther@suse.de>
20048         * dwarf2out.c (loc_list_from_tree_1): Do not create
20049         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
20051 2017-05-16  Richard Biener  <rguenther@suse.de>
20053         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
20054         just generated.
20055         (note_variable_value_in_expr): If we resolved the decl ref
20056         do not push to the stack.
20058 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
20060         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
20061         operations in fast-math mode.
20062         (vaddq_f16): Likewise.
20063         (vmul_f16): Likewise.
20064         (vmulq_f16): Likewise.
20065         (vsub_f16): Likewise.
20066         (vsubq_f16): Likewise.
20067         * config/arm/neon.md (add<mode>3): New.
20068         (sub<mode>3): New.
20069         (fma:<VH:mode>3): New.  Also remove outdated comment.
20070         (mul<mode>3): New.
20072 2017-05-16  Martin Liska  <mliska@suse.cz>
20074         PR ipa/79849.
20075         PR ipa/79850.
20076         * ipa-devirt.c (warn_types_mismatch): Fix typo.
20077         (odr_types_equivalent_p): Likewise.
20079 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
20081         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
20083 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
20085         PR target/80425
20086         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
20087         non-interunit SSE move alternatives with '?'.
20088         (zero-extendsidi peephole2): New peephole to skip intermediate
20089         general register in SSE zero-extend sequence.
20091 2017-05-15  Jeff Law  <law@redhat.com>
20093         * reorg.c (relax_delay_slots): Create a new variable to hold
20094         the temporary target rather than clobbering TARGET_LABEL.
20096         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
20097         missing argument to extract_bit_field call.
20098         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
20100 2017-05-15  Martin Liska  <mliska@suse.cz>
20102         PR driver/31468
20103         * gcc.c (process_command): Do not allow empty argument of -o option.
20105 2017-05-15  Renlin Li  <renlin.li@arm.com>
20107         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
20108         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
20109         * config/aarch64/constraints.md (Usf): Add long call check.
20110         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
20111         (call_value): Likewise.
20112         (sibcall): Likewise.
20113         (sibcall_value): Likewise.
20114         (call_insn): New.
20115         (call_value_insn): New.
20116         (sibcall_insn): Update rtx pattern.
20117         (sibcall_value_insn): Likewise.
20118         (call_internal): Remove.
20119         (call_value_internal): Likewise.
20120         (sibcall_internal): Likewise.
20121         (sibcall_value_internal): Likewise.
20122         (call_reg): Likewise.
20123         (call_symbol): Likewise.
20124         (call_value_reg): Likewise.
20125         (call_value_symbol): Likewise.
20127 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
20129         PR target/80600
20130         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
20132 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
20134         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
20135         compatible with CCGOCmode and with CCZmode.
20137 2017-05-14  Martin Sebor  <msebor@redhat.com>
20139         PR middle-end/77671
20140         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
20141         (gimple_fold_builtin_snprintf): Same.
20142         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
20143         (gimple_fold_builtin_snprintf): Same.
20144         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
20145         of character types.
20146         (is_call_safe): New function.
20147         (try_substitute_return_value): Call it.
20148         (try_simplify_call): New function.
20149         (pass_sprintf_length::handle_gimple_call): Call it.
20151 2017-05-14  Martin Sebor  <msebor@redhat.com>
20153         PR middle-end/80669
20154         * builtins.c (expand_builtin_stpncpy): Simplify.
20156 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
20158         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
20159         * config/i386/i386.h
20160         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
20161         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
20162         (struct machine_function): Add new members call_ms2sysv,
20163         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
20164         (struct machine_frame_state): New fields sp_realigned and
20165         sp_realigned_offset.
20166         * config/i386/i386.c
20167         (enum xlogue_stub): New enum.
20168         (enum xlogue_stub_sets): New enum.
20169         (class xlogue_layout): New class.
20170         (struct ix86_frame): New fields stack_realign_allocate_offset,
20171         stack_realign_offset and outlined_save_offset.  Modify comments to
20172         detail stack layout when using out-of-line stubs.
20173         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
20174         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
20175         -mcall-ms2sysv-xlogues.
20176         (stub_managed_regs): New static variable.
20177         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
20178         registers managed by out-of-line stub.
20179         (disable_call_ms2sysv_xlogues): New function.
20180         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
20181         m->call_ms2sysv when appropriate and compute frame layout for
20182         out-of-line stubs.
20183         (sp_valid_at, fp_valid_at): New inline functions.
20184         (choose_basereg): New function.
20185         (choose_baseaddr): Add align parameter, use choose_basereg and modify
20186         all callers.
20187         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
20188         Use align parameter of choose_baseaddr to generated aligned SSE movs
20189         when possible.
20190         (pro_epilogue_adjust_stack): Modify to track
20191         machine_frame_state::sp_realigned.
20192         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
20193         (ix86_nsaved_sseregs): Likewise.
20194         (ix86_emit_save_regs): Likewise.
20195         (ix86_emit_save_regs_using_mov): Likewise.
20196         (ix86_emit_save_sse_regs_using_mov): Likewise.
20197         (get_scratch_register_on_entry): Likewise.
20198         (gen_frame_set): New function.
20199         (gen_frame_load): Likewise.
20200         (gen_frame_store): Likewise.
20201         (emit_outlined_ms2sysv_save): Likewise.
20202         (emit_outlined_ms2sysv_restore): Likewise.
20203         (ix86_expand_prologue): Modify stack re-alignment code and call
20204         emit_outlined_ms2sysv_save when appropriate.
20205         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
20206         parameter rtx_insn *insn, which allows the function to be used to only
20207         generate the notes.
20208         (ix86_expand_epilogue): Modify validity checks of frame and stack
20209         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
20210         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
20211         * config/i386/predicates.md
20212         (save_multiple): New predicate.
20213         (restore_multiple): Likewise.
20214         * config/i386/sse.md
20215         (save_multiple<mode>): New pattern.
20216         (save_multiple_realign<mode>): Likewise.
20217         (restore_multiple<mode>): Likewise.
20218         (restore_multiple_and_return<mode>): Likewise.
20219         (restore_multiple_leave_return<mode>): Likewise.
20220         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
20222 2017-05-14  Julia Koval  <julia.koval@intel.com>
20224         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
20225         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
20226         (__builtin_ia32_xsetbv): New builtins.
20227         * config/i386/i386.c (ix86_expand_special_args_builtin):
20228         Process new types.
20229         (ix86_expand_builtin): Special expand for new intrinsics.
20230         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
20231         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
20232         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
20234 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20236         * cfganal.c (inverted_post_order_compute): Change argument type
20237         to vec *.
20238         * cfganal.h (inverted_post_order_compute): Adjust prototype.
20239         * df-core.c (rest_of_handle_df_initialize): Adjust.
20240         (rest_of_handle_df_finish): Likewise.
20241         (df_analyze_1): Likewise.
20242         (df_analyze): Likewise.
20243         (loop_inverted_post_order_compute): Change argument to be a vec *.
20244         (df_analyze_loop): Adjust.
20245         (df_get_n_blocks): Likewise.
20246         (df_get_postorder): Likewise.
20247         * df.h (struct df_d): Change field to be a vec.
20248         * lcm.c (compute_laterin): Adjust.
20249         (compute_available): Likewise.
20250         * lra-lives.c (lra_create_live_ranges_1): Likewise.
20251         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
20252         * tree-ssa-pre.c (compute_antic): Likewise.
20254 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20256         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
20257         (depth_first_search::depth_first_search): Change structure init
20258         function to this constructor.
20259         (depth_first_search::add_bb): Rename function to this member.
20260         (depth_first_search::execute): Likewise.
20261         (flow_dfs_compute_reverse_finish): Adjust.
20263 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20265         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
20266         (longest_simple_path): Likewise.
20267         * shrink-wrap.c (spread_components): Likewise.
20268         (disqualify_problematic_components): Likewise.
20269         (emit_common_heads_for_components): Likewise.
20270         (emit_common_tails_for_components): Likewise.
20271         (insert_prologue_epilogue_for_components): Likewise.
20273 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20275         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
20276         auto_sbitmap.
20278 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20280         * df-core.c (df_set_blocks): Start using auto_bitmap.
20281         (df_compact_blocks): Likewise.
20282         * df-problems.c (df_rd_confluence_n): Likewise.
20283         * df-scan.c (df_insn_rescan_all): Likewise.
20284         (df_process_deferred_rescans): Likewise.
20285         (df_update_entry_block_defs): Likewise.
20286         (df_update_exit_block_uses): Likewise.
20287         (df_entry_block_bitmap_verify): Likewise.
20288         (df_exit_block_bitmap_verify): Likewise.
20289         (df_scan_verify): Likewise.
20290         * lra-constraints.c (lra_constraints): Likewise.
20291         (undo_optional_reloads): Likewise.
20292         (lra_undo_inheritance): Likewise.
20293         * lra-remat.c (calculate_gen_cands): Likewise.
20294         (do_remat): Likewise.
20295         * lra-spills.c (assign_spill_hard_regs): Likewise.
20296         (spill_pseudos): Likewise.
20297         * tree-ssa-pre.c (bitmap_set_and): Likewise.
20298         (bitmap_set_subtract_values): Likewise.
20300 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20302         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
20303         management with auto_bitmap.
20304         (fix_inter_tick): Likewise.
20305         (fix_recovery_deps): Likewise.
20306         * ira.c (add_store_equivs): Likewise.
20307         (find_moveable_pseudos): Likewise.
20308         (split_live_ranges_for_shrink_wrap): Likewise.
20309         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
20310         (rtx_reuse_manager::seen_def_p): Likewise.
20311         (rtx_reuse_manager::set_seen_def): Likewise.
20312         * print-rtl.h (class rtx_reuse_manager): Likewise.
20314 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20316         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
20317         lifetime.
20318         (migrate_btr_def): Likewise.
20319         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
20320         * df-core.c (loop_post_order_compute): Likewise.
20321         (loop_inverted_post_order_compute): Likewise.
20322         * hsa-common.h: Likewise.
20323         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
20324         * init-regs.c (initialize_uninitialized_regs): Likewise.
20325         * ipa-inline.c (resolve_noninline_speculation): Likewise.
20326         (inline_small_functions): Likewise.
20327         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
20328         * ira.c (combine_and_move_insns): Likewise.
20329         (build_insn_chain): Likewise.
20330         * loop-invariant.c (find_invariants): Likewise.
20331         * lower-subreg.c (propagate_pseudo_copies): Likewise.
20332         * predict.c (tree_predict_by_opcode): Likewise.
20333         (predict_paths_leading_to): Likewise.
20334         (predict_paths_leading_to_edge): Likewise.
20335         (estimate_loops_at_level): Likewise.
20336         (estimate_loops): Likewise.
20337         * shrink-wrap.c (try_shrink_wrapping): Likewise.
20338         (spread_components): Likewise.
20339         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
20340         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
20341         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
20342         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
20343         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
20344         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
20345         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
20346         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
20347         (mark_threaded_blocks): Likewise.
20348         (thread_through_all_blocks): Likewise.
20349         * tree-ssa.c (verify_ssa): Likewise.
20350         (execute_update_addresses_taken): Likewise.
20351         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
20353 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20355         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
20356         auto_vec.
20357         (post_order_compute): Likewise.
20358         (inverted_post_order_compute): Likewise.
20359         (pre_and_rev_post_order_compute_fn): Likewise.
20361 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20363         * genrecog.c (int_set::int_set): Explicitly construct our
20364         auto_vec base class.
20365         * vec.h (auto_vec::auto_vec): New constructor.
20367 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20369         * bitmap.h (class auto_bitmap): New constructor taking
20370         bitmap_obstack * argument.
20372 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20374         * bitmap.h (class auto_bitmap): Change type of m_bits to
20375         bitmap_head, and adjust ctor / dtor and member operators.
20377 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
20379         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
20380         when returned register mode doesn't match original mode.
20382 2017-05-12  Jeff Law  <law@redhat.com>
20383             Jakub Jelinek  <jakub@redhat.com>
20385         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
20386         we look for cc setter after the compare-elim changes.
20387         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
20388         within the vector to match what compare-elim now expects.
20389         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
20390         (xorsi3_flags, one_cmplsi2_flags): Likewise.
20392         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
20393         after the compare-elim changes.
20394         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
20395         the vector to match what compare-elim now expects.
20396         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
20397         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
20398         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
20399         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
20400         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
20402         * config/visium/visium.c (single_set_and_flags): Fix where
20403         we look for cc setter after the compare-elim changes.
20404         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
20405         with the vector to match what compare-elim now expects.
20406         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
20407         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
20408         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
20409         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
20410         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
20411         (neg<mode>2_insn_set_overflow): Likewise.
20413 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
20415         PR middle-end/79794
20416         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
20417         maybe_expand_insn call, set ops[0].target.  If still set after call,
20418         set alt_rtl.  Add extra arg to recursive calls.
20419         (extract_bit_field): Add alt_rtl argument.  Pass to
20420         extract_bit_field.
20421         * expmed.h (extract_bit_field): Fix prototype.
20422         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
20423         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
20424         to extract_bit_field_calls.
20425         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
20426         Pass alt_rtl to extract_bit_field calls.
20427         * calls.c (store_unaligned_arguments_into_psuedos)
20428         load_register_parameters): Pass extra NULL to extract_bit_field calls.
20429         * optabs.c (maybe_legitimize_operand): Clear op->target when call
20430         gen_reg_rtx.
20431         * optabs.h (struct expand_operand): Add target bitfield.
20433 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
20435         * compare-elim.c (try_eliminate_compare): Canonicalize
20436         operation with embedded compare to
20437         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
20438          (set (reg) (operation)].
20440         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
20442 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
20444         PR target/80723
20445         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
20446         cost of adding a carry flag for ADC instruction.
20447         [case MINUS]: Ignore the cost of subtracting a carry flag
20448         for SBB instruction.
20450 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
20452         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
20453         and x86intrin.h
20454         * config/rs6000/bmiintrin.h: New file.
20455         * config/rs6000/bmi2intrin.h: New file.
20456         * config/rs6000/x86intrin.h: New file.
20458 2017-05-12  Jeff Law  <law@redhat.com>
20460         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
20461         markers.
20463 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
20465         PR middle-end/80707
20466         * tree-cfg.c: Remove cfg edges of unreachable case statements.
20468 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
20470         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
20471         early expansion of vector divide builtins.
20472         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
20473         builtins identified as having unsigned arguments.
20475 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
20477         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
20478         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
20479         expansion of vector logical operations (and, andc, or, xor,
20480         nor, orc, nand).
20482 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
20484         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
20485         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
20487 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
20489         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
20490         early GIMPLE expansion of vector multiplies.
20492 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
20494         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
20495         TARGET_HAVE_MOVT conditional.
20496         (movt splitter): Likewise.
20498 2017-05-12  Richard Biener  <rguenther@suse.de>
20500         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
20501         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20502         Fold all stmts not inplace.
20504 2017-05-12  Richard Biener  <rguenther@suse.de>
20506         PR tree-optimization/80713
20507         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
20508         inserted_exprs bit for not removed stmts.
20510 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
20512         PR middle-end/69921
20513         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
20514         parallelized" attribute for parallelized OpenACC kernels.
20515         * omp-offload.c (execute_oacc_device_lower): Use it.
20517         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
20518         Set "oacc kernels" attribute.
20519         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
20520         parameter.  Adjust all users.
20521         (oacc_fn_attrib_kernels_p): Remove function.
20522         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
20523         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
20524         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
20525         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
20526         assert "oacc kernels" attribute is set.
20528 2017-05-11  Carl Love  <cel@us.ibm.com>
20530         * config/rs6000/rs6000-c: Add support for built-in functions
20531         vector unsigned char vec_popcnt (vector signed char)
20532         vector unsigned char vec_popcnt (vector unsigned char)
20533         vector unsigned short vec_popcnt (vector signed short)
20534         vector unsigned short vec_popcnt (vector unsigned short)
20535         vector unsigned int vec_popcnt (vector signed int)
20536         vector unsigned int vec_popcnt (vector unsigned int)
20537         vector unsigned long long vec_popcnt (vector signed long long)
20538         vector unsigned long long vec_popcnt (vector unsigned long long)
20539         vector signed long long vec_slo (vector signed long long,
20540                                          vector signed char)
20541         vector signed long long vec_slo (vector signed long long,
20542                                          vector unsigned char)
20543         vector unsigned long long vec_slo (vector unsigned long long,
20544                                            vector signed char)
20545         vector unsigned long long vec_slo (vector unsigned long long,
20546                                            vector unsigned char)
20547         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
20548         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
20549         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
20550         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
20551         * doc/extend.texi: Update the built-in documentation file for the
20552         new built-in functions.
20554 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
20556         * attribs.h (sorted_attr_string): Move machine independent
20557         functions for target clone support from the i386 port to common
20558         code.  Rename ix86_function_versions to common_function_versions.
20559         Rename make_name to make_unique_name.
20560         (common_function_versions): Likewise.
20561         (make_unique_name): Likewise.
20562         (make_dispatcher_decl): Likewise.
20563         (is_function_default_version): Likewise.
20564         * attribs.c (attr_strcmp): Likewise.
20565         (sorted_attr_string): Likewise.
20566         (common_function_versions): Likewise.
20567         (make_unique_name): Likewise.
20568         (make_dispatcher_decl): Likewise.
20569         (is_function_default_version): Likewise.
20570         * config/i386/i386.c (attr_strcmp): Likewise.
20571         (sorted_attr_string): Likewise.
20572         (ix86_function_versions): Likewise.
20573         (make_name): Likewise.
20574         (make_dispatcher_decl): Likewise.
20575         (is_function_default_version): Likewise.
20576         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
20578 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20580         PR target/80695
20581         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
20582         Account for direct move costs for vec_construct of integer
20583         vectors.
20585 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
20587         PR target/80706
20588         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
20589         (UNSPEC_STX_ATOMIC): Ditto.
20590         (loaddi_via_sse): New insn.
20591         (storedi_via_sse): Ditto.
20592         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
20593         Update corresponding peephole2 patterns.
20594         (atomic_storedi_fpu): Ditto.
20596 2017-05-11  Julia Koval  <julia.koval@intel.com>
20598         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
20599         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
20600         New intrinsics.
20601         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
20602         (__builtin_ia32_rsqrt14ss_mask): New builtins.
20603         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
20605 2017-05-11  Nathan Sidwell  <nathan@acm.org>
20607         * graphite-poly.c: Include dumpfile.h.
20609         * dumpfle.h (dump_function): Declare here ...
20610         * tree-dump.h (dump_function): ... not here.
20611         * dumpfile.c: #include tree-cfg.h.
20612         (dump_function): Move here from ...
20613         * tree-dump.c (dump_function): ... here.
20614         * gimplify.c: #include splay-tree.h, not tree-dump.h.
20615         * graphite-poly.c: Don't include tree-dump.h.
20616         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
20617         * print-tree.c: Likewise.
20618         * stor-layout.c: Likewise.
20619         * tree-nested.c: Likewise.
20621         * dumpfile.c (dump_start): Use TDF_FLAGS.
20622         (dump_enable_all): Fix TDF_KIND check thinko.
20624 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
20626         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20627         array entries to represent two legal parameterizations of the
20628         overloaded __builtin_cmpb function, as represented by the
20629         P6_OV_BUILTIN_CMPB constant.
20630         (altivec_resolve_overloaded_builtin): Add special case handling
20631         for the __builtin_cmpb function, as represented by the
20632         P6_OV_BUILTIN_CMPB constant.
20633         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
20634         (BU_P6_64BIT_2): New macro.
20635         (BU_P6_OVERLOAD_2): New macro
20636         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
20637         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
20638         (CMPB): Add overload support to represent both 32-bit and 64-bit
20639         compare-bytes function.
20640         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
20641         support for TARGET_CMPB.
20642         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
20643         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
20644         documentation of the __builtin_cmpb overloaded built-in function.
20646 2017-05-11  Richard Biener  <rguenther@suse.de>
20648         PR tree-optimization/80705
20649         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
20650         bases are not vectorizable.
20652 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20654         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
20655         when counting register pressure.
20657 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20659         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
20660         (iv_ca_more_deps): Renamed to ...
20661         (iv_ca_compare_deps): ... this.
20662         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
20664 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20666         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
20667         to ...
20668         (determine_group_iv_costs): ... here.
20669         (find_inv_vars_cb): Record inv var if it's not recorded before.
20671 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20673         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
20674         (get_shiftadd_cost): Ditto.
20676 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20678         * tree-ssa-address.c: Include header file.
20679         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
20680         address.
20681         (add_to_parts): Refactor.
20682         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
20683         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
20684         in new order.
20686 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20688         PR tree-optimization/53090
20689         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
20690         COMP_IV_EXPR_2.
20691         (extract_cond_operands): Detect condition with IV on both sides
20692         and return COMP_IV_EXPR_2.
20693         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
20694         (rewrite_use_compare): Simplify by removing call to function
20695         extract_cond_operands.
20697 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20699         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
20700         (extract_cond_operands): Detect condition comparing against non-
20701         invariant bound and return appropriate enum value.
20702         (find_interesting_uses_cond): Update use of extract_cond_operands.
20703         Handle its return value accordingly.
20704         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
20706 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20708         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
20709         nonlinear iv_use computation in loop invariant sensitive way.
20711 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20713         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
20714         (find_iv_candidates): Call relate_compare_use_with_all_cands.
20716 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20718         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
20719         (dump_cand): Support iv_cand.inv_exprs.
20720         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
20721         for candidates.
20722         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
20723         iv_cand.inv_exprs.
20725 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20727         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
20728         from ...
20729         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
20730         as local function.  Include necessary header files.
20731         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
20733 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20735         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
20737 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20739         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
20740         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
20741         RSHIFT_EXPR and BIT_NOT_EXPR.
20743 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20745         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
20746         (adjust_setup_cost): New parameter supporting round up adjustment.
20747         (struct address_cost_data): Delete.
20748         (force_expr_to_var_cost): Don't bound cost with spill_cost.
20749         (split_address_cost, ptr_difference_cost): Delete.
20750         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
20751         (struct ainc_cost_data): New struct.
20752         (get_address_cost_ainc): New function.
20753         (get_address_cost, get_computation_cost): Reimplement.
20754         (determine_group_iv_cost_address): Record inv_expr for all uses of
20755         a group.
20756         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
20757         (iv_ca_has_deps): Reimplemented to ...
20758         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
20759         than OLD_CP.
20760         (iv_ca_extend): Call iv_ca_more_deps.
20762 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20764         * tree-ssa-address.c (struct mem_address): Move to header file.
20765         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
20766         * tree-ssa-address.h (struct mem_address): Move from C file.
20767         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
20769 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20771         * tree-affine.h (aff_combination_type): New interface.
20772         (aff_combination_zero_p): Remove static.
20773         (aff_combination_const_p): New interface.
20774         (aff_combination_singleton_var_p): New interfaces.
20776 2017-05-11  Richard Biener  <rguenther@suse.de>
20778         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20779         Skip unreachable blocks and destinations.
20780         (eliminate): Move stmt removal and fixup ...
20781         (fini_eliminate): ... here.  Skip inserted exprs.
20782         (pass_pre::execute): Move fini_pre after fini_eliminate.
20783         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
20784         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
20785         PRE to get rid of dead code that has invalid SSA form and
20786         split critical edges again.
20788 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
20790         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
20792 2017-05-11  Richard Biener  <rguenther@suse.de>
20794         * passes.c (execute_function_todo): Verify loops if they are
20795         said to be up-to-date.
20796         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
20797         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
20799 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
20801         PR target/80090
20802         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
20803         handle calling assemble_external ourself.
20805         PR target/79027
20806         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
20807         modes with zero size.  Enhance comment.
20809 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20811         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
20812         built-ins for vec_xl and vec_xst with short and char pointer
20813         arguments.
20815 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
20817         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
20818         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
20819         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
20820         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
20821         (_mm_maskz_min_round_ss): New intrinsics.
20822         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
20823         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
20824         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
20825         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
20826         (__builtin_ia32_minss_mask_round): New builtins.
20827         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
20828         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
20829         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
20830         Rename to ...
20831         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
20832         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
20833         Change to ...
20834         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
20835         ... this.
20837 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
20839         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
20840         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
20841         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
20842         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
20843         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
20844         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
20845         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
20846         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
20847         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
20848         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
20849         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
20850         (__builtin_ia32_mulss_mask_round): New builtins.
20851         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
20852         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
20853         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
20854         Rename to ...
20855         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
20856         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
20857         Change to ...
20858         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
20859         ... this.
20861 2017-05-10  Julia Koval  <julia.koval@intel.com>
20863         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
20864         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
20865         (_mm256_setr_m128i): New intrinsics.
20867 2017-05-10  Julia Koval  <julia.koval@intel.com>
20869         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
20870         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
20871         (_mm_maskz_rcp14_ss): New intrinsics.
20872         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
20873         (__builtin_ia32_rcp14ss_mask): New builtins.
20874         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
20876 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
20878         PR tree-optimization/51513
20879         * tree-cfg.c (gimple_seq_unreachable_p): New function.
20880         (assert_unreachable_fallthru_edge_p): Use it.
20881         (group_case_labels_stmt): Likewise.
20882         * tree-cfg.h: Prototype it.
20883         * stmt.c: Include cfghooks.h and tree-cfg.h.
20884         (emit_case_dispatch_table) <gap_label>: New local variable.
20885         Use it to fill dispatch table gaps.
20886         Test for default_label before updating probabilities.
20887         (expand_case) <default_label>: Remove unneeded initialization.
20888         Test for unreachable default case statement and remove its edge.
20889         Set default_label accordingly.
20890         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
20892 2017-05-10  Carl Love  <cel@us.ibm.com>
20894         * config/rs6000/rs6000-c: Add support for built-in functions
20895         vector signed char      vec_neg (vector signed char)
20896         vector signed short int vec_neg (vector short int)
20897         vector signed int       vec_neg (vector signed int)
20898         vector signed long long vec_neg (vector signed long long)
20899         vector float            vec_neg (vector float)
20900         vector double           vec_neg (vector double)
20901         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
20902         overload.
20903         * config/rs6000/altivec.h: Add define for vec_neg
20904         * doc/extend.texi: Update the built-in documentation for the
20905         new built-in functions.
20907 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20909         PR tree-optimization/77644
20910         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
20912 2017-05-10  Nathan Sidwell  <nathan@acm.org>
20914         * dumpfile.h (TDI_lang_all): New.
20915         (TDF_KIND): New. Renumber others
20916         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
20917         than bits.
20918         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
20919         lang-all.
20920         (get_dump_file_name): Adjust suffix generation.
20921         (dump_enable_all): Use TDF_KIND.
20922         * doc/invoke.texi (-fdump-lang-all): Document.
20924         * dumpfile.h: Tabify.
20926 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
20928         PR target/80671
20929         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
20930         Move member access before delete.
20932 2017-05-10  Alexandre Oliva <aoliva@redhat.com>
20934         * tree-inline.c (expand_call_inline): Split block at stmt
20935         before the call.
20937 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
20939         PR target/68163
20940         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
20941         are now unused after splitting mov{sf,sd}_hardfloat.
20942         (f32_lr2): Likewise.
20943         (f32_lm): Likewise.
20944         (f32_lm2): Likewise.
20945         (f32_li): Likewise.
20946         (f32_li2): Likewise.
20947         (f32_lv): Likewise.
20948         (f32_sr): Likewise.
20949         (f32_sr2): Likewise.
20950         (f32_sm): Likewise.
20951         (f32_sm2): Likewise.
20952         (f32_si): Likewise.
20953         (f32_si2): Likewise.
20954         (f32_sv): Likewise.
20955         (f32_dm): Likewise.
20956         (f32_vsx): Likewise.
20957         (f32_av): Likewise.
20958         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
20959         For movsf, order stores so the VSX stores occur before the GPR
20960         store which encourages the register allocator to use a traditional
20961         FPR instead of a GPR.  For movsd, order the stores so that the GPR
20962         store comes before the VSX stores to allow the power6 to work.
20963         This is due to the power6 not having a 32-bit integer store
20964         instruction from a FPR.
20965         (movsf_hardfloat): Likewise.
20966         (movsd_hardfloat): Likewise.
20968 2017-05-09  Martin Sebor  <msebor@redhat.com>
20970         PR translation/80280
20971         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
20972         added in r247778.
20974         PR translation/80280
20975         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
20976         data member added in r247778.
20977         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
20979 2017-05-09  Nathan Sidwell  <nathan@acm.org>
20981         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
20983         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
20984         typedefs.
20986 2017-05-09  Marek Polacek  <polacek@redhat.com>
20988         * doc/invoke.texi: Fix typo.
20990 2017-05-09  Richard Biener  <rguenther@suse.de>
20992         * tree-vrp.c (vrp_val_is_max): Adjust comment.
20993         (vrp_val_is_min): Likewise.
20994         (set_value_range_to_value): Likewise.
20995         (set_value_range_to_nonnegative): Likewise.
20996         (gimple_assign_nonzero_p): Likewise.
20997         (gimple_stmt_nonzero_p): Likewise.
20998         (vrp_int_const_binop): Likewise.  Remove unreachable case.
20999         (adjust_range_with_scev): Adjust comments.
21000         (compare_range_with_value): Likewise.
21001         (extract_range_from_phi_node): Likewise.
21002         (test_for_singularity): Likewise.
21004 2017-05-09  Richard Biener  <rguenther@suse.de>
21006         * tree-vrp.c (get_single_symbol): Add assert that we don't
21007         get overflowed constants as invariant part.
21008         (compare_values_warnv): Add comment before the TREE_NO_WARNING
21009         checks.  Use wi::cmp instead of recursing for integer constants.
21010         (compare_values): Just ignore whether we assumed undefined
21011         overflow instead of failing the compare.
21012         (extract_range_for_var_from_comparison_expr): Add comment before the
21013         TREE_NO_WARNING sets.
21014         (test_for_singularity): Likewise.
21015         (extract_range_from_comparison): Do not disable optimization
21016         when we assumed undefined overflow.
21017         (extract_range_basic): Remove init of unused var.
21019 2017-05-09  Richard Biener  <rguenther@suse.de>
21021         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
21022         (extract_range_from_multiplicative_op_1): Adjust.
21023         (extract_range_from_binary_expr_1): Use int_const_binop.
21025 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
21027         PR target/80101
21028         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
21029         rs6000_store_data_bypass_p in seven define_bypass directives and
21030         in several comments.
21031         * config/rs6000/rs6000-protos.h: Add prototype for
21032         rs6000_store_data_bypass_p function.
21033         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
21034         function implements slightly different (rs6000-specific) semantics
21035         than store_data_bypass_p, returning false rather than aborting
21036         with assertion error when arguments do not satisfy the
21037         requirements of store data bypass.
21038         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
21039         rs6000_store_data_bypass_p.
21041 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
21043         * config/xtensa/xtensa-protos.h
21044         (xtensa_initial_elimination_offset): New declaration.
21045         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
21046         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
21047         macro definition, add case for FRAME_POINTER_REGNUM when
21048         FRAME_GROWS_DOWNWARD.
21049         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
21050         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
21051         xtensa_initial_elimination_offset.
21053 2017-05-08  Nathan Sidwell  <nathan@acm.org>
21055         * doc/invoke.texi: Alphabetize -fdump options.
21057 2017-05-08  Martin Sebor  <msebor@redhat.com>
21059         PR translation/80280
21060         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
21062 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21064         * target.def (compute_frame_layout): New optional target hook.
21065         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
21066         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
21067         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
21068         target hook.
21069         * reload1.c (verify_initial_elim_offsets): Likewise.
21070         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
21071         (use_simple_return_p): Call arm_compute_frame_layout if needed.
21072         (arm_get_frame_offsets): Split up into this ...
21073         (arm_compute_frame_layout): ... and this function.
21075 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
21077         * config/aarch64/constraints.md (Usa): New constraint.
21078         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
21080 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21082         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
21083         with_multilib_list after it has been checked.
21085 2017-05-08  Richard Biener  <rguenther@suse.de>
21087         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
21088         (bitmap_set_subtract_values): Likewise.
21090 2017-05-08  Richard Biener  <rguenther@suse.de>
21092         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
21093         (gimple_assign_nonzero): ... this and remove strict_overflow_p
21094         argument.
21095         (gimple_stmt_nonzero_warnv_p): Rename to ...
21096         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
21097         argument.
21098         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
21099         (extract_range_basic): Adjust, do not disable propagation on
21100         strict overflow sensitive simplification.
21101         (vrp_visit_cond_stmt): Likewise.
21103 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
21105         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
21106         body size unconditionally.
21108 2017-05-07  Jeff Law  <law@redhat.com>
21110         Revert:
21111         2017-05-06  Jeff Law  <law@redhat.com>
21112         PR tree-optimization/78496
21113         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
21114         code.
21116         PR tree-optimization/78496
21117         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
21118         (simplify_stmt_using_ranges): Call it.
21119         (vrp_dom_walker::before_dom_children): Extract equivalences
21120         from an ASSERT_EXPR with an equality comparison against a
21121         constant.
21123 2017-05-06  Jeff Law  <law@redhat.com>
21125         PR tree-optimization/78496
21126         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
21127         code.
21129         PR tree-optimization/78496
21130         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
21131         (simplify_stmt_using_ranges): Call it.
21132         (vrp_dom_walker::before_dom_children): Extract equivalences
21133         from an ASSERT_EXPR with an equality comparison against a
21134         constant.
21136 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
21138         * lra-constraints.c (lra_copy_reg_equiv): New function.
21139         (split_reg): Use it to copy equivalence information from the
21140         original register to the spill register.
21142 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
21144         PR rtl-optimization/75964
21145         * simplify-rtx.c (simplify_const_relational_operation): Remove
21146         invalid handling of comparisons of integer ABS.
21148 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
21150         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
21151         initialize to zero.
21152         (init_regs): Remove declaration.
21153         (function_arg_advance_32): Initialize error_p as boolean variable.
21155 2017-05-05  Nathan Sidwell  <nathan@acm.org>
21157         * store-motion.c (remove_reachable_equiv_notes): Reformat long
21158         lines.  Use for (;;).
21160 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21162         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
21163         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
21164         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
21165         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
21166         VF=2 that require versioning.
21168 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21170         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
21171         int.
21173 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21175         * diagnostic.h (diagnostic_override_option_index): Convert from
21176         macro to inline function.
21178 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21180         * diagnostic.c (last_module_changed_p): New function.
21181         (set_last_module): New function.
21182         (diagnostic_report_current_module): Convert macro usage to
21183         the above functions.
21184         * diagnostic.h (diagnostic_context::last_module): Strengthen
21185         from const line_map * to const line_map_ordinary *.
21186         (diagnostic_last_module_changed): Delete macro.
21187         (diagnostic_set_last_module): Delete macro.
21189 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21191         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
21192         with diagnostic_report_diagnostic.
21193         (diagnostic_n_impl_richloc): Likewise.
21194         * diagnostic.h (report_diagnostic): Delete macro.
21195         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
21196         with diagnostic_report_diagnostic.
21197         * substring-locations.c (format_warning_va): Likewise.
21199 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21201         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
21202         save/restor of format_spec.  Move option-printing code to...
21203         (print_option_information): ...this new function, and
21204         reimplement by simply printing to the pretty_printer,
21205         rather than appending to the format string.
21207 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
21209         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
21210         handling logic into...
21211         (update_effective_level_from_pragmas): ...this new function.
21213 2017-05-04  Andrew Waterman  <andrew@sifive.com>
21215         * config/riscv/riscv.opt (mstrict-align): New option.
21216         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
21217         (SLOW_UNALIGNED_ACCESS): Define.
21218         (riscv_slow_unaligned_access): Declare.
21219         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
21220         field.
21221         (riscv_slow_unaligned_access): New variable.
21222         (rocket_tune_info): Set slow_unaligned_access to true.
21223         (optimize_size_tune_info): Set slow_unaligned_access to false.
21224         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
21225         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
21226         (riscv_option_override): Set riscv_slow_unaligned_access.
21227         * doc/invoke.texi: Add -mstrict-align to RISC-V.
21229 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
21231         * config/riscv/riscv.md: Unify indentation.
21233 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
21235         PR target/79038
21236         PR target/79202
21237         PR target/79203
21238         * config/rs6000/rs6000.md (u code attribute): Add FIX and
21239         UNSIGNED_FIX.
21240         (extendsi<mode>2): Add support for doing sign extension via
21241         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
21242         don't have ISA 3.0 instructions.
21243         (extendsi<mode>2 splitter): Likewise.
21244         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
21245         generate the normal insns since SImode can now go in vector
21246         registers.  Disallow the special UNSPECs needed for previous
21247         machines to hide SImode being used.  Add new insns
21248         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
21249         (fix_trunc<mode>si2_stfiwx): Likewise.
21250         (fix_trunc<mode>si2_internal): Likewise.
21251         (fixuns_trunc<mode>si2): Likewise.
21252         (fixuns_trunc<mode>si2_stfiwx): Likewise.
21253         (fctiw<u>z_<mode>_smallint): Likewise.
21254         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
21255         of floating point to 32-bit integer from doing a direct move to
21256         the GPR registers to do a store.
21257         (fctiwz_<mode>): Break long line.
21259 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
21261         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
21262         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
21263         (addr_list, addr_offset_valid_p): New.
21264         (split_address_groups): Check offset validity with above function.
21265         (gt-tree-ssa-loop-ivopts.h): Include header file.
21267 2017-05-05  Nathan Sidwell  <nathan@acm.org>
21269         * config.gcc (arm*-*-*): Add missing 'fi'.
21271 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
21273         * doc/invoke.texi (-fopt-info): Explicitly say order of options
21274         included in -fopt-info does not matter.
21275         * doc/optinfo.texi (-fopt-info): Fix description of default
21276         behavour. Explicitly say order of options included in -fopt-info
21277         does not matter.
21279 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21281         * config.gcc: Allow combinations of aprofile and rmprofile values for
21282         --with-multilib-list.
21283         * config/arm/t-multilib: New file.
21284         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
21285         variables.  Remove setting of ISA and floating-point ABI in
21286         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
21287         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
21288         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
21289         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
21290         CPU options.
21291         * config/arm/t-rmprofile: Likewise except for the matches changes.
21292         * doc/install.texi (--with-multilib-list): Document the combination of
21293         aprofile and rmprofile values and warn about pitfalls in doing that.
21295 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
21297         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
21298         (movdi_aarch64): Likewise.
21300 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
21302         PR tree-optimization/80632
21303         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
21304         field.
21305         (build_arrays): Initialize it for virtual phis.
21306         (fix_phi_nodes): Use it for virtual phis.
21308         PR tree-optimization/80558
21309         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
21310         [x, y] op z into [x op, y op z] for op & or | if conditions
21311         are met.
21313 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21314             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
21316         PR target/71607
21317         * config/arm/arm.md (use_literal_pool): Remove.
21318         (64-bit immediate split): No longer takes cost into consideration
21319         if arm_disable_literal_pool is enabled.
21320         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
21321         used when arm_disable_literal_pool is enabled.
21322         (arm_max_const_double_inline_cost): Remove use of
21323         arm_disable_literal_pool.
21324         (push_minipool_fix): Add assert.
21325         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
21326         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
21327         (no_literal_pool_sf_immediate): New.
21329 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21331         PR tree-optimization/80613
21332         * tree-ssa-dce.c (propagate_necessity): Remove cases for
21333         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
21335 2017-05-05  Richard Biener  <rguenther@suse.de>
21337         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
21339 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
21341         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
21342         of this flag from insn conditions due to removal from r247495.
21344 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
21346         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
21347         New function.
21348         (arm_early_store_addr_dep_ptr): Likewise.
21349         * config/arm/aarch-common-protos.h
21350         (arm_early_load_addr_dep_ptr): Add prototype.
21351         (arm_early_store_addr_dep_ptr): Likewise.
21352         * config/arm/cortex-a53.md: Add new bypasses.
21354 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
21356         * tree.c (next_type_uid): Change type to unsigned.
21357         (type_hash_canon): Decrement back next_type_uid if
21358         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
21359         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
21360         if possible.
21362 2017-05-04  Martin Sebor  <msebor@redhat.com>
21364         * builtins.c: Fix a trivial typo in a comment.
21366         PR middle-end/79234
21367         * builtins.c (check_sizes): Adjust to handle reading past the end.
21368         Avoid printing excessive upper bound of ranges.  Use %E to print
21369         tree nodes instead of converting them to %wu.
21370         (expand_builtin_memchr): New function.
21371         (compute_dest_size): Rename...
21372         (compute_objsize): ...to this.
21373         (expand_builtin_memcpy): Adjust.
21374         (expand_builtin_mempcpy): Adjust.
21375         (expand_builtin_strcat): Adjust.
21376         (expand_builtin_strcpy): Adjust.
21377         (check_strncat_sizes): Adjust.
21378         (expand_builtin_strncat): Adjust.
21379         (expand_builtin_strncpy): Adjust and simplify.
21380         (expand_builtin_memset): Adjust.
21381         (expand_builtin_bzero): Adjust.
21382         (expand_builtin_memcmp): Adjust.
21383         (expand_builtin): Handle memcmp.
21384         (maybe_emit_chk_warning): Check strncat just once.
21386 2017-05-04  Martin Sebor  <msebor@redhat.com>
21388         PR preprocessor/79214
21389         PR middle-end/79222
21390         PR middle-end/79223
21391         * builtins.c (check_sizes): Add inlining context and issue
21392         warnings even when -Wno-system-headers is set.
21393         (check_strncat_sizes): Same.
21394         (expand_builtin_strncat): Same.
21395         (expand_builtin_memmove): New function.
21396         (expand_builtin_stpncpy): Same.
21397         (expand_builtin): Handle memmove and stpncpy.
21399 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
21401         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
21402         which is not used any more.
21404 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
21406         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
21408 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
21410         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
21411         (cortexa53_tunings): Likewise.
21412         (cortexa57_tunings): Likewise.
21413         (cortexa72_tunings): Likewise.
21414         (cortexa73_tunings): Likewise.
21416 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
21418         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
21419         Set loop alignment to 8.
21421 2017-05-04  Martin Sebor  <msebor@redhat.com>
21423         PR translation/80280
21424         * builtins.c (expand_builtin_object_size): Add missing quoting to
21425         %D and like directives.
21426         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
21427         (hsa_type_for_tree_type): Same.
21428         (verify_function_arguments): Same.
21429         * symtab.c (symbol_table::change_decl_assembler_name): Same.
21430         * varasm.c (get_section): Same.
21431         (mark_weak): Same.
21433 2017-05-04  Martin Sebor  <msebor@redhat.com>
21435         PR translation/80280
21436         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
21438 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
21440         * config/aarch64/aarch64.c (generic_addrcost_table):
21441         Change HI/TI mode setting.
21443 2017-05-04  Martin Jambor  <mjambor@suse.cz>
21445         PR tree-optimization/80622
21446         * tree-sra.c (comes_initialized_p): New function.
21447         (build_accesses_from_assign): Only set write lazily when
21448         comes_initialized_p is false.
21449         (analyze_access_subtree): Use comes_initialized_p.
21450         (propagate_subaccesses_across_link): Assert !comes_initialized_p
21451         instead of testing for PARM_DECL.
21453 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21455         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
21456         constraint on operand 0 to allow more general addressing modes.
21457         Adjust output template.
21458         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
21459         New function.
21460         * config/aarch64/aarch64-protos.h
21461         (aarch64_address_valid_for_prefetch_p): Declare prototype.
21462         * config/aarch64/constraints.md (Dp): New address constraint.
21463         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
21464         predicate.
21466 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
21468         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
21469         update use of estimate_ipcp_clone_size_and_time.
21470         (estimate_local_effects): Update use of
21471         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
21472         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
21473         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
21474         Return nonspecialized time.
21476 2017-05-04  Richard Biener  <rguenther@suse.de>
21478         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
21479         for the last VUSE which def dominates the PHI.  Directly call
21480         maybe_skip_until.
21481         (get_continuation_for_phi_1): Remove.
21483 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
21485         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
21486         to explain the use of truncating division.  Cap the number of
21487         iterations to the maximum given by nb_iterations_upper_bound,
21488         if defined.
21490 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21492         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
21493         * configure: Regenerate.
21494         * config.in: Regenerate.
21495         * config/i386/driver-mingw32.c: new file.
21496         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
21497         * config.host: Link driver-mingw32.o on MinGW host.
21498         * doc/install.texi: Document new --enable-mingw-wildcard configure
21499         option.
21501 2017-05-04  Marek Polacek  <polacek@redhat.com>
21503         PR tree-optimization/80612
21504         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
21506 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
21507             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
21509         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
21510         (movt splitter): Likewise.
21511         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
21512         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
21513         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
21514         block for Thumb-1 with MOVT.
21515         (thumb2_legitimate_address_p): Move code block ...
21516         (can_avoid_literal_pool_for_label_p): ... into this new function.
21517         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
21518         literal pool.
21519         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
21520         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
21521         "M-profile targets with the MOVT instruction".
21523 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
21525         * config/arm/arm-builtins.c (arm_init_builtins): Rename
21526         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
21527         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
21529 2017-05-04  Martin Liska  <mliska@suse.cz>
21531         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
21532         variable cond_code.
21534 2017-05-04  Richard Biener  <rguenther@suse.de>
21536         * tree.c (array_at_struct_end_p): Handle arrays at struct
21537         end with flexarrays more conservatively.  Refactor and treat
21538         arrays of arrays or aggregates more strict.  Fix
21539         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
21540         * tree.c (array_at_struct_end_p): Adjust prototype.
21541         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
21542         * gimple-fold.c (get_range_strlen): Likewise.
21543         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
21545 2017-05-04  Richard Biener  <rguenther@suse.de>
21547         PR tree-optimization/31130
21548         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
21549         false.
21550         (supports_overflow_infinity): Likewise.
21551         (is_negative_overflow_infinity): Likewise.
21552         (is_positive_overflow_infinity): Likewise.
21553         (is_overflow_infinity): Likewise.
21554         (stmt_overflow_infinity): Likewise.
21555         (overflow_infinity_range_p): Likewise.
21556         (usable_range_p): Remove as always returning true.
21557         (make_overflow_infinity): Remove.
21558         (negative_overflow_infinity): Likewise.
21559         (positive_overflow_infinity): Likewise.
21560         (avoid_overflow_infinity): Likewise.
21561         (set_value_range): Adjust accordingly.
21562         (set_value_range_to_nonnegative): Likewise, remove now unused
21563         overflow_infinity arg.
21564         (vrp_operand_equal_p): Adjust.
21565         (update_value_range): Likewise.
21566         (range_int_cst_singleton_p): Likewise.
21567         (operand_less_p): Likewise.
21568         (compare_values_warnv): Likewise.
21569         (extract_range_for_var_from_comparison_expr): Likewise.
21570         (vrp_int_const_binop): Likewise.
21571         (zero_nonzero_bits_from_vr): Likewise.
21572         (extract_range_from_multiplicative_op_1): Likewise.
21573         (extract_range_from_binary_expr_1): Likewise.
21574         (extract_range_from_unary_expr): Likewise.
21575         (extract_range_from_comparison): Likewise.
21576         (extract_range_basic): Likewise.
21577         (adjust_range_with_scev): Likewise.
21578         (compare_ranges): Likewise.
21579         (compare_range_with_value): Likewise.
21580         (dump_value_range): Likewise.
21581         (test_for_singularity): Likewise, remove strict_overflow_p parameter
21582         never used.
21583         (simplify_cond_using_ranges): Adjust.
21585 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
21587         * brig-builtins.def: Added a builtin for class_f64.
21588         * builtin-types.def: Added a builtin type needed by class_f64.
21590 2017-05-03  Jason Merrill  <jason@redhat.com>
21592         * timevar.def: Add TV_CONSTEXPR.
21594 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
21596         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
21598 2017-05-03  Martin Jambor  <mjambor@suse.cz>
21600         * ipa-prop.c (ipa_update_after_lto_read): Removed.
21601         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
21602         * ipa-cp.c (ipcp_propagate_stage): Do not call
21603         ipa_update_after_lto_read.
21604         * ipa-inline.c (ipa_inline): Likewise.
21606 2017-05-03  Martin Jambor  <mjambor@suse.cz>
21608         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
21609         tag.  Added a default constructor and a destructor.
21610         (ipa_edge_args_sum_t): New class;
21611         (ipa_edge_args_sum): Declare.
21612         (ipa_edge_args_vector): Remove declaration.
21613         (IPA_EDGE_REF): Use ipa_edge_args_sum.
21614         (ipa_free_edge_args_substructures): Remove declaration.
21615         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
21616         (ipa_edge_args_info_available_for_edge_p): Likewise.
21617         * ipa-prop.c (ipa_edge_args_vector): Removed.
21618         (edge_removal_hook_holder): Likewise.
21619         (edge_duplication_hook_holder): Likewise.
21620         (ipa_edge_args_sum): New variable.
21621         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
21622         ipa_edge_args_vector.
21623         (ipa_free_edge_args_substructures): Likewise.
21624         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
21625         ipa_edge_args_vector.
21626         (ipa_edge_removal_hook): Turned into method
21627         ipa_edge_args_sum_t::remove.
21628         (ipa_edge_duplication_hook): Turned into method
21629         ipa_edge_args_sum_t::duplicate.
21630         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
21631         registering edge hooks.
21632         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
21633         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
21634         ipa_edge_args_sum instead of ipa_edge_args_vector.
21635         * ipa-profile.c (ipa_profile): Likewise.
21637 2017-05-03  Martin Jambor  <mjambor@suse.cz>
21639         * symbol-summary.h (function_summary): New method exists.
21640         (function_summary::symtab_removal): Deallocate through release.
21641         (call_summary): New class.
21642         (gt_ggc_mx): New overload.
21643         (gt_pch_nx): Likewise.
21644         (gt_pch_nx): Likewise.
21646 2017-05-03  Jeff Law  <law@redhat.com>
21648         PR tree-optimization/78496
21649         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
21650         from simplify_cond_using_ranges.  Split off code to walk
21651         backwards through casts into ...
21652         (simplify_cond_using_ranges_2): New function.
21653         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
21654         (execute_vrp): After identifying jump threads, call
21655         simplify_cond_using_ranges_2.
21657 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
21659         PR bootstrap/80609
21660         * ipa-inline.h (inline_summary): Add ctor.
21661         (create_ggc): Do not use ggc_cleared_alloc.
21663 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
21664             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21666         * gcc.c (handle_braces): Support escaping in switch matching
21667         text.
21668         * doc/invoke.texi (Spec Files): Document it.
21669         Remove superfluous @code markup in items.
21671 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
21673         * diagnostic-show-locus.c (struct column_range): New struct.
21674         (get_affected_columns): New function.
21675         (get_printed_columns): New function.
21676         (struct correction): New struct.
21677         (correction::ensure_capacity): New function.
21678         (correction::ensure_terminated): New function.
21679         (struct line_corrections): New struct.
21680         (line_corrections::~line_corrections): New dtor.
21681         (line_corrections::add_hint): New function.
21682         (layout::print_trailing_fixits): Reimplement in terms of the new
21683         classes.
21684         (selftest::test_overlapped_fixit_printing): New function.
21685         (selftest::diagnostic_show_locus_c_tests): Call it.
21687 2017-05-03  Nathan Sidwell  <nathan@acm.org>
21689         Canonicalize canonical type hashing
21690         * tree.h (type_hash_canon_hash): Declare.
21691         * tree.c (type_hash_list, attribute_hash_list): Move into
21692         type_hash_canon_hash.
21693         (build_type_attribute_qual_variant): Break out hash code calc into
21694         type_hash_canon_hash.
21695         (type_hash_canon_hash): New.  Generic type hash computation.
21696         (build_range_type_1, build_array_type_1, build_function_type,
21697         build_method_type_directly, build_offset_type, build_complex_type,
21698         make_vector_type): Call it.
21700 2017-05-03  Richard Biener  <rguenther@suse.de>
21702         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21703         When all DRs have unknown misaligned do not always peel
21704         when there is a store but apply the same costing model as if
21705         there were only loads.
21707 2017-05-03  Richard Biener  <rguenther@suse.de>
21709         Revert
21710         PR tree-optimization/80492
21711         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
21712         compare_base_decls returning dont-know properly.
21714 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21716         * config/arm/iterators.md (CCSI): New mode iterator.
21717         (arch): New mode attribute.
21718         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
21719         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
21720         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
21721         code iterator for success result mode.
21722         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
21723         the corresponding new insn generators.
21725 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
21727         Revert r247509
21728         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
21729         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
21731 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
21733         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
21734         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
21735         (DDR_A): Wrap DDR argument in brackets.
21736         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
21737         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
21738         (DDR_REVERSED_P): Likewise.
21740 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
21742         PR tree-optimization/79472
21743         * tree-switch-conversion.c (struct switch_conv_info): Add
21744         contiguous_range and default_case_nonstandard fields.
21745         (collect_switch_conv_info): Compute contiguous_range and
21746         default_case_nonstandard fields, don't clear final_bb if
21747         contiguous_range and only the default case doesn't have the required
21748         structure.
21749         (check_all_empty_except_final): Set default_case_nonstandard instead
21750         of failing if contiguous_range and the default case doesn't have empty
21751         block.
21752         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
21753         and only the default case doesn't have the required constants.  Skip
21754         virtual phis.
21755         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
21756         if default_case_nonstandard.
21757         (build_constructors): Build constant 1 just once.  Assert that default
21758         values aren't inserted in between cases if contiguous_range.  Skip
21759         virtual phis.
21760         (build_arrays): Skip virtual phis.
21761         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
21762         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
21763         Handle virtual phis.
21764         (gen_inbound_check): Handle default_case_nonstandard case.
21765         (process_switch): Adjust check_final_bb caller.  Call
21766         gather_default_values with the first non-default case instead of
21767         default case if default_case_nonstandard.
21769 2017-05-02  Nathan Sidwell  <nathan@acm.org>
21771         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
21772         check.  Fix formatting.
21774 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
21776         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
21777         errors when comparing specialized and unspecialized times.
21779 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
21781         * diagnostic-show-locus.c
21782         (layout::should_print_annotation_line_p): Make private.
21783         (layout::print_annotation_line): Make private.
21784         (layout::annotation_line_showed_range_p): Make private.
21785         (layout::show_ruler): Make private.
21786         (layout::print_source_line): Make private.  Pass in line and
21787         line_width, rather than calling location_get_source_line.  Drop
21788         returned value.
21789         (layout::print_leading_fixits): New method.
21790         (layout::print_any_fixits): Rename to...
21791         (layout::print_trailing_fixits): ...this, and make private.
21792         Don't print newline fixits.
21793         (diagnostic_show_locus): Move logic for printing one row into...
21794         (layout::print_line): ...this new function.  Move the
21795         location_get_source_line call and error-handling from
21796         print_source_line to here.  Call print_leading_fixits, and rename
21797         print_any_fixits to print_trailing_fixits.
21798         (selftest::test_fixit_insert_containing_newline): Update now that
21799         newlines are partially supported.
21800         (selftest::test_fixit_insert_containing_newline_2): New test.
21801         (selftest::test_fixit_replace_containing_newline): Update comments.
21802         (selftest::diagnostic_show_locus_c_tests): Call the new test.
21803         * edit-context.c (class added_line): New class.
21804         (class edited_line): Describe newline handling in comment.
21805         (edited_line::actually_edited_p): New method.
21806         (edited_line::print_content): Delete redundant decl.
21807         (edited_line::m_predecessors): New field.
21808         (edited_file::print_content): Call edited_line::print_content.
21809         (edited_file::print_diff): Update to support newlines.
21810         (edited_file::print_diff_hunk): Likewise.
21811         (edited_file::print_run_of_changed_lines): New function.
21812         (edited_file::print_diff_line): Convert to...
21813         (print_diff_line): ...this.
21814         (edited_file::get_effective_line_count): New function.
21815         (edited_line::edited_line): Initialize new field m_predecessors.
21816         (edited_line::~edited_line): Clean up m_predecessors.
21817         (edited_line::apply_fixit): Handle newlines.
21818         (edited_line::get_effective_line_count): New function.
21819         (edited_line::print_content): New function.
21820         (edited_line::print_diff_lines): New function.
21821         (selftest::test_applying_fixits_insert_containing_newline): New
21822         test.
21823         (selftest::test_applying_fixits_replace_containing_newline): New
21824         test.
21825         (selftest::insert_line): New function.
21826         (selftest::test_applying_fixits_multiple_lines): Add example of
21827         inserting a line.
21828         (selftest::edit_context_c_tests): Call the new tests.
21830 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
21832         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
21833         parameter cand.  Update dump information.
21834         (get_computation_cost): Update uses.
21836 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
21838         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
21839         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
21840         (get_computation_at, rewrite_use_address): Update use of
21841         get_computation_aff.
21843 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
21845         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
21846         (get_computation): Delete.
21847         (get_computation_cost): Implement like get_computation_cost_at.
21848         Use get_computation_at.
21849         (get_computation_cost_at): Delete.
21850         (rewrite_use_nonlinear_expr): Use get_computation_at.
21851         (rewrite_use_compare, remove_unused_ivs): Ditto.
21853 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
21855         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
21857 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
21859         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
21860         (ivopts_global_cost_for_size): Rename parameter and update uses.
21861         (iv_ca_recount_cost): Update uses.
21862         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
21863         candidates seperately in n_invs and n_cands.
21864         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
21866 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
21868         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
21869         (find_inv_vars_cb): New.
21870         (find_depends): Renamed to ...
21871         (find_inv_vars): ... this.
21872         (add_candidate_1, force_var_cost): Call find_inv_vars.
21873         (split_address_cost, determine_group_iv_cost_cond): Ditto.
21875 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
21877         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
21878         inv_vars.  Add inv_exprs.
21879         (struct iv_cand): Rename depends_on to inv_vars.
21880         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
21881         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
21882         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
21883         (dump_cand): Dump inv_vars.
21884         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
21885         (record_invariant, find_depends, add_candidate_1): Ditto.
21886         (set_group_iv_cost, force_var_cost): Ditto.
21887         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
21888         (get_computation_cost_at, get_computation_cost): Ditto.
21889         (determine_group_iv_cost_generic): Ditto.
21890         (determine_group_iv_cost_address): Ditto.
21891         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
21892         (determine_group_iv_costs): Ditto.
21893         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
21894         (iv_ca_set_remove_invariants): Renamed to ...
21895         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
21896         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
21897         (iv_ca_set_add_invariants):  Renamed to ...
21898         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
21899         (iv_ca_set_cp): Use iv_ca_set_add_invs.
21900         (iv_ca_has_deps): Support inv_vars and inv_exprs.
21901         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
21902         (create_new_ivs): Remove useless dump.
21904 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
21906         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
21907         iv_cand code.
21908         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
21909         (iv_ca_set_no_cp, create_new_iv): Ditto.
21911 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
21913         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
21915 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
21917         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
21918         function tree_check2.
21920 2017-05-02  Martin Liska  <mliska@suse.cz>
21922         * doc/gcov.texi: Add missing preposition.
21923         * gcov.c (function_info::function_info): Properly fill up
21924         all member variables.
21926 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
21928         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
21930 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
21932         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
21934 2017-05-02  Martin Liska  <mliska@suse.cz>
21936         PR lto/77954.
21937         * lto-streamer-in.c (lto_read_tree_1): Remove
21938         LTO_STREAMER_DEBUG.
21939         * lto-streamer.c (struct tree_hash_entry): Likewise.
21940         (struct tree_entry_hasher): Likewise.
21941         (tree_entry_hasher::hash): Likewise.
21942         (tree_entry_hasher::equal): Likewise.
21943         (lto_streamer_init): Likewise.
21944         (lto_orig_address_map): Likewise.
21945         (lto_orig_address_get): Likewise.
21946         (lto_orig_address_remove): Likewise.
21947         * lto-streamer.h: Likewise.
21948         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
21949         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
21951 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
21953         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
21954         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
21955         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
21956         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
21957         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
21958         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
21959         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
21960         (mm_maskz_sub_ss): New intrinsics.
21961         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21962         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
21963         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
21964         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
21965         (__builtin_ia32_subss_mask_round): New builtins.
21966         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
21967         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
21968         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
21969         Renamed to ...
21970         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
21971         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
21972         Changed to ...
21973         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
21974         ... this.
21976 2017-05-02  Martin Jambor  <mjambor@suse.cz>
21978         PR tree-optimization/78687
21979         * tree-sra.c (access): New field parent.
21980         (process_subtree_disqualification): New function.
21981         (disqualify_candidate): Call it.
21982         (build_accesses_from_assign): Reset write flag if creating an
21983         assighnment link.
21984         (build_access_subtree): Fill in parent field and also prpagate
21985         down grp_write flag.
21986         (create_artificial_child_access): New parameter set_grp_write, set
21987         grp_write to its value.
21988         (propagate_subaccesses_across_link): Also propagate grp_write flag
21989         values.
21990         (propagate_all_subaccesses): Push the closest parent back to work
21991         queue if add_access_to_work_queue returned true.
21993 2017-05-02  Richard Biener  <rguenther@suse.de>
21995         * common.opt (fstrict-overflow): Alias negative to fwrapv.
21996         * doc/invoke.texi (fstrict-overflow): Remove all traces of
21997         -fstrict-overflow documentation.
21998         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
21999         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
22000         flag_strict_overflow.
22001         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
22002         * lto-opts.c (lto_write_options): Do not stream it.
22003         * lto-wrapper.c (merge_and_complain): Do not handle it.
22004         * opts.c (default_options_table): Do not set -fstrict-overflow.
22005         (finish_options): Likewise do not clear it when sanitizing.
22006         * simplify-rtx.c (simplify_const_relational_operation): Do not
22007         test flag_strict_overflow.
22009 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
22011         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
22012         using enabled attribute.
22013         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
22014         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
22015         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
22016         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
22017         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
22018         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
22019         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
22020         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
22021         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
22022         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
22024 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
22026         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
22028 2017-05-02  Richard Biener  <rguenther@suse.de>
22030         PR tree-optimization/80591
22031         Revert
22032         2017-04-10  Richard Biener  <rguenther@suse.de>
22034         * tree-ssa-structalias.c (find_func_aliases): Properly handle
22035         asm inputs.
22037 2017-05-02  Richard Biener  <rguenther@suse.de>
22039         PR tree-optimization/80549
22040         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
22041         (cleanup_tree_cfg_noloop): Create forwarders to known loop
22042         headers if they do not have a preheader.
22044 2017-05-02  Martin Liska  <mliska@suse.cz>
22046         PR other/80589
22047         * common.opt: Fix typo.
22048         * doc/invoke.texi: Likewise.
22050 2017-05-01  Jan Beulich  <jbeulich@suse.com>
22052         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
22053         swapping, add (x,x,m,x,n) alternative.
22055 2017-05-01  Nathan Sidwell  <nathan@acm.org>
22057         * calls.c (combine_pending_stack_adjustment_and_call): Remove
22058         unnecessary unadjusted_alignment check.
22060 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
22062         PR c++/80038
22063         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
22064         operations here.
22065         * gimplify.c (gimplify_cilk_detach): New function.
22066         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
22067         * tree-core.h: Document EXPR_CILK_SPAWN.
22068         * tree.h (EXPR_CILK_SPAWN): Define.
22070 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
22072         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
22073         to use new fixit_hint representation, using the "replace" logic.
22074         (get_line_span_for_fixit_hint): Likewise.
22075         (layout::print_any_fixits): Likewise.
22076         (selftest::test_one_liner_many_fixits): Rename to...
22077         (selftest::test_one_liner_many_fixits_1): ...this, and update
22078         comment and expected output to reflect that the multiple fix-it
22079         hints are now consolidated into one insertion.
22080         (selftest::test_one_liner_many_fixits_2): New test.
22081         (selftest::test_diagnostic_show_locus_one_liner): Update for
22082         above.
22083         (selftest::test_fixit_consolidation): Update for fix-it API
22084         change.
22085         * diagnostic.c (print_parseable_fixits): Likewise.
22086         * edit-context.c (edited_line::m_line_events): Convert from
22087         auto_vec <line_event *> to auto_vec <line_event>.
22088         (class line_event): Convert from abstract base class to a concrete
22089         class, taking over the role of replace_event.
22090         (class insert_event): Delete.
22091         (class replace_event): Rename to class line_event.  Convert to
22092         half-open range.
22093         (edit_context::add_fixits): Reimplement.
22094         (edit_context::apply_insert): Delete.
22095         (edit_context::apply_replace): Rename to...
22096         (edit_context::apply_fixit): ...this.  Convert to half-open range.
22097         (edited_file::apply_insert): Delete.
22098         (edited_file::apply_replace): Rename to...
22099         (edited_file::apply_fixit): ...this.
22100         (edited_line::~edited_line): Drop deletion of events.
22101         (edited_line::apply_insert): Delete.
22102         (edited_line::apply_replace): Rename to...
22103         (edited_line::apply_fixit): ...this.  Convert to half-open range.
22104         Update for change to type of m_line_events.
22105         * edit-context.h (edit_context::apply_insert): Delete.
22106         (edit_context::apply_replace): Rename to...
22107         (edit_context::apply_fixit): ...this.
22109 2017-05-01  Martin Sebor  <msebor@redhat.com>
22111         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
22112         known.
22114 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
22116         PR target/68491
22117         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
22118         __get_cpuid_max returns 0.
22119         (__get_cpuid_count): Ditto.
22121 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
22123         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
22124         replacement expression is another instance of one of its arguments.
22126 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
22128         PR target/79430
22129         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
22130         check for stack push/pop autoinc.
22131         * config/i386/i386.c (ix86_agi_dependent): Return false
22132         if the only reason why modified_in_p returned true is that
22133         addr is SP based and set_insn is a push or pop.
22135 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
22137         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
22138         overflow check.
22140 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
22142         PR ipa/79224
22143         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
22144         (account_size_time): Use two predicates - exec_pred and
22145         nonconst_pred_ptr.
22146         (evaluate_conditions_for_known_args): Compute both clause and
22147         nonspec_clause.
22148         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
22149         (inline_summary_t::duplicate): Update.
22150         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
22151         separately.
22152         (compute_inline_parameters): Likewise.
22153         (estimate_edge_size_and_time): Update caluclation of time.
22154         (estimate_node_size_and_time): Compute both time and nonspecialized
22155         time.
22156         (estimate_ipcp_clone_size_and_time): Update.
22157         (inline_merge_summary): Update.
22158         (do_estimate_edge_time): Update.
22159         (do_estimate_edge_size): Update.
22160         (do_estimate_edge_hints): Update.
22161         (inline_read_section, inline_write_summary): Stream both new predicates.
22162         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
22163         as argument.
22164         (compute_inlined_call_time): Cleanup.
22165         (big_speedup_p): Update.
22166         (edge_badness): Update.
22167         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
22168         (size_time_entry): Replace predicate by exec_predicate and
22169         nonconst_predicate.
22170         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
22171         (estimate_edge_time): Return also nonspec_time.
22172         (reset_edge_growth_cache): Update.
22174 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
22176         PR rtl-optimization/80491
22177         * ifcvt.c (noce_process_if_block): When looking for x setter
22178         with missing else_bb, don't check only the insn right before
22179         cond_earliest, but look for the last insn that x is modified in
22180         within the same bb.
22182         PR rtl-optimization/80491
22183         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
22185 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
22187         PR tree-optimization/80487
22188         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
22190 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
22192         PR tree-optimization/79697
22193         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
22194         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
22195         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
22196         BUILT_IN_STRNDUP.
22197         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
22198         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
22200 2017-04-28  Martin Sebor  <msebor@redhat.com>
22202         PR tree-optimization/80523
22203         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
22204         (init_target_to_host_charmap, target_to_host, target_strtol10): New
22205         functions.
22206         (maybe_warn, format_directive, parse_directive): Use new functions.
22207         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
22209 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
22211         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
22213 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22215         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
22216         target_header_dir): Set correctly.
22217         * configure: Regenerated.
22218         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
22219         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
22220         instead of SYSTEM_HEADER_DIR.
22222 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
22224         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
22225         (estimate_local_effects): Likewise.
22226         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
22227         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
22228         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
22229         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
22230         do_estimate_edge_time, estimate_edge_time): Likewise.
22231         * ipa-inline-analysis.c (estimate_node_size_and_time,
22232         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
22233         (estimate_time_after_inlining): Remove.
22235 2017-04-28  Martin Liska  <mliska@suse.cz>
22237         * doc/gcov.texi: Enhance documentation of gcov.
22239 2017-04-28  Martin Liska  <mliska@suse.cz>
22241         * doc/gcov.texi: Sort options in alphabetic order.
22242         * doc/gcov-dump.texi: Likewise.
22243         * doc/gcov-tool.texi: Likewise.
22244         * gcov.c (print_usage): Likewise.
22245         * gcov-dump.c (print_usage): Likewise.
22246         * gcov-tool.c (print_merge_usage_message): Likewise.
22247         (print_rewrite_usage_message): Likewise.
22248         (print_overlap_usage_message): Likewise.
22250 2017-04-28  Martin Liska  <mliska@suse.cz>
22252         PR gcov-profile/53915
22253         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
22255 2017-04-28  Martin Liska  <mliska@suse.cz>
22257         PR gcov-profile/79891
22258         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
22259         is marked by compiler as living on a line.
22260         (get_cycles_count): Remove usage of the union.
22261         (output_intermediate_file): Likewise.
22262         (find_source): Fix GNU coding style.
22263         (accumulate_line_counts): Remove old non-all block mode.
22264         (output_lines): Remove usage of the union.
22265         * profile.c (output_location): Include all BBs, even if
22266         belonging to a same line (and file) as a previous BB.
22268 2017-04-28  Martin Liska  <mliska@suse.cz>
22270         * gcov.c (process_args): Handle new argument 'w'.
22271         (read_graph_file): Assign ID to BBs.
22272         (output_branch_count): Display BB # if verbose flag is set.
22273         (output_lines): Likewise for arcs.
22274         (print_usage): Add '--verbose' option help.
22275         * doc/gcov.texi: Document --verbose (-w) option.
22277 2017-04-28  Martin Liska  <mliska@suse.cz>
22279         * gcov.c (struct block_location_info): New struct.
22280         (process_file): Fill up the new structure.
22281         (read_graph_file): Replace usage of encoding by the newly added
22282         struct.
22283         (add_line_counts): Likewise.
22284         (accumulate_line_counts): Remove usage of the union.
22285         (function_info::function_info): New function.
22286         (function_info::~function_info): Likewise.
22287         (process_file): Call delete instead of release_function.
22288         (release_function): Release the function.
22289         (release_structures): Call delete instead of release_function.
22290         (solve_flow_graph): Replace usage of num_blocks.
22291         (find_exception_blocks): Likewise.
22292         (output_lines): Fix GNU coding style.
22294 2017-04-28  Martin Liska  <mliska@suse.cz>
22296         PR driver/56469
22297         * coverage.c (coverage_remove_note_file): New function.
22298         * coverage.h: Declare the function.
22299         * toplev.c (finalize): Clean if an error has been seen.
22301 2017-04-28  Martin Liska  <mliska@suse.cz>
22303         PR gcov-profile/80031
22304         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
22305         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
22306         * gcov.c (read_graph_file): Read just number of blocks.
22307         * profile.c (branch_prob): Do not stream 0 flags per a basic
22308         block.
22310 2017-04-28  Martin Liska  <mliska@suse.cz>
22312         * gcov-dump.c (tag_*): Add new argument to declarations.
22313         (dump_gcov_file): Likewise.
22314         (tag_blocks): Add and use new argument depth.
22315         (tag_arcs): Likewise.
22316         (tag_lines): Likewise.
22317         (tag_counters): Likewise.
22318         (tag_summary): Likewise.
22319         (dump_working_sets): Use depth to do a proper indentation.
22321 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
22323         PR bootstrap/80531
22324         * cgraph.h (symtab_node::debug_symtab): No longer inline.
22325         * symtab.c (symtab_node::debug_symtab): Move definition here.
22327 2017-04-28  Richard Biener  <rguenther@suse.de>
22329         * lto-streamer.h (LTO_major_version): Bump to 7.
22331 2017-04-28  Richard Biener  <rguenther@suse.de>
22333         * tree-vrp.c (assert_info): New struct.
22334         (add_assert_info): New helper.
22335         (register_edge_assert_for_2): Refactor to add asserts to a vector
22336         of assert_info.
22337         (register_edge_assert_for_1): Likewise.
22338         (register_edge_assert_for): Likewise.
22339         (finish_register_edge_assert_for): New helper actually registering
22340         asserts where live on edge.
22341         (find_conditional_asserts): Adjust.
22342         (find_switch_asserts): Likewise.
22343         (evrp_dom_walker::try_find_new_range): Generalize.
22344         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
22346 2017-04-27  Marek Polacek  <polacek@redhat.com>
22348         PR sanitizer/80349
22349         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
22350         arg10 and arg11 to itype.
22352 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
22354         * doc/extend.texi (Object Size Checking): Improve grammar.
22356 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
22358         PR target/80530
22359         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
22360         that the logic for permitting reciprocal estimates matches that
22361         in use_rsqrt_p.
22363 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
22365         PR c++/80534
22366         * tree.c (type_cache_hasher::equal): Only compare
22367         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
22368         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
22369         non-aggregate element types.
22370         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
22371         about the flag on ARRAY_TYPEs in the comment, formatting fix.
22373 2017-04-27  Richard Biener  <rguenther@suse.de>
22375         PR middle-end/80533
22376         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
22377         stripping ARRAY_REFs from MEM_EXPR make sure we're not
22378         keeping a reference to a trailing array.
22380 2017-04-27  Richard Biener  <rguenther@suse.de>
22382         PR middle-end/80539
22383         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
22384         being in loop-closed SSA form conservatively.
22385         (chrec_fold_multiply_poly_poly): Likewise.
22387 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
22389         PR middle-end/79665
22390         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
22391         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
22393 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
22395         PR target/77728
22396         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
22397         (aarch64_function_arg_alignment): Return unsigned int again, but still
22398         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
22399         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
22400         Don't emit -Wpsabi note.
22401         (aarch64_function_arg_boundary): Likewise.
22402         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
22403         caller.
22405 2017-04-26  Nathan Sidwell  <nathan@acm.org>
22407         * tree.h (crc32_unsigned_n): Declare.
22408         (crc32_unsigned, crc32_unsigned): Make inline.
22409         * tree.c (crc32_unsigned_bits): Replace with ...
22410         (crc32_unsigned_n): ... this.
22411         (crc32_unsigned, crc32_byte): Remove.
22412         (crc32_string): Remove unnecessary braces.
22414 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
22416         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
22417         * ipa-inline-analysis.c (MAX_TIME): Remove.
22418         (account_size_time): Use sreal for time.
22419         (dump_inline_summary): Update.
22420         (estimate_function_body_sizes): Update.
22421         (estimate_edge_size_and_time): Update.
22422         (estimate_calls_size_and_time): Update.
22423         (estimate_node_size_and_time): Update.
22424         (inline_merge_summary): Update.
22425         (inline_update_overall_summary): Update.
22426         (estimate_time_after_inlining): Update.
22427         (inline_read_section): Update.
22428         (inline_write_summary): Update.
22429         * ipa-inline.c (compute_uninlined_call_time): Update.
22430         (compute_inlined_call_time): Update.
22431         (recursive_inlining): Update.
22432         (inline_small_functions): Update.
22433         (dump_overall_stats): Update.
22434         * ipa-inline.h: Include sreal.h.
22435         (size_time_entry): Turn time to sreal.
22436         (inline_summary): Turn self_time nad time to sreal.
22438 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
22440         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
22441         data-streamer.h
22442         (sreal::stream_out, sreal::stream_in): New.
22443         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
22445 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
22447         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
22448         environment.
22450 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
22452         PR target/70799
22453         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
22454         Handle ASHIFTRT.
22455         (dimode_scalar_chain::compute_convert_gain): Ditto.
22456         (dimode_scalar_chain::make_vector_copies): Ditto.
22457         (dimode_scalar_chain::convert_reg): Ditto.
22458         (dimode_scalar_chain::convert_insn): Ditto.
22459         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
22460         (VI248_AVX512BW_1): New mode iterator.
22461         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
22462         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
22463         mode iterator.
22465 2017-04-25  Martin Sebor  <msebor@redhat.com>
22467         PR tree-optimization/80497
22468         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
22469         constants are representable in HOST_WIDE_INT.
22470         (parse_directive): Ditto.
22472 2017-04-25  Martin Sebor  <msebor@redhat.com>
22474         PR bootstrap/80486
22475         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
22476         (new_zero_array): Adjust signature.
22477         (dom_info::dom_init): Used unsigned rather that size_t.
22478         (dom_info::dom_info): Same.
22480 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22481             Jakub Jelinek  <jakub@redhat.com>
22483         PR target/77728
22484         * config/arm/arm.c: Include gimple.h.
22485         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
22486         returns negative, increment ncrn only if it returned positive.
22487         (arm_needs_doubleword_align): Return int instead of bool,
22488         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
22489         members, but if there is any such non-FIELD_DECL
22490         > PARM_BOUNDARY aligned decl, return -1 instead of false.
22491         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
22492         returns negative, increment nregs only if it returned positive.
22493         (arm_setup_incoming_varargs): Likewise.
22494         (arm_function_arg_boundary): Emit -Wpsabi note if
22495         arm_needs_doubleword_align returns negative, return
22496         DOUBLEWORD_ALIGNMENT only if it returned positive.
22498 2017-04-25  Marek Polacek  <polacek@redhat.com>
22500         PR sanitizer/80349
22501         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
22502         first argument to type.
22504 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
22506         PR target/80482
22507         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
22508         type checks to test for compatibility instead of equality.
22510 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22511             Jakub Jelinek  <jakub@redhat.com>
22513         PR target/77728
22514         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
22515         type.
22516         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
22517         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
22518         the alignment computation, but return their maximum in warn_alignment.
22519         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
22520         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
22521         is smaller.
22522         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
22523         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
22524         caller.
22526 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22528         * config/arc/simdext.md (dmpyh): Fix typo.
22530 2017-04-25  Richard Biener  <rguenther@suse.de>
22532         PR tree-optimization/80492
22533         * alias.c (compare_base_decls): Handle registers with asm
22534         specification conservatively.
22535         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
22536         compare_base_decls returning dont-know properly.
22538 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22540         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
22541         (legitimate_offset_address_p): New function.
22542         (arc_legitimate_address_p): Use above function.
22544 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22546         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
22548 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22550         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
22551         ACCH registers whenever they are available.
22553 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22555         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
22556         double regs fix when not used.
22558 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22560         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
22561         core registers.
22562         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
22563         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
22565 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22567         * config/arc/arc.c (arc_output_addsi): Check for h-register class
22568         when emitting short ADD instructions.
22570 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
22572         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
22573         constraint.
22574         (cmpsi_cc_c_insn): Likewise.
22575         (cbranchsi4_scratch): Compute proper instruction length using
22576         compact_hreg_operand.
22577         * config/arc/predicates.md (compact_hreg_operand): New predicate.
22579 2017-04-25  Richard Biener  <rguenther@suse.de>
22581         PR middle-end/80509
22582         * passes.c (pass_manager::pass_manager): Initialize
22583         m_name_to_pass_map.
22585 2017-04-25  Richard Biener  <rguenther@suse.de>
22587         PR tree-optimization/79201
22588         * tree-ssa-sink.c (statement_sink_location): Handle calls.
22590 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22592         PR target/80464
22593         * config/s390/vector.md: Split MEM->GPR vector moves for
22594         non-s_operand addresses.
22596 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22598         PR target/79895
22599         * config/s390/predicates.md (reload_const_wide_int_operand): New
22600         predicate.
22601         * config/s390/s390.md ("movti"): Remove d/P alternative.
22602         ("movti_bigconst"): New pattern definition.
22604 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22606         PR target/80080
22607         * s390-protos.h (s390_expand_cs_hqi): Removed.
22608         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
22609         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
22610         modes as well as CCZ1mode and CCZmode.
22611         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
22612         signature of s390_emit_compare_and_swap.
22613         (s390_expand_cs_hqi): Likewise, make static.
22614         (s390_expand_cs_tdsi): Generate an explicit compare before trying
22615         compare-and-swap, in some cases.
22616         (s390_expand_cs): Wrapper function.
22617         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
22618         atomic_exchange.
22619         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
22620         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
22621         patterns for small and large integers.  Forbid symref memory operands.
22622         Move expander to s390.c.  Require cc register.
22623         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
22624         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
22625         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
22626         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
22627         symref memory operands.  Remove CC mode and call s390_match_ccmode
22628         instead.
22629         ("atomic_exchange<mode>"): Allow and implement all integer modes.
22631 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22633         * config/s390/s390.md (define_peephole2): New peephole to help
22634         combining the load-and-test pattern with volatile memory.
22636 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22638         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
22639         with CCZmode for TARGET_Z196.
22641 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
22643         PR rtl-optimization/80501
22644         * combine.c (make_compound_operation_int): Set subreg_code to SET
22645         even for AND with mask of the sign bit of mode.
22647         PR rtl-optimization/80500
22648         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
22649         sum's initial value.
22651 2017-04-25  Julian Brown  <julian@codesourcery.com>
22652             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
22654         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
22656 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
22658         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
22660 2017-04-25  Julian Brown  <julian@codesourcery.com>
22661             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
22663         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
22664         (thunderx2t99_sha): New Reservation.
22666 2017-04-25  Julian Brown  <julian@codesourcery.com>
22667             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
22669         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
22670         type for 1-element load.
22672 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
22674         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
22676 2017-04-24  Martin Jambor  <mjambor@suse.cz>
22678         PR tree-optimization/80293
22679         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
22680         char arrays not totally scalarizable if it is false.
22681         (analyze_all_variable_accesses): Pass correct value in the new
22682         parameter.  Add a statistics counter.
22684 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
22686         PR middle-end/79931
22687         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
22689 2017-04-24  Richard Biener  <rguenther@suse.de>
22691         PR tree-optimization/80494
22692         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
22693         out for complex types.
22695 2017-04-24  Richard Biener  <rguenther@suse.de>
22697         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
22698         * tree-ssa-sccvn.c (print_scc): Print SCC size.
22699         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
22700         (DFS): Adjust and never fail.
22701         (sccvn_dom_walker::fail): Remove.
22702         (sccvn_dom_walker::before_dom_children): Adjust.
22703         (run_scc_vn): Likewise and never fail.
22704         * tree-ssa-pre.c (pass_pre::execute): Adjust.
22705         (pass_fre::execute): Likewise.
22707 2017-04-24  Richard Biener  <rguenther@suse.de>
22709         PR tree-optimization/79725
22710         * tree-ssa-sink.c (statement_sink_location): Return whether
22711         failure reason was zero uses.  Move that check later.
22712         (sink_code_in_bb): Deal with zero uses by removing the stmt
22713         if possible.
22715 2017-04-24  Richard Biener  <rguenther@suse.de>
22717         PR c++/2972
22718         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
22719         pointer-based references.
22721 2017-04-24  Richard Biener  <rguenther@suse.de>
22723         PR bootstrap/79814
22724         * pass_manager.h (pass_manager::operator new): Remove.
22725         (pass_manager::operator delete): Likewise.
22726         * passes.c (pass_manager::operator new): Remove.
22727         (pass_manager::operator delete): Likewise.
22728         (pass_manager::pass_manager): Zero individual pass members.
22730 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
22732         PR target/70799
22733         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
22734         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
22735         Check "XEXP (src, 1)" operand here.
22736         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
22737         Check "XEXP (src, 1)" operand here.
22738         (dimode_scalar_chain::make_vector_copies): Detect count register
22739         of a shift instruction.  Zero extend count register from QImode
22740         to DImode to satisfy vector shift pattern count operand predicate.
22741         Substitute vector shift count operand with a DImode copy.
22742         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
22743         vector register.
22745 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
22747         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
22748         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
22749         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
22750         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
22751         (UNSPEC_NOREX_MEM): Remove definition.
22753 2017-04-21  Richard Biener  <rguenther@suse.de>
22755         PR tree-optimization/79547
22756         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22757         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
22758         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
22759         without any constraints.
22761 2017-04-21  Richard Biener  <rguenther@suse.de>
22763         PR tree-optimization/78847
22764         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
22766 2017-04-21  Richard Biener  <rguenther@suse.de>
22768         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
22769         (build_distinct_type_copy): Likewise.
22770         (build_variant_type_copy): Likewise.
22771         * tree.c (build_qualified_type): Pass down mem-stat info.
22772         (build_distinct_type_copy): Likewise.
22773         (build_variant_type_copy): Likewise.
22775 2017-04-21  Richard Biener  <rguenther@suse.de>
22777         PR tree-optimization/80237
22778         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
22779         defaulted to NULL.
22780         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
22781         for a simplified result.
22783 2016-04-21  Richard Biener  <rguenther@suse.de>
22785         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
22786         sth as strict as a simple_iv but a chrec without symbols and an
22787         operand defined in the loop we are peeling (and not some subloop).
22788         (propagate_constants_for_unrolling): Propagate all constants.
22790 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
22792         PR target/79804
22793         * config/i386/i386.c (print_reg): Remove assert for disalowed
22794         regno values, call output_operand_lossage instead.
22796 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
22798         PR target/78090
22799         * config/i386/constraints.md (Yc): New register constraint.
22800         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
22801         Use Yc constraint for alternative 2 of operand 0.  Remove
22802         preferred_for_speed attribute.
22804 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
22806         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
22807         lastprivate clauses in SIMT case.
22809 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
22811         * doc/invoke.texi (-Wextra-semi): Document new warning option.
22813 2017-04-20  Richard Biener  <rguenther@suse.de>
22815         PR tree-optimization/57796
22816         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
22817         as N scalar stores.
22818         (vect_model_load_cost): Cost gathers as N scalar loads.
22820 2017-04-20  Richard Biener  <rguenther@suse.de>
22822         * ggc-page.c (ggc_allocated_p): Rename to ...
22823         (safe_lookup_page_table_entry): ... this and return the lookup
22824         result.
22825         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
22827 2017-04-20  Richard Biener  <rguenther@suse.de>
22829         PR tree-optimization/80453
22830         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
22831         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
22832         from the conditions.
22833         (vn_phi_eq): Pass them down.
22834         (vn_phi_lookup): Record them.
22835         (vn_phi_insert): Likewise.
22837 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
22839         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
22840         uninitialized variable warning to avoid buffer overrun.
22842 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
22844         PR other/71250
22845         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
22846         is suppressed for '{ 0 }' in C.
22848 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
22850         * BASE-VER: Set to 8.0.0.
22852 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22854         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
22855         priority .init_array and .fini_array section with SECTION_NOTYPE
22856         flag.
22858 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
22860         PR middle-end/80423
22861         * tree.h (build_array_type): Add typeless_storage default argument.
22862         * tree.c (type_cache_hasher::equal): Also compare
22863         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
22864         (build_array_type): Add typeless_storage argument, set
22865         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
22866         recursive call.
22867         (build_nonshared_array_type): Adjust build_array_type_1 caller.
22868         (build_array_type): Likewise.  Add typeless_storage argument.
22870 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
22871             Jakub Jelinek  <jakub@redhat.com>
22873         PR tree-optimization/80426
22874         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
22875         operation on symbolic operands, also compute the overflow for the
22876         invariant part when the operation degenerates into a negation.
22878 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
22880         PR debug/80461
22881         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
22882         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
22884         PR debug/80436
22885         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
22887 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
22889         PR target/80462
22890         * config/avr/avr.c (tree.h): Include it.
22891         (cgraph.h): Include it.
22892         (avr_encode_section_info): Don't warn for uninitialized progmem
22893         variable if it's just an alias.
22895 2017-04-19  Richard Biener  <rguenther@suse.de>
22897         PR ipa/65972
22898         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
22899         when needed by AutoPGO.
22901 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
22903         PR lto/50345
22904         * doc/lto.texi: Remove an extra 'that'.
22906 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
22908         PR rtl-optimization/80429
22909         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
22910         are only used in debug insns.
22912 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
22913             Vladimir Makarov  <vmakarov@redhat.com>
22915         * config/sparc/predicates.md (input_operand): Add comment.  Return
22916         true for any memory operand when LRA is in progress.
22917         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
22919 2017-04-18  Jeff Law  <law@redhat.com>
22921         PR target/74563
22922         * mips.md ({return,simple_return}_internal): Do not overwrite
22923         operands[0].
22925 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
22927         PR tree-optimization/80443
22928         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
22929         instead of adding 1, subtract -1 and similarly instead of subtracting
22930         1 add -1.
22932 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
22934         PR rtl-optimization/80357
22935         * haifa-sched.c (tmp_bitmap): New variable.
22936         (model_recompute): Handle duplicate use records.
22937         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
22938         (free_global_sched_pressure_data): Free it.
22940 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22942         Revert:
22943         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22944         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
22945         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
22946         instead of SYSTEM_HEADER_DIR.
22948 2017-04-18  Jeff Law  <law@redhat.com>
22950         PR middle-end/80422
22951         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
22952         predecessors after walking up the insn chain.
22954 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
22956         PR debug/80263
22957         * dwarf2out.c (modified_type_die): Try harder not to emit internal
22958         sizetype type into debug info.
22960 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
22962         PR target/80099
22963         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
22964         unneeded test for TARGET_UPPER_REGS_SF.
22965         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
22967 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
22969         PR sanitizer/80444
22970         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
22971         instead of gsi_after_labels.
22973 2017-04-18  Jeff Law  <law@redhat.com>
22975         * regcprop.c (maybe_mode_change): Avoid creating copies of the
22976         stack pointer.
22978         Revert:
22979         2017-04-13  Jeff Law  <law@redhat.com>
22980         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
22981         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
22983 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
22985         PR target/79453
22986         * config/avr/avr.c (intl.h): Include it.
22987         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
22989 2017-04-18  Martin Liska  <mliska@suse.cz>
22991         PR gcov-profile/78783
22992         * gcov-tool.c (gcov_output_files): Validate that destination
22993         file is either removed by the tool or by a user.
22995 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
22996             Guy Benyei  <guybe@mellanox.com>
22998         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
22999         block, and do not negate it, the stored id is already negative.
23001 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
23003         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
23005 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
23007         PR target/80098
23008         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
23009         masks of options that should be turned off if the VSX vector
23010         options are turned off.
23011         (OTHER_P8_VECTOR_MASKS): Likewise.
23012         (OTHER_VSX_VECTOR_MASKS): Likewise.
23013         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
23014         rs6000_disable_incompatible_switches to validate no type switches
23015         like -mvsx.
23016         (rs6000_incompatible_switch): New function to disallow turning on
23017         other vector options if -mno-vsx, -mno-power8-vector, or
23018         -mno-power9-vector are specified.
23020 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
23022         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
23024 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
23026         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
23027         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
23028         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
23029         (ARG_POINTER_CFA_OFFSET): Likewise.
23031 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
23033         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
23034         conditions to take advantage of various optimizations.
23036 2017-04-13  Jeff Law  <law@redhat.com>
23038         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
23039         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
23040         (zero_extendsidi2_dext): Likewise.
23042 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
23044         PR sanitizer/80403
23045         * fold-const.c (fold_ternary_loc): Revert
23046         use op0 instead of fold_convert_loc (loc, type, arg0) part of
23047         2017-04-12 change.
23049 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
23051         PR rtl-optimization/80343
23052         * lra-remat.c (update_scratch_ops): Assign original hard reg to
23053         new scratch pseudo.
23055 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
23057         PR sanitizer/80414
23058         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
23059         to ubsan_encode_value.
23061 2017-04-13  Jeff Law  <law@redhat.com>
23063         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
23064         appearing in DEBUG_INSNs.
23066 2017-04-13  Martin Liska  <mliska@suse.cz>
23068         PR gcov-profile/80413
23069         * gcov-io.c (gcov_write_string): Copy to buffer just when
23070         allocated size is greater than zero.
23072 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
23074         PR debug/80321
23075         * dwarf2out.c (decls_for_scope): Ignore declarations of
23076         current_function_decl in BLOCK_NONLOCALIZED_VARS.
23078 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
23080         PR lto/69953
23081         * ipa-visibility.c (non_local_p): Fix typos.
23082         (localize_node): When localizing symbol in same comdat group,
23083         dissolve the group only when we know external symbols are going
23084         to be privatized.
23085         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
23087 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
23089         PR tree-optimization/79390
23090         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
23091         order does not result in usable sequence, retry with reversed operand
23092         order.
23094         PR sanitizer/80403
23095         PR sanitizer/80404
23096         PR sanitizer/80405
23097         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
23098         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
23099         op0 instead of fold_convert_loc (loc, type, arg0).
23101 2017-04-12  Jeff Law  <law@redhat.com>
23103         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
23104         has a delay slot in the generated code.
23106         * config/cris/cris.md (cris_preferred_reload_class): Return
23107         GENNONACR_REGS rather than GENERAL_REGS.
23109 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
23111         PR c/80163
23112         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
23113         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
23114         signedness of the result type.
23116 2017-04-12  Richard Biener  <rguenther@suse.de>
23117             Jeff Law  <law@redhat.com>
23119         PR tree-optimization/80359
23120         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
23121         trim stores to TARGET_MEM_REFs.
23123 2017-04-12  Richard Biener  <rguenther@suse.de>
23125         PR tree-optimization/79390
23126         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
23127         threading case even more.
23129 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
23131         PR target/80382
23132         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
23133         for quad_address_p for TImode, instead of just not indexed_address.
23135 2017-04-12  Richard Biener  <rguenther@suse.de>
23136             Bernd Edlinger  <bernd.edlinger@hotmail.de>
23138         PR middle-end/79671
23139         * alias.c (component_uses_parent_alias_set_from): Handle
23140         TYPE_TYPELESS_STORAGE.
23141         (get_alias_set): Likewise.
23142         * tree-core.h (tree_type_common): Add typeless_storage flag.
23143         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
23144         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
23145         for types containing members with TYPE_TYPELESS_STORAGE.
23146         (place_field): Likewise.
23147         (layout_type): Likewise for ARRAY_TYPE.
23148         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
23149         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
23150         TYPE_TYPELESS_STORAGE.
23151         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
23153 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
23155         PR sanitizer/80349
23156         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
23157         first argument to type.
23159 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23161         PR target/80376
23162         PR target/80315
23163         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
23164         CONST0_RTX (mode) rather than const0_rtx where appropriate.
23165         (rs6000_expand_binop_builtin): Likewise.
23166         (rs6000_expand_ternop_builtin): Likewise; also add missing
23167         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
23168         vshasigma built-ins.
23169         * doc/extend.texi: Document that vec_xxpermdi's third argument
23170         must be a constant.
23172 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
23174         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
23175         Use shift_const cost parameter when calculating gain of STV shifts.
23177 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
23179         PR rtl-optimization/70478
23180         * lra-constraints.c (process_alt_operands): Check memory for
23181         disfavoring memory insn operand.
23183 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
23185         PR middle-end/80100
23186         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
23187         left shift in unsigned HOST_WIDE_INT type.
23189         PR rtl-optimization/80385
23190         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
23191         (not (neg X)) into (plus X -1) for complex or non-integral modes.
23193         PR libgomp/80394
23194         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
23195         if they have any depend clauses.
23197 2017-04-11  Martin Liska  <mliska@suse.cz>
23199         PR ipa/80212
23200         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
23201         * ipa-split.c (split_function): Create a local comdat symbol
23202         if caller is in a comdat group.
23204 2017-04-11  Martin Liska  <mliska@suse.cz>
23206         PR ipa/80212
23207         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
23208         flags.
23210 2017-04-11  Martin Sebor  <msebor@redhat.com>
23212         PR middle-end/80364
23213         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
23214         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
23215         for INTEGER_TYPE.
23216         (directive::set_width, directive::set_precision, format_character):
23217         Adjust.
23218         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
23219         INTEGER_TYPE.
23221 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
23223         PR target/80389
23224         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
23225         conflict, set target->arch_name instead of target->cpu_name.
23227 2017-04-11  Richard Biener  <rguenther@suse.de>
23229         PR tree-optimization/80374
23230         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
23231         build_zero_cst, remove fold_convertible_p check again.
23233 2017-04-11  Martin Liska  <mliska@suse.cz>
23235         PR sanitizer/70878
23236         * ubsan.c (instrument_object_size): Do not instrument register
23237         variables.
23239 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
23241         PR target/80381
23242         * config/i386/i386-builtin-types.def
23243         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
23244         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
23245         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
23246         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
23247         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
23248         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
23249         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
23250         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
23251         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
23252         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
23253         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
23254         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
23255         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
23256         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
23257         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
23258         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
23259         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
23260         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
23261         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
23262         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
23263         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
23264         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
23265         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
23266         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
23267         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
23268         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
23269         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
23270         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
23271         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
23272         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
23273         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
23274         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
23275         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
23276         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
23277         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
23278         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
23279         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
23280         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
23281         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
23282         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
23283         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
23284         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
23285         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
23286         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
23287         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
23288         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
23289         aliases.
23290         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
23291         flag to second_arg_count, handle 4 argument function type _COUNT
23292         aliases, handle second_arg_count on second argument rather than last.
23294 2017-04-10  Jeff Law  <law@redhat.com>
23296         PR tree-optimization/80374
23297         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
23298         record anything if we can not convert integer_zero_node to the
23299         desired type.
23301 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23303         PR target/80108
23304         * config/rs6000/rs6000.c (rs6000_option_override_internal):
23305         Enhance special handling given to the TARGET_P9_MINMAX option in
23306         relation to certain other options.
23308 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
23310         PR tree-optimization/80153
23311         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
23312         remove POINTER_PLUS_EXPR's base part directly, rather than through
23313         aff_tree.
23315 2017-04-10  Richard Biener  <rguenther@suse.de>
23316             Bin Cheng  <bin.cheng@arm.com>
23318         PR tree-optimization/80153
23319         * tree-affine.c (aff_combination_to_tree): Get base pointer from
23320         the first element of pointer type aff_tree.  Build result expr in
23321         aff_tree's type.
23322         (add_elt_to_tree): Convert to type unconditionally.  Remove other
23323         fold_convert calls.
23324         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
23325         (rewrite_use_nonlinear_expr): Check invariant using iv information.
23327 2017-04-10  Richard Biener  <rguenther@suse.de>
23329         * tree-ssa-structalias.c (find_func_aliases): Properly handle
23330         asm inputs.
23332 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
23334         PR rtl-optimization/70478
23335         * lra-constraints.c (curr_small_class_check): New.
23336         (update_and_check_small_class_inputs): New.
23337         (process_alt_operands): Update curr_small_class_check.  Disfavor
23338         alternative insn memory operands.  Check available regs for small
23339         class operands.
23341 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
23343         PR target/80057
23344         * config/mips/mips.opt (-mvirt): Update description.
23345         * doc/invoke.texi (-mvirt): Likewise.
23347 2017-04-10  Richard Biener  <rguenther@suse.de>
23349         PR middle-end/80362
23350         * fold-const.c (fold_binary_loc): Look at unstripped ops when
23351         looking for NEGATE_EXPR in -A / -B to A / B folding.
23353 2017-04-10  Martin Liska  <mliska@suse.cz>
23355         PR gcov-profile/80224
23356         * gcov.c (print_usage): Fix usage string.
23357         (get_gcov_intermediate_filename): Remove.
23358         (output_gcov_file): Use both for normal and intermediate format.
23359         (generate_results): Do not initialize special file for
23360         intermediate format.
23362 2017-04-10  Richard Biener  <rguenther@suse.de>
23364         PR tree-optimization/80304
23365         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
23366         for safelen.
23368 2017-04-10  Nathan Sidwell  <nathan@acm.org>
23370         PR target/79905
23371         * config/rs6000/rs6000.c (rs6000_vector_type): New.
23372         (rs6000_init_builtins): Use it.
23374 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23376         * config/arm/arm.md (<mrc>): Add mode to SET source.
23377         (<mrrc>): Likewise.
23379 2017-04-10  Richard Biener  <rguenther@suse.de>
23381         PR middle-end/80344
23382         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
23384 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
23386         PR target/80324
23387         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
23388         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
23389         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
23390         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
23391         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
23392         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
23393         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
23394         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
23395         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
23396         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
23397         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
23398         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
23399         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
23400         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
23401         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
23402         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
23403         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
23404         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
23405         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
23406         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
23407         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
23408         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
23409         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
23411 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
23413         PR rtl-optimization/70478
23414         * lra-constraints.c: Reverse the last patch.
23416 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
23418         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
23419         Add comment for WCHAR_T.
23421 2017-04-08  Martin Liska  <mliska@suse.cz>
23423         Revert:
23424         2017-04-07  Martin Liska  <mliska@suse.cz>
23426         PR ipa/80212
23427         * ipa-split.c (split_function): Add function part to a same comdat
23428         group.
23430 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
23432         PR target/80358
23433         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
23435 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
23437         * rs6000/rs6000.c (vec_load_pendulum): Rename...
23438         (vec_pairing): ...to this.
23439         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
23440         (rs6000_sched_init): Adjust for name change.
23441         (struct rs6000_sched_context): Likewise.
23442         (rs6000_init_sched_context): Likewise.
23443         (rs6000_set_sched_context): Likewise.
23445 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
23447         PR target/80322
23448         PR target/80323
23449         PR target/80325
23450         PR target/80326
23451         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
23452         intrinsics.
23453         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
23454         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
23455         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
23457 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
23459         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
23461 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
23463         PR rtl-optimization/70703
23464         * ira-color.c (update_conflict_hard_regno_costs): Use
23465         int64_t instead of HOST_WIDE_INT.
23467 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
23469         PR rtl-optimization/70478
23470         * lra-constraints.c (process_alt_operands): Disfavor alternative
23471         insn memory operands.
23473 2017-04-07  Jeff Law  <law@redhat.com>
23475         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
23476         CALL and NOTE_INSN_CALL_ARG_LOCATION.
23478 2017-04-07  Martin Liska  <mliska@suse.cz>
23480         PR target/79889
23481         * config/aarch64/aarch64.c (aarch64_process_target_attr):
23482         Show error message instead of an ICE.
23484 2017-04-07  Martin Liska  <mliska@suse.cz>
23486         PR ipa/80212
23487         * ipa-split.c (split_function): Add function part to a same comdat
23488         group.
23490 2017-04-07  Richard Biener  <rguenther@suse.de>
23492         PR middle-end/80341
23493         * tree.c (get_unwidened): Also handle ! for_type case for
23494         INTEGER_CSTs.
23495         * convert.c (do_narrow): Split out from ...
23496         (convert_to_integer_1): ... here.  Do not pass final truncation
23497         type to get_unwidened for TRUNC_DIV_EXPR.
23499 2017-04-07  Richard Biener  <rguenther@suse.de>
23501         * tree-affine.c (wide_int_ext_for_comb): Take type rather
23502         than aff_tree.
23503         (aff_combination_const): Adjust.
23504         (aff_combination_scale): Likewise.
23505         (aff_combination_add_elt): Likewise.
23506         (aff_combination_add_cst): Likewise.
23507         (aff_combination_convert): Likewise.
23508         (add_elt_to_tree): Likewise.  Remove unused argument.
23509         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
23511 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
23513         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
23514         definition.
23515         * config/arm/arm.c (arm_default_short_enums): Use
23516         ARM_DEFAULT_SHORT_ENUMS.
23517         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
23519 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
23521         PR debug/80234
23522         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
23523         members with redundant out-of-class redeclaration.
23525 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
23527         PR target/80286
23528         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
23529         * config/i386/i386.md (*zero_extendsidi2):
23530         Add (?*x,*x) and (?*v,*v) alternatives.
23532 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
23534         PR target/79733
23535         * config/i386/i386.c (ix86_expand_builtin)
23536         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
23537         mode from insn data. Convert operands to insn operand mode.
23538         Copy operands that don't satisfy insn predicate to a register.
23540 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
23542         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
23543         Update comments.
23545 2017-04-06  Richard Biener  <rguenther@suse.de>
23547         PR tree-optimization/80334
23548         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
23549         preserve alignment of accesses.
23551 2017-04-06  Richard Biener  <rguenther@suse.de>
23553         PR tree-optimization/80262
23554         * tree-sra.c (build_ref_for_offset): Preserve address-space
23555         information.
23556         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
23557         Drop useless address-space information on MEM_REF offsets.
23559 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
23561         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
23563 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
23565         PR rtl-optimization/70703
23566         * ira-color.c (update_conflict_hard_regno_costs): Use
23567         HOST_WIDE_INT instead of long.
23569 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
23571         PR target/80298
23572         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
23573         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
23574         is not defined.
23575         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
23576         for x86_64 target.  Handle -m3dnowa option.
23578 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
23580         PR rtl-optimization/70703
23581         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
23582         (update_conflict_hard_regno_costs): Use long instead of unsigned
23583         arithmetic for cost calculation.
23585 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
23586             Bernd Edlinger  <bernd.edlinger@hotmail.de>
23588         PR sanitizer/80308
23589         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
23590         for big endian.
23592 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
23594         PR target/78002
23595         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
23596         ptr_mode with Pmode throughout.
23597         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
23598         into probe_stack_range and use DImode.
23600 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
23602         PR target/79890
23603         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
23604         call_eh_return is true.
23606 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23608         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
23609         Initialize last_match_fntype_index.
23611 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
23613         PR target/80310
23614         * tree-nvr.c: Include internal-fn.h.
23615         (pass_return_slot::execute): Ignore internal calls without
23616         direct optab.
23618 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
23619             Richard Biener  <rguenther@suse.de>
23621         PR c++/80297
23622         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
23623         captures used multiple times, except for the last use.
23624         * generic-match-head.c: Include gimplify.h.
23626 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
23628         PR tree-optimization/79390
23629         * target.h (struct noce_if_info): Declare.
23630         * targhooks.h (default_noce_conversion_profitable_p): Declare.
23631         * target.def (noce_conversion_profitable_p): New target hook.
23632         * ifcvt.h (struct noce_if_info): New type, moved from ...
23633         * ifcvt.c (struct noce_if_info): ... here.
23634         (noce_conversion_profitable_p): Renamed to ...
23635         (default_noce_conversion_profitable_p): ... this.  No longer
23636         static nor inline.
23637         (noce_try_store_flag_constants, noce_try_addcc,
23638         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
23639         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
23640         instead of noce_conversion_profitable_p.
23641         * config/i386/i386.c: Include ifcvt.h.
23642         (ix86_option_override_internal): Don't override
23643         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
23644         (ix86_noce_conversion_profitable_p): New function.
23645         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
23646         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
23647         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
23648         * doc/tm.texi: Regenerated.
23650 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23652         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
23653         correction.
23655 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23657         PR target/80307
23658         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
23659         instructions for small multiply cores.
23661 2017-04-04  Jeff Law  <law@redhat.com>
23663         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
23664         added member.
23665         (mips_expand_vec_perm_const): Initialize elements in orig_perm
23666         that are not set by the loop over the elements.
23668 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
23670         PR target/80286
23671         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
23672         int mode, convert_modes it to mode as unsigned, otherwise use
23673         lowpart_subreg to mode rather than SImode.
23674         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
23675         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
23676         Use DImode instead of SImode for the shift count operand.
23677         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
23678         Likewise.
23680 2017-04-04  Richard Biener  <rguenther@suse.de>
23682         PR middle-end/80281
23683         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
23684         arithmetic done for the negate or the plus.  Simplify.
23685         (A - (-B) -> A + B): Likewise.
23686         * fold-const.c (split_tree): Make sure to not negate pointers.
23688 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
23690         PR rtl-optimization/60818
23691         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
23692         a compare of comparisons with the thing compared if this results
23693         in a different machine mode.
23695 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
23697         * alias.c (base_alias_check): Fix typo in comment.
23698         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
23699         * cgraphunit.c (symbol_table::compile): Likewise.
23700         * collect2.c (maybe_run_lto_and_relink): Likewise.
23701         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
23702         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
23703         * config/avr/avr.c (avr_map_op_t): Likewise.
23704         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
23705         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
23706         * config/epiphany/epiphany.md (movcc): Likewise.
23707         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
23708         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
23709         Likewise.
23710         * config/mips/mips.c (mips_save_restore_reg): Likewise.
23711         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
23712         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
23713         * config/sh/sh.c (sh_rtx_costs): Likewise.
23714         * fold-const.c (fold_truth_andor): Likewise.
23715         * genautomata.c (collapse_flag): Likewise.
23716         * gengtype.h (struct type::u::s): Likewise.
23717         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
23718         * input.c (FORMAT_AMOUNT): Likewise.
23719         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
23720         (known_aggs_to_agg_replacement_list): Likewise.
23721         * ipa-inline-analysis.c: Likewise.
23722         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
23723         * ipa-polymorphic-call.c
23724         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
23725         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
23726         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
23727         Likewise.
23728         * modulo-sched.c (apply_reg_moves): Likewise.
23729         * omp-expand.c (build_omp_regions_1): Likewise.
23730         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
23731         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
23732         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
23733         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
23734         * value-prof.c: Likewise.
23735         * var-tracking.c (val_reset): Likewise.
23737 2017-04-03  Richard Biener  <rguenther@suse.de>
23739         PR tree-optimization/80275
23740         * fold-const.c (split_address_to_core_and_offset): Handle
23741         POINTER_PLUS_EXPR.
23743 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
23745         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
23746         descriptors is at least equal to that of functions.
23748 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
23750         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
23752 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
23754         PR target/80250
23755         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
23756         (mov<IMOD4:mode>): New expander.
23757         (*mov<IMOD4:mode>_internal): New insn and split pattern.
23759 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
23761         PR rtl-optimization/79405
23762         * fwprop.c (propagations_left): New variable.
23763         (forward_propagate_into): Decrement it.
23764         (fwprop_init): Initialize it.
23765         (fw_prop): If the variable has reached zero, stop propagating.
23766         (fwprop_addr): Ditto.
23768 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
23770         PR debug/79255
23771         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
23772         a FUNCTION_DECL, pass it as decl instead of origin to
23773         process_scope_var.
23775 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
23777         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
23778         string.
23780 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
23782         PR target/80107
23783         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
23784         TARGET_VSX_SMALL_INTEGER.
23786 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23788         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
23789         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
23791 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
23793         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
23794         extraction from odd-numbered MSA register.
23796 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
23798         PR middle-end/80173
23799         * expmed.c (store_bit_field_1): Don't attempt to create
23800         a word subreg out of hard registers wider than word if they
23801         have HARD_REGNO_NREGS of 1 for their mode.
23803         PR middle-end/80163
23804         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
23805         conversions to integer types wider than word and pointer.
23807         PR debug/80025
23808         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
23809         (rtx_equal_for_cselib_p): Pass 0 to it.
23810         * cselib.c (cselib_hasher::equal): Likewise.
23811         (rtx_equal_for_cselib_1): Add depth argument.  If depth
23812         is 128, don't look up VALUE locs and punt.  Increment
23813         depth in recursive calls when walking VALUE locs.
23815 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23817         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
23818         (make_gcov_file_name): Use the canonical path name for generating
23819         the MD5 value.
23820         (read_line): Fix handling of files with ascii null bytes.
23822 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
23824         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
23825         to initialise a vector register instead
23826         of using a const_int.
23828 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
23830         PR translation/80189
23831         * gimplify.c (omp_default_clause): Use %qs instead of %s in
23832         diagnostic messages.
23834 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
23836         PR target/80246
23837         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
23838         (dfp_diex_<mode>): Update mode of operand 1.
23839         * doc/extend.texi (dxex, dxexq): Document change to return type.
23840         (diex, diexq): Document change to argument type.
23842 2017-03-30  Martin Jambor  <mjambor@suse.cz>
23844         PR ipa/77333
23845         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
23846         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
23847         it reflects the signature changes performed at the callee side.
23848         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
23849         to cgraph_build_function_type_skip_args.
23850         (build_function_decl_skip_args): Adjust call to the above function.
23852 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
23854         PR target/80206
23855         * config/i386/sse.md
23856         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
23857         register as dest whenever it is a MEM not rtx_equal_p to the
23858         corresponding dup operand, and when forcing into reg move the
23859         reg into the memory afterwards.
23860         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
23861         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
23862         for the force_reg mode.
23863         (avx512vl_vextractf128<mode>): Use register as dest either
23864         always when a MEM, or when it is a MEM not rtx_equal_p to the
23865         corresponding dup operand, or even not when it is a CONST_VECTOR
23866         depending on the mode and lo vs. hi.
23867         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
23868         parens.
23869         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
23870         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
23871         Likewise.  Require that operands[2] is even.
23872         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
23873         Remove extraneous parens.  Require that operands[2] is a multiple
23874         of 4.
23875         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
23876         operands[0] is a MEM if <mask_applied>, the predicates/constraints
23877         disallow memory then.
23879 2017-03-30  Richard Biener  <rguenther@suse.de>
23881         PR tree-optimization/77498
23882         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
23883         to non-constants over backedges.
23885 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
23887         PR rtl-optimization/80233
23888         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
23889         as last_combined_insn.  Do not test for BARRIER_P separately.
23891 2017-03-29  Andreas Schwab  <schwab@suse.de>
23893         PR ada/80146
23894         * calls.c (prepare_call_address): Convert funexp to Pmode before
23895         copying to temp reg.
23897 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23899         PR tree-optimization/80158
23900         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
23901         Handle possible future case of more than one alternate
23902         interpretation.
23903         (replace_rhs_if_not_dup): Likewise.
23904         (replace_one_candidate): Likewise.
23906 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
23908         PR rtl-optimization/80193
23909         * ira.c (ira): Do not check allocation for LRA.
23911 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
23913         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
23914         (nvptx_output_simt_exit): Declare.
23915         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
23916         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
23917         (init_softstack_frame): Move initialization of crtl->is_leaf to...
23918         (nvptx_declare_function_name): ...here.  Emit declaration of local
23919         memory space buffer for omp_simt_enter insn.
23920         (nvptx_output_unisimt_switch): New.
23921         (nvptx_output_softstack_switch): New.
23922         (nvptx_output_simt_enter): New.
23923         (nvptx_output_simt_exit): New.
23924         * config/nvptx/nvptx.h (struct machine_function): New fields
23925         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
23926         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
23927         (UNSPECV_SIMT_EXIT): Ditto.
23928         (omp_simt_enter_insn): New insn.
23929         (omp_simt_enter): New expansion.
23930         (omp_simt_exit): New insn.
23931         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
23933         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
23934         (expand_GOMP_SIMT_ENTER_ALLOC): New.
23935         (expand_GOMP_SIMT_EXIT): New.
23936         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
23937         (GOMP_SIMT_ENTER_ALLOC): Ditto.
23938         (GOMP_SIMT_EXIT): Ditto.
23939         * target-insns.def (omp_simt_enter): New insn.
23940         (omp_simt_exit): Ditto.
23941         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
23942         simt_dlist.
23943         (lower_rec_simd_input_clauses): Implement SIMT privatization.
23944         (lower_rec_input_clauses): Likewise.
23945         (lower_lastprivate_clauses): Handle SIMT privatization.
23947         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
23948         (ompdevlow_adjust_simt_enter): New.
23949         (find_simtpriv_var_op): New.
23950         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
23951         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
23953         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
23954         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
23955         (copy_decl_for_dup_finish): Ditto.
23957         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
23959 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
23961         PR target/53383
23962         * config/i386/i386.c (ix86_option_override_internal): Always
23963         allow -mpreferred-stack-boundary=3 for 64-bit targets.
23965 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
23967         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
23969 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
23971         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
23972         mark new edge's irreducible flag accordign to it.
23973         (vect_do_peeling): Check loop preheader edge's irreducible flag
23974         and pass it to function slpeel_add_loop_guard.
23976 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
23978         PR tree-optimization/80218
23979         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
23980         Update block frequencies and counts.
23982 2017-03-28  Richard Biener  <rguenther@suse.de>
23984         PR tree-optimization/78644
23985         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
23986         of a simplification result we may not use it at all.
23988 2017-03-28  Richard Biener  <rguenther@suse.de>
23990         PR ipa/80205
23991         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
23992         without arguments, generate default definition of a SSA name.
23994 2017-03-28  Richard Biener  <rguenther@suse.de>
23996         PR middle-end/80222
23997         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
23998         TYPE_REF_CAN_ALIAS_ALL references.
23999         * fold-const.c (fold_indirect_ref_1): Likewise.
24001 2017-03-28  Martin Liska  <mliska@suse.cz>
24003         PR ipa/80104
24004         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
24005         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
24007 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
24008             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
24010         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
24011         (EXTRA_SPECS): Define.
24012         (SUBTARGET_EXTRA_SPECS): Likewise.
24013         (SUBTARGET_CPP_SPEC): Likewise.
24014         * config/arc/elf.h (EXTRA_SPECS): Renamed to
24015         SUBTARGET_EXTRA_SPECS.
24016         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
24018 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
24020         * config/arc/simdext.md (vst64_insn): Update pattern.
24021         (vld32wh_insn): Likewise.
24022         (vld32wl_insn): Likewise.
24023         (vld64_insn): Likewise.
24024         (vld32_insn): Likewise.
24026 2017-03-28  Marek Polacek  <polacek@redhat.com>
24028         PR sanitizer/80067
24029         * fold-const.c (fold_comparison): Use protected_set_expr_location
24030         instead of SET_EXPR_LOCATION.
24032 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
24034         * tree.c (add_expr): Avoid name lookup warning.
24036 2017-03-27  Jeff Law  <law@redhat.com>
24038         PR tree-optimization/80216
24039         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
24040         function name.  Limit recursion depth.
24041         (record_temporary_equivalences): Corresponding changes.
24043 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
24045         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
24046         covered first.
24048 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
24050         PR target/80102
24051         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
24052         notes.
24053         * cfgcleanup.c (reg_note_cfa_p): New array.
24054         (insns_have_identical_cfa_notes): New function.
24055         (old_insns_match_p): Don't cross-jump in between /f
24056         and non-/f instructions.  If both i1 and i2 are frame related,
24057         verify all CFA notes, their order and content.
24059 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
24061         PR target/78543
24062         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
24063         HImode and SImode with zero extend to DImode to one insn.
24064         (bswap<mode>2_extenddi): Likewise.
24065         (bswapsi2_extenddi): Likewise.
24066         (bswaphi2_extendsi): Likewise.
24067         (bswaphi2): Combine bswap HImode and SImode into one insn.
24068         Separate memory insns from swapping register.
24069         (bswapsi2): Likewise.
24070         (bswap<mode>2): Likewise.
24071         (bswaphi2_internal): Delete, no longer used.
24072         (bswapsi2_internal): Likewise.
24073         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
24074         store, and gpr<-gpr swap insns.
24075         (bswap<mode>2_store): Likewise.
24076         (bswaphi2_reg): Register only splitter, combine with the splitter.
24077         (bswaphi2 splitter): Likewise.
24078         (bswapsi2_reg): Likewise.
24079         (bswapsi2 splitter): Likewise.
24080         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
24081         the insns into load, store, and register/register insns.
24082         (bswapdi2_ldbrx): Likewise.
24083         (bswapdi2_load): Likewise.
24084         (bswapdi2_store): Likewise.
24085         (bswapdi2_reg): Likewise.
24087 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
24089         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
24090         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
24092 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24094         PR target/80103
24095         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
24096         add comments.
24097         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
24098         special handling for target option conflicts between dform
24099         options (-mpower9-dform, -mpower9-dform-vector,
24100         -mpower9-dform-scalar) and -mno-direct-move.
24102 2017-03-27  Richard Biener  <rguenther@suse.de>
24104         PR tree-optimization/80181
24105         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
24107 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
24109         * config/arc/predicates.md (move_double_src_operand): Replace the
24110         call to move_double_src_operand with a call to address_operand.
24112 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
24114         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
24115         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
24116         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
24118 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
24120         * config/arc/predicates.md (long_immediate_loadstore_operand):
24121         Consider scaled addresses cases.
24123 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
24125         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
24126         restored when in interrupt.
24127         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
24128         doesn't have delay slot.
24130 2017-03-27  Richard Biener  <rguenther@suse.de>
24132         PR ipa/79776
24133         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
24134         inlined thunk clones.
24136 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
24138         PR sanitizer/80168
24139         * asan.c (instrument_derefs): Copy over last operand from
24140         original COMPONENT_REF to the new COMPONENT_REF with
24141         DECL_BIT_FIELD_REPRESENTATIVE.
24142         * ubsan.c (instrument_object_size): Likewise.
24144 2017-03-27  Richard Biener  <rguenther@suse.de>
24146         PR tree-optimization/80170
24147         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
24148         sure DR/SCEV didnt fold in constants we do not see when looking
24149         at the reference base alignment.
24151 2017-03-27  Richard Biener  <rguenther@suse.de>
24153         PR middle-end/80171
24154         * gimple-fold.c (fold_ctor_reference): Properly guard against
24155         NULL return value from canonicalize_constructor_val.
24157 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
24159         PR target/80180
24160         * config/i386/i386.c (ix86_expand_builtin)
24161         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
24162         flags reg setting and flags reg using instructions.
24163         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
24164         clobbering instructions to zero extend op2.
24166 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
24168         * doc/install.texi (Configuration) <--with-aix-soname>:
24169         Update link to AIX ld.
24171 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
24173         PR rtl-optimization/80160
24174         PR rtl-optimization/80159
24175         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
24176         reg_alternate_class into account.
24178 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
24180         PR target/80148
24181         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
24182         to consider in curr_insn_transform.
24184 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
24186         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
24187         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
24188         and emit_mode_inner.
24190 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24192         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
24193         argument to the overloaded builtin variants.  Use the new flag to
24194         deprecate certain builtin variants.
24195         * config/s390/s390-builtin-types.def: Add new builtin types.
24196         * config/s390/s390-builtins.h: Support new flags field for
24197         overloaded builtins.
24198         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
24199         (s390_macro_to_expand): Enable vector float data type.
24200         (s390_cpu_cpp_builtins_internal): Indicate support of the new
24201         builtins by incrementing the __VEC__ version number.
24202         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
24203         vec_xst.
24204         (s390_resolve_overloaded_builtin): Emit error messages depending
24205         on the builtin flags.
24206         * config/s390/s390.c (s390_expand_builtin): Support additional
24207         flags argument.  Change error message to match the messages
24208         emitted in s390-c.c.
24209         * config/s390/s390.md: New UNSPEC_* constants.
24210         (op_type): Add new instruction types.
24211         * config/s390/vecintrin.h: Add new builtins and test data class
24212         constants.
24213         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
24214         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
24215         (VEC_INEXACT, VEC_NOINEXACT): New constants.
24216         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
24217         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
24218         ("vec_mergel<mode>"): V_HW -> VEC_HW.
24220         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
24221         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
24222         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
24223         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
24225         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
24226         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
24227         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
24228         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
24230         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
24231         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
24232         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
24233         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
24234         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
24235         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
24236         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
24238         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
24239         ("vec_scatter_element<V_HW_4:mode>_DI")
24240         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
24241         ("vec_fpint<mode>", "vflls")
24242         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
24243         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
24244         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
24245         ("*vec_cmphe<mode>_cc"): ... these.
24247         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
24248         mode constant instead of magic value.
24250 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24252         * config/s390/s390.c (s390_expand_vec_compare): Support other
24253         vector floating point modes than just V2DF.
24254         (s390_expand_vcond): Likewise.
24255         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
24256         (s390_cannot_change_mode_class): Prevent mode changes between TF
24257         and V1TF in vector registers.
24258         * config/s390/s390.md (DF, SF): New mode attributes.
24259         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
24260         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
24261         SFmode support for VRs.
24262         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
24263         vector fp modes.
24264         (VFT, VF_HW): New mode iterators.
24265         (vw, sdx): New mode attributes.
24266         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
24267         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
24268         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
24269         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
24270         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
24271         also the new vector floating point modes.  Renaming to ...
24273         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
24274         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
24275         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
24276         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
24277         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
24278         ("vec_unordered<mode>"): ... these.
24280         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
24281         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
24282         ("*vec_extendv2df"): New insn definitions.
24284 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24286         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
24287         ("mulditi3_2", "*muldi3_sign"): New patterns.
24288         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
24289         rename the pattern definition.
24291 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24293         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
24294         expander.
24295         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
24297 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24299         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
24300         instruction if possible.
24301         * config/s390/vector.md (vec_halfnumelts): New mode
24302         attribute.
24303         ("*vec_vllezlf<mode>"): New pattern.
24305 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24307         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
24308         ("popcountv4si2", "popcountv2di2"): Rename to ...
24309         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
24310         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
24311         condition.
24312         ("popcount<mode>2_vxe"): New pattern.
24314 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24316         * common/config/s390/s390-common.c (processor_flags_table): Add
24317         arch12.
24318         * config.gcc: Add arch12.
24319         * config/s390/driver-native.c (s390_host_detect_local_cpu):
24320         Default to arch12 for unknown CPU model numbers.
24321         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
24322         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
24323         PROCESSOR_max sanity check.
24324         * config/s390/s390-opts.h (enum processor_type): Add
24325         PROCESSOR_ARCH12.
24326         * config/s390/s390.c (processor_table): Add arch12.
24327         (s390_expand_builtin): Add check for B_VXE flag.
24328         (s390_issue_rate): Add PROCESSOR_ARCH12.
24329         (s390_get_sched_attrmask): Likewise.
24330         (s390_get_unit_mask): Likewise.
24331         (s390_sched_score): Enable z13 scheduling for arch12.
24332         (s390_sched_reorder): Likewise.
24333         (s390_sched_variable_issue): Likewise.
24334         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
24335         PF_VXE.
24336         (s390_tune_attr): Use z13 scheduling also for arch12.
24337         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
24338         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
24339         (TARGET_VXE_P): New macros.
24340         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
24341         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
24342         * config/s390/s390.opt: Add arch12 as processor_type.
24344 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24346         * config/s390/s390.md
24347         ("fixuns_truncdddi2", "fixuns_trunctddi2")
24348         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
24349         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
24351         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
24352         Rename expanders to ...
24354         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
24355         ("fixuns_truncdddi2_emu"): ... these.
24357         ("fixuns_trunc<mode>si2_emu"): New expander.
24359         ("*fixuns_truncdfdi2_z13"): Rename to ...
24360         ("*fixuns_truncdfdi2_vx"): ... this.
24362 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24364         * config/s390/2964.md: Remove the single element vector compare
24365         instructions which are no longer used.
24366         * config/s390/s390.c (s390_select_ccmode): Remove handling of
24367         vector CCmodes.
24368         (s390_canonicalize_comparison): Remove handling of DFmode
24369         compares.
24370         (s390_expand_vec_compare_scalar): Remove function.
24371         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
24372         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
24373         pattern.
24374         ("*cmp<mode>_ccs"): Add wfcdb instruction.
24376 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24378         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
24379         FP zero.
24380         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
24381         will anyway by matched by mov<mode>_64dfp.
24383 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24385         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
24386         vlef/vstef.  Add missing operand to vleif.
24388 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24390         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
24391         pair for all vector types with 64 bit elements.
24392         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
24393         * config/s390/vector.md (V_HW_64): ... here.
24394         (V_128_NOSINGLE): New mode iterator.
24395         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
24396         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
24397         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
24398         ("*vec_load_pairv2di"): Change to ...
24399         ("*vec_load_pair<mode>"): ... this one.
24401 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24403         * config/s390/constraints.md: Add comments.
24404         (jKK): Reject element sizes > 8 bytes.
24405         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
24406         s_operands.
24407         * config/s390/s390.md: Add the s_operand checks formerly in
24408         s390_split_ok_p to various splitters where they are still
24409         required.
24410         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
24411         for 128 bit vectors.  Plus two splitters.
24413 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24415         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
24416         the file.
24418 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24420         PR target/79893
24421         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
24422         error if the boundary argument is not constant.
24424 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
24426         PR rtl-optimization/80112
24427         * loop-doloop.c (doloop_condition_get): Don't check condition
24428         if cmp isn't SET with IF_THEN_ELSE src.
24430 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24432         PR tree-optimization/80158
24433         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
24434         replacing a candidate statement, also replace it for the
24435         candidate's alternate interpretation.
24436         (replace_rhs_if_not_dup): Likewise.
24437         (replace_one_candidate): Likewise.
24439 2017-03-24  Richard Biener  <rguenther@suse.de>
24441         PR tree-optimization/80167
24442         * graphite-isl-ast-to-gimple.c
24443         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
24444         properly.
24445         (translate_isl_ast_to_gimple::get_rename): Likewise.
24447 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24449         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
24450         handling of certain combinations of target options, including the
24451         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
24452         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
24454 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24456         PR target/71436
24457         * config/arm/arm.md (*load_multiple): Add reload_completed to
24458         matching condition.
24460 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24461             Richard Biener  <rguenth@suse.de>
24463         PR tree-optimization/79908
24464         PR tree-optimization/80136
24465         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
24466         been cast away, gimplify_and_add suffices.
24468 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
24470         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
24472 2017-03-23  Richard Biener  <rguenther@suse.de>
24474         PR tree-optimization/80032
24475         * gimplify.c (gimple_push_cleanup): Forced unconditional
24476         cleanups still have to go to the conditional_cleanups
24477         sequence.
24479 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
24481         PR tree-optimization/80072
24482         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
24483         to unsigned int.
24484         (next_operand_entry_id): Change type to unsigned int.
24485         (sort_by_operand_rank): Make sure to return the right return value
24486         even if unsigned fields are bigger than INT_MAX.
24487         (struct oecount): Change cnt and id type to unsigned int.
24488         (oecount_hasher::equal): Formatting fix.
24489         (oecount_cmp): Make sure to return the right return value
24490         even if unsigned fields are bigger than INT_MAX.
24491         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
24493         PR c++/80129
24494         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
24495         TREE_READONLY on result if writing it more than once.
24497         PR sanitizer/80110
24498         * doc/invoke.texi (-fsanitize=thread): Document that with
24499         -fnon-call-exceptions atomics are not able to throw
24500         exceptions.
24502         PR sanitizer/80110
24503         * tsan.c: Include tree-eh.h.
24504         (instrument_builtin_call): Call maybe_clean_eh_stmt or
24505         maybe_clean_or_replace_eh_stmt where needed.
24506         (instrument_memory_accesses): Add cfg_changed argument.
24507         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
24508         if it returned true.
24509         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
24511         PR rtl-optimization/63191
24512         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
24513         wrapper function, moved the whole old content into ...
24514         (ix86_delegitimize_address_1): ... this.  New inline function.
24515         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
24516         true as last argument instead of ix86_delegitimize_address.
24518 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
24520         * config/aarch64/aarch64.c (generic_branch_cost): Copy
24521         cortexa57_branch_cost.
24523 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
24525         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
24527 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
24529         PR target/80123
24530         * doc/md.texi (Constraints): Document wA constraint.
24531         * config/rs6000/constraints.md (wA): New.
24532         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
24533         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
24534         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
24535         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
24537 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
24539         PR c++/80029
24540         * gimplify.c (is_oacc_declared): New function.
24541         (oacc_default_clause): Use it to set default flags for acc declared
24542         variables inside parallel regions.
24543         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
24544         declared variables.
24545         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
24546         declare attribute to any decl as necessary.
24548 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24550         PR target/80082
24551         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
24552         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
24553         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
24554         (arm_arch_lpae): This.
24555         * config/arm/arm.c (arm_arch7ve): Rename into ...
24556         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
24557         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
24558         arm_arch_lpae.
24560 2017-03-22  Martin Liska  <mliska@suse.cz>
24562         PR target/79906
24563         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
24564         error message instead of an ICE.
24566 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24568         * doc/extend.texi (6.11 Additional Floating Types): Revise.
24570 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24572         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
24573         comments.
24574         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
24575         comments.
24577 2017-03-21  Martin Sebor  <msebor@redhat.com>
24579         * doc/extend.texi: Use "cannot" instead of "can't."
24580         * doc/hostconfig.texi: Same.
24581         * doc/install.texi: Same.
24582         * doc/invoke.texi: Same.
24583         * doc/loop.texi: Same.
24584         * doc/md.texi: Same.
24585         * doc/objc.texi: Same.
24586         * doc/rtl.texi: Same.
24587         * doc/tm.texi: Same.
24588         * doc/tm.texi.in: Same.
24589         * doc/trouble.texi: Same.
24591 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
24593         PR debug/63238
24594         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
24595         (collect_checksum_attributes): Set it.
24596         (die_checksum_ordered): Use it.
24598 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24600         PR tree-optimization/79908
24601         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
24602         change: For a VA_ARG whose LHS has been cast away, use
24603         force_gimple_operand to construct the side effects.
24605 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
24607         PR translation/80001
24608         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
24609         more amenable to translation.
24610         (oacc_loop_auto_partitions): Likewise.
24612 2017-03-21  Marek Polacek  <polacek@redhat.com>
24613             Martin Sebor  <msebor@redhat.com>
24615         PR tree-optimization/80109
24616         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
24617         on INTEGRAL_TYPE_P.
24619 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
24620             Segher Boessenkool  <segher@kernel.crashing.org>
24622         PR target/80125
24623         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
24624         check reg_used_between_p between insn and one of succ or succ2
24625         depending on if succ is artificial insn not inserted into insn
24626         stream.
24628 2017-03-21  Martin Liska  <mliska@suse.cz>
24630         PR gcov-profile/80081
24631         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
24632         * doc/gcc.texi: Include gcov-dump stuff.
24633         * doc/gcov-dump.texi: New file.
24635 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
24637         PR rtl-optimization/79150
24638         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
24639         conditional jump, if the jump is the last insn of the loop.
24641 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24642             Richard Biener  <rguenth@suse.de>
24644         PR tree-optimization/79908
24645         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
24646         been cast away, use force_gimple_operand to construct the side
24647         effects.
24649 2017-03-21  Martin Liska  <mliska@suse.cz>
24651         PR libfortran/79956
24652         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
24653         to NULL.
24655 2017-03-21  Brad Spengler <spender@grsecurity.net>
24657         PR plugins/80094
24658         * plugin.c (htab_hash_plugin): New function.
24659         (add_new_plugin): Use it and adjust.
24660         (parse_plugin_arg_opt): Adjust.
24661         (init_one_plugin): Likewise.
24663 2017-03-21  Richard Biener  <rguenther@suse.de>
24665         PR tree-optimization/80032
24666         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
24667         if set force the cleanup to happen unconditionally.
24668         (gimplify_target_expr): Push inserted clobbers with force_uncond
24669         to avoid them being removed by control-dependent DCE.
24671 2017-03-21  Richard Biener  <rguenther@suse.de>
24673         PR tree-optimization/80122
24674         * tree-inline.c (copy_bb): Do not expans va-arg packs or
24675         va_arg_pack_len when the inlined call stmt requires pack
24676         expansion itself.
24677         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
24679 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
24681         PR sanitizer/78158
24682         * tsan.c (instrument_builtin_call): If the memory model argument
24683         is not a constant, assume it is valid.
24685         PR c/67338
24686         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
24687         avoid UB.
24689 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
24691         PR rtl-optimization/79910
24692         * combine.c (can_combine_p): Do not allow combining an I0 or I1
24693         if its dest is used by an insn before I2 (other than the combined
24694         insns themselves, which are properly handled already).
24696 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
24698         Revert:
24699         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
24701         * combine.c (record_used_regs): New static function.
24702         (try_combine): Handle situations where there is an additional
24703         instruction between I2 and I3 which needs to have a LOG_LINK
24704         updated.
24706         Revert:
24707         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
24709         * combine.c (try_combine): Delete redundant i1 test.  Call
24710         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
24712 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
24714         PR target/80083
24715         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
24716         alternatives 13/14.
24718 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24720         PR tree-optimization/80054
24721         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
24722         the optimization if a PHI or any of its arguments is not dominated
24723         by the candidate's basis.  Use gphi* rather than gimple* as
24724         appropriate.
24725         (replace_profitable_candidates): Clean up a gimple* variable that
24726         should be a gphi* variable.
24728 2017-03-20  Martin Sebor  <msebor@redhat.com>
24730         PR c++/52477
24731         * doc/extend.texi (attribute constructor): Document present limitation.
24733 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24735         PR target/79963
24736         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
24737         __POWER9_VECTOR__ #ifdef control, change template definition to
24738         use Power9-specific built-in function.
24739         (vec_any_eq): Likewise.
24740         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
24741         to control outcomes from this test.
24742         (vector_ae_<mode>p): For VEC_F modes, likewise.
24744 2017-03-20  Ian Lance Taylor  <iant@google.com>
24746         * config/i386/i386.c (ix86_function_regparm): Save an extra
24747         register for -fsplit-stack with DECL_STATIC_CHAIN.
24749 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
24751         PR target/79912
24752         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
24753         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
24755 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
24757         * config/riscv/riscv.c (riscv_print_operand): Use "fence
24758         iorw,ow".
24759         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
24760         iorw,iorw".
24762 2017-03-20  Marek Polacek  <polacek@redhat.com>
24764         PR sanitizer/80063
24765         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
24767 2017-03-20  Richard Biener  <rguenther@suse.de>
24769         PR tree-optimization/80113
24770         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
24771         allocate extra SSA name for PHI def.
24772         (add_close_phis_to_outer_loops): Likewise.
24773         (add_close_phis_to_merge_points): Likewise.
24774         (copy_loop_close_phi_args): Likewise.
24775         (copy_cond_phi_nodes): Likewise.
24777 2017-03-20  Martin Liska  <mliska@suse.cz>
24779         PR middle-end/79753
24780         * tree-chkp.c (chkp_build_returned_bound): Do not build
24781         returned bounds for a LHS that's not a BOUNDED_P type.
24783 2017-03-20  Martin Liska  <mliska@suse.cz>
24785         PR target/79769
24786         PR target/79770
24787         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
24788         COMPLEX_CST and VECTOR_CST.
24790 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24792         PR target/78857
24793         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
24794         target operand.  A new splitter adds the clobber statement in case
24795         the target operand is dead anyway.
24797 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
24799         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
24800         to age-old versions of binutils and glibc.
24802 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
24804         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
24806 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
24808         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
24810 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
24812         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
24813         requirement for binutils 2.13.
24815 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
24817         * combine.c (try_combine): Delete redundant i1 test.  Call
24818         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
24820 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
24822         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
24823         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
24824         contents.
24825         <riscv64-*-elf>: Re-arrange section
24826         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
24827         <riscv32-*-linux>: Likewise.
24828         <riscv64-*-elf>: Likewise
24829         <riscv64-*-linux>: Likewise.
24831 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
24833         PR target/80052
24834         * aarch64.opt(verbose-cost-dump): Fix typo.
24836 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
24838         PR target/79951
24839         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
24840         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
24842 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
24844         * reload.c (find_reloads): When reloading a nonoffsettable address,
24845         use RELOAD_OTHER for it and its address reloads.
24847         PR rtl-optimization/79910
24848         * combine.c (record_used_regs): New static function.
24849         (try_combine): Handle situations where there is an additional
24850         instruction between I2 and I3 which needs to have a LOG_LINK
24851         updated.
24853 2017-03-17  Jeff Law  <law@redhat.com>
24855         PR tree-optimization/71437
24856         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
24857         conditional in the hash table first.
24858         (vrp_dom_walker::before_dom_children): Extract condition from
24859         ASSERT_EXPR.  Record condition, its inverion and any implied
24860         conditions as well.
24862 2017-03-17  Marek Polacek  <polacek@redhat.com>
24863             Markus Trippelsdorf  <markus@trippelsdorf.de>
24865         PR tree-optimization/80079
24866         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
24867         m_stores_head.
24869 2017-03-17  Richard Biener  <rguenther@suse.de>
24871         PR middle-end/80075
24872         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
24873         Properly verify the LHS before the RHS possibly claims to be
24874         handled.
24875         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
24876         do not throw.
24878 2017-03-17  Martin Jambor  <mjambor@suse.cz>
24880         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
24881         (List of -O2 options): Likewise.
24882         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
24883         (-fipa-vrp) New.
24885 2017-03-17  Tom de Vries  <tom@codesourcery.com>
24887         * gcov-dump.c (print_usage): Print bug_report_url.
24889 2017-03-17  Richard Biener  <rguenther@suse.de>
24891         PR middle-end/80050
24892         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
24893         (parser::peek): Likewise.
24895 2017-03-17  Richard Biener  <rguenther@suse.de>
24897         PR tree-optimization/80048
24898         * sese.c (free_sese_info): Properly release rename_map and
24899         copied_bb_map elements.
24901 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
24903         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
24904         Add linked-list forward and backlinks.  Insert on
24905         construction, remove on destruction.
24906         (class pass_store_merging): Add m_stores_head field.
24907         (pass_store_merging::terminate_and_process_all_chains):
24908         Iterate over m_stores_head list.
24909         (pass_store_merging::terminate_all_aliasing_chains):
24910         Likewise.
24911         (pass_store_merging::execute): Check for debug stmts first.
24912         Push new chains onto the m_stores_head stack.
24914 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
24916         PR target/71294
24917         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
24918         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
24919         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
24921 2017-03-16  Jeff Law  <law@redhat.com>
24923         PR tree-optimization/71437
24924         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
24925         member function.  Implementation moved into after_dom_children
24926         member function and into the threader's thread_outgoing_edges
24927         function.
24928         (dom_opt_dom_walker::after_dom_children): Simplify by moving
24929         some code into new thread_outgoing_edges.
24930         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
24931         definition.  Simplify marker handling (do it here).   Assume we always
24932         have the available expression and the const/copies tables.
24933         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
24934         and tree-vrp.c
24935         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
24936         * tree-vrp.c (equiv_stack): No longer file scoped.
24937         (vrp_dom_walker): New class.
24938         (vrp_dom_walker::before_dom_children): New member function.
24939         (vrp_dom_walker::after_dom_children): Likewise.
24940         (identify_jump_threads):  Setup domwalker.  Use it rather than
24941         walking edges in a random order by hand.  Simplify setup/finalization.
24942         (finalize_jump_threads): Remove.
24943         (vrp_finalize): Do not call identify_jump_threads here.
24944         (execute_vrp): Do it here instead and call thread_through_all_blocks
24945         here too.
24947         PR tree-optimization/71437
24948         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
24949         callers changed.
24950         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
24951         callers changed.
24952         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
24953         (dom_opt_dom_walker::thread_across_edge): Remove
24954         handle_dominating_asserts argument.  All callers changed.
24955         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
24956         changes.  Remove calls to lhs_of_dominating_assert.  Other
24957         uses of handle_dominating_asserts turn into unconditional code
24958         (simplify_control_stmt_condition_1): Likewise.
24959         (simplify_control_stmt_condition): Likewise.
24960         (thread_through_normal_block, thread_across_edge): Likewise.
24961         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
24962         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
24963         object if it is not an SSA_NAME.
24964         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
24965         before calling into the VRP specific simplifiers.
24966         (identify_jump_threads): Remove handle_dominating_asserts
24967         argument.
24969 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
24971         PR fortran/79886
24972         * tree-diagnostic.c (default_tree_printer): No longer static.
24973         * tree-diagnostic.h (default_tree_printer): New prototype.
24975 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
24977         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
24978         Change ins into fmov.
24980 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24982         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
24983         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
24984         Use h_con constraint for operand 1.
24985         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
24986         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
24988 2017-03-15  Jeff Law  <law@redhat.com>
24990         PR tree-optimization/71437
24991         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
24992         (record_temporary_equivalences): Use it.
24994         PR tree-optimization/71437
24995         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
24996         tree-ssa-scopedtables.
24997         (lookup_avail_expr, build_and_record_new_cond): Likewise.
24998         (record_conditions, record_cond, vuse_eq): Likewise.
24999         (record_edge_info): Adjust to API tweak of record_conditions.
25000         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
25001         (record_temporary_equivalences, optimize_stmt): Likewise.
25002         (eliminate_redundant_computations): Likewise.
25003         (record_equivalences_from_stmt): Likewise.
25004         * tree-ssa-scopedtables.c: Include options.h and params.h.
25005         (vuse_eq): New function, moved from tree-ssa-dom.c
25006         (build_and_record_new_cond): Likewise.
25007         (record_conditions): Likewise.  Accept vector of conditions rather
25008         than edge_equivalence structure for first argument.
25009         for the first argument.
25010         (avail_exprs_stack::lookup_avail_expr): New member function, moved
25011         from tree-ssa-dom.c.
25012         (avail_exprs_stack::record_cond): Likewise.
25013         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
25014         from tree-ssa-dom.c.
25015         (avail_exprs_stack): Add new member functions lookup_avail_expr
25016         and record_cond.
25017         (record_conditions): Declare.
25019 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
25021         PR target/80017
25022         * lra-constraints.c (process_alt_operands): Increase reject for
25023         reloading an input/output operand.
25025 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
25027         PR target/79038
25028         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
25029         insns to convert from signed/unsigned char/short to IEEE 128-bit
25030         floating point.
25031         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
25033 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
25035         PR target/80019
25036         * config/i386/i386.c (ix86_vector_duplicate_value): Create
25037         subreg of inner mode for values already in registers.
25039 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
25041         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
25042         iteration reg is used after the loop.
25044 2017-03-14  Martin Sebor  <msebor@redhat.com>
25046         PR tree-optimization/79800
25047         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
25048         precision in negative-positive range.
25049         (format_floating): Call non-const overload with adjusted precision.
25051 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
25053         PR target/79947
25054         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
25055         -mpowerpc-gfxopt.
25057 2017-03-14  Martin Sebor  <msebor@redhat.com>
25059         PR middle-end/80020
25060         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
25061         * builtins.def (aligned_alloc): Use it.
25063         PR c/79936
25064         * Makefile.in (GTFILES): Add calls.c.
25065         * calls.c: Include "gt-calls.h".
25067 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
25069         PR rtl-optimization/79728
25070         * regs.h (struct target_regs): New field
25071         x_contains_allocatable_regs_of_mode.
25072         (contains_allocatable_regs_of_mode): New macro.
25073         * reginfo.c (init_reg_sets_1): Initialize it, and change
25074         contains_reg_of_mode so it includes global regs as well.
25075         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
25076         rather than contains_regs_of_mode.
25078 2017-03-14  Martin Liska  <mliska@suse.cz>
25080         * doc/invoke.texi: Document options that can't be combined with
25081         -fcheck-pointer-bounds.
25083 2017-03-14  Martin Liska  <mliska@suse.cz>
25085         PR middle-end/79831
25086         * doc/invoke.texi (-Wchkp): Document the option.
25088 2017-03-14  Martin Liska  <mliska@suse.cz>
25090         * Makefile.in: Install gcov-dump.
25092 2017-03-14  Martin Liska  <mliska@suse.cz>
25094         * multiple_target.c (expand_target_clones): Bail out for
25095         an invalid attribute.
25097 2017-03-14  Richard Biener  <rguenther@suse.de>
25099         * alias.c (struct alias_set_entry): Pack properly.
25100         * cfgloop.h (struct loop): Likewise.
25101         * cse.c (struct set): Likewise.
25102         * ipa-utils.c (struct searchc_env): Likewise.
25103         * loop-invariant.c (struct invariant): Likewise.
25104         * lra-remat.c (struct cand): Likewise.
25105         * recog.c (struct change_t): Likewise.
25106         * rtl.h (struct address_info): Likewise.
25107         * symbol-summary.h (function_summary): Likewise.
25108         * tree-loop-distribution.c (struct partition): Likewise.
25109         * tree-object-size.c (struct object_size_info): Likewise.
25110         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
25111         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
25112         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
25113         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
25114         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
25115         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
25116         (struct _stmt_vec_info): Likewise.
25118 2017-03-14  Martin Liska  <mliska@suse.cz>
25120         PR target/79892
25121         * multiple_target.c (create_dispatcher_calls): Check that
25122         a target can create a function dispatcher.
25124 2017-03-14  Martin Liska  <mliska@suse.cz>
25126         PR lto/66295
25127         * multiple_target.c (expand_target_clones): Drop local.local
25128         flag for default implementation.
25130 2017-03-14  Richard Biener  <rguenther@suse.de>
25132         PR tree-optimization/80030
25133         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
25135 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
25137         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
25138         gcc_fallthrough() instead of __attribute__((fallthrough));
25140 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
25142         * doc/gcc.texi: Remove "up" link to (DIR).
25143         * doc/gccint.texi: Ditto.
25145 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
25147         * doc/install.texi (Specific) <avr>: Remove reference to
25148         binutils 2.13.
25150 2017-03-13  Jeff Law  <law@redhat.com>
25152         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
25153         attribute rather than comments.
25155         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
25156         match_scratch operand is highest.
25158 2017-03-13  Martin Liska  <mliska@suse.cz>
25160         PR middle-end/78339
25161         * ipa-pure-const.c (warn_function_noreturn): If the declarations
25162         is a CHKP clone, use original declaration.
25164 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
25166         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
25167         (arc_conditional_register_usage): Use a different allocation order
25168         when optimizing for size.
25169         * common/config/arc/arc-common.c (arc_option_optimization_table):
25170         Section anchors default on when optimizing for size.
25172 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
25174         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
25176 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
25178         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
25179         * config/arc/arc.md (cpu_facility): Add cd variant.
25180         (*movqi_insn): Add code density variant.
25181         (*movhi_insn): Likewise.
25182         (*movqi_insn): Likewise.
25183         (*addsi3_mixed): Likewise.
25184         (subsi3_insn): Likewise.
25186 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
25188         * config/arc/arc.md (movsi_cond_exec): Update constraint.
25190 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
25192         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
25193         expressions with MINUS and UNARY ops.
25195 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25197         PR target/79911
25198         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
25199         Rename to...
25200         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
25201         between vec_select and vector argument.
25202         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
25203         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
25204         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
25205         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
25206         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
25207         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
25209 2017-03-13  Richard Biener  <rguenther@suse.de>
25211         PR other/79991
25212         * params.def (vect-max-peeling-for-alignment): Fix typo.
25214 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
25216         * doc/install.texi (Specific) <mips-*-*>: Remove description of
25217         issue that only occurred with binutils below 2.18.
25219 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
25221         * doc/install.texi (Specific) <cris-axis-elf>: No longer
25222         refer to binutils 2.11/2.12 minimum.
25224 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
25226         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
25227         ftp.kernel.org and simplify binutils requirement.
25229 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
25231         * doc/invoke.texi (Warning Options): Fix spelling of link-time
25232         optimization.
25233         (Optimize Options): Ditto.  Also remove redundancy.
25235 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
25237         PR translation/79848
25238         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
25239         "%qs".
25240         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
25241         to G_ to avoid double translation.
25243 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
25245         PR translation/79923
25246         * auto-profile.c (get_combined_location): Convert leading
25247         character of diagnostics to lower case and remove trailing period.
25248         (read_profile): Likewise for various diagnostics.
25249         * config/arm/arm.c (arm_option_override): Remove trailing period
25250         from various diagnostics.
25251         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
25252         (msp430_expand_delay_cycles): Likewise.
25254 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
25256         PR target/79925
25257         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
25258         full command-line argument, rather than just "str".
25259         (aarch64_validate_march): Likewise.
25260         (aarch64_validate_mtune): Likewise.
25262 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
25264         PR rtl-optimization/78911
25265         * lra-assigns.c (must_not_spill_p): New function.
25266         (spill_for): Use it.
25268 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
25270         PR tree-optimization/79981
25271         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
25272         ATOMIC_COMPARE_EXCHANGE ifn result.
25273         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
25274         IFN_ATOMIC_COMPARE_EXCHANGE.
25276 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
25278         PR driver/79875
25279         * opts.c (parse_sanitizer_options): Add missing question mark to
25280         "did you mean" message.
25282 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25284         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
25285         built-in.
25286         (VMULEUH_UNS): Likewise.
25287         (VMULOUB_UNS): Likewise.
25288         (VMULOUH_UNS): Likewise.
25289         * config/rs6000/rs6000.c (builtin_function_type): Remove
25290         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
25292 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
25294         PR bootstrap/79952
25295         * read-rtl-function.c (function_reader::read_rtx_operand): Update
25296         x with result of extra_parsing_for_operand_code_0.
25297         (function_reader::extra_parsing_for_operand_code_0): Convert
25298         return type from void to rtx, returning x.  When reading
25299         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
25300         larger size containing struct block_symbol.
25302 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
25304         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
25305         -mfloat128-hardware without -m64.
25307 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
25309         PR target/79941
25310         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
25311         entries to the case statement that marks unsigned arguments to
25312         overloaded functions.
25314 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
25316         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
25317         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
25319 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
25321         PR target/79907
25322         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
25323         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
25325 2017-03-10  Martin Liska  <mliska@suse.cz>
25327         PR target/65705
25328         PR target/69804
25329         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
25330         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
25331         FIELD != NULL.
25333 2017-03-10  Olivier Hainque  <hainque@adacore.com>
25335         * tree-switch-conversion (array_value_type): Start by resetting
25336         candidate type to it's main variant.
25338 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
25340         PR rtl-optimization/79909
25341         * combine.c (try_combine): Use simplify_replace_rtx on individual
25342         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
25343         of the whole CALL_INSN_FUNCTION_USAGE.
25345         PR tree-optimization/79972
25346         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
25347         get_range_info on SSA_NAMEs.  Formatting fixes.
25349 2017-03-10  Richard Biener  <rguenther@suse.de>
25350             Jakub Jelinek  <jakub@redhat.com>
25352         PR tree-optimization/77975
25353         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
25354         edge to be constant.
25355         (get_val_for): For constant x return it.  Formatting fix.
25356         (loop_niter_by_eval): Avoid pointless looping if the next iteration
25357         would use the same bases as the current one.
25359 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25361         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
25362         instead of vec_select for V1TImode.
25363         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
25364         longer needed.
25365         (VSX_LE_128): Add V1TI to this mode iterator.
25366         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
25367         (*vsx_le_perm_store_<mode>): Likewise.
25368         (pre-reload splitter for VSX stores): Likewise.
25369         (post-reload splitter for VSX stores): Likewise.
25370         (*vsx_xxpermdi2_le_<mode>): Likewise.
25371         (*vsx_lxvd2x2_le_<mode>): Likewise.
25372         (*vsx_stxvd2x2_le_<mode>): Likewise.
25374 2017-03-09  Michael Eager  <eager@eagercon.com>
25376         Correct failures with --enable-checking=yes,rtl.
25378         * config/microblaze/microblaze.c (microblaze_expand_shift):
25379         Replace GET_CODE test with CONST_INT_P and INTVAL test with
25380         test for const0_rtx.
25381         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
25382         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
25384 2017-03-09  Richard Biener  <rguenther@suse.de>
25386         PR tree-optimization/79977
25387         * graphite-scop-detection.c (scop_detection::merge_sese):
25388         Handle the case of extra exits to blocks dominating the entry.
25390 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
25392         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
25393         Document rdynamic.
25395 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
25397         PR rtl-optimization/79949
25398         * lra-constraints.c (process_alt_operands): Check memory when
25399         trying to predict a cycle.  Print about the overall increase.
25401 2017-03-09  Richard Biener  <rguenther@suse.de>
25403         PR middle-end/79971
25404         * gimple-expr.c (useless_type_conversion_p): Preserve
25405         TYPE_SATURATING for fixed-point types.
25407 2017-03-09  Richard Biener  <rguenther@suse.de>
25409         PR ipa/79970
25410         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
25411         alignment of BLKmode params.
25413 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25415         PR target/79913
25416         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
25417         (VALL_NO_V2Q): Likewise.
25418         (VDQF_DF): Delete.
25419         * config/aarch64/aarch64-simd.md
25420         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
25421         iterator.
25422         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
25423         VALL_NO_V2Q mode iterator.
25424         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
25426 2017-03-09  Martin Liska  <mliska@suse.cz>
25428         PR tree-optimization/79631
25429         * tree-chkp-opt.c (chkp_is_constant_addr): Call
25430         tree_int_cst_sign_bit just for INTEGER constants.
25432 2017-03-09  Martin Liska  <mliska@suse.cz>
25434         PR target/65705
25435         PR target/69804
25436         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
25437         sanitizers.
25439 2017-03-09  Marek Polacek  <polacek@redhat.com>
25441         PR c++/79672
25442         * tree.c (inchash::add_expr): Handle TREE_VEC.
25444 2017-03-09  Martin Liska  <mliska@suse.cz>
25446         PR ipa/79764
25447         (chkp_narrow_size_and_offset): New function.
25448         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
25449         (void chkp_parse_bit_field_ref): New function.
25450         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
25451         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
25453 2017-03-09  Martin Liska  <mliska@suse.cz>
25455         PR ipa/79761
25456         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
25457         (chkp_find_bounds_1): Remove gcc_unreachable.
25459 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
25461         PR sanitizer/79944
25462         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
25463         BUILT_IN_SYNC*, determine the access type from the size suffix and
25464         always build a MEM_REF with that type.  Handle forgotten
25465         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
25467         PR target/79932
25468         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
25469         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
25470         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
25471         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
25472         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
25473         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
25474         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
25475         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
25476         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
25477         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
25478         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
25479         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
25480         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
25481         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
25482         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
25483         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
25484         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
25485         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
25486         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
25487         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
25488         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
25489         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
25490         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
25491         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
25492         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
25493         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
25494         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
25495         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
25496         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
25497         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
25498         definitions outside of __OPTIMIZE__ guarded section.
25500         PR target/79932
25501         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
25502         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
25503         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
25504         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
25505         guarded section.
25507 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25509         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
25510         ("vfenez<mode>"): Add missing constraints.
25512 2017-03-08  Martin Sebor  <msebor@redhat.com>
25514         PR target/79928
25515         * config/nds32/nds32.c (nds32_option_override):
25516         Fix misspelled diagnostic.
25518 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
25520         PR c/79940
25521         * gimplify.c (gimplify_omp_for): Replace index var in outer
25522         taskloop statement with an artificial variable and add
25523         OMP_CLAUSE_PRIVATE clause for it.
25525 2017-03-08  Richard Biener  <rguenther@suse.de>
25527         PR tree-optimization/79955
25528         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
25529         for accesses that are completely outside of the variable.
25531 2017-03-08  Andrew Haley  <aph@redhat.com>
25533         PR tree-optimization/79943
25534         * tree-ssa-loop-split.c (compute_new_first_bound): When
25535         calculating the new upper bound, (END-BEG) should be added, not
25536         subtracted.
25538 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
25540         * config/avr/avr.md (setmemhi): Make sure match_dup
25541         operand number comes before match_scratch.
25543 2017-03-08  Richard Biener  <rguenther@suse.de>
25545         PR tree-optimization/79920
25546         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
25547         with ncopies == 1 to ...
25548         (vect_transform_slp_perm_load): ... here.  Properly compute
25549         all element loads by iterating VF times over the group.  Do
25550         not handle ncopies (computed in a broken way) in
25551         vect_create_mask_and_perm.
25553 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
25555         PR sanitizer/79904
25556         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
25557         is a uniform vector, use uniform_vector_p return value instead of
25558         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
25560 2017-03-07  Marek Polacek  <polacek@redhat.com>
25562         PR middle-end/79809
25563         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
25564         (alloca_call_type): Likewise.
25566 2017-03-07  Martin Liska  <mliska@suse.cz>
25568         * gcov.c (process_args): Put comment to correct location.
25570 2017-03-07  Martin Liska  <mliska@suse.cz>
25572         PR middle-end/68270
25573         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
25574         Use array_at_struct_end_p instead of DECL_CHAIN (field).
25575         (chkp_narrow_bounds_for_field): Likewise.
25576         (chkp_parse_array_and_component_ref): Pass one more argument to
25577         call.
25579 2017-03-07  Richard Biener  <rguenther@suse.de>
25581         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
25582         preheaders.
25584 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
25586         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
25587         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
25589 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25591         PR c/79855
25592         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
25593         to end of description.
25594         (PARAM_MAX_STORES_TO_MERGE): Likewise.
25596 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
25598         PR rtl-optimization/79901
25599         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
25600         ...
25601         (*avx512f_<code><mode>3<mask_name>): ... this.
25602         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
25603         iterator instead of VI8_AVX2_AVX512BW.
25605         PR rtl-optimization/79901
25606         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
25607         min/max expander, expand it using expand_vec_cond_expr.
25609         PR sanitizer/79897
25610         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
25611         temporary.
25613 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
25615         PR c++/79821
25616         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
25617         to void * for PCH reasons.
25618         * dwarf2out.c (output_loc_operands, output_die): Cast
25619         v.val_vec.array to unsigned char *.
25621 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
25623         PR target/77850
25624         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
25625         vector types.
25627 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
25629         PR rtl-optimization/79571
25630         * lra-constraints.c (process_alt_operands): Calculate static
25631         reject and subtract it from overall when only addresses will be
25632         reloaded.
25634 2017-03-06  Julia Koval  <julia.koval@intel.com>
25636         PR target/79793
25637         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
25638         incoming stack boundary to 128 for 64-bit targets.
25640 2017-03-06  Richard Biener  <rguenther@suse.de>
25642         PR tree-optimization/79894
25643         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
25644         to NULL after folding it.
25646 2017-03-06  Richard Biener  <rguenther@suse.de>
25648         PR tree-optimization/79824
25649         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
25650         check disabling peeling for gaps.
25652 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
25654         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
25655         attributes): Document gettimeofday.
25657 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
25659         * config/s390/s390.c (s390_option_override_internal): Set
25660         PARAM_MIN_VECT_LOOP_BOUND
25662 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
25664         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
25665         * config/s390/s390.md: Likewise.
25667 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
25669         PR target/79812
25670         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
25671         (<avx2_avx512>_perm<mode>): Rename to ...
25672         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
25673         of VI8F_256_512.
25674         (<avx512>_perm<mode>_mask): Rename to ...
25675         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
25676         of VI8F_256_512.
25677         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
25678         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
25679         instead of VI8F_256_512.
25680         (avx512f_perm<mode>): New define_expand.
25681         (avx512f_perm<mode>_mask): Likewise.
25682         (avx512f_perm<mode>_1<mask_name>): New define_insn.
25683         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
25685 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
25687         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
25688         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
25689         if_then_else.
25690         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
25692 2017-03-06  Martin Liska  <mliska@suse.cz>
25694         PR sanitize/79783
25695         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
25696         when having a SSA NAME w/o VAR_DECL assigned to it.
25698 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
25700         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
25701         msa_dpsub_<su>_d): Fix MODE for vec_select.
25703 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
25705         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
25706         argument.
25707         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
25709 2017-03-06  Richard Biener  <rguenther@suse.de>
25711         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
25712         * plugin.c (register_plugin_info): Likewise.
25713         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
25715 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
25717         * config/i386/sse.md (sse_storehps, sse_storelps,
25718         avx_<castmode><avxsizesuffix>_<castmode>,
25719         avx512f_<castmode><avxsizesuffix>_<castmode>,
25720         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
25721         in condition that at least one operand is not a MEM.
25723 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
25725         PR middle-end/79805
25726         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
25727         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
25728         ECF_NOTHROW.
25729         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
25730         gimple_call_nothrow_p flag based on whether original builtin can throw.
25731         If it can, emit following stmts on the fallthrough edge.
25732         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
25733         don't create new bb if inserting just debug stmts on the edge, try to
25734         insert them on the fallthru bb or just reset debug stmts.
25736 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
25738         PR target/43763
25739         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
25740         restore recog_data (including the operand rtxes inside it) around
25741         the call to get_insn_template.
25743 2017-03-03  Martin Sebor  <msebor@redhat.com>
25745         PR tree-optimization/79699
25746         * context.c (context::~context): Free MPFR caches to avoid
25747         a memory leak on program exit.
25749 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25751         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
25752         Use wide_int::ulow () instead of .elt (0).
25754 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
25756         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
25757         (*pushxf): Limit oF constraint to 32bit targets and add oC
25758         constraint for 64bit targets.
25759         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
25760         (*pushdf): Change rmF constraint to rmC.
25762 2017-03-03  Martin Liska  <mliska@suse.cz>
25764         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
25765         Remove unused variable.
25767 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
25769         PR target/79807
25770         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
25771         is a memory operand, increase num_memory.
25772         (ix86_expand_args_builtin): Likewise.
25774 2017-03-03  Jan Hubicka  <jh@suse.cz>
25776         PR lto/79760
25777         * ipa-devirt.c (maybe_record_node): Properly handle
25778         __cxa_pure_virtual visibility.
25780 2017-03-03  Martin Liska  <mliska@suse.cz>
25782         PR tree-optimization/79803
25783         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
25784         assert.
25785         (pass_loop_prefetch::execute): Disabled optimization if an
25786         assumption about L1 cache size is not met.
25788 2017-03-03  Martin Liska  <mliska@suse.cz>
25790         PR rtl-optimization/79574
25791         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
25792         (hash_scan_set): Likewise.
25793         (dump_hash_table): Likewise.
25794         (hoist_code): Likewise.
25796 2017-03-03  Richard Biener  <rguenther@suse.de>
25798         * fixed-value.c (fixed_from_string): Restore use of elt (1)
25799         in place of uhigh ().
25800         (fixed_convert_from_real): Likewise.
25802 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
25804         PR target/79514
25805         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
25807 2017-03-03  Richard Biener  <rguenther@suse.de>
25809         PR middle-end/79818
25810         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
25811         TYPE_OVERFLOW_UNDEFINED check.
25813 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25815         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
25816         numbers.
25817         (vector_ae_<mode>_p): Likewise.
25818         (vector_nez_<mode>_p): Likewise.
25819         (vector_ne_v2di_p): Likewise.
25820         (vector_ae_v2di_p): Likewise.
25821         (vector_ne_<mode>_p): Likewise.
25822         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
25823         numbers.
25824         (vsx_tsqrt<mode>2_fe): Likewise.
25826 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
25828         PR target/79514
25829         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
25831 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
25833         PR rtl-optimization/79780
25834         * cprop.c (one_cprop_pass): When second and further conditional trap
25835         in a single basic block is turned into an unconditional trap, turn it
25836         into a deleted note to avoid RTL verification failures.
25838 2017-03-02  Richard Biener  <rguenther@suse.de>
25840         * fold-const.c (const_binop): Use ulow () instead of elt (0).
25842 2017-03-02  Richard Biener  <rguenther@suse.de>
25844         PR tree-optimization/79345
25845         PR c++/42000
25846         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
25847         param and abort the walk, returning -1 if it is hit.
25848         (walk_aliased_vdefs): Take a limit param and pass it on.
25849         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
25850         defaulting to 0 and return a signed int.
25851         * tree-ssa-uninit.c (struct check_defs_data): New struct.
25852         (check_defs): New helper.
25853         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
25854         about uninitialized memory.
25855         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
25856         bogus uninitialized warning.
25857         (fixed_convert_from_real): Likewise.
25859 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
25861         PR tree-optimization/66768
25862         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
25863         iv_use if base object can't be determined.
25865 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
25867         PR tree-optimization/79345
25868         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
25869         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
25870         (get_pattern_stats): Initialize it.
25871         * genemit.c (gen_expand): Verify match_scratch numbers come after
25872         match_operand/match_dup numbers.
25873         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
25874         match_scratch numbers.
25875         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
25876         Likewise.
25877         * config/s390/s390.md (trunctdsd2): Likewise.
25879 2017-03-02  Richard Biener  <rguenther@suse.de>
25881         * wide-int.h (wide_int_storage::operator=): Implement in terms
25882         of wi::copy.
25884 2017-03-02  Richard Biener  <rguenther@suse.de>
25886         PR tree-optimization/79777
25887         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
25888         the to insert expression to sth existing.
25890 2017-03-01  Martin Sebor  <msebor@redhat.com>
25892         PR middle-end/79692
25893         * gimple-ssa-sprintf.c
25894         (directive::known_width_and_precision): New function.
25895         (format_integer): Use it.
25896         (get_mpfr_format_length): Consider the full range of precision
25897         when computing %g output with the # flag.  Set the likely byte
25898         count to 3 rather than 1 when precision is indeterminate.
25899         (format_floating): Correct the lower bound of precision.
25901 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25903         * doc/invoke.texi: Document default code model for 64-bit Linux.
25905 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25907         PR target/79752
25908         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
25909         udiv rather than div since input pattern is unsigned.
25911 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
25913         * config/i386/i386.c (print_reg): Warn for values of
25914         unsupported size in integer register.
25916 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
25918         PR target/79439
25919         * config/rs6000/predicates.md (current_file_function_operand): Do
25920         not allow self calls to be local if the function is replaceable.
25922 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
25924         PR target/79395
25925         * config/rs6000/altivec.h (vec_ctz and others): Change the
25926         preprocessor macro that controls conditional compilation from
25927         _ARCH_PWR9 to __POWER9_VECTOR__.
25928         (vec_all_ne): Change parameterization of __altivec_scalar_pred
25929         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
25930         control (instead of _ARCH_PWR9 control) so that template
25931         definition uses power9-specific function.
25932         (vec_any_eq): Likewise.
25933         (vec_all_ne): Change macro definition to use a power9-specific
25934         expansion under #ifdef __POWER9_VECTOR__ control (instead of
25935         _ARCH_PWR9 control).
25936         (vec_any_eq) Likewise.
25937         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
25938         expansion for CMPNEF to remove support for xvcmpnesp instruction.
25939         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
25940         support for xvcmpnedp instruction.
25941         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
25942         macro expansion so that Power9 implementation of vec_all_ne does
25943         not use the AltiVec predicate framework.
25944         (VCMPNEH_P): Likewise.
25945         (VCMPNEW_P): Likewise.
25946         (VCMPNED_P): Likewise.
25947         (VCMPNEFP_P): Likewise.
25948         (VCMPNEDP_P): Likewise.
25949         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
25950         implementation of vec_any_eq to not use AltiVec predicate
25951         framework.
25952         (VCMPAEH_P): Likewise.
25953         (VCMPAEW_P): Likewise.
25954         (VCMPAED_P): Likewise.
25955         (VCMPAEFP_P): Likewise.
25956         (VCMPAEDP_P): Likewise.
25957         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
25958         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
25959         not use the AltiVec predicate framework.
25960         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
25961         of vec_any_eq to not use AltiVec predicate framework.
25962         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
25963         support for predefined __POWER9_VECTOR__ macro to indicate that
25964         Power9 instruction selection is enabled.
25965         (altivec_overloaded_builtins): Remove extraneous
25966         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
25967         function argument types RS6000_BTI_bool_V16QI and
25968         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
25969         entry for overloaded function argument types RS6000_BTI_bool_V4SI
25970         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
25971         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
25972         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
25973         Power9 for implementations of vec_cmpne.  Change the signature for
25974         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
25975         (representing vec_all_ne) to remove the previously described first
25976         argument of type RS6000_BTI_INTSI, as this was an artifact of
25977         reliance on the AltiVec predicate framework, which is no longer
25978         used in the implementation of these functions.  Add
25979         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
25980         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
25981         since, unlike the AltiVec predicate framework implementation, we
25982         do not share function descriptors between vec_alle and vec_anyeq.
25983         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
25984         set of modes that receive special treatment even when
25985         TARGET_P9_VECTOR is true.  The special treatment emits code that
25986         does not depend on Power9 instructions.
25987         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
25988         define_expand to not rely on AltiVec predicate framework.
25989         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
25990         function.
25991         (vector_ne_v2di_p): Change this define_expand to not rely on
25992         AltiVec predicate framework.
25993         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
25994         function.
25995         (vector_ne_<mode>_p): Change this define_expand to not rely on
25996         AltiVec predicate framework.
25997         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
25998         function.
25999         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
26000         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
26001         define_insn pattern.
26002         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
26003         define_insn pattern because the xvcmpne<VSs>. instruction is not
26004         supported.
26005         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
26006         instruction is not supported.
26008 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
26010         * config/nvptx/nvptx.c: Include intl.h.
26012 2017-03-01  Martin Jambor  <mjambor@suse.cz>
26014         PR lto/78140
26015         * ipa-prop.h (ipa_bits): Removed field known.
26016         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
26017         to pointers.  Adjusted their comments to warn about their sharing.
26018         (ipcp_transformation_summary): Change bits to a vector of pointers.
26019         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
26020         (ipa_get_ipa_bits_for_value): Declare.
26021         * tree-vrp.h (value_range): Mark as GTY((for_user)).
26022         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
26023         (ipa_bits_hash_table): Likewise.
26024         (ipa_vr_ggc_hash_traits): Likewise.
26025         (ipa_vr_hash_table): Likewise.
26026         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
26027         being pointers and vr_known being removed.
26028         (ipa_set_jf_unknown): Likewise.
26029         (ipa_get_ipa_bits_for_value): New function.
26030         (ipa_set_jfunc_bits): Likewise.
26031         (ipa_get_value_range): New overloaded functions.
26032         (ipa_set_jfunc_vr): Likewise.
26033         (ipa_compute_jump_functions_for_edge): Use the above functions to
26034         construct bits and vr parts of jump functions.
26035         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
26036         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
26037         exist.
26038         (ipcp_grow_transformations_if_necessary): Also allocate
26039         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
26040         exist.
26041         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
26042         them.  Fix too long lines.
26043         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
26044         vr_known being removed.
26045         (ipa_read_jump_function): Use new setter functions to construct bits
26046         and vr parts of jump functions or set them to NULL.
26047         (write_ipcp_transformation_info): Adjust for bits being pointers.
26048         (read_ipcp_transformation_info): Likewise.
26049         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
26050         space.
26051         Include gt-ipa-prop.h.
26052         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
26053         being pointers.
26054         (ipcp_store_bits_results): Likewise.
26055         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
26056         Do not write to existing jump functions but use a temporary instead.
26058 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
26060         PR c++/79681
26061         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
26062         attempt to use its first operand as BIT_FIELD_REF base.
26064 2017-03-01  Richard Biener  <rguenther@suse.de>
26066         PR middle-end/79721
26067         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
26068         interpolating formula in wrapping arithmetic.
26069         (chrec_apply): Convert chrec_evaluate return value to wanted type.
26071 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
26073         PR tree-optimization/79734
26074         * tree-vect-generic.c (expand_vector_condition): Optimize
26075         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
26076         Handle VEC_COND_EXPR where comparison has different inner width from
26077         type's inner width.
26079 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
26081         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
26082         markup, and similar issues.  Remove @opindex entries for things
26083         that aren't options.  Add missing -mmpy-option entries.
26085 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
26087         PR tree-optimization/79737
26088         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
26089         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
26090         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
26091         instead of byte_size.  Formatting fix.
26092         (shift_bytes_in_array_right): Formatting fix.
26094 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
26096         PR target/79749
26097         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
26098         condition on optimize for the leaf function test.
26100 2017-02-28  Martin Liska  <mliska@suse.cz>
26102         PR lto/79625
26103         * read-rtl-function.c (function_reader::handle_unknown_directive):
26104         Bail out when one uses -flto.
26106 2017-02-28  Martin Liska  <mliska@suse.cz>
26108         * common.opt: Replace space with tabular for options of <number>
26109         type.
26110         * config/i386/i386.opt: Show <number> value for
26111         -mlarge-data-threshold.
26112         * opts.c (print_filtered_help): Do not display number in hexadecimal
26113         format.
26115 2017-02-28  Martin Liska  <mliska@suse.cz>
26117         * common.opt: Fix --help=option -Q for options which are of
26118         an enum type.
26120 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
26122         * config/i386/i386.c (print_reg): Error out for values
26123         of 8-bit size in invalid integer register.
26125 2017-02-28  Martin Sebor  <msebor@redhat.com>
26127         PR tree-optimization/79691
26128         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
26130 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
26132         PR target/79729
26133         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
26134         gcc_unreachable with output_operand_lossage.
26136 2017-02-28  Richard Biener  <rguenther@suse.de>
26138         PR tree-optimization/79740
26139         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
26140         inserts.
26141         (visit_nary_op): Insert the nary into the hashtable if we
26142         pattern-matched sth.
26143         * tree-ssa-pre.c (eliminate_insert): Robustify.
26145 2017-02-28  Richard Biener  <rguenther@suse.de>
26147         PR middle-end/79731
26148         * fold-const.c (decode_field_reference): Reject out-of-bound
26149         accesses.
26151 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
26153         * config/i386/i386.c: Include intl.h.
26154         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
26155         instead of just cond ? "..." : "...".
26156         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
26157         * coverage.c (read_counts_file): Likewise.
26158         * omp-offload.c: Include intl.h.
26159         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
26160         of just cond ? "..." : "...".
26161         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
26162         of just cond ? "..." : "...".
26164 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
26166         PR target/79742
26167         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
26168         entry, if present.
26169         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
26170         'tune for' CPU name.
26171         * config/arm/arm-cpu-data.h: Regenerated.
26173 2017-02-28  Richard Biener  <rguenther@suse.de>
26175         PR tree-optimization/79732
26176         * tree-inline.c (expand_call_inline): Do not shadow var.
26178 2017-02-28  Richard Biener  <rguenther@suse.de>
26180         PR tree-optimization/79723
26181         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
26182         address-space properly.
26184 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
26186         * doc/optinfo.texi (Optimization groups): Fix option used for
26187         OPTGROUP_ALL.
26188         * doc/invoke.texi (-fopt-info): Document "omp".
26189         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
26190         (OPTGROUP_ALL): Add OPTGROUP_OMP.
26191         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
26192         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
26193         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
26195         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
26196         all users.
26197         * dumpfile.c (optgroup_options): Instead of "openmp", associate
26198         OPTGROUP_OMP with "omp".
26200 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
26202         PR target/79544
26203         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
26204         for arithmetic shift of unsigned V2DI.
26206 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
26208         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
26209         arc/linux.h headers.
26210         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
26211         (LINK_SPEC): Likewise.
26212         (ARC_TLS_EXTRA_START_SPEC): Likewise.
26213         (EXTRA_SPECS): Likewise.
26214         (STARTFILE_SPEC): Likewise.
26215         (ENDFILE_SPEC): Likewise.
26216         (LIB_SPEC): Likewise.
26217         (TARGET_SDATA_DEFAULT): Likewise.
26218         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
26219         (MULTILIB_DEFAULTS): Likewise.
26220         (DWARF2_UNWIND_INFO): Likewise.
26221         * config/arc/big.h: New file.
26222         * config/arc/elf.h: Likewise.
26223         * config/arc/linux.h: Likewise.
26224         * config/arc/t-uClibc: Remove.
26226 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
26228         PR tree-optimization/77536
26229         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
26230         (tree_transform_and_unroll_loop): Use above function to compute the
26231         estimated niter of unrolled loop and use it when scaling profile.
26232         Also use count info rather than frequency if it's non-zero.
26233         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
26234         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
26235         (vect_transform_loop): Call above function.
26237 2017-02-27  Richard Biener  <rguenther@suse.de>
26239         PR tree-optimization/45397
26240         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
26241         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
26242         (visit_nary_op): Add pattern matching for CSEing sign-changed
26243         or truncated operations with wider ones.
26245 2017-02-27  Richard Biener  <rguenther@suse.de>
26247         PR tree-optimization/79690
26248         * tree-vect-stmts.c (vectorizable_store): Use vector type
26249         built from the DR with address-space.
26251 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
26253         * doc/invoke.texi (Optimize Options): Refine the description
26254         of asan-use-after-return.
26256 2017-02-25  Alan Modra  <amodra@gmail.com>
26258         PR rtl-optimization/79584
26259         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
26260         base, not ad->base_term, the reg within base.  Remove assertion
26261         that ad->base == ad->base_term.  Replace gen_int_mode using
26262         bogus mode with const0_rtx.
26264 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
26266         PR middle-end/79396
26267         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
26268         FMA_EXPR like tcc_binary or tcc_unary.
26270         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
26272         PR debug/77589
26273         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
26274         bitfield.
26275         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
26276         (output_loc_operands): Handle DW_OP_call_ref and
26277         DW_OP_GNU_variable_value.
26278         (struct variable_value_struct): New type.
26279         (struct variable_value_hasher): Likewise.
26280         (variable_value_hash): New variable.
26281         (string_types): Remove.
26282         (copy_loc_descr): New function.
26283         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
26284         (prepend_loc_descr_to_each): New function.
26285         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
26286         instead of add_loc_descr_to_each if the first argument is single
26287         location list and the second has multiple.
26288         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
26289         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
26290         when looking for variable value which doesn't have other location info.
26291         (loc_list_from_tree): Formatting fix.
26292         (gen_array_type_die): Simplify DW_AT_string_length handling.
26293         (adjust_string_types): Remove.
26294         (gen_subprogram_die): Don't call adjust_string_types nor test/set
26295         string_types.  Call resolve_variable_values.
26296         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
26297         (resolve_addr_in_expr): Likewise.  Add A argument.
26298         (copy_deref_exprloc): Remove deref argument.  Adjust for the
26299         original expression being DW_OP_GNU_variable_value with optionally
26300         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
26301         optionally after it.
26302         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
26303         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
26304         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
26305         (variable_value_hasher::hash, variable_value_hasher::equal): New
26306         methods.
26307         (resolve_variable_value_in_expr, resolve_variable_value,
26308         resolve_variable_values, note_variable_value_in_expr,
26309         note_variable_value): New functions.
26310         (dwarf2out_early_finish): Call note_variable_value on all toplevel
26311         DIEs.
26313 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
26315         PR c/79677
26316         * opts.h (handle_generated_option): Add GENERATED_P argument.
26317         * opts-common.c (handle_option): Adjust function comment.
26318         (handle_generated_option): Add GENERATED_P argument, pass it to
26319         handle_option.
26320         (control_warning_option): Pass false to handle_generated_option
26321         GENERATED_P.
26322         * opts.c (maybe_default_option): Pass true to handle_generated_option
26323         GENERATED_P.
26324         * optc-gen.awk: Likewise.
26326 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26328         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
26329         a REG, look at the REG it is a SUBREG of.
26330         (splitter for cmpeqsi_t): Ditto.
26332 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26334         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
26335         the special USEs with the pattern of the insn, not the insn itself.
26337 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
26339         PR target/79473
26340         * doc/invoke.texi: Document -mload-store-pairs.
26342 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26343             Sandra Loosemore  <sandra@codesourcery.com>
26345         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
26346         argument isn't a CONST_INT.
26347         (nios2_alternate_compare_const): Assert op is a CONST_INT.
26348         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
26349         (nios2_validate_compare): Bypass alternate compare logic if *op2
26350         is not a CONST_INT.
26351         (ldstwm_operation_p): Return false if first_base is not a REG or
26352         if first_offset is not a CONST_INT.
26354 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26356         * config/cris/cris.md: Use correct operand in a define_peephole2.
26358 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26360         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
26362 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
26364         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
26365         this_insn if it is an INSN or JUMP_INSN.
26366         (force_offsettable): Look at base, not at addr.
26367         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
26368         on things that aren't necessarily CONST_INTs.
26370 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
26372         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
26373         -mfpmath=sse is the default also for x86-32 targets with SSE2
26374         instruction set when @option{-ffast-math} is enabled
26376 2017-02-24  Jeff Law  <law@redhat.com>
26378         PR rtl-optimizatoin/79286
26379         * ira.c (update_equiv_regs): Drop may_trap_p exception to
26380         dominance test.
26382 2017-02-24  Richard Biener  <rguenther@suse.de>
26384         PR tree-optimization/79389
26385         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
26386         debug insns.
26388 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
26390         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
26391         function comment to reflect reality.
26392         (loop_exits_before_overflow): Fix typo in function description.
26394 2017-02-24  Richard Biener  <rguenther@suse.de>
26396         PR tree-optimization/79389
26397         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
26398         properly that a threading opportunity exists.  Detect conditional
26399         copy/constant propagation opportunities.
26401 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
26403         * config/visium/visium.md (type): Add trap.
26404         (b): New mode attribute.
26405         (*btst): Rename into...
26406         (*btst<mode>): ...this and adjust.
26407         (*cbranchsi4_btst_insn): Rename into...
26408         (*cbranch<mode>4_btst_insn): ...this and adjust.
26409         (trap): New define_insn.
26411 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
26413         PR tree-optimization/79389
26414         * ifcvt.c (struct noce_if_info): Add rev_cond field.
26415         (noce_reversed_cond_code): New function.
26416         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
26417         reversed_comparison_code.  Formatting fix.
26418         (noce_try_store_flag): Test rev_cond != NULL in addition to
26419         reversed_comparison_code.
26420         (noce_try_store_flag_constants): Likewise.
26421         (noce_try_store_flag_mask): Likewise.
26422         (noce_try_addcc): Use rev_cond if non-NULL instead of
26423         reversed_comparison_code.
26424         (noce_try_cmove_arith): Likewise.  Formatting fixes.
26425         (noce_try_minmax, noce_try_abs): Clear rev_cond.
26426         (noce_find_if_block): Initialize rev_cond.
26427         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
26428         instead of false as last argument never attempt to reverse it
26429         afterwards.
26431 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
26433         PR tree-optimization/79663
26434         * tree-predcom.c (combine_chains): Process refs in reverse order
26435         only for ZERO length chains, and add explaining comment.
26437 2017-02-23  Jeff Law  <law@redhat.com>
26439         PR tree-optimization/79578
26440         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
26441         in call to operand_equal_p.
26443 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
26445         PR target/71017
26446         * config/i386/cpuid.h: Fix another undefined behavior.
26448 2017-02-23  Richard Biener  <rguenther@suse.de>
26450         PR tree-optimization/79683
26451         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
26452         vector types for data-refs.
26454 2017-02-23  Martin Liska  <mliska@suse.cz>
26456         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
26458 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
26460         PR middle-end/79665
26461         * internal-fn.c (get_range_pos_neg): Moved to ...
26462         * tree.c (get_range_pos_neg): ... here.  No longer static.
26463         * tree.h (get_range_pos_neg): New prototype.
26464         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
26465         are known to be in between 0 and signed maximum inclusive, try to
26466         expand both unsigned and signed divmod and use the cheaper one from
26467         those.
26469 2017-02-22  Jeff Law  <law@redhat.com>
26471         PR tree-optimization/79578
26472         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
26473         to compare base operands.
26475 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
26477         PR target/79211
26478         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
26479         gpc_reg_operand instead of fpr_reg_operand.
26481 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
26483         * config/mips/mips.c (mips_return_in_memory): Force FP
26484         vector types to be returned in memory for o32 ABI.
26486 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
26488         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
26489         instead of DW_TAG_member for static data member declarations and don't
26490         set no_linkage_name for static inline data members.
26491         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
26492         to DW_TAG_member.
26494 2017-02-22  Martin Liska  <mliska@suse.cz>
26496         * doc/invoke.texi: Replace inequality signs with square brackets
26497         for -Wnormalized.
26499 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26501         PR tree-optimization/68644
26502         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
26504 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
26506         PR target/78660
26507         * lra-constraints.c (simplify_operand_subreg): Handle
26508         WORD_REGISTER_OPERATIONS targets.
26510 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
26512         PR target/70465
26513         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
26514         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
26515         elimination by swapping fld*.
26517 2017-02-22  Richard Biener  <rguenther@suse.de>
26519         PR tree-optimization/79673
26520         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
26521         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
26522         irrelevant address-space qualifiers and avoiding a
26523         ADDR_SPACE_CONVERT_EXPR from fold_convert.
26525 2017-02-22  Richard Biener  <rguenther@suse.de>
26527         PR tree-optimization/79666
26528         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
26529         to not symbolically negate if that may introduce undefined
26530         overflow.
26532 2017-02-22  Martin Liska  <mliska@suse.cz>
26534         PR lto/79587
26535         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
26536         * data-streamer-out.c (streamer_write_gcov_count_stream):
26537         Likewise.
26538         * value-prof.c (stream_out_histogram_value): Make assert more
26539         precise based on type of counter.
26541 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
26543         PR target/79593
26544         * config/i386/i386.md (standard_x87sse_constant_load splitter):
26545         Use nonimmediate_operand instead of memory_operand for operand 1.
26546         (float-extend standard_x87sse_constant_load splitter): Ditto.
26548 2017-02-21  Jeff Law  <law@redhat.com>
26550         PR tree-optimization/79621
26551         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
26552         blocks with edges to themselves.
26554 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
26556         PR target/79633
26557         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
26558         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
26559         Use gimple_call_builtin_p.
26561         PR target/79570
26562         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
26563         on temporarily removed DEBUG_INSNs.
26565         PR tree-optimization/79649
26566         * tree-loop-distribution.c (classify_partition): Give up on
26567         non-generic address space loads/stores.
26569 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
26571         * doc/loop.texi (Loop manipulation): Remove nonexistent
26572         tree_ssa_loop_version from the documentation.
26573         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
26575 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
26577         PR target/79494
26578         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
26579         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
26580         * config/rs6000/rs6000.c: Include except.h.
26581         (rs6000_expand_split_stack_prologue): Call
26582         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
26584 2017-02-21  Martin Jambor  <mjambor@suse.cz>
26586         PR lto/79579
26587         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
26588         have been analyzed.
26590 2017-02-21  Martin Jambor  <mjambor@suse.cz>
26592         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
26593         for backward compatibility only.
26594         * doc/invoke.texi (Option Summary): Remove all references to
26595         -fipa-cp-alignment.
26597 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
26599         PR target/78660
26600         Revert:
26601         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
26603         * lra-constraints.c (curr_insn_transform): Handle
26604         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
26606 2017-02-21  Martin Liska  <mliska@suse.cz>
26608         * config/i386/i386.opt: Replace -masm-dialect with -masm.
26610 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
26612         PR translation/79638
26613         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
26615 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
26617         PR ada/67205
26618         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
26619         (arm_function_ok_for_sibcall): Return false for an indirect call by
26620         descriptor if all the argument registers are used.
26621         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
26622         alignment of the function.
26624 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
26626         PR tree-optimization/61441
26627         * simplify-rtx.c (simplify_const_unary_operation): For
26628         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
26629         the sNaN unmodified.
26631 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26633         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
26634         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
26635         instead of SYSTEM_HEADER_DIR.
26637 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
26638             Martin LiÅ¡ka  <mliska@suse.cz>
26640         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
26641         Fix typos and grammar, use active voice, and clarify.
26643 2017-02-20  Marek Polacek  <polacek@redhat.com>
26645         PR middle-end/79537
26646         * gimplify.c (gimplify_expr): Handle unused *&&L;.
26648         PR sanitizer/79558
26649         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
26651 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
26653         PR target/79568
26654         * config/i386/i386.c (ix86_expand_builtin): Handle
26655         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
26656         ix86_builtins_isa[fcode].isa as a requirement of those
26657         flags and any other flag in the bitmask.
26658         (ix86_init_mmx_sse_builtins): Use 0 instead of
26659         ~OPTION_MASK_ISA_64BIT as mask.
26660         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
26661         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
26662         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
26663         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
26665 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
26667         PR target/78012
26668         * lra-constraints.c (split_reg): Check requested split mode
26669         is supported by the register.
26671 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
26673         * lra-constraints.c (simplify_operand_subreg): Remove early
26674         return false.
26676 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
26678         PR target/78660
26679         * lra-constraints.c (curr_insn_transform): Tighten condition
26680         for converting SUBREG reloads from OP_OUT to OP_INOUT.
26682 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
26684         PR target/78660
26685         * lra-constraints.c (curr_insn_transform): Handle
26686         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
26688 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
26690         Revert:
26691         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
26693         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
26695 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
26697         PR c++/69523
26698         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
26699         description.
26701 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
26703         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
26704         for FMA_EXPR.
26706 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
26708         * final.c (last_columnnum, override_columnnum): New variables.
26709         (final_start_function): Set last_columnnum, pass it to begin_prologue
26710         hook and pass 0 to dwarf2out_begin_prologue.
26711         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
26712         to source_line debug hook.
26713         (notice_source_line): Compute last_columnnum and for debug_column_info
26714         return true on column changes.
26715         * debug.h (struct gcc_debug_hooks): Add column argument to
26716         source_line and begin_prologue hooks.
26717         (debug_nothing_int_charstar_int_bool): Remove prototype.
26718         (debug_nothing_int_int_charstar,
26719         debug_nothing_int_int_charstar_int_bool): New prototypes.
26720         (dwarf2out_begin_prologue): Add column argument.
26721         * debug.c (do_nothing_debug_hooks): Adjust source_line and
26722         begin_prologue hooks.
26723         (debug_nothing_int_charstar_int_bool): Remove.
26724         (debug_nothing_int_int_charstar,
26725         debug_nothing_int_int_charstar_int_bool): New functions.
26726         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
26727         through to dwarf2out_source_line.
26728         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
26729         (dwarf2out_source_line): Add column argument, emit it if requested.
26730         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
26731         arguments.
26732         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
26733         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
26734         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
26735         through to dwarf2out_begin_prologue.
26736         (vmsdbgout_source_line): Add column argument, pass it through to
26737         dwarf2out_source_line.
26738         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
26739         dbxout_source_line caller.
26740         (dbxout_source_line): Add column argument.
26742         * common.opt (gno-column-info, gcolumn-info): New options.
26743         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
26744         (check_die): Also test for multiple DW_AT_decl_column attributes.
26745         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
26746         DW_AT_decl_column if requested.
26747         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
26748         if requested.
26749         (gen_variable_die): Likewise.
26750         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
26751         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
26753         PR target/79569
26754         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
26755         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
26756         (ix86_handle_option): Handle OPT_m3dnowa.
26757         * doc/invoke.texi (-m3dnowa): Document.
26758         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
26759         -m3dnowa instead of -m3dnow -march=athlon.
26761         PR target/79559
26762         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
26763         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
26765 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26767         PR target/79261
26768         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
26769         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
26770         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
26771         generator for vsx_xxpermdi_<mode>_be.
26772         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
26773         force big-endian semantics.
26774         (vsx_xxpermdi_<mode>_be): New define_expand with same
26775         implementation as previous version of vsx_xxpermdi_<mode>.
26777 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
26779         PR tree-optimization/79327
26780         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
26781         variable, its initialization and use.
26783 2017-02-17  Julia Koval  <julia.koval@intel.com>
26785         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
26786         (OPTION_MASK_ISA_PKU_UNSET): New.
26787         (ix86_handle_option): Handle -mrdpid.
26788         * config/i386/cpuid.h (bit_RDPID): New.
26789         * config/i386/driver-i386.c (host_detect_local_cpu):
26790         Detect RDPID feature.
26791         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
26792         * config/i386/i386-c.c (ix86_target_macros_internal):
26793         Handle RDPID flag.
26794         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
26795         (ix86_valid_target_attribute_inner_p): Add "rdpid".
26796         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
26797         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
26798         * config/i386/i386.md (define_insn "rdpid"): New.
26799         * config/i386/i386.opt Add -mrdpid.
26800         * config/i386/immintrin.h (_rdpid_u32): New.
26802 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
26804         PR rtl-optimization/79541
26805         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
26806         instead of transforming it into USE.
26808 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
26810         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
26811         If HONOR_SNANS (SFmode) force the input to a register.
26812         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
26813         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
26814         an frsp or similar insn.
26816 2017-02-17  Martin Liska  <mliska@suse.cz>
26818         PR rtl-optimization/79577
26819         * params.def (selsched-max-sched-times): Increase minimum to 1.
26821 2017-02-17  Martin Liska  <mliska@suse.cz>
26823         PR rtl-optimization/79574
26824         * gcse.c (want_to_gcse_p): Prevent integer overflow.
26826 2017-02-17  Martin Liska  <mliska@suse.cz>
26828         PR tree-optimization/79529
26829         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
26830         ssa_defined_default_def_p to handle cases which are implicitly
26831         defined.
26832         * tree-ssa.c (ssa_defined_default_def_p): New function.
26833         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
26834         which are implicitly defined.
26835         * tree-ssa.h (ssa_defined_default_def_p): Declare.
26837 2017-02-17  Richard Biener  <rguenther@suse.de>
26839         PR middle-end/79576
26840         * params.def (max-ssa-name-query-depth): Limit to 10.
26842 2017-02-17  Richard Biener  <rguenther@suse.de>
26844         PR tree-optimization/79552
26845         * tree-ssa-structalias.c (visit_loadstore): Properly verify
26846         default defs.
26848 2017-02-17  Richard Biener  <rguenther@suse.de>
26850         PR bootstrap/79567
26851         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
26853 2017-02-17  Marek Polacek  <polacek@redhat.com>
26855         PR middle-end/79536
26856         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
26857         (fold_negate_expr): New wrapper.
26859 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
26861         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
26862         Correct terminology and de-emphasize pre-standard behavior.
26864 2017-02-16  Alan Modra  <amodra@gmail.com>
26866         PR rtl-optimization/79286
26867         * ira.c (def_dominates_uses): New function.
26868         (update_equiv_regs): Don't create an equivalence for insns that
26869         may trap where the register def does not dominate the use.
26871 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
26873         PR rtl-optimization/78127
26874         * lra.c (lra): Call lra_eliminate before finish the loop after
26875         lra_constraint.
26877 2017-02-16  Richard Biener  <rguenther@suse.de>
26879         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
26880         isl/isl_val.h.
26881         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
26882         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
26883         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
26884         (isl_val_int_from_wi): New function.
26885         (extract_affine_gmp): Rename to ...
26886         (extract_affine_wi): ... this, take a widest_int.
26887         (extract_affine_int): Just wrap extract_affine_wi.
26888         (add_param_constraints): Use isl_val_int_from_wi.
26889         (add_loop_constraints): Likewise, and extract_affine_wi.
26891 2017-02-15  Jeff Law  <law@redhat.com>
26893         PR middle-end/79521
26894         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
26895         ira_init_register_move_cost_if_necessary.
26897 2017-02-15  Martin Sebor  <msebor@redhat.com>
26899         PR middle-end/32003
26900         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
26901         removed in a prior commit.
26903 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
26905         PR tree-optimization/79347
26906         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
26907         counters during peeling.
26909 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
26911         * Makefile.in (site.exp): Remove "set ISLVER".
26913 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
26915         PR target/79487
26916         * real.c (real_from_integer): Call real_convert even for decimal.
26918 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26920         PR target/79421
26921         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
26923 2017-02-14  Andrew Pinski  <apinski@cavium.com>
26925         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
26926         cores and change the partno/implementer to be correct.
26927         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
26928         the 'B" as the implementer.
26929         * config/aarch64/aarch64-tune.md: Regenerate.
26931 2017-02-14  Carl Love  <cel@us.ibm.com>
26933         * config/rs6000/rs6000.c: Add case statement entry to make the
26934         xvcvuxdsp built-in argument unsigned.
26935         * config/rs6000/vsx.md: Fix the source and return operand types so they
26936         match the instruction definitions from the ISA document.  Fix typo
26937         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
26938         statement.
26940 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
26942         PR target/79282
26943         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
26944         member early_clobber_alts.
26945         * lra-lives.c (reg_early_clobber_p): New.
26946         (process_bb_lives): Use it.
26947         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
26948         (debug_operand_data): Initialize early_clobber_alts.
26949         (setup_operand_alternative): Set up early_clobber_alts.
26950         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
26951         alternatives to new_insn_reg.
26952         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
26953         it.
26954         (lra_update_insn_regno_info): Pass the new arg.
26956 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
26958         PR middle-end/79505
26959         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
26960         (new_oacc_loop_raw): Don't clear already cleared fields.
26962         PR target/79481
26963         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
26964         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
26965         _mm512_prefetch_i64gather_ps): New inline functions and macros.
26967 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
26969         PR target/79495
26970         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
26972 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
26974         PR target/79498
26975         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
26976         the extra instruction to the right place to store 128-bit constant
26977         when needed.
26979 2017-02-14  Martin Sebor  <msebor@redhat.com>
26981         PR middle-end/79448
26982         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
26983           warning for strings of unknown length.
26985 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
26987         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
26989 2017-02-14  Jeff Law  <law@redhat.com>
26991         PR target/79404
26992         * ira-costs.c (scan_one_insn): Initialize register move costs
26993         for pseudos seen in USE/CLOBBER insns.
26995         PR tree-optimization/79095
26996         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
26997         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
26998         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
26999         if the operands are known to be not equal, then the resulting range
27000         is ~[0,0].
27001         (intersect_ranges): If the new range is ~[0,0] and the old range is
27002         wide, then prefer ~[0,0].
27003         * tree-vrp.c (overflow_comparison_p_1): New function.
27004         (overflow_comparison_p): New function.
27005         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
27006         if NAME is used in an overflow test.
27007         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
27008         overflow check that can be expressed as an equality test, then adjust
27009         ops to be that equality test.
27011 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27013         * config/s390/s390-builtin-types.def: Remove flags argument.
27014         * config/s390/s390.c (s390_init_builtins): Likewise.
27016 2017-02-14  Martin Liska  <mliska@suse.cz>
27018         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
27019         vector.  Fix trailing white spaces.
27021 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
27023         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
27024         HFmode.
27026 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27028         PR rtl-optimization/68664
27029         * config/arm/arm.c (arm_sched_can_speculate_insn):
27030         New function.  Declare prototype.
27031         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
27033 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27035         PR rtl-optimization/68664
27036         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
27037         New function.
27038         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
27040 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
27042         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
27043         max skip bytes for function, loop and jump.
27045 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
27047         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
27048         ABS_EXPR for gimple dump.
27050 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
27052         PR target/79462
27053         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
27055         PR tree-optimization/79408
27056         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
27057         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
27058         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
27059         also if rhs1 is INTEGER_CST.
27061 2017-02-14  Richard Biener  <rguenther@suse.de>
27063         PR middle-end/79432
27064         * tree-into-ssa.c (insert_phi_nodes): When the function can
27065         have abnormal edges rewrite SSA names with broken use-def
27066         dominance out of SSA and register them for PHI insertion.
27068 2017-02-13  Martin Sebor  <msebor@redhat.com>
27070         PR middle-end/79496
27071         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
27072         clearing info.nowrite flag when snprintf size argument is a range.
27074 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
27076         * cprop.c (cprop_jump): Add missing space in string literal.
27077         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
27078         (get_constraint_for_component_ref): Likewise.
27079         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
27080         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
27081         * lra-constraints.c (process_alt_operands): Likewise.
27082         * ipa-inline.c (inline_small_functions): Likewise.
27083         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
27084         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
27085         * trans-mem.c (diagnose_tm_1_op): Likewise.
27086         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
27087         (grid_parallel_clauses_gridifiable): Likewise.
27089         * config/nvptx/mkoffload.c (process): Add space in between
27090         , and %d.
27092         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
27093         "MOD4_SSE_REGS" and "ALL_REGS".
27095         * spellcheck.c (test_data): Add , in between "foo" and "food".
27097 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
27099         PR target/79449
27100         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
27101         boundary crossing check and subsequent code generation agree.
27103 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27105         * config/aarch64/aarch64.c (has_memory_op): Delete.
27106         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
27107         has_memory_op.
27109 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
27111         PR rtl-optimization/79388
27112         PR rtl-optimization/79450
27113         * combine.c (distribute_notes): When removing TEM_INSN for which
27114         corresponding dest has last value recorded, invalidate that last
27115         value.
27117 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27119         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
27120         of explicit '@'.  Add missing assembly comment marker on branch costs
27121         printout.
27123 2017-02-13  Nathan Sidwell  <nathan@acm.org>
27125         * gengtype-lex.l (<in_struct>): Add '/'.
27127 2017-02-13  Martin Liska  <mliska@suse.cz>
27129         PR c/79471
27130         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
27132 2017-02-13  Richard Biener  <rguenther@suse.de>
27134         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
27135         Remove.
27136         * configure: Re-generate.
27137         * config.in: Likewise.
27138         * graphite-dependences.c: Simplify as if
27139         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
27140         * graphite-isl-ast-to-gimple.c: Likewise.
27141         * graphite-optimize-isl.c: Likewise.
27142         * graphite-poly.c: Likewise.
27143         * graphite-sese-to-poly.c: Likewise.
27144         * graphite.h: Likewise.
27145         * toplev.c: Include isl/version.h and use isl_version () for
27146         printing the ISL version.
27147         * doc/install.texi: Update ISL requirement.
27149 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
27151         * doc/standards.texi (Standards): Update reference to
27152         Objective-C 2.0.
27154 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
27156         * doc/extend.texi (Named Address Spaces): sourceware.org now
27157         defaults to https.
27158         * doc/install.texi (Binaries): Ditto.
27159         (Specific): Ditto.
27161 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
27163         * doc/cpp.texi: Replace "stringify"/"stringification" with C
27164         standard terminology "stringize"/"stringizing" throughout.
27165         * doc/cppinternals.texi: Likewise.
27167 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
27169         * doc/extend.texi: Fix some spelling mistakes and typos.
27170         * doc/invoke.texi: Likewise.
27172 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
27174         PR ipa/79224
27175         * params.def (inline-min-speedup) Change from 10 to 8.
27177 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
27179         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
27180         4.5.
27182 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
27184         PR ipa/79224
27185         * ipa-inline-analysis.c (get_minimal_bb): New function.
27186         (record_modified): Use it.
27187         (remap_edge_change_prob): Handle also ancestor functions.
27189 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
27191         * doc/contrib.texi (Contributors): Remove broken link into
27192         the Mauve CVS repository.
27194 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
27196         PR middle-end/79454
27197         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
27198         result computation whenever lhs doesn't have vector mode, not
27199         just when it has BLKmode.
27201 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
27203         * doc/makefile.texi (profiledbootstrap): Refer to the
27204         installation instructions only in textual form.
27206 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
27208         PR target/79295
27209         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
27211 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
27213         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
27214         (Specific): Update mingw-w64 reference.
27215         (Binaries): Ditto.
27216         (Specific): Remove broken link to Renesas RX processor.
27218 2017-02-10  Richard Biener  <rguenther@suse.de>
27220         * toplev.c (process_options): Do not mention obsolete graphite
27221         options when printing sorry message about missing graphite support.
27222         Mention -floop-nest-optimize.
27224 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
27226         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
27227         (vtst_p16): Likewise.
27228         (vtstq_p8): Likewise.
27229         (vtstq_p16): Likewise.
27230         (vtst_p64): New.
27231         (vtstq_p64): Likewise.
27232         * config/arm/arm_neon.h (vgetq_lane_p64): New.
27233         (vset_lane_p64): New.
27234         (vsetq_lane_p64): New.
27236 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
27238         PR tree-optimization/79411
27239         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
27240         stmt operands are SSA_NAMEs used in abnormal phis.
27241         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
27242         phis.
27244 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
27246         PR ipa/70795
27247         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
27248         flag if needed.
27250 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
27252         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
27254 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
27256         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
27257         to avoid warning.
27259         PR c/79413
27260         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
27261         not arbitrary TREE_CONSTANT.
27263         PR c/79431
27264         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
27265         "omp declare target link" attribute unless is_global_var.
27266         * omp-offload.c (find_link_var_op): Likewise.
27268 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
27269             Chung-Lin Tang  <cltang@codesourcery.com>
27271         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
27272         OMP_CLAUSE_TILE.
27273         (gimplify_adjust_omp_clauses): Don't delete TILE.
27274         (gimplify_omp_for): Deal with TILE.
27275         * internal-fn.c (expand_GOACC_TILE): New function.
27276         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
27277         (GOACC_TILE): New.
27278         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
27279         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
27280         element fields.
27281         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
27282         avoid DIV for outermost collapse var.
27283         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
27284         Remove out of date comments, fix whitespace.
27285         * omp-general.c (omp_extract_for_data): Deal with tiling.
27286         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
27287         adjust OLF_DIM_BASE value.
27288         (struct omp_for_data): Add tiling field.
27289         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
27290         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
27291         for auto loops.  Remove default auto determining, moved to
27292         oacc_loop_fixed_partitions.
27293         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
27294         stmts, add e_mask field.
27295         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
27296         (oacc_thread_numbers): Use oacc_dim_call.
27297         (oacc_xform_tile): New.
27298         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
27299         (finish_oacc_loop): Adjust for ifns vector.
27300         (oacc_loop_discover_walk): Append loop abstraction sites to list,
27301         add case for GOACC_TILE fns.
27302         (oacc_loop_xform_loop): Delete.
27303         (oacc_loop_process): Iterate over call list directly, and add
27304         handling for GOACC_TILE fns.
27305         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
27306         dump partitioning.
27307         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
27308         vector partitioning to outer loops.  Assign 2 partitions to loops
27309         when available. Add TILE handling.
27310         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
27311         (execite_oacc_device_lower): Process GOACC_TILE fns,
27312         ignore unknown specs.
27313         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
27314         * tree.c (omp_clause_num_ops): Adjust TILE ops.
27315         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
27317 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
27319         * configure.ac (ACX_BUGURL): Update.
27320         * configure: Regenerate.
27322 2017-02-09  Richard Biener  <rguenther@suse.de>
27324         PR tree-optimization/69823
27325         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
27326         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
27328 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
27330         * config/arc/arc-c.def: Add __NPS400__ definition.
27331         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
27332         (TARGET_NPS400): Define.
27334 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
27336         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
27337         file.
27338         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
27339         pointer, arch_info.
27340         (arc_cpu_types): Fill the arch_info field with a pointer into the
27341         arc_arch_types table.
27342         (arc_selected_cpu): Declare.
27343         * config/arc/arc.c (arc_selected_cpu): Make global.
27344         (arc_selected_arch): Delete.
27345         (arc_base_cpu): Delete.
27346         (arc_override_options): Remove references to deleted variables,
27347         update access to arch information.
27348         (ARC_OPT): Update access to arch information.
27349         (ARC_OPTX): Likewise.
27350         * config/arc/arc.h (arc_base_cpu): Remove declaration.
27351         (TARGET_ARC600): Update access to arch information.
27352         (TARGET_ARC601): Likewise.
27353         (TARGET_ARC700): Likewise.
27354         (TARGET_EM): Likewise.
27355         (TARGET_HS): Likewise.
27356         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
27357         information.
27359 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
27361         PR target/78604
27362         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
27363         condition/operands for integer GE/LE/GEU/LEU operations.
27365 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
27367         PR translation/79397
27368         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
27369         of AltiVec.
27371 2017-02-08  Martin Jambor  <mjambor@suse.cz>
27373         PR ipa/79375
27374         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
27375         whether allocation happened.
27376         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
27377         nothing was allocated.
27379 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
27381         PR tree-optimization/79408
27382         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
27383         constant, but SSA_NAME with a known integer range, use the minimum
27384         of that range instead of op1 to determine if modulo can be replaced
27385         with its first operand.
27387 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27389         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
27391 2017-02-08  Richard Biener  <rguenther@suse.de>
27393         PR tree-optimization/71824
27394         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
27395         Check all loops contained in the merged region.
27397 2017-02-07  Andrew Pinski  <apinski@cavium.com>
27399         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
27401 2017-02-07  Andrew Pinski  <apinski@cavium.com>
27403         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
27404         (thunderxt88): Likewise.
27405         (thunderxt81): Disable LSE and change v8.1 to v8.
27406         (thunderxt83): Likewise.
27408 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
27409             Richard Biener  <rguenther@suse.de>
27411         PR middle-end/79399
27412         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
27413         type from int to size_t.
27414         * ira-costs.c (struct_costs_size): Change type from int to size_t.
27416 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
27418         PR rtl-optimization/79386
27419         * cprop.c (bypass_conditional_jumps): Initialize
27420         bypass_last_basic_block already before splitting bbs after
27421         unconditional traps...
27422         (bypass_conditional_jumps): ... rather than here.
27424         PR target/79299
27425         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
27426         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
27427         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
27428         fix -masm=intel patterns.
27430 2017-02-07  Richard Biener  <rguenther@suse.de>
27432         PR tree-optimization/79256
27433         PR middle-end/79278
27434         * builtins.c (get_object_alignment_2): Use min_align_of_type
27435         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
27436         and ADJUST_FIELD_ALIGN.
27438         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
27439         type parameter.
27440         * doc/tm.texi: Regenerate.
27441         * stor-layout.c (layout_decl): Adjust.
27442         (update_alignment_for_field): Likewise.
27443         (place_field): Likewise.
27444         (min_align_of_type): Likewise.
27445         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
27446         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
27447         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
27448         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
27449         * config/frv/frv.c (frv_adjust_field_align): Likewise.
27450         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
27451         * config/i386/i386.c (x86_field_alignment): Likewise.
27452         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
27453         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
27454         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
27455         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
27456         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
27457         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
27458          Likewise.
27460         Revert
27461         2017-01-30  Richard Biener  <rguenther@suse.de>
27463         PR tree-optimization/79256
27464         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
27465         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
27466         alignment on TYPE.
27468 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
27470         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
27471         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
27472         builtins to SImode and emit a zero-extend, if necessary.
27474 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
27476         * docs/invoke.texi (RISC-V Options): Alphabetize.
27478 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
27480         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
27481         options.
27483 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
27485         * config/riscv/riscv.c: New file.
27486         * common/config/riscv/riscv-common.c: Likewise.
27487         * config.gcc: Likewise.
27488         * config/riscv/constraints.md: Likewise.
27489         * config/riscv/elf.h: Likewise.
27490         * config/riscv/generic.md: Likewise.
27491         * config/riscv/linux.h: Likewise.
27492         * config/riscv/multilib-generator: Likewise.
27493         * config/riscv/peephole.md: Likewise.
27494         * config/riscv/pic.md: Likewise.
27495         * config/riscv/predicates.md: Likewise.
27496         * config/riscv/riscv-builtins.c: Likewise.
27497         * config/riscv/riscv-c.c: Likewise.
27498         * config/riscv/riscv-ftypes.def: Likewise.
27499         * config/riscv/riscv-modes.def: Likewise.
27500         * config/riscv/riscv-opts.h: Likewise.
27501         * config/riscv/riscv-protos.h: Likewise.
27502         * config/riscv/riscv.h: Likewise.
27503         * config/riscv/riscv.md: Likewise.
27504         * config/riscv/riscv.opt: Likewise.
27505         * config/riscv/sync.md: Likewise.
27506         * config/riscv/t-elf-multilib: Likewise.
27507         * config/riscv/t-linux: Likewise.
27508         * config/riscv/t-linux-multilib: Likewise.
27509         * config/riscv/t-riscv: Likewise.
27510         * configure.ac: Likewise.
27511         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
27512         Waterman as RISC-V maintainers.
27513         * doc/install.texi: Add RISC-V entries.
27514         * doc/invoke.texi: Add RISC-V options section.
27515         * doc/md.texi: Add RISC-V constraints section.
27516         * configure: Regenerated.
27518 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
27520         PR target/66144
27521         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
27522         false values to be constant vectors with all 0 or all 1 bits set.
27523         (vcondu<mode><mode>): Likewise.
27524         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
27525         predicate.
27526         (fpmask_comparison_operator): Update comment.
27527         (vecint_comparison_operator): New predicate.
27528         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
27529         vector conditionals when the true and false values are constant
27530         vectors with all 0 bits or all 1 bits set.
27532 2017-02-06  Martin Sebor  <msebor@redhat.com>
27534         PR  tree-optimization/79376
27535         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
27537 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
27539         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
27540         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
27541         to simplify split condition.
27543 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
27545         * omp-expand.c (oxpand_omp_atomic_fetch_op,
27546         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
27547         false.
27549 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
27551         PR rtl-optimization/68664
27552         * target.def (can_speculate_insn): New hook.
27553         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
27554         * doc/tm.texi: Regenerate.
27555         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
27556         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
27557         (rs6000_sched_can_speculate_insn): New function.
27559 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
27561         PR tree-optimization/79284
27562         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
27563         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
27564         vectorizable_mask_load_store, vectorizable_operation,
27565         vect_is_simple_cond, get_same_sized_vectype): Use it instead
27566         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
27567         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
27568         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
27569         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
27570         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
27571         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
27572         is_gimple_assign (stmt).  Replace another such test with
27573         is_gimple_assign (stmt).
27575 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
27577         PR target/78883
27578         * config/avr/avr.c (rtl-iter.h): Include it.
27579         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
27580         (avr_legitimate_combined_insn): ...and implementation.
27582 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27584         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
27585         * config/s390/s390.c (s390_const_operand_ok)
27586         (s390_canonicalize_comparison, s390_extract_part)
27587         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
27588         (s390_contiguous_bitmask_p, s390_rtx_costs)
27589         (legitimize_pic_address): Likewise.
27590         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
27591         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
27592         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
27593         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
27594         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
27596 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
27598         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
27599         REGNO($0) == REGNO($1).
27601 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27603         * config/s390/linux.h(SIZE_TYPE): Add comment.
27605 2017-02-06  Julian Brown  <julian@codesourcery.com>
27606             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
27607             Virendra Pathak  <virendra.pathak@broadcom.com>
27609         * config/aarch64/aarch64-cores.def: Change the scheduler
27610         to Thunderx2t99.
27611         * config/aarch64/aarch64.md: Include thunderx2t99.md.
27612         * config/aarch64/thunderx2t99.md: New file.
27614 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
27616         * doc/standards.texi (Go Language): Update link to language
27617         standard.
27619 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
27621         * tree-eh.c (lower_resx): Sanitize profile.
27622         (cleanup_empty_eh_move_lp): Likewise.
27624 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
27626         PR tree-ssa/79347
27627         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
27628         ELSE_PROB.
27629         * cfgloopmanip.h (loop_version): Update prototype.
27630         * modulo-sched.c (sms_schedule): Update call of loop_version.
27631         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
27632         * tree-parloops.c (gen_parallel_loop): Likewise.
27633         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
27634         * tree-ssa-loop-split.c (split_loop): Likewise.
27635         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
27636         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
27638 2017-02-05  Martin Liska  <mliska@suse.cz>
27640         PR bootstrap/78985
27641         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
27642         variable to NULL.
27643         (print_operand_address): Initialize a struct to zero.
27645 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
27647         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
27648         garbage collector only in textual form.
27650 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
27652         * doc/extend.texi (x86 specific memory model extensions for
27653         transactional memory): Simplify a phrase.
27655 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
27657         PR target/79353
27658         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
27659         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
27660         (atomic_storedi_1): Likewise.
27662 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
27664         PR tree-optimization/79338
27665         * tree-parloops.c (gather_scalar_reductions): Don't call
27666         vect_analyze_loop_form for loop->inner before destroying loop's
27667         loop_vinfo.
27669 2017-02-03  Martin Sebor  <msebor@redhat.com>
27671         PR tree-optimization/79327
27672         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
27673         when precision has resulted in leading zeros.
27674         (format_integer): Adjust the likely counter to assume an unknown
27675         argument that may be zero is non-zero.
27677 2017-02-03  Jason Merrill  <jason@redhat.com>
27679         PR c++/78689
27680         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
27681         avoid copying non-taken branch.
27683 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
27685         PR tree-optimization/79340
27686         * tree-vect-loop.c (vectorizable_reduction): Release
27687         vec_defs elements after safe_splicing them into other vectors.
27688         Formatting fixes.
27690         PR tree-optimization/79327
27691         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
27692         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
27693         dirtype.
27694         (format_integer): Use wide_int_to_tree instead of build_int_cst
27695         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
27696         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
27697         of shortest and longest sequence.
27699 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
27701         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
27702         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
27704 2017-02-03  Walter Lee  <walt@tilera.com>
27706         PR target/78862
27707         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
27708         after initial stackframe link reg save.
27709         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
27711 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
27713         PR target/79354
27714         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
27715         wu for stxssp alternative.
27717 2017-02-03  Martin Sebor  <msebor@redhat.com>
27719         PR tree-optimization/79352
27720         * gimple-fold.c (get_range_strlen): Add argument.
27721         (get_range_strlen): Change return type to bool.
27722         (get_maxval_strlen): Pass in a dummy argument.
27723         * gimple-fold.h (get_range_strlen): Change return type to bool.
27724         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
27725         * tree.h (array_at_struct_end_p): Add argument.
27726         * tree.c (array_at_struct_end_p): Handle it.
27728 2017-02-03  Martin Liska  <mliska@suse.cz>
27730         PR lto/66295
27731         * multiple_target.c (create_dispatcher_calls): Redirect edge
27732         from a caller of a dispatcher.
27733         (expand_target_clones): Make the clones local.
27734         (ipa_target_clone): Do both target clones and resolvers.
27735         (ipa_dispatcher_calls): Remove the pass.
27736         (pass_dispatcher_calls::gate): Likewise.
27737         (make_pass_dispatcher_calls): Likewise.
27738         * passes.def (pass_target_clone): Put as very first IPA early
27739         pass.
27741 2017-02-03  Martin Liska  <mliska@suse.cz>
27743         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
27744         in case of a function with ifunc attribute.
27746 2017-02-03  Martin Liska  <mliska@suse.cz>
27748         * cgraph.c (cgraph_node::dump): Dump function version info.
27749         * symtab.c (symtab_node::dump_base): Add missing new line.
27751 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
27753         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
27754         (ifcombine_ifandif): Use it.
27756 2017-02-03  Martin Liska  <mliska@suse.cz>
27758         * doc/invoke.texi: Document default value for
27759         use-after-scope-direct-emission-threshold.
27761 2017-02-03  Martin Liska  <mliska@suse.cz>
27763         PR tree-optimization/79339
27764         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
27765         (format_floating): Likewise.
27767 2017-02-03  Martin Liska  <mliska@suse.cz>
27769         PR ipa/79337
27770         * ipa-prop.c (ipa_node_params_t::insert): Remove current
27771         implementation.
27772         (ipa_node_params_t::remove): Likewise.
27773         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
27774         initialization from removed ipa_node_params_t::insert.
27775         (ipa_node_params::~ipa_node_params): Move from removed
27776         ipa_node_params_t::release.
27777         * symbol-summary.h (symbol_summary::m_released): New member.
27778         Do not release a summary twice.  Do not allow to call finalizer
27779         for types of a summary that live in GGC memory.
27781 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
27783         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
27784         cmp_branch fusion.
27786 2017-02-02  Martin Sebor  <msebor@redhat.com>
27788         PR middle-end/79275
27789         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
27790         (format_string): Tighten up the range of output for non-constant
27791         strings and correct the expected range for wide non-constant strings.
27793 2017-02-02  Martin Sebor  <msebor@redhat.com>
27795         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
27797         PR middle-end/32003
27798         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
27799         index.
27800         (-fdump-tree-@var): Add to index and document how to come up
27801         with pass-specific option and dump file names.
27802         (-fdump-passes): Clarify where to look for output.
27804 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
27806         PR middle-end/77445
27807         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
27808         statistics of the analyzed path; allow threading for speed when
27809         any of BBs along the path are optimized for speed.
27811 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
27813         PR middle-end/78468
27814         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
27815         settings of the virtual registers.
27817         Revert again
27818         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27820         * explow.c (get_dynamic_stack_size): Take known alignment of stack
27821         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
27822         needed.
27824 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27826         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
27827         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
27829 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27831         * config/s390/s390.md: Add missing comments with the expanded
27832         mnemonics.
27833         * config/s390/vector.md: Likewise.
27834         * config/s390/vx-builtins.md: Likewise.
27836 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
27838         PR target/79197
27839         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
27840         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
27841         conditions on a single line.
27843 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27845         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
27846         __S390_VX__ to __VX__.
27848 2017-02-01  Andrew Pinski  <apinski@cavium.com>
27850         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
27851         stmt_info to record_stmt_cost.
27852         (vect_get_known_peeling_cost): Pass stmt_info if known to
27853         record_stmt_cost.
27854         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
27855         cpu_vector_cost field into
27856         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
27857         field into vec_int_stmt_cost and vec_fp_stmt_cost.
27858         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
27859         splitting of scalar_stmt_cost and vec_stmt_cost.
27860         (thunderx_vector_cost): Likewise.
27861         (cortexa57_vector_cost): LIkewise.
27862         (exynosm1_vector_cost): Likewise.
27863         (xgene1_vector_cost): Likewise.
27864         (thunderx2t99_vector_cost): Improve after the splitting of the two
27865         fields.
27866         (aarch64_builtin_vectorization_cost): Update for the splitting of
27867         scalar_stmt_cost and vec_stmt_cost.
27869 2017-02-01  Torvald Riegel  <triegel@redhat.com>
27870             Richard Henderson  <rth@redhat.com>
27872         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
27873         conditional on existance of a fast atomic load.
27874         * optabs-query.c (can_atomic_load_p): New function.
27875         * optabs-query.h (can_atomic_load_p): Declare it.
27876         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
27877         no fast atomic load is available for the particular size of access.
27878         (expand_atomic_compare_and_swap): Likewise.
27879         (expand_atomic_load): Likewise.
27880         (expand_atomic_store): Likewise.
27881         (expand_atomic_fetch_op): Likewise.
27882         * testsuite/lib/target-supports.exp
27883         (check_effective_target_sync_int_128): Remove x86 because it provides
27884         no fast atomic load.
27885         (check_effective_target_sync_int_128_runtime): Likewise.
27887 2017-02-01  Richard Biener  <rguenther@suse.de>
27889         * graphite.c: Include tree-vectorizer.h for find_loop_location.
27890         (graphite_transform_loops): Provide opt-info for optimized nests.
27891         * tree-parloop.c (parallelize_loops): Provide opt-info for
27892         parallelized loops.
27894 2017-02-01  Richard Biener  <rguenther@suse.de>
27896         PR middle-end/79315
27897         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
27898         was not set before.
27900 2017-02-01  Richard Biener  <rguenther@suse.de>
27902         PR tree-optimization/71824
27903         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
27904         Verify the loops are valid in the merged SESE region.
27905         (scop_detection::can_represent_loop_1): Check analyzing the
27906         evolution of the number of iterations in the region succeeds.
27908 2017-01-31  Ian Lance Taylor  <iant@golang.org>
27910         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
27911         REG_ARGS_SIZE note to 32-bit push insns and call insn.
27913 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
27915         PR preprocessor/79210
27916         * input.c (get_substring_ranges_for_loc): Replace line_width
27917         assertion with error-handling.
27919 2017-01-31  Richard Biener  <rguenther@suse.de>
27921         PR tree-optimization/77318
27922         * graphite-sese-to-poly.c (extract_affine): Fix assert.
27923         (create_pw_aff_from_tree): Take loop parameter.
27924         (add_condition_to_pbb): Pass loop of the condition to
27925         create_pw_aff_from_tree.
27927 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
27929         * config/s390/s390.c (s390_asan_shadow_offset): New function.
27930         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
27932 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
27934         PR target/78597
27935         PR target/79038
27936         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
27937         no longer used.
27938         (convert_int_to_float128): Likewise.
27939         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
27940         (convert_int_to_float128): Likewise.
27941         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
27942         (UNSPEC_IEEE128_CONVERT): Likewise.
27943         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
27944         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
27945         Use local variables for IBM extended format.
27946         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
27947         (fix_trunc<mode>si2_fprs): Likewise.
27948         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
27949         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
27950         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
27951         to know that we can now have integers of all sizes in vector
27952         registers.
27953         (fix<uns>_<mode>di2_hw): Likewise.
27954         (float<uns>_<mode>si2_hw): Likewise.
27955         (fix_<mode>si2_hw): Likewise.
27956         (fixuns_<mode>si2_hw): Likewise.
27957         (float<uns>_<mode>di2_hw): Likewise.
27958         (float_<mode>di2_hw): Likewise.
27959         (float_<mode>si2_hw): Likewise.
27960         (floatuns_<mode>di2_hw): Likewise.
27961         (floatuns_<mode>si2_hw): Likewise.
27962         (xscvqp<su>wz_<mode>): Delete, no longer used.
27963         (xscvqp<su>dz_<mode>): Likewise.
27964         (xscv<su>dqp_<mode>): Likewise.
27965         (ieee128_mfvsrd_64bit): Likewise.
27966         (ieee128_mfvsrd_32bit): Likewise.
27967         (ieee128_mfvsrwz): Likewise.
27968         (ieee128_mtvsrw): Likewise.
27969         (ieee128_mtvsrd_64bit): Likewise.
27970         (ieee128_mtvsrd_32bit): Likewise.
27972 2017-01-31  Martin Liska  <mliska@suse.cz>
27974         PR ipa/79285
27975         * ipa-prop.c (ipa_free_all_node_params): Call release method
27976         instead of ~sumbol_summary to not to trigger double times
27977         dtor of hash_map.
27979 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
27981         PR tree-optimization/71691
27982         * bitmap.h (class auto_bitmap): New.
27983         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
27984         is_maybe_undefined instead of ssa_undefined_value_p.
27986 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27988         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
27989         __S390_ARCH_LEVEL__ to __ARCH__.
27991 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
27993         PR tree-optimization/79267
27994         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
27995         if should_remove_lhs_p is true.
27997 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
27999         PR debug/63238
28000         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
28001         (add_alignment_attribute): New.
28002         (base_type_die): Add alignment attribute.
28003         (subrange_type_die): Likewise.
28004         (modified_type_die): Likewise.
28005         (gen_array_type_die): Likewise.
28006         (gen_descr_array_type_die: Likewise.
28007         (gen_enumeration_type_die): Likewise.
28008         (gen_subprogram_die): Likewise.
28009         (gen_variable_die): Likewise.
28010         (gen_field_die): Likewise.
28011         (gen_ptr_to_mbr_type_die): Likewise.
28012         (gen_struct_or_union_type_die): Likewise.
28013         (gen_subroutine_type_die): Likewise.
28014         (gen_typedef_die): Likewise.
28015         (base_type_cmp): Compare alignment attribute.
28017 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
28019         PR target/79170
28020         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
28021         (setb_unsigned) New pattern for setb with CCUNS.
28022         * config/rs6000/rs6000.c (expand_block_compare): Use a different
28023         subfc./subfe sequence to avoid overflow problems.  Generate a
28024         shorter sequence with cmpld/setb for power9.
28025         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
28026         for generating subfc. instruction.
28027         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
28028         now uses this instruction.
28030 2017-01-30  Ian Lance Taylor  <iant@google.com>
28032         PR debug/79289
28033         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
28034         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
28036 2017-01-30  Martin Sebor  <msebor@redhat.com>
28038         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
28039         Move constant to the right of a relational operator.
28040         (get_mpfr_format_length, format_character, format_string): Ditto.
28041         (should_warn_p, maybe_warn): Same.
28043         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
28045 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
28047         PR lto/79061
28048         * asan.c (get_translation_unit_decl): Remove function.
28049         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
28051 2017-01-30  Martin Liska  <mliska@suse.cz>
28053         PR gcov-profile/79259
28054         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
28055         -fprofile-generate.
28057 2017-01-30  Martin Liska  <mliska@suse.cz>
28059         PR bootstrap/78985
28060         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
28061         Initialize variables with NULL value.
28063 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
28065         PR target/79260
28066         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
28067         tm_p_file.
28068         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
28070 2017-01-30  Richard Biener  <rguenther@suse.de>
28072         PR tree-optimization/79276
28073         * tree-vrp.c (process_assert_insertions): Properly adjust common
28074         when removing a duplicate.
28076         * gcc.dg/torture/pr79276.c: New testcase.
28078 2017-01-30  Richard Biener  <rguenther@suse.de>
28080         PR tree-optimization/79256
28081         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
28082         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
28083         alignment on TYPE.
28084         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
28086 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28088         PR target/79240
28089         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
28090         ("*r<noxa>sbg_<mode>_sll_bitmask")
28091         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
28092         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
28093         Use contiguous_bitmask_nowrap_operand.
28095 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28097         PR target/79268
28098         * config/rs6000/altivec.h (vec_xl): Revise #define.
28099         (vec_xst): Likewise.
28101 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
28103         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
28105 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
28107         PR rtl-optimization/79194
28108         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
28109         traps before call to bypass_conditional_jumps.
28111 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
28113         PR tree-optimization/71374
28114         * lra-constraints.c (check_conflict_input_operands): New.
28115         (match_reload): Use it.
28117 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
28119         PR target/79131
28120         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
28121         account to calculate conflict_set.
28123 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
28125         PR rtl-optimization/78559
28126         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
28127         other_insn in combine.
28129 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
28131         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
28132         uint16_type_node for BT_UINT16.
28134 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
28136         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
28137         "RTL Tests" to menu.
28138         (GIMPLE Tests): New node.
28139         (RTL Tests): New node.
28141 2017-01-27  Richard Biener  <rguenther@suse.de>
28143         PR tree-optimization/79245
28144         * tree-loop-distribution.c (distribute_loop): Apply cost
28145         modeling also to detected patterns.
28147 2017-01-27  Richard Biener  <rguenther@suse.de>
28149         PR tree-optimization/71433
28150         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
28151         (compare_assert_loc): New function.
28152         (process_assert_insertions): Sort and optimize assert locations
28153         to remove duplicates and push down identical assertions on
28154         edges to their destination block.
28156 2017-01-27  Richard Biener  <rguenther@suse.de>
28158         PR tree-optimization/79244
28159         * tree-vrp.c (remove_range_assertions): Forcefully propagate
28160         out SSA names even if abnormal.
28162 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
28164         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
28165         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
28166         instead of MPFR_RNDN.
28168 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
28170         PR target/79239
28171         * arm.c (arm_option_override): Don't call build_target_option_node
28172         until after doing all option overrides.
28173         (arm_valid_target_attribute_tree): Likewise.
28175 2017-01-27  Martin Liska  <mliska@suse.cz>
28177         * doc/invoke.texi (-fprofile-arcs): Document profiling support
28178         for {cd}tors and C++ {cd}tors.
28180 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28182         * config/s390/s390.md ("*setmem_long_and")
28183         ("*setmem_long_and_31z"): Use zero_extend instead of and.
28185 2017-01-26  Martin Sebor  <msebor@redhat.com>
28187         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
28188         of precision.
28190 2017-01-26  Martin Sebor  <msebor@redhat.com>
28192         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
28193         HAVE_DFmode before using XFmode or DFmode.
28194         (parse_directive): Avoid using the z length modifier to avoid
28195         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
28197         PR middle-end/78703
28198         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
28199         to accept adjustment as an array.
28200         (get_int_range): New function.
28201         (struct directive): Make width and prec arrays.
28202         (directive::set_width, directive::set_precision): Call get_int_range.
28203         (format_integer, format_floating): Handle width and precision ranges.
28204         (format_string, parse_directive): Same.
28206 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
28208         PR debug/79129
28209         * dwarf2out.c (generate_skeleton_bottom_up): For children with
28210         comdat_type_p set, just clone them, but keep the children in the
28211         original DIE.
28213         PR debug/78835
28214         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
28215         which have direct callers with -fvar-tracking-assignments enabled
28216         in the current TU.
28217         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
28218         inside of type units.
28220 2017-01-26  Martin Sebor  <msebor@redhat.com>
28222         PR middle-end/78703
28223         * gimple-ssa-sprintf.c (struct result_range): Add likely and
28224         unlikely counters.
28225         (struct format_result): Replace number_chars, number_chars_min,
28226         and number_chars_max with a single member of struct result_range.
28227         Remove bounded.
28228         (format_result::operator+=): Adjust.
28229         (struct fmtresult): Remove bounded.  Handle likely and unlikely
28230         counters.
28231         (fmtresult::adjust_for_width_or_precision): New function.
28232         (fmtresult:type_max_digits): New function.
28233         (bytes_remaining): Handle likely and unlikely counters.
28234         (min_bytes_remaining): Remove.
28235         (format_percent): Simplify.
28236         (format_integer, format_floating): Set likely and unlikely counters.
28237         (get_string_length, format_character, format_string): Same.
28238         (format_plain, should_warn_p): New function.
28239         (maybe_warn): Call should_warn_p.  Update diagnostic messages
28240         and handle those for all directives, including plain strings.
28241         (format_directive): Handle likely and unlikely counters.
28242         Remove unnecessary quoting from diagnostics.  Add an informational
28243         note.
28244         (add_bytes): Remove.
28245         (pass_sprintf_length::compute_format_length): Simplify.
28246         (try_substitute_return_value): Handle likely and unlikely counters.
28248 2017-01-26  Carl Love  <cel@us.ibm.com>
28250         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
28251         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
28253 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
28255         PR target/79131
28256         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
28257         endianess for subregs into account.
28258         * lra-constraints.c (lra_constraints): Do risky transformations
28259         always on the first iteration.
28260         * lra-lives.c (check_pseudos_live_through_calls): Add arg
28261         last_call_used_reg_set.
28262         (process_bb_lives): Define and use last_call_used_reg_set.
28263         * lra.c (lra): Always continue after lra_constraints on the first
28264         iteration.
28266 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
28268         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
28269         constant.
28270         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
28272 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
28274         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
28275         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
28276         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
28277         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
28278         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
28279         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
28280         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
28281         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
28282         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
28284 2017-01-26  Marek Polacek  <polacek@redhat.com>
28286         PR c/79199
28287         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
28288         for the third operand.
28290 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
28292         PR middle-end/79236
28293         * omp-low.c (struct omp_context): Add simt_stmt field.
28294         (scan_omp_for): Return omp_context *.
28295         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
28296         context to the _simt_ SIMD stmt.
28297         (lower_omp_for): For combined SIMD with sibling _simt_
28298         SIMD, make sure to use the same decls in _looptemp_
28299         clauses as in the sibling.
28301 2017-01-26  David Sherwood  <david.sherwood@arm.com>
28303         PR middle-end/79212
28304         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
28305         all contexts.
28307 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
28309         PR target/70465
28310         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
28311         emit fld b; fld a; if possible.
28313         * brig-builtins.def: Update copyright years.
28314         * config/arm/arm_acle_builtins.def: Update copyright years.
28316 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
28318         PR target/79179
28319         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
28320         constraint instead of o for the stxsd instruction.
28322 2017-01-25  Carl Love  <cel@us.ibm.com>
28324         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
28325         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
28327 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
28329         * doc/invoke.texi (C++ Dialect Options): Fix typo.
28331 2017-01-25  Richard Biener  <rguenther@suse.de>
28333         PR tree-optimization/69264
28334         * target.def (vector_alignment_reachable): Improve documentation.
28335         * doc/tm.texi: Regenerate.
28336         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
28337         and add a comment.
28338         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
28339         earlier changes with respect to TYPE_USER_ALIGN.
28340         (vector_alignment_reachable_p): Likewise.  Improve dumping.
28342 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28344         PR target/79145
28345         * config/arm/arm.md (xordi3): Force constant operand into a register
28346         for TARGET_IWMMXT.
28348 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28350         * doc/invoke.texi (-fstore-merging): Correct default optimization
28351         levels at which it is enabled.
28352         (-O): Move -fstore-merging from list to...
28353         (-O2): ... Here.
28355 2017-01-25  Richard Biener  <rguenther@suse.de>
28357         PR debug/78363
28358         * omp-expand.c: Include debug.h.
28359         (expand_omp_taskreg): Make sure to generate early debug before
28360         outlining anything from a function.
28361         (expand_omp_target): Likewise.
28362         (grid_expand_target_grid_body): Likewise.
28364 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
28366         PR lto/79061
28367         * asan.c (get_translation_unit_decl): New function.
28368         (asan_add_global): Extract modules file name from globals
28369         TRANSLATION_UNIT_DECL name.
28371 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
28373         PR target/77439
28374         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
28375         for long calls with APCS frame and VFP.
28377 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
28379         * cfg.c (original_copy_tables_initialized_p): New function.
28380         * cfg.h (original_copy_tables_initialized_p): New decl.
28381         * cfgrtl.c (relink_block_chain): Guard the call to
28382         free_original_copy_tables with a call to
28383         original_copy_tables_initialized_p.
28384         * cgraph.h (symtab_node::native_rtl_p): New decl.
28385         * cgraphunit.c (symtab_node::native_rtl_p): New function.
28386         (symtab_node::needed_p): Don't assert for early assembly output
28387         for __RTL functions.
28388         (cgraph_node::finalize_function): Set "force_output" for __RTL
28389         functions.
28390         (cgraph_node::analyze): Bail out early for __RTL functions.
28391         (analyze_functions): Update assertion to support __RTL functions.
28392         (cgraph_node::expand): Bail out early for __RTL functions.
28393         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
28394         __RTL functions.
28395         * function.h (struct function): Update comment for field
28396         "pass_startwith".
28397         * gimple-expr.c: Include "tree-pass.h".
28398         (gimple_has_body_p): Return false for __RTL functions.
28399         * Makefile.in (OBJS): Add run-rtl-passes.o.
28400         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
28401         accessor.
28402         (gcc::pass_manager::get_clean_slate): New accessor.
28403         * passes.c: Include "insn-addr.h".
28404         (should_skip_pass_p): Add logging.  Update logic for running
28405         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
28406         property-provider override so it is only done for gimple passes.
28407         Don't skip dfinit.
28408         (skip_pass): New function.
28409         (execute_one_pass): Call skip_pass when skipping passes.
28410         * read-md.c (md_reader::read_char): Support filtering
28411         the input to a subset of line numbers.
28412         (md_reader::md_reader): Initialize fields
28413         m_first_line and m_last_line.
28414         (md_reader::read_file_fragment): New function.
28415         * read-md.h (md_reader::read_file_fragment): New decl.
28416         (md_reader::m_first_line): New field.
28417         (md_reader::m_last_line): New field.
28418         * read-rtl-function.c (function_reader::create_function): Only
28419         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
28420         curr_properties.  Set DECL_INITIAL to a dummy block.
28421         (read_rtl_function_body_from_file_range): New function.
28422         * read-rtl-function.h (read_rtl_function_body_from_file_range):
28423         New decl.
28424         * run-rtl-passes.c: New file.
28425         * run-rtl-passes.h: New file.
28427 2017-01-24  Jeff Law  <law@redhat.com>
28429         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
28430         buffer size.
28432 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
28434         PR tree-optimization/79159
28435         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
28436         (record_nonwrapping_iv): Improve boundary using above function if no
28437         value range information.
28439 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
28440             Martin Jambor  <mjambor@suse.cz>
28442         * brig-builtins.def: New file.
28443         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
28444         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
28445         (DEF_HSAIL_SAT_BUILTIN): Likewise.
28446         (DEF_HSAIL_INTR_BUILTIN): Likewise.
28447         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
28448         * builtin-types.def (BT_INT8): New.
28449         (BT_INT16): Likewise.
28450         (BT_UINT8): Likewise.
28451         (BT_UINT16): Likewise.
28452         (BT_FN_ULONG): Likewise.
28453         (BT_FN_UINT_INT): Likewise.
28454         (BT_FN_UINT_ULONG): Likewise.
28455         (BT_FN_UINT_LONG): Likewise.
28456         (BT_FN_UINT_PTR): Likewise.
28457         (BT_FN_ULONG_PTR): Likewise.
28458         (BT_FN_INT8_FLOAT): Likewise.
28459         (BT_FN_INT16_FLOAT): Likewise.
28460         (BT_FN_UINT32_FLOAT): Likewise.
28461         (BT_FN_UINT16_FLOAT): Likewise.
28462         (BT_FN_UINT8_FLOAT): Likewise.
28463         (BT_FN_UINT64_FLOAT): Likewise.
28464         (BT_FN_UINT16_UINT32): Likewise.
28465         (BT_FN_UINT32_UINT16): Likewise.
28466         (BT_FN_UINT16_UINT16_UINT16): Likewise.
28467         (BT_FN_INT_PTR_INT): Likewise.
28468         (BT_FN_UINT_PTR_UINT): Likewise.
28469         (BT_FN_LONG_PTR_LONG): Likewise.
28470         (BT_FN_ULONG_PTR_ULONG): Likewise.
28471         (BT_FN_VOID_UINT64_UINT64): Likewise.
28472         (BT_FN_UINT8_UINT8_UINT8): Likewise.
28473         (BT_FN_INT8_INT8_INT8): Likewise.
28474         (BT_FN_INT16_INT16_INT16): Likewise.
28475         (BT_FN_INT_INT_INT): Likewise.
28476         (BT_FN_UINT_FLOAT_UINT): Likewise.
28477         (BT_FN_FLOAT_UINT_UINT): Likewise.
28478         (BT_FN_ULONG_UINT_UINT): Likewise.
28479         (BT_FN_ULONG_UINT_PTR): Likewise.
28480         (BT_FN_ULONG_ULONG_ULONG): Likewise.
28481         (BT_FN_UINT_UINT_UINT): Likewise.
28482         (BT_FN_VOID_UINT_PTR): Likewise.
28483         (BT_FN_UINT_UINT_PTR: Likewise.
28484         (BT_FN_UINT32_UINT64_PTR): Likewise.
28485         (BT_FN_INT_INT_UINT_UINT): Likewise.
28486         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
28487         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
28488         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
28489         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
28490         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
28491         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
28492         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
28493         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
28494         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
28495         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
28496         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
28497         * doc/frontends.texi: List BRIG FE.
28498         * doc/install.texi (Testing): Add BRIG tesring requirements.
28499         * doc/invoke.texi (Overall Options): Mention BRIG.
28500         * doc/standards.texi (Standards): Doucment BRIG HSA version.
28502 2017-01-24  Richard Biener  <rguenther@suse.de>
28504         PR translation/79208
28505         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
28507 2017-01-24  Martin Jambor  <mjambor@suse.cz>
28509         PR bootstrap/79198
28510         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
28511         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
28512         and known_contexts.
28514 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
28516         PR middle-end/79123
28517         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
28518         casts from signed to unsigned really don't have a range.
28520 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
28522         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
28523         GMP_RNDx for compatiblity.
28525 2017-01-24  Martin Liska  <mliska@suse.cz>
28527         PR bootstrap/79132
28528         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
28529         that would prevent us to call alloca with -1 as argument.
28531 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
28533         * dwarf2out.c (output_compilation_unit_header, output_file_names):
28534         Avoid -Wformat-security warning.
28536 2017-01-23  Andrew Pinski  <apinski@cavium.com>
28538         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
28539         cost table.
28541 2017-01-23  Martin Sebor  <msebor@redhat.com>
28543         PR middle-end/78703
28544         * gimple-ssa-sprintf.c (warn_level): New global.
28545         (format_integer): Use it here and throughout the rest of the file.
28546         Use the same switch to compute sign as base.
28547         (maybe_warn): New function.
28548         (format_directive): Factor out warnings into maybe_warn.
28549         Add debugging output.  Use warn_level.
28550         (add_bytes): Use warn_level.
28551         (pass_sprintf_length::compute_format_length): Add debugging output.
28552         (try_substitute_return_value): Same.
28553         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
28555         PR middle-end/78703
28556         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
28557         (struct fmtresult, format_integer, format_floating): Adjust.
28558         (fmtresult::fmtresult): Set max correctly in two argument ctor.
28559         (get_string_length, format_string,format_directive): Same.
28560         (pass_sprintf_length::compute_format_length): Same.
28561         (try_substitute_return_value): Simplify slightly.
28563         PR middle-end/78703
28564         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
28565         (fmtresult::operator+=): Outlined.
28566         (struct fmtresult): Add ctors.
28567         (struct conversion_spec): Rename...
28568         (struct directive): ...to this.  Add and remove data members.
28569         (directive::set_width, directive::set_precision): New functions.
28570         (format_percent): Use fmtresult ctor.
28571         (get_width_and_precision): Remove.
28572         (format_integer): Make naming changes.  Avoid computing width and
28573         precision.
28574         (format_floating): Same.  Adjust indentation.
28575         (format_character, format_none): New functions.
28576         (format_string): Moved character handling to format_character.
28577         (format_directive): Remove arguments, change return type.
28578         (parse_directive): New function.
28579         (pass_sprintf_length::compute_format_length): Move directive
28580         parsing to parse_directive.
28582 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
28584         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
28585         (assign_assembler_name_if_needed): ... this.
28586         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
28587         (assign_assembler_name_if_needed): ... this.
28588         (free_lang_data_in_cgraph): Adjust callers.
28589         * cgraphunit.c (cgraph_node::analyze): Likewise.
28590         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
28591         Likewise.
28593 2017-01-23  Richard Biener  <rguenther@suse.de>
28595         PR tree-optimization/79088
28596         PR tree-optimization/79188
28597         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
28598         resetting loop bounds after last path deletion.  Reset loop
28599         bounds of the target loop, make code match the comments.
28600         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
28601         Make sure loops need no fixups.
28603 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
28605         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
28606         exponent support with double type for first argument.
28607         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
28608         type returned by __builtin_vec_extract_sig,
28609         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
28610         functions from "vector int" to "vector unsigned int" or from
28611         "vector long long int" to "vector unsigned long long int".
28612         Changed type returned by __builtin_vec_extract_exp,
28613         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
28614         functions from "vector int" to "vector unsigned int" or from
28615         "vector long long int" to "vector unsigned long long int".
28616         Changed return type of __builtin_vec_test_data_class,
28617         __builtin_vec_test_data_class_sp, and
28618         __builtin_vec_test_data_class_dp from "vector int" to
28619         "vector bool int" or from "vector long long int" to "vector bool
28620         long long int" and changed second argument type from "unsigned
28621         int" to "int".  Added new overloaded function forms "vector float
28622         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
28623         "vector float __builtin_vec_insert_exp_sp (vector float, vector
28624         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
28625         double, vector unsigned long long int)" and "vector double
28626         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
28627         long int)".  Changed return type of
28628         __builtin_scalar_test_data_class and
28629         __builtin_scalar_test_data_class_sp and
28630         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
28631         int" and changed second argument from "unsigned int" to "int".
28632         Changed type returned by __builtin_scalar_test_neg,
28633         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
28634         from "int" to "bool int".  Added new overloaded function form
28635         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
28636         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
28637         exponent double-precision with floating point first argument.
28638         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
28639         documentation of scalar_test_data_class, scalar_test_neg,
28640         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
28641         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
28642         vec_test_data_class built-in functions to reflect refinements in
28643         their type signatures.
28645 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
28647         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
28648         size of buf.
28649         (aarch64_elf_asm_destructor): Likewise.
28651 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
28653         PR rtl-optimization/78634
28654         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
28655         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
28656         * ifcvt.c (noce_try_cmove): Add missing cost check.
28658         PR rtl-optimization/71724
28659         * combine.c (if_then_else_cond): Look for situations where it is
28660         beneficial to undo the work of one of the recursive calls.
28662 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
28664         PR tree-optimization/70754
28665         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
28666         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
28667         combined stmt before it if not NULL.
28668         (combine_chains): Process refs reversely and compute dominance point
28669         for root ref.
28671 2017-01-23  Martin Liska  <mliska@suse.cz>
28673         PR tree-optimization/79196
28674         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
28675         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
28676         instead of memcmp.
28677         (strlen_optimize_stmt): Call the renamed function.
28679 2017-01-23  Michael Matz  <matz@suse.de>
28681         PR tree-optimization/78384
28682         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
28684 2017-01-23  Richard Biener  <rguenther@suse.de>
28686         PR tree-optimization/79186
28687         * tree-vrp.c (register_new_assert_for): Make sure we've seen
28688         both incoming edges before moving an assert.
28690 2017-01-23  Martin Jambor  <mjambor@suse.cz>
28692         * ipa-prop.c (load_from_param_1): Removed.
28693         (load_from_unmodified_param): Bits from load_from_param_1 put back
28694         here.
28695         (load_from_param): Removed.
28696         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
28697         with stmt.  Reverted back to use of load_from_unmodified_param.
28699 2017-01-23  Martin Jambor  <mjambor@suse.cz>
28701         PR ipa/79108
28702         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
28703         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
28704         field a pointer to garbage collected vector, mark lattices and
28705         ipcp_orig_node with GTY((skip)).
28706         (ipa_get_param_count): Adjust to descriptors being a pointer.
28707         (ipa_get_param): Likewise.
28708         (ipa_get_type): Likewise.
28709         (ipa_get_param_move_cost): Likewise.
28710         (ipa_set_param_used): Likewise.
28711         (ipa_get_controlled_uses): Likewise.
28712         (ipa_set_controlled_uses): Likewise.
28713         (ipa_is_param_used): Likewise.
28714         (ipa_node_params_t): Move into garbage collector.  New methods insert
28715         and remove.
28716         (ipa_node_params_sum): Annotate wth GTY(()).
28717         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
28718         garbage collected.
28719         (ipa_load_from_parm_agg): Adjust declaration.
28720         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
28721         * ipa-profile.c (ipa_profile): Likewise.
28722         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
28723         (ipa_populate_param_decls): Make descriptors parameter garbage
28724         collected.
28725         (ipa_dump_param): Adjust to descriptors being a pointer.
28726         (ipa_alloc_node_params): Likewise.
28727         (ipa_initialize_node_params): Likewise.
28728         (load_from_param_1): Make descriptors parameter garbage collected.
28729         (load_from_unmodified_param): Likewise.
28730         (load_from_param): Likewise.
28731         (ipa_load_from_parm_agg): Likewise.
28732         (ipa_node_params::~ipa_node_params): Removed.
28733         (ipa_free_all_node_params): Remove call to delete operator.
28734         (ipa_node_params_t::insert): New.
28735         (ipa_node_params_t::remove): Likewise.
28736         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
28737         copy known_csts and known_contexts vectors.
28738         (ipa_read_node_info): Adjust to descriptors being a pointer.
28739         (ipcp_modif_dom_walker): Make m_descriptors field garbage
28740         collected.
28741         (ipcp_transform_function): Make descriptors variable garbage
28742         collected.
28744 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
28746         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
28747         * config/i386/avx512dqintrin.h: Ditto.
28748         * config/i386/avx512fintrin.h: Ditto.
28749         * config/i386/i386.c: Handle new builtins.
28750         * config/i386/i386-builtin.def: Add new builtins.
28751         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
28752         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
28754 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
28755             Martin Liska  <mliska@suse.cz>
28757         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
28758         * asan.c (asan_expand_poison_ifn): Support stores and use
28759         appropriate ASAN report function.
28760         * internal-fn.c (expand_ASAN_POISON_USE): New function.
28761         * internal-fn.def (ASAN_POISON_USE): Declare.
28762         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
28763         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
28764         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
28765         ASAN_POISON calls w/o LHS.
28766         * tree-ssa.c (execute_update_addresses_taken): Create clobber
28767         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
28768         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
28769         * gimplify.c (asan_poison_variables): Add attribute
28770         use_after_scope_memory to variables that really needs to live
28771         in memory.
28772         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
28773         having the attribute.
28775 2017-01-23  Martin Liska  <mliska@suse.cz>
28777         * asan.c (create_asan_shadow_var): New function.
28778         (asan_expand_poison_ifn): Likewise.
28779         * asan.h (asan_expand_poison_ifn): New declaration.
28780         * internal-fn.c (expand_ASAN_POISON): Likewise.
28781         * internal-fn.def (ASAN_POISON): New builtin.
28782         * sanopt.c (pass_sanopt::execute): Expand
28783         asan_expand_poison_ifn.
28784         * tree-inline.c (copy_decl_for_dup_finish): Make function
28785         external.
28786         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
28787         * tree-ssa.c (is_asan_mark_p): New function.
28788         (execute_update_addresses_taken): Rewrite local variables
28789         (identified just by use-after-scope as addressable) into SSA.
28791 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
28793         * doc/install.texi (Specific): opensource.apple.com uses https
28794         now. Remove trailing slash.
28796 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
28798         * README.Portability: Remove note on an Irix compatibility issue.
28800 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
28802         * gcov.c (INCLUDE_ALGORITHM): Define.
28803         (INCLUDE_VECTOR): Define.
28804         No longer include <vector> and <algorithm> directly.
28806 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
28808         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
28809         to https.
28810         * doc/invoke.texi (Code Gen Options): Ditto.
28812 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
28814         PR lto/78407
28815         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
28817 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
28819         rtl-optimization/79125
28820         * cprop.c (local_cprop_pass): Handle cases where we make an
28821         unconditional trap.
28823 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
28825         PR target/61729
28826         PR target/77850
28827         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
28828         read from, for big endian.
28830 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
28832         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
28833         register pauth builtins for LP64 only.
28835 2017-01-20  Marek Polacek  <polacek@redhat.com>
28837         PR c/79152
28838         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
28839         non-case labels.
28841 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
28843         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
28844         of safelen status.
28845         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
28846         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
28847         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
28849 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28851         PR target/71270
28852         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
28853         in big-endian mode when they are not a single duplicated value.
28855 2017-01-20  Richard Biener  <rguenther@suse.de>
28857         * BASE-VER: Bump to 7.0.1.
28859 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
28861         * omp-low.c (omplow_simd_context): New struct.  Use it...
28862         (lower_rec_simd_input_clauses): ...here and...
28863         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
28864         references to idx, lane, max_vf, is_simt.
28866 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
28868         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
28869         mcpu=nps400.
28871 2017-01-20  Martin Jambor  <mjambor@suse.cz>
28873         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
28874         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
28875         gt-hsa-common.h.
28876         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
28877         (GTFILES): Rename hsa.c to hsa-common.c.
28878         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
28879         * hsa-dump.c: Likewise.
28880         * hsa-gen.c: Likewise.
28881         * hsa-regalloc.c: Likewise.
28882         * ipa-hsa.c: Likewise.
28883         * omp-expand.c: Likewise.
28884         * omp-low.c: Likewise.
28885         * toplev.c: Likewise.
28887 2017-01-20  Marek Polacek  <polacek@redhat.com>
28889         PR c/64279
28890         * doc/invoke.texi: Document -Wduplicated-branches.
28891         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
28892         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
28893         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
28894         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
28895         return 0 only when not OEP_LEXICOGRAPHIC.
28896         (fold_build_cleanup_point_expr): Use the expression
28897         location when building CLEANUP_POINT_EXPR.
28898         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
28899         * tree.c (add_expr): Handle error_mark_node.
28901 2017-01-20  Martin Liska  <mliska@suse.cz>
28903         PR lto/69188
28904         * tree-profile.c (init_ic_make_global_vars): Do not call
28905         finalize_decl.
28906         (gimple_init_gcov_profiler): Likewise.
28908 2017-01-20  Martin Liska  <mliska@suse.cz>
28910         PR ipa/71190
28911         * cgraph.h (maybe_create_reference): Remove argument and
28912         update comment.
28913         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
28914         argument.
28915         * ipa-cp.c (create_specialized_node): Likewise.
28916         * symtab.c (symtab_node::maybe_create_reference): Handle
28917         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
28919 2017-01-20  Martin Liska  <mliska@suse.cz>
28921         * read-rtl-function.c (function_reader::create_function): Use
28922         build_decl instread of build_decl_stat.
28924 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
28926         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
28927         * config/i386/avx512dqintrin.h: Ditto.
28928         * config/i386/avx512fintrin.h: Ditto.
28929         * config/i386/i386-builtin-types.def: Add new types.
28930         * config/i386/i386.c: Handle new types.
28931         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
28932         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
28933         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
28934         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
28935         (__builtin_ia32_kshiftridi): New.
28936         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
28938 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
28940         PR target/78875
28941         PR target/79140
28942         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
28943         define to rs6000_init_stack_protect_guard.
28944         (rs6000_init_stack_protect_guard): New function.
28946 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
28947             Yunqiang Su  <yunqiang.su@imgtec.com>
28949         * config.gcc (supported_defaults): Add madd4.
28950         (with_madd4): Add validation.
28951         (all_defaults): Add madd4.
28952         * config/mips/mips.opt (mmadd4): New option.
28953         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
28954         mmadd4.
28955         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
28956         __mips_no_madd4.
28957         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
28958         (ISA_HAS_FUSED_MADD4): Likewise.
28959         * doc/invoke.texi (-mmadd4): Document the new option.
28960         * doc/install.texi (--with-madd4): Document the new option.
28962 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
28964         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
28965         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
28966         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
28967         (aarch64_init_pauth_hint_builtins): New.
28968         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
28969         (aarch64_expand_builtin): Expand new builtins.
28971 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
28973         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
28974         * combine-stack-adj.c (no_unhandled_cfa): Handle
28975         REG_CFA_TOGGLE_RA_MANGLE.
28976         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
28977         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
28978         info for return address signing.
28979         (aarch64_expand_epilogue): Likewise.
28981 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
28983         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
28984         * config/aarch64/aarch64-protos.h
28985         (aarch64_return_address_signing_enabled): New declaration.
28986         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
28987         New function.
28988         (aarch64_expand_prologue): Sign return address before it's pushed onto
28989         stack.
28990         (aarch64_expand_epilogue): Authenticate return address fetched from
28991         stack.
28992         (aarch64_override_options): Sanity check for ILP32 and ISA level.
28993         (aarch64_attributes): New function attributes for "sign-return-address".
28994         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
28995         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
28996         ("*do_return"): Generate combined instructions according to key index.
28997         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
28998         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
28999         iterators.
29000         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
29001         * config/aarch64/aarch64.opt (msign-return-address=): New.
29002         * doc/extend.texi (AArch64 Function Attributes): Documents
29003         "sign-return-address=".
29004         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
29006 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
29008         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
29009         overall option summary.
29011 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
29013         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
29014         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
29015         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
29016         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
29018 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
29020         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
29021         -mpower9-minmax by default for -mcpu=power9.
29022         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
29023         128-bit floating point.
29025 2017-01-20  Alan Modra  <amodra@gmail.com>
29027         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
29028         optimizing for size.
29030 2017-01-20  Alan Modra  <amodra@gmail.com>
29032         PR target/79144
29033         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
29034         for strcmp and strncmp from corresponding builtin decl.
29036 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
29038         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
29039         instead of i386/rtems-64.h.
29040         * config/i386/rtems-64.h: Remove.
29042 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
29044         PR target/78478
29045         Revert:
29046         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
29048         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
29050 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
29052         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
29053         Change int to HOST_WIDE_INT.
29054         * config/aarch64/aarch64-protos.h
29055         (aarch64_simd_gen_const_vector_dup): Likewise.
29056         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
29058 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
29060         * langhooks-def.h (lhd_type_for_size): New decl.
29061         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
29062         * langhooks.c (lhd_type_for_size): New function, taken from
29063         lto_type_for_size.
29065 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
29067         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
29068         define_bypass for CR latency.
29069         (power9-cracked-alu): Update bypass latency and remove power9-branch.
29070         (power9-alu2): Add define_bypass for CR latency.
29071         (power9-cmp): New.
29072         (power9-mul): Update insn latency.
29073         (power9-mul-compare): Update insn latency, bypass latency and remove
29074         power9-branch.
29076 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29078         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
29079         Delete.
29080         * config/aarch64/aarch64.md
29081         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
29082         aarch64_nopcrelative_literal_loads.
29083         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
29085 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
29087         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
29088         TARGET_LOONGSON_3A.
29089         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
29091 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
29093         PR target/78176
29094         * config.gcc (supported_defaults): Add lxc1-sxc1.
29095         (with_lxc1_sxc1): Add validation.
29096         (all_defaults): Add lxc1-sxc1.
29097         * config/mips/mips.opt (mlxc1-sxc1): New option.
29098         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
29099         mlxc1-sxc1.
29100         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
29101         __mips_no_lxc1_sxc1.
29102         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
29103         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
29104         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
29106 2017-01-19  Richard Biener  <rguenther@suse.de>
29108         PR tree-optimization/72488
29109         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
29110         sure to restore SSA info.
29111         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
29113 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
29115         PR rtl-optimization/79121
29116         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
29117         of the inner type when shifting an extended value.
29119 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
29121         PR lto/78407
29122         * symtab.c (symtab_node::equal_address_to): Fix comparing of
29123         interposable aliases.
29125 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
29127         PR target/78516
29128         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
29129         Use the evmergelohi instruction.
29130         (mov_si<mode>_e500_subreg4_2_le): Likewise.
29131         (mov_sitf_e500_subreg8_2_be): Likewise.
29132         (mov_sitf_e500_subreg12_2_le): Likewise.
29133         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
29134         (mov_si<mode>_e500_subreg4_2_be): Likewise.
29135         (mov_sitf_e500_subreg8_2_le): Likewise.
29136         (mov_sitf_e500_subreg12_2_be): Likewise.
29138 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29140         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
29141         attribute from vecsimple to vecperm.
29142         (altivec_vbpermq2): Likewise.
29144 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29146         PR target/79040
29147         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
29149 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
29150         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
29151         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
29152         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
29153         case where N arg is SIZE_MAX.
29154         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
29155         (cmpstrsi): Add pattern.
29157 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
29159         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
29160         __builtin_vec_revb builtins.
29161         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
29162         built-in functions to support generation of the ISA 3.0 XXBR<x>
29163         vector byte reverse instructions.
29164         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
29165         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
29166         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
29167         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
29168         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
29169         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
29170         (P9V_BUILTIN_VEC_REVB): Likewise.
29171         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
29172         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
29173         (p9_xxbrq_v16qi): Likewise.
29174         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
29175         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
29176         (p9_xxbrh_v8hi): Likewise.
29177         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
29178         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
29179         vec_revb built-in functions.
29181 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
29183         PR rtl-optimization/78952
29184         * config/i386/i386.md (any_extract): New code iterator.
29185         (*insvqi_2): Use any_extract for source operand.
29186         (*insvqi_3): Use any_shiftrt for source operand.
29188 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
29190         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
29191         New function.
29192         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
29194 2017-01-18  Matthias Klose  <doko@ubuntu.com>
29196         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
29198 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29200         * config/rs6000/altivec.h (vec_bperm): Change #define.
29201         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
29202         (altivec_vbpermq2): New define_insn.
29203         (altivec_vbpermd): Likewise.
29204         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
29205         function interface.
29206         (VBPERMD): Likewise.
29207         (VBPERM): New polymorphic function interface.
29208         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
29209         Add entries for P9V_BUILTIN_VEC_VBPERM.
29210         * doc/extend.texi: Add interfaces for vec_bperm.
29212 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29214         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
29215         first letter of error messages.
29216         (s390_resolve_overloaded_builtin): Likewise.
29217         * config/s390/s390.c (s390_expand_builtin): Likewise.
29218         (s390_invalid_arg_for_unprototyped_fn): Likewise.
29219         (s390_valid_target_attribute_inner_p): Likewise.
29220         * config/s390/s390.md ("tabort"): Likewise.
29222 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
29224         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
29225         (ISA_AVOID_DIV_HILO): New macro.
29226         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
29227         (ISA_HAS_DDIV): Likewise.
29229 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
29231         * doc/invoke.texi (fabi-version): Correct number of occurrences.
29233 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
29235         * doc/invoke.texi (fabi-version): Spelling fix.
29237 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
29239         PR c++/70182
29240         * doc/invoke.texi (fabi-version): Mention mangling fix for
29241         operator names.
29243 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
29245         PR c++/77489
29246         * doc/invoke.texi (fabi-version): Document discriminator mangling.
29248 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
29250         PR target/78875
29251         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
29252         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
29253         the new options.
29254         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
29255         flexible settings.
29256         (stack_protect_test): Ditto.
29257         * config/rs6000/rs6000.opt (mstack-protector-guard=,
29258         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
29259         options.
29260         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
29261         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
29262         -mstack-protector-guard-offset=.
29263         (RS/6000 and PowerPC Options): Ditto.
29265 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
29267         * config/i386/i386.h (MASK_CLASS_P): New define.
29268         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
29269         there are no registers from different register sets also when
29270         mask registers are used.  Update function comment.
29271         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
29272         to (*k/*r) and (*k/*km) alternatives.
29274 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
29276         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
29277         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
29278         (EH_RETURN_HANDLER_RTX): New define.
29279         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
29280         Force frame pointer in EH return functions.
29281         (aarch64_expand_epilogue): Add barrier for eh_return.
29282         (aarch64_final_eh_return_addr): Remove.
29283         (aarch64_eh_return_handler_rtx): New function.
29284         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
29285         Remove.
29286         (aarch64_eh_return_handler_rtx): New prototype.
29288 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29290         * config/rs6000/altivec.h (vec_rlmi): New #define.
29291         (vec_vrlnm): Likewise.
29292         (vec_rlnm): Likewise.
29293         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
29294         (UNSPEC_VRLNM): Likewise.
29295         (VIlong): New mode iterator.
29296         (altivec_vrl<VI_char>mi): New define_insn.
29297         (altivec_vrl<VI_char>nm): Likewise.
29298         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
29299         function entry.
29300         (VRLDNM): Likewise.
29301         (RLNM): New polymorphic function entry.
29302         (VRLWMI): New monomorphic function entry.
29303         (VRLDMI): Likewise.
29304         (RLMI): New polymorphic function entry.
29305         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
29306         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
29307         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
29308         vec_vrlnm.
29310 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
29312         PR debug/78839
29313         * dwarf2out.c (field_byte_offset): Restore the
29314         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
29315         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
29316         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
29317         of build2 + fold.
29319 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
29321         PR ada/67205
29322         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
29324 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
29326         PR debug/71669
29327         * dwarf2out.c (add_data_member_location_attribute): For constant
29328         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
29329         instead of DW_AT_data_member_location, DW_AT_bit_offset and
29330         DW_AT_byte_size attributes.
29332 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
29334         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
29335         after forcing to constant memory when the code model is medium.
29337 2017-01-17  Julia Koval  <julia.koval@intel.com>
29339         PR target/76731
29340         * config/i386/avx512fintrin.h
29341         (_mm512_i32gather_ps): Change __addr type to void const*.
29342         (_mm512_mask_i32gather_ps): Ditto.
29343         (_mm512_i32gather_pd): Ditto.
29344         (_mm512_mask_i32gather_pd): Ditto.
29345         (_mm512_i64gather_ps): Ditto.
29346         (_mm512_mask_i64gather_ps): Ditto.
29347         (_mm512_i64gather_pd): Ditto.
29348         (_mm512_mask_i64gather_pd): Ditto.
29349         (_mm512_i32gather_epi32): Ditto.
29350         (_mm512_mask_i32gather_epi32): Ditto.
29351         (_mm512_i32gather_epi64): Ditto.
29352         (_mm512_mask_i32gather_epi64): Ditto.
29353         (_mm512_i64gather_epi32): Ditto.
29354         (_mm512_mask_i64gather_epi32): Ditto.
29355         (_mm512_i64gather_epi64): Ditto.
29356         (_mm512_mask_i64gather_epi64): Ditto.
29357         (_mm512_i32scatter_ps): Change __addr type to void*.
29358         (_mm512_mask_i32scatter_ps): Ditto.
29359         (_mm512_i32scatter_pd): Ditto.
29360         (_mm512_mask_i32scatter_pd): Ditto.
29361         (_mm512_i64scatter_ps): Ditto.
29362         (_mm512_mask_i64scatter_ps): Ditto.
29363         (_mm512_i64scatter_pd): Ditto.
29364         (_mm512_mask_i64scatter_pd): Ditto.
29365         (_mm512_i32scatter_epi32): Ditto.
29366         (_mm512_mask_i32scatter_epi32): Ditto.
29367         (_mm512_i32scatter_epi64): Ditto.
29368         (_mm512_mask_i32scatter_epi64): Ditto.
29369         (_mm512_i64scatter_epi32): Ditto.
29370         (_mm512_mask_i64scatter_epi32): Ditto.
29371         (_mm512_i64scatter_epi64): Ditto.
29372         (_mm512_mask_i64scatter_epi64): Ditto.
29373         * config/i386/avx512pfintrin.h
29374         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
29375         (_mm512_mask_prefetch_i32gather_ps): Ditto.
29376         (_mm512_mask_prefetch_i64gather_pd): Ditto.
29377         (_mm512_mask_prefetch_i64gather_ps): Ditto.
29378         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
29379         (_mm512_prefetch_i32scatter_ps): Ditto.
29380         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
29381         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
29382         (_mm512_prefetch_i64scatter_pd): Ditto.
29383         (_mm512_prefetch_i64scatter_ps): Ditto.
29384         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
29385         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
29386         * config/i386/avx512vlintrin.h
29387         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
29388         (_mm_mmask_i32gather_ps): Ditto.
29389         (_mm256_mmask_i32gather_pd): Ditto.
29390         (_mm_mmask_i32gather_pd): Ditto.
29391         (_mm256_mmask_i64gather_ps): Ditto.
29392         (_mm_mmask_i64gather_ps): Ditto.
29393         (_mm256_mmask_i64gather_pd): Ditto.
29394         (_mm_mmask_i64gather_pd): Ditto.
29395         (_mm256_mmask_i32gather_epi32): Ditto.
29396         (_mm_mmask_i32gather_epi32): Ditto.
29397         (_mm256_mmask_i32gather_epi64): Ditto.
29398         (_mm_mmask_i32gather_epi64): Ditto.
29399         (_mm256_mmask_i64gather_epi32): Ditto.
29400         (_mm_mmask_i64gather_epi32): Ditto.
29401         (_mm256_mmask_i64gather_epi64): Ditto.
29402         (_mm_mmask_i64gather_epi64): Ditto.
29403         (_mm256_i32scatter_ps): Change __addr type to void*.
29404         (_mm256_mask_i32scatter_ps): Ditto.
29405         (_mm_i32scatter_ps): Ditto.
29406         (_mm_mask_i32scatter_ps): Ditto.
29407         (_mm256_i32scatter_pd): Ditto.
29408         (_mm256_mask_i32scatter_pd): Ditto.
29409         (_mm_i32scatter_pd): Ditto.
29410         (_mm_mask_i32scatter_pd): Ditto.
29411         (_mm256_i64scatter_ps): Ditto.
29412         (_mm256_mask_i64scatter_ps): Ditto.
29413         (_mm_i64scatter_ps): Ditto.
29414         (_mm_mask_i64scatter_ps): Ditto.
29415         (_mm256_i64scatter_pd): Ditto.
29416         (_mm256_mask_i64scatter_pd): Ditto.
29417         (_mm_i64scatter_pd): Ditto.
29418         (_mm_mask_i64scatter_pd): Ditto.
29419         (_mm256_i32scatter_epi32): Ditto.
29420         (_mm256_mask_i32scatter_epi32): Ditto.
29421         (_mm_i32scatter_epi32): Ditto.
29422         (_mm_mask_i32scatter_epi32): Ditto.
29423         (_mm256_i32scatter_epi64): Ditto.
29424         (_mm256_mask_i32scatter_epi64): Ditto.
29425         (_mm_i32scatter_epi64): Ditto.
29426         (_mm_mask_i32scatter_epi64): Ditto.
29427         (_mm256_i64scatter_epi32): Ditto.
29428         (_mm256_mask_i64scatter_epi32): Ditto.
29429         (_mm_i64scatter_epi32): Ditto.
29430         (_mm_mask_i64scatter_epi32): Ditto.
29431         (_mm256_i64scatter_epi64): Ditto.
29432         (_mm256_mask_i64scatter_epi64): Ditto.
29433         (_mm_i64scatter_epi64): Ditto.
29434         (_mm_mask_i64scatter_epi64): Ditto.
29435         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
29436         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
29437         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
29438         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
29439         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
29440         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
29441         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
29442         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
29443         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
29444         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
29445         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
29446         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
29447         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
29448         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
29449         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
29450         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
29451         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
29452         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
29453         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
29454         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
29455         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
29456         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
29457         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
29458         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
29459         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
29460         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
29461         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
29462         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
29463         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
29464         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
29465         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
29466         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
29467         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
29468         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
29469         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
29470         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
29471         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
29472         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
29473         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
29474         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
29475         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
29476         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
29477         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
29478         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
29479         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
29480         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
29481         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
29482         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
29483         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
29484         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
29485         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
29486         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
29487         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
29488         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
29489         definitions accordingly.
29491 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
29492             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
29494         PR target/79079
29495         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
29496         gen_lowpart.
29498 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
29500         PR target/79058
29501         * ira-conflicts.c (ira_build_conflicts): Update total conflict
29502         hard regs for inner regno.
29504 2017-01-17  Martin Liska  <mliska@suse.cz>
29506         PR ipa/71207
29507         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
29508         assumption and add comment.
29510 2017-01-17  Nathan Sidwell  <nathan@acm.org>
29512         * ipa-visibility.c (localize_node): New function, broken out of ...
29513         (function_and_variable_visibility): ... here. Call it.
29515 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
29517         PR middle-end/77445
29518         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
29519         correctly set frequency of oudgoing edge.
29520         (duplicate_thread_path): Fix profile updating.
29522 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
29524         PR other/79046
29525         * configure.ac: Add GCC_BASE_VER.
29526         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
29527         version from BASE-VER file.
29528         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
29529         (gcc.o): Depend on $(BASEVER).
29530         * common.opt (dumpfullversion): New option.
29531         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
29532         * doc/invoke.texi: Document -dumpfullversion.
29533         * doc/install.texi: Document --with-gcc-major-version-only.
29534         * configure: Regenerated.
29536 2017-01-17  Richard Biener  <rguenther@suse.de>
29538         PR tree-optimization/71433
29539         * tree-vrp.c (register_new_assert_for): Merge same asserts
29540         on all incoming edges.
29541         (process_assert_insertions_for): Handle insertions at the
29542         beginning of BBs.
29544 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
29546         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
29547         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
29549 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
29551         PR target/78633
29552         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
29553         RTL sharing.
29555 2017-01-17  Alan Modra  <amodra@gmail.com>
29557         PR target/79066
29558         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
29559         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
29560         symbolic stack limit when pic.
29562 2017-01-16  Martin Sebor  <msebor@redhat.com>
29564         PR tree-optimization/78608
29565         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
29567 2017-01-16  Jeff Law  <law@redhat.com>
29569         Revert:
29570         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
29571         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
29572         for several include directories that may be relative to sysroot.
29573         * config/i386/x-mingw32 (gplus_includedir): Define.
29574         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
29575         (native_system_includedir): Likewise.
29576         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
29577         override if TARGET_SYSTEM_ROOT is defined.
29578         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
29580         PR tree-optimization/79090
29581         PR tree-optimization/33562
29582         PR tree-optimization/61912
29583         PR tree-optimization/77485
29584         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
29585         and computed trims into the dump file.
29587 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
29589         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
29591 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
29593         PR c/79089
29594         * gimplify.c (gimplify_init_constructor): If want_value and
29595         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
29596         fix.
29598         PR target/79080
29599         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
29600         sequence.  Formatting fixes.
29601         (doloop_optimize): Formatting fixes.
29603         PR driver/49726
29604         * gcc.c (debug_level_greater_than_spec_func): New function.
29605         (static_spec_functions): Add debug-level-gt spec function.
29606         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
29607         !g0.
29608         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
29609         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
29610         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
29611         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
29612         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
29613         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
29615 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
29617         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
29618         QImode fixups to general and mask registers only.
29620 2017-01-16  Carl Love  <cel@us.ibm.com>
29622         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
29623         for built-in functions
29624         vector signed char vec_nabs (vector signed char)
29625         vector signed short vec_nabs (vector signed short)
29626         vector signed int vec_nabs (vector signed int)
29627         vector signed long long vec_nabs (vector signed long long)
29628         vector float vec_nabs (vector float)
29629         vector double vec_nabs (vector double)
29630         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
29631         and NABS overload.
29632         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
29633         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
29634         * doc/extend.texi: Update the documentation file for the new built-in
29635         functions.
29637 2017-01-16  Martin Sebor  <msebor@redhat.com>
29639         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
29640         message.
29642 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29644         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
29645         UNSPEC_VSX__XXSPLTD to require special splat handling.
29647 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
29649         PR bootstrap/78616
29650         * system.h: Poison strndup.
29652 2017-01-16  Alan Modra  <amodra@gmail.com>
29654         PR target/79098
29655         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
29656         use a switch.
29658 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
29660         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
29662 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
29664         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
29665         call recog here.  Assert that INSN_CODE (insn) is non-negative.
29667 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
29669         PR target/72749
29670         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
29671         fallthrough.
29672         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
29673         in the currently scheduled RTL fragment.
29675 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
29677         PR rtl-optimization/78751
29678         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
29679         give up.
29681 2017-01-14  Jeff Law  <law@redhat.com>
29683         PR tree-optimization/79090
29684         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
29685         variable length stores.
29686         (compute_trims): Delete dead assignment to *trim_tail.
29687         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
29688         zero length.
29690 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
29692         PR rtl-optimization/78626
29693         PR rtl-optimization/78727
29694         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
29695         of a block, and split such blocks after everything else is finished.
29697 2017-01-14  Alan Modra  <amodra@gmail.com>
29699         PR target/72749
29700         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
29701         target legitimate_combined_insn.
29702         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
29703         (rs6000_legitimate_combined_insn): New function.
29704         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
29705         all uses.
29706         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
29707         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
29708         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
29710 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
29712         * doc/frontends.texi (G++ and GCC): Remove references to Java.
29714 2017-01-13  Jeff Law  <law@redhat.com>
29716         PR tree-optimization/33562
29717         PR tree-optimization/61912
29718         PR tree-optimization/77485
29719         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
29720         a statement.
29721         (delete_dead_assignment): Likewise.
29722         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
29723         statement to delete_dead_call and delete_dead_assignment.
29725 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
29727         PR c/78304
29728         * substring-locations.c (format_warning_va): Strengthen case 1 so
29729         that both endpoints of the substring must be within the format
29730         range for just the substring to be printed.
29732 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
29734         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
29735         * config/i386/i386.c (ix86_target_string): Add missing options
29736         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
29737         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
29738         flags_other and ix86_target_other to flags2_other.  Display unknown
29739         isa2 options.
29740         (ix86_valid_target_attribute_inner_p): Add missing options and
29741         reorder options by implied ISAs, as in ix86_target_string.
29743 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
29745         * hash-table.h (hash_table::too_empty_p): New function.
29746         (hash_table::expand): Use it.
29747         (hash_table::traverse): Likewise.
29748         (hash_table::empty_slot): Use sizeof (value_type) instead of
29749         sizeof (PTR) to convert bytes to elements.  Shrink the table
29750         if the current size is excessive for the current number of
29751         elements.
29753 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
29755         * ira-costs.c (record_reg_classes): Break from the inner loop
29756         early once alt_fail is known to be true.  Update outer loop
29757         handling accordingly.
29759 2017-01-13  Jeff Law  <law@redhat.com>
29761         * tree-ssa-dse.c (decrement_count): New function.
29762         (increment_start_addr, maybe_trim_memstar_call): Likewise.
29763         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
29764         when we know the partially dead statement is a mem* function.
29766         PR tree-optimization/61912
29767         PR tree-optimization/77485
29768         * tree-ssa-dse.c: Include expr.h.
29769         (maybe_trim_constructor_store): New function.
29770         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
29772         PR tree-optimization/33562
29773         PR tree-optimization/61912
29774         PR tree-optimization/77485
29775         * doc/invoke.texi: Document new dse-max-object-size param.
29776         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
29777         * tree-ssa-dse.c: Include params.h.
29778         (dse_store_status): New enum.
29779         (initialize_ao_ref_for_dse): New, partially extracted from
29780         dse_optimize_stmt.
29781         (valid_ao_ref_for_dse, normalize_ref): New.
29782         (setup_live_bytes_from_ref, compute_trims): Likewise.
29783         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
29784         (maybe_trim_partially_dead_store): Likewise.
29785         (maybe_trim_complex_store): Likewise.
29786         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
29787         Track what bytes live from the original store.  Return tri-state
29788         for dead, partially dead or live.
29789         (dse_dom_walker): Add constructor, destructor and new private members.
29790         (delete_dead_call, delete_dead_assignment): New extracted from
29791         dse_optimize_stmt.
29792         (dse_optimize_stmt): Make a member of dse_dom_walker.
29793         Use initialize_ao_ref_for_dse.
29795         PR tree-optimization/33562
29796         PR tree-optimization/61912
29797         PR tree-optimization/77485
29798         * sbitmap.h (bitmap_count_bits): Prototype.
29799         (bitmap_clear_range, bitmap_set_range): Likewise.
29800         * sbitmap.c (bitmap_clear_range): New function.
29801         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
29803 2017-01-13  Martin Liska  <mliska@suse.cz>
29805         PR ipa/79043
29806         * function.c (set_cfun): Add new argument force.
29807         * function.h (set_cfun): Likewise.
29808         * ipa-inline-transform.c (inline_call): Use the function when
29809         strict alising from is dropped for function we inline to.
29811 2017-01-13  Richard Biener  <rguenther@suse.de>
29813         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
29814         for dumping GIMPLE INTEGER_CSTs.
29816 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29818         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
29819         to 201112L since C++17.
29821 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
29823         PR sanitizer/78887
29824         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
29825         if -fsanitize=kernel-address is present.
29827 2017-01-13  Richard Biener  <rguenther@suse.de>
29829         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
29830         as _Literal ( type ) number in case usual suffixes do not
29831         preserve all information.
29833 2017-01-13  Richard Biener  <rguenther@suse.de>
29835         PR tree-optimization/77283
29836         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
29837         and ssa-iterators.h.
29838         (is_feasible_trace): Implement a cost model based on joiner
29839         PHI node uses.
29841 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
29843         PR target/79004
29844         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
29845         char or short to __float128/_Float128 directly.
29847 2017-01-12  Martin Sebor  <msebor@redhat.com>
29849         to -Wformat-overflow.
29850         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
29851         (min_bytes_remaining): Same.
29852         (get_string_length): Same.
29853         (format_string): Same.
29854         (format_directive): Same.
29855         (add_bytes): Same.
29856         (pass_sprintf_length::handle_gimple_call): Same.
29858 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
29860         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
29861         info.nowrite calls with no lhs that can't throw.  Return bool
29862         whether gsi_remove has been called or not.
29863         (pass_sprintf_length::handle_gimple_call): Return bool whether
29864         try_substitute_return_value called gsi_remove.  Formatting fix.
29865         (pass_sprintf_length::execute): Don't use gsi_remove if
29866         handle_gimple_call returned true.
29868         PR bootstrap/79069
29869         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
29870         be removed due to side-effects, don't remove following barrier nor
29871         turn the successor edge into fallthru edge.
29873 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29875         PR target/79044
29876         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
29877         element-reversing loads and stores as not swappable.
29879 2017-01-12  Nathan Sidwell  <nathan@acm.org>
29880             Nicolai Stange  <nicstange@gmail.com>
29882         * combine.c (try_combine): Don't ignore result of overlap checking
29883         loop.  Combine overlap & asm check into single loop.
29885 2017-01-12  Richard Biener  <rguenther@suse.de>
29887         * tree-pretty-print.c (dump_generic_node): Provide -gimple
29888         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
29890 2017-01-12  Richard Biener  <rguenther@suse.de>
29892         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
29893         and TS_TARGET_OPTION directly derive from TS_BASE.
29894         * tree-core.h (tree_optimization_option): Derive from tree_base.
29895         (tree_target_option): Likewise.
29897 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
29899         * config/i386/i386.c (memory_address_length): Increase len
29900         only when rip_relative_addr_p returns false.
29902 2017-01-11  Julia Koval  <julia.koval@intel.com>
29904         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
29905         (OPTION_MASK_ISA_SGX_SET): New.
29906         (ix86_handle_option): Handle OPT_msgx.
29907         * config.gcc: Added sgxintrin.h.
29908         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
29909         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
29910         * config/i386/i386.c (ix86_target_string): Add -msgx.
29911         (PTA_SGX): New.
29912         (ix86_option_override_internal): Handle new options.
29913         (ix86_valid_target_attribute_inner_p): Add sgx.
29914         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
29915         * config/i386/i386.opt: Add msgx.
29916         * config/i386/sgxintrin.h: New file.
29917         * config/i386/x86intrin.h: Add sgxintrin.h.
29919 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
29921         PR c++/71537
29922         * fold-const.c (maybe_nonzero_address): Return 1 for function
29923         local objects.
29924         (tree_single_nonzero_warnv_p): Don't handle function local objects
29925         here.
29927         PR c++/72813
29928         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
29929         of c-header.
29931 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
29933         PR driver/78877
29934         * opts.c: Include "spellcheck.h"
29935         (struct string_fragment): New struct.
29936         (struct edit_distance_traits<const string_fragment &>): New
29937         struct.
29938         (get_closest_sanitizer_option): New function.
29939         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
29941 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
29943         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
29944         by 12.
29945         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
29946         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
29947         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
29948         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
29949         for initial die_offset if dwarf_split_debug_info.
29950         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
29951         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
29952         fields.
29953         (output_skeleton_debug_sections): Formatting fix.  Use
29954         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
29955         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
29957 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
29959         * config/arm/cortex-a53.md: Add bypasses for
29960         cortex_a53_r2f_cvt.
29961         (cortex_a53_r2f): Only use for transfers.
29962         (cortex_a53_f2r): Likewise.
29963         (cortex_a53_r2f_cvt): Add reservation for conversions.
29964         (cortex_a53_f2r_cvt): Likewise.
29966 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
29968         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
29969         to all inlined functions, change static to extern.
29971 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
29973         PR target/78253
29974         * config/arm/arm.c (legitimize_pic_address): Handle reference to
29975         weak symbol.
29976         (arm_assemble_integer): Likewise.
29978 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
29980         * config.gcc: Use new awk script to check CPU, FPU and architecture
29981         parameters for --with-... options.
29982         * config/arm/parsecpu.awk: New file
29983         * config/arm/arm-cpus.in: New file.
29984         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
29985         files.
29986         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
29987         files.
29988         * config/arm/t-arm: Update dependency rules.
29989         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
29990         of processing .def files.
29991         * config/arm/genopt.sh: Deleted.
29992         * config/arm/gentune.sh: Deleted.
29993         * config/arm/arm-cores.def: Deleted.
29994         * config/arm/arm-arches.def: Deleted.
29995         * config/arm/arm-fpus.def: Deleted.
29996         * config/arm/arm-tune.md: Regenerated.
29997         * config/arm/arm-tables.opt: Regenerated.
29998         * config/arm/arm-cpu.h: New generated file.
29999         * config/arm/arm-cpu-data.h: New generated file.
30000         * config/arm/arm-cpu-cdata.h: New generated file.
30002 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
30004         PR lto/79042
30005         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
30006         bit.
30007         (input_varpool_node): Unpack dynamically_initialized bit.
30009 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
30011         PR rtl-optimization/79032
30012         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
30013         the alignment of the adjusted memory reference against that of MODE,
30014         instead of the alignment of the original memory reference.
30016 2017-01-11  Martin Jambor  <mjambor@suse.cz>
30018         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
30019         test.
30020         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
30021         decorated functions.
30023 2017-01-11  Richard Biener  <rguenther@suse.de>
30025         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
30026         set range/nonnull info for PHI results.  Do not set it on
30027         stmts marked for removal.
30029 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
30031         * expr.c (store_field): In the bitfield case, fetch the return value
30032         from the registers before applying a single big-endian adjustment.
30033         Always do a final load for a BLKmode value not larger than a word.
30035 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
30037         PR c++/77949
30038         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
30039         that we correctly handle column numbers greater than
30040         LINE_MAP_MAX_COLUMN_NUMBER.
30042 2017-01-10  Martin Sebor  <msebor@redhat.com>
30044         PR middle-end/78245
30045         * gimple-ssa-sprintf.c (get_destination_size): Call
30046         {init,fini}object_sizes.
30047         * tree-object-size.c (addr_object_size): Adjust.
30048         (pass_through_call): Adjust.
30049         (pass_object_sizes::execute): Adjust.
30050         * tree-object-size.h (fini_object_sizes): Declare.
30052 2017-01-10  Martin Sebor  <msebor@redhat.com>
30054         PR tree-optimization/78775
30055         * builtins.c (get_size_range): Move...
30056         * calls.c: ...to here.
30057         (alloc_max_size): Accept zero argument.
30058         (operand_signed_p): Remove.
30059         (maybe_warn_alloc_args_overflow): Call get_size_range.
30060         * calls.h (get_size_range): Declare.
30062 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
30064         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
30065         from TI's devices.csv file as of September 2016.
30066         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
30068 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
30070         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
30071         * doc/invoke.texi: Likewise.
30072         * doc/md.texi: Likewise.
30073         * doc/objc.texi: Likewise.
30075 2017-01-10  Joshua Conner  <joshconner@google.com>
30077         * config/arm/fuchsia-elf.h: New file.
30078         * config/fuchsia.h: New file.
30079         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
30080         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
30081         targets.
30082         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
30084 2016-01-10  Richard Biener  <rguenther@suse.de>
30086         PR tree-optimization/79034
30087         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
30088         Propagate out degenerate PHIs in the joiner.
30090 2017-01-10  Martin Liska  <mliska@suse.cz>
30092         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
30093         (sort_congruence_classes_by_decl_uid): Likewise.
30094         (sort_congruence_class_groups_by_decl_uid): Likewise.
30095         (sem_item_optimizer::merge_classes): Sort class, groups in these
30096         classes and members in the groups by DECL_UID of declarations.
30097         This would make merge operations stable.
30099 2017-01-10  Martin Liska  <mliska@suse.cz>
30101         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
30102         usage of m_classes_vec.
30103         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
30104         (sem_item_optimizer::get_group_by_hash): Likewise.
30105         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
30106         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
30107         (sem_item_optimizer::verify_classes): Likewise.
30108         (sem_item_optimizer::process_cong_reduction): Likewise.
30109         (sem_item_optimizer::dump_cong_classes): Likewise.
30110         (sem_item_optimizer::merge_classes): Likewise.
30111         * ipa-icf.h (congruence_class_hash): Rename from
30112         congruence_class_group_hash.  Remove declaration of m_classes_vec.
30114 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
30116         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
30117         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
30118         * config.gcc: Add avx512vpopcntdqintrin.h.
30119         * config/i386/avx512vpopcntdqintrin.h: New.
30120         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
30121         * config/i386/i386-builtin-types.def: Add new types.
30122         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
30123         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
30124         __builtin_ia32_vpopcountq_v8di_mask): New.
30125         * config/i386/i386-c.c (ix86_target_macros_internal): Define
30126         __AVX512VPOPCNTDQ__.
30127         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
30128         (PTA_AVX512VPOPCNTDQ): Define.
30129         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
30130         TARGET_AVX512VPOPCNTDQ_P): Define.
30131         * config/i386/i386.opt: Add mavx512vpopcntdq.
30132         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
30133         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
30135 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
30137         PR middle-end/77484
30138         * predict.def (PRED_CALL): Set to 67.
30140 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
30142         * expr.c (store_field): In the bitfield case, if the value comes from
30143         a function call and is of an aggregate type returned in registers, do
30144         not modify the field mode; extract the value in all cases if the mode
30145         is BLKmode and the size is not larger than a word.
30147 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
30149         PR target/71017
30150         * config/i386/cpuid.h: Fix undefined behavior.
30152 2017-01-04  Jeff Law  <law@redhat.com>
30154         PR tree-optimization/79007
30155         PR tree-optimization/67955
30156         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
30157         conservative for pt.null when flag_non_call_exceptions is on.
30159 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
30161         PR translation/79019
30162         PR translation/79020
30163         * params.def (PARAM_INLINE_MIN_SPEEDUP,
30164         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
30165         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
30166         in descriptions.
30167         * config/avr/avr.opt (maccumulate-args): Likewise.
30168         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
30169         * common.opt (freport-bug): Likewise.
30170         * cif-code.def (CIF_FINAL_ERROR): Likewise.
30171         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
30172         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
30173         translatable string.
30174         * config/i386/i386.c (function_value_32): Likewise.
30175         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
30176         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
30177         Likewise.
30178         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
30179         * common/config/msp430/msp430-common.c (msp430_handle_option):
30180         Likewise.
30181         * symtab.c (symtab_node::verify_base): Likewise.
30182         * opts.c (set_debug_level): Likewise.
30183         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
30184         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
30185         missing whitespace to translatable strings.
30186         * config/avr/avr.md (bswapsi2): Fix typo in comment.
30187         * config/sh/superh.h: Likewise.
30188         * config/i386/xopintrin.h: Likewise.
30189         * config/i386/znver1.md: Likewise.
30190         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
30191         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
30192         * double-int.h (struct double_int): Likewise.
30193         * double-int.c (div_and_round_double): Likewise.
30194         * wide-int.cc: Likewise.
30195         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
30196         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
30197         * cfgcleanup.c (crossjumps_occured): Renamed to ...
30198         (crossjumps_occurred): ... this.
30199         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
30200         Adjust all uses.
30202         PR tree-optimization/78899
30203         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
30204         returning bool return struct loop *, NULL for failure and the new
30205         loop on success.
30206         (versionable_outer_loop_p): Don't version outer loop if it has
30207         dont_vectorized bit set.
30208         (tree_if_conversion): When versioning outer loop, ensure
30209         tree_if_conversion is performed also on the inner loop of the
30210         non-vectorizable outer loop copy.
30211         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
30212         LOOP_VECTORIZED in inner loop of the scalar outer loop and
30213         prevent vectorization of it.
30214         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
30215         the outer loop vectorization of the non-scalar version is attempted
30216         before vectorization of the inner loop in scalar version.  If
30217         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
30218         vectorization of its inner loop.
30219         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
30220         has 2 inner loops, rename also on edges from bb whose single pred
30221         is outer_loop->header.  Fix typo in function comment.
30223 2017-01-09  Martin Sebor  <msebor@redhat.com>
30225         PR bootstrap/79033
30226         * asan.c (asan_emit_stack_protection): Increase local buffer size
30227         to avoid snprintf truncation warning.
30229 2017-01-09  Andrew Pinski  <apinski@cavium.com>
30231         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
30232         to reference thunderx2t99 for the tuning structure
30233         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
30234         Rename to ...
30235         (thunderx2t99_extra_costs): This.
30236         * config/aarch64/aarch64-tune.md: Regenerate.
30237         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
30238         (vulcan_addrcost_table): This.
30239         (vulcan_regmove_cost): Rename to ...
30240         (thunderx2t99_regmove_cost): This.
30241         (vulcan_vector_cost): Rename to ...
30242         (thunderx2t99_vector_cost): this.
30243         (vulcan_branch_cost): Rename to ...
30244         (thunderx2t99_branch_cost): This.
30245         (vulcan_tunings): Rename to ...
30246         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
30247         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
30249 2017-01-09  Martin Jambor  <mjambor@suse.cz>
30251         PR ipa/78365
30252         PR ipa/78599
30253         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
30254         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
30255         (propagate_vr_accross_jump_function): Use the above function for all
30256         value range computations for pass-through jump functions and type
30257         converasion from explicit value range values.
30258         (ipcp_propagate_stage): Do not attempt to deduce types of formal
30259         parameters from TYPE_ARG_TYPES.
30260         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
30261         (ipa_write_node_info): Stream type of the actual argument.
30262         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
30264 2017-01-09  Martin Liska  <mliska@suse.cz>
30266         PR pch/78970
30267         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
30268         (lookup_compiler): Do not show error message with have_E.
30270 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
30272         PR tree-optimization/78938
30273         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
30274         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
30275         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
30276         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
30277         fixes.
30279 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30281         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
30282         is const0_rtx.
30284 2017-01-09  Richard Biener  <rguenther@suse.de>
30286         PR tree-optimization/78997
30287         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
30288         name condition properly.
30290 2017-01-09  Richard Biener  <rguenther@suse.de>
30292         PR debug/79000
30293         * dwarf2out.c (is_cxx): New overload with context.
30294         (is_naming_typedef_decl): Use it.
30296 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
30298         * invoke.texi (Option Summary): Correct spacing in option lists
30299         and add line breaks to fix over-long lines.
30301 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
30303         PR middle-end/17660
30305         * extend.texi (Common Variable Attributes): Add xref to GCC
30306         Internals manual to explain mode attribute keywords.
30308 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
30310         PR other/16519
30311         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
30312         and Preprocessor Options.
30313         (Options for Linking): Document -pthread here....
30314         (RS/6000 and PowerPC Options): ...not here.
30315         (Solaris 2 Options): ...or here.
30316         * doc/cppopts.texi: Document -pthread.
30318 2017-01-08  Martin Sebor  <msebor@redhat.com>
30320         PR middle-end/77708
30321         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
30322         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
30323         New member functions.
30324         (format_directive): Used them.
30325         (add_bytes): Same.
30326         (pass_sprintf_length::handle_gimple_call): Same.
30327         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
30328         to avoid truncation for any argument.
30329         (extract_affine_mul): Same.
30330         * tree.c (get_file_function_name): Same.
30332 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
30334         PR middle-end/77484
30335         * predict.def (PRED_INDIR_CALL): Set to 86.
30337 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
30339         PR preprocessor/54124
30340         * doc/cppopts.texi: Reformat -d subtable to list the full name
30341         of the options.  Add cross-reference to the docs for the general
30342         compiler -d options.
30343         * doc/invoke.texi (Developer Options): Add cross-reference to the
30344         preprocessor-specific -d option documentation.
30346 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
30348         PR preprocessor/13498
30349         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
30350         redudant material, and reflect new command-line options.
30351         (System Headers): Likewise.
30353 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
30355         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
30356         -isystem, and -idirafter.  Copy-edit.
30357         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
30358         default for -ftrack-macro-expansion.  Delete obsolete and
30359         badly-formatted implementation details about -fdebug-cpp output.
30360         * doc/cppwarnopts.texi: Copy-edit.
30362 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
30364         PR c++/72803
30365         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
30366         that the transition from a max line width >= 1<<10 to narrower
30367         lines works correctly.
30369 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
30371         * doc/options.texi (PerFunction): New.
30372         * opt-functions.awk (switch_flags): Map both Optimization and
30373         PerFunction to CL_OPTIMIZATION.
30374         * opth-gen.awk: Test for PerFunction flag along with
30375         Optimization.
30376         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
30377         it only when the latter is present.  Skip those that don't in
30378         the hash function generator.
30379         * common.opt (fvar-tracking): Mark as PerFunction instead of
30380         Optimization.
30381         (fvar-tracking-assignments): Likewise.
30382         (fvar-tracking-assignments-toggle): Likewise.
30383         (fvar-tracking-uninit): Likewise.
30385 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
30387         PR translation/79018
30388         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
30389         the and store.
30391 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
30393         PR target/57583
30394         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
30395         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
30396         TARGET_LONG_JUMP_TABLE_OFFSETS.
30397         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
30398         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
30399         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
30400         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
30401         * config/m68k/m68k.md (tablejump expander): Likewise.
30402         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
30403         TARGET_LONG_JUMP_TABLE_OFFSETS.
30404         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
30405         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
30407 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
30408             David Holsgrove <david.holsgrove@xilinx.com>
30410         * common/config/microblaze/microblaze-common.c
30411         (TARGET_EXCEPT_UNWIND_INFO): Remove.
30412         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
30413         New prototype.
30414         * config/microblaze/microblaze.c (microblaze_must_save_register)
30415         (microblaze_expand_epilogue, microblaze_return_addr): Handle
30416         calls_eh_return.
30417         (microblaze_eh_return): New function.
30418         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
30419         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
30420         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
30421         * config/microblaze/microblaze.md (eh_return): New pattern.
30423 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
30425         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
30426         GCC_DIAGNOSTIC_STRINGIFY): Define.
30428         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
30430 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30432         * config/arm/arm.md (<mcrr>): New.
30433         (<mrrc>): New.
30434         * config/arm/arm.c (arm_arch5te): New.
30435         (arm_option_override): Set arm_arch5te.
30436         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
30437         and mrrc2.
30438         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
30439         (arm_mcrr_qualifiers): ... this. New.
30440         (MRRC_QUALIFIERS): Define to...
30441         (arm_mrrc_qualifiers): ... this. New.
30442         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
30443         __arm_mrrc2): New.
30444         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
30445         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
30446         (MRRCI, mrrc, MRRC): New.
30447         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
30448         VUNSPEC_MRRC2): New.
30450 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30452         * config/arm/arm.md (<mcr>): New.
30453         (<mrc>): New.
30454         * config/arm/arm.c (arm_coproc_builtin_available): Add
30455         support for mcr, mrc, mcr2 and mrc2.
30456         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
30457         (arm_mcr_qualifiers): ... this. New.
30458         (MRC_QUALIFIERS): Define to ...
30459         (arm_mrc_qualifiers): ... this. New.
30460         (MCR_QUALIFIERS): Define to ...
30461         (arm_mcr_qualifiers): ... this. New.
30462         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
30463         __arm_mrc2): New.
30464         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
30465         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
30466         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
30467         VUNSPEC_MRC2): New.
30469 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30471         * config/arm/arm.md (*ldc): New.
30472         (*stc): New.
30473         (<ldc>): New.
30474         (<stc>): New.
30475         * config/arm/arm.c (arm_coproc_builtin_available): Add
30476         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
30477         (arm_coproc_ldc_stc_legitimate_address): New.
30478         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
30479         'qualifier_const_pointer'.
30480         (LDC_QUALIFIERS): Define to...
30481         (arm_ldc_qualifiers): ... this. New.
30482         (STC_QUALIFIERS): Define to...
30483         (arm_stc_qualifiers): ... this. New.
30484         * config/arm/arm-protos.h
30485         (arm_coproc_ldc_stc_legitimate_address): New.
30486         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
30487         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
30488         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
30489         stc2, stcl, stc2l): New.
30490         * config/arm/constraints.md (Uz): New.
30491         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
30492         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
30493         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
30494         VUNSPEC_STC2L): New.
30496 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30498         * config/arm/arm.md (<cdp>): New.
30499         * config/arm/arm.c (neon_const_bounds): Rename this ...
30500         (arm_const_bounds): ... this.
30501         (arm_coproc_builtin_available): New.
30502         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
30503         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
30504         (CDP_QUALIFIERS): Define to...
30505         (arm_cdp_qualifiers): ... this. New.
30506         (void_UP): Define.
30507         (arm_expand_builtin_args): Add case for 6 arguments.
30508         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
30509         (arm_const_bounds): ... this.
30510         (arm_coproc_builtin_available): New.
30511         * config/arm/arm_acle.h (__arm_cdp): New.
30512         (__arm_cdp2): New.
30513         * config/arm/arm_acle_builtins.def (cdp): New.
30514         (cdp2): New.
30515         * config/arm/iterators.md (CDPI,CDP,cdp): New.
30516         * config/arm/neon.md: Rename all 'neon_const_bounds' to
30517         'arm_const_bounds'.
30518         * config/arm/types.md (coproc): New.
30519         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
30520         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
30521         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
30522         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
30524 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30526         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
30527         (UBINOP_QUALIFIERS): New.
30528         (si_UP): Define.
30529         (acle_builtin_data): New. Change comment.
30530         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
30531         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
30532         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
30533         arm_acle_builtins.def.
30534         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
30535         (arm_init_acle_builtins): New.
30536         (CRC32_BUILTIN): Remove.
30537         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
30538         crc32cb, crc32ch and crc32cw.
30539         (arm_init_crc32_builtins): Remove.
30540         (arm_init_builtins): Use arm_init_acle_builtins rather
30541         than arm_init_crc32_builtins.
30542         (arm_expand_acle_builtin): New.
30543         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
30544         * config/arm/arm_acle_builtins.def: New.
30546 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
30548         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
30549         (arm_builtin_datum): ... this.
30550         (arm_init_neon_builtin): Rename to ...
30551         (arm_init_builtin): ... this. Add a new parameters PREFIX
30552         and USE_SIG_IN_NAME.
30553         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
30554         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
30555         'arm_builtin_datum'.
30556         (arm_init_vfp_builtins): Likewise.
30557         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
30558         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
30559         (arm_expand_neon_args): Rename to ...
30560         (arm_expand_builtin_args): ... this. Rename builtin_arg
30561         enum values and differentiate between ARG_BUILTIN_MEMORY
30562         and ARG_BUILTIN_NEON_MEMORY.
30563         (arm_expand_neon_builtin_1): Rename to ...
30564         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
30565         values, arm_expand_builtin_args and add bool parameter NEON.
30566         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
30567         (arm_expand_vfp_builtin): Likewise.
30568         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
30570 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
30572         PR middle-end/77484
30573         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
30574         * predict.c (tree_estimate_probability_bb): Reverse direction of
30575         polymorphic call predictor.
30577 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
30579         * passes.c (execute_one_pass): Split out pass-skipping logic into...
30580         (determine_pass_name_match): ...this new function and...
30581         (should_skip_pass_p): ...this new function.
30583 2017-01-06  Nathan Sidwell  <nathan@acm.org>
30585         * ipa-visibility.c (function_and_variable_visibility): Reformat
30586         comments and long lines.  Remove extrneous if.
30587         * symtab.c (symtab_node::make_decl_local): Fix code format.
30588         (symtab_node::set_section_for_node): Fix comment typo.
30590 2017-01-06  Martin Liska  <mliska@suse.cz>
30592         PR bootstrap/79003
30593         * lra-constraints.c: Rename invariant to lra_invariant.
30594         * predict.c (set_even_probabilities): Initialize e to NULL.
30596 2017-01-05  Martin Sebor  <msebor@redhat.com>
30598         PR tree-optimization/78910
30599         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
30600         (format_integer): Correct off-by-one error in the handling
30601         of precision with negative numbers in signed conversions..
30603 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
30605         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
30607 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
30609         PR tree-optimization/71016
30610         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
30611         factor_out_conditional_conversion.  Formatting fix.
30612         (factor_out_conditional_conversion): Add cond_stmt argument.
30613         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
30614         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
30615         Formatting fix.
30617 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
30619         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
30620         read-rtl-function.o, and selftest-rtl.o.
30621         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
30622         (selftest::aarch64_test_loading_full_dump): New function.
30623         (selftest::aarch64_run_selftests): New function.
30624         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
30625         selftest::aarch64_run_selftests.
30626         * config/i386/i386.c
30627         (selftest::ix86_test_loading_dump_fragment_1): New function.
30628         (selftest::ix86_test_loading_call_insn): New function.
30629         (selftest::ix86_test_loading_full_dump): New function.
30630         (selftest::ix86_test_loading_unspec): New function.
30631         (selftest::ix86_run_selftests): Call the new functions.
30632         * emit-rtl.c (maybe_set_max_label_num): New function.
30633         * emit-rtl.h (maybe_set_max_label_num): New decl.
30634         * function.c (instantiate_decls): Guard call to
30635         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
30636         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
30637         "static".
30638         * gensupport.c (gen_reader::gen_reader): Pass "false"
30639         for new "compact" param of rtx_reader.
30640         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
30641         rather than an empty string for NULL strings.
30642         * read-md.c: Potentially include config.h rather than bconfig.h.
30643         Wrap include of errors.h with #ifdef GENERATOR_FILE.
30644         (have_error): New global, copied from errors.c.
30645         (md_reader::read_name): Rename to...
30646         (md_reader::read_name_1): ...this, adding "out_loc" param,
30647         and converting "missing name or number" to returning false, rather
30648         than failing.
30649         (md_reader::read_name): Reimplement in terms of read_name_1.
30650         (md_reader::read_name_or_nil): New function.
30651         (md_reader::read_string): Handle "(nil)" by returning NULL.
30652         (md_reader::md_reader): Add new param "compact".
30653         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
30654         (md_reader::read_file): New method.
30655         * read-md.h (md_reader::md_reader): Add new param "compact".
30656         (md_reader::read_file): New method.
30657         (md_reader::is_compact): New accessor.
30658         (md_reader::read_name): Convert return type from void to file_location.
30659         (md_reader::read_name_or_nil): New decl.
30660         (md_reader::read_name_1): New decl.
30661         (md_reader::m_compact): New field.
30662         (noop_reader::noop_reader): Pass "false" for new "compact" param
30663         of rtx_reader.
30664         (rtx_reader::rtx_reader): Add new "compact" param.
30665         (rtx_reader::read_rtx_operand): Make virtual and convert return
30666         type from void to rtx.
30667         (rtx_reader::read_until): New decl.
30668         (rtx_reader::handle_any_trailing_information): New virtual function.
30669         (rtx_reader::postprocess): New virtual function.
30670         (rtx_reader::finalize_string): New virtual function.
30671         (rtx_reader::m_in_call_function_usage): New field.
30672         (rtx_reader::m_reuse_rtx_by_id): New field.
30673         * read-rtl-function.c: New file.
30674         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
30675         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
30676         (selftest::verify_three_block_rtl_cfg): New decl.
30677         * read-rtl-function.h: New file.
30678         * read-rtl.c: Potentially include config.h rather than bconfig.h.
30679         For host, include function.h, memmodel.h, and emit-rtl.h.
30680         (one_time_initialization): New function.
30681         (struct compact_insn_name): New struct.
30682         (compact_insn_names): New array.
30683         (find_code): Handle insn codes in compact dumps.
30684         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
30685         (bind_subst_iter_and_attr): Likewise.
30686         (add_condition_to_string): Likewise.
30687         (add_condition_to_rtx): Likewise.
30688         (apply_attribute_uses): Likewise.
30689         (add_current_iterators): Likewise.
30690         (apply_iterators): Likewise.
30691         (initialize_iterators): Guard usage of apply_subst_iterator with
30692         #ifdef GENERATOR_FILE.
30693         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
30694         (md_reader::read_mapping): Likewise.
30695         (add_define_attr_for_define_subst): Likewise.
30696         (add_define_subst_attr): Likewise.
30697         (read_subst_mapping): Likewise.
30698         (check_code_iterator): Likewise.
30699         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
30700         logic to...
30701         (one_time_initialization): New function.
30702         (rtx_reader::read_until): New method.
30703         (read_flags): New function.
30704         (parse_reg_note_name): New function.
30705         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
30706         Handle reuse_rtx ids.
30707         Wrap iterator lookup within #ifdef GENERATOR_FILE.
30708         Add parsing support for RTL dumps, mirroring the special-cases in
30709         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
30710         values, and calling handle_any_trailing_information.
30711         (rtx_reader::read_rtx_operand): Convert return type from void
30712         to rtx, returning return_rtx.  Handle case 'e'.  Call
30713         finalize_string on XSTR and XTMPL fields.
30714         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
30715          "(nil)" values were omitted.  Call the postprocess vfunc on the
30716         return_rtx.
30717         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
30718         class ctor.  Initialize m_in_call_function_usage.  Call
30719         one_time_initialization.
30720         * rtl-tests.c (selftest::test_uncond_jump): Call
30721         set_new_first_and_last_insn.
30722         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
30723         * selftest-rtl.c: New file.
30724         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
30725         (selftest::get_insn_by_uid): New decl.
30726         * selftest-run-tests.c (selftest::run_tests): Call
30727         read_rtl_function_c_tests.
30728         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
30729         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
30730         dumps.
30732 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
30734         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
30735         operands in a special way.  Assert that pos+len <= mode precision.
30737 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
30739         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
30740         3 argument Alias with unlimited for the negative form.
30741         (fno-vect-cost-model): Removed.
30743 2017-01-05  Martin Liska  <mliska@suse.cz>
30745         * hsa-gen.c (gen_hsa_divmod): New function.
30746         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
30748 2017-01-05  Martin Liska  <mliska@suse.cz>
30750         PR pch/78970
30751         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
30752         header.
30754 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
30756         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
30757         small constant length operands.
30759 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
30761         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
30762         between loop iterations.
30764 2017-01-05  Martin Liska  <mliska@suse.cz>
30766         PR sanitizer/78815
30767         * gimplify.c (gimplify_decl_expr): Compare to
30768         asan_poisoned_variables instread of checking flags.
30769         (gimplify_target_expr): Likewise.
30770         (gimplify_expr): Likewise.
30771         (gimplify_function_tree): Conditionally initialize
30772         asan_poisoned_variables.
30774 2017-01-04  Jeff Law  <law@redhat.com>
30776         PR tree-optimizatin/78812
30777         * rtl.h (contains_mem_rtx_p): Prototype.
30778         * ifcvt.c (containts_mem_rtx_p): Move from here to...
30779         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
30780         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
30781         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
30782         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
30784 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
30786         * input.c (assert_char_at_range): Default-initialize actual_range.
30788 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
30790         * df-scan.c (df_ref_create_structure): Make regno unsigned,
30791         to match the caller.
30793 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
30795         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
30796         insns after final jump in test to emit dummy move.
30798 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
30800         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
30801         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
30803 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
30805         * multiple_target.c (create_dispatcher_calls): Init e_next.
30806         * tree-ssa-loop-split.c (split_loop): Init border.
30807         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
30808         scalar_type.
30810 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
30812         PR target/71977
30813         PR target/70568
30814         PR target/78823
30815         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
30816         (altivec_register_operand): Do not return true if the operand
30817         contains a SUBREG mixing SImode and SFmode.
30818         (vsx_register_operand): Likewise.
30819         (vsx_reg_sfsubreg_ok): New predicate.
30820         (vfloat_operand): Do not return true if the operand contains a
30821         SUBREG mixing SImode and SFmode.
30822         (vint_operand): Likewise.
30823         (vlogical_operand): Likewise.
30824         (gpc_reg_operand): Likewise.
30825         (int_reg_operand): Likewise.
30826         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
30827         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
30828         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
30829         SImode and SFmode.
30830         (rs6000_emit_move_si_sf_subreg): New helper function.
30831         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
30832         fixup SUBREGs involving SImode and SFmode.
30833         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
30834         numbers for the new peephole2 optimization.
30835         (peephole2 for SFmode unions): New peephole2 to optimize cases in
30836         the GLIBC math library that do AND/IOR/XOR operations on single
30837         precision floating point.
30838         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
30839         target macros to say whether we need to avoid SUBREGs mixing
30840         SImode and SFmode.
30841         (TARGET_ALLOW_SF_SUBREG): Likewise.
30842         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
30843         (UNSPEC_SI_FROM_SF): Likewise.
30844         (iorxor): Change spacing.
30845         (and_ior_xor): New iterator for AND, IOR, and XOR.
30846         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
30847         (movdi_from_sf_zero_ext): Likewise.
30848         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
30849         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
30850         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
30851         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
30852         (fms<mode>4): Likewise.
30853         (fnma<mode>4): Likewise.
30854         (fnms<mode>4): Likewise.
30855         (nfma<mode>4): Likewise.
30856         (nfms<mode>4): Likewise.
30858 2017-01-04  Marek Polacek  <polacek@redhat.com>
30860         PR c++/64767
30861         * doc/invoke.texi: Document -Wpointer-compare.
30863 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
30865         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
30866         RejectNegative.
30868         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
30869         descriptions for -gdwarf-5 and emit them as uleb128 instead of
30870         2-byte data.
30872 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
30874         PR target/78056
30875         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
30876         documentation of the powerpc_popcntb_ok attribute.
30877         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
30878         code to issue warning messages if a requested CPU configuration is
30879         not supported by the binary (assembler and loader) toolchain.
30880         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
30881         made to define a built-in function that has been disabled.
30882         (paired_init_builtins): Add assertion to prevent ICE if attempt is
30883         made to define a built-in function that has been disabled.
30884         (altivec_init_builtins): Add comment explaining why definition
30885         of the DST built-in functions is not preceded by an assertion
30886         check.  Add assertions to prevent ICE if attempts are made to
30887         define an altivec predicate or an abs* built-in function that has
30888         been disabled.
30889         (htm_init_builtins): Add comment explaining why definition of the
30890         htm built-in functions is not preceded by an assertion check.
30892 2017-01-04  Jeff Law  <law@redhat.com>
30894         PR tree-optimizatin/67955
30895         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
30896         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
30897         the points-to solution does not include pt_null.  Use DECL_PT_UID
30898         unconditionally.
30900 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
30902         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
30903         Use gen_int_mode instead of gen_lopwart for const_int operands.
30905 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
30907         PR tree-optimization/71563
30908         * match.pd: Simplify X << Y into X if Y is known to be 0 or
30909         out of range value - has low bits known to be zero.
30911 2017-01-04  Alan Modra  <amodra@gmail.com>
30913         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
30914         * configure: Regenerate.
30915         * config.in: Regenerate.
30917 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
30919         PR bootstrap/77569
30920         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
30921         a substring of the message, but strcmp with the whole message.  Ifdef
30922         ENABLE_NLS, translate the message first using dgettext.
30924 2017-01-03  Jeff Law  <law@redhat.com>
30926         PR tree-optimizatin/78856
30927         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
30928         (mark_threaded_blocks): Remove code to truncate thread paths that
30929         cross multiple loop headers.  Instead invalidate the cached loop
30930         iteration information and handle case of a thread path walking
30931         into an irreducible region.
30933 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
30935         PR target/78900
30936         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
30937         assertions.  Add support for doing the signbit if the IEEE 128-bit
30938         floating point value is in a GPR.
30939         * config/rs6000/rs6000.md (Fsignbit): Delete.
30940         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
30941         Update the length attribute if the value is in a GPR.
30942         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
30943         the sign or zero extension instruction, since the value is always 0/1.
30944         (signbit<mode>2_dm2): Delete using <Fsignbit>.
30946         PR target/78953
30947         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
30948         extracting SImode to a GPR register so that we can generate a
30949         store, limit the vector to be in a traditional Altivec register
30950         for the vextuwrx instruction.
30952 2017-01-03  Ian Lance Taylor  <iant@google.com>
30954         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
30956 2017-01-03  Martin Sebor  <msebor@redhat.com>
30958         PR tree-optimization/78696
30959         * gimple-ssa-sprintf.c (format_floating): Correct handling of
30960         precision.  Use MPFR for %f for greater fidelity.  Correct handling
30961         of %g.
30962         (pass_sprintf_length::compute_format_length): Set width and precision
30963         specified by asrerisk to void_node for vararg functions.
30964         (try_substitute_return_value): Adjust dump output.
30966 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
30968         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
30970 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
30972         * doc/invoke.texi (SPARC options): Document -mlra as the default.
30973         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
30974         -mlra/-mno-lra was passed to the compiler.
30976 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
30978         PR rtl-optimization/65618
30979         * emit-rtl.c (try_split): Move initialization of "before" and
30980         "after" to just before the call to emit_insn_after_setloc.
30982 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
30984         * doc/md.texi (Standard Names): Remove reference to Java frontend.
30986 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
30988         * dwarf2out.c (gen_enumeration_type_die): When
30989         -gno-strict-dwarf, add a DW_AT_encoding attribute.
30991 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
30993         PR tree-optimization/78965
30994         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
30995         Change first argument from const call_info & to call_info &.  For %n
30996         set info.nowrite to false.
30998         PR middle-end/78901
30999         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
31000         possibly throwing calls.
31002         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
31003         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
31004         and fns handling, rather than in a separate case SSA_NAME.
31006 2017-01-02  Jeff Law  <law@redhat.com>
31008         * config/darwin-driver.c (darwin_driver_init): Const-correctness
31009         fixes for first_period and second_period variables.
31011 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
31013         PR target/78967
31014         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
31015         (*insvqi_1): New insn pattern.
31016         (*insvqi_1_mem_rex64): Ditto.
31017         (*insvqi_2): Ditto.
31018         (*insvqi_3): Rename from *insvqi.
31020         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
31022 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
31024         * doc/cfg.texi (Edges): Remove reference to Java.
31025         (Maintaining the CFG): Ditto.
31027 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
31029         PR middle-end/77674
31030         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
31031         transparent aliases.
31033 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
31035         PR middle-end/77484
31036         * predict.def (PRED_CALL): Update hitrate.
31037         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
31038         * predict.c (tree_estimate_probability_bb): Split CALL predictor
31039         into direct/indirect/polymorphic variants.
31041 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
31043         Update copyright years.
31045         * gcc.c (process_command): Update copyright notice dates.
31046         * gcov-dump.c (print_version): Ditto.
31047         * gcov.c (print_version): Ditto.
31048         * gcov-tool.c (print_version): Ditto.
31049         * gengtype.c (create_file): Ditto.
31050         * doc/cpp.texi: Bump @copying's copyright year.
31051         * doc/cppinternals.texi: Ditto.
31052         * doc/gcc.texi: Ditto.
31053         * doc/gccint.texi: Ditto.
31054         * doc/gcov.texi: Ditto.
31055         * doc/install.texi: Ditto.
31056         * doc/invoke.texi: Ditto.
31058 Copyright (C) 2017 Free Software Foundation, Inc.
31060 Copying and distribution of this file, with or without modification,
31061 are permitted in any medium without royalty provided the copyright
31062 notice and this notice are preserved.