Daily bump.
[official-gcc.git] / gcc / ChangeLog
blob93ad528214bbd91f008fed22600e69c6d7b5b452
1 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
3         * config/rs6000/mm_malloc.h: New file.
5 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
7         PR tree-optimization/81913
8         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
9         analysis when either IVs in condition can wrap.
11 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
13         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
14         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
16 2017-08-24  Richard Biener  <rguenther@suse.de>
18         PR target/81921
19         * targhooks.c (default_target_can_inline_p): Properly
20         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
21         is present and always compare.
22         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
23         imply -mfpmath=sse from TARGET_SSE_P.
24         (ix86_can_inline_p): Properly use target_option_default_node when
25         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
27 2017-08-24  Richard Biener  <rguenther@suse.de>
29         PR debug/81936
30         * dwarf2out.c (output_die): Handle flag_generate_offload like
31         flag_generate_lto.
32         (output_comp_unit): Likewise.
33         (gen_array_type_die): Likewise.
34         (dwarf2out_early_finish): Likewise.
35         (note_variable_value_in_expr): Likewise.
36         (dwarf2out_finish): Likewise.  Adjust assert.
37         * cgraphunit.c (symbol_table::compile): Move setting of
38         flag_generate_offload earlier ...
39         (symbol_table::finalize_compilation_unit): ... here, before
40         early debug finalization.
42 2017-08-24  Richard Biener  <rguenther@suse.de>
44         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
45         and ipa-fnsummary.h.
46         (ix86_can_inline_p): When ix86_fpmath flags do not match
47         check whether the callee uses FP math at all.
49 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
51         PR middle-end/81931
52         * tree-ssanames.c (get_nonzero_bits): Use element_precision
53         instead of TYPE_PRECISION.
55 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
56             Alan Hayward  <alan.hayward@arm.com>
57             David Sherwood  <david.sherwood@arm.com>
59         * combine.c (make_extraction): Use subreg_offset_from_lsb.
61 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
63         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
64         Remove field.
65         (ix86_frame::stack_realign_allocate): New field.
66         (struct machine_frame_state): Modify comments.
67         (machine_frame_state::sp_realigned_fp_end): New field.
68         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
69         layout calculation.
70         (sp_valid_at): Add assertion to assure no attempt to access invalid
71         offset of a realigned stack.
72         (fp_valid_at): Likewise.
73         (choose_baseaddr): Modify comments.
74         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
75         ix86_expand_prologue.
76         (ix86_expand_prologue): Modify stack realignment and allocation.
77         (ix86_expand_epilogue): Modify comments.
78         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
79         avx2_runtime, avx512f, and avx512f_runtime.
81 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
83         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
84         (mstackrealign): Do not init to -1.
85         * config/i386/i386.c (ix86_option_override_internal):
86         Check opts_set, not opts when setting default value of
87         opts->x_ix86_force_align_arg_pointer.
89 2017-08-23  Richard Biener  <rguenther@suse.de>
91         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
92         lang_hooks.decl_printable_name.
93         * print-rtl-function.c (print_rtx_function): Likewise.
94         * tree-pretty-print.c (dump_function_header): Likewise.
96 2017-08-23  Richard Biener  <rguenther@suse.de>
98         PR lto/81940
99         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
100         -g0 at compile-time.
102 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
104         PR middle-end/19706
105         * doc/sourcebuild.texi (Other hardware attributes):
106         Document xorsign.
108 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
110         PR middle-end/19706
111         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
112         Fix single-use check.
114 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
116         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
118 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
120         * doc/install.texi: Modify to add more details on running selected
121         tests.
123 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
125         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
126         is combined with -mabi=ms.
127         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
128         ms_abi.
130 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
132         PR tree-optimization/81488
133         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
134         and cached_basis fields.
135         (MAX_SPREAD): New constant.
136         (alloc_cand_and_find_basis): Initialize new fields.
137         (clear_visited): New function.
138         (create_phi_basis_1): Rename from create_phi_basis, set visited
139         and cached_basis fields.
140         (create_phi_basis): New wrapper function.
141         (phi_add_costs_1): Rename from phi_add_costs, add spread
142         parameter, set visited field, short-circuit when limits reached.
143         (phi_add_costs): New wrapper function.
144         (record_phi_increments_1): Rename from record_phi_increments, set
145         visited field.
146         (record_phi_increments): New wrapper function.
147         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
148         (phi_incr_cost): New wrapper function.
149         (all_phi_incrs_profitable_1): Rename from
150         all_phi_incrs_profitable, set visited field.
151         (all_phi_incrs_profitable): New wrapper function.
153 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
154             Alan Hayward  <alan.hayward@arm.com>
155             David Sherwood  <david.sherwood@arm.com>
157         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
158         that takes the outer and inner modes.
159         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
160         comparison as the canonical test for a paradoxical subreg.
161         * combine.c (simplify_set): Use paradoxical_subreg_p.
162         (make_extraction): Likewise.
163         (force_to_mode): Likewise.
164         (rtx_equal_for_field_assignment_p): Likewise.
165         (gen_lowpart_for_combine): Likewise.
166         (simplify_comparison): Likewise.
167         * cse.c (equiv_constant): Likewise.
168         * expmed.c (store_bit_field_1): Likewise.
169         * final.c (alter_subreg): Likewise.
170         * fwprop.c (propagate_rtx): Likewise.
171         (forward_propagate_subreg): Likewise.
172         * ira-conflicts.c (ira_build_conflicts): Likewise.
173         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
174         * lra-constraints.c (curr_insn_transform): Likewise.
175         (split_reg): Likewise.
176         * lra-eliminations.c (move_plus_up): Likewise.
177         (lra_eliminate_regs_1): Likewise.
178         * recog.c (general_operand): Likewise.
179         * ree.c (combine_reaching_defs): Likewise.
180         * reload.c (push_reload): Likewise.
181         (find_reloads): Likewise.
182         * reload1.c (elimination_effects): Likewise.
183         (compute_reload_subreg_offset): Likewise.
184         (choose_reload_regs): Likewise.
185         * rtlanal.c (subreg_lsb_1): Likewise.
186         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
187         (simplify_subreg): Likewise.
188         * var-tracking.c (track_loc_p): Likewise.
189         * emit-rtl.c (byte_lowpart_offset): Likewise.
190         (paradoxical_subreg_p): Delete out-of-line definition.
192 2017-08-22  Jeff Law  <law@redhat.com>
194         PR tree-optimization/81741
195         PR tree-optimization/71947
196         * tree-ssa-dom.c: Include tree-inline.h.
197         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
198         equivalences if one is more expensive to compute than the other.
199         * tree-ssa-scopedtables.h (class const_or_copies): Make
200         record_const_or_copy_raw method private.
201         (class avail_exprs_stack): New method simplify_binary_operation.
202         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
203         avail_exprs_stack::simplify_binary_operation as needed.
204         (avail_exprs_stack::simplify_binary_operation): New function.
206 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
208         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
209         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
210         (DOT_SYMBOLS): Likewise.
211         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
212         (RELOCATABLE_NEEDS_FIXUP): Likewise.
213         (RS6000_ABI_NAME): Likewise.
214         (TARGET_CMODEL): Likewise.
215         (TOC_SECTION_ASM_OP): Likewise.
216         (SET_CMODEL): New macro.
217         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
219 2017-08-22  Richard Biener  <rguenther@suse.de>
221         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
222         to allow for free-lang-data replacements similar to verify_type_variant.
224 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
225             Alan Hayward  <alan.hayward@arm.com>
226             David Sherwood  <david.sherwood@arm.com>
228         * config/aarch64/aarch64.md (casesi): Use DImode rather than
229         VOIDmode for the LABEL_REF.
231 2017-08-22  Richard Biener  <rguenther@suse.de>
233         * tree-cfg.c (gimple_split_edge): Avoid reallocating target
234         PHI nodes.
236 2017-08-22  Richard Biener  <rguenther@suse.de>
238         * common.opt (feliminate-dwarf2-dups): Ignore.
239         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
240         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
241         same_die_p_wrap, compute_section_prefix,
242         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
243         (comdat_symbol_id, comdat_symbol_number): Likewise.
244         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
245         Likewise.
246         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
247         (output_die): Mark unreachable path unreachable.
248         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
249         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
250         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
251         (dwarf2out_early_finish): Likewise.
253 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
255         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
257 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
259         PR target/81910
260         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
261         not VAR_P. Filter attribute warnings with OPT_Wattributes.
262         (avr_attribute_table) <io, io_low, address>: Initialize
263         .decl_required with true.
265 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
267         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
268         undocumented debugging options.
269         (-mvsx-scalar-double): Likewise.
270         (-mallow-df-permute): Likewise.
271         (-mvectorize-builtins): Likewise.
272         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
273         Likewise.
274         (rs6000_builtin_vectorized_function): Likewise.
275         (rs6000_builtin_md_vectorized_function): Likewise.
276         (rs6000_opt_vars): Likewise.
278 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
280         PR target/46091
281         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
282         (*btrq_imm): Rename from *btrq.
283         (*btcq_imm): Rename from *btcq.
284         (btsc): New code attribute.
285         (*<btsc><mode>): New insn pattern.
286         (*btr<mode>): Ditto.
287         (*<btsc><mode>_mask): New insn_and_split pattern.
288         (*btr<mode>_mask): Ditto.
290 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
291             Alan Hayward  <alan.hayward@arm.com>
292             David Sherwood  <david.sherwood@arm.com>
294         * function.c (pad_below): Simplify padding calculation.
296 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
297             Alan Hayward  <alan.hayward@arm.com>
298             David Sherwood  <david.sherwood@arm.com>
300         * target.def (function_prologue): Remove frame size argument.
301         (function_epilogue): Likewise.
302         * doc/tm.texi: Regenerate.
303         * final.c (final_start_function): Update call to function_prologue.
304         (final_end_function): Update call to function_epilogue.
305         (default_function_pro_epilogue): Remove frame size argument.
306         * output.h (default_function_pro_epilogue): Likewise.
307         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
308         (arm_output_function_prologue): Likewise.
309         * config/frv/frv.c (frv_function_prologue): Likewise.
310         (frv_function_epilogue): Likewise.
311         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
312         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
313         (ia64_output_function_epilogue): Likewise.
314         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
315         (m32r_output_function_epilogue): Likewise.
316         * config/microblaze/microblaze.c (microblaze_function_prologue)
317         (microblaze_function_epilogue): Likewise.
318         * config/mips/mips.c (mips_output_function_prologue): Likewise.
319         (mips_output_function_epilogue): Likewise.
320         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
321         (mmix_target_asm_function_epilogue): Likewise.
322         * config/msp430/msp430.c (msp430_start_function): Likewise.
323         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
324         (nds32_asm_function_epilogue): Likewise.
325         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
326         * config/pa/pa.c (pa_output_function_prologue): Likewise.
327         (pa_output_function_epilogue): Likewise.
328         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
329         (rs6000_output_function_epilogue): Likewise.
330         * config/rl78/rl78.c (rl78_start_function): Likewise.
331         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
332         (rs6000_output_function_epilogue): Likewise.
333         * config/rx/rx.c (rx_output_function_prologue): Likewise.
334         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
335         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
336         (sparc_asm_function_epilogue): Likewise.
338 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
340         * tree.h (type_has_mode_precision_p): New function.
341         * convert.c (convert_to_integer_1): Use it.
342         * expr.c (expand_expr_real_2): Likewise.
343         (expand_expr_real_1): Likewise.
344         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
345         * match.pd: Likewise.
346         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
347         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
348         * tree-tailcall.c (process_assignment): Likewise.
349         * tree-vect-loop.c (vectorizable_reduction): Likewise.
350         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
351         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
352         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
353         (vectorizable_assignment): Likewise.
354         (vectorizable_shift): Likewise.
355         (vectorizable_operation): Likewise.
356         * tree-vrp.c (register_edge_assert_for_2): Likewise.
358 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
360         * match.pd: Add pow (C, x) simplification.
362 2017-08-21  Richard Biener  <rguenther@suse.de>
364         PR tree-optimization/81900
365         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
366         for blocks with abnormal predecessors.
367         (compute_antic): Do not set visited flag prematurely.
369 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
371         PR target/79883
372         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
374 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
376         * stor-layout.h (vector_type_mode): Move to...
377         * tree.h (vector_type_mode): ...here.
378         * stor-layout.c (vector_type_mode): Move to...
379         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
381 2017-08-21  Richard Biener  <rguenther@suse.de>
383         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
384         register_external_die hooks.
385         (debug_false_tree_charstarstar_uhwistar): Declare.
386         (debug_nothing_tree_charstar_uhwi): Likewise.
387         * debug.c (do_nothing_debug_hooks): Adjust.
388         (debug_false_tree_charstarstar_uhwistar): New do nothing.
389         (debug_nothing_tree_charstar_uhwi): Likewise.
390         * dbxout.c (dbx_debug_hooks): Adjust.
391         (xcoff_debug_hooks): Likewise.
392         * sdbout.c (sdb_debug_hooks): Likewise.
393         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
394         * dwarf2out.c (macinfo_label_base): New global.
395         (dwarf2out_register_external_die): New function for the
396         register_external_die hook.
397         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
398         (dwarf2_debug_hooks): Use them.
399         (dwarf2_lineno_debug_hooks): Adjust.
400         (struct die_struct): Add with_offset flag.
401         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
402         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
403         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
404         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
405         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
406         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
407         defining section names for the early LTO debug variants.
408         (reset_indirect_string): New helper.
409         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
410         (print_dw_val): Add support for offsetted symbol references.
411         (get_ultimate_context): Split out from is_cxx.
412         (is_cxx): Use get_ultimate_context.
413         (is_fortran): Add decl overload.
414         (compute_comp_unit_symbol): Split out worker from
415         compute_section_prefix.
416         (compute_section_prefix): Call compute_comp_unit_symbol and
417         set comdat_type_p here.
418         (output_die): Skip DIE symbol output for the LTO added one.
419         Handle DIE symbol references with offset.
420         (output_comp_unit): Guard section name mangling properly.
421         For LTO debug sections emit a symbol at the section beginning
422         which we use to refer to its DIEs.
423         (add_abstract_origin_attribute): For DIEs registered via
424         dwarf2out_register_external_die directly refer to the early
425         DIE rather than indirectly through the shadow one we created.
426         Remove obsolete call to dwarf2out_abstract_function for
427         non-function/block origins.
428         (gen_array_type_die): When generating early LTO debug do
429         not emit DW_AT_string_length.
430         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
431         late when in LTO.  As suggested place a gcc_unreachable for
432         the DECL_ABSTRACT_P case.
433         (gen_subprogram_die): Avoid another specification DIE
434         for early built declarations/definitions for the late LTO case.
435         (gen_variable_die): Add type references for late duplicated VLA dies
436         when in late LTO.
437         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
438         we have the abstract instance already.
439         (process_scope_var): Adjust decl DIE contexts in LTO which
440         first puts them in limbo.
441         (gen_decl_die): Do not generate type DIEs late apart from
442         types for VLAs or for decls we do not yet have a DIE.  Do not
443         call dwarf2out_abstract_function late.
444         (dwarf2out_early_global_decl): Make sure to create DIEs
445         for abstract instances of a decl first.
446         (dwarf2out_late_global_decl): Adjust comment.
447         (output_macinfo_op): With multiple macro sections use
448         macinfo_label_base to distinguish labels.
449         (output_macinfo): Likewise.  Update macinfo_label_base.
450         Pass in the line info label.
451         (note_variable_value_in_expr): When generating LTO resolve
452         all variable values here by generating DIEs as needed.
453         (init_sections_and_labels): Add early LTO debug flag parameter
454         and generate different sections and names if set.  Add generation
455         counter for the labels so we can have multiple of them.
456         (reset_dies): Helper to allow DIEs to be output multiple times.
457         (dwarf2out_finish): When outputting DIEs to the fat part of an
458         LTO object first reset DIEs.
459         (dwarf2out_early_finish): Output early DIEs when generating LTO.
460         (modified_type_die): Check for decl_ultimate_origin being self
461         before recursing.
462         (gen_type_die_with_usage): Likewise.
463         (gen_typedef_die): Allow decl_ultimate_origin being self.
464         (set_decl_abstract_flags): Remove.
465         (set_block_abstract_flags): Likewise.
466         (dwarf2out_abstract_function): Treat the early generated DIEs
467         as the abstract copy and only add DW_AT_inline and
468         DW_AT_artificial here and call set_decl_origin_self.
469         If the DIE has an abstract origin don't do anything.
470         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
471         if we have none yet (Go fails to build one, PR78628).
472         (variably_modified_type_p): Prevent endless recursion for Ada
473         cyclic pointer types.
474         * lto-streamer-in.c: Include debug.h.
475         (dref_queue): New global.
476         (lto_read_tree_1): Stream in DIE references.
477         (lto_input_tree): Register DIE references.
478         (input_function): Stream DECL_DEBUG_ARGS.
479         * lto-streamer-out.c: Include debug.h.
480         (lto_write_tree_1): Output DIE references.
481         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
482         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
483         (output_function): Stream DECL_DEBUG_ARGS.
484         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
485         Stream DECL_ABSTRACT_ORIGIN.
486         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
487         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
488         DECL_CONTEXT for file-scope decls.
489         * lto-streamer.h (struct dref_entry): Declare.
490         (dref_queue): Likewise.
491         * cfgexpand.c (pass_expand::execute): Do not call the
492         outlining_inline_function hook here.
493         * lto-wrapper.c (debug_obj): New global.
494         (tool_cleanup): Unlink it if required.
495         (debug_objcopy): New function.
496         (run_gcc): Handle early debug sections in the IL files by
497         extracting them to separate files, partially linkin them and
498         feeding the result back as result to the linker.
499         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
500         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
501         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
502         sections into a separate segment.
503         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
504         segments.
505         (darwin_asm_dwarf_section): Likewise.
506         (darwin_asm_output_dwarf_offset): Likewise.
507         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
509 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
510             Alan Hayward  <alan.hayward@arm.com>
511             David Sherwood  <david.sherwood@arm.com>
513         * read-md.h (md_reader::record_potential_iterator_use): Replace
514         pointer argument with an rtx and an index.
515         * read-rtl.c (iterator_group::apply_iterator): Likewise.
516         (apply_mode_iterator): Likewise.
517         (apply_code_iterator): Likewise.
518         (apply_int_iterator): Likewise.
519         (apply_subst_iterator): Likewise.
520         (record_iterator_use): Likewise.
521         (record_attribute_use): Likewise.
522         (md_reader::record_potential_iterator_use): Likewise.  Update calls
523         to record_iterator_use and apply_iterator.
524         (iterator_use): Replace ptr with x and index.
525         (attribute_use): Likewise.
526         (apply_attribute_uses): Update calls to apply_iterator.
527         (apply_iterators): Likewise.  Update initialization of iterator_use.
528         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
529         and record_potential_iterator_use.
530         (rtx_reader::read_rtx_operand): Likewise.
532 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
533             Alan Hayward  <alan.hayward@arm.com>
534             David Sherwood  <david.sherwood@arm.com>
536         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
537         CONST_WIDE_INT.
539 2017-08-21  Richard Biener  <rguenther@suse.de>
541         PR middle-end/81884
542         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
543         at struct end conservatively when comparing common bases.
545 2017-08-21  Richard Biener  <rguenther@suse.de>
547         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
548         (mem_ref_in_stmt): Remove.
549         (determine_max_movement): Use ref index to get at the reference.
550         (invariantness_dom_walker::before_dom_children): Deal with
551         lim data already initialized.
552         (gather_mem_refs_stmt): Initialize lim data and record ref index.
554 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
556         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
557         (TARGET_ISA_ROUND): Ditto.
558         (TARGET_ROUND): Ditto.
559         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
560         * config/i386/i386.md: Ditto.
561         * config/i386/sse.md: Ditto.
562         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
563         with OPTION_MASK_ISA_SSE4_1.
565 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
567         PR target/81894
568         * doc/extend.texi (x86 Built-in Functions): Correct the name of
569         __builtin_ia32_lzcnt_u16.
571 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
573         PR target/80210
574         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
575         (rs6000_set_current_function): Rewrite function to use it.
577 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
579         PR c/53037
580         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
581         and TYPE_WARN_IF_NOT_ALIGN.
582         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
583         (handle_warn_if_not_align): New.
584         (place_union_field): Call handle_warn_if_not_align.
585         (place_field): Call handle_warn_if_not_align.
586         Copy TYPE_WARN_IF_NOT_ALIGN.
587         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
588         (layout_type): Likewise.
589         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
590         spare to 18.
591         (tree_decl_common): Add warn_if_not_align.
592         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
593         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
594         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
595         (DECL_WARN_IF_NOT_ALIGN): Likewise.
596         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
597         * doc/extend.texi: Document warn_if_not_aligned attribute.
598         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
600 2017-08-17  Martin Liska  <mliska@suse.cz>
602         PR bootstrap/81864
603         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
604         (get_data_dependence): Use it as pointer type.
605         (distribute_loop): Likewise.
607 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
609         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
610         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
611         (p8_vmrgow_<mode>_direct): New define_insn.
612         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
613         handle endianness for vmrgew and vmrgow permute patterns.
615 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
617         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
618         * config/rs6000/rs6000-cpus.def: Remove comment.
619         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
620         (POWERPC_MASKS): Likewise.
621         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
622         use of TARGET_VSX_TIMODE.
623         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
624         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
625         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
626         (rs6000_option_override_internal): Remove dead code.
627         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
628         (rs6000_legitimize_reload_address): Likewise.
629         (rs6000_legitimate_address_p): Likewise.
630         (rs6000_opt_masks): Delete "vsx-timode".
631         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
632         from function comment.
633         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
634         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
635         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
636         condition.
637         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
638         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
639         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
640         (VSX_TI): Likewise.
641         (VSX_M): Likewise.
642         (define_peephole2): Likewise.
644 2017-08-17  Martin Sebor  <msebor@redhat.com>
646         PR c/81859
647         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
648         past the end of an array.
649         (test_pp_format): Add test cases.
651 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
653         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
654         missing ECF_NOTHROW flags.
656 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
658         PR target/72804
659         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
660         operands residing in integer registers.
661         (*vsx_le_perm_load_<mode>): Likewise.
662         (*vsx_le_perm_store_<mode>): Likewise.
663         (define_peephole2): Add peepholes to optimize the above.
665 2017-08-17  Marek Polacek  <polacek@redhat.com>
667         PR middle-end/81814
668         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
669         to mimic what shorten_compare did.  Change the return type to bool.
670         (fold_cond_expr_with_comparison): Update call to
671         operand_equal_for_comparison_p.
672         (fold_ternary_loc): Likewise.
674 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
676         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
677         register.
678         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
680 2017-08-17  Richard Biener  <rguenther@suse.de>
682         * tree-ssa-structalias.c (solve_graph): When propagating
683         to successors update the graphs succ edges and avoid duplicate work.
685 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
687         PR target/81861
688         * config/i386/i386.c (ix86_option_override_internal): Save target
689         specific options after ix86_stack_protector_guard_reg was changed.
691 2017-08-17  Richard Biener  <rguenther@suse.de>
693         PR tree-optimization/81827
694         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
695         (new_var_info): Initialize it conservatively.
696         (get_call_vi): Mark register vars.
697         (new_scalar_tmp_constraint_exp): Likewise.
698         (handle_rhs_call): Likewise.
699         (handle_const_call): Likewise.
700         (create_function_info_for): Likewise.
701         (solve_constraints): Sort varinfos to separate register from
702         non-register vars to pack points-to solution bitmaps during
703         iteration.
705 2017-08-17  Marek Polacek  <polacek@redhat.com>
707         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
709 2017-08-17  Richard Biener  <rguenther@suse.de>
711         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
712         to true when overflow is undefined and we saturated the result.
714 2017-08-17  Alan Modra  <amodra@gmail.com>
716         PR target/80938
717         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
718         Don't use store multiple if only one reg needs saving.
719         (interesting_frame_related_regno): New function.
720         (rs6000_frame_related): Don't emit frame info for regs that
721         don't need saving.
722         (rs6000_emit_epilogue): Likewise.
724 2017-08-16  Nathan Sidwell  <nathan@acm.org>
726         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
727         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
728         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
729         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
730         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
731         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
732         (verify_type): Adjust for TYPE_BINFO move.
733         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
734         process TYPE_BINFO directly.
735         (hash_tree): Likewise.
736         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
737         Likewise.
738         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
739         Likewise.
741 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
743         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
745 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
747         PR target/46091
748         * config/i386/i386.md (*anddi_1_btr): Change predicates of
749         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
750         Add ix86_binary_operator_ok to insn constraint.
751         (*iordi_1_bts): Ditto.
752         (*xordi_1_btc): Ditto.
753         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
754         Update corresponding peephole2 pattern.
755         (*btrq): Ditto.
756         (*btcq): Ditto.
758 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
760         PR tree-optimization/81832
761         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
762         copy loop header which has IFN_LOOP_DIST_ALIAS call.
764 2017-08-16  Marek Polacek  <polacek@redhat.com>
766         PR middle/81695
767         * fold-const.c (fold_indirect_ref_1): Restore original behavior
768         regarding size_zero_node.
770 2017-08-16  Martin Liska  <mliska@suse.cz>
772         PR target/81753
773         * config.gcc: Respect previously set extra_objs in case
774         of darwin target.
776 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
778         PR tree-optimization/81835
779         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
780         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
781         not depend on the phi.
783 2017-08-16  Alan Modra  <amodra@gmail.com>
785         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
786         dead code.
788 2017-08-16  Alan Modra  <amodra@gmail.com>
790         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
791         (save_reg_p): ..into this.  Update all callers.
792         (first_reg_to_save): Simplify.
794 2017-08-16  Alan Modra  <amodra@gmail.com>
796         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
797         fixed regs.
799 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
801         PR target/78460
802         PR target/67712
803         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
804         constant count if that count is less than 32.
806 2017-08-15  Nathan Sidwell  <nathan@acm.org>
808         * gcc.c (execute): Emit friendlier message if inferior is killed
809         by an external cause.
811 2017-08-15  Richard Biener  <rguenther@suse.de>
813         PR tree-optimization/81790
814         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
815         CONSTRUCTORs from simplifying and VN.
817 2017-08-14  Martin Sebor  <msebor@redhat.com>
819         * builtin-attrs.def: Add comments.
821 2017-08-14  Martin Sebor  <msebor@redhat.com>
823         PR c/81117
824         * doc/extend.texi (attribute nonstring): Document new attribute.
826 2017-08-14  Martin Sebor  <msebor@redhat.com>
828         PR c/81117
829         * tree-diagnostic.c (default_tree_printer): Handle %G.
830         * gimple-pretty-print.h (percent_G_format): Declare new function.
831         * gimple-pretty-print.c (percent_G_format): Define.
832         * tree-pretty-print.c (percent_K_format): Add argument.
834 2017-08-14  Martin Sebor  <msebor@redhat.com>
836         PR translation/79998
837         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
838         Remove a stray space.
840 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
842         PR target/46091
843         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
844         (*iordi_1_bts): Ditto.
845         (*xordi_1_btc): Ditto.
847 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
849         PR target/79845
850         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
851         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
852         Likewise.
853         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
854         quoted strings, and make more translator-friendly.
855         (darwin_rs6000_override_options): Likewise.
856         (rs6000_option_override_internal): Likewise.
857         (rs6000_return_in_memory): Fix overlong line.
858         (init_cmulative_args): Use quoted strings, and make more
859         translator-friendly.
860         (rs6000_pass_by_reference): Fix overlong line.
861         (def_builtin): Use quoted strings.
862         (altivec_expand_predicate_builtin): Use quoted strings, and make
863         more translator-friendly.
864         (htm_expand_builtin): Use quoted strings.
865         (cpu_expand_builtin): Use quoted strings, and make more
866         translator-friendly.
867         (altivec_expand_builtin): Likewise.
868         (paired_expand_predicate_builtin): Likewise.
869         (rs6000_invalid_builtin): Likewise.
870         (builtin_function_type): Use quoted strings.
871         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
872         more translator-friendly.
873         (rs6000_trampoline_init): Likewise.
874         (rs6000_handle_altivec_attribute): Likewise.
875         (rs6000_inner_target_options): Use quoted strings.
876         (rs6000_disable_incompatible_switches): Likewise.
877         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
878         strings, and make more translator-friendly.
879         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
881 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
883         PR tree-optimization/81799
884         * tree-loop-distribution.c (version_loop_by_alias_check): Force
885         cond_expr to simple gimple operand.
887 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
889         PR middle-end/46932
890         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
892 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
894         PR target/81754
895         PR target/81268
896         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
897         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
898         TARGET_GASISR_PROLOGUES.
899         * config/avr/avr.c (avr_option_override): Same.
900         (avr_pass_pre_proep::execute): Same.
902 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
904         PR target/81820
905         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
906         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
908 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
910         * config/i386/i386.md (*load_tp_<mode>): Redefine as
911         define_insn_and_split.  Split to a memory load from 0 in
912         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
913         using PTR mode iterator.
914         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
915         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
916         (*add_tp_<mode>): Redefine as define_insn_and_split.
917         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
918         address space.  Merge with *add_tp_x32 using PTR mode iterator.
919         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
920         Split to an add with a  memory load from 0 in
921         DEFAULT_TLS_SEG_REG address space.
923 2017-08-12  Andrew Pinski  <apinski@cavium.com>
925         * config/aarch64/aarch64-option-extensions.def (rdma):
926         Fix feature string to what Linux prints out in /proc/cpuinfo.
928 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
930         PR ada/79542
931         * dwarf2out.c (modified_type_die): For C typedef types that have
932         an ultimate origin, process the ultimate origin instead of the
933         input type.
934         (gen_typedef_die): Assert that input DECLs have no ultimate
935         origin.
936         (gen_type_die_with_usage): For typedef variants that have an
937         ultimate origin, just call gen_decl_die on the original DECL.
938         (process_scope_var): Avoid creating DIEs for local typedefs and
939         concrete static variables.
941 2017-08-12  Alan Modra  <amodra@gmail.com>
943         PR target/81170
944         PR target/81295
945         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
946         match gnu-user.h startfile.
947         (ENDFILE_LINUX_SPEC): Similarly.
949 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
951         PR lto/81430
952         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
953         Remove function.
954         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
956 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
957         * config/aarch64/aarch64.md (mov<mode>): Change.
958         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
959         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
960         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
962 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
964         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
965         for storage order barriers.
967 2017-08-11  Martin Liska  <mliska@suse.cz>
969         PR tree-opt/79987
970         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
971         variables of void type.
973 2017-08-11  Martin Liska  <mliska@suse.cz>
975         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
976         TARGET_SUPPORTS_ALIASES.
977         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
978         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
979         (optimize_weakref): Likewise.
980         * symtab.c (symtab_node::noninterposable_alias): Likewise.
981         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
982         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
984 2017-08-11  Martin Liska  <mliska@suse.cz>
986         PR ipa/81213
987         * config/i386/i386.c (make_resolver_func): Do complete
988         refactoring of the function.
990 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
992         PR target/81708
993         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
994         * config/i386/i386.c (ix86_stack_protect_guard): Use
995         ix86_stack_protect_guard_symbol_str to generate varible declaration.
996         * doc/invoke.texi (x86 Options): Document
997         -mstack-protector-guard-symbol= option.
999 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
1001         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
1002         * config/i386/i386.c (ix86_split_stack_guard): New function.
1003         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
1004         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
1005         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
1006         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
1007         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
1008         (split_stack_space_check): Call ix86_split_stack_guard.
1010 2017-08-10  Martin Sebor  <msebor@redhat.com>
1012         * print-tree.c (print_node): Print location using the established
1013         format %s:%i%i.
1014         Replace spaces with colons.
1015         (debug_raw, debug): Ditto.
1017 2017-08-10  Martin Sebor  <msebor@redhat.com>
1019         PR c++/81586
1020         * pretty-print.c (pp_format): Correct the handling of %s precision.
1022 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
1024         PR target/81736
1025         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
1026         to ...
1027         (ix86_finalize_stack_frame_flags): This.  Also clear
1028         frame_pointer_needed if -fno-omit-frame-pointer is used without
1029         stack access.
1030         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
1031         with ix86_finalize_stack_frame_flags.
1032         (ix86_expand_epilogue): Likewise.
1033         (ix86_expand_split_stack_prologue): Likewise.
1034         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
1036 2017-08-10  Martin Liska  <mliska@suse.cz>
1038         PR c++/81355
1039         * c-attribs.c (handle_target_attribute):
1040         Report warning for an empty string argument of target attribute.
1042 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
1044         PR c/81687
1045         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
1046         LABEL_DECLs.
1047         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
1048         or DECL_NONLOCAL labels.
1049         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
1050         or DECL_NONLOCAL labels here.
1052 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
1054         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
1055         to indicate when early gimple folding has been disabled.
1056         (rs6000_gimple_fold_builtin): Add debug content.
1057         (rs6000_invalid_builtin): Fix whitespace.
1058         (rs6000_expand_builtin): Fix whitespace.
1059         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
1061 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
1063         PR target/80938
1064         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
1065         SAVE_MULTIPLE if not all the registers that saves, should be saved.
1067 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
1069         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
1070         (qdf24xx): Likewise.
1071         * config/aarch64/aarch64.md: Include falkor.md.
1072         * config/aarch64/falkor.md: New.
1074 2017-08-09  Marek Polacek  <polacek@redhat.com>
1076         PR c/81233
1077         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
1078         * diagnostic.c (emit_diagnostic): Add a comment.
1079         (emit_diagnostic_valist): New function.
1081 2017-08-09  Marek Polacek  <polacek@redhat.com>
1083         PR c/81417
1084         * input.c (make_location): New overload.
1085         * input.h (make_location): Declare.
1087 2017-08-08  Alan Modra  <amodra@gmail.com>
1088             H.J. Lu  <hongjiu.lu@intel.com>
1090         PR driver/81523
1091         * gcc.c (NO_PIE_SPEC): Delete.
1092         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
1093         exclusion..
1094         (LINK_PIE_SPEC): ..to here.
1095         (LINK_COMMAND_SPEC): Support -no-pie.
1096         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
1097         chain of crtbegin*.o selection, update for PIE_SPEC changes and
1098         format.
1099         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
1100         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
1101         (ENDFILE_CRTEND_SPEC): Similarly.
1103 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
1105         PR target/81708
1106         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
1107         (mstack-protector-guard-offset=): Ditto.
1108         * config/i386/i386.c (ix86_option_override): Handle
1109         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
1110         options.
1111         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
1112         ix86_stack_protect_guard_offset variables.
1113         (TARGET_STACK_PROTECT_GUARD): Always define.
1114         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
1115         and -mstack-protector-guard-offset= options.
1117 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
1119         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
1120         boundary case for the last candidate.
1122 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
1124         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
1125         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
1127 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
1129         PR middle-end/19706
1130         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
1131         * config/aarch64/aarch64-builtins.c
1132         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
1133         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
1134         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
1136 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
1137             Andrew Pinski <pinskia@gmail.com>
1139         PR middle-end/19706
1140         * internal-fn.def (XORSIGN): New.
1141         * optabs.def (xorsign_optab): New.
1142         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
1143         (convert_expand_mult_copysign): New.
1144         (pass_optimize_widening_mul::execute): Call
1145         convert_expand_mult_copysign.
1147 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1149         PR tree-optimization/81354
1150         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
1151         Insert on edges rather than explicitly creating landing pads.
1152         (analyze_candidates_and_replace): Commit edge inserts.
1154 2017-08-08  Richard Biener  <rguenther@suse.de>
1156         PR middle-end/81719
1157         * tree-ssa-loop-niter.c: Include tree-dfa.h.
1158         (expand_simple_operations): Also look through ADDR_EXPRs with
1159         MEM_REF bases treating them as POINTER_PLUS_EXPR.
1161 2017-08-08  Richard Biener  <rguenther@suse.de>
1163         PR tree-optimization/81723
1164         * tree-vect-slp.c (struct bst_traits): New hash traits.
1165         (bst_fail): New global.
1166         (vect_build_slp_tree_2): New worker, split out from ...
1167         (vect_build_slp_tree): ... this now wrapping it with using
1168         bst_fail set to cache SLP tree build fails.  Properly handle
1169         max_tree_size.
1170         (vect_analyze_slp_instance): Allocate and free bst_fail.
1172 2017-08-08  Martin Liska  <mliska@suse.cz>
1174         PR tree-opt/81696
1175         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
1176         LABEL_DECLs that can be from a different function.
1178 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
1180         PR tree-optimization/81744
1181         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
1182         loop's number of iterations.
1184 2017-08-08  Martin Liska  <mliska@suse.cz>
1186         * asan.c: Include header files.
1187         * attribs.c (build_decl_attribute_variant): New function moved
1188         from tree.[ch].
1189         (build_type_attribute_qual_variant): Likewise.
1190         (cmp_attrib_identifiers): Likewise.
1191         (simple_cst_list_equal): Likewise.
1192         (omp_declare_simd_clauses_equal): Likewise.
1193         (attribute_value_equal): Likewise.
1194         (comp_type_attributes): Likewise.
1195         (build_type_attribute_variant): Likewise.
1196         (lookup_ident_attribute): Likewise.
1197         (remove_attribute): Likewise.
1198         (merge_attributes): Likewise.
1199         (merge_type_attributes): Likewise.
1200         (merge_decl_attributes): Likewise.
1201         (merge_dllimport_decl_attributes): Likewise.
1202         (handle_dll_attribute): Likewise.
1203         (attribute_list_equal): Likewise.
1204         (attribute_list_contained): Likewise.
1205         * attribs.h (lookup_attribute): New function moved from tree.[ch].
1206         (lookup_attribute_by_prefix): Likewise.
1207         * bb-reorder.c: Include header files.
1208         * builtins.c: Likewise.
1209         * calls.c: Likewise.
1210         * cfgexpand.c: Likewise.
1211         * cgraph.c: Likewise.
1212         * cgraphunit.c: Likewise.
1213         * convert.c: Likewise.
1214         * dwarf2out.c: Likewise.
1215         * final.c: Likewise.
1216         * fold-const.c: Likewise.
1217         * function.c: Likewise.
1218         * gimple-expr.c: Likewise.
1219         * gimple-fold.c: Likewise.
1220         * gimple-pretty-print.c: Likewise.
1221         * gimple.c: Likewise.
1222         * gimplify.c: Likewise.
1223         * hsa-common.c: Likewise.
1224         * hsa-gen.c: Likewise.
1225         * internal-fn.c: Likewise.
1226         * ipa-chkp.c: Likewise.
1227         * ipa-cp.c: Likewise.
1228         * ipa-devirt.c: Likewise.
1229         * ipa-fnsummary.c: Likewise.
1230         * ipa-inline.c: Likewise.
1231         * ipa-visibility.c: Likewise.
1232         * ipa.c: Likewise.
1233         * lto-cgraph.c: Likewise.
1234         * omp-expand.c: Likewise.
1235         * omp-general.c: Likewise.
1236         * omp-low.c: Likewise.
1237         * omp-offload.c: Likewise.
1238         * omp-simd-clone.c: Likewise.
1239         * opts-global.c: Likewise.
1240         * passes.c: Likewise.
1241         * predict.c: Likewise.
1242         * sancov.c: Likewise.
1243         * sanopt.c: Likewise.
1244         * symtab.c: Likewise.
1245         * toplev.c: Likewise.
1246         * trans-mem.c: Likewise.
1247         * tree-chkp.c: Likewise.
1248         * tree-eh.c: Likewise.
1249         * tree-into-ssa.c: Likewise.
1250         * tree-object-size.c: Likewise.
1251         * tree-parloops.c: Likewise.
1252         * tree-profile.c: Likewise.
1253         * tree-ssa-ccp.c: Likewise.
1254         * tree-ssa-live.c: Likewise.
1255         * tree-ssa-loop.c: Likewise.
1256         * tree-ssa-sccvn.c: Likewise.
1257         * tree-ssa-structalias.c: Likewise.
1258         * tree-ssa.c: Likewise.
1259         * tree-streamer-in.c: Likewise.
1260         * tree-vectorizer.c: Likewise.
1261         * tree-vrp.c: Likewise.
1262         * tsan.c: Likewise.
1263         * ubsan.c: Likewise.
1264         * varasm.c: Likewise.
1265         * varpool.c: Likewise.
1266         * tree.c: Remove functions moved to attribs.[ch].
1267         * tree.h: Likewise.
1268         * config/aarch64/aarch64.c: Add attrs.h header file.
1269         * config/alpha/alpha.c: Likewise.
1270         * config/arc/arc.c: Likewise.
1271         * config/arm/arm.c: Likewise.
1272         * config/avr/avr.c: Likewise.
1273         * config/bfin/bfin.c: Likewise.
1274         * config/c6x/c6x.c: Likewise.
1275         * config/cr16/cr16.c: Likewise.
1276         * config/cris/cris.c: Likewise.
1277         * config/darwin.c: Likewise.
1278         * config/epiphany/epiphany.c: Likewise.
1279         * config/fr30/fr30.c: Likewise.
1280         * config/frv/frv.c: Likewise.
1281         * config/ft32/ft32.c: Likewise.
1282         * config/h8300/h8300.c: Likewise.
1283         * config/i386/winnt.c: Likewise.
1284         * config/ia64/ia64.c: Likewise.
1285         * config/iq2000/iq2000.c: Likewise.
1286         * config/lm32/lm32.c: Likewise.
1287         * config/m32c/m32c.c: Likewise.
1288         * config/m32r/m32r.c: Likewise.
1289         * config/m68k/m68k.c: Likewise.
1290         * config/mcore/mcore.c: Likewise.
1291         * config/microblaze/microblaze.c: Likewise.
1292         * config/mips/mips.c: Likewise.
1293         * config/mmix/mmix.c: Likewise.
1294         * config/mn10300/mn10300.c: Likewise.
1295         * config/moxie/moxie.c: Likewise.
1296         * config/msp430/msp430.c: Likewise.
1297         * config/nds32/nds32-isr.c: Likewise.
1298         * config/nds32/nds32.c: Likewise.
1299         * config/nios2/nios2.c: Likewise.
1300         * config/nvptx/nvptx.c: Likewise.
1301         * config/pa/pa.c: Likewise.
1302         * config/pdp11/pdp11.c: Likewise.
1303         * config/powerpcspe/powerpcspe.c: Likewise.
1304         * config/riscv/riscv.c: Likewise.
1305         * config/rl78/rl78.c: Likewise.
1306         * config/rx/rx.c: Likewise.
1307         * config/s390/s390.c: Likewise.
1308         * config/sh/sh.c: Likewise.
1309         * config/sol2.c: Likewise.
1310         * config/sparc/sparc.c: Likewise.
1311         * config/spu/spu.c: Likewise.
1312         * config/stormy16/stormy16.c: Likewise.
1313         * config/tilegx/tilegx.c: Likewise.
1314         * config/tilepro/tilepro.c: Likewise.
1315         * config/v850/v850.c: Likewise.
1316         * config/vax/vax.c: Likewise.
1317         * config/visium/visium.c: Likewise.
1318         * config/xtensa/xtensa.c: Likewise.
1320 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
1322         PR target/81593
1323         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
1324         constraints since the -mupper-regs-* switches have been
1325         eliminated.
1326         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
1327         into a vector from a double word element that was extracted from
1328         another vector, and eliminate extra XXPERMDI instructions.
1329         (vsx_concat_<mode>_2): Likewise.
1330         (vsx_concat_<mode>_3): Likewise.
1331         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
1332         concat to allow optimizing inserts from previous extracts.
1334 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
1336         * config/i386/i386.c (ix86_stack_protect_guard): Generate
1337         memory reference to a SSP offset in TLS address space.
1338         (ix86_print_operand) <case '@'>: Remove.
1339         (ix86_print_operand_punct_valid_p): Remove '@' code.
1340         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
1341         UNSPEC_SP_TLS_TEST.
1342         (stack_tls_protect_set_<mode>): Remove.
1343         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
1344         (stack_tls_protect_test_<mode>): Remove.
1345         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
1347 2017-08-07  Olivier Hainque  <hainque@adacore.com>
1349         PR target/81755
1350         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
1352 2017-08-07  Douglas Rupp  <rupp@adacore.com>
1354         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
1355         variable was referenced as multidir in command.
1357 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
1359         PR c/69389
1360         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
1361         BIT_FIELD_REF.
1363 2017-08-07  Martin Liska  <mliska@suse.cz>
1365         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
1366         * config/rl78/rl78.c: Add include of attribs.h.
1367         * config/sh/sh.c: Likewise.
1368         * config/v850/v850.c: Likewise.
1370 2017-08-07  Tom de Vries  <tom@codesourcery.com>
1372         PR middle-end/78266
1373         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
1375 2017-08-07  Martin Liska  <mliska@suse.cz>
1377         * config/mips/mips.c: Include attribs.h.
1379 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
1381         PR fortran/68829
1382         * doc/invoke.texi: Document change in behvaior for -Ofast for
1383         Fortran.
1385 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
1387         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
1388         Use gen_frame_mem.
1389         (aarch64_pop_regs): Likewise.
1390         (aarch64_gen_load_pair): Likewise.
1391         (aarch64_save_callee_saves): Likewise.
1392         (aarch64_restore_callee_saves): Likewise.
1394 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1396         * config/i386/i386.c: Revert the last change.
1398 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1400         PR target/81736
1401         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
1402         to ...
1403         (ix86_finalize_stack_frame_flags): This.  Also clear
1404         frame_pointer_needed if -fno-omit-frame-pointer is used without
1405         stack access.
1406         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
1407         with ix86_finalize_stack_frame_flags.
1408         (ix86_expand_epilogue): Likewise.
1409         (ix86_expand_split_stack_prologue): Likewise.
1411 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1413         PR target/81743
1414         * config/i386/i386.c (get_builtin_code_for_version): Set priority
1415         to P_AES for Westmere.
1417 2017-08-07  Jonathan Yong  <10walls@gmail.com>
1419         * config/i386/mingw.opt (fset-stack-executable): Removed.
1420         * config/i386/cygming.opt (fset-stack-executable): Moved
1421         from mingw.opt.
1422         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
1424 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
1426         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
1428 2017-08-07  Marek Polacek  <polacek@redhat.com>
1430         PR middle-end/81737
1431         * fold-const.c (fold_indirect_ref_1): Check type_domain.
1433 2017-08-07  Martin Liska  <mliska@suse.cz>
1435         * attribs.h (canonicalize_attr_name): New function.
1436         (cmp_attribs): Move from c-format.c and adjusted.
1437         (is_attribute_p): Moved from tree.h.
1438         * tree-inline.c: Add new includes.
1439         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
1440         (private_is_attribute_p): Remove.
1441         (private_lookup_attribute): Likewise.
1442         (private_lookup_attribute_by_prefix): Simplify.
1443         (remove_attribute): Use is_attribute_p.
1444         * tree.h: Remove removed declarations.
1446 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
1448         PR middle-end/81698
1449         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
1450         instead of computing it in the function.  Formatting fix.
1451         (expand_case): Don't rely on default_edge being the first edge,
1452         clear it if removing it, pass default_edge to
1453         emit_case_dispatch_table.
1454         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
1455         fix.
1457 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
1459         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
1460         insn in the function, emit NOP after the insn.
1462 2017-08-06  Tom de Vries  <tom@codesourcery.com>
1464         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
1465         and element loops.
1467 2017-08-06  Tom de Vries  <tom@codesourcery.com>
1469         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
1470         loop.
1472 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
1474         PR tree-optimization/57371
1475         * match.pd: New pattern.
1477 2017-08-04  Marek Polacek  <polacek@redhat.com>
1479         PR middle-end/81695
1480         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
1481         perform the computation in offset_int.
1483 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
1485         PR tree-optimization/81136
1486         * tree-vectorizer.h: Include tree-hash-traits.h.
1487         (vec_base_alignments): New typedef.
1488         (vec_info): Add a base_alignments field.
1489         (vect_record_base_alignments): Declare.
1490         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
1491         field.
1492         (DR_IS_CONDITIONAL_IN_STMT): New macro.
1493         (create_data_ref): Add an is_conditional_in_stmt argument.
1494         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
1495         the is_conditional_in_stmt field.
1496         (data_ref_loc): Add an is_conditional_in_stmt field.
1497         (get_references_in_stmt): Set the is_conditional_in_stmt field.
1498         (find_data_references_in_stmt): Update call to create_data_ref.
1499         (graphite_find_data_references_in_stmt): Likewise.
1500         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
1501         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1502         (vect_record_base_alignment): New function.
1503         (vect_record_base_alignments): Likewise.
1504         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
1505         for nested statements even if we fail to compute a misalignment.
1506         Use pooled base alignments for unconditional references.
1507         (vect_find_same_alignment_drs): Compare base addresses instead
1508         of base objects.
1509         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
1510         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
1512 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
1514         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
1515         Add an explicit name for the enum.  Use auto_vec for slp_instances
1516         and grouped_stores.
1517         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
1518         for all vectors.
1519         (_bb_vec_info): Add a constructor and destructor.
1520         (vinfo_for_stmt): Return NULL for uids of -1 as well.
1521         (destroy_loop_vec_info): Delete.
1522         (vect_destroy_datarefs): Likewise.
1523         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
1524         (vec_info::vec_info): New function.
1525         (vec_info::~vec_info): Likewise.
1526         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
1527         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
1528         destroy_loop_vec_info.
1529         * tree-vect-loop.c (new_loop_vec_info): Replace with...
1530         (_loop_vec_info::_loop_vec_info): ...this.
1531         (destroy_loop_vec_info): Replace with...
1532         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
1533         the stmt_vec_infos.  Leave handling of vec_info information to its
1534         destructor.  Remove explicit vector releases.
1535         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
1536         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
1537         * tree-vect-slp.c (new_bb_vec_info): Replace with...
1538         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
1539         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
1540         (destroy_bb_vec_info): Replace with...
1541         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
1542         information to its destructor.
1543         (vect_slp_analyze_bb_1): Use new and delete instead of
1544         new_bb_vec_info and destroy_bb_vec_info.
1545         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
1546         single delete.
1548 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
1550         * tree-data-ref.h (subscript): Add access_fn field.
1551         (data_dependence_relation): Add could_be_independent_p.
1552         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
1553         (same_access_functions): Move to tree-data-ref.c.
1554         * tree-data-ref.c (ref_contains_union_access_p): New function.
1555         (access_fn_component_p): Likewise.
1556         (access_fn_components_comparable_p): Likewise.
1557         (dr_analyze_indices): Add a reference to access_fn_component_p.
1558         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
1559         DR_ACCESS_FN.
1560         (constant_access_functions): Likewise.
1561         (add_other_self_distances): Likewise.
1562         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
1563         (initialize_data_dependence_relation): Use XCNEW and remove
1564         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
1565         of access functions that have the same type.  Allow the
1566         subsequence to end with different bases in some circumstances.
1567         Record the chosen access functions in SUB_ACCESS_FN.
1568         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
1569         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
1570         (subscript_dependence_tester_1): Likewise dra and drb.
1571         (build_classic_dist_vector): Update calls accordingly.
1572         (subscript_dependence_tester): Likewise.
1573         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
1574         DDR_COULD_BE_INDEPENDENT_P.
1575         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
1576         comp_alias_ddrs instead of may_alias_ddrs.
1577         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
1578         New function.
1579         (vect_analyze_data_ref_dependence): Use it if
1580         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
1581         distance vectors if that fails.
1582         (dependence_distance_ge_vf): New function.
1583         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
1584         LOOP_VINFO_MAY_ALIAS_DDRS.
1586 2017-08-04  Richard Biener  <rguenther@suse.de>
1588         PR middle-end/81705
1589         * fold-const.c (fold_binary_loc): Properly restrict
1590         minus_var0 && minus_var1 case when associating undefined overflow
1591         entities.
1593 2017-08-04  Tom de Vries  <tom@codesourcery.com>
1595         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
1597 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1599         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1600         Don't start diagnostic messages with a capital letter.
1601         * config/rs6000/rs6000.c (rs6000_option_override_internal):
1602         Likewise.
1603         (rs6000_invalid_builtin): Likewise.
1604         (rs6000_trampoline_init): Likewise.
1606 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
1608         PR target/81621
1609         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
1610         after setting changeable df flags.
1612 2017-08-03  Richard Biener  <rguenther@suse.de>
1614         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
1615         up if the use is in USE - X.
1617 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
1619         * toplev.c (dumpfile.h): New include.
1620         (internal_error_reentered): New static function.  Use it...
1621         (internal_error_function): ...here to handle reentered internal_error.
1623 2017-08-03  Richard Biener  <rguenther@suse.de>
1625         PR middle-end/81148
1626         * fold-const.c (split_tree): Add minus_var and minus_con
1627         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
1628         here but always use minus_*.
1629         (associate_trees): Assert we never associate with MINUS_EXPR
1630         and NULL first operand.  Do not recurse for PLUS_EXPR operands
1631         when associating as MINUS_EXPR either.
1632         (fold_binary_loc): Track minus_var and minus_con.
1634 2017-08-03  Tom de Vries  <tom@codesourcery.com>
1636         PR lto/81430
1637         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
1638         ACCEL_COMPILER, apply finish_options on
1639         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
1641 2017-08-03  Tom de Vries  <tom@codesourcery.com>
1643         PR target/81662
1644         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
1645         function_entry_patch_area_size > 0.
1647 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
1649         PR driver/81650
1650         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
1651         instead of 10??LU, perform unit multiplication in wide_int,
1652         don't change alloc_object_size_limit if the limit is larger
1653         than SSIZE_MAX.
1655         PR tree-optimization/81655
1656         PR tree-optimization/81588
1657         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
1658         the case when ranges[i].low and high are 1 for unsigned type with
1659         precision 1.
1661         PR middle-end/81052
1662         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
1663         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
1665 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1667         * tree-vrp.h: Add include guard.
1669 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
1671         PR target/81644
1672         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
1673         (ud2): New insn pattern.
1674         * config/i386/i386.c (ix86_expand_epilogue):
1675         For naked functions, generate ud2 instead of trap insn.
1677 2017-08-02  Marek Polacek  <polacek@redhat.com>
1679         PR other/81667
1680         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
1682 2017-08-02  Tom de Vries  <tom@codesourcery.com>
1683             Cesar Philippidis  <cesar@codesourcery.com>
1685         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
1686         Add missing edge probabilities.
1688 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
1690         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
1691         Correct endianness.
1693 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
1695         PR middle-end/79499
1696         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
1697         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
1698         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
1699         prologue_seq sequences - if any.
1701 2017-08-02  Richard Biener  <rguenther@suse.de>
1703         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
1704         via vectors if supported, integer extracts via punning if supported
1705         or otherwise vector extracts.
1707 2017-08-02  Richard Biener  <rguenther@suse.de>
1709         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
1710         into ...
1711         (bitmap_insert_into_set): ... this.
1713 2017-08-02  Richard Biener  <rguenther@suse.de>
1715         PR tree-optimization/81633
1716         Revert
1717         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
1719         PR tree-optimization/71752
1720         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
1722 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
1724         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
1725         (machine_function::call_ms2sysv_pad_out): Remove field.
1726         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
1727         (ix86_compute_frame_layout): Likewise.
1729 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1731         PR target/81654
1732         * config/i386/i386.c (ix86_set_func_type): Disallow naked
1733         attribute with interrupt attribute.
1735 2017-08-01  Andrew Pinski  <apinski@cavium.com>
1737         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
1738         BIT_INSERT_EXPR's operand 1
1739         to see if the types precision matches.
1741 2017-08-01  Martin Liska  <mliska@suse.cz>
1743         PR middle-end/70140
1744         * builtins.c (expand_builtin_memcpy_args): Remove.
1745         (expand_builtin_memcpy): Call newly added function
1746         expand_builtin_memory_copy_args.
1747         (expand_builtin_memcpy_with_bounds): Likewise.
1748         (expand_builtin_mempcpy): Remove last argument.
1749         (expand_builtin_mempcpy_with_bounds): Likewise.
1750         (expand_builtin_memory_copy_args): New function created from
1751         expand_builtin_mempcpy_args with small modifications.
1752         (expand_builtin_mempcpy_args): Remove.
1753         (expand_builtin_stpcpy): Remove unused argument.
1754         (expand_builtin): Likewise.
1755         (expand_builtin_with_bounds): Likewise.
1757 2017-08-01  Martin Liska  <mliska@suse.cz>
1759         Revert r250771
1760         Make mempcpy more optimal (PR middle-end/70140).
1762 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
1764         PR target/81622
1765         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
1766         __builtin_vec_cmpne verify both arguments are compatible vectors
1767         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
1768         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
1769         move computation of aligned to after checking the argument types.
1770         Formatting fixes.
1772         PR target/80846
1773         * config/rs6000/vsx.md (vextract_fp_from_shorth,
1774         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
1775         calls.
1777 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
1778             Doug Rupp  <rupp@adacore.com>
1779             Olivier Hainque  <hainque@adacore.com>
1781         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
1782         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
1783         arm8 (arch v4).
1784         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
1785         for TARGET_OS_CPP_BUILTIN.
1786         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
1787         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
1788         arm_arch7.
1789         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
1790         passing required abi options to the assembler for EABI configurations.
1791         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
1792         of .text.hot and .text.unlikely sections for kernel modules when
1793         using ARM style exceptions.
1794         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
1795         options. Add EXTRA_CC1_SPEC.
1796         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
1797         toolchain options.
1798         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
1799         transition.
1800         (ARM_TARGET2_DWARF_FORMAT): Define.
1801         * config/arm/t-vxworks: Adjust multilib control to removal of the
1802         Diab command line options.
1804 2017-08-01  Martin Liska  <mliska@suse.cz>
1806         PR gcov-profile/81561
1807         * gcov.c (unblock): Make unblocking safe as we need to preserve
1808         index correspondence of blocks and block_lists.
1810 2017-08-01  Richard Biener  <rguenther@suse.de>
1812         PR tree-optimization/81181
1813         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
1814         (compute_antic): ... end of iteration here.
1816 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
1818         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
1819         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
1820         (ftree-slp-vectorize): Likewise.
1821         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
1822         can no longer be set independent of flag_tree_loop_vectorize.
1823         * omp-general.c (emp_max_vf): Likewise.
1824         * opts.c (enable_fdo_optimizations): Remove references to
1825         flag_tree_vectorize, these are now implicit.
1826         (common_handle_option): Remove handling for OPT_ftree_vectorize,
1827         and leave it for the options machinery.
1829 2017-08-01  Martin Liska  <mliska@suse.cz>
1831         PR middle-end/70140
1832         * builtins.c (expand_builtin_memcpy_args): Remove.
1833         (expand_builtin_memcpy): Call newly added function
1834         expand_builtin_memory_copy_args.
1835         (expand_builtin_memcpy_with_bounds): Likewise.
1836         (expand_builtin_mempcpy): Remove last argument.
1837         (expand_builtin_mempcpy_with_bounds): Likewise.
1838         (expand_builtin_memory_copy_args): New function created from
1839         expand_builtin_mempcpy_args with small modifications.
1840         (expand_builtin_mempcpy_args): Remove.
1841         (expand_builtin_stpcpy): Remove unused argument.
1842         (expand_builtin): Likewise.
1843         (expand_builtin_with_bounds): Likewise.
1845 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
1847         PR target/81641
1848         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
1849         print "ds:" only for immediates in generic address space.
1851 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
1853         PR target/81639
1854         * config/i386/i386.c (ix86_funciton_naked): New prototype.
1855         (ix86_function_ok_for_sibcall): Return false for naked functions.
1857 2017-08-01  Richard Biener  <rguenther@suse.de>
1859         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
1860         (compute_antic): Seed worklist with exit block predecessors.
1861         * cfganal.c (dfs_find_deadend): For a cycle return the source
1862         of the edge closing it.
1864 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
1866         * config/aarch64/aarch64.c
1867         (aarch64_can_const_movi_rtx_p): Move 0 check.
1869 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
1871         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
1872         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
1873         above macro.
1874         * match.pd: Ditto in address comparison pattern.
1876 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
1878         PR tree-optimization/81627
1879         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
1880         closed ssa form for store-store chain.
1882 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
1884         PR tree-optimization/81620
1885         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
1886         for store-store chain.
1888 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
1890         PR tree-optimization/81588
1891         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
1892         ranges[i].in_p, invert comparison code ccode.  For >/>=,
1893         swap rhs1 and rhs2 and comparison code unconditionally,
1894         for </<= don't do that.  Don't swap rhs1/rhs2 again if
1895         ranges[i].in_p, instead invert comparison code ccode if
1896         opcode or oe->rank is BIT_IOR_EXPR.
1898         PR target/80846
1899         * optabs.def (vec_extract_optab, vec_init_optab): Change from
1900         a direct optab to conversion optab.
1901         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
1902         with GET_MODE_INNER as last argument instead of optab_handler.
1903         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
1904         vector extraction if possible and optab is available.
1905         * expr.c (store_constructor): Use convert_optab_handler instead
1906         of optab_handler.  Use vector initialization from smaller
1907         vectors if possible and optab is available.
1908         * tree-vect-stmts.c (vectorizable_load): Likewise.
1909         * doc/md.texi (vec_extract, vec_init): Document that the optabs
1910         now have two modes.
1911         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
1912         of vec_init from half-sized vectors with the same element mode.
1913         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
1914         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
1915         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
1916         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
1917         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
1918         after mode in gen_vec_extract* calls.
1919         (vec_extract<mode>): Renamed to ...
1920         (vec_extract<mode><ssescalarmodelower>): ... this.
1921         (vec_extract<mode><ssehalfvecmodelower>): New expander.
1922         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
1923         element mode after mode in gen_vec_init* calls.
1924         (VEC_INIT_HALF_MODE): New mode iterator.
1925         (vec_init<mode>): Renamed to ...
1926         (vec_init<mode><ssescalarmodelower>): ... this.
1927         (vec_init<mode><ssehalfvecmodelower>): New expander.
1928         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
1929         (vec_extractv2sfsf): ... this.
1930         (vec_initv2sf): Renamed to ...
1931         (vec_initv2sfsf): ... this.
1932         (vec_extractv2si): Renamed to ...
1933         (vec_extractv2sisi): ... this.
1934         (vec_initv2si): Renamed to ...
1935         (vec_initv2sisi): ... this.
1936         (vec_extractv4hi): Renamed to ...
1937         (vec_extractv4hihi): ... this.
1938         (vec_initv4hi): Renamed to ...
1939         (vec_initv4hihi): ... this.
1940         (vec_extractv8qi): Renamed to ...
1941         (vec_extractv8qiqi): ... this.
1942         (vec_initv8qi): Renamed to ...
1943         (vec_initv8qiqi): ... this.
1944         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
1945         (vec_init<mode>): Renamed to ...
1946         (vec_init<mode><VEC_base_l>): ... this.
1947         (vec_extract<mode>): Renamed to ...
1948         (vec_extract<mode><VEC_base_l>): ... this.
1949         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
1950         (vec_initv2sfsf): ... this.
1951         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
1952         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
1953         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
1954         element mode after mode in gen_vec_init* calls.
1955         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
1956         (vec_init<mode><Vel>): ... this.
1957         (vec_extract<mode>): Renamed to ...
1958         (vec_extract<mode><Vel>): ... this.
1959         * config/aarch64/iterators.md (Vel): New mode attribute.
1960         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
1961         Add element mode after mode in gen_vec_extract* calls.
1962         * config/s390/vector.md (non_vec_l): New mode attribute.
1963         (vec_extract<mode>): Renamed to ...
1964         (vec_extract<mode><non_vec_l>): ... this.
1965         (vec_init<mode>): Renamed to ...
1966         (vec_init<mode><non_vec_l>): ... this.
1967         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
1968         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
1969         vec_extract mode.
1970         * config/arm/iterators.md (V_elem_l): New mode attribute.
1971         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
1972         (vec_extract<mode><V_elem_l>): ... this.
1973         (vec_extractv2di): Renamed to ...
1974         (vec_extractv2didi): ... this.
1975         (vec_init<mode>): Renamed to ...
1976         (vec_init<mode><V_elem_l>): ... this.
1977         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
1978         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
1979         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
1980         Add element mode after gen_vec_extract* calls.
1981         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
1982         (vec_init<mode><unitmode>): ... this.
1983         (vec_extract<mode>): Renamed to ...
1984         (vec_extract<mode><unitmode>): ... this.
1985         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
1986         (vec_init<mode><unitmode>): ... this.
1987         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
1988         (vec_initv2sfsf): ... this.
1989         (vec_extractv2sf): Renamed to ...
1990         (vec_extractv2sfsf): ... this.
1991         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
1992         Add element mode after gen_vec_extract* calls.
1993         * config/mips/mips.md (unitmode): New mode iterator.
1994         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
1995         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
1996         * config/spu/spu.md (inner_l): New mode attribute.
1997         (vec_init<mode>): Renamed to ...
1998         (vec_init<mode><inner_l>): ... this.
1999         (vec_extract<mode>): Renamed to ...
2000         (vec_extract<mode><inner_l>): ... this.
2001         * config/sparc/sparc.md (veltmode): New mode iterator.
2002         (vec_init<VMALL:mode>): Renamed to ...
2003         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
2004         * config/ia64/vect.md (vec_initv2si): Renamed to ...
2005         (vec_initv2sisi): ... this.
2006         (vec_initv2sf): Renamed to ...
2007         (vec_initv2sfsf): ... this.
2008         (vec_extractv2sf): Renamed to ...
2009         (vec_extractv2sfsf): ... this.
2010         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
2011         (vec_init<mode>): Renamed to ...
2012         (vec_init<mode><VEC_base_l>): ... this.
2013         (vec_extract<mode>): Renamed to ...
2014         (vec_extract<mode><VEC_base_l>): ... this.
2015         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
2016         (vec_initv2sfsf): ... this.
2017         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
2018         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
2019         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
2020         gen_vec_init* calls.
2022 2017-08-01  Richard Biener  <rguenther@suse.de>
2024         PR tree-optimization/81297
2025         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
2026         TREE_OVERFLOW from INTEGER_CSTs.
2028 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
2030         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
2032 2017-07-31  Carl Love  <cel@us.ibm.com>
2034         * config/rs6000/rs6000-c: Add support for built-in functions
2035         vector signed char vec_xl_be (signed long long, signed char *);
2036         vector unsigned char vec_xl_be (signed long long, unsigned char *);
2037         vector signed int vec_xl_be (signed long long, signed int *);
2038         vector unsigned int vec_xl_be (signed long long, unsigned int *);
2039         vector signed long long vec_xl_be (signed long long, signed long long *);
2040         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
2041         vector signed short vec_xl_be (signed long long, signed short *);
2042         vector unsigned short vec_xl_be (signed long long, unsigned short *);
2043         vector double vec_xl_be (signed long long, double *);
2044         vector float vec_xl_be (signed long long, float *);
2045         * config/rs6000/altivec.h (vec_xl_be): Add #define.
2046         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
2047         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
2048         for the builtins.
2049         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
2050         (altivec_expand_builtin): Add switch statement to call
2051         altivec_expand_xl_be for each builtin.
2052         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
2053         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
2054         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
2055         __builtin_vsx_le_be_v16qi.
2056         * doc/extend.texi: Update the built-in documentation file for the
2057         new built-in functions.
2059 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
2061         PR target/25967
2062         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
2063         New function.
2064         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2066 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2068         * config.gcc: Add z14.
2069         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
2070         CPU model numbers for z13s and z14.
2071         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
2072         arch12 with z14.
2073         * config/s390/s390-opts.h (enum processor_type): Rename
2074         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
2075         * config/s390/s390.c (processor_table): Add field for CPU name to
2076         be passed to Binutils.
2077         (s390_asm_output_machine_for_arch): Use the new field in
2078         processor_table for Binutils.
2079         (s390_expand_builtin): Replace arch12 with z14.
2080         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
2081         (s390_get_sched_attrmask): Likewise.
2082         (s390_get_unit_mask): Likewise.
2083         * config/s390/s390.opt: Add z14 to processor_type enum.
2085 2017-07-31  Martin Jambor  <mjambor@suse.cz>
2087         PR hsa/81477
2088         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
2089         regardless of optimization level.
2091 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
2092             Martin Liska  <mliska@suse.cz>
2094         * predict.def: Remove old comment and adjust probability.
2095         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
2096         PREDICT statements.
2098 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
2100         PR target/25967
2101         * config/i386/i386.c (ix86_function_naked): New function.
2102         (ix86_can_use_return_insn_p): Return false for naked functions.
2103         (ix86_expand_prologue): Skip prologue for naked functions.
2104         (ix86_expand_epilogue): Skip epilogue for naked functions
2105         and emit trap instruction.
2106         (ix86_warn_func_return): New function.
2107         (ix86_attribute_table): Add "naked" attribute specification.
2108         (TARGET_WARN_FUNC_RETURN): Define.
2109         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
2111 2017-07-31  Martin Liska  <mliska@suse.cz>
2113         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
2114         (dump_gimple_bb_header): Always dump BB info.
2115         (pp_cfg_jump): Do not append info about BB when dumping a jump.
2117 2017-07-31  Martin Liska  <mliska@suse.cz>
2119         PR sanitize/81530
2120         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
2121         also with current_function_decl non-null equality.
2123 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
2125         PR sanitizer/81604
2126         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
2127         change type to the element type, instead add eltype variable and
2128         use it where we are interested in the element type.
2130         PR tree-optimization/81603
2131         * ipa-polymorphic-call.c
2132         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
2133         offset arithmetic in offset_int, bail out if the resulting bit offset
2134         doesn't fit into shwi.
2136 2017-07-31  Martin Liska  <mliska@suse.cz>
2138         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
2139         (gimplify_save_expr): Fix comment.
2141 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
2143         PR target/79793
2144         * config/i386/i386.c (ix86_function_arg): Update arguments for
2145         exception handler.
2146         (ix86_compute_frame_layout): Set the initial stack offset to
2147         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
2148         INCOMING_FRAME_SP_OFFSET.
2149         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
2150         stack before exception handler returns.
2151         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
2152         the 'ERROR_CODE' for exception handler.
2154 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
2156         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
2157         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
2158         (ASM_OUTPUT_REG_POP): Ditto.
2159         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
2160         instead of asm_fprintf to output pure string.
2162 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
2164         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
2165         to imported_module_or_decl hook.
2166         (debug_nothing_tree_tree_tree_bool): Remove.
2167         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
2168         * debug.c (do_nothing_debug_hooks): Use
2169         debug_nothing_tree_tree_tree_bool_bool instead of
2170         debug_nothing_tree_tree_tree_bool.
2171         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2172         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
2173         * sdbout.c (sdb_debug_hooks): Likewise.
2174         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
2175         (gen_namespace_die): Add DW_AT_export_symbols attribute if
2176         langhook wants it.
2177         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
2178         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
2179         attribute, don't add anything.
2181 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2183         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
2184         (fold_build2_stat_loc): Likewise.
2185         (fold_build3_stat_loc): Likewise.
2186         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
2187         (fold_build1_loc): Remove macro.
2188         (fold_build2_loc): Likewise.
2189         (fold_build3_loc): Likewise.
2191 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2193         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
2194         (gimple_build_debug_bind_source_stat): Likewise.
2195         * gimple.h (gimple_build_debug_bind): Remove macro.
2196         (gimple_build_debug_bind_source): Likewise.
2198 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2200         * bitmap.c (bitmap_alloc): Adjust.
2201         (bitmap_gc_alloc): Likewise.
2202         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
2204 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2206         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
2207         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
2208         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
2209         (bitmap_gc_alloc_stat): Likewise.
2210         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
2212 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2214         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
2215         * rtl.h (shallow_copy_rtx): Remove macro.
2217 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2219         * emit-rtl.c (gen_raw_REG): Adjust.
2220         * gengenrtl.c (gendef): Likewise.
2221         * rtl.c (rtx_alloc_stat): Remove _stat from name.
2222         * rtl.h (rtx_alloc): Remove macro.
2224 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2226         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
2227         (build_tree_list_stat): Likewise.
2228         * tree.h (build_tree_list): Remove macro.
2229         (build_tree_list_vec): Likewise.
2231 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2233         * tree.c (make_vector_stat): Remove _stat from name.
2234         (build_vector_stat): Likewise.
2235         * tree.h (make_vector_stat): Remove macro.
2236         (build_vector_stat): Likewise.
2238 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2240         * tree.h (build_var_debug_value): Remove prototype.
2242 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2244         * tree.c (tree_cons_stat): Remove _stat from name.
2245         * tree.h (tree_cons): Remove macro.
2247 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2249         * tree.c (build_vl_exp_stat): Remove _stat from name.
2250         * tree.h (build_vl_exp): Remove macro.
2252 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2254         * tree.c (build_decl_stat): Remove _stat from name.
2255         * tree.h (build_decl): Remove macro.
2257 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2259         * gimple.c (gimple_build_with_ops_stat): Adjust.
2260         (gimple_alloc_stat): Remove _stat from name.
2261         * gimple.h (gimple_alloc): Remove macro.
2263 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2265         * tree.c (make_tree_vec_stat): Remove _stat from name.
2266         (grow_tree_vec_stat): Likewise.
2267         * tree.h (make_tree_vec_stat): Adjust prototype.
2268         (grow_tree_vec_stat): Likewise.
2269         (make_tree_vec): Remove macro.
2270         (grow_tree_vec): Likewise.
2272 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2274         * fold-const.c (fold_build1_stat_loc): Adjust.
2275         (fold_build2_stat_loc): Likewise.
2276         (fold_build3_stat_loc): Likewise.
2277         * tree.c (build0_stat): Remove _stat from name.
2278         (build1_stat): Likewise.
2279         (build2_stat): Likewise.
2280         (build3_stat): Likewise.
2281         (build4_stat): Likewise.
2282         (build5_stat): Likewise.
2283         * tree.h (build1_loc): Remove macro, and rename _stat function
2284         to this.
2285         (build2_loc): Likewise.
2286         (build3_loc): Likewise.
2287         (build4_loc): Likewise.
2288         (build5_loc): Likewise.
2290 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2292         * tree.c (make_int_cst_stat): Remove _stat from name.
2293         * tree.h (make_int_cst_stat): Adjust prototype.
2294         (make_int_cst): Remove macro.
2296 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2298         * tree.c (make_tre_binfo_stat): Remove _stat from name.
2299         * tree.h (make_tree_binfo_stat): Adjust prototype.
2300         (make_tree_binfo): Remove.
2302 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2304         * tree.c (copy_node_stat): Rename to copy_node.
2305         (build_distinct_type_copy): Adjust.
2306         * tree.h (copy_node_stat): Adjust prototype.
2307         (copy_node): Remove macro.
2309 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2311         * tree.c (make_node_stat): rename to make_node.
2312         (build_tree_list_stat): Adjust.
2313         (build0_stat): Likewise.
2314         (build2_stat): Likewise.
2315         (build3_stat): Likewise.
2316         (build4_stat): Likewise.
2317         (build5_stat): Likewise.
2318         (build_decl_stat): Likewise.
2319         * tree.h (make_node_stat): Adjust prototype.
2320         (make_node): remove macro.
2322 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
2324         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
2325         (PPC_FEATURE2_SCV): Likewise.
2326         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
2328 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
2330         * config/aarch64/aarch64.c
2331         (aarch64_internal_mov_immediate): Add new special pattern.
2332         * config/aarch64/aarch64.md (*movdi_aarch64):
2333         Add reg/32bit const mov case.
2335 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
2336             Richard Sandiford <richard.sandiford@linaro.org>
2338         * config/aarch64/aarch64.md (mov<mode>): Generalize.
2339         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
2340         Add integer and movi cases.
2341         (movi-split-hf-df-sf split, fp16): New.
2342         (enabled): Added TARGET_FP_F16INST.
2343         * config/aarch64/iterators.md (GPF_HF): New.
2344         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
2346 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
2348         * config/aarch64/aarch64.c
2349         (aarch64_simd_container_mode): Add prototype.
2350         (aarch64_expand_mov_immediate): Add HI support.
2351         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
2352         (aarch64_can_const_movi_rtx_p): New.
2353         (aarch64_preferred_reload_class):
2354         Remove restrictions of using FP registers for certain SIMD operations.
2355         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
2356         (aarch64_valid_floating_const): Add integer move validation.
2357         (aarch64_simd_imm_scalar_p): Remove.
2358         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
2359         (aarch64_legitimate_constant_p): Expand list of supported cases.
2360         * config/aarch64/aarch64-protos.h
2361         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
2362         (aarch64_reinterpret_float_as_int): New.
2363         (aarch64_simd_imm_scalar_p): Remove.
2364         * config/aarch64/constraints.md (Uvi): New.
2365         (Dd): Split into Ds and new Dd.
2366         * config/aarch64/aarch64.md (*movsi_aarch64):
2367         Add SIMD mov case.
2368         (*movdi_aarch64): Add SIMD mov case.
2370 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
2372         * tree-predcom.c: (struct chain): Handle store-store chain in which
2373         stores for elimination only store loop invariant values.
2374         (execute_pred_commoning_chain): Ditto.
2375         (prepare_initializers_chain_store_elim): Ditto.
2376         (prepare_finalizers): Ditto.
2377         (is_inv_store_elimination_chain): New function.
2378         (initialize_root_vars_store_elim_1): New function.
2380 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
2382         * tree-predcom.c: Revise general description of the pass.
2383         (enum chain_type): New enum type for store elimination.
2384         (struct chain): New field supporting store elimination.
2385         (struct component): Ditto.
2386         (dump_chain): Dump store-stores chain.
2387         (release_chain): Release resources.
2388         (split_data_refs_to_components): Compute and create component
2389         contains only stores for elimination.
2390         (get_chain_last_ref_at): New function.
2391         (make_invariant_chain): Initialization.
2392         (make_rooted_chain): Specify chain type in parameter and record it.
2393         (add_looparound_copies): Skip for store-stores chain.
2394         (determine_roots_comp): Compute type of chain and pass it to
2395         make_rooted_chain.
2396         (initialize_root_vars_store_elim_2): New function.
2397         (finalize_eliminated_stores): New function.
2398         (remove_stmt): Handle store for elimination.
2399         (execute_pred_commoning_chain): Execute predictive commoning on
2400         store-store chains.
2401         (determine_unroll_factor): Skip unroll for store-stores chain.
2402         (prepare_initializers_chain_store_elim): New function.
2403         (prepare_initializers_chain): Hanlde store-store chain.
2404         (prepare_finalizers_chain, prepare_finalizers): New function.
2405         (tree_predictive_commoning_loop): Return integer value indicating
2406         if loop is unrolled or lcssa form is corrupted.
2407         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
2409 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
2411         * tree-predcom.c (initialize_root): Delete.
2412         (execute_pred_commoning_chain): Initialize root vars and replace
2413         reference of non-combined chain directly, rather than call above
2414         function.
2416 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
2418         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
2419         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
2421 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
2423         * tree-predcom.c (struct chain): New field init_seq.
2424         (release_chain): Release init_seq.
2425         (prepare_initializers_chain): Record intialization stmts in above
2426         field.
2427         (insert_init_seqs): New function.
2428         (tree_predictive_commoning_loop): Call insert_init_seqs.
2430 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
2432         * tree-predcom.c (determine_roots_comp): Skip trivial components.
2434 2017-07-28  Richard Biener  <rguenther@suse.de>
2436         * match.pd: Remove superfluous :c.
2437         * genmatch.c (simplify::id): Add member.
2438         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
2439         Copy id.
2440         (current_id): New global.
2441         (dt_node::parent): Move from ...
2442         (dt_operand::parent): ... here.  Add for_id member.
2443         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
2444         (decision_tree::find_node): Relax order requirement when
2445         merging DT_TRUE nodes to ones inbetween the current simplify
2446         and the one we try to merge with.  Add diagnostic whenever
2447         we need to enforce pattern order by not merging.
2448         (decision_tree::insert): Set current_id.
2449         (decision_tree::print_node): Dump parent node and for_id.
2450         (parser::last_id): Add member.
2451         (parser::push_simplify): Assign unique id.
2452         (parser::parser): Initialize last_id.
2454 2017-07-28  Martin Liska  <mliska@suse.cz>
2456         PR sanitizer/81340
2457         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
2458         gimple_build_debug_bind.
2460 2017-07-28  Richard Biener  <rguenther@suse.de>
2462         PR tree-optimization/81502
2463         * match.pd: Add pattern combining BIT_INSERT_EXPR with
2464         BIT_FIELD_REF.
2465         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
2466         size/pos operands.
2467         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
2468         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
2469         for BIT_FIELD_REF args.
2470         * fold-const.c (make_bit_field_ref): Likewise.
2471         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
2473 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
2475         PR sanitizer/80998
2476         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
2477         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
2478         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
2479         Or it into SANITIZER_UNDEFINED.
2480         * ubsan.c: Include gimple-fold.h and varasm.h.
2481         (ubsan_expand_ptr_ifn): New function.
2482         (instrument_pointer_overflow): New function.
2483         (maybe_instrument_pointer_overflow): New function.
2484         (instrument_object_size): Formatting fix.
2485         (pass_ubsan::execute): Call instrument_pointer_overflow
2486         and maybe_instrument_pointer_overflow.
2487         * internal-fn.c (expand_UBSAN_PTR): New function.
2488         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
2489         * sanitizer.def (__ubsan_handle_pointer_overflow,
2490         __ubsan_handle_pointer_overflow_abort): New builtins.
2491         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
2492         * internal-fn.def (UBSAN_PTR): New internal function.
2493         * opts.c (sanitizer_opts): Add pointer-overflow.
2494         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
2495         * fold-const.c (build_range_check): Compute pointer range check in
2496         integral type if pointer arithmetics would be needed.  Formatting
2497         fixes.
2499 2017-07-28  Martin Liska  <mliska@suse.cz>
2501         PR sanitizer/81460
2502         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
2503         parameters that are of a variable-length.
2505 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2507         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
2508         rs6000/biarch64.h.
2509         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
2510         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2511         (CRT_CALL_STATIC_FUNCTION): Likewise.
2512         (ASM_DEFAULT_SPEC): New define.
2513         (ASM_SPEC32): Likewise.
2514         (ASM_SPEC64): Likewise.
2515         (ASM_SPEC_COMMON): Likewise.
2516         (ASM_SPEC): Likewise.
2517         (INVALID_64BIT): Likewise.
2518         (LINK_OS_DEFAULT_SPEC): Likewise.
2519         (LINK_OS_SPEC32): Likewise.
2520         (LINK_OS_SPEC64): Likewise.
2521         (POWERPC_LINUX): Likewise.
2522         (PTRDIFF_TYPE): Likewise.
2523         (RESTORE_FP_PREFIX): Likewise.
2524         (RESTORE_FP_SUFFIX): Likewise.
2525         (SAVE_FP_PREFIX): Likewise.
2526         (SAVE_FP_SUFFIX): Likewise.
2527         (SIZE_TYPE): Likewise.
2528         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
2529         (TARGET_64BIT): Likewise.
2530         (TARGET_64BIT): Likewise.
2531         (TARGET_AIX): Likewise.
2532         (WCHAR_TYPE_SIZE): Likewise.
2533         (WCHAR_TYPE): Undefine.
2534         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
2535         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
2536         (CPP_OS_RTEMS_SPEC): Delete.
2537         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
2538         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
2539         link_os_spec64.
2540         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
2542 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
2544         PR tree-optimization/81578
2545         * tree-parloops.c (build_new_reduction): Bail out if
2546         reduction_code isn't one of the standard OpenMP reductions.
2547         Move the details printing after that decision.
2549 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
2551         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
2552         related to reload_in_progress.
2553         (splat_input_operand): Likewise.
2554         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
2555         Delete prototype.
2556         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
2557         field.
2558         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
2559         (TARGET_INSTANTIATE_DECLS): Likewise.
2560         (legitimate_indexed_address_p): Delete reload_in_progress code.
2561         (rs6000_debug_legitimate_address_p): Likewise.
2562         (rs6000_eliminate_indexed_memrefs): Likewise.
2563         (rs6000_emit_le_vsx_store): Likewise.
2564         (rs6000_emit_move_si_sf_subreg): Likewise.
2565         (rs6000_emit_move): Likewise.
2566         (register_to_reg_type): Likewise.
2567         (rs6000_pre_atomic_barrier): Likewise.
2568         (rs6000_machopic_legitimize_pic_address): Likewise.
2569         (rs6000_allocate_stack_temp): Likewise.
2570         (rs6000_address_for_fpconvert): Likewise.
2571         (rs6000_address_for_altivec): Likewise.
2572         (rs6000_secondary_memory_needed_rtx): Delete function.
2573         (rs6000_check_sdmode): Likewise.
2574         (rs6000_alloc_sdmode_stack_slot): Likewise.
2575         (rs6000_instantiate_decls): Likewise.
2576         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
2577         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
2578         Delete reload_in_progress.
2579         (*vec_reload_and_plus_<mptrsize>): Likewise.
2580         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
2581         (vsx_div_v2di): Likewise.
2582         (vsx_udiv_v2di): Likewise.
2584 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
2586         * config/rs6000/rs6000.opt (mlra): Replace with stub.
2587         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
2588         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
2589         (rs6000_debug_reg_global): Delete print of LRA status.
2590         (rs6000_option_override_internal): Delete dead LRA related code.
2591         (rs6000_lra_p): Delete function.
2592         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
2594 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2596         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
2597         * config/riscv/rtems.h: New file.
2599 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2600             Sudakshina Das  <sudi.das@arm.com>
2602         * config/aarch64/aarch64.md
2603         (define_split for and<mode>3nr_compare): Move
2604         non aarch64_logical_operand to a register.
2605         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
2606         register immediate operand to a register.
2607         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
2609 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
2611         PR middle-end/81564
2612         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
2614 2017-07-27  Richard Biener  <rguenther@suse.de>
2616         PR tree-optimization/81573
2617         PR tree-optimization/81494
2618         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
2619         multi defuse cycle case.
2621 2017-07-27  Richard Biener  <rguenther@suse.de>
2623         PR tree-optimization/81571
2624         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
2625         PHIs.
2627 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
2629         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
2630         earlier and only if MASK_FPU is set.  Adjust formatting.
2632 2017-07-27  Martin Liska  <mliska@suse.cz>
2634         * opt-functions.awk: Add validation of value of Init.
2635         * optc-gen.awk: Pass new argument.
2637 2017-07-27  Martin Liska  <mliska@suse.cz>
2639         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
2640         Fix wrong condition.
2642 2017-07-27  Martin Liska  <mliska@suse.cz>
2644         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
2645         BBs and edges seen by autoFDO.
2647 2017-07-27  Richard Biener  <rguenther@suse.de>
2649         PR tree-optimization/81502
2650         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
2651         with incompatible but same sized type.
2652         (execute_update_addresses_taken): Likewise.
2654 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
2656         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
2657         flag_tree_loop_vectorize rather than flag_tree_vectorize.
2659 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2661         PR target/81534
2662         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
2663         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
2664         Change s_operand to memory_operand.
2666 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
2668         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
2669         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
2670         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
2671         Emit instructions rather than returning an expression.  Handle TFmode
2672         and KFmode by casting to TImode.
2673         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
2674         (rs6000_emit_le_vsx_store): Likewise.
2675         * config/rs6000/vsx.md (VSX_TI): New iterator.
2676         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
2677         (*vsx_le_undo_permute_<mode>): Likewise.
2678         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
2679         emit the split sequence.
2680         (*vsx_le_perm_store_<mode>): Likewise.
2682 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
2684         PR tree-optimization/81555
2685         PR tree-optimization/81556
2686         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
2687         if true, force CHANGED for the recursive invocation.
2688         (reassociate_bb): Remember original length of ops array, pass
2689         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
2691         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
2692         attributes for noipa attribute.  For naked attribute use
2693         lookup_attribute first before lookup_attribute_spec.
2694         * final.c (rest_of_handle_final): Disable IPA RA for functions with
2695         noipa attribute.
2696         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
2697         for functions with noipa attribute.
2698         (cgraph_externally_visible_p): Return true for functions with noipa
2699         attribute.
2700         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
2701         for functions with noipa attribute.
2702         * doc/extend.texi: Document noipa function attribute.
2703         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
2704         also for functions with noipa attribute.
2705         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
2707 2017-07-26  Andrew Pinski  <apinski@cavium.com>
2709         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
2710         vec_unalign_load_cost and vec_unalign_store_cost.
2712 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2714         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
2715         -mvsx-small-integer option.
2716         (ISA_3_0_MASKS_IEEE): Likewise.
2717         (OTHER_VSX_VECTOR_MASKS): Likewise.
2718         (POWERPC_MASKS): Likewise.
2719         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
2720         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
2721         code, only testing for DImode being allowed in non-VSX floating
2722         point registers.
2723         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
2724         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
2725         another VSX test.
2726         (rs6000_option_override_internal): Delete -mvsx-small-integer.
2727         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
2728         TARGET_P8_VECTOR test.
2729         (rs6000_secondary_reload_simple_move): Likewise.
2730         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
2731         since TARGET_P9_VECTOR was already tested.
2732         (rs6000_opt_masks): Remove -mvsx-small-integer.
2733         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
2734         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
2735         used.
2736         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
2737         test for TARGET_VEXTRACTUB was used, and that uses
2738         TARGET_P9_VECTOR.
2739         (p9 extract splitter): Likewise.
2740         (vsx_extract_<mode>_di_p9): Likewise.
2741         (vsx_extract_<mode>_store_p9): Likewise.
2742         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
2743         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
2744         the elimination of TARGET_VSX_SMALL_INTEGER.
2745         (vsx_extract_<mode>_p8): Likewise.
2746         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
2747         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
2748         (vsx_set_<mode>_p9): Likewise.
2749         (vsx_set_v4sf_p9): Likewise.
2750         (vsx_set_v4sf_p9_zero): Likewise.
2751         (vsx_insert_extract_v4sf_p9): Likewise.
2752         (vsx_insert_extract_v4sf_p9_2): Likewise.
2753         * config/rs6000/rs6000.md (sign extend splitter): Change
2754         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
2755         (floatsi<mode>2_lfiwax_mem): Likewise.
2756         (floatunssi<mode>2_lfiwzx_mem): Likewise.
2757         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
2758         since a test for TARGET_P9_VECTOR was used.
2759         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
2760         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
2761         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
2762         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
2763         TARGET_P8_VECTOR test.
2764         (fix_trunc<mode>si2_stfiwx): Likewise.
2765         (fix_trunc<mode>si2_internal): Likewise.
2766         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
2767         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
2768         used.
2769         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
2770         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
2771         TARGET_P8_VECTOR test.
2772         (fixuns_trunc<mode>si2_stfiwx): Likewise.
2773         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
2774         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
2775         used.
2776         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
2777         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
2778         since a test for TARGET_P9_VECTOR was used.
2779         (splitter for loading small constants): Likewise.
2781 2017-07-26  Andrew Pinski  <apinski@cavium.com>
2783         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
2784         vec_fp_stmt_cost.
2786 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
2788         PR target/81563
2789         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
2790         (fp_valid_at): Likewise.
2792 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
2794         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
2795         (qdf24xx_addrcost_table): Likewise.
2796         (cortexa57_tunings): Update to use generic_branch_cost.
2797         (cortexa72_tunings): Likewise.
2798         (cortexa73_tunings): Likewise.
2799         (qdf24xx_tunings): Likewise.
2801 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
2803         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
2804         (thunderx2t99_branch_cost): Likewise.
2805         (cortexa35_tunings): Update to use generic_branch_cost.
2806         (cortexa53_tunings): Likewise.
2807         (cortexa57_tunings): Likewise.
2808         (cortexa72_tunings): Likewise.
2809         (cortexa73_tunings): Likewise.
2810         (thunderx2t99_tunings): Likewise.
2812 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2814         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
2815         (sparc_option_override): Honour MASK_FSMULD.
2816         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
2817         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
2818         * config/sparc/sparc.opt (mfsmuld): New option.
2819         * doc/invoke.texi (mfsmuld): Document option.
2821 2017-07-26  Marek Polacek  <polacek@redhat.com>
2823         PR middle-end/70992
2824         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
2826 2017-07-26  Richard Biener  <rguenther@suse.de>
2828         * gimple-match-head.c (do_valueize): Return OP if valueize
2829         returns NULL_TREE.
2830         (get_def): New helper to get at the def stmt of a SSA name
2831         if valueize allows.
2832         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
2833         do_valueize to get at the def stmt.
2834         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
2836 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
2838         PR middle-end/46932
2839         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
2841 2017-07-26  Martin Liska  <mliska@suse.cz>
2843         PR sanitize/81186
2844         * function.c (expand_function_start): Make expansion of
2845         nonlocal_goto_save_area after parm_birth_insn.
2847 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2849         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
2850         from all CPU target flags enable members.
2852 2017-07-26  Richard Biener  <rguenther@suse.de>
2854         * genmatch.c (dt_simplify::gen): Make iterator vars const.
2855         (decision_tree::gen): Make 'type' const.
2856         (write_predicate): Likewise.
2858 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2860         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
2861         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
2862         (rs6000_option_override_internal): Likewise.
2863         (rs6000_expand_vector_set): Likewise.
2864         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
2865         (TARGET_UPPER_REGS_SF): Likewise.
2866         (TARGET_UPPER_REGS_DI): Likewise.
2867         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
2868         (TARGET_DIRECT_MOVE_64BIT): Likewise.
2869         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
2870         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
2871         (Splitters for DI constants in Altivec registers): Likewise.
2872         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
2873         (vsx_set_v4sf_p9): Likewise.
2874         (vsx_set_v4sf_p9_zero): Likewise.
2875         (vsx_insert_extract_v4sf_p9): Likewise.
2876         (vsx_insert_extract_v4sf_p9_2): Likewise.
2878 2017-07-25  Carl Love  <cel@us.ibm.com>
2880         * doc/extend.texi: Update the built-in documentation file for the
2881         existing built-in functions
2882         vector signed char vec_cnttz (vector signed char);
2883         vector unsigned char vec_cnttz (vector unsigned char);
2884         vector signed short vec_cnttz (vector signed short);
2885         vector unsigned short vec_cnttz (vector unsigned short);
2886         vector signed int vec_cnttz (vector signed int);
2887         vector unsigned int vec_cnttz (vector unsigned int);
2888         vector signed long long vec_cnttz (vector signed long long);
2889         vector unsigned long long vec_cnttz (vector unsigned long long);
2891 2017-07-25  Andrew Pinski  <apinski@cavium.com>
2893         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
2894         accesses where the use is for the first operand of a BIT_INSERT.
2896 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
2898         PR bootstrap/81521
2899         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
2900         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
2902 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
2904         * config/i386/gstabs.h: Delete.
2905         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
2907 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
2909         * config/i386/i386.c (ix86_decompose_address): Do not check for
2910         register RTX when looking at index_reg or base_reg.
2911         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
2913 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
2915         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
2916         to update EH info here.
2918 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
2920         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
2922 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
2924         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
2926 2017-07-25  Torsten Duwe  <duwe@suse.de>
2928         * common.opt: Introduce -fpatchable-function-entry
2929         command line option, and its variables function_entry_patch_area_size
2930         and function_entry_patch_area_start.
2931         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
2932         including a two-value parser.
2933         * target.def (print_patchable_function_entry): New target hook.
2934         * targhooks.h (default_print_patchable_function_entry): New function.
2935         * targhooks.c (default_print_patchable_function_entry): Likewise.
2936         * toplev.c (process_options): Switch off IPA-RA if
2937         patchable function entries are being generated.
2938         * varasm.c (assemble_start_function): Look at the
2939         patchable-function-entry command line switch and current
2940         function attributes and maybe generate NOP instructions by
2941         calling the print_patchable_function_entry hook.
2942         * doc/extend.texi: Document patchable_function_entry attribute.
2943         * doc/invoke.texi: Document -fpatchable_function_entry
2944         command line option.
2945         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
2946         New target hook.
2947         * doc/tm.texi: Re-generate.
2949 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
2951         PR target/81532
2952         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
2953         TARGET_AVX512DQ rather than TARGET_AVX512BW.
2955 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
2957         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
2959 2017-07-25  Richard Biener  <rguenther@suse.de>
2961         PR tree-optimization/81455
2962         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
2963         not walk in cycles when looking for guards.
2965 2017-07-25  Richard Biener  <rguenther@suse.de>
2967         PR tree-optimization/81529
2968         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
2969         when optimizing backedge uses.
2971 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
2973         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
2974         character for AIX.
2975         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
2976         to dl_section_ref.  On AIX, append an expression to subtract
2977         the size of the section length to dl_section_ref.
2979 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
2981         * configure.ac: If any of the config.* scripts fail, exit 1.
2982         * configure: Regenerate.
2984 2017-07-25  Richard Biener  <rguenther@suse.de>
2986         PR middle-end/81546
2987         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
2988         of immediate uses, be more verbose on errors.
2990 2017-07-25  Richard Biener  <rguenther@suse.de>
2992         PR tree-optimization/81510
2993         * tree-vect-loop.c (vect_is_simple_reduction): When the
2994         reduction stmt is not inside the loop bail out.
2996 2017-07-25  Richard Biener  <rguenther@suse.de>
2998         PR tree-optimization/81303
2999         * tree-vect-loop-manip.c (vect_loop_versioning): Build
3000         profitability check against LOOP_VINFO_NITERSM1.
3002 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
3004         * domwalk.c (cmp_bb_postorder): Simplify.
3005         (sort_bbs_postorder): New function.  Use it...
3006         (dom_walker::walk): ...here to optimize common cases.
3008 2017-07-25  Martin Liska  <mliska@suse.cz>
3010         PR ipa/81520
3011         * ipa-visibility.c (function_and_variable_visibility): Make the
3012         redirection just on target that supports aliasing.
3013         Fix GNU coding style.
3015 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3017         PR libgcc/61152
3018         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
3019         Format changes.
3020         * config/arm/rtems.h: Likewise.
3021         * config/bfin/rtems.h: Likewise.
3022         * config/i386/rtemself.h: Likewise.
3023         * config/lm32/rtems.h: Likewise.
3024         * config/m32c/rtems.h: Likewise.
3025         * config/m68k/rtemself.h: Likewise.
3026         * config/microblaze/rtems.h: Likewise.
3027         * config/mips/rtems.h: Likewise.
3028         * config/moxie/rtems.h: Likewise.
3029         * config/nios2/rtems.h: Likewise.
3030         * config/powerpcspe/rtems.h: Likewise.
3031         * config/rs6000/rtems.h: Likewise.
3032         * config/rtems.h: Likewise.
3033         * config/sh/rtems.h: Likewise.
3034         * config/sh/rtemself.h: Likewise.
3035         * config/sparc/rtemself.h: Likewise.
3037 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
3039         PR 81487
3040         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
3041         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
3042         * tree-ssa-structalias.c (alias_get_name): Same.
3044 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
3046         PR target/81414
3047         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
3048         instructions if no du chain is found.
3050 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
3052         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
3054 2017-07-25  Richard Biener  <rguenther@suse.de>
3056         PR middle-end/81505
3057         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
3058         sticky.
3060 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3062         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
3063         upper-regs options.
3064         (ISA_2_7_MASKS_SERVER): Likewise.
3065         (ISA_3_0_MASKS_IEEE): Likewise.
3066         (OTHER_P8_VECTOR_MASKS): Likewise.
3067         (OTHER_VSX_VECTOR_MASKS): Likewise.
3068         (POWERPC_MASKS): Likewise.
3069         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
3070         duplicate list of options.
3071         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
3072         explicit -mupper-regs options.
3073         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
3074         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
3075         alias for -mupper-regs-df.
3076         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
3077         (rs6000_init_hard_regno_mode_ok): Likewise.
3078         (rs6000_option_override_internal): Likewise.
3079         (rs6000_opt_masks): Likewise.
3080         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
3081         options in terms of whether -mvsx or -mpower8-vector was used.
3082         (TARGET_UPPER_REGS_DI): Likewise.
3083         (TARGET_UPPER_REGS_SF): Likewise.
3084         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
3085         -mupper-regs-* options.
3087 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
3089         * passes.c (emergency_dump_function): Print some empty lines and a
3090         header before the RTL dump.
3092 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
3094         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
3096 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
3098         PR target/79041
3099         * config/aarch64/aarch64.c (aarch64_classify_symbol):
3100         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
3102 2017-07-24  Carl Love  <cel@us.ibm.com>
3104         * config/rs6000/rs6000-c.c: Add support for built-in functions
3105         vector float vec_extract_fp32_from_shorth (vector unsigned short);
3106         vector float vec_extract_fp32_from_shortl (vector unsigned short);
3107         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
3108         vec_extract_fp_from_shortl): Add defines for the two builtins.
3109         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
3110         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
3111         new builtins.
3112         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
3113         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
3114         * doc/extend.texi: Update the built-in documentation file for the
3115         new built-in function.
3117 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
3119         PR bootstrap/81521
3120         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
3121         documentation.
3122         * doc/generic.texi: Likewise.
3123         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
3124         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
3126 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
3128         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
3129         (aarch64_mls_elt_merge<mode>): Likewise.
3131 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
3133         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
3134         having __cxa_atexit.
3136 2017-07-23  Michael Collison  <michael.collison@arm.com>
3138         * config/arm/arm.c (arm_option_override): Deprecate
3139         use of -mstructure-size-boundary.
3140         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
3141         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
3143 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3145         PR target/80695
3146         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
3147         Reduce cost estimate for direct moves.
3149 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
3151         PR target/80569
3152         * config/i386/i386.c (ix86_option_override_internal): Disable
3153         BMI, BMI2 and TBM instructions for -m16.
3155 2017-07-21  Carl Love  <cel@us.ibm.com>
3157         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3158         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
3159         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
3160         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
3161         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
3162         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
3163         VMULOSW): New enum "unspec" values.
3164         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
3165         altivec_vmulosw): New patterns.
3166         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
3167         VMULOSW): Add definitions.
3169 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
3171         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
3172         (qdf24xx): Likewise.
3173         * config/aarch64/aarch64-options-extensions.def (rdma); New.
3174         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
3175         (AARCH64_FL_V8_1): Renumber.
3176         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
3177         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
3178         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
3179         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
3180         rdma to feature modifiers list.
3182 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
3184         PR middle-end/56727
3185         * ipa-visibility (function_and_variable_visibility): Convert
3186         recursive PLT call to direct call if appropriate.
3188 2017-07-21  Andrew Pinski  <apinski@cavium.com>
3190         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
3191         operand 1 to see if the types precision matches.
3192         * fold-const.c (operand_equal_p): Likewise.
3194 2017-07-21  Richard Biener  <rguenther@suse.de>
3196         PR tree-optimization/81303
3197         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
3198         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
3199         (vect_peeling_hash_get_lowest_cost): Adjust.
3200         (vect_enhance_data_refs_alignment): Likewise.  Use
3201         vect_get_peeling_costs_all_drs to compute the penalty for no
3202         peeling to match up costs.
3204 2017-07-21  Richard Biener  <rguenther@suse.de>
3206         PR tree-optimization/81500
3207         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
3208         we didn't identify a reduction path.
3210 2017-07-21  Tom de Vries  <tom@codesourcery.com>
3211             Cesar Philippidis  <cesar@codesourcery.com>
3213         PR gcov-profile/81442
3214         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
3215         probabilities.
3217 2017-07-21  Tom de Vries  <tom@codesourcery.com>
3219         PR lto/81430
3220         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
3221         function.
3222         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
3223         nvptx_override_options_after_change.
3225 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
3227         * dwarf2out.c (output_file_names): Avoid double testing for
3228         dwarf_version >= 5.
3230 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
3232         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
3234 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
3236         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
3237         hot/cold regions.
3238         (try_crossjump_to_edge): Do not punt on partitioned functions.
3240 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
3242         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3243         Put all BBs reachable only via paths crossing cold region to cold
3244         region.
3245         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
3247 2016-07-21  Richard Biener  <rguenther@suse.de>
3249         PR tree-optimization/81303
3250         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
3251         into account prologue and epilogue iterations when raising
3252         min_profitable_iters to sth at least covering one vector iteration.
3254 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
3256         * config/arm/arm.c (arm_test_cpu_arch_dat):
3257         Check for overlap.
3259 2017-07-20  Nathan Sidwell  <nathan@acm.org>
3261         Remove TYPE_METHODS.
3262         * tree.h (TYPE_METHODS): Delete.
3263         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
3264         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
3265         (dbxout_type_methods): Scan TYPE_FIELDS.
3266         (dbxout_type): Don't check TYPE_METHODS here.
3267         * function.c (use_register_for_decl): Always ignore register for
3268         class types when not optimizing.
3269         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
3270         * tree.c (free_lang_data_in_type): Stitch out member functions and
3271         templates from TYPE_FIELDS.
3272         (build_distinct_type_copy, verify_type_variant,
3273         verify_type): Member fns are on TYPE_FIELDS.
3274         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
3275         * tree-pretty-print.c (dump_generic_node): Likewise.
3277 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
3279         PR target/80846
3280         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
3281         V2TImode and V4TImode.
3282         (ix86_expand_vector_extract): Likewise.
3283         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
3284         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
3285         (ssescalarmode): Handle V4TImode and V2TImode.
3286         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
3287         (*vec_extractv2ti, *vec_extractv4ti): New insns.
3288         (VEXTRACTI128_MODE): New mode iterator.
3289         (splitter for *vec_extractv?ti first element): New.
3290         (VEC_INIT_MODE): New mode iterator.
3291         (vec_init<mode>): Consolidate 3 expanders into one using
3292         VEC_INIT_MODE mode iterator.
3294 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
3296         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
3297         non_spilled_static_chain_regno_p.
3299 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
3301         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
3303 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
3305         * bb-reorder.c (connect_traces): Allow copying of blocks within
3306         single partition.
3308 2017-07-20  Richard Biener  <rguenther@suse.de>
3310         * gimple.h (gimple_phi_result): Add gphi * overload.
3311         (gimple_phi_result_ptr): Likewise.
3312         (gimple_phi_arg): Likewise.  Adjust index assert to only
3313         allow actual argument accesses rather than all slots available
3314         by capacity.
3315         (gimple_phi_arg_def): Add gphi * overload.
3316         * tree-phinodes.c (make_phi_node): Initialize only actual
3317         arguments.
3318         (resize_phi_node): Clear memory not covered by old node,
3319         do not initialize excess argument slots.
3320         (reserve_phi_args_for_new_edge): Initialize new argument slot
3321         completely.
3323 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
3325         PR tree-optimization/81388
3326         Revert r238585:
3327         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
3329         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
3330         by removing computation of may_be_zero.
3332 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
3333             Tom de Vries  <tom@codesourcery.com>
3335         PR middle-end/81030
3336         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
3337         when gimple level profile disagrees with what RTL expander did.
3339 2017-07-20  Richard Biener  <rguenther@suse.de>
3341         PR tree-optimization/61171
3342         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
3343         (vect_analyze_stmt): Add slp instance parameter.
3344         (vectorizable_reduction): Likewise.
3345         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
3346         (vect_is_simple_reduction): Deal with chains not detected
3347         as SLP reduction chain, specifically not properly associated
3348         chains containing a mix of plus/minus.
3349         (get_reduction_op): Remove.
3350         (get_initial_defs_for_reduction): Simplify, pass in whether
3351         this is a reduction chain, pass in the SLP node for the PHIs.
3352         (vect_create_epilog_for_reduction): Get the SLP instance as
3353         arg and adjust.
3354         (vectorizable_reduction): Get the SLP instance as arg.
3355         During analysis remember the SLP node with the PHIs in the
3356         instance.  Simplify getting at the vectorized reduction PHIs.
3357         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
3358         through SLP instance.
3359         (vect_slp_analyze_operations): Likewise.
3360         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
3361         (vect_transform_stmt): Likewise.
3363 2017-07-20  Tom de Vries  <tom@codesourcery.com>
3365         PR tree-optimization/81489
3366         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
3367         read of phi arg location to before loop that modifies phi.
3369 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
3371         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
3372         New pattern.
3374 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
3376         PR middle-end/81331
3377         * except.c (execute): Fix ordering issue.
3379 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
3381         PR rtl-optimization/81423
3382         * combine.c (make_compound_operation_int): Don't try to optimize
3383         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
3385 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
3387         PR rtl-optimization/81423
3388         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
3389         with a constant that is -1 in the truncated to mode.
3391 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
3393         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
3394         (determine_unlikely_bbs): ... here.
3395         * predict.h (propagate_unlikely_bbs_forward): Declare.
3396         * cfgexpand.c (pass_expand::execute): Use it.
3397         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
3398         unlikely edges.
3399         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
3400         propagate_unlikely_bbs_forward.
3402 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
3404         PR middle-end/81331
3405         * except.c (maybe_add_nop_after_section_switch): New function.
3406         (execute): Use it.
3408 2017-07-19  Tom de Vries  <tom@codesourcery.com>
3410         * gimple.h (gimple_phi_set_arg): Make assert more strict.
3412 2017-07-19  Tom de Vries  <tom@codesourcery.com>
3414         * gimple.h (gimple_phi_arg): Make assert more strict.
3416 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
3418         * config.gcc (powerpc*-*-*): Add mmintrin.h.
3419         * config/rs6000/mmintrin.h: New file.
3420         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
3422 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
3424         PR tree-optimization/81346
3425         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
3427 2017-07-19  Tom de Vries  <tom@codesourcery.com>
3429         * config/nvptx/nvptx.md (VECIM): Add V2DI.
3431 2017-07-19  Tom de Vries  <tom@codesourcery.com>
3433         * config/nvptx/nvptx-modes.def: Add V2DImode.
3434         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
3435         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
3436         (nvptx_output_mov_insn): Handle lack of mov.b128.
3437         (nvptx_print_operand): Handle 'H' and 'L' codes.
3438         (nvptx_vector_mode_supported): Allow V2DImode.
3439         (nvptx_preferred_simd_mode): New function.
3440         (nvptx_data_alignment): New function.
3441         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
3442         nvptx_preferred_simd_mode.
3443         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
3444         64 to 128 bits.
3445         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
3447 2017-07-19  Tom de Vries  <tom@codesourcery.com>
3449         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
3450         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
3451         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
3452         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
3453         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
3454         (mov<VECIM>_insn): New define_insn.
3455         (define_expand "mov<VECIM>): New define_expand.
3457 2017-07-19  Tom de Vries  <tom@codesourcery.com>
3459         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
3461 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
3463         PR tree-optimization/81346
3464         * fold-const.h (fold_div_compare, range_check_type): Declare.
3465         * fold-const.c (range_check_type): New function.
3466         (build_range_check): Use range_check_type.
3467         (fold_div_compare): No longer static, rewritten into
3468         a match.pd helper function.
3469         (fold_comparison): Don't call fold_div_compare here.
3470         * match.pd (X / C1 op C2): New optimization using fold_div_compare
3471         as helper function.
3473 2017-07-19  Nathan Sidwell  <nathan@acm.org>
3475         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
3476         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
3477         * tree.c (find_decls_types_r, verify_type): Use
3478         TYPE_{MIN,MAX}_VALUE_RAW.
3479         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
3480         (hash_tree): Likewise.
3481         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
3482         Likewise.
3483         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
3484         Likewise.
3486 2017-07-18  Tom de Vries  <tom@codesourcery.com>
3488         PR middle-end/81464
3489         * omp-expand.c (expand_omp_for_static_chunk): Handle
3490         equal-argument loop exit phi.
3492 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
3494         PR target/81471
3495         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
3496         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
3497         operand 2 predicate.
3498         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
3499         operand 2 predicate.
3500         (ror,rol -> rorx splitters): Use const_int_operand as
3501         operand 2 predicate.
3503 2017-06-18  Richard Biener  <rguenther@suse.de>
3505         PR tree-optimization/81410
3506         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
3507         the gap in the ! slp_perm SLP case after each group.
3509 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
3511         PR middle-end/81463
3512         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
3513         again.
3515 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
3517         PR middle-end/81462
3518         * predict.c (set_even_probabilities): Cleanup; do not affect
3519         probabilities that are already known.
3520         (combine_predictions_for_bb): Call even when count is set.
3522 2017-07-18  Nathan Sidwell  <nathan@acm.org>
3524         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
3525         TYPE_MAX_VALUE.
3527 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
3529         PR target/81408
3530         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
3531         optimization for loop niter analysis.
3533 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
3535         PR target/81473
3536         * config/avr/avr.c (avr_optimize_casesi): Don't use
3537         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
3539 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
3541         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
3542         body_cost_vec from _vect_peel_extended_info.
3543         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
3544         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
3545         npeel.
3547 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
3549         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
3551 2017-07-18  Richard Biener  <rguenther@suse.de>
3553         PR tree-optimization/80620
3554         PR tree-optimization/81403
3555         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
3556         info when re-using a VN table entry.
3558 2017-07-18  Richard Biener  <rguenther@suse.de>
3560         PR tree-optimization/81418
3561         * tree-vect-loop.c (vectorizable_reduction): Properly compute
3562         vectype_in.  Verify that with lane-reducing reduction operations
3563         we have a single def-use cycle.
3565 2017-07-17  Carl Love  <cel@us.ibm.com>
3567         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
3569         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3570         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
3571         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
3572         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
3573         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
3574         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
3575         VMULOSW): New enum "unspec" values.
3576         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
3577         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
3578         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
3579         altivec_vmulosw): New patterns.
3580         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
3581         VMULOSW): Add definitions.
3582 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
3584         * config/alpha/alpha.c: Include predict.h.
3586 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
3588         * tree-vrp.c (compare_assert_loc): Fix comparison function
3589         to return predictable results.
3591 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
3593         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
3594         option.
3595         (subdi3): Likewise.
3596         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
3597         * doc/invoke.texi (mexpand-adddi): Update text.
3599 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
3601         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
3602         that also clobbers the CC register. The old expand code is moved
3603         to ...
3604         (*arc_clzsi2): ... here.
3605         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
3606         the CC register. The old expand code is moved to ...
3607         (arc_ctzsi2): ... here.
3609 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
3611         * config/arc/arc.opt (mindexed-loads): Use initial value
3612         TARGET_INDEXED_LOADS_DEFAULT.
3613         (mauto-modify-reg): Use initial value
3614         TARGET_AUTO_MODIFY_REG_DEFAULT.
3615         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
3616         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
3617         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
3618         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
3620 2017-07-17  Martin Liska  <mliska@suse.cz>
3622         PR sanitizer/81302
3623         * opts.c (finish_options): Do not allow -fgnu-tm
3624         w/ -fsanitize={kernel-,}address.  Say sorry.
3626 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
3628         PR target/81369
3629         * tree-loop-distribution.c (classify_partition): Only assert on
3630         numer of iterations.
3631         (merge_dep_scc_partitions): Delete prameter.  Update function call.
3632         (distribute_loop): Remove code handling loop with unknown niters.
3633         (pass_loop_distribution::execute): Skip loop with unknown niters.
3635 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
3637         PR target/81369
3638         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
3639         function sort_partitions_by_post_order.
3641 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
3643         PR tree-optimization/81374
3644         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
3645         the max index of basic blocks, rather than number of basic blocks.
3647 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
3649         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
3650         proto.
3651         (arc_legitimate_pic_operand_p): Likewise.
3652         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
3653         function.
3654         (arc_needs_pcl_p): Likewise.
3655         (arc_legitimate_pc_offset_p): Likewise.
3656         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
3657         function is also used in constrains.md.
3658         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
3659         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
3660         PLUS.  Only return true/false in known cases, otherwise assert.
3661         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
3662         is already called in arc_legitimate_constant_p.
3663         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
3664         pic addresses.
3665         (LEGITIMATE_PIC_OPERAND_P): Use
3666         arc_raw_symbolic_reference_mentioned_p function.
3667         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
3668         function.
3669         (Cal): Likewise.
3670         (C32): Likewise.
3672 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
3673         Andrew Burgess  <andrew.burgess@embecosm.com>
3675         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
3676         (arc_return_address_register): New function.
3677         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
3678         (arc_handle_fndecl_attribute): Add naked attribute.
3679         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
3680         (TARGET_WARN_FUNC_RETURN): Likewise.
3681         (arc_allocate_stack_slots_for_args): New function.
3682         (arc_warn_func_return): Likewise.
3683         (machine_function): Change type fn_type.
3684         (arc_compute_function_type): Consider new naked function type,
3685         change function return type.
3686         (arc_must_save_register): Adapt to handle new
3687         arc_compute_function_type's return type.
3688         (arc_expand_prologue): Likewise.
3689         (arc_expand_epilogue): Likewise.
3690         (arc_return_address_regs): Delete.
3691         (arc_return_address_register): New function.
3692         (arc_epilogue_uses): Use above function.
3693         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
3694         (arc_function_type): Change encoding, add naked type.
3695         (ARC_INTERRUPT_P): Change to handle the new encoding.
3696         (ARC_FAST_INTERRUPT_P): Likewise.
3697         (ARC_NORMAL_P): Define.
3698         (ARC_NAKED_P): Likewise.
3699         (arc_compute_function_type): Delete prototype.
3700         * config/arc/arc.md (in_ret_delay_slot): Use
3701         arc_return_address_register function.
3702         (simple_return): Likewise.
3703         (p_return_i): Likewise.
3705 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
3707         PR tree-optimization/81428
3708         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
3709         can't be built for those types.
3711 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
3713         Remove stuff dead since r239246.
3715         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
3716         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
3717         (avr_inform_devices): Remove dead stuff.
3719 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
3721         * config/arm/arm_neon.h: Fix softp typo.
3723 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
3725         PR tree-optimization/81365
3726         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
3727         aggregate moves onto bb predecessor edges, make sure there are no
3728         loads that could alias the lhs in between the start of bb and the
3729         loads from *phi.
3731 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
3733         PR 80929
3734         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
3735         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
3736         [LSHIFTRT, outer_code = TRUNCATE]: Same.
3738 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
3740         PR tree-optimization/81396
3741         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
3742         (init_symbolic_number): Initialize it to 1.
3743         (perform_symbolic_merge): Add n_ops from both operands into the new
3744         n_ops.
3745         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
3746         without base_addr as useless if they need more than one operation.
3747         (bswap_replace): Handle !bswap case for NULL base_addr.
3749 2017-07-17  Tom de Vries  <tom@codesourcery.com>
3751         PR target/81069
3752         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
3753         as possible.
3755 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3757         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
3758         conditional builtin define __FIX_LEON3FT_B2BST.
3760 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
3762         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
3763         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
3764         with -mfix-ut700.
3766 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
3768         PR rtl-optimization/81424
3769         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
3770         to remove potential trapping from operands if -fnon-call-exceptions.
3772 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
3774         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
3775         profile_proability for scalling.
3776         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
3778 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
3780         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
3782 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
3784         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
3785         fixpoint arithmetics.
3787 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
3789         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
3790         fixpoint arithmetics.
3792 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
3794         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
3795         fixpoint arithmetics.
3797 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
3799         * profile-count.h (profile_probability::from_reg_br_prob_note,
3800         profile_probability::to_reg_br_prob_note): New functions.
3801         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
3802         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
3803         * predict.c (probability_reliable_p): Update.
3804         (edge_probability_reliable_p): Update.
3805         (br_prob_note_reliable_p): Update.
3806         (invert_br_probabilities): Update.
3807         (add_reg_br_prob_note): New function.
3808         (combine_predictions_for_insn): Update.
3809         * asan.c (asan_clear_shadow): Update.
3810         * cfgbuild.c (compute_outgoing_frequencies): Update.
3811         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
3812         (update_br_prob_note): Update.
3813         (rtl_verify_edges): Update.
3814         (purge_dead_edges): Update.
3815         (fixup_reorder_chain): Update.
3816         * emit-rtl.c (try_split): Update.
3817         * ifcvt.c (cond_exec_process_insns): Update.
3818         (cond_exec_process_if_block): Update.
3819         (dead_or_predicable): Update.
3820         * internal-fn.c (expand_addsub_overflow): Update.
3821         (expand_neg_overflow): Update.
3822         (expand_mul_overflow): Update.
3823         * loop-doloop.c (doloop_modify): Update.
3824         * loop-unroll.c (compare_and_jump_seq): Update.
3825         * optabs.c (emit_cmp_and_jump_insn_1): Update.
3826         * predict.h: Update.
3827         * reorg.c (mostly_true_jump): Update.
3828         * rtl.h: Update.
3829         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
3830         * config/alpha/alpha.c (emit_unlikely_jump): Update.
3831         * config/arc/arc.c: (emit_unlikely_jump): Update.
3832         * config/arm/arm.c: (emit_unlikely_jump): Update.
3833         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
3834         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
3835         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
3836         (ix86_print_operand): Update.
3837         (ix86_split_fp_branch): Update.
3838         (predict_jump): Update.
3839         * config/ia64/ia64.c (ia64_print_operand): Update.
3840         * config/mmix/mmix.c (mmix_print_operand): Update.
3841         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
3842         (rs6000_expand_split_stack_prologue): Update.
3843         * config/rs6000/rs6000.c: Update.
3844         * config/s390/s390.c (s390_expand_vec_strlen): Update.
3845         (s390_expand_vec_movstr): Update.
3846         (s390_expand_cs_tdsi): Update.
3847         (s390_expand_split_stack_prologue): Update.
3848         * config/sh/sh.c (sh_print_operand): Update.
3849         (expand_cbranchsi4): Update.
3850         (expand_cbranchdi4): Update.
3851         * config/sparc/sparc.c (output_v9branch): Update.
3852         * config/spu/spu.c (get_branch_target): Update.
3853         (ea_load_store_inline): Update.
3854         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
3855         * config/tilepro/tilepro.c: Update.
3857 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
3859         * gimplify.c (mostly_copy_tree_r): Revert latest change.
3860         (gimplify_save_expr): Likewise.
3862 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
3864         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
3866 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
3868         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
3869         TV_IPA_FNSUMMARY.
3870         * timevar.def (TV_IPA_FNSUMMARY): Define.
3872 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
3874         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
3875         to back store errata sensitive sequence from being generated.
3876         (sqrtdf2_fix): Likewise.
3878 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
3880         * tree-ssa-threadupdate.c (compute_path_counts,
3881         update_joiner_offpath_counts): Use profile_probability.
3883 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3885         Revert:
3886         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3888         * config/arm/arm-c.c (arm_cpu_builtins): Define
3889         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
3891 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3893         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3894         array entries to represent __ieee128 versions of the
3895         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
3896         scalar_extract_sig, and scalar_insert_exp built-in functions.
3897         (altivec_resolve_overloaded_builtin): Add special case handling
3898         for the __builtin_scalar_insert_exp function, as represented by
3899         the P9V_BUILTIN_VEC_VSIEDP constant.
3900         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
3901         exponent support for __ieee128 argument.
3902         (VSESQP): Add scalar extract signature support for __ieee128
3903         argument.
3904         (VSTDCNQP): Add scalar test negative support for __ieee128
3905         argument.
3906         (VSIEQP): Add scalar insert exponent support for __int128 argument
3907         with __ieee128 result.
3908         (VSIEQPF): Add scalar insert exponent support for __ieee128
3909         argument with __ieee128 result.
3910         (VSTDCQP): Add scalar test data class support for __ieee128
3911         argument.
3912         (VSTDCNQP): Add overload support for scalar test negative with
3913         __ieee128 argument.
3914         (VSTDCQP): Add overload support for scalar test data class
3915         __ieee128 argument.
3916         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
3917         UNSPEC_VSX_SXSIGDP.
3918         (UNSPEC_VSX_SIEXPQP): New constant.
3919         (xsxexpqp): New insn for VSX scalar extract exponent quad
3920         precision.
3921         (xsxsigqp): New insn for VSX scalar extract significand quad
3922         precision.
3923         (xsiexpqpf): New insn for VSX scalar insert exponent quad
3924         precision with floating point argument.
3925         (xststdcqp): New expand for VSX scalar test data class quad
3926         precision.
3927         (xststdcnegqp): New expand for VSX scalar test negative quad
3928         precision.
3929         (xststdcqp): New insn to match expansions for VSX scalar test data
3930         class quad precision and VSX scalar test negative quad precision.
3931         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
3932         special case operand checking to enforce that second operand of
3933         VSX scalar test data class with quad precision argument is a 7-bit
3934         unsigned literal.
3935         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
3936         prototypes and descriptions of __ieee128 versions of
3937         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
3938         scalar_test_data_class, and scalar_test_neg built-in functions.
3940 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3942         PR tree-optimization/81162
3943         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
3944         replace a negate with an add.
3946 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
3948         * doc/invoke.texi (arm/-mcpu): Document +crypto.
3950 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3952         * config/arm/arm-c.c (arm_cpu_builtins): Define
3953         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
3955 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3957         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
3958         (armv8-r): Set ARM Cortex-R52 as default CPU.
3959         * config/arm/arm-tables.opt: Regenerate.
3960         * config/arm/arm-tune.md: Regenerate.
3961         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
3962         Cortex-R52.
3963         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
3964         extension for -mcpu=cortex-r52.
3966 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3968         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
3969         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
3970         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
3971         (fp-armv8): Define it as FP_ARMv8 only.
3972         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
3973         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
3974         TARGET_FPU_ARMV8.
3975         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
3976         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
3977         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
3978         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
3979         than TARGET_FPU_ARMV8.
3980         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
3981         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
3982         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
3983         TARGET_FPU_ARMV8.
3984         * config/arm/neon.md (neon_vrint): Likewise.
3985         (neon_vcvt): Likewise.
3986         (neon_<fmaxmin_op><mode>): Likewise.
3987         (<fmaxmin><mode>3): Likewise.
3988         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
3989         * config/arm/predicates.md (arm_cond_move_operator): Check against
3990         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
3992 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
3994         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
3995         to top of function.
3997 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3999         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
4000         loop in comment with memset.
4002 2017-07-14  Martin Liska  <mliska@suse.cz>
4004         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
4005         * dwarf2out.c (is_java): Remove the function.
4006         (output_pubname): Remove usage of the function.
4007         (lower_bound_default): Remove usage of DW_LANG_Java.
4008         (gen_compile_unit_die): Likewise.
4009         * gcc.c: Remove compiler defaults for .java and .zip files.
4010         * gimple-expr.c (remove_suffix): Change as there's no longer
4011         extension than 4-letter one.
4012         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
4013         (gimplify_save_expr): Likewise.
4014         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
4015         as it's possible even for other languages than Java.
4016         * langhooks.h (struct lang_hooks): Remove Java from a comment.
4017         * lto-opts.c (lto_write_options): Remove reference to Java.
4018         * opts.c (strip_off_ending): Update file extension handling.
4019         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
4020         * tree-eh.c (lower_resx): Likewise.
4021         * tree.c (free_lang_data_in_type): Remove dead code.
4022         (find_decls_types_r): Likewise.
4023         (build_common_builtin_nodes): Remove Java from a comment.
4024         (verify_type): Remove dead code.
4025         * varasm.c (assemble_external): Remove Java from a comment.
4027 2017-07-14  Martin Liska  <mliska@suse.cz>
4029         * opts.c (finish_options): Add quotes.
4030         (common_handle_option): Likewise.
4032 2017-07-14  Martin Liska  <mliska@suse.cz>
4034         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
4035         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
4036         Remove N_SO_PASCAL.
4037         * dwarf2out.c (lower_bound_default): Do not handle
4038         DW_LANG_Pascal83.
4039         (gen_compile_unit_die): Likewise.
4040         * gcc.c: Remove default extension binding for GNU Pascal.
4041         * stmt.c: Remove Pascal language from a comment.
4042         * xcoffout.c: Likewise.
4044 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
4046         PR c/81405
4047         * diagnostic-show-locus.c (fixit_cmp): New function.
4048         (layout::layout): Sort m_fixit_hints.
4049         (column_range::column_range): Assert that the values are valid.
4050         (struct char_span): New struct.
4051         (correction::overwrite): New method.
4052         (struct source_line): New struct.
4053         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
4054         calls in terms of classes source_line and char_span, and
4055         correction::overwrite.
4056         (selftest::test_overlapped_fixit_printing_2): New function.
4057         (selftest::diagnostic_show_locus_c_tests): Call it.
4059 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
4061         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
4062         early if there is no lhs.
4064 2017-07-13  Martin Liska  <mliska@suse.cz>
4066         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
4067         (gen_reference_type_die): Likewise.
4068         * stor-layout.c: Remove Pascal-related comment.
4070 2017-07-13  Martin Liska  <mliska@suse.cz>
4072         * opts.c (finish_options): Add quotes to error messages.
4073         (parse_sanitizer_options): Likewise.
4075 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4077         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
4079 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
4081         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
4083 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
4085         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
4086         during expansion.
4087         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
4089 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4091         PR target/81193
4092         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
4093         provides the hardware capability bits, define the macro
4094         __BUILTIN_CPU_SUPPORTS__.
4095         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
4096         if GLIBC does not provide the hardware capability bits.  Add a
4097         gcc_unreachable call if the built-in cpu function is neither
4098         __builtin_cpu_is nor __builtin_cpu_supports.
4099         (rs6000_get_function_versions_dispatcher): Change the warning
4100         that an old GLIBC is used which does not export the capability
4101         bits to be an error.
4102         * doc/extend.texi (target_clones attribute): Document the
4103         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
4104         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
4105         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
4106         the macros defined by GCC if the newer GLIBC is available.
4108 2017-07-12  Jeff Law  <law@redhat.com>
4110         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
4111         remaining includes slightly.
4112         * config/riscv/riscv-builtins.c: Include profile-count.h.
4114 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
4116         PR target/79883
4117         * config/avr/avr.c (avr_set_current_function): In diagnostic
4118         messages: Quote keywords and (parts of) identifiers.
4119         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
4120         "INTERUPT".
4122 2017-07-12  Carl Love  <cel@us.ibm.com>
4124         * config/rs6000/rs6000-c.c: Add support for built-in functions
4125         vector bool char vec_revb (vector bool char);
4126         vector bool short vec_revb (vector short char);
4127         vector bool int vec_revb (vector bool int);
4128         vector bool long long vec_revb (vector bool long long);
4129         * doc/extend.texi: Update the built-in documentation file for the
4130         new built-in functions.
4132 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4134         * config/s390/s390.md: Remove movcc splitter.
4136 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4138         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
4139         load/store on condition.
4141 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
4143         PR target/81407
4144         * config/avr/avr.c (avr_encode_section_info)
4145         [progmem && !TREE_READONLY]: Error if progmem object needs
4146         constructing.
4148 2017-07-11  Michael Collison  <michael.collison@arm.com>
4150         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
4151         New pattern.
4153 2017-07-11  Carl Love  <cel@us.ibm.com>
4155         * config/rs6000/rs6000-c.c: Add support for builtins
4156         vector unsigned int vec_parity_lsbb (vector signed int);
4157         vector unsigned int vec_parity_lsbb (vector unsigned int);
4158         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
4159         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
4160         vector unsigned long long vec_parity_lsbb (vector signed long long);
4161         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
4162         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
4163         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
4164         * doc/extend.texi: Update the built-in documentation file for the
4165         new built-in functions.
4167 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
4169         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
4170         (layout::m_primary_loc): New field.
4171         (layout::layout): Initialize new field.  Move location filtering
4172         logic from here to...
4173         (layout::maybe_add_location_range): ...this new method.  Add
4174         support for filtering to just the lines already specified by other
4175         locations.
4176         (layout::will_show_line_p): New method.
4177         (gcc_rich_location::add_location_if_nearby): New method.
4178         (selftest::test_add_location_if_nearby): New test function.
4179         (selftest::diagnostic_show_locus_c_tests): Call it.
4180         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
4181         New method.
4183 2017-07-11  Tom de Vries  <tom@codesourcery.com>
4185         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
4186         (bb_first_real_insn): New function.
4187         (nvptx_single): Add extra initialization of broadcasted condition
4188         variables.
4190 2017-07-11  Nathan Sidwell  <nathan@acm.org>
4192         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
4194 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
4196         * doc/extend.texi (AVR Function Attributes): Remove weblink to
4197         Binutils doc as TEXI will mess them up.
4198         * doc/invoke.texi (AVR Options): Same here.
4200 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
4202         * config/sparc/sparc.opt (mfix-ut700): New option.
4203         (mfix-gr712rc): Likewise.
4204         (sparc_fix_b2bst): New variable.
4205         * doc/invoke.texi (SPARC options): Document them.
4206         (ARM options): Fix warnings.
4207         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
4208         instructions to prevent sequences that can trigger the store-store
4209         errata for certain LEON3FT processors.
4210         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
4211         (sparc_option_override): Set sparc_fix_b2bst appropriately.
4212         * config/sparc/sparc.md (fix_b2bst): New attribute.
4213         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
4215 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
4217         PR target/81375
4218         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
4219         (rcpps): Ditto.
4220         (*rsqrtsf2_sse): Ditto.
4221         (rsqrtsf2): Ditto.
4222         (div<mode>3): Macroize insn from divdf3 and divsf3
4223         using MODEF mode iterator.
4225 2017-07-10  Martin Sebor  <msebor@redhat.com>
4227         PR tree-optimization/80397
4228         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
4229         instead of testing for equality to INTEGER_TYPE.
4231 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
4233         * config.gcc: Remove uclibc from arc target spec.
4235 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
4237         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
4239 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
4241         PR lto/80838
4242         * lto-wrapper.c (remove_option): New function.
4243         (merge_and_complain): Merge PIC/PIE options more realistically.
4245 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
4247         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
4249         PR target/20296
4250         PR target/81268
4251         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
4252         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
4253         * config.in: Regenerate.
4254         * configure: Regenerate.
4255         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
4256         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
4257         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
4258         (TARGET_GASISR_PROLOGUES): ...target mask.
4259         * common/config/avr/avr-common.c
4260         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
4261         Set -mgas-isr-prologues.
4262         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
4263         INSERT_PASS_BEFORE for it.
4264         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
4265         * config/avr/avr.c (avr_option_override)
4266         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
4267         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
4268         (avr_attribute_table) <no_gccisr>: Add new function attribute.
4269         (avr_set_current_function) <is_no_gccisr>: Init machine field.
4270         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
4271         and rtl_opt_pass.
4272         (make_avr_pass_pre_proep): New function.
4273         (emit_push_sfr) <treg>: Add argument to function and use it
4274         instead of TMP_REG.
4275         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
4276         and set machine->gasisr.yes.
4277         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
4278         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
4279         __gcc_isr.n_pushed to .L__stack_usage.
4280         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
4281         (avr_asm_final_postscan_insn): ...this new static function.
4282         * config/avr/avr.h (machine_function)
4283         <is_no_gccisr, use_L__stack_usage>: New fields.
4284         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
4285         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
4286         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
4287         (gasisr, *gasisr): New expander and insn.
4288         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
4289         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
4290         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
4292 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
4294         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
4295         in quoted strings.
4297 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
4299         Move jump-tables out of .text again.
4301         PR target/81075
4302         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
4303         (ASM_OUTPUT_ADDR_VEC): New function.
4304         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
4305         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
4306         INSN_ADDRESSes as asm comment.
4307         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
4308         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
4309         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
4310         * config/avr/avr.md (*tablejump): Adjust comment.
4311         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
4312         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
4313         New detail.
4314         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
4315         (avr_output_addr_vec): New proto.
4316         (avr_log_t) <insn_addresses>: New field.
4318 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
4320         PR target/81313
4321         * config/i386/i386.c (ix86_function_arg_advance): Set
4322         outgoing_args_on_stack to true if there are outgoing arguments
4323         on stack.
4324         (ix86_function_arg): Likewise.
4325         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
4326         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
4327         * config/i386/i386.h (machine_function): Add
4328         outgoing_args_on_stack.
4330 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
4332         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
4333         supporting pthreds.
4334         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
4336 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
4338         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
4339         (REAL_H): Remove $(MACHMODE_H).
4340         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
4341         double-int.h.
4342         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
4343         $(MACHMODE_H) and double-int.h.
4344         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
4345         $(MACHMODE_H).
4346         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
4347         double-int.h.
4349 2017-07-07  Andrew Pinski  <apinski@cavium.com>
4351         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
4352         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
4354 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
4356         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
4357         Add warning if GCC was not configured to link against a GLIBC that
4358         exports the hardware capability bits.
4359         (make_resolver_func): Make resolver function private and not a
4360         COMDAT function.  Create the name with clone_function_name instead
4361         of make_unique_name.
4363         PR target/81348
4364         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
4365         correct operand in doing the split.
4367 2017-07-07 Carl Love  <cel@us.ibm.com>
4369         * config/rs6000/rs6000-c: Add support for built-in function
4370         vector unsigned short vec_pack_to_short_fp32 (vector float,
4371                                                       vector float).
4372         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
4373         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
4374         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
4375         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
4376         (convert_4f32_8i16): Add define_expand.
4377         * doc/extend.texi: Update the built-in documentation file for the
4378         new built-in function.
4380 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
4382         * config/sparc/m8.md: New file.
4383         * config/sparc/sparc.md: Include m8.md.
4385 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
4387         * config/sparc/sparc.opt: New option -mvis4b.
4388         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
4389         (sparc_option_override): Handle VIS4B.
4390         (enum sparc_builtins): Define
4391         SPARC_BUILTIN_DICTUNPACK{8,16,32},
4392         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
4393         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
4394         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
4395         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
4396         (check_constant_argument): New function.
4397         (sparc_vis_init_builtins): Define builtins
4398         __builtin_vis_dictunpack{8,16,32},
4399         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
4400         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
4401         __builtin_vis_fpcmpde{8,16,32}shl and
4402         __builtin_vis_fpcmpur{8,16,32}shl.
4403         (sparc_expand_builtin): Check that the constant operands to
4404         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
4405         constant and in range.
4406         * config/sparc/sparc-c.c (sparc_target_macros): Handle
4407         TARGET_VIS4B.
4408         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
4409         (SPARC_IMM5_P): Likewise.
4410         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
4411         (enabled): Handle vis4b.
4412         (UNSPEC_DICTUNPACK): New unspec.
4413         (UNSPEC_FPCMPSHL): Likewise.
4414         (UNSPEC_FPUCMPSHL): Likewise.
4415         (UNSPEC_FPCMPDESHL): Likewise.
4416         (UNSPEC_FPCMPURSHL): Likewise.
4417         (cpu_feature): New CPU feature `vis4b'.
4418         (dictunpack{8,16,32}): New insns.
4419         (FPCSMODE): New mode iterator.
4420         (fpcscond): New code iterator.
4421         (fpcsucond): Likewise.
4422         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
4423         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
4424         (fpcmpde{8,16,32}{si,di}shl): Likewise.
4425         (fpcmpur{8,16,32}{si,di}shl): Likewise.
4426         * config/sparc/constraints.md: Define constraints `q' for unsigned
4427         2-bit integer constants and `t' for unsigned 5-bit integer
4428         constants.
4429         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
4430         predicate.
4431         (imm5_operand_dictunpack16): Likewise.
4432         (imm5_operand_dictunpack32): Likewise.
4433         (imm2_operand): Likewise.
4434         * doc/invoke.texi (SPARC Options): Document -mvis4b.
4435         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
4436         ditunpack* and fpcmp*shl builtins.
4438 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
4440         * config.gcc: Handle m8 in --with-{cpu,tune} options.
4441         * config.in: Add HAVE_AS_SPARC6 define.
4442         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
4443         M8.
4444         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
4445         TARGET_CPU_m8.
4446         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
4447         (CPP_CPU_SPEC): Handle m8.
4448         (ASM_CPU_SPEC): Likewise.
4449         * config/sparc/sparc-opts.h (enum processor_type): Add
4450         PROCESSOR_M8.
4451         * config/sparc/sparc.c (m8_costs): New struct.
4452         (sparc_option_override): Handle TARGET_CPU_m8.
4453         (sparc32_initialize_trampoline): Likewise.
4454         (sparc64_initialize_trampoline): Likewise.
4455         (sparc_issue_rate): Likewise.
4456         (sparc_register_move_cost): Likewise.
4457         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
4458         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
4459         (ASM_CPU64_DEFAULT_SPEC): Likewise.
4460         (CPP_CPU_SPEC): Handle M8.
4461         (ASM_CPU_SPEC): Likewise.
4462         (AS_M8_FLAG): Define.
4463         * config/sparc/sparc.md: Add m8 to the cpu attribute.
4464         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
4465         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
4466         M8 instructions.
4467         * configure: Regenerate.
4468         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
4469         -mtune=m8.
4471 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
4473         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
4474         subtypes.
4475         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
4476         ("*movdi_insn_sp32"): Do not set v3pipe.
4477         ("*movsi_insn"): Likewise.
4478         ("*movdi_insn_sp64"): Likewise.
4479         ("*movsf_insn"): Likewise.
4480         ("*movdf_insn_sp32"): Likewise.
4481         ("*movdf_insn_sp64"): Likewise.
4482         ("*zero_extendsidi2_insn_sp64"): Likewise.
4483         ("*sign_extendsidi2_insn"): Likewise.
4484         ("*mov<VM32:mode>_insn"): Likewise.
4485         ("*mov<VM64:mode>_insn_sp64"): Likewise.
4486         ("*mov<VM64:mode>_insn_sp32"): Likewise.
4487         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
4488         ("<vlop:code><VL:mode>3"): Likewise.
4489         ("*not_<vlop:code><VL:mode>3"): Likewise.
4490         ("*nand<VL:mode>_vis"): Likewise.
4491         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
4492         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
4493         ("one_cmpl<VL:mode>2"): Likewise.
4494         ("faligndata<VM64:mode>_vis"): Likewise.
4495         ("alignaddrsi_vis"): Likewise.
4496         ("alignaddrdi_vis"): Likweise.
4497         ("alignaddrlsi_vis"): Likewise.
4498         ("alignaddrldi_vis"): Likewise.
4499         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
4500         ("bmaskdi_vis"): Likewise.
4501         ("bmasksi_vis"): Likewise.
4502         ("bshuffle<VM64:mode>_vis"): Likewise.
4503         ("cmask8<P:mode>_vis"): Likewise.
4504         ("cmask16<P:mode>_vis"): Likewise.
4505         ("cmask32<P:mode>_vis"): Likewise.
4506         ("pdistn<P:mode>_vis"): Likewise.
4507         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
4509 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
4511         * config/sparc/sparc.md ("subtype"): New insn attribute.
4512         ("*wrgsr_sp64"): Set insn subtype.
4513         ("*rdgsr_sp64"): Likewise.
4514         ("alignaddrsi_vis"): Likewise.
4515         ("alignaddrdi_vis"): Likewise.
4516         ("alignaddrlsi_vis"): Likewise.
4517         ("alignaddrldi_vis"): Likewise.
4518         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
4519         ("fexpand_vis"): Likewise.
4520         ("fpmerge_vis"): Likewise.
4521         ("faligndata<VM64:mode>_vis"): Likewise.
4522         ("bshuffle<VM64:mode>_vis"): Likewise.
4523         ("cmask8<P:mode>_vis"): Likewise.
4524         ("cmask16<P:mode>_vis"): Likewise.
4525         ("cmask32<P:mode>_vis"): Likewise.
4526         ("fchksm16_vis"): Likewise.
4527         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
4528         ("fmean16_vis"): Likewise.
4529         ("fp<plusminus_insn>64_vis"): Likewise.
4530         ("<plusminus_insn>v8qi3"): Likewise.
4531         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
4532         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
4533         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
4534         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
4535         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
4536         ("*movqi_insn"): Likewise.
4537         ("*movhi_insn"): Likewise.
4538         ("*movsi_insn"): Likewise.
4539         ("movsi_pic_gotdata_op"): Likewise.
4540         ("*movdi_insn_sp32"): Likewise.
4541         ("*movdi_insn_sp64"): Likewise.
4542         ("movdi_pic_gotdata_op"): Likewise.
4543         ("*movsf_insn"): Likewise.
4544         ("*movdf_insn_sp32"): Likewise.
4545         ("*movdf_insn_sp64"): Likewise.
4546         ("*zero_extendhisi2_insn"): Likewise.
4547         ("*zero_extendqihi2_insn"): Likewise.
4548         ("*zero_extendqisi2_insn"): Likewise.
4549         ("*zero_extendqidi2_insn"): Likewise.
4550         ("*zero_extendhidi2_insn"): Likewise.
4551         ("*zero_extendsidi2_insn_sp64"): Likewise.
4552         ("ldfsr"): Likewise.
4553         ("prefetch_64"): Likewise.
4554         ("prefetch_32"): Likewise.
4555         ("tie_ld32"): Likewise.
4556         ("tie_ld64"): Likewise.
4557         ("*tldo_ldub_sp32"): Likewise.
4558         ("*tldo_ldub1_sp32"): Likewise.
4559         ("*tldo_ldub2_sp32"): Likewise.
4560         ("*tldo_ldub_sp64"): Likewise.
4561         ("*tldo_ldub1_sp64"): Likewise.
4562         ("*tldo_ldub2_sp64"): Likewise.
4563         ("*tldo_ldub3_sp64"): Likewise.
4564         ("*tldo_lduh_sp32"): Likewise.
4565         ("*tldo_lduh1_sp32"): Likewise.
4566         ("*tldo_lduh_sp64"): Likewise.
4567         ("*tldo_lduh1_sp64"): Likewise.
4568         ("*tldo_lduh2_sp64"): Likewise.
4569         ("*tldo_lduw_sp32"): Likewise.
4570         ("*tldo_lduw_sp64"): Likewise.
4571         ("*tldo_lduw1_sp64"): Likewise.
4572         ("*tldo_ldx_sp64"): Likewise.
4573         ("*mov<VM32:mode>_insn"): Likewise.
4574         ("*mov<VM64:mode>_insn_sp64"): Likewise.
4575         ("*mov<VM64:mode>_insn_sp32"): Likewise.
4577 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
4579         * config/sparc/sparc.md ("type"): New insn type viscmp.
4580         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
4581         viscmp.
4582         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
4583         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
4584         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
4585         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
4586         viscmp.
4587         ("n7_vis_logical_11cycle"): Likewise.
4588         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
4589         * config/sparc/niagara2.md ("niag3_vis": Likewise.
4590         * config/sparc/niagara.md ("niag_vis"): Likewise.
4591         * config/sparc/ultra3.md ("us3_fga"): Likewise.
4592         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
4594 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
4596         * config/sparc/sparc.md: New instruction type `bmask'.
4597         (bmaskdi_vis): Use the `bmask' type.
4598         (bmasksi_vis): Likewise.
4599         * config/sparc/ultra3.md (us3_array): Likewise.
4600         * config/sparc/niagara7.md (n7_array): Likewise.
4601         * config/sparc/niagara4.md (n4_array): Likewise.
4602         * config/sparc/niagara2.md (niag2_vis): Likewise.
4603         (niag3_vis): Likewise.
4604         * config/sparc/niagara.md (niag_vis): Likewise.
4606 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
4608         * ipa-comdats.c: Remove optimize check from gate.
4609         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
4610         for functions not optimized.
4611         (ipa_fn_summary_read): Skip optimize check.
4612         (ipa_fn_summary_write): Likewise.
4613         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
4614         is optimized.
4615         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
4616         uninlinable.
4617         (can_inline_edge_p): Check flag_pcc_struct_return for match.
4618         (check_callers): Give up on caller which is not optimized.
4619         (inline_small_functions): Likewise.
4620         (ipa_inline): Do not give up when not optimizing.
4621         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
4622         away unoptimizes cdtors.
4623         (whole_program_function_and_variable_visibility): Do
4624         ipa_discover_readonly_nonaddressable_vars in LTO mode.
4625         * ipa.c (process_references): Do not check optimize.
4626         (symbol_table::remove_unreachable_nodes): Update optimize check.
4627         (set_writeonly_bit): Update optimize check.
4628         (pass_ipa_cdtor_merge::gate): Do not check optimize.
4629         (pass_ipa_single_use::gate): Remove.
4631 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
4633         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
4634         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
4635         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
4636         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
4637         permute_load, permute_store, adjust_extract, adjust_splat,
4638         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
4639         replace_swap_with_copy, dump_swap_insn_table,
4640         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
4641         recombine_lvx_pattern, recombine_stvx_pattern,
4642         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
4643         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
4644         to file rs6000-p8swap.c.
4645         * config/rs6000/rs6000-p8swap.c: New file.
4646         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
4647         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
4648         and rs6000*-*-* targets.
4650 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
4652         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
4654 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
4656         * lto-wrapper.c (merge_and_complain): Do not merge
4657         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
4658         fsigned_zeros, ftrapping_math, fwrapv.
4659         (append_compiler_options): Do not track these options.
4660         (append_linker_options): Likewie
4662 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
4664         * cgraphunit.c (cgraph_node::finalize_function): When
4665         !flag_toplevel_reorde set no_reorder flag.
4666         (varpool_node::finalize_decl): Likewise.
4667         (symbol_table::compile): Drop no toplevel reorder path.
4669 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
4671         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
4672         edges; zero probability is not better than uninitialized.
4674 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
4676         * asan.h (asan_sanitize_allocas_p): Declare.
4677         * asan.c (asan_sanitize_allocas_p): New function.
4678         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
4679         (handle_builtin_alloca): Likewise.
4680         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
4681         if !asan_sanitize_allocas_p.
4682         * params.def (asan-instrument-allocas): Add new option.
4683         * params.h (ASAN_PROTECT_ALLOCAS): Define.
4684         * opts.c (common_handle_option): Disable allocas sanitization for
4685         KASan by default.
4687 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
4689         * asan.c: Include gimple-fold.h.
4690         (get_last_alloca_addr): New function.
4691         (handle_builtin_stackrestore): Likewise.
4692         (handle_builtin_alloca): Likewise.
4693         (asan_emit_allocas_unpoison): Likewise.
4694         (get_mem_refs_of_builtin_call): Add new parameter, remove const
4695         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
4696         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
4697         (instrument_builtin_call): Pass gimple iterator to
4698         get_mem_refs_of_builtin_call.
4699         (last_alloca_addr): New global.
4700         * asan.h (asan_emit_allocas_unpoison): Declare.
4701         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
4702         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
4703         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
4704         if function calls alloca.
4705         * gimple-fold.c (replace_call_with_value): Remove static keyword.
4706         * gimple-fold.h (replace_call_with_value): Declare.
4707         * internal-fn.c: Include asan.h.
4708         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
4709         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
4711 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
4713         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
4714         (C_SELFTEST_FLAGS): New.
4715         (CPP_SELFTEST_FLAGS): New.
4716         (SELFTEST_DEPS): New, from deps of s-selftest.
4717         (C_SELFTEST_DEPS): New, from deps of s-selftest.
4718         (CPP_SELFTEST_DEPS): New.
4719         (selftest): Add dependency on s-selftest-c++.
4720         (s-selftest): Rename to...
4721         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
4722         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
4723         than SELFTEST_FLAGS.
4724         (selftest-gdb): Rename to...
4725         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
4726         C_SELFTEST_FLAGS.
4727         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
4728         (selftest-valgrind): Rename to...
4729         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
4730         C_SELFTEST_FLAGS.
4731         (selftest-valgrind): Reintroduce as an alias for
4732         selftest-c-valgrind.
4733         (s-selftest-c++): New.
4734         (selftest-c++-gdb): New.
4735         (selftest-c++-valgrind): New.
4737 2017-07-06  Olivier Hainque  <hainque@adacore.com>
4739         * gcc.c (process_command): When deciding if undefined variables
4740         should be ignored when processing specs, accept "gcc -v" as well.
4742 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
4744         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
4745         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
4747 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4749         * config/arm/arm-cpus.in (armv8-r): Add new entry.
4750         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
4751         * config/arm/arm-tables.opt: Regenerate.
4752         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
4753         enumerator.
4754         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
4756 2017-07-06  Carl Love  <cel@us.ibm.com>
4758         * ChangeLog: Clean up from mid air collision
4760 2017-07-06  Carl Love  <cel@us.ibm.com>
4762         * config/rs6000/rs6000-c.c: Add support for built-in functions
4763         vector signed int vec_subc (vector signed int, vector signed int);
4764         vector signed __int128 vec_subc (vector signed __int128,
4765                                          vector signed __int128);
4766         vector unsigned __int128 vec_subc (vector unsigned __int128,
4767                                            vector unsigned __int128);
4768         vector signed int vec_sube (vector signed int, vector signed int,
4769                                     vector signed int);
4770         vector unsigned int vec_sube (vector unsigned int,
4771                                       vector unsigned int,
4772                                       vector unsigned int);
4773         vector signed __int128 vec_sube (vector signed __int128,
4774                                          vector signed __int128,
4775                                          vector signed__int128);
4776         vector unsigned __int128 vec_sube (vector unsigned __int128,
4777                                            vector unsigned __int128,
4778                                            vector unsigned __int128);
4779         vector signed int vec_subec (vector signed int, vector signed int,
4780                                      vector signed int);
4781         vector unsigned int vec_subec (vector unsigned int,
4782                                        vector unsigned int,
4783                                        vector unsigned int);
4784         vector signed __int128 vec_subec (vector signed __int128,
4785                                           vector signed __int128,
4786                                           vector signed__int128);
4787         vector unsigned __int128 vec_subec (vector unsigned __int128,
4788                                             vector unsigned __int128,
4789                                             vector unsigned __int128);
4790         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
4791         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
4792         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
4793         BU_ALTIVEC_OVERLOAD_X definitions.
4794         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
4795         * doc/extend.texi: Update the built-in documentation file for the new
4796         built-in functions.
4798 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
4800         PR c++/79300
4801         * diagnostic-show-locus.c (layout::layout): Use start and finish
4802         spelling location for the start and finish of each range.
4803         * genmatch.c (linemap_client_expand_location_to_spelling_point):
4804         Add unused aspect param.
4805         * input.c (expand_location_1): Add "aspect" param, and use it
4806         to access the correct part of the location.
4807         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
4808         expand_location_1.
4809         (expand_location_to_spelling_point): Likewise.
4810         (linemap_client_expand_location_to_spelling_point): Add "aspect"
4811         param, and pass it to expand_location_1.
4813 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
4815         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
4816         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
4817         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
4818         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
4819         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
4820         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
4821         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
4822         _mm_maskz_getmant_ss): New intrinsics.
4823         (__builtin_ia32_getexpss128_mask): Changed to ...
4824         __builtin_ia32_getexpss128_round ... this.
4825         (__builtin_ia32_getexpsd128_mask): Changed to ...
4826         __builtin_ia32_getexpsd128_round ... this.
4827         * config/i386/i386-builtin-types.def
4828         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
4829         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
4830         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
4831         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
4832         __builtin_ia32_getmantss_mask_round): New builtins.
4833         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
4834         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
4835         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
4836         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
4837         * config/i386/sse.md
4838         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
4839         avx512f_sgetexp<mode><mask_scalar_name>
4840         <round_saeonly_scalar_name> ... this.
4841         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
4842         %0, %1, %2<round_saeonly_op3>}): Changed to ...
4843         vgetexp<ssescalarmodesuffix>
4844         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
4845         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
4846         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
4847         avx512f_vgetmant<mode><mask_scalar_name>
4848         <round_saeonly_scalar_name> ... this.
4849         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
4850         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
4851         vgetmant<ssescalarmodesuffix>
4852         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
4853         %0<mask_scalar_operand4>, %1, %2
4854         <round_saeonly_scalar_mask_op4>, %3} ... this.
4855         * config/i386/subst.md (mask_scalar_operand4,
4856         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
4857         round_saeonly_scalar_nimm_predicate): New subst attributes.
4859 2017-07-06  Julia Koval  <julia.koval@intel.com>
4861         * config/i386/i386.c (ix86_erase_embedded_rounding):
4862         Remove code for old rounding pattern.
4864 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
4866         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
4868 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
4870         * doc/sourcebuild.texi (Test Directives, Variants of
4871         dg-require-support): Add documentation for dg-require-stack-check.
4873 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
4875         * config/i386/subst.md (mask_scalar, round_scalar,
4876         round_saeonly_scalar): New meta-templates.
4877         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
4878         round_scalar_mask_operand3, round_scalar_mask_op3,
4879         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
4880         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
4881         round_saeonly_scalar_constraint,
4882         round_saeonly_scalar_prefix): New subst attribute.
4883         * config/i386/sse.md
4884         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
4885         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
4886         <round_scalar_name> ... this.
4887         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
4888         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
4889         <round_scalar_name> ... this.
4890         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
4891         <sse>_vm<code><mode>3<mask_scalar_name>
4892         <round_saeonly_scalar_name> ... this.
4893         (v<plusminus_mnemonic><ssescalarmodesuffix>
4894         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
4895         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
4896         v<plusminus_mnemonic><ssescalarmodesuffix>
4897         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
4898         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
4899         (v<multdiv_mnemonic><ssescalarmodesuffix>
4900         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
4901         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
4902         v<multdiv_mnemonic><ssescalarmodesuffix>
4903         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
4904         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
4905         (v<maxmin_float><ssescalarmodesuffix>
4906         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
4907         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
4908         v<maxmin_float><ssescalarmodesuffix>
4909         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
4910         %0<mask_scalar_operand3>, %1, %<iptr>2
4911         <round_saeonly_scalar_mask_op3>} ... this.
4913 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
4915         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
4916         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
4918 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
4919             Alan Hayward  <alan.hayward@arm.com>
4920             David Sherwood  <david.sherwood@arm.com>
4922         * combine.c (simplify_if_then_else): Remove "enum" before
4923         "machine_mode".
4924         * compare-elim.c (can_eliminate_compare): Likewise.
4925         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
4926         Likewise.
4927         (aarch64_lookup_simd_builtin_type): Likewise.
4928         (aarch64_simd_builtin_type): Likewise.
4929         (aarch64_init_simd_builtin_types): Likewise.
4930         (aarch64_simd_expand_args): Likewise.
4931         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
4932         Likewise.
4933         (aarch64_reverse_mask): Likewise.
4934         (aarch64_simd_emit_reg_reg_move): Likewise.
4935         (aarch64_gen_adjusted_ldpstp): Likewise.
4936         (aarch64_ccmp_mode_to_code): Likewise.
4937         (aarch64_operands_ok_for_ldpstp): Likewise.
4938         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
4939         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
4940         Likewise.
4941         (aarch64_min_divisions_for_recip_mul): Likewise.
4942         (aarch64_reassociation_width): Likewise.
4943         (aarch64_get_condition_code_1): Likewise.
4944         (aarch64_simd_emit_reg_reg_move): Likewise.
4945         (aarch64_simd_attr_length_rglist): Likewise.
4946         (aarch64_reverse_mask): Likewise.
4947         (aarch64_operands_ok_for_ldpstp): Likewise.
4948         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
4949         (aarch64_gen_adjusted_ldpstp): Likewise.
4950         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
4951         Likewise.
4952         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
4953         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
4954         (arm_lookup_simd_builtin_type): Likewise.
4955         (arm_simd_builtin_type): Likewise.
4956         (arm_init_simd_builtin_types): Likewise.
4957         (arm_expand_builtin_args): Likewise.
4958         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
4959         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
4960         (ft32_setup_incoming_varargs): Likewise.
4961         (ft32_function_arg): Likewise.
4962         (ft32_function_arg_advance): Likewise.
4963         (ft32_pass_by_reference): Likewise.
4964         (ft32_arg_partial_bytes): Likewise.
4965         (ft32_valid_pointer_mode): Likewise.
4966         (ft32_addr_space_pointer_mode): Likewise.
4967         (ft32_addr_space_legitimate_address_p): Likewise.
4968         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
4969         Likewise.
4970         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
4971         (ix86_emit_outlined_ms2sysv_restore): Likewise.
4972         (iamcu_alignment): Likewise.
4973         (canonicalize_vector_int_perm): Likewise.
4974         (ix86_noce_conversion_profitable_p): Likewise.
4975         (ix86_mpx_bound_mode): Likewise.
4976         (ix86_operands_ok_for_move_multiple): Likewise.
4977         * config/microblaze/microblaze-protos.h
4978         (microblaze_expand_conditional_branch_reg): Likewise.
4979         * config/microblaze/microblaze.c
4980         (microblaze_expand_conditional_branch_reg): Likewise.
4981         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
4982         Likewise.
4983         (rs6000_reassociation_width): Likewise.
4984         (rs6000_invalid_binary_op): Likewise.
4985         (fusion_p9_p): Likewise.
4986         (emit_fusion_p9_load): Likewise.
4987         (emit_fusion_p9_store): Likewise.
4988         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
4989         Likewise.
4990         (riscv_hard_regno_mode_ok_p): Likewise.
4991         (riscv_address_insns): Likewise.
4992         (riscv_split_symbol): Likewise.
4993         (riscv_legitimize_move): Likewise.
4994         (riscv_function_value): Likewise.
4995         (riscv_hard_regno_nregs): Likewise.
4996         (riscv_expand_builtin): Likewise.
4997         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
4998         (riscv_build_integer): Likewise.
4999         (riscv_split_integer): Likewise.
5000         (riscv_legitimate_constant_p): Likewise.
5001         (riscv_cannot_force_const_mem): Likewise.
5002         (riscv_regno_mode_ok_for_base_p): Likewise.
5003         (riscv_valid_base_register_p): Likewise.
5004         (riscv_valid_offset_p): Likewise.
5005         (riscv_valid_lo_sum_p): Likewise.
5006         (riscv_classify_address): Likewise.
5007         (riscv_legitimate_address_p): Likewise.
5008         (riscv_address_insns): Likewise.
5009         (riscv_load_store_insns): Likewise.
5010         (riscv_force_binary): Likewise.
5011         (riscv_split_symbol): Likewise.
5012         (riscv_force_address): Likewise.
5013         (riscv_legitimize_address): Likewise.
5014         (riscv_move_integer): Likewise.
5015         (riscv_legitimize_const_move): Likewise.
5016         (riscv_legitimize_move): Likewise.
5017         (riscv_address_cost): Likewise.
5018         (riscv_subword): Likewise.
5019         (riscv_output_move): Likewise.
5020         (riscv_canonicalize_int_order_test): Likewise.
5021         (riscv_emit_int_order_test): Likewise.
5022         (riscv_function_arg_boundary): Likewise.
5023         (riscv_pass_mode_in_fpr_p): Likewise.
5024         (riscv_pass_fpr_single): Likewise.
5025         (riscv_pass_fpr_pair): Likewise.
5026         (riscv_get_arg_info): Likewise.
5027         (riscv_function_arg): Likewise.
5028         (riscv_function_arg_advance): Likewise.
5029         (riscv_arg_partial_bytes): Likewise.
5030         (riscv_function_value): Likewise.
5031         (riscv_pass_by_reference): Likewise.
5032         (riscv_setup_incoming_varargs): Likewise.
5033         (riscv_print_operand): Likewise.
5034         (riscv_elf_select_rtx_section): Likewise.
5035         (riscv_save_restore_reg): Likewise.
5036         (riscv_for_each_saved_reg): Likewise.
5037         (riscv_register_move_cost): Likewise.
5038         (riscv_hard_regno_mode_ok_p): Likewise.
5039         (riscv_hard_regno_nregs): Likewise.
5040         (riscv_class_max_nregs): Likewise.
5041         (riscv_memory_move_cost): Likewise.
5042         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
5043         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
5044         (rl78_addr_space_address_mode): Likewise.
5045         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5046         Likewise.
5047         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
5048         (rs6000_reassociation_width): Likewise.
5049         (rs6000_invalid_binary_op): Likewise.
5050         (fusion_p9_p): Likewise.
5051         (emit_fusion_p9_load): Likewise.
5052         (emit_fusion_p9_store): Likewise.
5053         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
5054         (ok_for_simple_move_operands): Likewise.
5055         (ok_for_simple_move_strict_operands): Likewise.
5056         (ok_for_simple_arith_logic_operands): Likewise.
5057         (visium_legitimize_reload_address): Likewise.
5058         (visium_select_cc_mode): Likewise.
5059         (output_cbranch): Likewise.
5060         (visium_split_double_move): Likewise.
5061         (visium_expand_copysign): Likewise.
5062         (visium_expand_int_cstore): Likewise.
5063         (visium_expand_fp_cstore): Likewise.
5064         * config/visium/visium.c (visium_pass_by_reference): Likewise.
5065         (visium_function_arg): Likewise.
5066         (visium_function_arg_advance): Likewise.
5067         (visium_libcall_value): Likewise.
5068         (visium_setup_incoming_varargs): Likewise.
5069         (visium_legitimate_constant_p): Likewise.
5070         (visium_legitimate_address_p): Likewise.
5071         (visium_legitimize_address): Likewise.
5072         (visium_secondary_reload): Likewise.
5073         (visium_register_move_cost): Likewise.
5074         (visium_memory_move_cost): Likewise.
5075         (prepare_move_operands): Likewise.
5076         (ok_for_simple_move_operands): Likewise.
5077         (ok_for_simple_move_strict_operands): Likewise.
5078         (ok_for_simple_arith_logic_operands): Likewise.
5079         (visium_function_value_1): Likewise.
5080         (rtx_ok_for_offset_p): Likewise.
5081         (visium_legitimize_reload_address): Likewise.
5082         (visium_split_double_move): Likewise.
5083         (visium_expand_copysign): Likewise.
5084         (visium_expand_int_cstore): Likewise.
5085         (visium_expand_fp_cstore): Likewise.
5086         (visium_split_cstore): Likewise.
5087         (visium_select_cc_mode): Likewise.
5088         (visium_split_cbranch): Likewise.
5089         (output_cbranch): Likewise.
5090         (visium_print_operand_address): Likewise.
5091         * expmed.c (flip_storage_order): Likewise.
5092         * expmed.h (emit_cstore): Likewise.
5093         (flip_storage_order): Likewise.
5094         * genrecog.c (validate_pattern): Likewise.
5095         * hsa-gen.c (gen_hsa_addr): Likewise.
5096         * internal-fn.c (expand_arith_overflow): Likewise.
5097         * ira-color.c (allocno_copy_cost_saving): Likewise.
5098         * lra-assigns.c (find_hard_regno_for_1): Likewise.
5099         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
5100         (process_invariant_for_inheritance): Likewise.
5101         * lra-eliminations.c (move_plus_up): Likewise.
5102         * omp-low.c (lower_oacc_reductions): Likewise.
5103         * simplify-rtx.c (simplify_subreg): Likewise.
5104         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
5105         (TARGET_CHKP_BOUND_MODE): Likewise..
5106         * targhooks.c (default_chkp_bound_mode): Likewise.
5107         (default_setup_incoming_vararg_bounds): Likewise.
5108         * targhooks.h (default_chkp_bound_mode): Likewise.
5109         (default_setup_incoming_vararg_bounds): Likewise.
5110         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
5111         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
5112         (have_whole_vector_shift): Likewise.
5113         * tree-vect-stmts.c (vectorizable_load): Likewise.
5114         * doc/tm.texi: Regenerate.
5116 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
5118         Graceful degrade if Binutils PR21472 is not available.
5120         PR target/81072
5121         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
5122         .rodata in flash test fails.
5123         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
5124         * confgure: Regenerate.
5125         * config.in: Regenerate.
5126         * config/avr/avr.c (avr_asm_named_section)
5127         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
5128         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
5129         (avr_asm_init_sections): Same.
5131 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5133         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
5134         (fma<VH:mode>4_intrinsic): Likewise.
5135         (*fmsub<VCVTF:mode>4): Likewise.
5136         (*fmsub<VH:mode>4_intrinsic): Likewise.
5138 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
5140         PR target/81305
5141         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
5142         Don't depend on "optimize > 0".
5143         (out_movhi_r_mr, out_movqi_mr_r): Same.
5144         (out_movhi_mr_r, out_movqi_r_mr): Same.
5145         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
5146         io_address_operand on "optimize > 0".
5148 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5150         * tree-loop-distribution.c: Add general explanantion on the pass.
5151         (generate_loops_for_partition): Mark distributed loop.
5152         (pg_add_dependence_edges): New parameter.  Handle alias data
5153         dependence specially and record it in the parameter if asked.
5154         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
5155         (init_partition_graph_vertices, add_partition_graph_edge): New.
5156         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
5157         (free_partition_graph_vdata, build_partition_graph): New.
5158         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
5159         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
5160         (data_ref_segment_size, latch_dominated_by_data_ref): New.
5161         (compute_alias_check_pairs, version_loop_by_alias_check): New.
5162         (version_for_distribution_p, finalize_partitions): New.
5163         (distribute_loop): Handle alias data dependence specially.  Factor
5164         out loop fusion code as functions and call these functions.
5166 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5168         * tree-loop-distribution.c (classify_partition): New parameter and
5169         better handle reduction statement.
5170         (rdg_build_partitions): Revise comment.
5171         (distribute_loop): Compute statements in all partitions and pass it
5172         to classify_partition.
5174 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5176         * tree-loop-distribution.c (enum partition_type): New.
5177         (struct partition): New field type.
5178         (partition_merge_into): Add parameter.  Update partition type.
5179         (data_dep_in_cycle_p, update_type_for_merge): New functions.
5180         (build_rdg_partition_for_vertex): Compute partition type.
5181         (rdg_build_partitions): Dump partition type.
5182         (distribute_loop): Update calls to partition_merge_into.
5184 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5186         * tree-loop-distribution.c (struct ddr_hasher): New.
5187         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
5188         (ddrs_table): New.
5189         (classify_partition): Call get_data_dependence.
5190         (pg_add_dependence_edges): Ditto.
5191         (distribute_loop): Release data dependence hash table.
5193 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5195         * tree-loop-distribution.c (ref_base_address): Delete.
5196         (similar_memory_accesses): Rename ...
5197         (share_memory_accesses): ... to this.  Check if partitions access
5198         the same memory reference.
5199         (distribute_loop): Call share_memory_accesses.
5201 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5203         * tree-loop-distribution.c (struct partition): New field recording
5204         its data reference.
5205         (partition_alloc, partition_free): Init and release data refs.
5206         (partition_merge_into): Merge data refs.
5207         (build_rdg_partition_for_vertex): Collect data refs for partition.
5208         (pg_add_dependence_edges): Change parameters from vector to bitmap.
5209         Update uses.
5210         (distribute_loop): Remve data refs from vertice data of partition
5211         graph.
5213 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5215         * tree-loop-distribution.c (params.h): Include header file.
5216         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
5217         (datarefs_vec): New global var.
5218         (create_rdg_vertices): Use datarefs_vec directly.
5219         (free_rdg): Don't free data references.
5220         (build_rdg): Update use.  Don't free data references.
5221         (distribute_loop): Compute global variable for data references.
5222         Bail out if there are too many data references.
5224 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5226         * tree-loop-distribution.c (loop_nest): New global var.
5227         (build_rdg): Use loop directly, rather than loop nest.
5228         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
5229         variable directly.
5230         (distribute_loop): Compute global variable loop nest.  Update use.
5232 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5234         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
5235         (partition_merge_into): New parameter.  Dump reason for fusion.
5236         (distribute_loop): Update use of partition_merge_into.
5238 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5240         * tree-loop-distribution.c (bb_top_order_index): New.
5241         (bb_top_order_index_size, bb_top_order_cmp): New.
5242         (stmts_from_loop): Use topological order.
5243         (pass_loop_distribution::execute): Compute and release topological
5244         order for basic blocks.
5246 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5248         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
5249         if no loops.
5251 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
5253         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
5254         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
5255         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
5256         * internal-fn.def (LOOP_DIST_ALIAS): New.
5257         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
5258         (fold_loop_internal_call): ... this.
5259         (vect_loop_dist_alias_call): New function.
5260         (set_uid_loop_bbs): Call fold_loop_internal_call.
5261         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
5262         internal calls.
5264 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
5266         PR target/81300
5267         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
5268         Require dead FLAGS_REG at the beginning of a peephole.
5270 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
5272         PR target/81294
5273         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
5274         arguments in the call to __builtin_ia32_sbb_u32.
5275         (_subborrow_u64): Swap _X and _Y arguments in the call to
5276         __builtin_ia32_sbb_u64.
5278 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
5280         PR debug/81278
5281         * tree-vrp.c (compare_assert_loc): Turn into a function template
5282         with stable template parameter.  Only test if a->e is NULL,
5283         !a->e == !b->e has been verified already.  Use e == NULL or
5284         e != NULL instead of e or ! e tests.  If stable is true, don't use
5285         iterative_hash_expr, on the other side allow a or b or both NULL
5286         and sort the NULLs last.
5287         (process_assert_insertions): Sort using compare_assert_loc<false>
5288         instead of compare_assert_loc, later sort using
5289         compare_assert_loc<true> before calling process_assert_insertions_for
5290         in a loop.  Use break instead of continue once seen NULL pointer.
5292 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5294         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
5295         Cortex-R7 and Cortex-R8 processors.
5297 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
5299         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
5300         uninitialized while src is not.
5302 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
5304         * common/config/arm/arm-common.c: Adjust include path for
5305         arm-cpu-cdata.h
5306         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
5307         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
5308         (arm-cpu-data.h): Likewise.
5309         (arm-cpu-cdata.h): Likewise.
5310         * config/arm/arm-cpu.h: Delete.
5311         * config/arm/arm-cpu-cdata.h: Delete.
5312         * config/arm/arm-cpu-data.h: Delete.
5314 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
5316         * config/arm/arm-cpus.in (cortex-a55): New.
5317         (cortex-a75): Likewise.
5318         (cortex-a75.cortex-a55): Likewise.
5319         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
5320         cortex-a75.
5321         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
5322         * config/arm/arm-cpu-cdata.h: Regenerate.
5323         * config/arm/arm-cpu-data.h: Regenerate.
5324         * config/arm/arm-cpu.h: Regenerate.
5325         * config/arm/arm-tables.opt: Regenerate.
5326         * config/arm/arm-tune.md: Regenerate.
5328 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
5330         * haifa-sched.c (sched_create_recovery_edges): Update profile.
5332 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
5334         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
5335         probability.
5337 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
5339         PR tree-optimization/81292
5340         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
5341         full_string_p, also call adjust_related_strinfos if the adjustment
5342         is simple, otherwise invalidate related strinfos.
5344 2017-07-04  Martin Liska  <mliska@suse.cz>
5346         PR sanitizer/81040
5347         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
5348         newly created variable as DECL_IGNORED_P.
5350 2017-07-04  Martin Liska  <mliska@suse.cz>
5352         PR ipa/81293
5353         * ipa-inline.c (inline_small_functions):
5354         Use xstrdup_for_dump.
5356 2017-07-04  Tom de Vries  <tom@codesourcery.com>
5358         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
5360 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
5362         PR target/81033
5363         * config/darwin.c (darwin_function_switched_text_sections):
5364         Fix spaces.
5366 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
5368         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
5370 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
5372         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
5374 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
5376         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
5377         min_profitable_iters, and th as inclusive lower bounds.
5378         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
5379         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
5380         for min_profitable_iters and min_profitable_estimate.
5381         (vect_transform_loop): Treat th as an inclusive lower bound.
5382         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
5384 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
5386         PR target/81033
5387         * config/darwin.c (darwin_function_switched_text_sections):
5388         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
5389         in two pieces, and suppress the use of buf.
5391 2017-07-03  Nathan Sidwell  <nathan@acm.org>
5393         * hash-table.h (hash_table_mod1): Fix indentation.
5395 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
5397         PR middle-end/81290
5398         * predict.c (force_edge_cold): Be more careful about propagation
5399         backward.
5400         * profile-count.h (profile_probability::guessed,
5401         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
5402         New.
5403         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
5405 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
5407         * doc/invoke.texi (rcpc architecture extension): Document it.
5409 2017-07-03  Richard Biener  <rguenther@suse.de>
5411         PR tree-optimization/60510
5412         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
5413         the scalar reduction PHI and use it.
5414         (vectorizable_reduction): Properly guard the single_defuse_cycle
5415         path for non-SLP reduction chains where we cannot use it.
5416         Rework reduc_def/index and vector type deduction.  Rework
5417         vector operand gathering during reduction op code-gen.
5418         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
5419         chains dissolve the chain and leave it to non-SLP reduction
5420         handling.
5422 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
5424         * tree-data-ref.h (dr_alignment): Declare.
5425         * tree-data-ref.c (dr_alignment): New function.
5426         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
5427         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
5428         set it.
5429         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
5431 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
5433         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
5434         and base_misalignment fields.
5435         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
5436         * tree-data-ref.c: Include builtins.h.
5437         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
5438         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
5439         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
5440         * tree-vect-data-refs.c: Include tree-cfg.h.
5441         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
5442         fields instead of calculating an alignment here.
5443         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
5444         innermost_loop_behavior fields.
5446 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
5448         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
5449         field.
5450         (DR_STEP_ALIGNMENT): New macro.
5451         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
5452         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
5453         (create_data_ref): Print it.
5454         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
5455         to tell whether the step preserves vector (mis)alignment.
5456         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
5457         Move the check for an integer step and generalise to all INTEGER_CST.
5458         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
5459         Print the outer step alignment.
5461 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
5463         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
5464         with offset_alignment.
5465         (DR_ALIGNED_TO): Delete.
5466         (DR_OFFSET_ALIGNMENT): New macro.
5467         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
5468         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
5469         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
5470         (create_data_ref): Likewise.
5471         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
5472         (vect_analyze_data_refs): Likewise.
5473         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
5474         creating dummy innermost behavior.
5476 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
5478         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
5479         with a "innermost_loop_behavior *" and refeence tree.
5480         * tree-data-ref.c (dr_analyze_innermost): Likewise.
5481         (create_data_ref): Update call accordingly.
5482         * tree-predcom.c (find_looparound_phi): Likewise.
5484 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
5486         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
5487         fields with dr_wrt_vec_loop.
5488         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
5489         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
5490         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
5491         (vect_dr_behavior): New function.
5492         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
5493         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
5494         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
5495         track whether the step preserves the misalignment.
5496         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
5497         Use vect_dr_behavior.
5498         (vect_setup_realignment): Update call accordingly.
5499         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
5500         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
5501         call to vect_create_addr_base_for_vector_ref.
5502         (vect_create_cond_for_align_checks): Likewise.
5503         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
5504         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
5505         (vect_recog_mask_conversion_pattern): Likewise.
5506         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
5507         (new_stmt_vec_info): Remove redundant zeroing.
5509 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
5511         * common/config/arm/arm-common.c (arm_be8_option): New function.
5512         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
5513         (ISA_ARMv6): Add isa_bit_be8.
5514         * config/arm/arm.h (arm_be8_option): Add prototype.
5515         (BE8_SPEC_FUNCTION): New define.
5516         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
5517         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
5518         (mlittle-endian): Similarly.
5519         (mbe8, mbe32): New options.
5520         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
5521         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
5523 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
5525         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
5527 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
5529         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
5530         (cleanup_tree_cfg_bb): Use it.
5531         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
5532         New functions.
5533         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
5535 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
5537         PR bootstrap/81285
5538         * loop-doloop.c (add_test): Update profile.
5540 2017-07-03  Martin Liska  <mliska@suse.cz>
5542         PR sanitize/81040
5543         * sanopt.c (rewrite_usage_of_param): New function.
5544         (sanitize_rewrite_addressable_params): Likewise.
5545         (pass_sanopt::execute): Call rewrite_usage_of_param.
5547 2017-07-03  Richard Biener  <rguenther@suse.de>
5549         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
5550         back to using VIEW_CONVERT_EXPR.
5552 2017-07-03  Martin Liska  <mliska@suse.cz>
5554         PR other/78366
5555         * doc/extend.texi: Document when a resolver function is
5556         generated for target_clones.
5558 2017-07-03  Martin Liska  <mliska@suse.cz>
5560         * asan.c (asan_emit_stack_protection): Unpoison just red zones
5561         and shadow memory of auto variables which are subject of
5562         use-after-scope sanitization.
5563         (asan_expand_mark_ifn): Add do set only when is_poison.
5565 2016-07-03  Richard Biener  <rguenther@suse.de>
5567         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
5568         reduction PHIs.
5569         (vect_force_simple_reduction): Record reduction def -> phi mapping.
5570         (vectorizable_reduction): Perform reduction PHI creation when
5571         visiting a reduction PHI and adjust and simplify code generation
5572         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
5573         (vect_transform_loop): Visit reduction PHIs.
5574         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
5575         defs into the SLP tree.
5576         (vect_build_slp_tree): Reduction defs terminate the recursion.
5577         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
5578         of reduction defs.
5579         (vect_get_vec_defs_for_stmt_copy): Export.
5580         (vect_get_vec_defs): Likewise.
5581         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
5582         purpose.
5583         (vect_get_vec_defs_for_stmt_copy): Declare.
5584         (vect_get_vec_defs): Likewise.
5586 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
5588         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
5589         parameter with a "loop" parameter and use it instead of the
5590         loop containing DR_STMT.  Don't check simple_iv when doing
5591         BB analysis.  Describe the two analysis modes in the comment.
5593 2017-07-03  Tom de Vries  <tom@codesourcery.com>
5595         PR tree-optimization/69468
5596         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
5597         (find_same_succ_bb): Handle ignore_edge_flags.
5599 2017-07-03  Tom de Vries  <tom@codesourcery.com>
5601         PR tree-optimization/81192
5602         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
5603         hash.
5604         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
5605         differs.
5606         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
5608 2017-07-03  Tom de Vries  <tom@codesourcery.com>
5610         PR tree-optimization/81192
5611         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
5612         BB_SAME_SUCC (bb) == NULL.
5614 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
5616         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
5617         consistency.
5619 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
5621         * dumpfile.c: Include profile-count.h
5622         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
5623         update profile.
5624         (insert_cond_bb): Update profile.
5625         * tree-cfg.h (insert_cond_bb): Update prototype.
5626         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
5627         * tree-dump.c: Do not include tree-cfg.
5629 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
5631         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
5633 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
5635         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
5636         bb.
5638 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
5640         * tree-complex.c (expand_complex_div_wide): update profile.
5642 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
5643             Alan Hayward  <alan.hayward@arm.com>
5644             David Sherwood  <david.sherwood@arm.com>
5646         * Makefile.in (MACHMODE_H): Remove insn-modes.h
5647         (CORETYPES_H): New define.
5648         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
5649         (insn-modes-inline.h, s-modes-inline-h): New rules.
5650         (generated_files): Add insn-modes-inline.h.
5651         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
5652         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
5653         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
5654         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
5655         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
5656         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
5657         (build/gencodes.o, build/genconditions.o): Likewise.
5658         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
5659         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
5660         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
5661         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
5662         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
5663         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
5664         * coretypes.h: Include everything up to real.h for generators.
5665         Include insn-modes.h first.  Include wide-int-print.h after
5666         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
5667         * machmode.h: Don't include insn-modes.h here.
5668         * function-tests.c: Remove includes of signop.h, machmode.h,
5669         double-int.h and wide-int.h.
5670         * rtl.h: Likewise.
5671         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
5672         and wide-int.h.
5673         * optc-save-gen.awk: Likewise.
5674         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
5675         * godump.c: Remove include of wide-int-print.h.
5676         * pretty-print.h: Likewise.
5677         * wide-int-print.cc: Likewise.
5678         * wide-int.cc: Likewise.
5679         * hash-map-tests.c: Remove include of signop.h.
5680         * hash-set-tests.c: Likewise.
5681         * rtl-tests.c: Likewise.
5682         * mkconfig.sh: Remove include of machmode.h.
5683         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
5684         into...
5685         (emit_insn_modes_inline_h): ...this new function.  Emit the code
5686         into an insn-modes-inline.h header file, adding appropriate
5687         include guards and end comments.
5688         (emit_insn_modes_c_header): Remove include of machmode.h.
5689         (emit_min_insn_modes_c_header): Include coretypes.h rather than
5690         machmode.h.
5691         (main): Handle -i flag and call emit_insn_modes_inline_h when
5692         it is passed.
5694 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
5696         * tree-ssa-strlen.c (strinfo): Rename the length field to
5697         nonzero_chars.  Add a full_string_p field.
5698         (compare_nonzero_chars, zero_length_string_p): New functions.
5699         (get_addr_stridx): Add an offset_out parameter.
5700         Use compare_nonzero_chars.
5701         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
5702         (new_strinfo): Update after above changes to strinfo.
5703         (set_endptr_and_length): Set full_string_p.
5704         (get_string_length): Update after above changes to strinfo.
5705         (unshare_strinfo): Update call to new_strinfo.
5706         (maybe_invalidate): Likewise.
5707         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
5708         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
5709         as a uhwi instead of an shwi.  Update after above changes to
5710         strinfo and new_strinfo.
5711         (zero_length_string): Assert that chainsi contains full strings.
5712         Use zero_length_string_p.  Update call to new_strinfo.
5713         (adjust_related_strinfos): Update after above changes to strinfo.
5714         Copy full_string_p from origsi.
5715         (adjust_last_stmt): Use zero_length_string_p.
5716         (handle_builtin_strlen): Update after above changes to strinfo and
5717         new_strinfo.  Install the lhs as the string length if the previous
5718         entry didn't describe a full string.
5719         (handle_builtin_strchr): Update after above changes to strinfo
5720         and new_strinfo.
5721         (handle_builtin_strcpy): Likewise.
5722         (handle_builtin_strcat): Likewise.
5723         (handle_builtin_malloc): Likewise.
5724         (handle_pointer_plus): Likewise.
5725         (handle_builtin_memcpy): Likewise.  Track nonzero characters
5726         that aren't necessarily followed by a nul terminator.
5727         (handle_char_store): Likewise.
5729 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
5731         PR tree-optimization/80769
5732         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
5733         for malloc and calloc.  Document the new invariant that all related
5734         strinfos have delayed lengths or none do.
5735         (verify_related_strinfos): Move earlier in file.
5736         (set_endptr_and_length): New function, split out from...
5737         (get_string_length): ...here.  Also set the lengths of related
5738         strinfos.
5739         (zero_length_string): Assert that chainsi has known (rather than
5740         delayed) lengths.
5741         (adjust_related_strinfos): Likewise.
5743 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
5745         PR tree-optimization/81136
5746         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
5747         assert that two references with the same misalignment have the same
5748         compile-time misalignment if those compile-time misalignments
5749         are known.
5751 2017-07-01  Andi Kleen  <ak@linux.intel.com>
5753         * print-tree.c (print_node): Print all attributes.
5755 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
5757         * cfg.c (scale_bbs_frequencies): New function.
5758         * cfg.h (scale_bbs_frequencies): Declare it.
5759         * cfgloopanal.c (single_likely_exit): Cleanup.
5760         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
5761         as parameter.
5762         (scale_loop_profile): Likewise.
5763         (loop_version): Likewise.
5764         (create_empty_loop_on_edge): Update.
5765         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
5766         scale_loop_frequencies, scale_loop_profile, loopify,
5767         loop_version): Update prototypes.
5768         * modulo-sched.c (sms_schedule): Update.
5769         * predict.c (unlikely_executed_edge_p): Also check probability.
5770         (probably_never_executed_edge_p): Fix typo.
5771         * tree-if-conv.c (version_loop_for_if_conversion): Update.
5772         * tree-parloops.c (gen_parallel_loop): Update.
5773         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
5774         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
5775         * tree-ssa-loop-split.c (split_loop): Update.
5776         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
5777         * tree-vect-loop-manip.c (vect_do_peeling): Update.
5778         (vect_loop_versioning): Update.
5779         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
5781 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
5783         * trans-mem.c (split_bb_make_tm_edge): Update profile.
5785 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
5787         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
5788         to keep profile consistent.
5790 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
5792         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
5793         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
5794         * profile-count.h (max_safe_multiplier): Make unsigned.
5795         (profile_count::guessed_zero): New.
5797 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
5799         * bb-reorder.c (fix_up_crossing_landing_pad,
5800         fix_crossing_conditional_branches): Use make_single_succ_edge
5801         to keep profile consistent.
5803 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
5805         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
5806         to update profile.
5808 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
5810         PR sanitizer/81262
5811         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
5812         the right scopes, make sure cond_jump isn't preserved between multiple
5813         iterations.  Search for fallthru edge whenever there are 3+ edges and
5814         use find_fallthru_edge for it.
5816 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
5818         Patch by Alexander Monakov <amonakov@ispras.ru>
5819         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
5820         probabilities consistently.
5822 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
5824         * pa.c (pa_expand_compare_and_swap_loop): Update call of
5825         emit_cmp_and_jump_insns.
5827 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
5829         PR ipa/81261
5830         * tree-inline.c (expand_call_inline): Combine profile statuses.
5832 2017-06-30  Andrew Pinski  <apinski@cavium.com>
5834         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
5835         fold_stmt returned true.
5837 2017-06-30  Nathan Sidwell  <nathan@acm.org>
5839         * ggc.h (empty_string): Delete.
5840         * cfgexpand.c (expand_asm_stmt): Use plain "".
5841         * optabs.c (expand_asm_memory_barrier): Likewise.
5842         * stringpool.c (empty_string): Delete.
5843         (digit_vector, digit_string): Delete.
5844         (ggc_alloc_string): Use plain "", don't optimize single digit
5845         strings.  Use ggc_alloc_atomic.
5847 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
5849         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
5850         comparison set and one other set, use the cost of the non-comparison
5851         set.
5853 2017-06-30  Nathan Sidwell  <nathan@acm.org>
5855         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
5856         some formatting.
5858 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
5860         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
5861         loops.  Remove now unneeded calls to gimple_switch_set_label() that
5862         just set removed labels to NULL_TREE.
5864 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
5866         * tree-ssanames.c (set_range_info_raw): Abstract from ...
5867         (set_range_info): ...here.  Only call set_range_info_raw if domain
5868         is useful.
5869         (set_nonzero_bits): Call set_range_info_raw.
5870         * tree-ssanames.h (set_range_info_raw): New.
5872 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
5874         PR target/81225
5875         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
5876         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
5877         of nonimmediate_operand and <store_mask_constraint> instead of m
5878         for the input operand.  For V8FI iterator, always split if input
5879         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
5880         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
5881         <store_mask_predicate> instead of register_operand and
5882         <store_mask_constraint> instead of v for the input operand.  Make
5883         sure both operands aren't MEMs for if not <mask_applied>.
5885 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
5887         * lto-wrapper.c (copy_file) Close both file descriptors before
5888         exiting normally.
5890 2017-06-30  Martin Liska  <mliska@suse.cz>
5892         PR ipa/81214
5893         * multiple_target.c (create_dispatcher_calls): Make ifunc
5894         also for function that don't have calls or are not referenced.
5896 2017-06-30  Richard Biener  <rguenther@suse.de>
5898         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
5899         analyze the first scalar stmt.  Move vector type computation
5900         for the BB case here from ...
5901         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
5902         live operation processing in the SLP case properly.
5904 2017-06-30  Richard Biener  <rguenther@suse.de>
5906         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
5908 2017-06-30  Martin Liska  <mliska@suse.cz>
5910         PR sanitizer/81021
5911         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
5912         before BUILT_IN_UNWIND_RESUME when ASAN is used.
5914 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
5916         * doc/invoke.texi (AArch64): Add missing options and remove redundant
5917         ones.
5919 2017-06-30  Richard Biener  <rguenther@suse.de>
5921         PR tree-optimization/81249
5922         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
5923         condition reduction result to original scalar type.
5925 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5927         * profile-count.h (enum profile_quality): Fix typos and whitespace
5928         issues.
5930 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5932         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
5933         type for branch probabilities.
5935 2017-06-29  Julian Brown  <julian@codesourcery.com>
5936             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
5938         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
5939         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
5940         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
5941         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
5943 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
5945         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
5946         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
5947         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
5948         CC usage from generic code to here.
5949         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
5950         CC usage into the target macros.
5952 2017-06-29  Maya Rashish  <coypu@sdf.org>
5954         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
5955         objects.
5957 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
5959         * arm/arm-builtins.c: Include profile-count.h
5960         * except.c (sjlj_emit_function_enter): Use
5961         profile_probability::unlikely.
5963 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5965         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
5966         and tocrel_offset be pointer args rather than implicitly using
5967         static versions.
5968         (legitimate_constant_pool_address_p, rs6000_emit_move,
5969         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
5970         tocrel_offset and use in toc_relative_expr_p call.
5971         (print_operand, print_operand_address): Use static tocrel_base_oac
5972         and tocrel_offset_oac.
5973         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
5974         tocrel_offset_oac.
5976 2017-06-29  Maya Rashish  <coypu@sdf.org>
5978         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
5980 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
5982         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
5983         objects, take into account only the alignment of 'op0' and 'mode1' if
5984         'op0' is a MEM.
5986 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
5988         * ccmp.c (ccmp_tree_comparison_p): New function.
5989         (ccmp_candidate_p): Update to use above function.
5990         (get_compare_parts): New function.
5991         (expand_ccmp_next): Update to use new functions.
5992         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
5993         new functions.
5994         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
5995         take mode as argument.
5996         * ccmp.h (expand_ccmp_expr): Add mode as argument.
5997         * expr.c (expand_expr_real_1): Pass mode as argument.
5999 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
6001         * combine.c (combine_instructions): Print insns to dump_file, together
6002         with their costs.
6004 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
6006         * asan.c (asan_emit_stack_protection): Update.
6007         (create_cond_insert_point): Update.
6008         * auto-profile.c (afdo_propagate_circuit): Update.
6009         * basic-block.h (struct edge_def): Turn probability to
6010         profile_probability.
6011         (EDGE_FREQUENCY): Update.
6012         * bb-reorder.c (find_traces_1_round): Update.
6013         (better_edge_p): Update.
6014         (sanitize_hot_paths): Update.
6015         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
6016         (make_single_succ_edge): Update.
6017         (check_bb_profile): Update.
6018         (dump_edge_info): Update.
6019         (update_bb_profile_for_threading): Update.
6020         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
6021         probabilitycount to 0.
6022         * cfgbuild.c (compute_outgoing_frequencies): Update.
6023         * cfgcleanup.c (try_forward_edges): Update.
6024         (outgoing_edges_match): Update.
6025         (try_crossjump_to_edge): Update.
6026         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
6027         (expand_gimple_tailcall): Update.
6028         (construct_init_block): Use make_single_succ_edge.
6029         (construct_exit_block): Use make_single_succ_edge.
6030         * cfghooks.c (verify_flow_info): Update.
6031         (redirect_edge_succ_nodup): Update.
6032         (split_edge): Update.
6033         (account_profile_record): Update.
6034         * cfgloopanal.c (single_likely_exit): Update.
6035         * cfgloopmanip.c (scale_loop_profile): Update.
6036         (set_zero_probability): Remove.
6037         (duplicate_loop_to_header_edge): Update.
6038         * cfgloopmanip.h (loop_version): Update prototype.
6039         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
6040         (force_nonfallthru_and_redirect): Update.
6041         (update_br_prob_note): Update.
6042         (rtl_verify_edges): Update.
6043         (purge_dead_edges): Update.
6044         (rtl_lv_add_condition_to_bb): Update.
6045         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
6046         * cgraphunit.c (init_lowered_empty_function): Update.
6047         (cgraph_node::expand_thunk): Update.
6048         * cilk-common.c: Include profile-count.h
6049         * dojump.c (inv): Remove.
6050         (jumpifnot): Update.
6051         (jumpifnot_1): Update.
6052         (do_jump_1): Update.
6053         (do_jump): Update.
6054         (do_jump_by_parts_greater_rtx): Update.
6055         (do_compare_rtx_and_jump): Update.
6056         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
6057         do_jump_1. do_compare_rtx_and_jump): Update prototype.
6058         * dwarf2cfi.c: Include profile-count.h
6059         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
6060         (sjlj_emit_dispatch_table): Likewise.
6061         * explow.c: Include profile-count.h
6062         * expmed.c (emit_store_flag_force): Update.
6063         (do_cmp_and_jump): Update.
6064         * expr.c (compare_by_pieces_d::generate): Update.
6065         (compare_by_pieces_d::finish_mode): Update.
6066         (emit_block_move_via_loop): Update.
6067         (store_expr_with_bounds): Update.
6068         (store_constructor): Update.
6069         (expand_expr_real_2): Update.
6070         (expand_expr_real_1): Update.
6071         * expr.h (try_casesi, try_tablejump): Update prototypes.
6072         * gimple-pretty-print.c (dump_probability): Update.
6073         (dump_profile): New.
6074         (dump_gimple_label): Update.
6075         (dump_gimple_bb_header): Update.
6076         * graph.c (draw_cfg_node_succ_edges): Update.
6077         * hsa-gen.c (convert_switch_statements): Update.
6078         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
6079         (find_if_case_1): Update.
6080         (find_if_case_2): Update.
6081         * internal-fn.c (expand_arith_overflow_result_store): Update.
6082         (expand_addsub_overflow): Update.
6083         (expand_neg_overflow): Update.
6084         (expand_mul_overflow): Update.
6085         (expand_vector_ubsan_overflow): Update.
6086         * ipa-cp.c (good_cloning_opportunity_p): Update.
6087         * ipa-split.c (split_function): Use make_single_succ_edge.
6088         * ipa-utils.c (ipa_merge_profiles): Update.
6089         * loop-doloop.c (add_test): Update.
6090         (doloop_modify): Update.
6091         * loop-unroll.c (compare_and_jump_seq): Update.
6092         (unroll_loop_runtime_iterations): Update.
6093         * lra-constraints.c (lra_inheritance): Update.
6094         * lto-streamer-in.c (input_cfg): Update.
6095         * lto-streamer-out.c (output_cfg): Update.
6096         * mcf.c (adjust_cfg_counts): Update.
6097         * modulo-sched.c (sms_schedule): Update.
6098         * omp-expand.c (expand_omp_for_init_counts): Update.
6099         (extract_omp_for_update_vars): Update.
6100         (expand_omp_ordered_sink): Update.
6101         (expand_omp_for_ordered_loops): Update.
6102         (expand_omp_for_generic): Update.
6103         (expand_omp_for_static_nochunk): Update.
6104         (expand_omp_for_static_chunk): Update.
6105         (expand_cilk_for): Update.
6106         (expand_omp_simd): Update.
6107         (expand_omp_taskloop_for_outer): Update.
6108         (expand_omp_taskloop_for_inner): Update.
6109         * omp-simd-clone.c (simd_clone_adjust): Update.
6110         * optabs.c (expand_doubleword_shift): Update.
6111         (expand_abs): Update.
6112         (emit_cmp_and_jump_insn_1): Update.
6113         (expand_compare_and_swap_loop): Update.
6114         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
6115         * predict.c (predictable_edge_p): Update.
6116         (edge_probability_reliable_p): Update.
6117         (set_even_probabilities): Update.
6118         (combine_predictions_for_insn): Update.
6119         (combine_predictions_for_bb): Update.
6120         (propagate_freq): Update.
6121         (estimate_bb_frequencies): Update.
6122         (force_edge_cold): Update.
6123         * profile-count.c (profile_count::dump): Add missing space into dump.
6124         (profile_count::debug): Add newline.
6125         (profile_count::differs_from_p): Explicitly convert to unsigned.
6126         (profile_count::stream_in): Update.
6127         (profile_probability::dump): New member function.
6128         (profile_probability::debug): New member function.
6129         (profile_probability::differs_from_p): New member function.
6130         (profile_probability::differs_lot_from_p): New member function.
6131         (profile_probability::stream_in): New member function.
6132         (profile_probability::stream_out): New member function.
6133         * profile-count.h (profile_count_quality): Rename to ...
6134         (profile_quality): ... this one.
6135         (profile_probability): New.
6136         (profile_count): Update.
6137         * profile.c (compute_branch_probabilities): Update.
6138         * recog.c (peep2_attempt): Update.
6139         * sched-ebb.c (schedule_ebbs): Update.
6140         * sched-rgn.c (find_single_block_region): Update.
6141         (compute_dom_prob_ps): Update.
6142         (schedule_region): Update.
6143         * sel-sched-ir.c (compute_succs_info): Update.
6144         * stmt.c (struct case_node): Update.
6145         (do_jump_if_equal): Update.
6146         (get_outgoing_edge_probs): Update.
6147         (conditional_probability): Update.
6148         (emit_case_dispatch_table): Update.
6149         (expand_case): Update.
6150         (expand_sjlj_dispatch_table): Update.
6151         (emit_case_nodes): Update.
6152         * targhooks.c: Update.
6153         * tracer.c (better_p): Update.
6154         (find_best_successor): Update.
6155         * trans-mem.c (expand_transaction): Update.
6156         * tree-call-cdce.c: Update.
6157         * tree-cfg.c (gimple_split_edge): Upate.
6158         (move_sese_region_to_fn): Upate.
6159         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
6160         * tree-eh.c (lower_resx): Upate.
6161         (cleanup_empty_eh_move_lp): Upate.
6162         * tree-if-conv.c (version_loop_for_if_conversion): Update.
6163         * tree-inline.c (copy_edges_for_bb): Update.
6164         (copy_cfg_body): Update.
6165         * tree-parloops.c (gen_parallel_loop): Update.
6166         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
6167         (gimple_gen_time_profiler): Update.
6168         * tree-ssa-dce.c (remove_dead_stmt): Update.
6169         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
6170         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
6171         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
6172         (unloop_loops): Update.
6173         (try_peel_loop): Update.
6174         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
6175         * tree-ssa-loop-split.c (connect_loops): Update.
6176         (split_loop): Update.
6177         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
6178         (hoist_guard): Update.
6179         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
6180         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
6181         (value_replacement): Update.
6182         * tree-ssa-reassoc.c (branch_fixup): Update.
6183         * tree-ssa-tail-merge.c (replace_block_by): Update.
6184         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
6185         (create_edge_and_update_destination_phis): Update.
6186         (compute_path_counts): Update.
6187         (recompute_probabilities): Update.
6188         (update_joiner_offpath_counts): Update.
6189         (freqs_to_counts_path): Update.
6190         (duplicate_thread_path): Update.
6191         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
6192         (struct switch_conv_info): Update.
6193         (gen_inbound_check): Update.
6194         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
6195         (vect_do_peeling): Update.
6196         (vect_loop_versioning): Update.
6197         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
6198         (optimize_mask_stores): Update.
6199         * ubsan.c (ubsan_expand_null_ifn): Update.
6200         * value-prof.c (gimple_divmod_fixed_value): Update.
6201         (gimple_divmod_fixed_value_transform): Update.
6202         (gimple_mod_pow2): Update.
6203         (gimple_mod_pow2_value_transform): Update.
6204         (gimple_mod_subtract): Update.
6205         (gimple_mod_subtract_transform): Update.
6206         (gimple_ic): Update.
6207         (gimple_stringop_fixed_value): Update.
6208         (gimple_stringops_transform): Update.
6209         * value-prof.h: Update.
6211 2017-06-29  Carl Love  <cel@us.ibm.com>
6213         * config/rs6000/rs6000-c.c: Add support for built-in functions
6214         vector signed int vec_signed (vector float);
6215         vector signed long long vec_signed (vector double);
6216         vector signed int vec_signed2 (vector double, vector double);
6217         vector signed int vec_signede (vector double);
6218         vector signed int vec_signedo (vector double);
6219         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
6220         instruction generator.
6221         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
6222         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
6223         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
6224         Add define_insn.
6225         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
6226         vunsignede_v2df): Add define_expands.
6227         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
6228         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
6229         VEC_UNSIGNEDO): Add definitions.
6230         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
6231         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
6232         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
6233         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
6234         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
6235         * config/rs6000/altivec.h (vec_signed, vec_signed2,
6236         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
6237         vec_unsignede, vec_unsignedo): Add builtin defines.
6238         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
6239         declaration.
6240         * doc/extend.texi: Update the built-in documentation file for the
6241         new built-in functions.
6243 2017-06-29  Richard Biener  <rguenther@suse.de>
6245         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
6246         reduction chains to LOOP_VINFO_REDUCTIONS.
6247         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
6248         SLP reductions after processing reduction chains.
6250 2017-06-29  Nathan Sidwell  <nathan@acm.org>
6252         * builtins.c (fold_builtin_FUNCTION): Use
6253         lang_hooks.decl_printable_name.
6255 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
6257         PR middle-end/81194
6258         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
6259         with only one label.
6260         * stmt.c (expand_case): Assert NCASES is greater than one.
6262 2017-06-29  Richard Biener  <rguenther@suse.de>
6264         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
6265         anything.
6266         (group_case_labels): Likewise.
6267         (find_taken_edge): Push sanity checking on val to workers...
6268         (find_taken_edge_cond_expr): ... here
6269         (find_taken_edge_switch_expr): ... and here, handle cases
6270         with just a default label.
6271         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
6272         (group_case_labels): Likewise.
6273         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
6274         group_case_labels does anything cleanup the CFG again.
6276 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
6278         PR tree-optimization/81196
6279         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
6280         exit condition comparing two IVs.
6282 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
6284         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
6285         profile to the dummy entry at the end of the list of architectures.
6286         * config/arm/arm-cpu-cdata.h: Regenerated.
6288 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6289             Michael Collison <michael.collison@arm.com>
6291         PR target/70119
6292         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
6293         New pattern.
6294         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
6295         (*aarch64_reg_<mode>3_minus_mask): New pattern.
6296         (*aarch64_<optab>_reg_di3_mask2): New pattern.
6297         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
6298         of shift when the shift amount is masked with constant equal to
6299         the size of the mode.
6300         * config/aarch64/predicates.md (subreg_lowpart_operator): New
6301         predicate.
6303 2017-06-29  Martin Liska  <mliska@suse.cz>
6305         * config/i386/i386.opt: Change range from [1,5] to [0,5].
6307 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
6309         PR bootstrap/80565
6310         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
6311         code.
6312         * ipa-inline.h
6313         (edge_growth_cache_entry::edge_growth_cache_entry): New
6314         function.
6315         (reset_edge_growth_cache): Update to use constructor.
6317 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6319         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
6320         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
6321         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
6323 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
6325         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
6326         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
6328 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
6330         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
6331         (*-linux-uclibc*): Add t-uclibc tmake_file.
6332         * config/t-musl: New.
6333         * config/t-uclibc: New.
6335 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
6337         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
6338         context.
6339         (gen_comm_data): Emit architectural setting of arch_prof.
6340         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
6341         profile.
6342         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
6343         (armv8-m.base, armv8-m.main): Likewise.
6344         * arm-protos.h (arm_build_target): Add profile field.
6345         (arch_option): Likewise.
6346         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
6347         the active target.
6348         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
6349         arm_active_target.profile.
6351 2017-06-28  Richard Biener  <rguenther@suse.de>
6353         PR middle-end/81227
6354         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
6355         TYPE_OVERFLOW_WRAPS.
6356         * match.pd (negate_expr_p): Likewise.
6357         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
6358         fold_build2, not fold_binary.
6360 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
6362         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
6363         Convert memory address to Pmode.
6364         (aarch64_print_operand): Assert MEM operands are always Pmode.
6366 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
6368         PR target/79665
6369         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
6370         Remove redundant if.
6371         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
6372         * config/arm/aarch-common-protos.h
6373         (aarch_forward_to_shift_is_not_shifted_re): Remove.
6374         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
6376 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
6378         PR ipa/81238
6379         * multiple_target.c (create_dispatcher_calls): Set the default
6380         clone to be static, not public.
6382 2017-06-28  Richard Biener  <rguenther@suse.de>
6384         * tree-vect-loop.c (vectorizable_reduction): Move special
6385         cond reduction IV var creation ...
6386         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
6387         parameter.  Use STMT_VINFO_VECTYPE.
6388         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
6389         constant_p.
6391 2017-06-28  Martin Liska  <mliska@suse.cz>
6393         PR ipa/81128
6394         * ipa-visibility.c (non_local_p): Handle visibility.
6396 2017-06-28  Martin Liska  <mliska@suse.cz>
6398         PR driver/79659
6399         * common.opt: Add IntegerRange to various options.
6400         * opt-functions.awk (integer_range_info): New function.
6401         * optc-gen.awk: Add integer_range_info to cl_options struct.
6402         * opts-common.c (decode_cmdline_option): Handle
6403         CL_ERR_INT_RANGE_ARG.
6404         (cmdline_handle_error): Likewise.
6405         * opts.c (print_filtered_help): Show valid interval in
6406         when --help is provided.
6407         * opts.h (struct cl_option): Add range_min and range_max fields.
6408         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
6410 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
6412         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
6413         (x * C EQ/NE y * C): New transformation.
6415 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
6417         * genmultilib (combination_space): Accept '+' in option names.
6419 2017-06-28  Martin Liska  <mliska@suse.cz>
6421         PR sanitizer/81224
6422         * asan.c (instrument_derefs): Bail out inner references
6423         that are hard register variables.
6425 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
6427         PR target/81175
6428         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
6429         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
6431 2017-06-28  Richard Biener  <rguenther@suse.de>
6433         * tree-vectorizer.h (vect_get_vec_defs): Remove.
6434         (vect_get_slp_defs): Adjust.
6435         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
6436         out from ...
6437         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
6438         simplify.
6439         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
6440         get_initial_defs_for_reduction instead of vect_get_vec_defs.
6441         (vectorizable_reduction): Adjust.
6442         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
6443         handling.
6444         (vect_get_slp_defs): Likewise.
6445         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
6446         (vectorizable_bswap): Adjust.
6447         (vectorizable_call): Likewise.
6448         (vectorizable_conversion): Likewise.
6449         (vectorizable_assignment): Likewise.
6450         (vectorizable_shift): Likewise.
6451         (vectorizable_operation): Likewise.
6452         (vectorizable_store): Likewise.
6453         (vectorizable_condition): Likewise.
6454         (vectorizable_comparison): Likewise.
6456 2017-06-28  Michael Collison  <michael.collison@arm.com>
6458         PR target/68535
6459         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
6460         set of base_reg
6461         (arm_gen_movmemqi): Removed unused variable 'i'.
6462         Convert 'for' loop into 'while' loop.
6463         (arm_expand_prologue): Remove last unnecessary set of insn.
6464         (thumb_pop): Remove unused variable 'pushed_words'.
6465         (thumb_exit): Remove last unnecessary set of regs_to_pop.
6467 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6469         * config/s390/predicates.md: Use s390_rel_address_ok_p.
6470         * config/s390/s390-protos.h: Add prototype of
6471         s390_rel_address_ok_p.
6472         * config/s390/s390.c (s390_got_symbol): New function.
6473         (s390_rel_address_ok_p): New function.
6474         (legitimize_pic_address): Use s390_rel_address_ok_p.
6475         (s390_load_got): Use s390_got_symbol.
6476         (s390_option_override): Issue error if
6477         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
6478         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
6479         New macro.
6480         * config/s390/s390.opt: New option mpic-data-is-text-relative.
6482 2017-06-27  Andrew Pinski  <apinski@cavium.com>
6484         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
6485         (X * copysign (1.0, X)): New pattern.
6486         (X * copysign (1.0, -X)): New pattern.
6487         (copysign (-1.0, CST)): New pattern.
6489 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
6491         * genmultilib (combination_space): Remove variable.
6492         Validate reuse rules against regular expression for any sequence
6493         of multilib options in any order.
6495 2017-06-27  Michael Collison  <michael.collison@arm.com>
6497         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
6498         call aarch64_split_simd_combine.
6499         * (aarch64_combine_internal<mode>): Delete pattern.
6500         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
6501         Allow register and subreg operands.
6503 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
6505         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
6506         specific need, just fallback on defaults.
6507         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
6509 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
6510             Olivier Hainque  <hainque@adacore.com>
6512         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
6513         map for 64bits.
6514         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
6515         targets. Pick a default if no particular attempt applied.
6516         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
6517         larger contexts.
6519 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
6521         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
6522         (x86_64-wrs-vxworks7): Likewise.
6524 2017-06-27  Marek Polacek  <polacek@redhat.com>
6526         PR sanitizer/81223
6527         * ubsan.c (instrument_null): Check get_base_address's result for null.
6529 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
6531         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
6533 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
6535         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
6536         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
6537         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
6538         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
6539         New function types.
6540         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
6541         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
6542         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
6543         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
6544         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
6545         BUILT_IN_FEUPDATEENV): New builtins.
6546         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
6547         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
6548         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
6549         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
6550         macros.
6551         (builtin_structptr_types): Adjust size.
6552         * tree.c (builtin_structptr_types): Add four entries.
6554 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
6555             Olivier Hainque  <hainque@adacore.com>
6557         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
6558         (TLS_SYM): New local macro, forcing reference to __tls__ on
6559         link command lines for VxWorks 7 RTPs, triggering initialization
6560         of tlsLib.
6561         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
6562         OS features TLS support, true for RTPs on VxWorks 7.
6563         * config/vxworks.c (vxworks_override_options): Setup emutls
6564         accordingly.
6566 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
6568         * predict.c (test_prediction_value_range): Use -1U instead of -1
6569         to avoid narrowing conversion warning.
6570         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
6571         to avoid narrowing conversion warning.
6572         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
6573         -1.
6574         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
6576 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
6578         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
6579         64bit configurations.
6580         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
6581         (SIZE_TYPE): Likewise.
6582         * config/vxworks.c (vxworks_emutls_var_fields): Use
6583         long_unsigned_type_node instead of unsigned_type_node as the offset
6584         field type, which is "pointer" mode in emutls.c.
6586 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
6588         PR sanitizer/81209
6589         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
6591         PR middle-end/81207
6592         * gimple-fold.c (replace_call_with_call_and_fold): Handle
6593         gimple_vuse copying separately from gimple_vdef copying.
6595 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6597         * value-prof.c (free_hist): Remove call to memset and the enclosing if
6598         condition.
6600 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
6601             Olivier Hainque  <hainque@adacore.com>
6603         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
6604         for all vxworks7 targets.
6605         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
6606         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
6607         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
6608         variations for VX6/VX7 and 32/64bits later on in ...
6609         (VXWORKS_LIB_SPEC): Leverage new macros.
6610         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
6611         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
6613 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
6615         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
6616         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
6618 2017-06-26  Carl Love  <cel@us.ibm.com>
6620         * config/rs6000/rs6000-c.c: Add support for built-in functions
6621         vector bool char vec_reve (vector bool char);
6622         vector signed char vec_reve (vector signed char);
6623         vector unsigned char vec_reve (vector unsigned char);
6624         vector bool int vec_reve (vector bool int);
6625         vector signed int vec_reve (vector signed int);
6626         vector unsigned int vec_reve (vector unsigned int);
6627         vector bool long long vec_reve (vector bool long long);
6628         vector signed long long vec_reve (vector signed long long);
6629         vector unsigned long long vec_reve (vector unsigned long long);
6630         vector bool short vec_reve (vector bool short);
6631         vector signed short vec_reve (vector signed short);
6632         vector double vec_reve (vector double);
6633         vector float vec_reve (vector float);
6634         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
6635         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
6636         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
6637         (altivec_vreve): New pattern.
6638         * config/rs6000/altivec.h (vec_reve): New define.
6639         * doc/extend.texi (vec_rev): Update the built-in documentation file
6640         for the new built-in functions.
6642 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6644         PR tree-optimization/71815
6645         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
6646         function.
6647         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
6648         has_single_use.
6649         (slsr_process_phi): Likewise.
6650         (replace_uncond_cands_and_profitable_phis): Don't replace a
6651         multiply candidate with a stride of 1 (copy or cast).
6652         (phi_incr_cost): Call uses_consumed_by_stmt rather than
6653         has_single_use.
6654         (lowest_cost_path): Likewise.
6655         (total_savings): Likewise.
6657 2017-06-26  Richard Biener  <rguenther@suse.de>
6659         PR target/81175
6660         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
6661         Use def_builtin_pure for all gather builtins.
6663 2017-06-26  Richard Biener  <rguenther@suse.de>
6665         PR tree-optimization/81203
6666         * tree-tailcall.c (find_tail_calls): Do not move stmts into
6667         non-dominating BBs.
6669 2017-06-26  Marek Polacek  <polacek@redhat.com>
6671         PR c/80116
6672         * doc/invoke.texi: Document -Wmultistatement-macros.
6674 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
6676         * doc/sourcebuild.texi (ARM-specific attributes): Document new
6677         arm_neon_ok_no_float_abi effective target.
6679 2017-06-26  Richard Biener  <rguenther@suse.de>
6681         PR tree-optimization/80928
6682         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
6683         (copy_bbs): Set BB_DUPLICATED flag early.
6684         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
6685         marked blocks.
6686         (execute_on_shrinking_pred): Likewise.
6687         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
6688         BB_DUPLICATED blocks.
6689         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
6690         iterate over all PHIs considering removal of *gsi.
6692 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
6694         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
6695         qdf24xx.
6697 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6699         * config/rs6000/rs6000-string.c: (expand_block_clear,
6700         do_load_for_compare, select_block_compare_mode,
6701         compute_current_alignment, expand_block_compare,
6702         expand_strncmp_align_check, expand_strn_compare,
6703         expand_block_move, rs6000_output_load_multiple)
6704         Move functions related to string/block move/compare
6705         to a separate file.
6706         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
6707         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
6708         for this function which is now used in two files.
6709         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
6710         * config.gcc: Add rs6000-string.o to extra_objs for
6711         targets powerpc*-*-* and rs6000*-*-*.
6713 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
6715         PR target/80510
6716         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
6717         32-bit, since indexed is not valid for DImode.
6718         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
6719         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
6720         (define_peephole2 for Altivec d-form load): Add 32-bit support.
6721         (define_peephole2 for Altivec d-form store): Likewise.
6723         PR ipa/81185
6724         * multiple_target.c (create_dispatcher_calls): Only create the
6725         dispatcher call if the function is the default clone of a
6726         versioned function.
6728 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
6730         PR middle-end/80902
6731         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
6732         a call, force the call to not be a tail call.
6734 2017-06-23  Jeff Law  <law@redhat.com>
6736         * doc/contrib.texi: Add entry for Steven Pemberton's work on
6737         enquire.
6739 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
6741         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
6742         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
6743         handling for early expansion of vector shifts (sl,sr,sra,rl).
6744         (builtin_function_type): Add vector shift right instructions
6745         to the unsigned argument list.
6747 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6749         rtl-optimizatoin/79286
6750         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
6751         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
6752         trap.  PIC register plus a const unspec without offset can never trap.
6754 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
6756         * tree.h (builtin_structptr_type): New type.
6757         (builtin_structptr_types): Declare new array.
6758         * tree.c (builtin_structptr_types): New array.
6759         (free_lang_data, build_common_tree_nodes): Use it.
6761 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
6763         PR c++/81187
6764         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
6765         -Wnoexcept.
6767 2017-06-22  Matt Turner  <mattst88@gmail.com>
6769         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
6770         Lake models to skylake case.  Assume skylake for unknown
6771         models with clflushopt.
6773 2017-06-22  Jeff Law  <law@redhat.com>
6775         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
6776         frame sizes that do not satisfy aarch64_uimm12_shift.
6778 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
6780         * profile-count.h (apply_probability,
6781         apply_scale, probability_in): Fix checks for zero.
6783 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6785         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
6786         * doc/cppdiropts.texi (-I @var{dir}): Document it.
6788 2016-06-22  Richard Biener  <rguenther@suse.de>
6790         * tree-vect-loop.c (vect_model_reduction_cost): Handle
6791         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
6792         REDUC_MAX_EXPR support.
6793         (vectorizable_reduction): Likewise.
6794         (vect_create_epilog_for_reduction): Likewise.
6796 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
6798         * match.pd (A / (1 << B) -> A >> B): New.
6799         * generic-match-head.c: Include optabs-tree.h.
6800         * gimple-match-head.c: Likewise.
6801         * optabs-tree.h (target_supports_op_p): New.
6802         * optabs-tree.c (target_supports_op_p): New.
6804 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6806         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
6807         $gcc_cv_ld --help output.
6808         (gcc_cv_ld_demangle): Likewise.
6809         (gcc_cv_ld_eh_frame_hdr): Likewise.
6810         (gcc_cv_ld_pie): Likewise.
6811         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
6812         (gcc_cv_ld_buildid): Likewise.
6813         (gcc_cv_ld_sysroot): Likewise.
6814         (ld_bndplt_support): Likewise.
6815         (ld_pushpopstate_support): Likewise.
6816         * configure: Regenerate.
6817         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
6819 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
6821         PR target/81151
6822         * config/i386/sse.md (round<mode>2): Renumber match_dup and
6823         operands indexes to avoid gap between operands and match_dups.
6825 2017-06-21  Andrew Pinski  <apinski@cavium.com>
6827         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
6828         Increment Arith_shift and Arith_shift_reg by 1.
6829         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
6830         New tuning flag.
6831         * config/aarch64/aarch64.c (thunderx_tunings): Enable
6832         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
6833         (aarch64_strip_extend): Add new argument and test for it.
6834         (aarch64_cheap_mult_shift_p): New function.
6835         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
6836         add a cost if it is true.
6837         Update calls to aarch64_strip_extend.
6838         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
6840 2017-06-21  Andrew Pinski  <apinski@cavium.com>
6842         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
6843         tunings.
6844         (thunderxt88): Likewise.
6845         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
6846         (thunderx_prefetch_tune): New variable.
6847         (thunderx2t99_prefetch_tune): Update for the correct values.
6848         (thunderxt88_tunings): New variable.
6849         (thunderx_tunings): Use thunderx_prefetch_tune instead of
6850         generic_prefetch_tune.
6851         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
6853 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6855         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
6856         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
6857         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
6858         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
6859         (aarch64_atomic_cas<mode>, GPI): Likewise.
6861 2017-06-21  Martin Liska  <mliska@suse.cz>
6863         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
6864         statements on cold and hot labels.
6865         * predict.c (tree_estimate_probability_bb): Remove the
6866         prediction from this place.
6868 2017-06-21  Martin Liska  <mliska@suse.cz>
6870         PR tree-optimization/79489
6871         * gimplify.c (maybe_add_early_return_predict_stmt): New
6872         function.
6873         (gimplify_return_expr): Call the function.
6874         * predict.c (tree_estimate_probability_bb): Remove handling
6875         of early return.
6876         * predict.def: Update comment about early return predictor.
6877         * gimple-predict.h (is_gimple_predict): New function.
6878         * predict.def: Change default value of early return to 66.
6879         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
6880         statements.
6881         * passes.def: Put pass_strip_predict_hints to the beginning of
6882         IPA passes.
6884 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
6886         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
6887         FUNCTION_DECL declarations.
6888         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
6889         declarations.
6890         (dwaf2out_decl): Likewise.
6891         * godump.c (go_early_global_decl): Skip call to the real debug hook
6892         for FUNCTION_DECL declarations.
6893         * passes.c (rest_of_decl_compilation): Skip call to the
6894         early_global_decl debug hook for FUNCTION_DECL declarations, unless
6895         -fdump-go-spec is passed.
6897 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
6899         * config/i386/i386.c (struct builtin_isa): New field pure_p.
6900         Reorder for compactness.
6901         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
6902         (def_builtin_pure, def_builtin_pure2): New functions.
6903         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
6905 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
6907         * match.pd (nop_convert): New predicate.
6908         ((A +- CST1) +- CST2): Allow some NOP conversions.
6910 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
6912         PR c++/81130
6913         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
6914         with ctors/dtors if GOVD_SHARED is set.
6916 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
6918         * config/aarch64/aarch64.md (movti_aarch64):
6919         Emit mov rather than orr.
6920         (movtf_aarch64): Likewise.
6921         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
6922         Emit mov rather than orr.
6924 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
6926         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
6927         Swap alternatives, make integer dup more expensive.
6929 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
6931         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
6932         Return true for non-tls symbols.
6934 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
6936         * config/aarch64/aarch64-cores.def (cortex-a55): New.
6937         (cortex-a75): Likewise.
6938         (cortex-a75.cortex-a55): Likewise.
6939         * config/aarch64/aarch64-tune.md: Regenerate.
6940         * doc/invoke.texi (-mtune): Document new values for -mtune.
6942 2017-06-21  Tom de Vries  <tom@codesourcery.com>
6944         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
6945         stack_size feature.
6946         (Effective-Target Keywords, Other attributes): Suggest using
6947         dg-add-options stack_size feature to get stack limit in stack_size
6948         effective target documentation.
6950 2017-06-21  Julian Brown  <julian@codesourcery.com>
6951             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
6953         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
6954         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
6955         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
6956         reservation.
6957         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
6958         attribute type list for neon_multiply.
6959         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
6960         attribute type list for neon_multiply.
6961         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
6962         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
6963         attribute type list for neon_multiply.
6964         * config/arm/types.md (crypto_pmull): Add.
6965         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
6966         attribute type list.
6968 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
6970         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
6971         arm1176jzf-s.
6973 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
6975         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
6976         to make sure not to dereference a NULL cost_classes_ptr pointer.
6978 2017-06-20  Carl Love  <cel@us.ibm.com>
6980         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6981         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
6982         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
6983         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
6984         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
6985         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
6986         VMULOSW): New enum "unspec" values.
6987         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
6988         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
6989         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
6990         altivec_vmulosw): New patterns.
6991         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
6992         VMULOSW): Add definitions.
6994 2017-06-20  Julia Koval  <julia.koval@intel.com>
6996         * config/i386/i386.c: Fix rounding expand for new pattern.
6997         * config/i386/subst.md: Fix pattern (parallel -> unspec).
6999 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
7001         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
7002         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
7004 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
7006         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
7007         feature string.
7009 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
7011         * config/aarch64/aarch64-cores.def: Rearrange to sort by
7012         architecture, then by implementer ID.
7013         * config/aarch64/aarch64-tune.md: Regenerate.
7015 2017-06-20  Richard Biener  <rguenther@suse.de>
7017         PR middle-end/81097
7018         * fold-const.c (split_tree): Fold to type before negating.
7020 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
7022         * diagnostic-show-locus.c
7023         (selftest::test_fixit_deletion_affecting_newline): New function.
7024         (selftest::diagnostic_show_locus_c_tests): Call it.
7026 2017-06-20  Andreas Schwab  <schwab@suse.de>
7028         PR target/80970
7029         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
7030         instead of "+d".
7032 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
7034         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
7035         __ARM_FEATURE_COPROC according to support.
7037 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
7039         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
7040         Rewritten to avoid overflow for > 32-bit pointers.
7042         PR sanitizer/81125
7043         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
7044         by removing enum keyword.
7045         (ubsan_type_descriptor): Likewise.  Formatting fix.
7047         PR target/81121
7048         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
7049         splitter): Require TARGET_SSE2 in the condition.
7051 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
7053         PR target/79799
7054         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
7055         for doing vector set of SFmode on ISA 3.0.
7056         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
7057         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
7058         element.
7059         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
7060         SFmode value into a V4SF variable that was extracted from another
7061         V4SF variable without converting the element to double precision
7062         and back to single precision vector format.
7063         (vsx_insert_extract_v4sf_p9_2): Likewise.
7065 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
7067         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
7068         in UWHI to avoid undefined overflow.
7070         PR sanitizer/81125
7071         * ubsan.h (enum ubsan_encode_value_phase): New.
7072         (ubsan_encode_value): Change second argument to
7073         enum ubsan_encode_value_phase with default value of
7074         UBSAN_ENCODE_VALUE_GENERIC.
7075         * ubsan.c (ubsan_encode_value): Change second argument to
7076         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
7077         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
7078         create_tmp_var_raw instead of create_tmp_var and use a
7079         TARGET_EXPR.
7080         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
7081         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
7082         ubsan_encode_value callers.
7084         PR sanitizer/81111
7085         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
7086         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
7087         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
7089 2017-06-19  Richard Biener  <rguenther@suse.de>
7091         PR middle-end/81118
7092         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
7093         estimates if we changed anything.
7095 2017-06-19  Richard Biener  <rguenther@suse.de>
7097         PR tree-optimization/80887
7098         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
7099         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
7100         simplified lookups, then reset mprts_hook.
7101         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
7102         simplifying.
7103         (try_to_simplify): Likewise.
7105 2017-06-19  Martin Liska  <mliska@suse.cz>
7107         PR sanitizer/80879
7108         * gimplify.c (gimplify_switch_expr):
7109         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
7111 2017-06-19  Martin Liska  <mliska@suse.cz>
7113         * doc/install.texi: Document that PGO runs in 4 stages.
7115 2017-06-19  Martin Liska  <mliska@suse.cz>
7117         PR ipa/80732
7118         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
7119         to dispatcher function name.
7120         * multiple_target.c (replace_function_decl): New function.
7121         (create_dispatcher_calls): Redirect both edges and references.
7123 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
7125         * profile-count.c (profile_count::dump): Dump quality.
7126         (profile_count::differs_from_p): Update for unsigned val.
7127         * profile-count.h (profile_count_quality): New enum.
7128         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
7130 2017-06-19  Richard Biener  <rguenther@suse.de>
7132         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
7133         struct function as arg.
7134         (estimate_numbers_of_iterations): Export overload with loop arg.
7135         (free_numbers_of_iterations_estimates_loop): Use an overload of
7136         free_numbers_of_iterations_estimates instead.
7137         * tree-cfg.c (remove_bb): Adjust.
7138         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
7139         * tree-parloops.c (gen_parallel_loop): Likewise.
7140         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
7141         Likewise.
7142         (tree_unroll_loops_completely): Likewise.
7143         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
7144         Use an overload instead and export.
7145         (estimated_loop_iterations): Adjust.
7146         (max_loop_iterations): Likewise.
7147         (likely_max_loop_iterations): Likewise.
7148         (estimate_numbers_of_iterations): Take struct function as arg
7149         and adjust.
7150         (loop_exits_before_overflow): Adjust.
7151         (free_numbers_of_iterations_estimates_loop): Use an overload.
7152         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
7153         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
7155 2017-06-19  Richard Biener  <rguenther@suse.de>
7157         PR ipa/81112
7158         * ipa-prop.c (find_constructor_constant_at_offset): Handle
7159         RANGE_EXPR conservatively.
7161 2017-06-16  Carl Love  <cel@us.ibm.com>
7163         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7164         definitions for vec_float, vec_float2, vec_floato,
7165         vec_floate built-ins.
7166         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
7167         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
7168         floate.
7169         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
7170         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
7171         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
7172         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
7173         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
7174         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
7175         vec_floato): Add builtin defines.
7176         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
7177         Update the built-in documentation file for the new built-in
7178         functions.
7180 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7182         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
7183         (mthumb): Mark as the negative of -marm.
7185 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7187         * doc/invoke.texi (ARM Options, -mcpu): Document supported
7188         extension options.
7189         (ARM Options, -mtune): Document that this accepts the same
7190         extension options as -mcpu.
7191         (ARM Options, -mfpu): Document addition of -mfpu=auto.
7193 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7195         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
7196         permitted extensions.
7198 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7200         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
7201         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
7202         (armv8-m.main): Add option +nodsp.
7203         * config/arm/arm-cpu-cdata.h: Regenerated.
7205 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7207         * config/arm/t-fuchsia: New file.
7208         * config.gcc (arm*-*-fuchsia*): Use it.
7210 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7212         * config/arm/t-symbian: Rewrite for new option infrastructure.
7214 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7216         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
7217         (MULTILIB_REQUIRED): Likewise.
7219 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7221         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
7222         (MULTILIB_RESUE): Likewise.
7223         (MULTILIB_MATCHES): Likewise.
7224         (MULTLIB_REQUIRED): Likewise.
7226 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7228         * config/arm/t-rtems: Rewrite for new option framework.
7230 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7232         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
7233         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
7234         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
7235         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
7236         * config/arm/t-multilib: ... here.
7237         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
7238         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
7239         armv7-a and armv8*-a when A-profile libraries have not been built.
7240         * config/arm/t-rmprofile: Rewrite.
7242 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7244         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
7245         with a backslash.  Remove the backslash after substituting unescaped
7246         periods.
7247         * doc/fragments.texi (MULTILIB_REUSE): Document it.
7249 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7251         * config.gcc: (arm*-*-*): When building a-profile libraries, force
7252         the driver to pass through the default setting of -mfloat-abi.
7253         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
7254         rather than NULL.
7255         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
7256         (all_feat_combs): New rule.
7257         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
7258         default libraries.
7259         * config/arm/t-aprofile: Rewrite.
7261 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7263         * config/arm/arm.h (FPUTYPE_AUTO): Define.
7264         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
7265         fpu is not specified by the user/command-line.
7266         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
7267         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
7268         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
7269         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
7270         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
7271         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
7273 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7275         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
7276         * config/arm/t-arm-elf: Rewritten.
7278 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7280         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
7281         have some floating-point instructions.
7282         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
7283         (TARGET_MAYBE_HARD_FLOAT): New macro.
7284         * config/arm/arm-builtins.c (arm_init_builtins): Use
7285         TARGET_MAYBE_HARD_FLOAT.
7286         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
7288 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7290         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
7291         (configargs.h): Include it.
7292         (arm_print_hint_for_fpu_option): New function.
7293         (arm_parse_fpu_option): New function.
7294         (candidate_extension): New class.
7295         (arm_canon_for_multilib): New function.
7296         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
7297         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
7298         (ARCH_CANONICAL_SPECS): New macro.
7299         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
7301 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7303         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
7304         are set after handling multilib fragments.  Set target_cpu_default2
7305         from with_cpu.
7307 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7309         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
7310         cpu name.
7311         (arm*-*-*): Set target_cpu_default2 to a quoted string.
7312         * config/arm/parsecpu.awk (check_cpu): Validate any extension
7313         options.
7314         (check_arch): Likewise.
7315         * config/arm/arm.c (arm_configure_build_target): Handle
7316         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
7317         options in the default.
7319 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7321         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
7322         when an option is an alias of another.
7323         * config/arm/parsecpu.awk (optalias): New parser token.
7324         (gen_comm_data): Mark non-alias options as such.  Emit entries
7325         for extension aliases.
7326         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
7327         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
7328         (armv6kz, armv6zk, armv6t2): Likewise.
7329         (armv7): Make vfpv3-d16 an alias.
7330         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
7331         canonical order.
7332         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
7333         Sort in canonical order.
7334         (armv8-a): Sort in canonical order.
7335         (armv8.1-a, armv8.2-a):  Likewise.
7336         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
7337         canonical order.
7338         (cortex-a9): Sort in canonical order.
7339         * config/arm/arm.c (selftests.h): Include it.
7340         (arm_test_cpu_arch_data): New function.
7341         (arm_run_self_tests): New function.
7342         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
7343         (targetm): Move declaration to the end of the file.
7344         * arm-cpu-cdata.h: Regenerated.
7346 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7348         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
7349         call to target_mode_check describing the type of option passed.
7350         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
7351         (arm_target_thumb_only): Use arm_parse_arch_option_name or
7352         arm_parse_cpu_option_name to match parameters against list of
7353         available targets.
7354         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
7355         arm_arch_core_flags data structure.
7356         * config/arm/arm-cpu_cdata.h: Regenerated.
7358 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7360         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
7361         config/arm/arm.c.
7362         (arm_print_hint_for_cpu_option): Likewise.
7363         (arm_print_hint_for_arch_option): Likewise.
7364         (arm_parse_cpu_option_name): Likewise.
7365         (arm_parse_arch_option_name): Likewise.
7366         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
7367         of entries in the all_fpus list.
7368         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
7369         (arm_parse_cpu_option_name): Declare.
7370         (arm_parse_arch_option_name): Declare.
7371         (arm_parse_option_features): Declare.
7372         (arm_intialize_isa): Declare.
7373         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
7374         data tables to ...
7375         (gen_comm_data): ... here.  Make definitions non-static.
7376         * config/arm/arm-cpu-data.h: Regenerated.
7377         * config/arm/arm-cpu-cdata.h: Regenerated.
7379 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7381         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
7382         (cpu_arch_extension): New structure.
7383         (cpu_arch_option, arch_option, cpu_option): New structures.
7384         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
7385         architecture types.
7386         (gen_data): Generate new format data tables.
7387         * config/arm/arm.c (cpu_tune): New structure.
7388         (cpu_option, processors): Delete.
7389         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
7390         (arm_print_hint_for_cpu_option): ... this and ...
7391         (arm_print_hint_for_arch_option): ... this.
7392         (arm_parse_arch_cpu_name): Delete.  Replace with ...
7393         (arm_parse_cpu_option_name): ... this and ...
7394         (arm_parse_arch_option_name): ... this.
7395         (arm_unrecognized_feature): Change type of target parameter to
7396         cpu_arch_option.
7397         (arm_parse_arch_cpu_features): Delete.  Replace with ...
7398         (arm_parse_option_features): ... this.
7399         (arm_configure_build_target): Rework to use new configuration data
7400         tables.
7401         (arm_print_tune_info): Rework for new configuration data tables.
7402         * config/arm/arm-cpu-data.h: Regenerated.
7403         * config/arm/arm-cpu.h: Regenerated.
7405 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7407         * Makefile.in (OBJS): Move sbitmap.o from here ...
7408         (OBJS-libcommon): ... to here.
7410 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7412         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
7413         (ISA_ALL_CRYPTO): New macro.
7414         (ISA_ALL_SIMD): New macro
7415         (ISA_ALL_FP): New macro.
7416         * config/arm/arm.c (fpu_bitlist): Update initializer.
7417         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
7418         simd or fp.
7419         (arm9e): Add fpu.  Add option for nofp
7420         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
7421         (arm926ej-s, arm1026ej-s): Likewise.
7422         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
7423         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
7424         neon-fp16, neon-vfpv4, nofp and nosimd.
7425         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
7426         (cortex-a8): Add fpu.  Add option for nofp.
7427         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
7428         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
7429         (cortex-r4f): Add fpu.
7430         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
7431         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
7432         for nofp.
7433         (cortex-r8): Likewise.
7434         (cortex-m4): Add fpu.  Add option for nofp.
7435         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
7436         (cortex-a17.cortex-a7): Likewise.
7437         (cortex-a32): Add fpu.  Add options for crypto and nofp.
7438         (cortex-a35, cortex-a53): Likewise.
7439         (cortex-a57): Add fpu.  Add option for crypto.
7440         (cortex-a72, cortex-a73): Likewise.
7441         (exynos-m1): Likewise.
7442         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
7443         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
7444         (cortex-m33): Add fpu.  Add option for nofp.
7445         * config/arm/arm-cpu-cdata.h: Regenerated
7446         * config/arm/arm-cpu-data.h: Regenerated.
7448 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7450         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
7451         (armv5te, armv5tej): Likewise.
7452         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
7453         (armv7): Add options fp and vfpv3-d16.
7454         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
7455         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
7456         nofp and nosimd.
7457         (armv7ve): Likewise.
7458         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
7459         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
7460         (armv8-a): Add nocrypto option.
7461         (armv8.1-a, armv8.2-a): Likewise.
7462         (armv8-m.main): add options fp, fp.dp and nofp.
7464 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7466         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
7467         nofp.
7468         (armv8-a+crc): Delete.
7469         (armv8.1-a): Add options simd, crypto and nofp.
7470         (armv8.2-a): Add options fp16, simd, crypto and nofp.
7471         (armv8.2-a+fp16): Delete.
7472         (armv8-m.main): Add option dsp.
7473         (armv8-m.main+dsp): Delete.
7474         (cortex-a8): Add fpu.  Add nofp option.
7475         (cortex-a9): Add fpu.  Add nofp and nosimd options.
7476         * config/arm/parsecpu.awk (gen_data): Generate option tables and
7477         link to main cpu and architecture data structures.
7478         (gen_comm_data): Only put isa attributes from the main architecture
7479         in common tables.
7480         (option): New statement for architecture and CPU entries.
7481         * arm.c (struct cpu_option): New structure.
7482         (struct processors): Add entry for options.
7483         (arm_unrecognized_feature): New function.
7484         (arm_parse_arch_cpu_name): Ignore any characters after the first
7485         '+' character.
7486         (arm_parse_arch_cpu_feature): New function.
7487         (arm_configure_build_target): Separate out any CPU and architecture
7488         features and parse separately.  Don't error out if -mfpu=auto is
7489         used with only an architecture string.
7490         (arm_print_asm_arch_directives): New function.
7491         (arm_file_start): Call it.
7492         * config/arm/arm-cpu-cdata.h: Regenerated.
7493         * config/arm/arm-cpu-data.h: Likewise.
7494         * config/arm/arm-tables.opt: Likewise.
7496 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7498         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
7499         assembler when it is not -mfpu=auto.
7501 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7503         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
7504         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
7505         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
7506         (ASM_CPU_SPEC): Rewrite.
7507         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
7508         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
7509         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
7510         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
7511         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
7512         copied string is NUL-terminated.  Also strip any characters prefixed
7513         by '+'.
7514         (arm_rewrite_selected_arch): New function.
7515         (arm_rewrite_march): New function.
7517 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
7519         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
7520         (x_arm_cpu_string, x_arm_tune_string): Likewise.
7521         (march, mcpu, mtune): Convert to string-based options.
7522         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
7523         (arm_parse_arch_cpu_name): New function.
7524         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
7525         identify selected architecture or CPU.
7526         (arm_option_save): New function.
7527         (TARGET_OPTION_SAVE): Redefine.
7528         (arm_option_restore): Restore string options.
7529         (arm_option_print): Print string options.
7531 2017-06-16  Martin Sebor  <msebor@redhat.com>
7533         PR tree-optimization/80933
7534         PR tree-optimization/80934
7535         * builtins.c (fold_builtin_3): Do not handle bcmp here.
7536         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
7537         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
7538         (gimple_fold_builtin): Call them.
7540 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
7542         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
7543         as unlikely; update profile.
7545 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
7547         * predict.c (force_edge_cold): Handle declaring edges impossible
7548         more aggresively.
7550 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
7552         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
7553         profile.
7554         (try_unroll_loop_completely): Fix reporting.
7556 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
7558         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
7560 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
7562         PR target/71778
7563         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
7564         if given a non-constant argument for an intrinsic which requires a
7565         constant.
7567 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
7569         * profile.c (compare_freqs): New function.
7570         (branch_prob): Sort edge list.
7571         (find_spanning_tree): Assume that the list is priority sorted.
7573 2017-06-16  Richard Biener  <rguenther@suse.de>
7575         PR tree-optimization/81090
7576         * passes.def (pass_record_bounds): Remove.
7577         * tree-pass.h (make_pass_record_bounds): Likewise.
7578         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
7579         make_pass_record_bounds): Likewise.
7580         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
7581         not free niter estimates at the beginning but at the end.
7582         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
7584 2017-06-16  Richard Biener  <rguenther@suse.de>
7586         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
7587         initializer to workaround ICE in host GCC 4.8.
7589 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
7591         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
7592         counts.
7593         (clone_inlined_nodes): Update.
7595 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7597         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
7598         prefetch settings, and enable prefetching by default at -O3.
7600 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7602         * config/aarch64/aarch64.c (aarch64_override_options_internal):
7603         Set flag_prefetch_loop_arrays according to tuning data.
7605 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7607         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
7608         New tune structure.
7609         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
7610         [Unrelated to main purpose of the patch] Place the pointer field last
7611         to enable type checking errors when tune structure are wrongly merged.
7612         * config/aarch64/aarch64.c (generic_prefetch_tune,)
7613         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
7614         (thunderx2t99_prefetch_tune): New tune constants.
7615         (tune_params *_tunings): Update all tunings (no functional change).
7616         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
7617         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
7618         from tunings structures.
7620 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
7622         PR sanitizer/81094
7623         * ubsan.c (instrument_null): Add T argument, use it instead
7624         of computing it based on IS_LHS.
7625         (instrument_object_size): Likewise.
7626         (pass_ubsan::execute): Adjust instrument_null and
7627         instrument_object_size callers to pass gimple_get_lhs or
7628         gimple_assign_rhs1 result to it.  Use instrument_null instead of
7629         calling get_base_address and instrument_mem_ref.  Handle
7630         aggregate call arguments for object-size sanitization.
7632 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
7634         PR tree-optimization/81089
7635         * tree-vrp.c (is_masked_range_test): Validate operands of
7636         subexpression.
7638 2017-06-15  Martin Sebor  <msebor@redhat.com>
7640         PR c++/80560
7641         * dumpfile.c (dump_register): Avoid calling memset to initialize
7642         a class with a default ctor.
7643         * gcc.c (struct compiler): Remove const qualification.
7644         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
7645         * hash-table.h: Ditto.
7646         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
7647           assignment.
7648         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
7649         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
7650         default ctor.
7651         * params.h (struct param_info): Make struct members non-const.
7652         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
7653         with default initialization.
7654         * vec.h (vec_copy_construct, vec_default_construct): New helper
7655         functions.
7656         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
7657         with vec_copy_construct.
7658         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
7659         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
7660         * doc/invoke.texi (-Wclass-memaccess): Document.
7662 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7664         * emit-rtl.h (is_leaf): Update comment about local
7665         register allocator.
7667 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
7669         PR target/78818
7670         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
7671         for a variable to have a section before checking if the section has a
7672         name.
7673         Set section to.persistent if persistent attribute is set.
7674         Warn if .persistent attribute is used on an automatic variable.
7676 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
7678         PR rtl-optimization/80474
7679         * reorg.c (update_block): Do not ignore instructions in a delay slot.
7681 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
7683         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
7684         of REGNO.
7686 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
7688         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
7689         (casesi): Emit bounds checking as RTL.
7690         (casesi_internal_mips16_<mode>): Remove bounds checking.
7692 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
7694         * config/xtensa/xtensa.c (xtensa_option_override): Append
7695         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
7696         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
7697          xtensa_doloop_hooks): Define unconditionally.
7698         (xtensa_reorg_loops): Only call reorg_loops in the presence of
7699         TARGET_LOOPS.
7700         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
7701         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
7702         for it in xtensa_option_override.
7703         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7704          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
7706 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
7708         * doc/cppopts.texi: Document '-' special value to -MF.
7710 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
7712         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
7713         (cortex_a53_fconst): Likewise.
7714         (cortex_a53_fpmul): Likewise.
7715         (cortex_a53_f_load_64): Likewise.
7716         (cortex_a53_f_load_many): Likewise.
7717         (cortex_a53_advsimd_alu): Likewise.
7718         (cortex_a53_advsimd_alu_q): Likewise.
7719         (cortex_a53_advsimd_mul): Likewise.
7720         (cortex_a53_advsimd_mul_q): Likewise.
7721         (fpmac bypass): Add new bypass for fpmac-fpmac case.
7722         Add missing fmul, r2f_cvt and fconst cases.
7724 2017-06-14  Richard Biener  <rguenther@suse.de>
7726         PR middle-end/81088
7727         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
7728         literal constants.
7729         (fold_binary_loc): When associating do not treat pre-existing
7730         TREE_OVERFLOW on literal constants as a reason to allow
7731         TREE_OVERFLOW on associated literal constants.
7733 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
7735         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
7736         (MASK_FEATURES): New macro.
7737         * config/sparc/sparc.c (sparc_option_override): Remove the special
7738         handling of -mfpu and generalize it to all MASK_FEATURES switches.
7740 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
7742         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
7743         a division of 0 if non-call exceptions are enabled.
7745 2017-06-14  Andrew Pinski  <apinski@cavium.com>
7746             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
7748         PR target/71663
7749         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
7750         Improve vector initialization code gen for only variable case.
7752 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
7754         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
7756 2017-06-14  Richard Biener  <rguenther@suse.de>
7758         PR tree-optimization/81083
7759         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
7760         as values.
7762 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
7764         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
7765         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
7766         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
7767         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
7768         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
7769         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
7771 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
7773         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
7774         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
7776 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
7778         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
7780 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
7782         * config/rs6000/t-rtems: Don't handle SPE.
7784 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
7786         * config/rs6000/t-linux: Don't handle SPE.
7788 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
7790         * config/rs6000/eabispe.h: Delete file.
7792 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
7794         * config/rs6000/t-spe: Delete file.
7796 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
7798         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
7799         (rs6000_legitimate_offset_address_p): Return false for anything in
7800         V2SImode or V2SFmode.
7802 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
7804         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
7805         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
7806         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
7807         and V4HImode.
7808         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
7809         (rs6000_legitimate_offset_address_p): Ditto.
7810         (rs6000_emit_move): Ditto.
7811         (rs6000_init_builtins): Remove V4HI_type_node.
7813 2017-06-13  Martin Liska  <mliska@suse.cz>
7815         PR sanitize/78204
7816         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
7817         (gate_asan): Likewise.
7818         * asan.h (asan_no_sanitize_address_p): Remove the function.
7819         (sanitize_flags_p): New function.
7820         * builtins.def: Fix coding style.
7821         * common.opt: Use renamed enum value.
7822         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
7823         * doc/extend.texi: Document no_sanitize attribute.
7824         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
7825         to SANITIZE_UNDEFINED_NONDEFAULT.
7826         * gcc.c (sanitize_spec_function): Use the renamed enum value.
7827         * gimple-fold.c (optimize_atomic_compare_exchange_p):
7828         Use sanitize_flags_p.
7829         * gimplify.c (gimplify_function_tree): Likewise.
7830         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
7831         * opts.c (parse_no_sanitize_attribute): New function.
7832         (common_handle_option): Use renamed enum value.
7833         * opts.h (parse_no_sanitize_attribute): Declare.
7834         * tree.c (sanitize_flags_p): New function.
7835         * tree.h: Declared here.
7836         * tsan.c: Use sanitize_flags_p.
7837         * ubsan.c (ubsan_expand_null_ifn): Likewise.
7838         (instrument_mem_ref): Likewise.
7839         (instrument_bool_enum_load): Likewise.
7840         (do_ubsan_in_current_function): Remove the function.
7841         (pass_ubsan::execute): Use sanitize_flags_p.
7842         * ubsan.h: Remove do_ubsan_in_current_function
7843         * tree-cfg.c (print_no_sanitize_attr_value): New function.
7844         (dump_function_to_file): Use it here.
7846 2017-06-13  Martin Jambor  <mjambor@suse.cz>
7848         PR tree-optimization/80803
7849         PR tree-optimization/81063
7850         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
7851         (propagate_subaccesses_across_link): Enqueue subtree whenever
7852         necessary instead of relying on the caller.
7854 2017-06-13  Martin Jambor  <mjambor@suse.cz>
7856         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
7857         that have a first_link.
7858         (sort_and_splice_var_accesses): Do not check first_link before
7859         enquing.
7860         (subtree_mark_written_and_enqueue): Likewise.
7861         (propagate_all_subaccesses): Likewise and do not stop at first
7862         parent with a first_link.
7864 2017-06-13  Martin Jambor  <mjambor@suse.cz>
7866         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
7867         instead of f.
7869 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
7871         * match.pd: New pattern.
7873 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
7875         * tree-vrp.c (is_masked_range_test): New function.
7876         (register_edge_assert_for): Determine ranges for
7877         some bit tests.
7879 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
7881         PR tree-optimization/67328
7882         * fold-const.c (maskable_range_p): New function.
7883         (build_range_check): Generate bittests if possible.
7885 2017-06-13  Martin Liska  <mliska@suse.cz>
7887         * gimple-pretty-print.c (dump_probability): Add new argument.
7888         (dump_edge_probability): Dump both probability and count.
7889         (dump_gimple_label): Likewise.
7890         (dump_gimple_bb_header): Likewise.
7892 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
7894         PR target/81072
7895         * config/avr/avr-devices.c: Fix indentation.
7896         * config/avr/gen-avr-mmcu-specs.c: Dito.
7898 2017-06-13  Richard Biener  <rguenther@suse.de>
7900         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
7901         instead get vector type from stmt_info.
7902         (vectorizable_reduction): Adjust.  Remove dead code.
7904 2017-06-13  Richard Biener  <rguenther@suse.de>
7906         PR middle-end/81065
7907         * fold-const.c (extract_muldiv_1): Remove bogus distribution
7908         case of C * (x * C2 + C3).
7909         (fold_addr_of_array_ref_difference): Properly fold index difference.
7911 2017-06-12  David S. Miller  <davem@davemloft.net>
7913         PR target/80968
7914         * config/sparc/sparc.md (return expander): Emit frame blockage if
7915         function uses alloca.
7917 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
7919         * combine.c (make_field_assignment): Check len rather than the mode
7920         precision when calling force_to_mode.
7922 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
7924         Support multilibs and devices that see flash in RAM address range.
7926         PR target/81072
7927         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
7928         (avr_mcu_t) <flash_pm_offset>: New field.
7929         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
7930         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
7931         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
7932         (AVR_TINY_PM_OFFSET): Remove macro.
7933         * config/avr/avr.opt (-mshort-calls): New option.
7934         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
7935         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
7936         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
7937         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
7938         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
7939         instead of avr_arch->have_jmp_call.
7940         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
7941         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
7942         avr_arch->flash_pm_offset to define.
7943         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
7944         new field flash_pm_offset.  Add entry for avrxmega3.
7945         (avr_texinfo): Add entry for avrxmega3.
7946         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
7947         attiny212, attiny214,
7948         attiny412, attiny414, attiny416, attiny417,
7949         attiny814, attiny816, attiny817,
7950         attiny1614, attiny1616, attiny1617,
7951         attiny3214, attiny3216, attiny3217.
7952         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
7953         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
7954         (avr_print_operand_address) [AVR_TINY]: Same.
7955         (avr_asm_init_sections) <readonly_data_section>: Only patch
7956         callback if avr_arch->flash_pm_offset = 0.
7957         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
7958         for rodata if avr_arch->flash_pm_offset != 0.
7959         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
7960         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
7961         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
7962         (m_options): Append opt_rcall.
7963         (m_dirnames): Append dir_rcall.
7964         * config/avr/t-multilib: Regenerate.
7966         * configure.ac [target=avr]: Check whether avrxmega3 default
7967         linker description file works as needed.
7968         * configure: Regenerate.
7969         * doc/avr-mmcu.texi: Regenerate.
7970         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
7971         <__AVR_ARCH__>: Document avrxmega3 and 103.
7972         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
7973         <__AVR_SHORT_CALLS__>: Document it.
7974         <__AVR_PM_BASE_ADDRESS__>: Document it.
7975         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
7976         (AVR Variable Attributes) <progmem>: Document this is
7977         not needed for avrxmega3.
7978         (AVR Named Address Spaces) <__flash>: Dito.
7980 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
7982         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
7984 2017-06-12  Doug Rupp  <rupp@adacore.com>
7986         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
7987         Append vxworks-stdint.h to the tm_file list.
7988         * config/vxworks-stdint.h: New file.
7990 2017-06-12  Martin Liska  <mliska@suse.cz>
7992         PR tree-optimization/81041
7993         * tree-profile.c (gimple_gen_ic_func_profiler):
7994         Create an extra BB in profile-generate
7995         (gimple_gen_time_profiler): Likewise.
7997 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
7999         PR tree-optimization/81003
8000         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
8001         (update_range_test): Use it instead of force_gimple_operand_gsi.
8003 2017-06-12  Richard Biener  <rguenther@suse.de>
8005         PR tree-optimization/81053
8006         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
8007         with backedge value not defined in loop.  Simplify def stmt
8008         compute.
8010 2017-06-11  Tom de Vries  <tom@codesourcery.com>
8012         PR target/79939
8013         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
8014         Return true.
8015         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
8016         nvptx_cannot_force_const_mem.
8018 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
8020         * opts.c (finish_options): Move test for flag_split_stack after
8021         it has been initialized.
8023 2017-06-11  Jason Merrill  <jason@redhat.com>
8025         * tree.h (id_equal): New.
8026         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
8027         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
8028         instead of strcmp of IDENTIFIER_POINTER.
8030 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
8032         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
8033         (mark_all_inlined_calls_cdtor): Fix formating.
8034         (inline_transform): Rescale profile before inlining.
8036 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
8038         * cgraph.h (cgraph_edge::clone): Update prototype.
8039         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
8040         (cgraph_node::create_clone): Update.
8041         (cgraph_node::create_version_clone): Update.
8042         * tree-inline.c (copy_bb): Update.
8043         (expand_call_inline): Update.
8045 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
8047         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
8048         factored out from ...
8049         (rs6000_emit_prologue): ... here.
8051 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
8053         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
8054         factored out from ...
8055         (rs6000_emit_prologue): ... here.
8057 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
8059         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
8060         edge counts.
8061         (handle_missing_profiles): Fix computation of tp_first_run.
8062         (counts_to_freqs): Do not touch freqs when count is 0.
8064 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
8066         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
8067         profile.
8069 2017-06-10  Tom de Vries  <tom@codesourcery.com>
8071         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
8072         attributes): Document signal effective target.
8074 2017-06-10  Tom de Vries  <tom@codesourcery.com>
8076         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
8077         Document effective target stack_size.
8079 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
8081         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
8082         to the edit_context if they can be auto-applied.
8084 2017-06-9  Ian Lance Taylor  <iant@golang.org>
8086         * opts.c (finish_options): If -fsplit-stack, disable implicit
8087         -forder-blocks-and-partition.
8088         * doc/invoke.texi (Optimize Options): Document that when using
8089         -fsplit-stack -forder-blocks-and-partition is not implicitly
8090         enabled.
8092 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
8094         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
8095         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
8096         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
8097         * builtins.def (abort, trap, unreachable): Declare cold.
8098         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
8099         * tree-core.h (ECF_COLD): New.
8100         * tree.c (set_call_expr_flags): Handle ECF_COLD.
8101         (build_common_builtin_nodes): Mark unreachable and abort as cold.
8103 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
8105         * predict.c (unlikely_executed_stmt_p): Cleanup.
8107 2017-06-09  Richard Biener  <rguenther@suse.de>
8109         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
8110         model if the ref is always written to.
8112 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
8114         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
8116 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
8118         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
8119         than udiv.
8121 2017-06-09  Tom de Vries  <tom@codesourcery.com>
8123         PR target/80855
8124         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
8125         "target cannot support label values" when encountering LABEL_REF.
8127 2017-06-09  Martin Liska  <mliska@suse.cz>
8129         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
8130         (gimple_gen_ic_func_profiler): Emit direct comparison
8131         of __gcov_indirect_call_callee with NULL.
8132         (gimple_gen_time_profiler): Change probability from
8133         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
8135 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
8137         * profile.c (edge_gcov_counts): Turn to pointer.
8138         (compute_branch_probabilities, compute_branch_probabilities): Update.
8139         (branch_prob): Do not clear edge_gcov_count.
8140         * profile.h (edge_gcov_counts): Turn to pointer.
8141         (edge_gcov_count): Update.
8143 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
8145         * gimple.h (gimple_check_failed): Mark cold.
8147 2017-06-09  Richard Biener  <rguenther@suse.de>
8149         PR tree-optimization/66623
8150         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
8151         refactor check_reduction into two parts, properly computing
8152         whether we have to check reduction validity for outer loop
8153         vectorization.
8155 2017-06-09  Richard Biener  <rguenther@suse.de>
8157         PR tree-optimization/79483
8158         * graphite-scop-detection.c (order): New global.
8159         (get_order): Compute bb to order mapping that satisfies code
8160         generation constraints.
8161         (cmp_pbbs): New helper.
8162         (build_scops): Start domwalk at entry block, sort generated
8163         pbbs.
8165 2017-06-09  Richard Biener  <rguenther@suse.de>
8167         PR middle-end/81007
8168         * ipa-polymorphic-call.c
8169         (ipa_polymorphic_call_context::restrict_to_inner_class):
8170         Skip FIELD_DECLs with error_mark_node type.
8171         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
8172         last again.
8174 2017-06-09  Martin Liska  <mliska@suse.cz>
8176         * predict.c (struct branch_predictor): New struct.
8177         (test_prediction_value_range): New test.
8178         (predict_c_tests): New function.
8179         * selftest-run-tests.c (selftest::run_tests): Run the function.
8180         * selftest.h: Declare new tests.
8182 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
8184         PR target/80966
8185         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
8186         gen_add3_insn did not fail.
8187         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
8188         r0, construct that number in a temporary reg and add that reg to r0.
8189         If asked to put the result in r0 as well, fail.
8191 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
8193         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
8194         for early expansion of vec_eqv.
8196 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
8198         PR middle-end/81005
8199         * ubsan.c (instrument_null): Avoid pointless code temporary.
8200         (pass_ubsan::execute): Instrument aggregate arguments of calls.
8202 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
8204         PR target/81015
8205         Revert:
8206         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
8208         PR target/59874
8209         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
8210         (*clzhi2): Ditto.
8212 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
8214         * predict.c (unlikely_executed_edge_p): Move ahead.
8215         (probably_never_executed_edge_p): Use it.
8217 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8219         PR middle-end/79988
8220         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
8221         gimple_call_builtin_p call.
8223 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
8225         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
8226         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
8227         rtl_check_failed_type2, rtl_check_failed_code1,
8228         rtl_check_failed_code2, rtl_check_failed_code_mode,
8229         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
8230         rtvec_check_failed_bounds, rtl_check_failed_flag,
8231         _fatal_insn_not_found, _fatal_insn): Likewise.
8232         * tree.h (tree_contains_struct_check_failed,
8233         tree_check_failed, tree_not_check_failed,
8234         tree_class_check_failed, tree_range_check_failed,
8235         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
8236         tree_vec_elt_check_failed, phi_node_elt_check_failed,
8237         tree_operand_check_failed, omp_clause_check_failed,
8238         omp_clause_operand_check_failed, omp_clause_range_check_failed):
8239         Likewise.
8241 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
8243         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
8244         flag_branch_probabilities.
8245         * ipa-inline.c (edge_badness): Likewise.
8246         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
8247         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
8248         * predict.c (maybe_hot_frequency_p): Likewise.
8249         (probably_never_executed): Likewise.
8250         * sched-ebb.c (schedule_ebbs): Likewise.
8251         * sched-rgn.c (find_single_block_region): Likewise.
8252         * tracer.c (tail_duplicate): Likewise.
8254 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
8256         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
8257         longer requires x_flag_profile_use.
8259 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
8261         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
8262         instead of flag_reorder_blocks_and_partition.
8263         * dbxout.c (dbxout_function_end): Likewise.
8264         * dwarf2out.c (gen_subprogram_die): Likewise.
8265         * haifa-sched.c (sched_create_recovery_edges): Likewise.
8266         * hw-doloop.c (reorg_loops): Likewise.
8267         * varasm.c (assemble_start_function,
8268         assemble_end_function): Likewise.
8269         (decide_function_section): Do not check for
8270         flag_reorder_blocks_and_partition.
8272 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8274         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
8275         New function.
8276         (chkp_get_hard_register_fake_addr_expr): Ditto.
8277         (chkp_build_addr_expr): Add check for hard reg case.
8278         (chkp_parse_array_and_component_ref): Ditto.
8279         (chkp_find_bounds_1): Ditto.
8280         (chkp_process_stmt): Don't generate bounds store for
8281         hard reg case.
8283 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
8285         * predict.c (maybe_hot_bb_p): Do not check profile status.
8286         (maybe_hot_edge_p): Likewise.
8287         (probably_never_executed): Check for zero counts even if profile
8288         is not read.
8289         (unlikely_executed_edge_p): New function.
8290         (unlikely_executed_stmt_p): New function.
8291         (unlikely_executed_bb_p): New function.
8292         (set_even_probabilities): Use unlikely predicates.
8293         (combine_predictions_for_bb): Likewise.
8294         (predict_paths_for_bb): Likewise.
8295         (predict_paths_leading_to_edge): Likewise.
8296         (determine_unlikely_bbs): New function.
8297         (estimate_bb_frequencies): Use it.
8298         (compute_function_frequency): Use zero counts even if profile is
8299         not read.
8300         * profile-count.h: Fix typo.
8302 2017-08-08  Julia Koval  <julia.koval@intel.com>
8304         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
8305         _mm512_mask_cvtsepi16_storeu_epi8,
8306         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
8307         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
8308         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
8309         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
8310         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
8311         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
8312         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
8313         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
8314         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
8315         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
8316         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
8317         __builtin_ia32_pmovuswb256mem_mask,
8318         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
8319         __builtin_ia32_pmovwb512mem_mask): New builtins.
8321 2017-08-08  Julia Koval  <julia.koval@intel.com>
8323         PR target/73350,80862
8324         * config/i386/subst.md (round): Fix round pattern.
8325         * config/i386/i386.c (ix86_erase_embedded_rounding):
8326         Fix erasing rounding for the fixed pattern.
8328 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
8330         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
8332 2017-06-08  Martin Liska  <mliska@suse.cz>
8334         PR gcov-profile/80911
8335         * gcov.c (block_info::block_info): New constructor.
8337 2017-06-07  Carl Love  <cel@us.ibm.com>
8339         * config/rs6000/rs6000-c: The return type of the following
8340         built-in functions was implemented as int not long long.  Fix sign
8341         of return value for the unsigned version of vec_mulo and vec_mule.
8342         vector unsigned long long vec_bperm (vector unsigned long long,
8343                                              vector unsigned char)
8344         vector signed long long vec_mule (vector signed int,
8345                                           vector signed int)
8346         vector unsigned long long vec_mule (vector unsigned int,
8347                                             vector unsigned int)
8348         vector signed long long vec_mulo (vector signed int,
8349                                           vector signed int)
8350         vector unsigned long long vec_mulo (vector unsigned int,
8351                                             vector unsigned int)
8352         * doc/extend.texi: Fix the documentation for the built-in
8353         functions.
8355 2017-06-07  Carl Love  <cel@us.ibm.com>
8357         PR target/80982
8358         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
8359         for BE.
8361 2017-06-07  Carl Love  <cel@us.ibm.com>
8363         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
8364         support, Generate       doublehv for signed int/float for BE case only.
8366 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
8368         * doc/invoke.texi (mcx16): Rewrite.
8370 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8372         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
8373         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
8374         *mov<mode>_softfloat, and an anonymous splitter): Use
8375         nonimmediate_operand instead of rs6000_nonimmediate_operand.
8377 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8379         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
8380         SPEFSCR registers.
8381         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
8382         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
8383         (rs6000_debug_reg_global): Adjust.
8384         (rs6000_init_hard_regno_mode_ok): Adjust.
8385         (rs6000_dbx_register_number): Adjust.
8386         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
8387         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
8388         Remove SPE_ACC and SPEFSCR.
8389         (REG_ALLOC_ORDER): Ditto.
8390         (FRAME_POINTER_REGNUM): Change to 111.
8391         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
8392         (REG_CLASS_NAMES): Ditto.
8393         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
8394         (REGISTER_NAMES): Ditto.
8395         (ADDITIONAL_REG_NAMES): Ditto.
8396         (rs6000_reg_names): Ditto.
8397         * config/rs6000/rs6000.md: Renumber some register number
8398         define_constants.
8400 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8402         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
8403         registers.
8404         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
8405         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
8406         to 117.
8407         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
8408         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
8409         Delete the SPE high registers.
8410         (REG_ALLOC_ORDER): Ditto.
8411         (enum reg_class): Remove SPE_HIGH_REGS.
8412         (REG_CLASS_NAMES): Ditto.
8413         (REG_CLASS_CONTENTS): Delete the SPE high registers.
8414         (REGISTER_NAMES): Ditto.
8415         (rs6000_reg_names): Ditto.
8416         * doc/tm.texi.in: Remove SPE as example.
8417         * doc/tm.texi: Regenerate.
8419 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8421         * config/rs6000/8540.md (ppc8540_brinc): Delete.
8422         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
8423         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
8424         * config/rs6000/rs6000.md (type): Remove "brinc".
8426 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8428         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
8429         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
8430         * config/rs6000/linuxspe.h: Delete file.
8431         * config/rs6000/rs6000.md: Don't include spe.md.
8432         * config/rs6000/spe.h: Delete file.
8433         * config/rs6000/spe.md: Delete file.
8434         * config/rs6000/t-rs6000: Remove spe.md.
8436 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8438         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
8439         (reg_or_none500mem_operand): Delete.
8440         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
8441         instead of reg_or_none500mem_operand.
8443 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8445         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
8446         handling of SPE flags.
8447         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
8449 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8451         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
8452         SPE ABI handling.
8453         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
8454         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
8455         paired_divv2sf3): Similar.
8456         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
8457         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
8458         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
8459         RS6000_BUILTIN_S.
8460         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
8461         Rename the paired_* instruction patterns.
8462         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
8463         define __SPE__.
8464         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
8465         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
8466         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
8467         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
8468         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
8469         PAIRED_VECTOR_MODE.
8470         (struct machine_function): Delete field spe_insn_chain_scanned_p.
8471         (spe_func_has_64bit_regs_p): Delete.
8472         (spe_expand_predicate_builtin): Delete.
8473         (spe_expand_evsel_builtin): Delete.
8474         (TARGET_DWARF_REGISTER_SPAN): Do not define.
8475         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
8476         (invalid_e500_subreg): Delete.
8477         (rs6000_legitimize_address): Always force_reg op2 as well, for
8478         paired single memory accesses.
8479         (rs6000_member_type_forces_blk): Delete.
8480         (rs6000_spe_function_arg): Delete.
8481         (rs6000_expand_unop_builtin): Delete SPE handling.
8482         (rs6000_expand_binop_builtin): Ditto.
8483         (spe_expand_stv_builtin): Delete.
8484         (bdesc_2arg_spe): Delete.
8485         (spe_expand_builtin): Delete.
8486         (spe_expand_predicate_builtin): Delete.
8487         (spe_expand_evsel_builtin): Delete.
8488         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
8489         (spe_init_builtins): Delete.
8490         (spe_func_has_64bit_regs_p): Delete.
8491         (savres_routine_name): Delete "info" parameter.  Adjust callers.
8492         (rs6000_emit_stack_reset): Ditto.
8493         (rs6000_dwarf_register_span): Delete.
8494         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
8495         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
8496         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
8497         Delete.
8498         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
8499         Delete.
8500         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
8501         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
8502         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
8503         mulv2sf3, divv2sf3): Delete expanders.
8505 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8507         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
8509 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8511         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
8512         * config/rs6000/rs6000.c: Ditto.
8514 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8516         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
8517         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
8518         comparison_operator.
8520 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8522         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
8523         * config/rs6000/rs6000.opt: Ditto.
8524         * config/rs6000/t-rtems: Ditto.
8526 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8528         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
8529         TARGET_E500_SINGLE by 0, simplify.
8530         * config/rs6000/rs6000.c: Ditto.
8531         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
8532         (spe_build_register_parallel): Delete.
8533         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
8534         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
8535         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
8536         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
8537         (E500_CONVERT): Delete.
8538         * config/rs6000/spe.md: Remove many patterns and all define_constants.
8540 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
8542         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
8543         * config/rs6000/dfp.md: Ditto.
8544         (negdd2, *negdd2_fpr): Merge.
8545         (absdd2, *absdd2_fpr): Merge.
8546         (negtd2, *negtd2_fpr): Merge.
8547         (abstd2, *abstd2_fpr): Merge.
8548         * config/rs6000/e500.h: Delete file.
8549         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
8550         TARGET_FPRS by 1 and simplify.
8551         * config/rs6000/rs6000-c.c: Ditto.
8552         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
8553         TARGET_DF_SPE by 0.
8554         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
8555         TARGET_DF_SPE.
8556         * config/rs6000/rs6000.md: Ditto.
8557         (floatdidf2, *floatdidf2_fpr): Merge.
8558         (move_from_CR_gt_bit): Delete.
8559         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
8560         (E500_CR_IOR_COMPARE): Delete.
8561         (All patterns that require !TARGET_FPRS): Delete.
8562         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
8564 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
8566         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
8568 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
8570         * graphds.c (add_edge): Intitialize edge's attached data.
8571         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
8572         pointer parameter.  Call pointed function on each edge during
8573         graph traversing.  Skip traversing the edge when the function
8574         returns true.
8575         (graphds_dfs, graphds_scc): Ditto.
8576         (for_each_edge): New parameter.  Pass the new parameter to callback
8577         function.
8578         * graphds.h (skip_edge_callback): New function pointer type.
8579         (graphds_dfs, graphds_scc): New function pointer parameter.
8580         (graphds_edge_callback, for_each_edge): New parameter.
8582 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
8584         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
8585         out code checking if runtime alias check is possible to below ...
8586         Call the new function.
8587         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
8588         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
8590 2017-06-07  Marek Polacek  <polacek@redhat.com>
8592         PR sanitizer/80932
8593         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
8594         TYPE_OVERFLOW_WRAPS check.
8596 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
8598         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
8599         if versioning is required.
8600         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
8601         peeling with the check for versioning.
8603 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
8605         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
8606         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
8607         Set true to new parameter if new ssa variable is defined.
8608         (vect_gen_vector_loop_niters): Refactor.  Set range information
8609         for the new vector loop bound variable.
8610         (vect_do_peeling): Ditto.
8612 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
8614         * tree-affine.c (ssa.h): Include header file.
8615         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
8616         has wrapping overflow behavior.
8618 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
8620         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
8622 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
8624         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
8625         (tree_to_aff_combination): ... here.
8627 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
8629         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
8630         reg_pressure model function.
8631         (ivopts_global_cost_for_size): Delete.
8632         (determine_set_costs, iv_ca_recount_cost): Call new model function
8633         ivopts_estimate_reg_pressure.
8635 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
8637         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
8638         expensive than udiv.  Remove floating point cases from mod.
8640 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
8642         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
8643         Increase idiv cost.
8645 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
8647         * config/aarch64/aarch64.md
8648         (copysignsf3): Fix mask generation.
8650 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
8652         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
8653         TDI_gimple.
8654         (class dump_manager): Add register_dumps method.
8655         * dumpfile.c: Include langhooks.h.
8656         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
8657         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
8658         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
8659         (dump_manager::dump_register): Start with 512 entries instead of 32.
8660         (dump_manager::register_dumps): New method.
8661         * toplev.c (general_init): Instead of invoking register_dumps
8662         langhook, invoke register_dumps method on the dump manager.
8663         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
8664         TDI_generic.
8666 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
8668         * doc/md.texi: Clarify the restrictions on a define_insn condition.
8669         Say that # requires an associated define_split to exist, and that
8670         the define_split must be suitable for use after register allocation.
8672 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
8674         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
8675         (compute_outgoing_frequencies): Also initialize zero counts.
8676         (find_many_sub_basic_blocks): Do not produce uninitialized profile
8677         around loops; preserve more of profile when nothing changes.
8679 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
8681         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
8682         here.
8683         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
8684         * config/arm/arm-cpu-cdata.h: Regenerate.
8685         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
8686         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
8687         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
8688         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
8689         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
8690         support.
8691         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
8692         support.
8693         * config/arm/t-rmprofile: Likewise.
8694         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
8696 2017-06-06  David S. Miller  <davem@davemloft.net>
8698         PR target/80968
8699         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
8700         blockage if function uses alloca.
8702 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8704         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
8705         New "uid" fields to hold pretty-print IDs of group and ref.
8706         Memory references are now identified as <group_id>:<ref_id>
8707         instead of using [random] addresses.
8708         (dump_mem_details): Simplify, no functional change.
8709         (dump_mem_ref): Simplify and make output more concise.
8710         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
8711         (find_or_create_group): Initialize group uid.
8712         (record_ref): Initialize ref uid.  Improve debug output.
8713         (prune_group_by_reuse, should_issue_prefetch_p,)
8714         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
8715         (mark_nontemporal_store, determine_loop_nest_reuse):
8716         Improve debug output.
8718 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8720         * dbgcnt.def (prefetch): New debug counter.
8721         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
8722         (schedule_prefetches): Stop issueing prefetches if debug counter
8723         tripped.
8725 2017-06-06  Tom de Vries  <tom@codesourcery.com>
8727         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
8728         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
8730 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8732         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
8733         Use aarch64_reg_or_zero predicate for operand 4.
8734         (aarch64_compare_and_swap<mode> define_insn_and_split):
8735         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
8736         (aarch64_store_exclusive<mode>): Likewise for operand 2.
8738 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8740         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
8741         (arm_compute_save_core_reg_mask): This.
8742         (thumb1_compute_save_reg_mask): Rename into ...
8743         (thumb1_compute_save_core_reg_mask): This.
8744         (arm_compute_save_reg0_reg12_mask): Adapt comment.
8745         (arm_compute_frame_layout): Likewise.
8747 2017-06-06  Richard Biener  <rguenther@suse.de>
8749         PR tree-optimization/80974
8750         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
8751         keep or clear leaders SSA info.
8753 2017-06-06  Tom de Vries  <tom@codesourcery.com>
8755         * config/nvptx/nvptx.c (split_mode_p): New function.
8756         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
8758 2017-06-06  Tom de Vries  <tom@codesourcery.com>
8760         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
8762 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
8764         PR bootstrap/80978
8765         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
8766         profile.
8768 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
8770         * shrink-wrap.c (handle_simple_exit): Update profile.
8771         (try_shrink_wrapping): Upate profile.
8773 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
8775         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
8776         (tree_guess_outgoing_edge_probabilities): New.
8777         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
8778         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
8780 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
8782         * ipa-split.c (split_function): Initialize return bb profile.
8784 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
8786         * profile.c (compute_branch_probabilities): Also initialize
8787         EXIT_BLOCK profile.
8789 2017-06-06  Richard Biener  <rguenther@suse.de>
8791         PR tree-optimization/80928
8792         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
8793         (vect_analyze_loop_operations): Properly guard analysis for
8794         pure SLP case.
8795         (vect_transform_loop): Likewise.
8796         (vect_analyze_loop_2): Also reset SLP type on PHIs.
8797         (vect_model_induction_cost): Do not cost for pure SLP.
8798         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
8799         of induction in inner loop vectorization.
8800         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
8801         (vect_get_and_check_slp_defs): Handle vect_induction_def.
8802         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
8803         recursion.
8804         (vect_analyze_slp_cost_1): Cost induction.
8805         (vect_detect_hybrid_slp_stmts): Handle PHIs.
8806         (vect_get_slp_vect_defs): Likewise.
8807         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
8808         (vect_transform_stmt): Handle SLP reductions.
8809         * tree-vectorizer.h (vectorizable_induction): Adjust.
8811 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
8813         * config/rs6000/rs6000.c (make_resolver_func): Update
8814         init_lowered_empty_function call.
8816 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8818         * doc/invoke.texi: Document the -fprofile-abs-path option.
8819         * common.opt (fprofile-abs-path): New option.
8820         * gcov-io.h (gcov_write_filename): Declare.
8821         * gcov-io.c (gcov_write_filename): New function.
8822         * coverage.c (coverage_begin_function): Use gcov_write_filename.
8823         * profile.c (output_location): Likewise.
8825 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
8827         * shring-wrap.c: Revert accidental commit.
8829 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
8831         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
8833 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
8835         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
8836         new edge.
8837         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
8838         profile in callgraph edge.
8839         * profile-count.h (apply_probability): If THIS is 0, then result is 0
8840         (apply_scale): Likewise.
8841         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
8842         Also scale profile when inlining function with zero profile.
8843         (initialize_cfun): Update exit block profile even when it is zero.
8844         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
8845         when profile is read.
8847 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
8849         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
8850         (CLONE_*): New constants to define the processors we can generate
8851         code for with the target_clone attribute.
8852         (rs6000_clone_map): New array to identify which clone processors
8853         the current program is running on.
8854         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
8855         target_clone attribute.
8856         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
8857         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
8858         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
8859         (cpu_expand_builtin): Add support for target_clone attribute.
8860         (rs6000_valid_attribute_p): Allow "default" attribute.
8861         (get_decl_name): New debug function to simplify printing the
8862         current function name in debugging statements.
8863         (rs6000_clone_priority): New functions to support the target_clone
8864         attribute, and be able to generate code to switch between ISA 2.05
8865         through ISA 3.0 (power6 through power9).
8866         (rs6000_compare_version_priority): Likewise.
8867         (rs6000_get_function_versions_dispatcher): Likewise.
8868         (make_resolver_func): Likewise.
8869         (add_condition_to_bb): Likewise.
8870         (dispatch_function_versions): Likewise.
8871         (rs6000_generate_version_dispatcher_body): Likewise.
8872         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
8873         (fusion_gpr_load_p): Fix a spacing issue.
8874         * doc/extend.texi (Common Function Attributes): Document that the
8875         PowerPC supports the target_clone attribute.
8877 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8879         * config/arm/arm.h: explain F symbol found in description of ARM
8880         register allocation in its legend.
8882 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
8884         * config/mips/frame-header-opt.c: Include profile-count.h.
8885         * config/riscv/riscv.c: Include profile-count.h
8887 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
8889         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
8890         update profile.
8891         (sm_set_flag_if_changed): Add bbs field.
8892         (execute_sm_if_changed_flag_set): Pass BBS.
8893         (execute_sm): Update.
8895 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8897         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
8898         New pattern.
8900 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8902         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
8903         (peephole2): New peephole2 to emit the above.
8904         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
8906 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8908         * config/aarch64/aarch64.c (define_peephole2 above
8909         *sub_<shift>_<mode>): New peephole.
8911 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
8913         * config/i386/i386.c (make_resolver_func): Update.
8914         * Makefile.in: Add profile-count.h and profile-count.o
8915         * auto-profile.c (afdo_indirect_call): Update to new API.
8916         (afdo_set_bb_count): Update.
8917         (afdo_propagate_edge): Update.
8918         (afdo_propagate_circuit): Update.
8919         (afdo_calculate_branch_prob): Update.
8920         (afdo_annotate_cfg): Update.
8921         * basic-block.h: Include profile-count.h
8922         (struct edge_def): Turn count to profile_count.
8923         (struct basic_block_def): Likewie.
8924         (REG_BR_PROB_BASE): Move to profile-count.h
8925         (RDIV): Move to profile-count.h
8926         * bb-reorder.c (max_entry_count): Turn to profile_count.
8927         (find_traces): Update.
8928         (rotate_loop):Update.
8929         (connect_traces):Update.
8930         (sanitize_hot_paths):Update.
8931         * bt-load.c (migrate_btr_defs): Update.
8932         * cfg.c (RDIV): Remove.
8933         (init_flow): Use alloc_block.
8934         (alloc_block): Uninitialize count.
8935         (unchecked_make_edge): Uninitialize count.
8936         (check_bb_profile): Update.
8937         (dump_edge_info): Update.
8938         (dump_bb_info): Update.
8939         (update_bb_profile_for_threading): Update.
8940         (scale_bbs_frequencies_int): Update.
8941         (scale_bbs_frequencies_gcov_type): Update.
8942         (scale_bbs_frequencies_profile_count): New.
8943         * cfg.h (update_bb_profile_for_threading): Update.
8944         (scale_bbs_frequencies_profile_count): Declare.
8945         * cfgbuild.c (compute_outgoing_frequencies): Update.
8946         (find_many_sub_basic_blocks): Update.
8947         * cfgcleanup.c (try_forward_edges): Update.
8948         (try_crossjump_to_edge): Update.
8949         * cfgexpand.c (expand_gimple_tailcall): Update.
8950         (construct_exit_block): Update.
8951         * cfghooks.c (verify_flow_info): Update.
8952         (dump_bb_for_graph): Update.
8953         (split_edge): Update.
8954         (make_forwarder_block): Update.
8955         (duplicate_block): Update.
8956         (account_profile_record): Update.
8957         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
8958         (get_estimated_loop_iterations): Update.
8959         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
8960         (single_likely_exit): Update.
8961         * cfgloopmanip.c (scale_loop_profile): Update.
8962         (loopify): Update.
8963         (set_zero_probability): Update.
8964         (lv_adjust_loop_entry_edge): Update.
8965         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
8966         (purge_dead_edges): Update.
8967         (rtl_account_profile_record): Update.
8968         * cgraph.c (cgraph_node::create): Uninitialize count.
8969         (symbol_table::create_edge): Uninitialize count.
8970         (cgraph_update_edges_for_call_stmt_node): Update.
8971         (cgraph_edge::dump_edge_flags): Update.
8972         (cgraph_node::dump): Update.
8973         (cgraph_edge::maybe_hot_p): Update.
8974         * cgraph.h: Include profile-count.h
8975         (create_clone), create_edge, create_indirect_edge): Update.
8976         (cgraph_node): Turn count to profile_count.
8977         (cgraph_edge0: Likewise.
8978         (make_speculative, clone): Update.
8979         (create_edge): Update.
8980         (init_lowered_empty_function): Update.
8981         * cgraphclones.c (cgraph_edge::clone): Update.
8982         (duplicate_thunk_for_node): Update.
8983         (cgraph_node::create_clone): Update.
8984         * cgraphunit.c (cgraph_node::analyze): Update.
8985         (cgraph_node::expand_thunk): Update.
8986         * final.c (dump_basic_block_info): Update.
8987         * gimple-streamer-in.c (input_bb): Update.
8988         * gimple-streamer-out.c (output_bb): Update.
8989         * graphite.c (print_global_statistics): Update.
8990         (print_graphite_scop_statistics): Update.
8991         * hsa-brig.c: Include basic-block.h.
8992         * hsa-dump.c: Include basic-block.h.
8993         * hsa-gen.c (T sum_slice): Update.
8994         (convert_switch_statements):Update.
8995         * hsa-regalloc.c: Include basic-block.h.
8996         * ipa-chkp.c (chkp_produce_thunks): Update.
8997         * ipa-cp.c (struct caller_statistics): Update.
8998         (init_caller_stats): Update.
8999         (gather_caller_stats): Update.
9000         (ipcp_cloning_candidate_p): Update.
9001         (good_cloning_opportunity_p): Update.
9002         (get_info_about_necessary_edges): Update.
9003         (dump_profile_updates): Update.
9004         (update_profiling_info): Update.
9005         (update_specialized_profile): Update.
9006         (perhaps_add_new_callers): Update.
9007         (decide_about_value): Update.
9008         (ipa_cp_c_finalize): Update.
9009         * ipa-devirt.c (struct odr_type_warn_count): Update.
9010         (struct decl_warn_count): Update.
9011         (struct final_warning_record): Update.
9012         (possible_polymorphic_call_targets): Update.
9013         (ipa_devirt): Update.
9014         * ipa-fnsummary.c (redirect_to_unreachable): Update.
9015         * ipa-icf.c (sem_function::merge): Update.
9016         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
9017         * ipa-inline.c (compute_uninlined_call_time): Update.
9018         (compute_inlined_call_time): Update.
9019         (want_inline_small_function_p): Update.
9020         (want_inline_self_recursive_call_p): Update.
9021         (edge_badness): Update.
9022         (lookup_recursive_calls): Update.
9023         (recursive_inlining): Update.
9024         (inline_small_functions): Update.
9025         (dump_overall_stats): Update.
9026         (dump_inline_stats): Update.
9027         * ipa-profile.c (ipa_profile_generate_summary): Update.
9028         (ipa_propagate_frequency): Update.
9029         (ipa_profile): Update.
9030         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
9031         * ipa-utils.c (ipa_merge_profiles): Update.
9032         * loop-doloop.c (doloop_modify): Update.
9033         * loop-unroll.c (report_unroll): Update.
9034         (unroll_loop_runtime_iterations): Update.
9035         * lto-cgraph.c (lto_output_edge): Update.
9036         (lto_output_node): Update.
9037         (input_node): Update.
9038         (input_edge): Update.
9039         (merge_profile_summaries): Update.
9040         * lto-streamer-in.c (input_cfg): Update.
9041         * lto-streamer-out.c (output_cfg): Update.
9042         * mcf.c (create_fixup_graph): Update.
9043         (adjust_cfg_counts): Update.
9044         (sum_edge_counts): Update.
9045         * modulo-sched.c (sms_schedule): Update.
9046         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
9047         * predict.c (maybe_hot_count_p): Update.
9048         (probably_never_executed): Update.
9049         (dump_prediction): Update.
9050         (combine_predictions_for_bb): Update.
9051         (propagate_freq): Update.
9052         (handle_missing_profiles): Update.
9053         (counts_to_freqs): Update.
9054         (rebuild_frequencies): Update.
9055         (force_edge_cold): Update.
9056         * predict.h: Include profile-count.h
9057         (maybe_hot_count_p, counts_to_freqs): UPdate.
9058         * print-rtl-function.c: Do not include cfg.h
9059         * print-rtl.c: Include basic-block.h
9060         * profile-count.c: New file.
9061         * profile-count.h: New file.
9062         * profile.c (is_edge_inconsistent): Update.
9063         (correct_negative_edge_counts): Update.
9064         (is_inconsistent): Update.
9065         (set_bb_counts): Update.
9066         (read_profile_edge_counts): Update.
9067         (compute_frequency_overlap): Update.
9068         (compute_branch_probabilities): Update; Initialize and deinitialize
9069         gcov_count tables.
9070         (branch_prob): Update.
9071         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
9072         (edge_gcov_count): New.
9073         (bb_gcov_count): New.
9074         * shrink-wrap.c (try_shrink_wrapping): Update.
9075         * tracer.c (better_p): Update.
9076         * trans-mem.c (expand_transaction): Update.
9077         (ipa_tm_insert_irr_call): Update.
9078         (ipa_tm_insert_gettmclone_call): Update.
9079         * tree-call-cdce.c: Update.
9080         * tree-cfg.c (gimple_duplicate_sese_region): Update.
9081         (gimple_duplicate_sese_tail): Update.
9082         (gimple_account_profile_record): Update.
9083         (execute_fixup_cfg): Update.
9084         * tree-inline.c (copy_bb): Update.
9085         (copy_edges_for_bb): Update.
9086         (initialize_cfun): Update.
9087         (freqs_to_counts): Update.
9088         (copy_cfg_body): Update.
9089         (expand_call_inline): Update.
9090         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
9091         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
9092         (try_unroll_loop_completely): Update.
9093         (try_peel_loop): Update.
9094         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
9095         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
9096         * tree-ssa-loop-split.c (connect_loops): Update.
9097         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
9098         * tree-ssa-reassoc.c (branch_fixup): Update.
9099         * tree-ssa-tail-merge.c (replace_block_by): Update.
9100         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
9101         (compute_path_counts): Update.
9102         (update_profile): Update.
9103         (recompute_probabilities): Update.
9104         (update_joiner_offpath_counts): Update.
9105         (estimated_freqs_path): Update.
9106         (freqs_to_counts_path): Update.
9107         (clear_counts_path): Update.
9108         (ssa_fix_duplicate_block_edges): Update.
9109         (duplicate_thread_path): Update.
9110         * tree-switch-conversion.c (case_bit_test_cmp): Update.
9111         (struct switch_conv_info): Update.
9112         * tree-tailcall.c (decrease_profile): Update.
9113         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
9114         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
9115         * value-prof.c (check_counter): Update.
9116         (gimple_divmod_fixed_value): Update.
9117         (gimple_mod_pow2): Update.
9118         (gimple_mod_subtract): Update.
9119         (gimple_ic_transform): Update.
9120         (gimple_stringop_fixed_value): Update.
9121         * value-prof.h (gimple_ic): Update.
9123 2017-06-02  Carl Love  <cel@us.ibm.com>
9125         * config/rs6000/rs6000-c: Add support for built-in functions
9126         vector double vec_doublee (vector signed int);
9127         vector double vec_doublee (vector unsigned int);
9128         vector double vec_doublee (vector float);
9129         vector double vec_doubleh (vector signed int);
9130         vector double vec_doubleh (vector unsigned int);
9131         vector double vec_doubleh (vector float);
9132         vector double vec_doublel (vector signed int);
9133         vector double vec_doublel (vector unsigned int);
9134         vector double vec_doublel (vector float);
9135         vector double vec_doubleo (vector signed int);
9136         vector double vec_doubleo (vector unsigned int);
9137         vector double vec_doubleo (vector float);.
9138         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
9139         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
9140         UNS_DOUBLEL.
9141         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
9142         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
9143         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
9144         VS_sxwsp.
9145         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
9146         vec_doublel, vec_doubleh.
9147         * doc/extend.texi: Update the built-in documentation file for the
9148         new built-in functions.
9150 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
9152         PR jit/80954
9153         * ipa-inline-analysis.c (free_growth_caches): Set
9154         edge_removal_hook_holder to NULL after removing it.
9156 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
9158         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
9159         comparision with zero.
9161 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
9162         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
9163         for early expansion of vec_min and vec_max builtins.
9164         (builtin_function_type): Add min/max unsigned variants to those
9165         identified as having unsigned arguments.
9167 2017-06-02  Olivier Hainque  <hainque@adacore.com>
9169         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
9171 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9173         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
9174         Use VALL_F16 iterator rather than VALL.
9176 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9178         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
9179         Emit CBNZ inside loop when doing a strong exchange and comparing
9180         against zero.  Generate the CC flags after the loop.
9182 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
9184         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
9185         (dl_section_ref): New.
9186         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
9187         On AIX, append an expression to subtract the size of the
9188         section length to dl_section_ref.
9190 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
9192         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
9193         for early expansion of vector absolute builtins.
9195 2017-06-02  Richard Biener  <rguenther@suse.de>
9197         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
9198         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
9200 2017-06-02  Richard Biener  <rguenther@suse.de>
9202         PR tree-optimization/80948
9203         * tree-tailcall.c (find_tail_calls): Track stmts to move in
9204         stmt order as well.
9206 2017-06-02  Richard Biener  <rguenther@suse.de>
9208         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
9209         PHIs are ok.
9210         * tree-vect-stmts.c (process_use): Do not mark backedge defs
9211         for inductions as relevant.
9213 2017-06-02  Richard Biener  <rguenther@suse.de>
9215         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
9216         (vectorizable_induction): ... this.  Remove dead code.
9218 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
9220         * builtins. (expand_builtin_alloca): Remove second parameter and
9221         infer its value from the first parameter instead.
9222         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
9224 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
9226         PR rtl-optimization/80903
9227         * loop-doloop.c (add_test): Unshare sequence.
9229 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9231         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
9233 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9235         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
9236         static.
9237         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
9238         xlogue_layout::get_instance, logue_layout::xlogue_layout,
9239         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
9240         (xlogue_layout::get_stub_rtx): Make static.
9241         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
9242         (xlogue_layout::compute_stub_managed_regs): Rename to...
9243         (xlogue_layout::count_stub_managed_regs): ...this.
9244         (xlogue_layout::is_stub_managed_reg): New function.
9245         (xlogue_layout::m_stub_names): Rename to...
9246         (xlogue_layout::s_stub_names): ...this, make static.
9247         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
9248         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
9249         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
9250         xlogue_layout::s_stub_names): Instantiate statics.
9251         (stub_managed_regs): Remove.
9252         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
9253         (disable_call_ms2sysv_xlogues): Rename to...
9254         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
9255         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
9256         warning logic.
9257         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
9258         change after reload_completed.
9259         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
9260         directly.
9261         (ix86_expand_prologue): Likewise.
9262         (ix86_expand_epilogue): Likewise.
9263         (ix86_expand_split_stack_prologue): Likewise.
9264         (ix86_compute_frame_layout): Remove frame parameter ...
9265         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
9266         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
9267         only if necessary.
9268         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
9269         (ix86_frame): Move from here ...
9270         * config/i386/i386.h (ix86_frame): ... to here.
9271         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
9272         complete ix86_frame data structure instead.  Remove some_ld_name.
9274 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
9276         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
9277         symbols that hold a DECL_VALUE_EXPR.
9279 2017-06-01  Martin Jambor  <mjambor@suse.cz>
9281         PR tree-optimization/80898
9282         * tree-sra.c (process_subtree_disqualification): Removed.
9283         (disqualify_candidate): Do not acll
9284         process_subtree_disqualification.
9285         (subtree_mark_written_and_enqueue): New function.
9286         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
9287         RHS has been disqualified and re-queue LHS if necessary.  Apart
9288         from that, ignore disqualified RHS.
9290 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9292         * config/s390/s390.c (s390_emit_epilogue): Disable early return
9293         address fetch for z10 or later.
9295 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
9297         * config/arc/arc.md (tst_movb): Add guard when splitting.
9299 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
9301         * config/arc/arc.c (arc_can_eliminate): Test against
9302         arc_frame_pointer_needed.
9304 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
9306         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
9307         to prevent store reordering.
9308         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
9309         (type): Add block type.
9310         (stack_tie): Define special instruction to be used in
9311         expand_prologue.
9313 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
9315         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
9316         constraint. It is not valid for the pattern.
9317         (noncommutative_binary_comparison): Likewise.
9319 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
9321         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
9322         scaled addresses.
9324 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
9326         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
9327         be used by the reg-alloc.
9329 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
9331         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
9332         reg-alloc when having mul64 or mul32x16 instructions.
9333         (mulsidi3): Likewise.
9334         (umulsidi3): Likewise.
9335         (mulsi32x16): New pattern.
9336         (mulsi64): Likewise.
9337         (mulsidi64): Likewise.
9338         (umulsidi64): Likewise.
9339         (MUL32x16_REG): Define.
9340         (mul64_600): Use MUL32x16_REG.
9341         (mac64_600): Likewise.
9342         (umul64_600): Likewise.
9343         (umac64_600): Likewise.
9345 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
9347         * config/arc/arc.md (mulsi3_700): Make it commutative.
9349 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
9351         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
9352         type for movstouw.
9353         (*sign_extendsidi2_insn): Likewise for movstosw.
9355 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
9357         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
9358         the type of the input discriminant value.  Convert the
9359         discriminant value of signedness vary.
9361 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
9363         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
9364         Add to -Wall section.
9366 2017-06-01  Richard Biener  <rguenther@suse.de>
9368         PR middle-end/66313
9369         * fold-const.c (fold_plusminus_mult_expr): If the factored
9370         factor may be zero use a wrapping type for the inner operation.
9371         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
9372         and handle moved defs.
9373         (process_assignment): Properly guard the unary op case.  Return a
9374         tri-state indicating that moving the stmt before the call may allow
9375         to continue.  Pass through to_move.
9376         (find_tail_calls): Handle moving unrelated defs before
9377         the call.
9379 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
9381         PR target/80618
9382         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
9383         splitter result in the canonical way.
9385 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
9387         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
9388         also for 32bit target.  Update insn attributes.
9389         (zero-extendsidi2 splitter): Allow all registers for operand 1.
9391 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
9393         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
9394         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
9395         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
9396         (_mm_maskz_min_ss): New intrinsics.
9398 2017-05-31  Martin Liska  <mliska@suse.cz>
9400         * tree-vect-loop.c (vect_create_epilog_for_reduction):
9401         Change comment style to one we normally use.
9402         (vectorizable_reduction): Likewise.
9403         (vectorizable_induction): Likewise.
9404         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
9405         (vectorizable_call): Likewise.
9406         (vectorizable_simd_clone_call): Likewise.
9407         (vectorizable_conversion): Likewise.
9408         (vectorizable_assignment): Likewise.
9409         (vectorizable_shift): Likewise.
9410         (vectorizable_operation): Likewise.
9411         (vectorizable_store): Likewise.
9412         (vectorizable_load): Likewise.
9413         * tree-vectorizer.h: Likewise.
9415 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
9417         * passes.c (emergency_dump_function): New.
9418         * tree-pass.h (emergency_dump_function): Declare.
9419         * plugin.c (plugins_internal_error_function): Remove.
9420         * plugin.h (plugins_internal_error_function): Remove declaration.
9421         * toplev.c (internal_error_function): New static function.  Use it...
9422         (general_init): ...here.
9424 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
9426         * config/arc/arc.c (arc_print_operand): Handle constant operands.
9427         (arc_rtx_costs): Add costs for new patterns.
9428         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
9429         * config/arc/predicates.md: Add _1_2_3_operand predicate.
9431 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
9433         * tree-ssa-strlen.c (get_next_strinfo): New function.
9434         (get_stridx_plus_constant): Use it.
9435         (zero_length_string): Likewise.
9436         (adjust_related_strinfos): Likewise.
9437         (adjust_last_stmt): Likewise.
9439 2017-05-31  Richard Biener  <rguenther@suse.de>
9441         PR target/80880
9442         * config/i386/i386.c (ix86_expand_builtin): Remove assert
9443         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
9445 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
9447         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
9448         loop_vinfo argument and use of dependence distance vectors.
9449         Check instead whether the two references differ only in their
9450         initial value and assume that they have the same alignment if the
9451         difference is a multiple of the vector alignment.
9452         (vect_analyze_data_refs_alignment): Update call accordingly.
9454 2017-05-31  Martin Liska  <mliska@suse.cz>
9456         PR target/79155
9457         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
9459 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
9461         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
9462         (create_intersect_range_checks): Move from ...
9463         * tree-data-ref.c (create_intersect_range_checks_index)
9464         (create_intersect_range_checks): ... to here.
9465         (create_runtime_alias_checks): New function factored from ...
9466         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
9467         here.  Call above function.
9468         * tree-data-ref.h (create_runtime_alias_checks): New function.
9470 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
9472         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
9473         segment length for dr_b and compute it in wide_int.
9475 2017-05-31  Richard Biener  <rguenther@suse.de>
9477         PR tree-optimization/80906
9478         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
9479         and pass through iv_map.
9480         (copy_bb_and_scalar_dependences): Adjust.
9481         (translate_pending_phi_nodes): Likewise.
9482         (copy_loop_close_phi_args): Handle code-generating IVs instead
9483         of ICEing.
9485 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
9487         * diagnostic-color.c (color_dict): Add "type-diff".
9488         (parse_gcc_colors): Update comment.
9489         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
9490         -fdiagnostics-show-template-tree and -fno-elide-type.
9491         (GCC_COLORS): Add type-diff to example.
9492         (type-diff=): New.
9493         (-fdiagnostics-show-template-tree): New.
9494         (-fno-elide-type): New.
9495         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
9496         the pp_format_decoder callback.  Call any m_format_postprocessor's
9497         "handle" method.
9498         (pretty_printer::pretty_printer): Initialize
9499         m_format_postprocessor.
9500         (pretty_printer::~pretty_printer): Delete any
9501         m_format_postprocessor.
9502         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
9503         (class format_postprocessor): New class.
9504         (struct pretty_printer::format_decoder): Document the new parameters.
9505         (struct pretty_printer::m_format_postprocessor): New field.
9506         * tree-diagnostic.c (default_tree_printer): Update for new
9507         bool and const char ** params.
9508         * tree-diagnostic.h (default_tree_printer): Likewise.
9510 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
9512         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
9513         (lwa_operand): Delete rs6000_gen_cell_microcode test.
9514         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
9515         rs6000_gen_cell_microcode code.
9516         (rs6000_final_prescan_insn): Delete.
9517         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
9518         "warn-cell-microcode" entries.
9519         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
9520         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
9521         throughout.  Change cc_reg_not_micro_cr0_operand to
9522         cc_reg_not_cr0_operand throughout.
9523         (*extendhi<mode>2_noload): Delete.
9524         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
9525         (mwarn-cell-microcode): Delete.
9526         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
9527         -mgen-cell-microcode and -mwarn-cell-microcode.
9529 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
9531         PR target/80833
9532         * config/i386/constraints.md (Yd): New constraint.
9533         (Ye): Ditto.
9534         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
9535         and (?Yd, r) alternatives.  Update insn attributes.
9536         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
9537         and (?*Yd, r) alternatives.  Update insn attributes.
9538         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
9540 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
9542         * gimplify.c (gimplify_modify_expr): Don't create a
9543         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
9544         function.
9546 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
9548         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
9550 2017-05-30  Richard Biener  <rguenther@suse.de>
9552         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
9553         and reduc_def fields.
9554         (STMT_VINFO_REDUC_TYPE): New define.
9555         (STMT_VINFO_REDUC_DEF): Likewise.
9556         (vect_force_simple_reduction): Adjust prototype.
9557         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
9558         (vect_is_simple_reduction): Remove check_reduction argument.
9559         (vect_force_simple_reduction): Adjust and set
9560         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
9561         (vectorizable_reduction): Do not re-do reduction analysis
9562         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
9563         * tree-parloops.c (gather_scalar_reductions): Adjust.
9565 2017-05-30  Richard Biener  <rguenther@suse.de>
9567         PR middle-end/80901
9568         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
9569         split_edge code.
9571 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
9573         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
9574         Introduce unknown_misalignment parameter and remove vf.
9575         (vect_peeling_hash_get_lowest_cost):
9576         Pass unknown_misalignment parameter.
9577         (vect_enhance_data_refs_alignment):
9578         Fix unsupportable data ref treatment.
9580 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
9582         * tree-vect-data-refs.c (vect_get_data_access_cost):
9583         Workaround for SLP handling.
9584         (vect_enhance_data_refs_alignment):
9585         Compute costs for doing no peeling at all, compare to the best
9586         peeling costs so far and avoid peeling if cheaper.
9588 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
9590         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
9591         Return peeling info and set costs to zero for unlimited cost
9592         model.
9593         (vect_enhance_data_refs_alignment): Also inspect all datarefs
9594         with unknown misalignment. Compute and costs for unknown
9595         misalignment, compare them to the costs for known misalignment
9596         and choose the cheapest for peeling.
9598 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
9600         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
9601         (vect_get_peeling_costs_all_drs): Create function.
9602         (vect_peeling_hash_get_lowest_cost):
9603         Use vect_get_peeling_costs_all_drs.
9604         (vect_peeling_supportable): Create function.
9605         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
9607 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
9609         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
9610         DR_HAS_NEGATIVE_STEP.
9611         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
9612         (vect_enhance_data_refs_alignment): Use.
9613         (vect_duplicate_ssa_name_ptr_info): Use.
9614         * tree-vectorizer.h (dr_misalignment): Use.
9615         (known_alignment_for_access_p): Use.
9617 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
9619         PR target/78838
9620         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
9621         .lowtext.
9622         (has_section_name): New function.
9624 2017-05-30  Martin Liska  <mliska@suse.cz>
9626         PR other/80909
9627         * auto-profile.c (get_function_decl_from_block): Fix
9628         parenthesis.
9630 2017-05-30  Richard Biener  <rguenther@suse.de>
9632         PR middle-end/80876
9633         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
9635 2017-05-30  Martin Liska  <mliska@suse.cz>
9637         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
9638         * dumpfile.h (struct dump_file_info): Remove ctors.
9640 2017-05-30  Martin Liska  <mliska@suse.cz>
9642         * predict.def: Fix GNU coding style.
9644 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
9646         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
9647         Mark 'to' argument with ATTRIBUTE_UNUSED.
9649 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
9651         * config/xtensa/xtensa.c (xtensa_emit_call): Use
9652         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
9653         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
9654         format string.
9656 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
9658         * doc/install.texi (Options specification): Restore entry of
9659         --enable-sjlj-exceptions.
9661 2017-05-27  Michael Eager  <eager@eagercon.com>
9663         Revert:
9664         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
9666         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
9668         * config/microblaze/microblaze.h
9669         (FIXED_REGISTERS): Update in macro.
9670         (CALL_USED_REGISTERS): Update in macro.
9672 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
9674         * doc/install.texi: Add links to macOS binary distributions.
9676 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
9678         PR bootstrap/80887
9679         Revert:
9680         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
9682         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
9684 2017-05-26  Martin Liska  <mliska@suse.cz>
9686         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
9688 2017-05-26  Martin Liska  <mliska@suse.cz>
9690         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
9691         always leading ';; '.
9692         (dump_bb_info): Likewise.
9693         (brief_dump_cfg): Likewise.
9694         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
9695         * dumpfile.c: Remove usage of TDF_VERBOSE.
9696         * dumpfile.h (enum dump_kind): Likewise.
9697         (dump_gimple_bb_header): Do not use TDF_COMMENT.
9698         * print-tree.c (debug_verbose): Remove.
9699         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
9700         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
9701         * tree-diagnostic.c (default_tree_printer): Replace
9702         TDF_DIAGNOSTIC with TDF_SLIM.
9704 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
9706         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
9707         in parameter loop, rather than loop_vinfo.
9708         (create_intersect_range_checks): Ditto.
9709         (vect_create_cond_for_alias_checks): Update call to above functions.
9711 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
9713         PR tree-optimization/80815
9714         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
9715         for merging runtime alias checks.  Handle negative DR_STEPs.
9717 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
9719         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
9720         Move from ...
9721         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
9722         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
9723         out code pruning runtime alias checks.
9724         * tree-data-ref.c (prune_runtime_alias_test_list): New function
9725         factored out from above.
9726         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
9727         Move from ...
9728         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
9729         ... to here.
9730         (prune_runtime_alias_test_list): New decalaration.
9732 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
9734         * tree-vect-data-refs.c (compare_tree): Rename and move ...
9735         * tree-data-ref.c (data_ref_compare_tree): ... to here.
9736         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
9737         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
9738         (operator==, comp_dr_with_seg_len_pair): Ditto.
9739         (vect_prune_runtime_alias_test_list): Ditto.
9741 2017-05-26  Martin Liska  <mliska@suse.cz>
9743         PR ipa/80663
9744         * params.def: Bound partial-inlining-entry-probability param.
9746 2017-05-26  Marek Polacek  <polacek@redhat.com>
9748         PR sanitizer/80875
9749         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
9750         can be negated.
9752 2017-05-26  Richard Biener  <rguenther@suse.de>
9754         PR tree-optimization/80842
9755         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
9756         value.
9758 2017-05-26  Richard Biener  <rguenther@suse.de>
9760         PR tree-optimization/80844
9761         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
9763 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
9765         * doc/md.texi (Machine Constraints): Update x86 family
9766         machine constraints section to match 'config/i386/constraints.md'.
9768 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
9770         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
9772 2017-05-25  Nathan Sidwell  <nathan@acm.org>
9774         * doc/invoke.texi (--enable-languages): Update documentation.
9776 2017-05-25  Martin Liska  <mliska@suse.cz>
9778         * dumpfile.c: Add TDF_FOLDING.
9779         * dumpfile.h (enum dump_kind): Likewise.
9780         * genmatch.c (dt_simplify::gen_1): Use it.
9782 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
9784         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
9786 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
9788         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
9789         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
9791 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
9793         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
9794         * match.pd (X == C): Rewrite it here.
9795         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
9796         with_certain_nonzero_bits2): New predicates.
9797         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
9799 2017-05-24  Nathan Sidwell  <nathan@acm.org>
9801         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
9802         avoid warning.
9804         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
9805         warning.
9807 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
9809         * config/powerpcspe: New port.  Files are copied from the rs6000
9810         port, with "rs6000" in filenames replaced by "powerpcspe".
9812 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
9814         PR rtl-optimization/80754
9815         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
9817 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
9819         * config/sparc/sparc.md (length): Return the correct value for -mflat
9820         sibcalls to match output_sibcall.
9822 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
9824         PR bootstrap/80860
9825         PR bootstrap/80843
9826         * config/rs6000/rs6000.c (struct machine_function): Add new field
9827         n_components.
9828         (rs6000_get_separate_components): Init that field, use it.
9829         (rs6000_components_for_bb): Use the field.
9831 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9833         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
9835 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
9837         PR middle-end/80823
9838         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
9840 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9842         PR target/80725
9843         * config/s390/s390.c (s390_check_qrst_address): Check incoming
9844         address against address_operand predicate.
9845         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
9847 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
9849         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
9850         parameters passed indirectly.
9852 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
9854         * config/i386/i386.md (*movdi_internal): Remove SSE4
9855         alternative 18 (?r, *v).  Update insn attributes.
9856         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
9857         Update insn attributes.
9858         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
9859         Update insn attributes.
9860         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
9861         alternative 1 (r, v). Remove isa attribute.
9862         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
9863         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
9864         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
9866 2017-05-23  Tom de Vries  <tom@codesourcery.com>
9868         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
9869         dg-line directive.
9871 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
9873         * cgraphunit.c (symbol_table::process_new_functions): Update.
9874         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
9875         (inline_generate_summary): Rename to ...
9876         (ipa_fn_summary_generate): ... this one.
9877         (inline_read_summary): Rename to ...
9878         (ipa_fn_summary_read): ... this one.
9879         (inline_write_summary): Rename to ...
9880         (ipa_fn_summary_write): ... this one.
9881         (inline_free_summary): Rename to ...
9882         (ipa_free_fn_summary): ... this one.
9883         (pass_data_local_fn_summary, pass_local_fn_summary,
9884         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
9885         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
9886         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
9887         make_pass_ipa_fn_summary): New.
9888         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
9889         inline_write_summary, inline_free_summary): Remove.
9890         (ipa_free_fn_summary) : New.
9891         * ipa-inline.c (ipa_inline): Update.
9892         (pass_ipa_inline): Do not generate summaries.
9893         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
9894         Remove.
9895         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
9896         and add pass_ipa_fn_summary.
9897         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
9898         New.
9899         (make_pass_inline_parameters): Remove.
9901 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
9903         * omp-low.c (struct omp_context): Remove "default_kind" member.
9904         Adjust all users.
9906         * omp-offload.c (execute_oacc_device_lower): Remove the
9907         parallelism dimensions function attributes for unparallelized
9908         OpenACC kernels constructs.
9910 2017-05-23  Martin Liska  <mliska@suse.cz>
9912         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
9913         functions.
9914         (cgraph_edge::make_speculative): Likewise.
9915         (cgraph_edge::resolve_speculation): Likewise.
9916         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
9917         (cgraph_node::dump): Likewise.
9918         * cgraph.h: Likewise.
9919         * cgraphunit.c (analyze_functions): Likewise.
9920         (symbol_table::compile): Likewise.
9921         * ipa-cp.c (print_all_lattices): Likewise.
9922         (determine_versionability): Likewise.
9923         (initialize_node_lattices): Likewise.
9924         (ipcp_verify_propagated_values): Likewise.
9925         (estimate_local_effects): Likewise.
9926         (update_profiling_info): Likewise.
9927         (create_specialized_node): Likewise.
9928         (perhaps_add_new_callers): Likewise.
9929         (decide_about_value): Likewise.
9930         (decide_whether_version_node): Likewise.
9931         (identify_dead_nodes): Likewise.
9932         (ipcp_store_bits_results): Likewise.
9933         * ipa-devirt.c (dump_targets): Likewise.
9934         (ipa_devirt): Likewise.
9935         * ipa-icf.c (sem_item::dump): Likewise.
9936         (sem_function::equals): Likewise.
9937         (sem_variable::equals): Likewise.
9938         (sem_item_optimizer::read_section): Likewise.
9939         (sem_item_optimizer::execute): Likewise.
9940         (congruence_class::dump): Likewise.
9941         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
9942         (dump_inline_summary): Likewise.
9943         (estimate_node_size_and_time): Likewise.
9944         (inline_analyze_function): Likewise.
9945         * ipa-inline-transform.c (inline_call): Likewise.
9946         * ipa-inline.c (report_inline_failed_reason): Likewise.
9947         (want_early_inline_function_p): Likewise.
9948         (edge_badness): Likewise.
9949         (update_edge_key): Likewise.
9950         (inline_small_functions): Likewise.
9951         * ipa-profile.c (ipa_profile): Likewise.
9952         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
9953         (ipa_make_edge_direct_to_target): Likewise.
9954         (remove_described_reference): Likewise.
9955         (ipa_impossible_devirt_target): Likewise.
9956         (propagate_controlled_uses): Likewise.
9957         (ipa_print_node_params): Likewise.
9958         (ipcp_transform_function): Likewise.
9959         * ipa-pure-const.c (pure_const_read_summary): Likewise.
9960         (propagate_pure_const): Likewise.
9961         * ipa-reference.c (generate_summary): Likewise.
9962         (read_write_all_from_decl): Likewise.
9963         (propagate): Likewise.
9964         (ipa_reference_read_optimization_summary): Likewise.
9965         * ipa-utils.c (ipa_merge_profiles): Likewise.
9966         * ipa.c (walk_polymorphic_call_targets): Likewise.
9967         (symbol_table::remove_unreachable_nodes): Likewise.
9968         (ipa_single_use): Likewise.
9969         * passes.c (execute_todo): Likewise.
9970         * predict.c (drop_profile): Likewise.
9971         * symtab.c (symtab_node::get_dump_name): New function.
9972         (symtab_node::dump_name): Likewise.
9973         (symtab_node::dump_asm_name): Likewise.
9974         (symtab_node::dump_references): Likewise.
9975         (symtab_node::dump_referring): Likewise.
9976         (symtab_node::dump_base): Likewise.
9977         (symtab_node::debug_symtab): Likewise.
9978         * tree-sra.c (convert_callers_for_node): Likewise.
9979         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
9980         * value-prof.c (init_node_map): Likewise.
9982 2017-05-23  Martin Liska  <mliska@suse.cz>
9984         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
9985         and symtab_node::debug_symtab to symbol_table::debug.
9986         * cgraphunit.c (analyze_functions): Use the renamed function.
9987         (symbol_table::compile): Likewise.
9988         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
9989         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
9990         * passes.c (execute_todo): Likewise.
9991         * symtab.c (symbol_table::dump): New function.
9992         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
9994 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
9996         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
9997         that nonconst implies exec.
9999 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
10001         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
10002         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
10003         (inline_edge_summary_vec): Turn into ...
10004         (ipa_call_summaries): ... this one.
10005         (redirect_to_unreachable, edge_set_predicate,
10006         evaluate_properties_for_edge, inline_summary_alloc,
10007         reset_ipa_call_summary, reset_inline_summary,
10008         inline_summary_t::duplicate): Update.
10009         (inline_edge_duplication_hook): Turn to ...
10010         (ipa_call_summary_t::duplicate): ... this one.
10011         (inline_edge_removal_hook): Turn to ...
10012         (ipa_call_summary_t::remove): ... this one.
10013         (dump_inline_edge_summary): Turn to ...
10014         (dump_ipa_call_summary): ... this one.
10015         (estimate_function_body_sizes): Update.
10016         (inline_update_callee_summaries): Update.
10017         (remap_edge_change_prob): Update.
10018         (remap_edge_summaries): Update.
10019         (inline_merge_summary): Update.
10020         (do_estimate_edge_time): Update.
10021         (inline_generate_summary): Update.
10022         (inline_read_section): Update.
10023         (inline_read_summary): Update.
10024         (inline_free_summary): Update.
10025         * ipa-inline.c (can_inline_edge_p): Update.
10026         (compute_inlined_call_time): Update.
10027         (want_inline_small_function_p): Update.
10028         (edge_badness): Update.
10029         (early_inliner): Update.
10030         * ipa-inline.h (inline_edge_summary): Turn to ...
10031         (ipa_call_summary): ... this one.
10032         (ipa_call_summary_t): New class.
10033         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
10034         (ipa_call_summaries): New.
10035         (inline_edge_summary): Remove.
10036         (estimate_edge_growth): Update.
10037         * ipa-profile.c (ipa_propagate_frequency_1): Update.
10038         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
10039         * ipa-split.c (execute_split_functions): Update.
10040         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
10042 2017-05-23  Tom de Vries  <tom@codesourcery.com>
10044         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
10045         attributes): Document rdrand effective target.
10047 2017-05-23  Tom de Vries  <tom@codesourcery.com>
10049         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
10050         attributes): Sort alphabetically.
10052 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
10054         * config/avr/genmultilib.awk: Use gsub instead of gensub.
10056 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
10058         PR target/80718
10059         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
10060         V2DF/V2DI splat into two separate patterns, one that handles
10061         registers, and the other that only handles memory.  Drop support
10062         for splatting from a GPR on ISA 2.07 and then splitting the
10063         splat into direct move and splat.
10064         (vsx_splat_<mode>_reg): Likewise.
10065         (vsx_splat_<mode>_mem): Likewise.
10067 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
10069         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
10071 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
10073         PR middle-end/80809
10074         * omp-low.c (finish_taskreg_remap): New function.
10075         (finish_taskreg_scan): If unit size of ctx->record_type
10076         is non-constant, unshare the size expression and replace
10077         decls in it with possible outer var refs.
10079         PR middle-end/80809
10080         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
10081         GOVD_SHARED rather than GOVD_PRIVATE with it.
10082         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
10083         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
10085         PR middle-end/80853
10086         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
10087         as last argument to build_outer_var_ref for pointer bases of array
10088         section reductions.
10090 2017-05-19  Martin Sebor  <msebor@redhat.com>
10092         * print-tree.c (print_node): Print DECL_READ_P flag.
10094 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
10096         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
10097         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
10098         * cgraph.c: Likewise.
10099         * cgraphunit.c: Likewise.
10100         * gengtype.c: Likewise.
10101         * ipa-cp.c: Likewise.
10102         * ipa-devirt.c: Likewise.
10103         * ipa-icf.c: Likewise.
10104         * ipa-predicate.c: Likewise.
10105         * ipa-profile.c: Likewise.
10106         * ipa-prop.c: Likewise.
10107         * ipa-split.c: Likewise.
10108         * ipa.c: Likewise.
10109         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
10110         edge_predicate_pool, dump_inline_hints,
10111         inline_summary::account_size_time, redirect_to_unreachable,
10112         edge_set_predicate, set_hint_predicate,
10113         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
10114         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
10115         inline_summary_t::remove, remap_hint_predicate_after_duplication,
10116         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
10117         ipa_call_summary_t::remove, initialize_growth_caches,
10118         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
10119         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
10120         mark_modified, unmodified_parm_1, unmodified_parm,
10121         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
10122         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
10123         compute_bb_predicates, will_be_nonconstant_expr_predicate,
10124         will_be_nonconstant_predicate, record_modified_bb_info,
10125         get_minimal_bb, record_modified, param_change_prob,
10126         phi_result_unknown_predicate, predicate_for_phi_result,
10127         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
10128         estimate_function_body_sizes, compute_inline_parameters,
10129         compute_inline_parameters_for_curren, pass_data_inline_parameters,
10130         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
10131         inline_update_callee_summaries, remap_edge_change_prob,
10132         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
10133         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
10134         inline_analyze_function, inline_summary_t::insert,
10135         inline_generate_summary, read_ipa_call_summary, inline_read_section,
10136         inline_read_summary, write_ipa_call_summary, inline_write_summary,
10137         inline_free_summary): Move to ipa-fnsummary.h
10138         (predicate_t): Remove.
10139         * ipa-fnsummary.c: New file.
10140         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
10141         (enum inline_hints_vals, inline_hints, agg_position_info,
10142         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
10143         inline_summaries, ipa_call_summary, ipa_call_summary_t,
10144         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
10145         dump_inline_summary, dump_inline_hints, inline_generate_summary,
10146         inline_read_summary, inline_write_summary, inline_free_summary,
10147         inline_analyze_function, initialize_inline_failed,
10148         inline_merge_summary, inline_update_overall_summary,
10149         compute_inline_parameters): Move to ipa-fnsummary.h
10150         * ipa-fnsummary.h: New file.
10151         * ipa-inline-transform.h: Include ipa-inline.h.
10152         * ipa-inline.c: LIkewise.
10154 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
10156         * ipa-inline.c (edge_badness): Use inlined_time instead of
10157         inline_summaries->get.
10159 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
10161         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
10163 2017-05-22  Nathan Sidwell  <nathan@acm.org>
10165         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
10166         (fdump-lang): Document 'raw' option.
10167         * dumpfile.h (TDI_tu): Delete.
10168         * dumpfile.c (dump_files): Remove translation-unit.
10169         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
10171 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
10173         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
10174         command option from $(AWK) call.
10175         * config/avr/genmultilib.awk: Simplify and rewrite so that it
10176         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
10177         [FORMAT]: Remove handling of variable.
10178         * config/avr/t-multilib: Regenerate.
10180 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
10182         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
10183         self_time.
10184         (dump_inline_summary): Do not print self_time.
10185         (estimate_function_body_sizes): Do not set self_time.
10186         (compute_inline_parameters): Likewise.
10187         (inline_read_section, inline_write_summary): Do not stream self_time.
10188         * ipa-inline.h (inline_summary): Drop self_time.
10190 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
10192         * ipa-inline-analysis.c (account_size_time): Rename to ...
10193         (inline_summary::account_size_time): ... this one.
10194         (reset_ipa_call_summary): Turn to ...
10195         (ipa_call_summary::reset): ... this one.
10196         (reset_inline_summary): Turn to ...
10197         (inline_summary::reset): ... this one.
10198         (inline_summary_t::remove): Update.
10199         (inline_summary_t::duplicate): Update.
10200         (ipa_call_summary_t::remove): Update.
10201         (dump_inline_summary): Update.
10202         (estimate_function_body_sizes): Update.
10203         (compute_inline_parameters): Update.
10204         (estimate_node_size_and_time): Update.
10205         (inline_merge_summary): Update.
10206         (inline_update_overall_summary): Update.
10207         (inline_read_section): Update.
10208         (inline_write_summary): Update.
10209         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
10210         add account_size_time and reset member functions.
10211         (ipa_call_summary): Add reset function.
10212         * ipa-predicate.h (predicate::operator &): Constify.
10214 2017-05-22  Richard Biener  <rguenther@suse.de>
10216         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
10218 2017-05-19  Jason Merrill  <jason@redhat.com>
10220         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
10222 2017-05-19  Marek Polacek  <polacek@redhat.com>
10224         PR sanitizer/80800
10225         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
10226         TYPE_OVERFLOW_WRAPS checks.
10228 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
10230         * tree-core.h (enum omp_clause_default_kind): Add
10231         "OMP_CLAUSE_DEFAULT_PRESENT".
10232         * tree-pretty-print.c (dump_omp_clause): Handle it.
10233         * gimplify.c (enum gimplify_omp_var_data): Add
10234         "GOVD_MAP_FORCE_PRESENT".
10235         (gimplify_adjust_omp_clauses_1): Map it to
10236         "GOMP_MAP_FORCE_PRESENT".
10237         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
10239         * gimplify.c (oacc_default_clause): Clarify.
10241 2017-05-19  Nathan Sidwell  <nathan@acm.org>
10243         LANG_HOOK_REGISTER_DUMPS
10244         * toplev.c (general_init): Call register dump lang hook.
10245         * doc/invoke.texi: Document -fdump-lang option family.
10246         * dumpfile.c (dump_files): Remove class dump here.
10247         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
10248         * dumpfile.h (tree_dump_index): Remove TDI_class.
10249         * langhooks-def.h (lhd_register_dumps): Declare.
10250         (LANG_HOOKS_REGISTER_DUMPS): Define.
10251         (LANG_HOOKS_INITIALIZER): Add it.
10252         * langhooks.c (lhd_register_dumps): Define.
10253         * langhooks.h (struct lang_hooks): Add register_dumps.
10255 2017-05-19  Nathan Sidwell  <nathan@acm.org>
10257         * context.h (context::set_passes): New.
10258         * context.c (context::context): Do not create pass manager.
10259         * toplev.c (general_init): Create pass manager here.
10261 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
10263         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
10264         use this splitter if two add or or instructions would also work for
10265         the constant we want to generate.
10267 2017-05-19  Richard Biener  <rguenther@suse.de>
10269         PR build/80821
10270         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
10271         predicate evaluation.
10273 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
10275         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
10276         add ctor.
10277         * ipa-inline.c (want_inline_small_function_p): Do not cast to
10278         unsigned.
10280 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
10282         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
10283         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
10284         (inline_edge_summary_vec): Turn into ...
10285         (ipa_call_summaries): ... this one.
10286         (redirect_to_unreachable, edge_set_predicate,
10287         evaluate_properties_for_edge, inline_summary_alloc,
10288         reset_ipa_call_summary, reset_inline_summary,
10289         inline_summary_t::duplicate): Update.
10290         (inline_edge_duplication_hook): Turn to ...
10291         (ipa_call_summary_t::duplicate): ... this one.
10292         (inline_edge_removal_hook): Turn to ...
10293         (ipa_call_summary_t::remove): ... this one.
10294         (dump_inline_edge_summary): Turn to ...
10295         (dump_ipa_call_summary): ... this one.
10296         (estimate_function_body_sizes): Update.
10297         (inline_update_callee_summaries): Update.
10298         (remap_edge_change_prob): Update.
10299         (remap_edge_summaries): Update.
10300         (inline_merge_summary): Update.
10301         (do_estimate_edge_time): Update.
10302         (inline_generate_summary): Update.
10303         (inline_read_section): Update.
10304         (inline_read_summary): Update.
10305         (inline_free_summary): Update.
10306         * ipa-inline.c (can_inline_edge_p): Update.
10307         (compute_inlined_call_time): Update.
10308         (want_inline_small_function_p): Update.
10309         (edge_badness): Update.
10310         (early_inliner): Update.
10311         * ipa-inline.h (inline_edge_summary): Turn to ...
10312         (ipa_call_summary): ... this one.
10313         (ipa_call_summary_t): New class.
10314         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
10315         (ipa_call_summaries): New.
10316         (inline_edge_summary): Remove.
10317         (estimate_edge_growth): Update.
10318         * ipa-profile.c (ipa_propagate_frequency_1): Update.
10319         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
10320         * ipa-split.c (execute_split_functions): Update.
10321         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
10323 2017-05-19  Richard Biener  <rguenther@suse.de>
10325         PR middle-end/80764
10326         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
10328 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
10330         * config/rs6000/rs6000.c (struct machine_function): Add field
10331         fpr_is_wrapped_separately.
10332         (rs6000_get_separate_components): Use 64 components.  Handle the
10333         new FPR components.
10334         (rs6000_components_for_bb): Handle the FPR components.
10335         (rs6000_emit_prologue_components): Handle the FPR components.
10336         (rs6000_emit_epilogue_components): Handle the FPR components.
10337         (rs6000_set_handled_components): Handle the FPR components.
10338         (rs6000_emit_prologue): Don't output prologue code for those FPRs
10339         that are already separately shrink-wrapped.
10340         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
10341         that are already separately shrink-wrapped.
10343 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
10345         PR target/80510
10346         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
10347         New predicate.
10349         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
10350         (define_peephole2 for Altivec d-form load): Add peepholes to catch
10351         cases where the register allocator uses a move and an offsettable
10352         memory operation to/from a FPR register on ISA 2.06/2.07.
10353         (define_peephole2 for Altivec d-form store): Likewise.
10355 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
10357         PR target/80799
10358         * config/i386/mmx.md (*mov<mode>_internal): Enable
10359         alternatives 11, 12, 13 and 14 also for 32bit targets.
10360         Remove alternatives 15, 16, 17 and 18.
10361         * config/i386/sse.md (vec_concatv2di): Change
10362         alternative (!x, *y) to (x, ?!*Yn).
10364 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
10366         * dumpfile.h (enum dump_kind): Remove stray comma.
10368 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
10370         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
10371         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
10372         predicate::num_conditions
10373         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
10374         (CHANGED): turn into predicate::changed.
10375         (agg_position_info): Move to ipa-predicate.h
10376         (add_condition, predicate::add_clause, predicate::operator &=,
10377         predicate::or_with, predicate::evaluate, predicate::probability,
10378         dump_condition, dump_clause, predicate::dump,
10379         predicate::remap_after_duplication, predicate::remap_after_inlining,
10380         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
10381         (evaluate_conditions_for_known_args): Update.
10382         (set_cond_stmt_execution_predicate): Update.
10383         * ipa-inline.h: Include ipa-predicate.h
10384         (condition, inline_param_summary, conditions, agg_position_info,
10385         predicate): Move to ipa-predicate.h
10386         * ipa-predicate.c: New file.
10387         * ipa-predicate.h: New file.
10389 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
10391         * final.c (leaf_function_p): Check we are not in a sequence.
10393 2017-05-18  Martin Liska  <mliska@suse.cz>
10395         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
10396         * dumpfile.c (dump_register): Use new enum dump_kind.
10397         (get_dump_file_name): Likewise.
10398         (dump_enable_all): Likewise.
10399         (dump_switch_p_1): Likewise.
10400         (enable_rtl_dump_file): Remove usage of TDF_RTL.
10401         * dumpfile.h (enum dump_kind): New enum type.
10402         (struct dump_file_info): Create constructor and
10403         format fields and comments.
10404         * passes.c (pass_manager::register_one_dump_file):
10405         Use num dump_kind.
10406         * statistics.c (statistics_early_init): Likewise.
10407         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
10408         TDF_TREE with TDF_SLIM.
10409         (gather_memory_references_ref): Likewise.
10411 2017-05-18  Martin Liska  <mliska@suse.cz>
10413         * vec.h (struct vnull): Use it.
10415 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
10417         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
10418         (true_predicate, false_predicate, true_predicate_p,
10419         false_predicate_p): Remove.
10420         (single_cond_predicate, not_inlined_predicate): Turn to member function
10421         in ipa-inline.h
10422         (add_condition): Update.
10423         (add_clause): Turn to...
10424         (predicate::add_clause): ... this one; update; allow passing NULL
10425         as parameter.
10426         (and_predicates): Turn to ...
10427         (predicate::operator &=): ... this one.
10428         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
10429         (or_predicates): Turn to ...
10430         (predicate::or_with): ... this one.
10431         (evaluate_predicate): Turn to ...
10432         (predicate::evaluate): ... this one.
10433         (predicate_probability): Turn to ...
10434         (predicate::probability): ... this one.
10435         (dump_condition): Update.
10436         (dump_predicate): Turn to ...
10437         (predicate::dump): ... this one.
10438         (account_size_time): Update.
10439         (edge_set_predicate): Update.
10440         (set_hint_predicate): UPdate.
10441         (evaluate_conditions_for_known_args): Update.
10442         (evaluate_properties_for_edge): Update.
10443         (remap_predicate_after_duplication): Turn to...
10444         (predicate::remap_after_duplication): ... this one.
10445         (remap_hint_predicate_after_duplication): Update.
10446         (inline_summary_t::duplicate): UPdate.
10447         (dump_inline_edge_summary): Update.
10448         (dump_inline_summary): Update.
10449         (set_cond_stmt_execution_predicate): Update.
10450         (set_switch_stmt_execution_predicate): Update.
10451         (compute_bb_predicates): Update.
10452         (will_be_nonconstant_expr_predicate): Update.
10453         (will_be_nonconstant_predicate): Update.
10454         (phi_result_unknown_predicate): Update.
10455         (predicate_for_phi_result): Update.
10456         (array_index_predicate): Update.
10457         (estimate_function_body_sizes): Update.
10458         (estimate_node_size_and_time): Update.
10459         (estimate_ipcp_clone_size_and_time): Update.
10460         (remap_predicate): Rename to ...
10461         (predicate::remap_after_inlining): ... this one.
10462         (remap_hint_predicate): Update.
10463         (inline_merge_summary): Update.
10464         (inline_update_overall_summary): Update.
10465         (estimate_size_after_inlining): Update.
10466         (read_predicate): Rename to ...
10467         (predicate::stream_in): ... this one.
10468         (read_inline_edge_summary): Update.
10469         (write_predicate): Rename to ...
10470         (predicate::stream_out): ... this one.
10471         (write_inline_edge_summary): Update.
10472         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
10473         (clause_t): Turn to uint32_t
10474         (predicate): Turn to class; implement constructor and operators
10475         ==, !=, &
10476         (size_time_entry): Update.
10477         (inline_summary): Update.
10478         (inline_edge_summary): Update.
10480 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
10482         * fold-const.c (fold_binary_loc): Move transformation...
10483         * match.pd (C - X CMP X): ... here.
10485 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
10487         * config/sparc/sparc.c (sparc_option_override): Set function
10488         alignment for -mcpu=niagara7 to 64 to match the I$ line.
10489         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
10490         latency to 1.
10491         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
10492         latency to 2.
10493         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
10495 2017-05-18  Marek Polacek  <polacek@redhat.com>
10497         PR sanitizer/80797
10498         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
10499         (pass_ubsan::execute): Call gimple_assign_single_p instead of
10500         gimple_assign_load_p.
10502 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
10504         PR middle-end/80692
10505         * real.c (do_compare): Give decimal_do_compare preference over
10506         comparing just the signs.
10508 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
10510         * doc/md.texi (Canonicalization of Instructions): Describe the
10511         canonical form of instructions that inherently set a condition
10512         code register.
10514 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
10516         PR middle-end/80775
10517         * tree-cfg.c: Move deletion of unreachable case statements to after
10518         the merging of consecutive case labels.
10520 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10522         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
10523         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
10524         restoring of callee-saved registers.
10526 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
10528         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
10529         * config/visium/visium.c (single_set_and_flags): Likewise.
10530         * config/visium/visium.md (Substitutions): Likewise.
10532 2017-05-17  Martin Liska  <mliska@suse.cz>
10534         * cfg.c: Introduce dump_flags_t type and
10535         use it instead of int type.
10536         * cfg.h: Likewise.
10537         * cfghooks.c: Likewise.
10538         * cfghooks.h (struct cfg_hooks): Likewise.
10539         * cfgrtl.c: Likewise.
10540         * cfgrtl.h: Likewise.
10541         * cgraph.c (cgraph_node::get_body): Likewise.
10542         * coretypes.h: Likewise.
10543         * domwalk.c: Likewise.
10544         * domwalk.h: Likewise.
10545         * dumpfile.c (struct dump_option_value_info): Likewise.
10546         (dump_enable_all): Likewise.
10547         (dump_switch_p_1): Likewise.
10548         (opt_info_switch_p): Likewise.
10549         * dumpfile.h (enum tree_dump_index): Likewise.
10550         (struct dump_file_info): Likewise.
10551         * genemit.c: Likewise.
10552         * generic-match-head.c: Likewise.
10553         * gengtype.c (open_base_files): Likewise.
10554         * gimple-pretty-print.c: Likewise.
10555         * gimple-pretty-print.h: Likewise.
10556         * graph.c (print_graph_cfg): Likewise.
10557         * graphite-scop-detection.c (dot_all_sese): Likewise.
10558         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
10559         * loop-unroll.c (report_unroll): Likewise.
10560         * passes.c (pass_manager::register_one_dump_file): Likewise.
10561         * print-tree.c: Likewise.
10562         * statistics.c: Likewise.
10563         * tree-cfg.c: Likewise.
10564         * tree-cfg.h: Likewise.
10565         * tree-dfa.c: Likewise.
10566         * tree-dfa.h: Likewise.
10567         * tree-dump.c (dump_function): Likewise.
10568         * tree-dump.h (struct dump_info): Likewise.
10569         * tree-pretty-print.c: Likewise.
10570         * tree-pretty-print.h: Likewise.
10571         * tree-ssa-live.c: Likewise.
10572         * tree-ssa-live.h: Likewise.
10573         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
10574         * tree-vect-loop.c: Likewise.
10575         * tree-vect-slp.c: Likewise.
10577 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
10578             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10580         PR tree-optimization/80457
10581         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
10582         of all arguments to a statement as scalar_to_vec operations.
10583         (vectorizable_call): Adjust call to vect_model_simple_cost for
10584         new parameter.
10585         (vectorizable_conversion): Likewise.
10586         (vectorizable_assignment): Likewise.
10587         (vectorizable_shift): Likewise.
10588         (vectorizable_operation): Likewise.
10589         (vectorizable_comparison): Likewise.
10590         (vect_is_simple_cond): Record the def types for operands.
10591         (vectorizable_condition): Likewise, call vect_model_simple_cost.
10592         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
10593         for statement argument count.
10595 2017-05-16  Carl Love  <cel@us.ibm.com>
10597         * config/rs6000/rs6000-c: Add support for built-in functions
10598         vector unsigned long long vec_bperm (vector unsigned long long,
10599                                              vector unsigned char)
10600         vector signed long long vec_mule (vector signed int,
10601                                           vector signed int)
10602         vector unsigned long long vec_mule (vector unsigned int,
10603                                             vector unsigned int)
10604         vector signed long long vec_mulo (vector signed int,
10605                                           vector signed int)
10606         vector unsigned long long vec_mulo (vector unsigned int,
10607                                             vector unsigned int)
10608         vector signed char vec_sldw (vector signed char,
10609                                      vector signed char,
10610                                      const int)
10611         vector unsigned char vec_sldw (vector unsigned char,
10612                                        vector unsigned char,
10613                                        const int)
10614         vector signed short vec_sldw (vector signed short,
10615                                       vector signed short,
10616                                       const int)
10617         vector unsigned short vec_sldw (vector unsigned short,
10618                                         vector unsigned short,
10619                                         const int)
10620         vector signed int vec_sldw (vector signed int,
10621                                     vector signed int,
10622                                     const int)
10623         vector unsigned int vec_sldw (vector unsigned int,
10624                                       vector unsigned int,
10625                                       const int)
10626         vector signed long long vec_sldw (vector signed long long,
10627                                           vector signed long long,
10628                                           const int)
10629         vector unsigned long long vec_sldw (vector unsigned long long,
10630                                             vector unsigned long long,
10631                                             const int)
10632         * config/rs6000/rs6000-c: Add support for built-in functions
10633         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
10634         * config/rs6000/altivec.h: Add defintion for vec_sldw.
10635         * doc/extend.texi: Update the built-in documentation for the
10636         new built-in functions.
10638 2017-05-16  Marek Polacek  <polacek@redhat.com>
10640         PR sanitizer/80536
10641         PR sanitizer/80386
10642         * tree.c (save_expr): Don't fold the expression.
10644 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
10646         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
10647         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
10648         and (?*y,m).  Update insn attributes.
10650 2017-05-16  Martin Liska  <mliska@suse.cz>
10652         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
10653         flags argument of print_gimple_stmt, print_gimple_expr,
10654         print_generic_stmt and print_generic_expr.
10655         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
10656         * coretypes.h: Likewise.
10657         * except.c (dump_eh_tree): Likewise.
10658         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
10659         * gimple-pretty-print.h: Likewise.
10660         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
10661         (backprop::push_to_worklist): Likewise.
10662         (backprop::pop_from_worklist): Likewise.
10663         (backprop::process_use): Likewise.
10664         (backprop::intersect_uses): Likewise.
10665         (note_replacement): Likewise.
10666         * gimple-ssa-store-merging.c
10667         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
10668         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
10669         (pass_store_merging::execute): Likewise.
10670         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
10671         (ssa_base_cand_dump_callback): Likewise.
10672         (dump_incr_vec): Likewise.
10673         (replace_refs): Likewise.
10674         (replace_mult_candidate): Likewise.
10675         (create_add_on_incoming_edge): Likewise.
10676         (create_phi_basis): Likewise.
10677         (insert_initializers): Likewise.
10678         (all_phi_incrs_profitable): Likewise.
10679         (introduce_cast_before_cand): Likewise.
10680         (replace_one_candidate): Likewise.
10681         * gimplify.c (gimplify_expr): Likewise.
10682         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
10683         (set_rename): Likewise.
10684         (rename_uses): Likewise.
10685         (copy_loop_phi_nodes): Likewise.
10686         (add_close_phis_to_merge_points): Likewise.
10687         (copy_loop_close_phi_args): Likewise.
10688         (copy_cond_phi_args): Likewise.
10689         (graphite_copy_stmts_from_block): Likewise.
10690         (translate_pending_phi_nodes): Likewise.
10691         * graphite-poly.c (print_pdr): Likewise.
10692         (dump_gbb_cases): Likewise.
10693         (dump_gbb_conditions): Likewise.
10694         (print_scop_params): Likewise.
10695         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
10696         (build_cross_bb_scalars_use): Likewise.
10697         (gather_bbs::before_dom_children): Likewise.
10698         * hsa-dump.c (dump_hsa_immed): Likewise.
10699         * ipa-cp.c (print_ipcp_constant_value): Likewise.
10700         (get_replacement_map): Likewise.
10701         * ipa-inline-analysis.c (dump_condition): Likewise.
10702         (estimate_function_body_sizes): Likewise.
10703         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
10704         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
10705         * ipa-prop.c (ipa_dump_param): Likewise.
10706         (ipa_print_node_jump_functions_for_edge): Likewise.
10707         (ipa_modify_call_arguments): Likewise.
10708         (ipa_modify_expr): Likewise.
10709         (ipa_dump_param_adjustments): Likewise.
10710         (ipa_dump_agg_replacement_values): Likewise.
10711         (ipcp_modif_dom_walker::before_dom_children): Likewise.
10712         * ipa-pure-const.c (check_stmt): Likewise.
10713         (pass_nothrow::execute): Likewise.
10714         * ipa-split.c (execute_split_functions): Likewise.
10715         * omp-offload.c (dump_oacc_loop_part): Likewise.
10716         (dump_oacc_loop): Likewise.
10717         * trans-mem.c (tm_log_emit): Likewise.
10718         (tm_memopt_accumulate_memops): Likewise.
10719         (dump_tm_memopt_set): Likewise.
10720         (dump_tm_memopt_transform): Likewise.
10721         * tree-cfg.c (gimple_verify_flow_info): Likewise.
10722         (print_loop): Likewise.
10723         * tree-chkp-opt.c (chkp_print_addr): Likewise.
10724         (chkp_gather_checks_info): Likewise.
10725         (chkp_get_check_result): Likewise.
10726         (chkp_remove_check_if_pass): Likewise.
10727         (chkp_use_outer_bounds_if_possible): Likewise.
10728         (chkp_reduce_bounds_lifetime): Likewise.
10729         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
10730         (chkp_mark_completed_bounds): Likewise.
10731         (chkp_register_incomplete_bounds): Likewise.
10732         (chkp_mark_invalid_bounds): Likewise.
10733         (chkp_maybe_copy_and_register_bounds): Likewise.
10734         (chkp_build_returned_bound): Likewise.
10735         (chkp_get_bound_for_parm): Likewise.
10736         (chkp_build_bndldx): Likewise.
10737         (chkp_get_bounds_by_definition): Likewise.
10738         (chkp_generate_extern_var_bounds): Likewise.
10739         (chkp_get_bounds_for_decl_addr): Likewise.
10740         * tree-chrec.c (chrec_apply): Likewise.
10741         * tree-data-ref.c (dump_data_reference): Likewise.
10742         (dump_subscript): Likewise.
10743         (dump_data_dependence_relation): Likewise.
10744         (analyze_overlapping_iterations): Likewise.
10745         * tree-inline.c (expand_call_inline): Likewise.
10746         (tree_function_versioning): Likewise.
10747         * tree-into-ssa.c (dump_defs_stack): Likewise.
10748         (dump_currdefs): Likewise.
10749         (dump_names_replaced_by): Likewise.
10750         (dump_update_ssa): Likewise.
10751         (update_ssa): Likewise.
10752         * tree-object-size.c (pass_object_sizes::execute): Likewise.
10753         * tree-parloops.c (build_new_reduction): Likewise.
10754         (try_create_reduction_list): Likewise.
10755         (ref_conflicts_with_region): Likewise.
10756         (oacc_entry_exit_ok_1): Likewise.
10757         (oacc_entry_exit_single_gang): Likewise.
10758         * tree-pretty-print.h: Likewise.
10759         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
10760         (get_scalar_evolution): Likewise.
10761         (add_to_evolution): Likewise.
10762         (get_loop_exit_condition): Likewise.
10763         (analyze_evolution_in_loop): Likewise.
10764         (analyze_initial_condition): Likewise.
10765         (analyze_scalar_evolution): Likewise.
10766         (instantiate_scev): Likewise.
10767         (number_of_latch_executions): Likewise.
10768         (gather_chrec_stats): Likewise.
10769         (final_value_replacement_loop): Likewise.
10770         (scev_const_prop): Likewise.
10771         * tree-sra.c (dump_access): Likewise.
10772         (disqualify_candidate): Likewise.
10773         (create_access): Likewise.
10774         (reject): Likewise.
10775         (maybe_add_sra_candidate): Likewise.
10776         (create_access_replacement): Likewise.
10777         (analyze_access_subtree): Likewise.
10778         (analyze_all_variable_accesses): Likewise.
10779         (sra_modify_assign): Likewise.
10780         (initialize_constant_pool_replacements): Likewise.
10781         (find_param_candidates): Likewise.
10782         (decide_one_param_reduction): Likewise.
10783         (replace_removed_params_ssa_names): Likewise.
10784         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
10785         * tree-ssa-copy.c (dump_copy_of): Likewise.
10786         (copy_prop_visit_cond_stmt): Likewise.
10787         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
10788         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
10789         (record_equivalences_from_stmt): Likewise.
10790         * tree-ssa-dse.c (compute_trims): Likewise.
10791         (delete_dead_call): Likewise.
10792         (delete_dead_assignment): Likewise.
10793         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
10794         (forward_propagate_into_cond): Likewise.
10795         (pass_forwprop::execute): Likewise.
10796         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
10797         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
10798         Likewise.
10799         (move_computations_worker): Likewise.
10800         (execute_sm): Likewise.
10801         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
10802         (remove_exits_and_undefined_stmts): Likewise.
10803         (remove_redundant_iv_tests): Likewise.
10804         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
10805         (adjust_iv_update_pos): Likewise.
10806         * tree-ssa-math-opts.c (bswap_replace): Likewise.
10807         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
10808         (value_replacement): Likewise.
10809         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
10810         * tree-ssa-pre.c (print_pre_expr): Likewise.
10811         (get_representative_for): Likewise.
10812         (create_expression_by_pieces): Likewise.
10813         (insert_into_preds_of_block): Likewise.
10814         (eliminate_insert): Likewise.
10815         (eliminate_dom_walker::before_dom_children): Likewise.
10816         (eliminate): Likewise.
10817         (remove_dead_inserted_code): Likewise.
10818         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
10819         * tree-ssa-reassoc.c (get_rank): Likewise.
10820         (eliminate_duplicate_pair): Likewise.
10821         (eliminate_plus_minus_pair): Likewise.
10822         (eliminate_not_pairs): Likewise.
10823         (undistribute_ops_list): Likewise.
10824         (eliminate_redundant_comparison): Likewise.
10825         (update_range_test): Likewise.
10826         (optimize_range_tests_var_bound): Likewise.
10827         (optimize_vec_cond_expr): Likewise.
10828         (rewrite_expr_tree): Likewise.
10829         (rewrite_expr_tree_parallel): Likewise.
10830         (linearize_expr): Likewise.
10831         (break_up_subtract): Likewise.
10832         (linearize_expr_tree): Likewise.
10833         (attempt_builtin_powi): Likewise.
10834         (attempt_builtin_copysign): Likewise.
10835         (transform_stmt_to_copy): Likewise.
10836         (transform_stmt_to_multiply): Likewise.
10837         (dump_ops_vector): Likewise.
10838         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
10839         (print_scc): Likewise.
10840         (set_ssa_val_to): Likewise.
10841         (visit_reference_op_store): Likewise.
10842         (visit_use): Likewise.
10843         (sccvn_dom_walker::before_dom_children): Likewise.
10844         (run_scc_vn): Likewise.
10845         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
10846         Likewise.
10847         (expr_hash_elt::print): Likewise.
10848         (const_and_copies::pop_to_marker): Likewise.
10849         (const_and_copies::record_const_or_copy_raw): Likewise.
10850         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
10851         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
10852         (dump_predicates): Likewise.
10853         (find_uninit_use): Likewise.
10854         (warn_uninitialized_phi): Likewise.
10855         (pass_late_warn_uninitialized::execute): Likewise.
10856         * tree-ssa.c (verify_vssa): Likewise.
10857         (verify_ssa): Likewise.
10858         (maybe_optimize_var): Likewise.
10859         * tree-vrp.c (dump_value_range): Likewise.
10860         (dump_all_value_ranges): Likewise.
10861         (dump_asserts_for): Likewise.
10862         (register_edge_assert_for_2): Likewise.
10863         (vrp_visit_cond_stmt): Likewise.
10864         (vrp_visit_switch_stmt): Likewise.
10865         (vrp_visit_stmt): Likewise.
10866         (vrp_visit_phi_node): Likewise.
10867         (simplify_cond_using_ranges_1): Likewise.
10868         (fold_predicate_in): Likewise.
10869         (evrp_dom_walker::before_dom_children): Likewise.
10870         (evrp_dom_walker::push_value_range): Likewise.
10871         (evrp_dom_walker::pop_value_range): Likewise.
10872         (execute_early_vrp): Likewise.
10874 2017-05-16  Richard Biener  <rguenther@suse.de>
10876         * dwarf2out.c (loc_list_from_tree_1): Do not create
10877         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
10879 2017-05-16  Richard Biener  <rguenther@suse.de>
10881         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
10882         just generated.
10883         (note_variable_value_in_expr): If we resolved the decl ref
10884         do not push to the stack.
10886 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
10888         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
10889         operations in fast-math mode.
10890         (vaddq_f16): Likewise.
10891         (vmul_f16): Likewise.
10892         (vmulq_f16): Likewise.
10893         (vsub_f16): Likewise.
10894         (vsubq_f16): Likewise.
10895         * config/arm/neon.md (add<mode>3): New.
10896         (sub<mode>3): New.
10897         (fma:<VH:mode>3): New.  Also remove outdated comment.
10898         (mul<mode>3): New.
10900 2017-05-16  Martin Liska  <mliska@suse.cz>
10902         PR ipa/79849.
10903         PR ipa/79850.
10904         * ipa-devirt.c (warn_types_mismatch): Fix typo.
10905         (odr_types_equivalent_p): Likewise.
10907 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
10909         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
10911 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
10913         PR target/80425
10914         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
10915         non-interunit SSE move alternatives with '?'.
10916         (zero-extendsidi peephole2): New peephole to skip intermediate
10917         general register in SSE zero-extend sequence.
10919 2017-05-15  Jeff Law  <law@redhat.com>
10921         * reorg.c (relax_delay_slots): Create a new variable to hold
10922         the temporary target rather than clobbering TARGET_LABEL.
10924         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
10925         missing argument to extract_bit_field call.
10926         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
10928 2017-05-15  Martin Liska  <mliska@suse.cz>
10930         PR driver/31468
10931         * gcc.c (process_command): Do not allow empty argument of -o option.
10933 2017-05-15  Renlin Li  <renlin.li@arm.com>
10935         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
10936         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
10937         * config/aarch64/constraints.md (Usf): Add long call check.
10938         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
10939         (call_value): Likewise.
10940         (sibcall): Likewise.
10941         (sibcall_value): Likewise.
10942         (call_insn): New.
10943         (call_value_insn): New.
10944         (sibcall_insn): Update rtx pattern.
10945         (sibcall_value_insn): Likewise.
10946         (call_internal): Remove.
10947         (call_value_internal): Likewise.
10948         (sibcall_internal): Likewise.
10949         (sibcall_value_internal): Likewise.
10950         (call_reg): Likewise.
10951         (call_symbol): Likewise.
10952         (call_value_reg): Likewise.
10953         (call_value_symbol): Likewise.
10955 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
10957         PR target/80600
10958         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
10960 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
10962         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
10963         compatible with CCGOCmode and with CCZmode.
10965 2017-05-14  Martin Sebor  <msebor@redhat.com>
10967         PR middle-end/77671
10968         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
10969         (gimple_fold_builtin_snprintf): Same.
10970         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
10971         (gimple_fold_builtin_snprintf): Same.
10972         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
10973         of character types.
10974         (is_call_safe): New function.
10975         (try_substitute_return_value): Call it.
10976         (try_simplify_call): New function.
10977         (pass_sprintf_length::handle_gimple_call): Call it.
10979 2017-05-14  Martin Sebor  <msebor@redhat.com>
10981         PR middle-end/80669
10982         * builtins.c (expand_builtin_stpncpy): Simplify.
10984 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
10986         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
10987         * config/i386/i386.h
10988         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
10989         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
10990         (struct machine_function): Add new members call_ms2sysv,
10991         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
10992         (struct machine_frame_state): New fields sp_realigned and
10993         sp_realigned_offset.
10994         * config/i386/i386.c
10995         (enum xlogue_stub): New enum.
10996         (enum xlogue_stub_sets): New enum.
10997         (class xlogue_layout): New class.
10998         (struct ix86_frame): New fields stack_realign_allocate_offset,
10999         stack_realign_offset and outlined_save_offset.  Modify comments to
11000         detail stack layout when using out-of-line stubs.
11001         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
11002         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
11003         -mcall-ms2sysv-xlogues.
11004         (stub_managed_regs): New static variable.
11005         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
11006         registers managed by out-of-line stub.
11007         (disable_call_ms2sysv_xlogues): New function.
11008         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
11009         m->call_ms2sysv when appropriate and compute frame layout for
11010         out-of-line stubs.
11011         (sp_valid_at, fp_valid_at): New inline functions.
11012         (choose_basereg): New function.
11013         (choose_baseaddr): Add align parameter, use choose_basereg and modify
11014         all callers.
11015         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
11016         Use align parameter of choose_baseaddr to generated aligned SSE movs
11017         when possible.
11018         (pro_epilogue_adjust_stack): Modify to track
11019         machine_frame_state::sp_realigned.
11020         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
11021         (ix86_nsaved_sseregs): Likewise.
11022         (ix86_emit_save_regs): Likewise.
11023         (ix86_emit_save_regs_using_mov): Likewise.
11024         (ix86_emit_save_sse_regs_using_mov): Likewise.
11025         (get_scratch_register_on_entry): Likewise.
11026         (gen_frame_set): New function.
11027         (gen_frame_load): Likewise.
11028         (gen_frame_store): Likewise.
11029         (emit_outlined_ms2sysv_save): Likewise.
11030         (emit_outlined_ms2sysv_restore): Likewise.
11031         (ix86_expand_prologue): Modify stack re-alignment code and call
11032         emit_outlined_ms2sysv_save when appropriate.
11033         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
11034         parameter rtx_insn *insn, which allows the function to be used to only
11035         generate the notes.
11036         (ix86_expand_epilogue): Modify validity checks of frame and stack
11037         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
11038         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
11039         * config/i386/predicates.md
11040         (save_multiple): New predicate.
11041         (restore_multiple): Likewise.
11042         * config/i386/sse.md
11043         (save_multiple<mode>): New pattern.
11044         (save_multiple_realign<mode>): Likewise.
11045         (restore_multiple<mode>): Likewise.
11046         (restore_multiple_and_return<mode>): Likewise.
11047         (restore_multiple_leave_return<mode>): Likewise.
11048         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
11050 2017-05-14  Julia Koval  <julia.koval@intel.com>
11052         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
11053         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
11054         (__builtin_ia32_xsetbv): New builtins.
11055         * config/i386/i386.c (ix86_expand_special_args_builtin):
11056         Process new types.
11057         (ix86_expand_builtin): Special expand for new intrinsics.
11058         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
11059         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
11060         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
11062 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11064         * cfganal.c (inverted_post_order_compute): Change argument type
11065         to vec *.
11066         * cfganal.h (inverted_post_order_compute): Adjust prototype.
11067         * df-core.c (rest_of_handle_df_initialize): Adjust.
11068         (rest_of_handle_df_finish): Likewise.
11069         (df_analyze_1): Likewise.
11070         (df_analyze): Likewise.
11071         (loop_inverted_post_order_compute): Change argument to be a vec *.
11072         (df_analyze_loop): Adjust.
11073         (df_get_n_blocks): Likewise.
11074         (df_get_postorder): Likewise.
11075         * df.h (struct df_d): Change field to be a vec.
11076         * lcm.c (compute_laterin): Adjust.
11077         (compute_available): Likewise.
11078         * lra-lives.c (lra_create_live_ranges_1): Likewise.
11079         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
11080         * tree-ssa-pre.c (compute_antic): Likewise.
11082 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11084         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
11085         (depth_first_search::depth_first_search): Change structure init
11086         function to this constructor.
11087         (depth_first_search::add_bb): Rename function to this member.
11088         (depth_first_search::execute): Likewise.
11089         (flow_dfs_compute_reverse_finish): Adjust.
11091 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11093         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
11094         (longest_simple_path): Likewise.
11095         * shrink-wrap.c (spread_components): Likewise.
11096         (disqualify_problematic_components): Likewise.
11097         (emit_common_heads_for_components): Likewise.
11098         (emit_common_tails_for_components): Likewise.
11099         (insert_prologue_epilogue_for_components): Likewise.
11101 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11103         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
11104         auto_sbitmap.
11106 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11108         * df-core.c (df_set_blocks): Start using auto_bitmap.
11109         (df_compact_blocks): Likewise.
11110         * df-problems.c (df_rd_confluence_n): Likewise.
11111         * df-scan.c (df_insn_rescan_all): Likewise.
11112         (df_process_deferred_rescans): Likewise.
11113         (df_update_entry_block_defs): Likewise.
11114         (df_update_exit_block_uses): Likewise.
11115         (df_entry_block_bitmap_verify): Likewise.
11116         (df_exit_block_bitmap_verify): Likewise.
11117         (df_scan_verify): Likewise.
11118         * lra-constraints.c (lra_constraints): Likewise.
11119         (undo_optional_reloads): Likewise.
11120         (lra_undo_inheritance): Likewise.
11121         * lra-remat.c (calculate_gen_cands): Likewise.
11122         (do_remat): Likewise.
11123         * lra-spills.c (assign_spill_hard_regs): Likewise.
11124         (spill_pseudos): Likewise.
11125         * tree-ssa-pre.c (bitmap_set_and): Likewise.
11126         (bitmap_set_subtract_values): Likewise.
11128 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11130         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
11131         management with auto_bitmap.
11132         (fix_inter_tick): Likewise.
11133         (fix_recovery_deps): Likewise.
11134         * ira.c (add_store_equivs): Likewise.
11135         (find_moveable_pseudos): Likewise.
11136         (split_live_ranges_for_shrink_wrap): Likewise.
11137         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
11138         (rtx_reuse_manager::seen_def_p): Likewise.
11139         (rtx_reuse_manager::set_seen_def): Likewise.
11140         * print-rtl.h (class rtx_reuse_manager): Likewise.
11142 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11144         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
11145         lifetime.
11146         (migrate_btr_def): Likewise.
11147         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
11148         * df-core.c (loop_post_order_compute): Likewise.
11149         (loop_inverted_post_order_compute): Likewise.
11150         * hsa-common.h: Likewise.
11151         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
11152         * init-regs.c (initialize_uninitialized_regs): Likewise.
11153         * ipa-inline.c (resolve_noninline_speculation): Likewise.
11154         (inline_small_functions): Likewise.
11155         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
11156         * ira.c (combine_and_move_insns): Likewise.
11157         (build_insn_chain): Likewise.
11158         * loop-invariant.c (find_invariants): Likewise.
11159         * lower-subreg.c (propagate_pseudo_copies): Likewise.
11160         * predict.c (tree_predict_by_opcode): Likewise.
11161         (predict_paths_leading_to): Likewise.
11162         (predict_paths_leading_to_edge): Likewise.
11163         (estimate_loops_at_level): Likewise.
11164         (estimate_loops): Likewise.
11165         * shrink-wrap.c (try_shrink_wrapping): Likewise.
11166         (spread_components): Likewise.
11167         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
11168         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
11169         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
11170         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
11171         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
11172         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
11173         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
11174         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
11175         (mark_threaded_blocks): Likewise.
11176         (thread_through_all_blocks): Likewise.
11177         * tree-ssa.c (verify_ssa): Likewise.
11178         (execute_update_addresses_taken): Likewise.
11179         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
11181 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11183         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
11184         auto_vec.
11185         (post_order_compute): Likewise.
11186         (inverted_post_order_compute): Likewise.
11187         (pre_and_rev_post_order_compute_fn): Likewise.
11189 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11191         * genrecog.c (int_set::int_set): Explicitly construct our
11192         auto_vec base class.
11193         * vec.h (auto_vec::auto_vec): New constructor.
11195 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11197         * bitmap.h (class auto_bitmap): New constructor taking
11198         bitmap_obstack * argument.
11200 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11202         * bitmap.h (class auto_bitmap): Change type of m_bits to
11203         bitmap_head, and adjust ctor / dtor and member operators.
11205 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
11207         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
11208         when returned register mode doesn't match original mode.
11210 2017-05-12  Jeff Law  <law@redhat.com>
11211             Jakub Jelinek  <jakub@redhat.com>
11213         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
11214         we look for cc setter after the compare-elim changes.
11215         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
11216         within the vector to match what compare-elim now expects.
11217         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
11218         (xorsi3_flags, one_cmplsi2_flags): Likewise.
11220         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
11221         after the compare-elim changes.
11222         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
11223         the vector to match what compare-elim now expects.
11224         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
11225         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
11226         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
11227         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
11228         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
11230         * config/visium/visium.c (single_set_and_flags): Fix where
11231         we look for cc setter after the compare-elim changes.
11232         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
11233         with the vector to match what compare-elim now expects.
11234         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
11235         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
11236         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
11237         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
11238         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
11239         (neg<mode>2_insn_set_overflow): Likewise.
11241 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
11243         PR middle-end/79794
11244         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
11245         maybe_expand_insn call, set ops[0].target.  If still set after call,
11246         set alt_rtl.  Add extra arg to recursive calls.
11247         (extract_bit_field): Add alt_rtl argument.  Pass to
11248         extract_bit_field.
11249         * expmed.h (extract_bit_field): Fix prototype.
11250         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
11251         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
11252         to extract_bit_field_calls.
11253         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
11254         Pass alt_rtl to extract_bit_field calls.
11255         * calls.c (store_unaligned_arguments_into_psuedos)
11256         load_register_parameters): Pass extra NULL to extract_bit_field calls.
11257         * optabs.c (maybe_legitimize_operand): Clear op->target when call
11258         gen_reg_rtx.
11259         * optabs.h (struct expand_operand): Add target bitfield.
11261 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
11263         * compare-elim.c (try_eliminate_compare): Canonicalize
11264         operation with embedded compare to
11265         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
11266          (set (reg) (operation)].
11268         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
11270 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
11272         PR target/80723
11273         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
11274         cost of adding a carry flag for ADC instruction.
11275         [case MINUS]: Ignore the cost of subtracting a carry flag
11276         for SBB instruction.
11278 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
11280         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
11281         and x86intrin.h
11282         * config/rs6000/bmiintrin.h: New file.
11283         * config/rs6000/bmi2intrin.h: New file.
11284         * config/rs6000/x86intrin.h: New file.
11286 2017-05-12  Jeff Law  <law@redhat.com>
11288         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
11289         markers.
11291 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
11293         PR middle-end/80707
11294         * tree-cfg.c: Remove cfg edges of unreachable case statements.
11296 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
11298         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
11299         early expansion of vector divide builtins.
11300         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
11301         builtins identified as having unsigned arguments.
11303 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
11305         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
11306         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
11307         expansion of vector logical operations (and, andc, or, xor,
11308         nor, orc, nand).
11310 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
11312         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
11313         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
11315 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
11317         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
11318         early GIMPLE expansion of vector multiplies.
11320 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
11322         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
11323         TARGET_HAVE_MOVT conditional.
11324         (movt splitter): Likewise.
11326 2017-05-12  Richard Biener  <rguenther@suse.de>
11328         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
11329         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11330         Fold all stmts not inplace.
11332 2017-05-12  Richard Biener  <rguenther@suse.de>
11334         PR tree-optimization/80713
11335         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
11336         inserted_exprs bit for not removed stmts.
11338 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
11340         PR middle-end/69921
11341         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
11342         parallelized" attribute for parallelized OpenACC kernels.
11343         * omp-offload.c (execute_oacc_device_lower): Use it.
11345         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
11346         Set "oacc kernels" attribute.
11347         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
11348         parameter.  Adjust all users.
11349         (oacc_fn_attrib_kernels_p): Remove function.
11350         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
11351         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
11352         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
11353         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
11354         assert "oacc kernels" attribute is set.
11356 2017-05-11  Carl Love  <cel@us.ibm.com>
11358         * config/rs6000/rs6000-c: Add support for built-in functions
11359         vector unsigned char vec_popcnt (vector signed char)
11360         vector unsigned char vec_popcnt (vector unsigned char)
11361         vector unsigned short vec_popcnt (vector signed short)
11362         vector unsigned short vec_popcnt (vector unsigned short)
11363         vector unsigned int vec_popcnt (vector signed int)
11364         vector unsigned int vec_popcnt (vector unsigned int)
11365         vector unsigned long long vec_popcnt (vector signed long long)
11366         vector unsigned long long vec_popcnt (vector unsigned long long)
11367         vector signed long long vec_slo (vector signed long long,
11368                                          vector signed char)
11369         vector signed long long vec_slo (vector signed long long,
11370                                          vector unsigned char)
11371         vector unsigned long long vec_slo (vector unsigned long long,
11372                                            vector signed char)
11373         vector unsigned long long vec_slo (vector unsigned long long,
11374                                            vector unsigned char)
11375         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
11376         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
11377         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
11378         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
11379         * doc/extend.texi: Update the built-in documentation file for the
11380         new built-in functions.
11382 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
11384         * attribs.h (sorted_attr_string): Move machine independent
11385         functions for target clone support from the i386 port to common
11386         code.  Rename ix86_function_versions to common_function_versions.
11387         Rename make_name to make_unique_name.
11388         (common_function_versions): Likewise.
11389         (make_unique_name): Likewise.
11390         (make_dispatcher_decl): Likewise.
11391         (is_function_default_version): Likewise.
11392         * attribs.c (attr_strcmp): Likewise.
11393         (sorted_attr_string): Likewise.
11394         (common_function_versions): Likewise.
11395         (make_unique_name): Likewise.
11396         (make_dispatcher_decl): Likewise.
11397         (is_function_default_version): Likewise.
11398         * config/i386/i386.c (attr_strcmp): Likewise.
11399         (sorted_attr_string): Likewise.
11400         (ix86_function_versions): Likewise.
11401         (make_name): Likewise.
11402         (make_dispatcher_decl): Likewise.
11403         (is_function_default_version): Likewise.
11404         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
11406 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11408         PR target/80695
11409         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
11410         Account for direct move costs for vec_construct of integer
11411         vectors.
11413 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
11415         PR target/80706
11416         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
11417         (UNSPEC_STX_ATOMIC): Ditto.
11418         (loaddi_via_sse): New insn.
11419         (storedi_via_sse): Ditto.
11420         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
11421         Update corresponding peephole2 patterns.
11422         (atomic_storedi_fpu): Ditto.
11424 2017-05-11  Julia Koval  <julia.koval@intel.com>
11426         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
11427         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
11428         New intrinsics.
11429         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
11430         (__builtin_ia32_rsqrt14ss_mask): New builtins.
11431         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
11433 2017-05-11  Nathan Sidwell  <nathan@acm.org>
11435         * graphite-poly.c: Include dumpfile.h.
11437         * dumpfle.h (dump_function): Declare here ...
11438         * tree-dump.h (dump_function): ... not here.
11439         * dumpfile.c: #include tree-cfg.h.
11440         (dump_function): Move here from ...
11441         * tree-dump.c (dump_function): ... here.
11442         * gimplify.c: #include splay-tree.h, not tree-dump.h.
11443         * graphite-poly.c: Don't include tree-dump.h.
11444         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
11445         * print-tree.c: Likewise.
11446         * stor-layout.c: Likewise.
11447         * tree-nested.c: Likewise.
11449         * dumpfile.c (dump_start): Use TDF_FLAGS.
11450         (dump_enable_all): Fix TDF_KIND check thinko.
11452 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11454         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11455         array entries to represent two legal parameterizations of the
11456         overloaded __builtin_cmpb function, as represented by the
11457         P6_OV_BUILTIN_CMPB constant.
11458         (altivec_resolve_overloaded_builtin): Add special case handling
11459         for the __builtin_cmpb function, as represented by the
11460         P6_OV_BUILTIN_CMPB constant.
11461         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
11462         (BU_P6_64BIT_2): New macro.
11463         (BU_P6_OVERLOAD_2): New macro
11464         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
11465         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
11466         (CMPB): Add overload support to represent both 32-bit and 64-bit
11467         compare-bytes function.
11468         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
11469         support for TARGET_CMPB.
11470         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
11471         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
11472         documentation of the __builtin_cmpb overloaded built-in function.
11474 2017-05-11  Richard Biener  <rguenther@suse.de>
11476         PR tree-optimization/80705
11477         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
11478         bases are not vectorizable.
11480 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11482         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
11483         when counting register pressure.
11485 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11487         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
11488         (iv_ca_more_deps): Renamed to ...
11489         (iv_ca_compare_deps): ... this.
11490         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
11492 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11494         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
11495         to ...
11496         (determine_group_iv_costs): ... here.
11497         (find_inv_vars_cb): Record inv var if it's not recorded before.
11499 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11501         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
11502         (get_shiftadd_cost): Ditto.
11504 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11506         * tree-ssa-address.c: Include header file.
11507         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
11508         address.
11509         (add_to_parts): Refactor.
11510         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
11511         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
11512         in new order.
11514 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11516         PR tree-optimization/53090
11517         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
11518         COMP_IV_EXPR_2.
11519         (extract_cond_operands): Detect condition with IV on both sides
11520         and return COMP_IV_EXPR_2.
11521         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
11522         (rewrite_use_compare): Simplify by removing call to function
11523         extract_cond_operands.
11525 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11527         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
11528         (extract_cond_operands): Detect condition comparing against non-
11529         invariant bound and return appropriate enum value.
11530         (find_interesting_uses_cond): Update use of extract_cond_operands.
11531         Handle its return value accordingly.
11532         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
11534 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11536         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
11537         nonlinear iv_use computation in loop invariant sensitive way.
11539 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11541         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
11542         (find_iv_candidates): Call relate_compare_use_with_all_cands.
11544 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11546         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
11547         (dump_cand): Support iv_cand.inv_exprs.
11548         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
11549         for candidates.
11550         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
11551         iv_cand.inv_exprs.
11553 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11555         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
11556         from ...
11557         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
11558         as local function.  Include necessary header files.
11559         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
11561 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11563         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
11565 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11567         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
11568         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
11569         RSHIFT_EXPR and BIT_NOT_EXPR.
11571 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11573         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
11574         (adjust_setup_cost): New parameter supporting round up adjustment.
11575         (struct address_cost_data): Delete.
11576         (force_expr_to_var_cost): Don't bound cost with spill_cost.
11577         (split_address_cost, ptr_difference_cost): Delete.
11578         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
11579         (struct ainc_cost_data): New struct.
11580         (get_address_cost_ainc): New function.
11581         (get_address_cost, get_computation_cost): Reimplement.
11582         (determine_group_iv_cost_address): Record inv_expr for all uses of
11583         a group.
11584         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
11585         (iv_ca_has_deps): Reimplemented to ...
11586         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
11587         than OLD_CP.
11588         (iv_ca_extend): Call iv_ca_more_deps.
11590 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11592         * tree-ssa-address.c (struct mem_address): Move to header file.
11593         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
11594         * tree-ssa-address.h (struct mem_address): Move from C file.
11595         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
11597 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11599         * tree-affine.h (aff_combination_type): New interface.
11600         (aff_combination_zero_p): Remove static.
11601         (aff_combination_const_p): New interface.
11602         (aff_combination_singleton_var_p): New interfaces.
11604 2017-05-11  Richard Biener  <rguenther@suse.de>
11606         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11607         Skip unreachable blocks and destinations.
11608         (eliminate): Move stmt removal and fixup ...
11609         (fini_eliminate): ... here.  Skip inserted exprs.
11610         (pass_pre::execute): Move fini_pre after fini_eliminate.
11611         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
11612         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
11613         PRE to get rid of dead code that has invalid SSA form and
11614         split critical edges again.
11616 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
11618         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
11620 2017-05-11  Richard Biener  <rguenther@suse.de>
11622         * passes.c (execute_function_todo): Verify loops if they are
11623         said to be up-to-date.
11624         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
11625         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
11627 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
11629         PR target/80090
11630         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
11631         handle calling assemble_external ourself.
11633         PR target/79027
11634         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
11635         modes with zero size.  Enhance comment.
11637 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11639         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
11640         built-ins for vec_xl and vec_xst with short and char pointer
11641         arguments.
11643 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
11645         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
11646         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
11647         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
11648         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
11649         (_mm_maskz_min_round_ss): New intrinsics.
11650         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
11651         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
11652         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
11653         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
11654         (__builtin_ia32_minss_mask_round): New builtins.
11655         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
11656         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
11657         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
11658         Rename to ...
11659         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
11660         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
11661         Change to ...
11662         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
11663         ... this.
11665 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
11667         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
11668         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
11669         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
11670         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
11671         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
11672         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
11673         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
11674         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
11675         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
11676         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
11677         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
11678         (__builtin_ia32_mulss_mask_round): New builtins.
11679         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
11680         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
11681         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
11682         Rename to ...
11683         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
11684         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
11685         Change to ...
11686         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
11687         ... this.
11689 2017-05-10  Julia Koval  <julia.koval@intel.com>
11691         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
11692         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
11693         (_mm256_setr_m128i): New intrinsics.
11695 2017-05-10  Julia Koval  <julia.koval@intel.com>
11697         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
11698         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
11699         (_mm_maskz_rcp14_ss): New intrinsics.
11700         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
11701         (__builtin_ia32_rcp14ss_mask): New builtins.
11702         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
11704 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
11706         PR tree-optimization/51513
11707         * tree-cfg.c (gimple_seq_unreachable_p): New function.
11708         (assert_unreachable_fallthru_edge_p): Use it.
11709         (group_case_labels_stmt): Likewise.
11710         * tree-cfg.h: Prototype it.
11711         * stmt.c: Include cfghooks.h and tree-cfg.h.
11712         (emit_case_dispatch_table) <gap_label>: New local variable.
11713         Use it to fill dispatch table gaps.
11714         Test for default_label before updating probabilities.
11715         (expand_case) <default_label>: Remove unneeded initialization.
11716         Test for unreachable default case statement and remove its edge.
11717         Set default_label accordingly.
11718         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
11720 2017-05-10  Carl Love  <cel@us.ibm.com>
11722         * config/rs6000/rs6000-c: Add support for built-in functions
11723         vector signed char      vec_neg (vector signed char)
11724         vector signed short int vec_neg (vector short int)
11725         vector signed int       vec_neg (vector signed int)
11726         vector signed long long vec_neg (vector signed long long)
11727         vector float            vec_neg (vector float)
11728         vector double           vec_neg (vector double)
11729         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
11730         overload.
11731         * config/rs6000/altivec.h: Add define for vec_neg
11732         * doc/extend.texi: Update the built-in documentation for the
11733         new built-in functions.
11735 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11737         PR tree-optimization/77644
11738         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
11740 2017-05-10  Nathan Sidwell  <nathan@acm.org>
11742         * dumpfile.h (TDI_lang_all): New.
11743         (TDF_KIND): New. Renumber others
11744         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
11745         than bits.
11746         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
11747         lang-all.
11748         (get_dump_file_name): Adjust suffix generation.
11749         (dump_enable_all): Use TDF_KIND.
11750         * doc/invoke.texi (-fdump-lang-all): Document.
11752         * dumpfile.h: Tabify.
11754 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
11756         PR target/80671
11757         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
11758         Move member access before delete.
11760 2017-05-10  Alexandre Oliva <aoliva@redhat.com>
11762         * tree-inline.c (expand_call_inline): Split block at stmt
11763         before the call.
11765 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
11767         PR target/68163
11768         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
11769         are now unused after splitting mov{sf,sd}_hardfloat.
11770         (f32_lr2): Likewise.
11771         (f32_lm): Likewise.
11772         (f32_lm2): Likewise.
11773         (f32_li): Likewise.
11774         (f32_li2): Likewise.
11775         (f32_lv): Likewise.
11776         (f32_sr): Likewise.
11777         (f32_sr2): Likewise.
11778         (f32_sm): Likewise.
11779         (f32_sm2): Likewise.
11780         (f32_si): Likewise.
11781         (f32_si2): Likewise.
11782         (f32_sv): Likewise.
11783         (f32_dm): Likewise.
11784         (f32_vsx): Likewise.
11785         (f32_av): Likewise.
11786         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
11787         For movsf, order stores so the VSX stores occur before the GPR
11788         store which encourages the register allocator to use a traditional
11789         FPR instead of a GPR.  For movsd, order the stores so that the GPR
11790         store comes before the VSX stores to allow the power6 to work.
11791         This is due to the power6 not having a 32-bit integer store
11792         instruction from a FPR.
11793         (movsf_hardfloat): Likewise.
11794         (movsd_hardfloat): Likewise.
11796 2017-05-09  Martin Sebor  <msebor@redhat.com>
11798         PR translation/80280
11799         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
11800         added in r247778.
11802         PR translation/80280
11803         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
11804         data member added in r247778.
11805         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
11807 2017-05-09  Nathan Sidwell  <nathan@acm.org>
11809         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
11811         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
11812         typedefs.
11814 2017-05-09  Marek Polacek  <polacek@redhat.com>
11816         * doc/invoke.texi: Fix typo.
11818 2017-05-09  Richard Biener  <rguenther@suse.de>
11820         * tree-vrp.c (vrp_val_is_max): Adjust comment.
11821         (vrp_val_is_min): Likewise.
11822         (set_value_range_to_value): Likewise.
11823         (set_value_range_to_nonnegative): Likewise.
11824         (gimple_assign_nonzero_p): Likewise.
11825         (gimple_stmt_nonzero_p): Likewise.
11826         (vrp_int_const_binop): Likewise.  Remove unreachable case.
11827         (adjust_range_with_scev): Adjust comments.
11828         (compare_range_with_value): Likewise.
11829         (extract_range_from_phi_node): Likewise.
11830         (test_for_singularity): Likewise.
11832 2017-05-09  Richard Biener  <rguenther@suse.de>
11834         * tree-vrp.c (get_single_symbol): Add assert that we don't
11835         get overflowed constants as invariant part.
11836         (compare_values_warnv): Add comment before the TREE_NO_WARNING
11837         checks.  Use wi::cmp instead of recursing for integer constants.
11838         (compare_values): Just ignore whether we assumed undefined
11839         overflow instead of failing the compare.
11840         (extract_range_for_var_from_comparison_expr): Add comment before the
11841         TREE_NO_WARNING sets.
11842         (test_for_singularity): Likewise.
11843         (extract_range_from_comparison): Do not disable optimization
11844         when we assumed undefined overflow.
11845         (extract_range_basic): Remove init of unused var.
11847 2017-05-09  Richard Biener  <rguenther@suse.de>
11849         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
11850         (extract_range_from_multiplicative_op_1): Adjust.
11851         (extract_range_from_binary_expr_1): Use int_const_binop.
11853 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11855         PR target/80101
11856         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
11857         rs6000_store_data_bypass_p in seven define_bypass directives and
11858         in several comments.
11859         * config/rs6000/rs6000-protos.h: Add prototype for
11860         rs6000_store_data_bypass_p function.
11861         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
11862         function implements slightly different (rs6000-specific) semantics
11863         than store_data_bypass_p, returning false rather than aborting
11864         with assertion error when arguments do not satisfy the
11865         requirements of store data bypass.
11866         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
11867         rs6000_store_data_bypass_p.
11869 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
11871         * config/xtensa/xtensa-protos.h
11872         (xtensa_initial_elimination_offset): New declaration.
11873         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
11874         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
11875         macro definition, add case for FRAME_POINTER_REGNUM when
11876         FRAME_GROWS_DOWNWARD.
11877         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
11878         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
11879         xtensa_initial_elimination_offset.
11881 2017-05-08  Nathan Sidwell  <nathan@acm.org>
11883         * doc/invoke.texi: Alphabetize -fdump options.
11885 2017-05-08  Martin Sebor  <msebor@redhat.com>
11887         PR translation/80280
11888         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
11890 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11892         * target.def (compute_frame_layout): New optional target hook.
11893         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
11894         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
11895         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
11896         target hook.
11897         * reload1.c (verify_initial_elim_offsets): Likewise.
11898         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
11899         (use_simple_return_p): Call arm_compute_frame_layout if needed.
11900         (arm_get_frame_offsets): Split up into this ...
11901         (arm_compute_frame_layout): ... and this function.
11903 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
11905         * config/aarch64/constraints.md (Usa): New constraint.
11906         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
11908 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11910         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
11911         with_multilib_list after it has been checked.
11913 2017-05-08  Richard Biener  <rguenther@suse.de>
11915         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
11916         (bitmap_set_subtract_values): Likewise.
11918 2017-05-08  Richard Biener  <rguenther@suse.de>
11920         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
11921         (gimple_assign_nonzero): ... this and remove strict_overflow_p
11922         argument.
11923         (gimple_stmt_nonzero_warnv_p): Rename to ...
11924         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
11925         argument.
11926         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
11927         (extract_range_basic): Adjust, do not disable propagation on
11928         strict overflow sensitive simplification.
11929         (vrp_visit_cond_stmt): Likewise.
11931 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
11933         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
11934         body size unconditionally.
11936 2017-05-07  Jeff Law  <law@redhat.com>
11938         Revert:
11939         2017-05-06  Jeff Law  <law@redhat.com>
11940         PR tree-optimization/78496
11941         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
11942         code.
11944         PR tree-optimization/78496
11945         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
11946         (simplify_stmt_using_ranges): Call it.
11947         (vrp_dom_walker::before_dom_children): Extract equivalences
11948         from an ASSERT_EXPR with an equality comparison against a
11949         constant.
11951 2017-05-06  Jeff Law  <law@redhat.com>
11953         PR tree-optimization/78496
11954         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
11955         code.
11957         PR tree-optimization/78496
11958         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
11959         (simplify_stmt_using_ranges): Call it.
11960         (vrp_dom_walker::before_dom_children): Extract equivalences
11961         from an ASSERT_EXPR with an equality comparison against a
11962         constant.
11964 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
11966         * lra-constraints.c (lra_copy_reg_equiv): New function.
11967         (split_reg): Use it to copy equivalence information from the
11968         original register to the spill register.
11970 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
11972         PR rtl-optimization/75964
11973         * simplify-rtx.c (simplify_const_relational_operation): Remove
11974         invalid handling of comparisons of integer ABS.
11976 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
11978         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
11979         initialize to zero.
11980         (init_regs): Remove declaration.
11981         (function_arg_advance_32): Initialize error_p as boolean variable.
11983 2017-05-05  Nathan Sidwell  <nathan@acm.org>
11985         * store-motion.c (remove_reachable_equiv_notes): Reformat long
11986         lines.  Use for (;;).
11988 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11990         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
11991         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
11992         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
11993         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
11994         VF=2 that require versioning.
11996 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
11998         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
11999         int.
12001 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
12003         * diagnostic.h (diagnostic_override_option_index): Convert from
12004         macro to inline function.
12006 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
12008         * diagnostic.c (last_module_changed_p): New function.
12009         (set_last_module): New function.
12010         (diagnostic_report_current_module): Convert macro usage to
12011         the above functions.
12012         * diagnostic.h (diagnostic_context::last_module): Strengthen
12013         from const line_map * to const line_map_ordinary *.
12014         (diagnostic_last_module_changed): Delete macro.
12015         (diagnostic_set_last_module): Delete macro.
12017 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
12019         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
12020         with diagnostic_report_diagnostic.
12021         (diagnostic_n_impl_richloc): Likewise.
12022         * diagnostic.h (report_diagnostic): Delete macro.
12023         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
12024         with diagnostic_report_diagnostic.
12025         * substring-locations.c (format_warning_va): Likewise.
12027 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
12029         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
12030         save/restor of format_spec.  Move option-printing code to...
12031         (print_option_information): ...this new function, and
12032         reimplement by simply printing to the pretty_printer,
12033         rather than appending to the format string.
12035 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
12037         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
12038         handling logic into...
12039         (update_effective_level_from_pragmas): ...this new function.
12041 2017-05-04  Andrew Waterman  <andrew@sifive.com>
12043         * config/riscv/riscv.opt (mstrict-align): New option.
12044         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
12045         (SLOW_UNALIGNED_ACCESS): Define.
12046         (riscv_slow_unaligned_access): Declare.
12047         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
12048         field.
12049         (riscv_slow_unaligned_access): New variable.
12050         (rocket_tune_info): Set slow_unaligned_access to true.
12051         (optimize_size_tune_info): Set slow_unaligned_access to false.
12052         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
12053         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
12054         (riscv_option_override): Set riscv_slow_unaligned_access.
12055         * doc/invoke.texi: Add -mstrict-align to RISC-V.
12057 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
12059         * config/riscv/riscv.md: Unify indentation.
12061 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
12063         PR target/79038
12064         PR target/79202
12065         PR target/79203
12066         * config/rs6000/rs6000.md (u code attribute): Add FIX and
12067         UNSIGNED_FIX.
12068         (extendsi<mode>2): Add support for doing sign extension via
12069         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
12070         don't have ISA 3.0 instructions.
12071         (extendsi<mode>2 splitter): Likewise.
12072         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
12073         generate the normal insns since SImode can now go in vector
12074         registers.  Disallow the special UNSPECs needed for previous
12075         machines to hide SImode being used.  Add new insns
12076         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
12077         (fix_trunc<mode>si2_stfiwx): Likewise.
12078         (fix_trunc<mode>si2_internal): Likewise.
12079         (fixuns_trunc<mode>si2): Likewise.
12080         (fixuns_trunc<mode>si2_stfiwx): Likewise.
12081         (fctiw<u>z_<mode>_smallint): Likewise.
12082         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
12083         of floating point to 32-bit integer from doing a direct move to
12084         the GPR registers to do a store.
12085         (fctiwz_<mode>): Break long line.
12087 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
12089         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
12090         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
12091         (addr_list, addr_offset_valid_p): New.
12092         (split_address_groups): Check offset validity with above function.
12093         (gt-tree-ssa-loop-ivopts.h): Include header file.
12095 2017-05-05  Nathan Sidwell  <nathan@acm.org>
12097         * config.gcc (arm*-*-*): Add missing 'fi'.
12099 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
12101         * doc/invoke.texi (-fopt-info): Explicitly say order of options
12102         included in -fopt-info does not matter.
12103         * doc/optinfo.texi (-fopt-info): Fix description of default
12104         behavour. Explicitly say order of options included in -fopt-info
12105         does not matter.
12107 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12109         * config.gcc: Allow combinations of aprofile and rmprofile values for
12110         --with-multilib-list.
12111         * config/arm/t-multilib: New file.
12112         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
12113         variables.  Remove setting of ISA and floating-point ABI in
12114         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
12115         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
12116         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
12117         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
12118         CPU options.
12119         * config/arm/t-rmprofile: Likewise except for the matches changes.
12120         * doc/install.texi (--with-multilib-list): Document the combination of
12121         aprofile and rmprofile values and warn about pitfalls in doing that.
12123 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
12125         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
12126         (movdi_aarch64): Likewise.
12128 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
12130         PR tree-optimization/80632
12131         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
12132         field.
12133         (build_arrays): Initialize it for virtual phis.
12134         (fix_phi_nodes): Use it for virtual phis.
12136         PR tree-optimization/80558
12137         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
12138         [x, y] op z into [x op, y op z] for op & or | if conditions
12139         are met.
12141 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
12142             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
12144         PR target/71607
12145         * config/arm/arm.md (use_literal_pool): Remove.
12146         (64-bit immediate split): No longer takes cost into consideration
12147         if arm_disable_literal_pool is enabled.
12148         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
12149         used when arm_disable_literal_pool is enabled.
12150         (arm_max_const_double_inline_cost): Remove use of
12151         arm_disable_literal_pool.
12152         (push_minipool_fix): Add assert.
12153         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
12154         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
12155         (no_literal_pool_sf_immediate): New.
12157 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12159         PR tree-optimization/80613
12160         * tree-ssa-dce.c (propagate_necessity): Remove cases for
12161         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
12163 2017-05-05  Richard Biener  <rguenther@suse.de>
12165         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
12167 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
12169         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
12170         of this flag from insn conditions due to removal from r247495.
12172 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
12174         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
12175         New function.
12176         (arm_early_store_addr_dep_ptr): Likewise.
12177         * config/arm/aarch-common-protos.h
12178         (arm_early_load_addr_dep_ptr): Add prototype.
12179         (arm_early_store_addr_dep_ptr): Likewise.
12180         * config/arm/cortex-a53.md: Add new bypasses.
12182 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
12184         * tree.c (next_type_uid): Change type to unsigned.
12185         (type_hash_canon): Decrement back next_type_uid if
12186         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
12187         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
12188         if possible.
12190 2017-05-04  Martin Sebor  <msebor@redhat.com>
12192         * builtins.c: Fix a trivial typo in a comment.
12194         PR middle-end/79234
12195         * builtins.c (check_sizes): Adjust to handle reading past the end.
12196         Avoid printing excessive upper bound of ranges.  Use %E to print
12197         tree nodes instead of converting them to %wu.
12198         (expand_builtin_memchr): New function.
12199         (compute_dest_size): Rename...
12200         (compute_objsize): ...to this.
12201         (expand_builtin_memcpy): Adjust.
12202         (expand_builtin_mempcpy): Adjust.
12203         (expand_builtin_strcat): Adjust.
12204         (expand_builtin_strcpy): Adjust.
12205         (check_strncat_sizes): Adjust.
12206         (expand_builtin_strncat): Adjust.
12207         (expand_builtin_strncpy): Adjust and simplify.
12208         (expand_builtin_memset): Adjust.
12209         (expand_builtin_bzero): Adjust.
12210         (expand_builtin_memcmp): Adjust.
12211         (expand_builtin): Handle memcmp.
12212         (maybe_emit_chk_warning): Check strncat just once.
12214 2017-05-04  Martin Sebor  <msebor@redhat.com>
12216         PR preprocessor/79214
12217         PR middle-end/79222
12218         PR middle-end/79223
12219         * builtins.c (check_sizes): Add inlining context and issue
12220         warnings even when -Wno-system-headers is set.
12221         (check_strncat_sizes): Same.
12222         (expand_builtin_strncat): Same.
12223         (expand_builtin_memmove): New function.
12224         (expand_builtin_stpncpy): Same.
12225         (expand_builtin): Handle memmove and stpncpy.
12227 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
12229         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
12230         which is not used any more.
12232 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
12234         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
12236 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
12238         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
12239         (cortexa53_tunings): Likewise.
12240         (cortexa57_tunings): Likewise.
12241         (cortexa72_tunings): Likewise.
12242         (cortexa73_tunings): Likewise.
12244 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
12246         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
12247         Set loop alignment to 8.
12249 2017-05-04  Martin Sebor  <msebor@redhat.com>
12251         PR translation/80280
12252         * builtins.c (expand_builtin_object_size): Add missing quoting to
12253         %D and like directives.
12254         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
12255         (hsa_type_for_tree_type): Same.
12256         (verify_function_arguments): Same.
12257         * symtab.c (symbol_table::change_decl_assembler_name): Same.
12258         * varasm.c (get_section): Same.
12259         (mark_weak): Same.
12261 2017-05-04  Martin Sebor  <msebor@redhat.com>
12263         PR translation/80280
12264         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
12266 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
12268         * config/aarch64/aarch64.c (generic_addrcost_table):
12269         Change HI/TI mode setting.
12271 2017-05-04  Martin Jambor  <mjambor@suse.cz>
12273         PR tree-optimization/80622
12274         * tree-sra.c (comes_initialized_p): New function.
12275         (build_accesses_from_assign): Only set write lazily when
12276         comes_initialized_p is false.
12277         (analyze_access_subtree): Use comes_initialized_p.
12278         (propagate_subaccesses_across_link): Assert !comes_initialized_p
12279         instead of testing for PARM_DECL.
12281 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12283         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
12284         constraint on operand 0 to allow more general addressing modes.
12285         Adjust output template.
12286         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
12287         New function.
12288         * config/aarch64/aarch64-protos.h
12289         (aarch64_address_valid_for_prefetch_p): Declare prototype.
12290         * config/aarch64/constraints.md (Dp): New address constraint.
12291         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
12292         predicate.
12294 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
12296         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
12297         update use of estimate_ipcp_clone_size_and_time.
12298         (estimate_local_effects): Update use of
12299         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
12300         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
12301         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
12302         Return nonspecialized time.
12304 2017-05-04  Richard Biener  <rguenther@suse.de>
12306         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
12307         for the last VUSE which def dominates the PHI.  Directly call
12308         maybe_skip_until.
12309         (get_continuation_for_phi_1): Remove.
12311 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
12313         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
12314         to explain the use of truncating division.  Cap the number of
12315         iterations to the maximum given by nb_iterations_upper_bound,
12316         if defined.
12318 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12320         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
12321         * configure: Regenerate.
12322         * config.in: Regenerate.
12323         * config/i386/driver-mingw32.c: new file.
12324         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
12325         * config.host: Link driver-mingw32.o on MinGW host.
12326         * doc/install.texi: Document new --enable-mingw-wildcard configure
12327         option.
12329 2017-05-04  Marek Polacek  <polacek@redhat.com>
12331         PR tree-optimization/80612
12332         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
12334 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
12335             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
12337         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
12338         (movt splitter): Likewise.
12339         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
12340         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
12341         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
12342         block for Thumb-1 with MOVT.
12343         (thumb2_legitimate_address_p): Move code block ...
12344         (can_avoid_literal_pool_for_label_p): ... into this new function.
12345         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
12346         literal pool.
12347         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
12348         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
12349         "M-profile targets with the MOVT instruction".
12351 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
12353         * config/arm/arm-builtins.c (arm_init_builtins): Rename
12354         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
12355         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
12357 2017-05-04  Martin Liska  <mliska@suse.cz>
12359         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
12360         variable cond_code.
12362 2017-05-04  Richard Biener  <rguenther@suse.de>
12364         * tree.c (array_at_struct_end_p): Handle arrays at struct
12365         end with flexarrays more conservatively.  Refactor and treat
12366         arrays of arrays or aggregates more strict.  Fix
12367         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
12368         * tree.c (array_at_struct_end_p): Adjust prototype.
12369         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
12370         * gimple-fold.c (get_range_strlen): Likewise.
12371         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
12373 2017-05-04  Richard Biener  <rguenther@suse.de>
12375         PR tree-optimization/31130
12376         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
12377         false.
12378         (supports_overflow_infinity): Likewise.
12379         (is_negative_overflow_infinity): Likewise.
12380         (is_positive_overflow_infinity): Likewise.
12381         (is_overflow_infinity): Likewise.
12382         (stmt_overflow_infinity): Likewise.
12383         (overflow_infinity_range_p): Likewise.
12384         (usable_range_p): Remove as always returning true.
12385         (make_overflow_infinity): Remove.
12386         (negative_overflow_infinity): Likewise.
12387         (positive_overflow_infinity): Likewise.
12388         (avoid_overflow_infinity): Likewise.
12389         (set_value_range): Adjust accordingly.
12390         (set_value_range_to_nonnegative): Likewise, remove now unused
12391         overflow_infinity arg.
12392         (vrp_operand_equal_p): Adjust.
12393         (update_value_range): Likewise.
12394         (range_int_cst_singleton_p): Likewise.
12395         (operand_less_p): Likewise.
12396         (compare_values_warnv): Likewise.
12397         (extract_range_for_var_from_comparison_expr): Likewise.
12398         (vrp_int_const_binop): Likewise.
12399         (zero_nonzero_bits_from_vr): Likewise.
12400         (extract_range_from_multiplicative_op_1): Likewise.
12401         (extract_range_from_binary_expr_1): Likewise.
12402         (extract_range_from_unary_expr): Likewise.
12403         (extract_range_from_comparison): Likewise.
12404         (extract_range_basic): Likewise.
12405         (adjust_range_with_scev): Likewise.
12406         (compare_ranges): Likewise.
12407         (compare_range_with_value): Likewise.
12408         (dump_value_range): Likewise.
12409         (test_for_singularity): Likewise, remove strict_overflow_p parameter
12410         never used.
12411         (simplify_cond_using_ranges): Adjust.
12413 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
12415         * brig-builtins.def: Added a builtin for class_f64.
12416         * builtin-types.def: Added a builtin type needed by class_f64.
12418 2017-05-03  Jason Merrill  <jason@redhat.com>
12420         * timevar.def: Add TV_CONSTEXPR.
12422 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
12424         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
12426 2017-05-03  Martin Jambor  <mjambor@suse.cz>
12428         * ipa-prop.c (ipa_update_after_lto_read): Removed.
12429         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
12430         * ipa-cp.c (ipcp_propagate_stage): Do not call
12431         ipa_update_after_lto_read.
12432         * ipa-inline.c (ipa_inline): Likewise.
12434 2017-05-03  Martin Jambor  <mjambor@suse.cz>
12436         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
12437         tag.  Added a default constructor and a destructor.
12438         (ipa_edge_args_sum_t): New class;
12439         (ipa_edge_args_sum): Declare.
12440         (ipa_edge_args_vector): Remove declaration.
12441         (IPA_EDGE_REF): Use ipa_edge_args_sum.
12442         (ipa_free_edge_args_substructures): Remove declaration.
12443         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
12444         (ipa_edge_args_info_available_for_edge_p): Likewise.
12445         * ipa-prop.c (ipa_edge_args_vector): Removed.
12446         (edge_removal_hook_holder): Likewise.
12447         (edge_duplication_hook_holder): Likewise.
12448         (ipa_edge_args_sum): New variable.
12449         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
12450         ipa_edge_args_vector.
12451         (ipa_free_edge_args_substructures): Likewise.
12452         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
12453         ipa_edge_args_vector.
12454         (ipa_edge_removal_hook): Turned into method
12455         ipa_edge_args_sum_t::remove.
12456         (ipa_edge_duplication_hook): Turned into method
12457         ipa_edge_args_sum_t::duplicate.
12458         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
12459         registering edge hooks.
12460         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
12461         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
12462         ipa_edge_args_sum instead of ipa_edge_args_vector.
12463         * ipa-profile.c (ipa_profile): Likewise.
12465 2017-05-03  Martin Jambor  <mjambor@suse.cz>
12467         * symbol-summary.h (function_summary): New method exists.
12468         (function_summary::symtab_removal): Deallocate through release.
12469         (call_summary): New class.
12470         (gt_ggc_mx): New overload.
12471         (gt_pch_nx): Likewise.
12472         (gt_pch_nx): Likewise.
12474 2017-05-03  Jeff Law  <law@redhat.com>
12476         PR tree-optimization/78496
12477         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
12478         from simplify_cond_using_ranges.  Split off code to walk
12479         backwards through casts into ...
12480         (simplify_cond_using_ranges_2): New function.
12481         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
12482         (execute_vrp): After identifying jump threads, call
12483         simplify_cond_using_ranges_2.
12485 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
12487         PR bootstrap/80609
12488         * ipa-inline.h (inline_summary): Add ctor.
12489         (create_ggc): Do not use ggc_cleared_alloc.
12491 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
12492             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12494         * gcc.c (handle_braces): Support escaping in switch matching
12495         text.
12496         * doc/invoke.texi (Spec Files): Document it.
12497         Remove superfluous @code markup in items.
12499 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
12501         * diagnostic-show-locus.c (struct column_range): New struct.
12502         (get_affected_columns): New function.
12503         (get_printed_columns): New function.
12504         (struct correction): New struct.
12505         (correction::ensure_capacity): New function.
12506         (correction::ensure_terminated): New function.
12507         (struct line_corrections): New struct.
12508         (line_corrections::~line_corrections): New dtor.
12509         (line_corrections::add_hint): New function.
12510         (layout::print_trailing_fixits): Reimplement in terms of the new
12511         classes.
12512         (selftest::test_overlapped_fixit_printing): New function.
12513         (selftest::diagnostic_show_locus_c_tests): Call it.
12515 2017-05-03  Nathan Sidwell  <nathan@acm.org>
12517         Canonicalize canonical type hashing
12518         * tree.h (type_hash_canon_hash): Declare.
12519         * tree.c (type_hash_list, attribute_hash_list): Move into
12520         type_hash_canon_hash.
12521         (build_type_attribute_qual_variant): Break out hash code calc into
12522         type_hash_canon_hash.
12523         (type_hash_canon_hash): New.  Generic type hash computation.
12524         (build_range_type_1, build_array_type_1, build_function_type,
12525         build_method_type_directly, build_offset_type, build_complex_type,
12526         make_vector_type): Call it.
12528 2017-05-03  Richard Biener  <rguenther@suse.de>
12530         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
12531         When all DRs have unknown misaligned do not always peel
12532         when there is a store but apply the same costing model as if
12533         there were only loads.
12535 2017-05-03  Richard Biener  <rguenther@suse.de>
12537         Revert
12538         PR tree-optimization/80492
12539         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
12540         compare_base_decls returning dont-know properly.
12542 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12544         * config/arm/iterators.md (CCSI): New mode iterator.
12545         (arch): New mode attribute.
12546         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
12547         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
12548         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
12549         code iterator for success result mode.
12550         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
12551         the corresponding new insn generators.
12553 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
12555         Revert r247509
12556         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
12557         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
12559 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
12561         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
12562         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
12563         (DDR_A): Wrap DDR argument in brackets.
12564         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
12565         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
12566         (DDR_REVERSED_P): Likewise.
12568 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
12570         PR tree-optimization/79472
12571         * tree-switch-conversion.c (struct switch_conv_info): Add
12572         contiguous_range and default_case_nonstandard fields.
12573         (collect_switch_conv_info): Compute contiguous_range and
12574         default_case_nonstandard fields, don't clear final_bb if
12575         contiguous_range and only the default case doesn't have the required
12576         structure.
12577         (check_all_empty_except_final): Set default_case_nonstandard instead
12578         of failing if contiguous_range and the default case doesn't have empty
12579         block.
12580         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
12581         and only the default case doesn't have the required constants.  Skip
12582         virtual phis.
12583         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
12584         if default_case_nonstandard.
12585         (build_constructors): Build constant 1 just once.  Assert that default
12586         values aren't inserted in between cases if contiguous_range.  Skip
12587         virtual phis.
12588         (build_arrays): Skip virtual phis.
12589         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
12590         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
12591         Handle virtual phis.
12592         (gen_inbound_check): Handle default_case_nonstandard case.
12593         (process_switch): Adjust check_final_bb caller.  Call
12594         gather_default_values with the first non-default case instead of
12595         default case if default_case_nonstandard.
12597 2017-05-02  Nathan Sidwell  <nathan@acm.org>
12599         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
12600         check.  Fix formatting.
12602 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
12604         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
12605         errors when comparing specialized and unspecialized times.
12607 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
12609         * diagnostic-show-locus.c
12610         (layout::should_print_annotation_line_p): Make private.
12611         (layout::print_annotation_line): Make private.
12612         (layout::annotation_line_showed_range_p): Make private.
12613         (layout::show_ruler): Make private.
12614         (layout::print_source_line): Make private.  Pass in line and
12615         line_width, rather than calling location_get_source_line.  Drop
12616         returned value.
12617         (layout::print_leading_fixits): New method.
12618         (layout::print_any_fixits): Rename to...
12619         (layout::print_trailing_fixits): ...this, and make private.
12620         Don't print newline fixits.
12621         (diagnostic_show_locus): Move logic for printing one row into...
12622         (layout::print_line): ...this new function.  Move the
12623         location_get_source_line call and error-handling from
12624         print_source_line to here.  Call print_leading_fixits, and rename
12625         print_any_fixits to print_trailing_fixits.
12626         (selftest::test_fixit_insert_containing_newline): Update now that
12627         newlines are partially supported.
12628         (selftest::test_fixit_insert_containing_newline_2): New test.
12629         (selftest::test_fixit_replace_containing_newline): Update comments.
12630         (selftest::diagnostic_show_locus_c_tests): Call the new test.
12631         * edit-context.c (class added_line): New class.
12632         (class edited_line): Describe newline handling in comment.
12633         (edited_line::actually_edited_p): New method.
12634         (edited_line::print_content): Delete redundant decl.
12635         (edited_line::m_predecessors): New field.
12636         (edited_file::print_content): Call edited_line::print_content.
12637         (edited_file::print_diff): Update to support newlines.
12638         (edited_file::print_diff_hunk): Likewise.
12639         (edited_file::print_run_of_changed_lines): New function.
12640         (edited_file::print_diff_line): Convert to...
12641         (print_diff_line): ...this.
12642         (edited_file::get_effective_line_count): New function.
12643         (edited_line::edited_line): Initialize new field m_predecessors.
12644         (edited_line::~edited_line): Clean up m_predecessors.
12645         (edited_line::apply_fixit): Handle newlines.
12646         (edited_line::get_effective_line_count): New function.
12647         (edited_line::print_content): New function.
12648         (edited_line::print_diff_lines): New function.
12649         (selftest::test_applying_fixits_insert_containing_newline): New
12650         test.
12651         (selftest::test_applying_fixits_replace_containing_newline): New
12652         test.
12653         (selftest::insert_line): New function.
12654         (selftest::test_applying_fixits_multiple_lines): Add example of
12655         inserting a line.
12656         (selftest::edit_context_c_tests): Call the new tests.
12658 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
12660         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
12661         parameter cand.  Update dump information.
12662         (get_computation_cost): Update uses.
12664 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
12666         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
12667         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
12668         (get_computation_at, rewrite_use_address): Update use of
12669         get_computation_aff.
12671 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
12673         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
12674         (get_computation): Delete.
12675         (get_computation_cost): Implement like get_computation_cost_at.
12676         Use get_computation_at.
12677         (get_computation_cost_at): Delete.
12678         (rewrite_use_nonlinear_expr): Use get_computation_at.
12679         (rewrite_use_compare, remove_unused_ivs): Ditto.
12681 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
12683         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
12685 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
12687         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
12688         (ivopts_global_cost_for_size): Rename parameter and update uses.
12689         (iv_ca_recount_cost): Update uses.
12690         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
12691         candidates seperately in n_invs and n_cands.
12692         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
12694 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
12696         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
12697         (find_inv_vars_cb): New.
12698         (find_depends): Renamed to ...
12699         (find_inv_vars): ... this.
12700         (add_candidate_1, force_var_cost): Call find_inv_vars.
12701         (split_address_cost, determine_group_iv_cost_cond): Ditto.
12703 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
12705         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
12706         inv_vars.  Add inv_exprs.
12707         (struct iv_cand): Rename depends_on to inv_vars.
12708         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
12709         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
12710         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
12711         (dump_cand): Dump inv_vars.
12712         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
12713         (record_invariant, find_depends, add_candidate_1): Ditto.
12714         (set_group_iv_cost, force_var_cost): Ditto.
12715         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
12716         (get_computation_cost_at, get_computation_cost): Ditto.
12717         (determine_group_iv_cost_generic): Ditto.
12718         (determine_group_iv_cost_address): Ditto.
12719         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
12720         (determine_group_iv_costs): Ditto.
12721         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
12722         (iv_ca_set_remove_invariants): Renamed to ...
12723         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
12724         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
12725         (iv_ca_set_add_invariants):  Renamed to ...
12726         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
12727         (iv_ca_set_cp): Use iv_ca_set_add_invs.
12728         (iv_ca_has_deps): Support inv_vars and inv_exprs.
12729         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
12730         (create_new_ivs): Remove useless dump.
12732 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
12734         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
12735         iv_cand code.
12736         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
12737         (iv_ca_set_no_cp, create_new_iv): Ditto.
12739 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
12741         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
12743 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
12745         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
12746         function tree_check2.
12748 2017-05-02  Martin Liska  <mliska@suse.cz>
12750         * doc/gcov.texi: Add missing preposition.
12751         * gcov.c (function_info::function_info): Properly fill up
12752         all member variables.
12754 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
12756         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
12758 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
12760         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
12762 2017-05-02  Martin Liska  <mliska@suse.cz>
12764         PR lto/77954.
12765         * lto-streamer-in.c (lto_read_tree_1): Remove
12766         LTO_STREAMER_DEBUG.
12767         * lto-streamer.c (struct tree_hash_entry): Likewise.
12768         (struct tree_entry_hasher): Likewise.
12769         (tree_entry_hasher::hash): Likewise.
12770         (tree_entry_hasher::equal): Likewise.
12771         (lto_streamer_init): Likewise.
12772         (lto_orig_address_map): Likewise.
12773         (lto_orig_address_get): Likewise.
12774         (lto_orig_address_remove): Likewise.
12775         * lto-streamer.h: Likewise.
12776         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
12777         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
12779 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
12781         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
12782         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
12783         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
12784         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
12785         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
12786         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
12787         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
12788         (mm_maskz_sub_ss): New intrinsics.
12789         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
12790         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
12791         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
12792         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
12793         (__builtin_ia32_subss_mask_round): New builtins.
12794         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
12795         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
12796         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
12797         Renamed to ...
12798         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
12799         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
12800         Changed to ...
12801         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
12802         ... this.
12804 2017-05-02  Martin Jambor  <mjambor@suse.cz>
12806         PR tree-optimization/78687
12807         * tree-sra.c (access): New field parent.
12808         (process_subtree_disqualification): New function.
12809         (disqualify_candidate): Call it.
12810         (build_accesses_from_assign): Reset write flag if creating an
12811         assighnment link.
12812         (build_access_subtree): Fill in parent field and also prpagate
12813         down grp_write flag.
12814         (create_artificial_child_access): New parameter set_grp_write, set
12815         grp_write to its value.
12816         (propagate_subaccesses_across_link): Also propagate grp_write flag
12817         values.
12818         (propagate_all_subaccesses): Push the closest parent back to work
12819         queue if add_access_to_work_queue returned true.
12821 2017-05-02  Richard Biener  <rguenther@suse.de>
12823         * common.opt (fstrict-overflow): Alias negative to fwrapv.
12824         * doc/invoke.texi (fstrict-overflow): Remove all traces of
12825         -fstrict-overflow documentation.
12826         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
12827         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
12828         flag_strict_overflow.
12829         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
12830         * lto-opts.c (lto_write_options): Do not stream it.
12831         * lto-wrapper.c (merge_and_complain): Do not handle it.
12832         * opts.c (default_options_table): Do not set -fstrict-overflow.
12833         (finish_options): Likewise do not clear it when sanitizing.
12834         * simplify-rtx.c (simplify_const_relational_operation): Do not
12835         test flag_strict_overflow.
12837 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
12839         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
12840         using enabled attribute.
12841         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
12842         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
12843         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
12844         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
12845         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
12846         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
12847         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
12848         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
12849         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
12850         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
12852 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
12854         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
12856 2017-05-02  Richard Biener  <rguenther@suse.de>
12858         PR tree-optimization/80591
12859         Revert
12860         2017-04-10  Richard Biener  <rguenther@suse.de>
12862         * tree-ssa-structalias.c (find_func_aliases): Properly handle
12863         asm inputs.
12865 2017-05-02  Richard Biener  <rguenther@suse.de>
12867         PR tree-optimization/80549
12868         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
12869         (cleanup_tree_cfg_noloop): Create forwarders to known loop
12870         headers if they do not have a preheader.
12872 2017-05-02  Martin Liska  <mliska@suse.cz>
12874         PR other/80589
12875         * common.opt: Fix typo.
12876         * doc/invoke.texi: Likewise.
12878 2017-05-01  Jan Beulich  <jbeulich@suse.com>
12880         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
12881         swapping, add (x,x,m,x,n) alternative.
12883 2017-05-01  Nathan Sidwell  <nathan@acm.org>
12885         * calls.c (combine_pending_stack_adjustment_and_call): Remove
12886         unnecessary unadjusted_alignment check.
12888 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
12890         PR c++/80038
12891         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
12892         operations here.
12893         * gimplify.c (gimplify_cilk_detach): New function.
12894         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
12895         * tree-core.h: Document EXPR_CILK_SPAWN.
12896         * tree.h (EXPR_CILK_SPAWN): Define.
12898 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
12900         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
12901         to use new fixit_hint representation, using the "replace" logic.
12902         (get_line_span_for_fixit_hint): Likewise.
12903         (layout::print_any_fixits): Likewise.
12904         (selftest::test_one_liner_many_fixits): Rename to...
12905         (selftest::test_one_liner_many_fixits_1): ...this, and update
12906         comment and expected output to reflect that the multiple fix-it
12907         hints are now consolidated into one insertion.
12908         (selftest::test_one_liner_many_fixits_2): New test.
12909         (selftest::test_diagnostic_show_locus_one_liner): Update for
12910         above.
12911         (selftest::test_fixit_consolidation): Update for fix-it API
12912         change.
12913         * diagnostic.c (print_parseable_fixits): Likewise.
12914         * edit-context.c (edited_line::m_line_events): Convert from
12915         auto_vec <line_event *> to auto_vec <line_event>.
12916         (class line_event): Convert from abstract base class to a concrete
12917         class, taking over the role of replace_event.
12918         (class insert_event): Delete.
12919         (class replace_event): Rename to class line_event.  Convert to
12920         half-open range.
12921         (edit_context::add_fixits): Reimplement.
12922         (edit_context::apply_insert): Delete.
12923         (edit_context::apply_replace): Rename to...
12924         (edit_context::apply_fixit): ...this.  Convert to half-open range.
12925         (edited_file::apply_insert): Delete.
12926         (edited_file::apply_replace): Rename to...
12927         (edited_file::apply_fixit): ...this.
12928         (edited_line::~edited_line): Drop deletion of events.
12929         (edited_line::apply_insert): Delete.
12930         (edited_line::apply_replace): Rename to...
12931         (edited_line::apply_fixit): ...this.  Convert to half-open range.
12932         Update for change to type of m_line_events.
12933         * edit-context.h (edit_context::apply_insert): Delete.
12934         (edit_context::apply_replace): Rename to...
12935         (edit_context::apply_fixit): ...this.
12937 2017-05-01  Martin Sebor  <msebor@redhat.com>
12939         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
12940         known.
12942 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
12944         PR target/68491
12945         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
12946         __get_cpuid_max returns 0.
12947         (__get_cpuid_count): Ditto.
12949 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
12951         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
12952         replacement expression is another instance of one of its arguments.
12954 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
12956         PR target/79430
12957         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
12958         check for stack push/pop autoinc.
12959         * config/i386/i386.c (ix86_agi_dependent): Return false
12960         if the only reason why modified_in_p returned true is that
12961         addr is SP based and set_insn is a push or pop.
12963 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
12965         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
12966         overflow check.
12968 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
12970         PR ipa/79224
12971         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
12972         (account_size_time): Use two predicates - exec_pred and
12973         nonconst_pred_ptr.
12974         (evaluate_conditions_for_known_args): Compute both clause and
12975         nonspec_clause.
12976         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
12977         (inline_summary_t::duplicate): Update.
12978         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
12979         separately.
12980         (compute_inline_parameters): Likewise.
12981         (estimate_edge_size_and_time): Update caluclation of time.
12982         (estimate_node_size_and_time): Compute both time and nonspecialized
12983         time.
12984         (estimate_ipcp_clone_size_and_time): Update.
12985         (inline_merge_summary): Update.
12986         (do_estimate_edge_time): Update.
12987         (do_estimate_edge_size): Update.
12988         (do_estimate_edge_hints): Update.
12989         (inline_read_section, inline_write_summary): Stream both new predicates.
12990         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
12991         as argument.
12992         (compute_inlined_call_time): Cleanup.
12993         (big_speedup_p): Update.
12994         (edge_badness): Update.
12995         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
12996         (size_time_entry): Replace predicate by exec_predicate and
12997         nonconst_predicate.
12998         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
12999         (estimate_edge_time): Return also nonspec_time.
13000         (reset_edge_growth_cache): Update.
13002 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
13004         PR rtl-optimization/80491
13005         * ifcvt.c (noce_process_if_block): When looking for x setter
13006         with missing else_bb, don't check only the insn right before
13007         cond_earliest, but look for the last insn that x is modified in
13008         within the same bb.
13010         PR rtl-optimization/80491
13011         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
13013 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
13015         PR tree-optimization/80487
13016         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
13018 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13020         PR tree-optimization/79697
13021         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
13022         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
13023         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
13024         BUILT_IN_STRNDUP.
13025         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
13026         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
13028 2017-04-28  Martin Sebor  <msebor@redhat.com>
13030         PR tree-optimization/80523
13031         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
13032         (init_target_to_host_charmap, target_to_host, target_strtol10): New
13033         functions.
13034         (maybe_warn, format_directive, parse_directive): Use new functions.
13035         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
13037 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
13039         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
13041 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13043         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
13044         target_header_dir): Set correctly.
13045         * configure: Regenerated.
13046         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
13047         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
13048         instead of SYSTEM_HEADER_DIR.
13050 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
13052         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
13053         (estimate_local_effects): Likewise.
13054         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
13055         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
13056         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
13057         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
13058         do_estimate_edge_time, estimate_edge_time): Likewise.
13059         * ipa-inline-analysis.c (estimate_node_size_and_time,
13060         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
13061         (estimate_time_after_inlining): Remove.
13063 2017-04-28  Martin Liska  <mliska@suse.cz>
13065         * doc/gcov.texi: Enhance documentation of gcov.
13067 2017-04-28  Martin Liska  <mliska@suse.cz>
13069         * doc/gcov.texi: Sort options in alphabetic order.
13070         * doc/gcov-dump.texi: Likewise.
13071         * doc/gcov-tool.texi: Likewise.
13072         * gcov.c (print_usage): Likewise.
13073         * gcov-dump.c (print_usage): Likewise.
13074         * gcov-tool.c (print_merge_usage_message): Likewise.
13075         (print_rewrite_usage_message): Likewise.
13076         (print_overlap_usage_message): Likewise.
13078 2017-04-28  Martin Liska  <mliska@suse.cz>
13080         PR gcov-profile/53915
13081         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
13083 2017-04-28  Martin Liska  <mliska@suse.cz>
13085         PR gcov-profile/79891
13086         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
13087         is marked by compiler as living on a line.
13088         (get_cycles_count): Remove usage of the union.
13089         (output_intermediate_file): Likewise.
13090         (find_source): Fix GNU coding style.
13091         (accumulate_line_counts): Remove old non-all block mode.
13092         (output_lines): Remove usage of the union.
13093         * profile.c (output_location): Include all BBs, even if
13094         belonging to a same line (and file) as a previous BB.
13096 2017-04-28  Martin Liska  <mliska@suse.cz>
13098         * gcov.c (process_args): Handle new argument 'w'.
13099         (read_graph_file): Assign ID to BBs.
13100         (output_branch_count): Display BB # if verbose flag is set.
13101         (output_lines): Likewise for arcs.
13102         (print_usage): Add '--verbose' option help.
13103         * doc/gcov.texi: Document --verbose (-w) option.
13105 2017-04-28  Martin Liska  <mliska@suse.cz>
13107         * gcov.c (struct block_location_info): New struct.
13108         (process_file): Fill up the new structure.
13109         (read_graph_file): Replace usage of encoding by the newly added
13110         struct.
13111         (add_line_counts): Likewise.
13112         (accumulate_line_counts): Remove usage of the union.
13113         (function_info::function_info): New function.
13114         (function_info::~function_info): Likewise.
13115         (process_file): Call delete instead of release_function.
13116         (release_function): Release the function.
13117         (release_structures): Call delete instead of release_function.
13118         (solve_flow_graph): Replace usage of num_blocks.
13119         (find_exception_blocks): Likewise.
13120         (output_lines): Fix GNU coding style.
13122 2017-04-28  Martin Liska  <mliska@suse.cz>
13124         PR driver/56469
13125         * coverage.c (coverage_remove_note_file): New function.
13126         * coverage.h: Declare the function.
13127         * toplev.c (finalize): Clean if an error has been seen.
13129 2017-04-28  Martin Liska  <mliska@suse.cz>
13131         PR gcov-profile/80031
13132         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
13133         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
13134         * gcov.c (read_graph_file): Read just number of blocks.
13135         * profile.c (branch_prob): Do not stream 0 flags per a basic
13136         block.
13138 2017-04-28  Martin Liska  <mliska@suse.cz>
13140         * gcov-dump.c (tag_*): Add new argument to declarations.
13141         (dump_gcov_file): Likewise.
13142         (tag_blocks): Add and use new argument depth.
13143         (tag_arcs): Likewise.
13144         (tag_lines): Likewise.
13145         (tag_counters): Likewise.
13146         (tag_summary): Likewise.
13147         (dump_working_sets): Use depth to do a proper indentation.
13149 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
13151         PR bootstrap/80531
13152         * cgraph.h (symtab_node::debug_symtab): No longer inline.
13153         * symtab.c (symtab_node::debug_symtab): Move definition here.
13155 2017-04-28  Richard Biener  <rguenther@suse.de>
13157         * lto-streamer.h (LTO_major_version): Bump to 7.
13159 2017-04-28  Richard Biener  <rguenther@suse.de>
13161         * tree-vrp.c (assert_info): New struct.
13162         (add_assert_info): New helper.
13163         (register_edge_assert_for_2): Refactor to add asserts to a vector
13164         of assert_info.
13165         (register_edge_assert_for_1): Likewise.
13166         (register_edge_assert_for): Likewise.
13167         (finish_register_edge_assert_for): New helper actually registering
13168         asserts where live on edge.
13169         (find_conditional_asserts): Adjust.
13170         (find_switch_asserts): Likewise.
13171         (evrp_dom_walker::try_find_new_range): Generalize.
13172         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
13174 2017-04-27  Marek Polacek  <polacek@redhat.com>
13176         PR sanitizer/80349
13177         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
13178         arg10 and arg11 to itype.
13180 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
13182         * doc/extend.texi (Object Size Checking): Improve grammar.
13184 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
13186         PR target/80530
13187         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
13188         that the logic for permitting reciprocal estimates matches that
13189         in use_rsqrt_p.
13191 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
13193         PR c++/80534
13194         * tree.c (type_cache_hasher::equal): Only compare
13195         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
13196         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
13197         non-aggregate element types.
13198         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
13199         about the flag on ARRAY_TYPEs in the comment, formatting fix.
13201 2017-04-27  Richard Biener  <rguenther@suse.de>
13203         PR middle-end/80533
13204         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
13205         stripping ARRAY_REFs from MEM_EXPR make sure we're not
13206         keeping a reference to a trailing array.
13208 2017-04-27  Richard Biener  <rguenther@suse.de>
13210         PR middle-end/80539
13211         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
13212         being in loop-closed SSA form conservatively.
13213         (chrec_fold_multiply_poly_poly): Likewise.
13215 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
13217         PR middle-end/79665
13218         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
13219         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
13221 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
13223         PR target/77728
13224         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
13225         (aarch64_function_arg_alignment): Return unsigned int again, but still
13226         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
13227         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
13228         Don't emit -Wpsabi note.
13229         (aarch64_function_arg_boundary): Likewise.
13230         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
13231         caller.
13233 2017-04-26  Nathan Sidwell  <nathan@acm.org>
13235         * tree.h (crc32_unsigned_n): Declare.
13236         (crc32_unsigned, crc32_unsigned): Make inline.
13237         * tree.c (crc32_unsigned_bits): Replace with ...
13238         (crc32_unsigned_n): ... this.
13239         (crc32_unsigned, crc32_byte): Remove.
13240         (crc32_string): Remove unnecessary braces.
13242 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
13244         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
13245         * ipa-inline-analysis.c (MAX_TIME): Remove.
13246         (account_size_time): Use sreal for time.
13247         (dump_inline_summary): Update.
13248         (estimate_function_body_sizes): Update.
13249         (estimate_edge_size_and_time): Update.
13250         (estimate_calls_size_and_time): Update.
13251         (estimate_node_size_and_time): Update.
13252         (inline_merge_summary): Update.
13253         (inline_update_overall_summary): Update.
13254         (estimate_time_after_inlining): Update.
13255         (inline_read_section): Update.
13256         (inline_write_summary): Update.
13257         * ipa-inline.c (compute_uninlined_call_time): Update.
13258         (compute_inlined_call_time): Update.
13259         (recursive_inlining): Update.
13260         (inline_small_functions): Update.
13261         (dump_overall_stats): Update.
13262         * ipa-inline.h: Include sreal.h.
13263         (size_time_entry): Turn time to sreal.
13264         (inline_summary): Turn self_time nad time to sreal.
13266 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
13268         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
13269         data-streamer.h
13270         (sreal::stream_out, sreal::stream_in): New.
13271         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
13273 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
13275         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
13276         environment.
13278 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
13280         PR target/70799
13281         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
13282         Handle ASHIFTRT.
13283         (dimode_scalar_chain::compute_convert_gain): Ditto.
13284         (dimode_scalar_chain::make_vector_copies): Ditto.
13285         (dimode_scalar_chain::convert_reg): Ditto.
13286         (dimode_scalar_chain::convert_insn): Ditto.
13287         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
13288         (VI248_AVX512BW_1): New mode iterator.
13289         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
13290         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
13291         mode iterator.
13293 2017-04-25  Martin Sebor  <msebor@redhat.com>
13295         PR tree-optimization/80497
13296         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
13297         constants are representable in HOST_WIDE_INT.
13298         (parse_directive): Ditto.
13300 2017-04-25  Martin Sebor  <msebor@redhat.com>
13302         PR bootstrap/80486
13303         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
13304         (new_zero_array): Adjust signature.
13305         (dom_info::dom_init): Used unsigned rather that size_t.
13306         (dom_info::dom_info): Same.
13308 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13309             Jakub Jelinek  <jakub@redhat.com>
13311         PR target/77728
13312         * config/arm/arm.c: Include gimple.h.
13313         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
13314         returns negative, increment ncrn only if it returned positive.
13315         (arm_needs_doubleword_align): Return int instead of bool,
13316         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
13317         members, but if there is any such non-FIELD_DECL
13318         > PARM_BOUNDARY aligned decl, return -1 instead of false.
13319         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
13320         returns negative, increment nregs only if it returned positive.
13321         (arm_setup_incoming_varargs): Likewise.
13322         (arm_function_arg_boundary): Emit -Wpsabi note if
13323         arm_needs_doubleword_align returns negative, return
13324         DOUBLEWORD_ALIGNMENT only if it returned positive.
13326 2017-04-25  Marek Polacek  <polacek@redhat.com>
13328         PR sanitizer/80349
13329         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
13330         first argument to type.
13332 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
13334         PR target/80482
13335         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
13336         type checks to test for compatibility instead of equality.
13338 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13339             Jakub Jelinek  <jakub@redhat.com>
13341         PR target/77728
13342         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
13343         type.
13344         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
13345         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
13346         the alignment computation, but return their maximum in warn_alignment.
13347         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
13348         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
13349         is smaller.
13350         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
13351         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
13352         caller.
13354 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
13356         * config/arc/simdext.md (dmpyh): Fix typo.
13358 2017-04-25  Richard Biener  <rguenther@suse.de>
13360         PR tree-optimization/80492
13361         * alias.c (compare_base_decls): Handle registers with asm
13362         specification conservatively.
13363         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
13364         compare_base_decls returning dont-know properly.
13366 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
13368         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
13369         (legitimate_offset_address_p): New function.
13370         (arc_legitimate_address_p): Use above function.
13372 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
13374         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
13376 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
13378         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
13379         ACCH registers whenever they are available.
13381 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
13383         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
13384         double regs fix when not used.
13386 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
13388         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
13389         core registers.
13390         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
13391         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
13393 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
13395         * config/arc/arc.c (arc_output_addsi): Check for h-register class
13396         when emitting short ADD instructions.
13398 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
13400         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
13401         constraint.
13402         (cmpsi_cc_c_insn): Likewise.
13403         (cbranchsi4_scratch): Compute proper instruction length using
13404         compact_hreg_operand.
13405         * config/arc/predicates.md (compact_hreg_operand): New predicate.
13407 2017-04-25  Richard Biener  <rguenther@suse.de>
13409         PR middle-end/80509
13410         * passes.c (pass_manager::pass_manager): Initialize
13411         m_name_to_pass_map.
13413 2017-04-25  Richard Biener  <rguenther@suse.de>
13415         PR tree-optimization/79201
13416         * tree-ssa-sink.c (statement_sink_location): Handle calls.
13418 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13420         PR target/80464
13421         * config/s390/vector.md: Split MEM->GPR vector moves for
13422         non-s_operand addresses.
13424 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13426         PR target/79895
13427         * config/s390/predicates.md (reload_const_wide_int_operand): New
13428         predicate.
13429         * config/s390/s390.md ("movti"): Remove d/P alternative.
13430         ("movti_bigconst"): New pattern definition.
13432 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13434         PR target/80080
13435         * s390-protos.h (s390_expand_cs_hqi): Removed.
13436         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
13437         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
13438         modes as well as CCZ1mode and CCZmode.
13439         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
13440         signature of s390_emit_compare_and_swap.
13441         (s390_expand_cs_hqi): Likewise, make static.
13442         (s390_expand_cs_tdsi): Generate an explicit compare before trying
13443         compare-and-swap, in some cases.
13444         (s390_expand_cs): Wrapper function.
13445         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
13446         atomic_exchange.
13447         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
13448         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
13449         patterns for small and large integers.  Forbid symref memory operands.
13450         Move expander to s390.c.  Require cc register.
13451         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
13452         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
13453         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
13454         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
13455         symref memory operands.  Remove CC mode and call s390_match_ccmode
13456         instead.
13457         ("atomic_exchange<mode>"): Allow and implement all integer modes.
13459 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13461         * config/s390/s390.md (define_peephole2): New peephole to help
13462         combining the load-and-test pattern with volatile memory.
13464 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13466         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
13467         with CCZmode for TARGET_Z196.
13469 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
13471         PR rtl-optimization/80501
13472         * combine.c (make_compound_operation_int): Set subreg_code to SET
13473         even for AND with mask of the sign bit of mode.
13475         PR rtl-optimization/80500
13476         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
13477         sum's initial value.
13479 2017-04-25  Julian Brown  <julian@codesourcery.com>
13480             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
13482         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
13484 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
13486         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
13488 2017-04-25  Julian Brown  <julian@codesourcery.com>
13489             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
13491         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
13492         (thunderx2t99_sha): New Reservation.
13494 2017-04-25  Julian Brown  <julian@codesourcery.com>
13495             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
13497         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
13498         type for 1-element load.
13500 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
13502         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
13504 2017-04-24  Martin Jambor  <mjambor@suse.cz>
13506         PR tree-optimization/80293
13507         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
13508         char arrays not totally scalarizable if it is false.
13509         (analyze_all_variable_accesses): Pass correct value in the new
13510         parameter.  Add a statistics counter.
13512 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
13514         PR middle-end/79931
13515         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
13517 2017-04-24  Richard Biener  <rguenther@suse.de>
13519         PR tree-optimization/80494
13520         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
13521         out for complex types.
13523 2017-04-24  Richard Biener  <rguenther@suse.de>
13525         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
13526         * tree-ssa-sccvn.c (print_scc): Print SCC size.
13527         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
13528         (DFS): Adjust and never fail.
13529         (sccvn_dom_walker::fail): Remove.
13530         (sccvn_dom_walker::before_dom_children): Adjust.
13531         (run_scc_vn): Likewise and never fail.
13532         * tree-ssa-pre.c (pass_pre::execute): Adjust.
13533         (pass_fre::execute): Likewise.
13535 2017-04-24  Richard Biener  <rguenther@suse.de>
13537         PR tree-optimization/79725
13538         * tree-ssa-sink.c (statement_sink_location): Return whether
13539         failure reason was zero uses.  Move that check later.
13540         (sink_code_in_bb): Deal with zero uses by removing the stmt
13541         if possible.
13543 2017-04-24  Richard Biener  <rguenther@suse.de>
13545         PR c++/2972
13546         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
13547         pointer-based references.
13549 2017-04-24  Richard Biener  <rguenther@suse.de>
13551         PR bootstrap/79814
13552         * pass_manager.h (pass_manager::operator new): Remove.
13553         (pass_manager::operator delete): Likewise.
13554         * passes.c (pass_manager::operator new): Remove.
13555         (pass_manager::operator delete): Likewise.
13556         (pass_manager::pass_manager): Zero individual pass members.
13558 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
13560         PR target/70799
13561         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
13562         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
13563         Check "XEXP (src, 1)" operand here.
13564         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
13565         Check "XEXP (src, 1)" operand here.
13566         (dimode_scalar_chain::make_vector_copies): Detect count register
13567         of a shift instruction.  Zero extend count register from QImode
13568         to DImode to satisfy vector shift pattern count operand predicate.
13569         Substitute vector shift count operand with a DImode copy.
13570         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
13571         vector register.
13573 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
13575         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
13576         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
13577         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
13578         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
13579         (UNSPEC_NOREX_MEM): Remove definition.
13581 2017-04-21  Richard Biener  <rguenther@suse.de>
13583         PR tree-optimization/79547
13584         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13585         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
13586         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
13587         without any constraints.
13589 2017-04-21  Richard Biener  <rguenther@suse.de>
13591         PR tree-optimization/78847
13592         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
13594 2017-04-21  Richard Biener  <rguenther@suse.de>
13596         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
13597         (build_distinct_type_copy): Likewise.
13598         (build_variant_type_copy): Likewise.
13599         * tree.c (build_qualified_type): Pass down mem-stat info.
13600         (build_distinct_type_copy): Likewise.
13601         (build_variant_type_copy): Likewise.
13603 2017-04-21  Richard Biener  <rguenther@suse.de>
13605         PR tree-optimization/80237
13606         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
13607         defaulted to NULL.
13608         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
13609         for a simplified result.
13611 2016-04-21  Richard Biener  <rguenther@suse.de>
13613         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
13614         sth as strict as a simple_iv but a chrec without symbols and an
13615         operand defined in the loop we are peeling (and not some subloop).
13616         (propagate_constants_for_unrolling): Propagate all constants.
13618 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
13620         PR target/79804
13621         * config/i386/i386.c (print_reg): Remove assert for disalowed
13622         regno values, call output_operand_lossage instead.
13624 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
13626         PR target/78090
13627         * config/i386/constraints.md (Yc): New register constraint.
13628         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
13629         Use Yc constraint for alternative 2 of operand 0.  Remove
13630         preferred_for_speed attribute.
13632 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
13634         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
13635         lastprivate clauses in SIMT case.
13637 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
13639         * doc/invoke.texi (-Wextra-semi): Document new warning option.
13641 2017-04-20  Richard Biener  <rguenther@suse.de>
13643         PR tree-optimization/57796
13644         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
13645         as N scalar stores.
13646         (vect_model_load_cost): Cost gathers as N scalar loads.
13648 2017-04-20  Richard Biener  <rguenther@suse.de>
13650         * ggc-page.c (ggc_allocated_p): Rename to ...
13651         (safe_lookup_page_table_entry): ... this and return the lookup
13652         result.
13653         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
13655 2017-04-20  Richard Biener  <rguenther@suse.de>
13657         PR tree-optimization/80453
13658         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
13659         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
13660         from the conditions.
13661         (vn_phi_eq): Pass them down.
13662         (vn_phi_lookup): Record them.
13663         (vn_phi_insert): Likewise.
13665 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
13667         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
13668         uninitialized variable warning to avoid buffer overrun.
13670 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
13672         PR other/71250
13673         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
13674         is suppressed for '{ 0 }' in C.
13676 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
13678         * BASE-VER: Set to 8.0.0.
13680 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13682         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
13683         priority .init_array and .fini_array section with SECTION_NOTYPE
13684         flag.
13686 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
13688         PR middle-end/80423
13689         * tree.h (build_array_type): Add typeless_storage default argument.
13690         * tree.c (type_cache_hasher::equal): Also compare
13691         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
13692         (build_array_type): Add typeless_storage argument, set
13693         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
13694         recursive call.
13695         (build_nonshared_array_type): Adjust build_array_type_1 caller.
13696         (build_array_type): Likewise.  Add typeless_storage argument.
13698 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
13699             Jakub Jelinek  <jakub@redhat.com>
13701         PR tree-optimization/80426
13702         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
13703         operation on symbolic operands, also compute the overflow for the
13704         invariant part when the operation degenerates into a negation.
13706 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
13708         PR debug/80461
13709         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
13710         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
13712         PR debug/80436
13713         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
13715 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
13717         PR target/80462
13718         * config/avr/avr.c (tree.h): Include it.
13719         (cgraph.h): Include it.
13720         (avr_encode_section_info): Don't warn for uninitialized progmem
13721         variable if it's just an alias.
13723 2017-04-19  Richard Biener  <rguenther@suse.de>
13725         PR ipa/65972
13726         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
13727         when needed by AutoPGO.
13729 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
13731         PR lto/50345
13732         * doc/lto.texi: Remove an extra 'that'.
13734 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
13736         PR rtl-optimization/80429
13737         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
13738         are only used in debug insns.
13740 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
13741             Vladimir Makarov  <vmakarov@redhat.com>
13743         * config/sparc/predicates.md (input_operand): Add comment.  Return
13744         true for any memory operand when LRA is in progress.
13745         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
13747 2017-04-18  Jeff Law  <law@redhat.com>
13749         PR target/74563
13750         * mips.md ({return,simple_return}_internal): Do not overwrite
13751         operands[0].
13753 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
13755         PR tree-optimization/80443
13756         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
13757         instead of adding 1, subtract -1 and similarly instead of subtracting
13758         1 add -1.
13760 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
13762         PR rtl-optimization/80357
13763         * haifa-sched.c (tmp_bitmap): New variable.
13764         (model_recompute): Handle duplicate use records.
13765         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
13766         (free_global_sched_pressure_data): Free it.
13768 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13770         Revert:
13771         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13772         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
13773         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
13774         instead of SYSTEM_HEADER_DIR.
13776 2017-04-18  Jeff Law  <law@redhat.com>
13778         PR middle-end/80422
13779         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
13780         predecessors after walking up the insn chain.
13782 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
13784         PR debug/80263
13785         * dwarf2out.c (modified_type_die): Try harder not to emit internal
13786         sizetype type into debug info.
13788 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
13790         PR target/80099
13791         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
13792         unneeded test for TARGET_UPPER_REGS_SF.
13793         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
13795 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
13797         PR sanitizer/80444
13798         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
13799         instead of gsi_after_labels.
13801 2017-04-18  Jeff Law  <law@redhat.com>
13803         * regcprop.c (maybe_mode_change): Avoid creating copies of the
13804         stack pointer.
13806         Revert:
13807         2017-04-13  Jeff Law  <law@redhat.com>
13808         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
13809         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
13811 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
13813         PR target/79453
13814         * config/avr/avr.c (intl.h): Include it.
13815         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
13817 2017-04-18  Martin Liska  <mliska@suse.cz>
13819         PR gcov-profile/78783
13820         * gcov-tool.c (gcov_output_files): Validate that destination
13821         file is either removed by the tool or by a user.
13823 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
13824             Guy Benyei  <guybe@mellanox.com>
13826         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
13827         block, and do not negate it, the stored id is already negative.
13829 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
13831         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
13833 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
13835         PR target/80098
13836         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
13837         masks of options that should be turned off if the VSX vector
13838         options are turned off.
13839         (OTHER_P8_VECTOR_MASKS): Likewise.
13840         (OTHER_VSX_VECTOR_MASKS): Likewise.
13841         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
13842         rs6000_disable_incompatible_switches to validate no type switches
13843         like -mvsx.
13844         (rs6000_incompatible_switch): New function to disallow turning on
13845         other vector options if -mno-vsx, -mno-power8-vector, or
13846         -mno-power9-vector are specified.
13848 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
13850         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
13852 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
13854         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
13855         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
13856         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
13857         (ARG_POINTER_CFA_OFFSET): Likewise.
13859 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
13861         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
13862         conditions to take advantage of various optimizations.
13864 2017-04-13  Jeff Law  <law@redhat.com>
13866         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
13867         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
13868         (zero_extendsidi2_dext): Likewise.
13870 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
13872         PR sanitizer/80403
13873         * fold-const.c (fold_ternary_loc): Revert
13874         use op0 instead of fold_convert_loc (loc, type, arg0) part of
13875         2017-04-12 change.
13877 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
13879         PR rtl-optimization/80343
13880         * lra-remat.c (update_scratch_ops): Assign original hard reg to
13881         new scratch pseudo.
13883 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
13885         PR sanitizer/80414
13886         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
13887         to ubsan_encode_value.
13889 2017-04-13  Jeff Law  <law@redhat.com>
13891         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
13892         appearing in DEBUG_INSNs.
13894 2017-04-13  Martin Liska  <mliska@suse.cz>
13896         PR gcov-profile/80413
13897         * gcov-io.c (gcov_write_string): Copy to buffer just when
13898         allocated size is greater than zero.
13900 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
13902         PR debug/80321
13903         * dwarf2out.c (decls_for_scope): Ignore declarations of
13904         current_function_decl in BLOCK_NONLOCALIZED_VARS.
13906 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
13908         PR lto/69953
13909         * ipa-visibility.c (non_local_p): Fix typos.
13910         (localize_node): When localizing symbol in same comdat group,
13911         dissolve the group only when we know external symbols are going
13912         to be privatized.
13913         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
13915 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
13917         PR tree-optimization/79390
13918         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
13919         order does not result in usable sequence, retry with reversed operand
13920         order.
13922         PR sanitizer/80403
13923         PR sanitizer/80404
13924         PR sanitizer/80405
13925         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
13926         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
13927         op0 instead of fold_convert_loc (loc, type, arg0).
13929 2017-04-12  Jeff Law  <law@redhat.com>
13931         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
13932         has a delay slot in the generated code.
13934         * config/cris/cris.md (cris_preferred_reload_class): Return
13935         GENNONACR_REGS rather than GENERAL_REGS.
13937 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
13939         PR c/80163
13940         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
13941         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
13942         signedness of the result type.
13944 2017-04-12  Richard Biener  <rguenther@suse.de>
13945             Jeff Law  <law@redhat.com>
13947         PR tree-optimization/80359
13948         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
13949         trim stores to TARGET_MEM_REFs.
13951 2017-04-12  Richard Biener  <rguenther@suse.de>
13953         PR tree-optimization/79390
13954         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
13955         threading case even more.
13957 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
13959         PR target/80382
13960         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
13961         for quad_address_p for TImode, instead of just not indexed_address.
13963 2017-04-12  Richard Biener  <rguenther@suse.de>
13964             Bernd Edlinger  <bernd.edlinger@hotmail.de>
13966         PR middle-end/79671
13967         * alias.c (component_uses_parent_alias_set_from): Handle
13968         TYPE_TYPELESS_STORAGE.
13969         (get_alias_set): Likewise.
13970         * tree-core.h (tree_type_common): Add typeless_storage flag.
13971         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
13972         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
13973         for types containing members with TYPE_TYPELESS_STORAGE.
13974         (place_field): Likewise.
13975         (layout_type): Likewise for ARRAY_TYPE.
13976         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
13977         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
13978         TYPE_TYPELESS_STORAGE.
13979         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
13981 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
13983         PR sanitizer/80349
13984         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
13985         first argument to type.
13987 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13989         PR target/80376
13990         PR target/80315
13991         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
13992         CONST0_RTX (mode) rather than const0_rtx where appropriate.
13993         (rs6000_expand_binop_builtin): Likewise.
13994         (rs6000_expand_ternop_builtin): Likewise; also add missing
13995         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
13996         vshasigma built-ins.
13997         * doc/extend.texi: Document that vec_xxpermdi's third argument
13998         must be a constant.
14000 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
14002         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
14003         Use shift_const cost parameter when calculating gain of STV shifts.
14005 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
14007         PR rtl-optimization/70478
14008         * lra-constraints.c (process_alt_operands): Check memory for
14009         disfavoring memory insn operand.
14011 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
14013         PR middle-end/80100
14014         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
14015         left shift in unsigned HOST_WIDE_INT type.
14017         PR rtl-optimization/80385
14018         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
14019         (not (neg X)) into (plus X -1) for complex or non-integral modes.
14021         PR libgomp/80394
14022         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
14023         if they have any depend clauses.
14025 2017-04-11  Martin Liska  <mliska@suse.cz>
14027         PR ipa/80212
14028         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
14029         * ipa-split.c (split_function): Create a local comdat symbol
14030         if caller is in a comdat group.
14032 2017-04-11  Martin Liska  <mliska@suse.cz>
14034         PR ipa/80212
14035         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
14036         flags.
14038 2017-04-11  Martin Sebor  <msebor@redhat.com>
14040         PR middle-end/80364
14041         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
14042         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
14043         for INTEGER_TYPE.
14044         (directive::set_width, directive::set_precision, format_character):
14045         Adjust.
14046         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
14047         INTEGER_TYPE.
14049 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
14051         PR target/80389
14052         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
14053         conflict, set target->arch_name instead of target->cpu_name.
14055 2017-04-11  Richard Biener  <rguenther@suse.de>
14057         PR tree-optimization/80374
14058         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
14059         build_zero_cst, remove fold_convertible_p check again.
14061 2017-04-11  Martin Liska  <mliska@suse.cz>
14063         PR sanitizer/70878
14064         * ubsan.c (instrument_object_size): Do not instrument register
14065         variables.
14067 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
14069         PR target/80381
14070         * config/i386/i386-builtin-types.def
14071         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
14072         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
14073         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
14074         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
14075         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
14076         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
14077         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
14078         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
14079         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
14080         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
14081         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
14082         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
14083         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
14084         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
14085         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
14086         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
14087         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
14088         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
14089         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
14090         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
14091         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
14092         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
14093         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
14094         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
14095         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
14096         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
14097         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
14098         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
14099         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
14100         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
14101         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
14102         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
14103         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
14104         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
14105         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
14106         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
14107         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
14108         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
14109         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
14110         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
14111         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
14112         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
14113         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
14114         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
14115         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
14116         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
14117         aliases.
14118         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
14119         flag to second_arg_count, handle 4 argument function type _COUNT
14120         aliases, handle second_arg_count on second argument rather than last.
14122 2017-04-10  Jeff Law  <law@redhat.com>
14124         PR tree-optimization/80374
14125         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
14126         record anything if we can not convert integer_zero_node to the
14127         desired type.
14129 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
14131         PR target/80108
14132         * config/rs6000/rs6000.c (rs6000_option_override_internal):
14133         Enhance special handling given to the TARGET_P9_MINMAX option in
14134         relation to certain other options.
14136 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
14138         PR tree-optimization/80153
14139         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
14140         remove POINTER_PLUS_EXPR's base part directly, rather than through
14141         aff_tree.
14143 2017-04-10  Richard Biener  <rguenther@suse.de>
14144             Bin Cheng  <bin.cheng@arm.com>
14146         PR tree-optimization/80153
14147         * tree-affine.c (aff_combination_to_tree): Get base pointer from
14148         the first element of pointer type aff_tree.  Build result expr in
14149         aff_tree's type.
14150         (add_elt_to_tree): Convert to type unconditionally.  Remove other
14151         fold_convert calls.
14152         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
14153         (rewrite_use_nonlinear_expr): Check invariant using iv information.
14155 2017-04-10  Richard Biener  <rguenther@suse.de>
14157         * tree-ssa-structalias.c (find_func_aliases): Properly handle
14158         asm inputs.
14160 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
14162         PR rtl-optimization/70478
14163         * lra-constraints.c (curr_small_class_check): New.
14164         (update_and_check_small_class_inputs): New.
14165         (process_alt_operands): Update curr_small_class_check.  Disfavor
14166         alternative insn memory operands.  Check available regs for small
14167         class operands.
14169 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
14171         PR target/80057
14172         * config/mips/mips.opt (-mvirt): Update description.
14173         * doc/invoke.texi (-mvirt): Likewise.
14175 2017-04-10  Richard Biener  <rguenther@suse.de>
14177         PR middle-end/80362
14178         * fold-const.c (fold_binary_loc): Look at unstripped ops when
14179         looking for NEGATE_EXPR in -A / -B to A / B folding.
14181 2017-04-10  Martin Liska  <mliska@suse.cz>
14183         PR gcov-profile/80224
14184         * gcov.c (print_usage): Fix usage string.
14185         (get_gcov_intermediate_filename): Remove.
14186         (output_gcov_file): Use both for normal and intermediate format.
14187         (generate_results): Do not initialize special file for
14188         intermediate format.
14190 2017-04-10  Richard Biener  <rguenther@suse.de>
14192         PR tree-optimization/80304
14193         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
14194         for safelen.
14196 2017-04-10  Nathan Sidwell  <nathan@acm.org>
14198         PR target/79905
14199         * config/rs6000/rs6000.c (rs6000_vector_type): New.
14200         (rs6000_init_builtins): Use it.
14202 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14204         * config/arm/arm.md (<mrc>): Add mode to SET source.
14205         (<mrrc>): Likewise.
14207 2017-04-10  Richard Biener  <rguenther@suse.de>
14209         PR middle-end/80344
14210         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
14212 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
14214         PR target/80324
14215         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
14216         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
14217         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
14218         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
14219         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
14220         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
14221         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
14222         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
14223         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
14224         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
14225         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
14226         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
14227         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
14228         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
14229         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
14230         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
14231         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
14232         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
14233         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
14234         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
14235         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
14236         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
14237         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
14239 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
14241         PR rtl-optimization/70478
14242         * lra-constraints.c: Reverse the last patch.
14244 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
14246         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
14247         Add comment for WCHAR_T.
14249 2017-04-08  Martin Liska  <mliska@suse.cz>
14251         Revert:
14252         2017-04-07  Martin Liska  <mliska@suse.cz>
14254         PR ipa/80212
14255         * ipa-split.c (split_function): Add function part to a same comdat
14256         group.
14258 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
14260         PR target/80358
14261         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
14263 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
14265         * rs6000/rs6000.c (vec_load_pendulum): Rename...
14266         (vec_pairing): ...to this.
14267         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
14268         (rs6000_sched_init): Adjust for name change.
14269         (struct rs6000_sched_context): Likewise.
14270         (rs6000_init_sched_context): Likewise.
14271         (rs6000_set_sched_context): Likewise.
14273 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
14275         PR target/80322
14276         PR target/80323
14277         PR target/80325
14278         PR target/80326
14279         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
14280         intrinsics.
14281         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
14282         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
14283         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
14285 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
14287         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
14289 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
14291         PR rtl-optimization/70703
14292         * ira-color.c (update_conflict_hard_regno_costs): Use
14293         int64_t instead of HOST_WIDE_INT.
14295 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
14297         PR rtl-optimization/70478
14298         * lra-constraints.c (process_alt_operands): Disfavor alternative
14299         insn memory operands.
14301 2017-04-07  Jeff Law  <law@redhat.com>
14303         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
14304         CALL and NOTE_INSN_CALL_ARG_LOCATION.
14306 2017-04-07  Martin Liska  <mliska@suse.cz>
14308         PR target/79889
14309         * config/aarch64/aarch64.c (aarch64_process_target_attr):
14310         Show error message instead of an ICE.
14312 2017-04-07  Martin Liska  <mliska@suse.cz>
14314         PR ipa/80212
14315         * ipa-split.c (split_function): Add function part to a same comdat
14316         group.
14318 2017-04-07  Richard Biener  <rguenther@suse.de>
14320         PR middle-end/80341
14321         * tree.c (get_unwidened): Also handle ! for_type case for
14322         INTEGER_CSTs.
14323         * convert.c (do_narrow): Split out from ...
14324         (convert_to_integer_1): ... here.  Do not pass final truncation
14325         type to get_unwidened for TRUNC_DIV_EXPR.
14327 2017-04-07  Richard Biener  <rguenther@suse.de>
14329         * tree-affine.c (wide_int_ext_for_comb): Take type rather
14330         than aff_tree.
14331         (aff_combination_const): Adjust.
14332         (aff_combination_scale): Likewise.
14333         (aff_combination_add_elt): Likewise.
14334         (aff_combination_add_cst): Likewise.
14335         (aff_combination_convert): Likewise.
14336         (add_elt_to_tree): Likewise.  Remove unused argument.
14337         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
14339 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14341         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
14342         definition.
14343         * config/arm/arm.c (arm_default_short_enums): Use
14344         ARM_DEFAULT_SHORT_ENUMS.
14345         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
14347 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
14349         PR debug/80234
14350         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
14351         members with redundant out-of-class redeclaration.
14353 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
14355         PR target/80286
14356         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
14357         * config/i386/i386.md (*zero_extendsidi2):
14358         Add (?*x,*x) and (?*v,*v) alternatives.
14360 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
14362         PR target/79733
14363         * config/i386/i386.c (ix86_expand_builtin)
14364         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
14365         mode from insn data. Convert operands to insn operand mode.
14366         Copy operands that don't satisfy insn predicate to a register.
14368 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
14370         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
14371         Update comments.
14373 2017-04-06  Richard Biener  <rguenther@suse.de>
14375         PR tree-optimization/80334
14376         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
14377         preserve alignment of accesses.
14379 2017-04-06  Richard Biener  <rguenther@suse.de>
14381         PR tree-optimization/80262
14382         * tree-sra.c (build_ref_for_offset): Preserve address-space
14383         information.
14384         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
14385         Drop useless address-space information on MEM_REF offsets.
14387 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
14389         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
14391 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
14393         PR rtl-optimization/70703
14394         * ira-color.c (update_conflict_hard_regno_costs): Use
14395         HOST_WIDE_INT instead of long.
14397 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
14399         PR target/80298
14400         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
14401         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
14402         is not defined.
14403         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
14404         for x86_64 target.  Handle -m3dnowa option.
14406 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
14408         PR rtl-optimization/70703
14409         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
14410         (update_conflict_hard_regno_costs): Use long instead of unsigned
14411         arithmetic for cost calculation.
14413 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
14414             Bernd Edlinger  <bernd.edlinger@hotmail.de>
14416         PR sanitizer/80308
14417         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
14418         for big endian.
14420 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
14422         PR target/78002
14423         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
14424         ptr_mode with Pmode throughout.
14425         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
14426         into probe_stack_range and use DImode.
14428 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14430         PR target/79890
14431         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
14432         call_eh_return is true.
14434 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14436         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
14437         Initialize last_match_fntype_index.
14439 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
14441         PR target/80310
14442         * tree-nvr.c: Include internal-fn.h.
14443         (pass_return_slot::execute): Ignore internal calls without
14444         direct optab.
14446 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
14447             Richard Biener  <rguenther@suse.de>
14449         PR c++/80297
14450         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
14451         captures used multiple times, except for the last use.
14452         * generic-match-head.c: Include gimplify.h.
14454 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
14456         PR tree-optimization/79390
14457         * target.h (struct noce_if_info): Declare.
14458         * targhooks.h (default_noce_conversion_profitable_p): Declare.
14459         * target.def (noce_conversion_profitable_p): New target hook.
14460         * ifcvt.h (struct noce_if_info): New type, moved from ...
14461         * ifcvt.c (struct noce_if_info): ... here.
14462         (noce_conversion_profitable_p): Renamed to ...
14463         (default_noce_conversion_profitable_p): ... this.  No longer
14464         static nor inline.
14465         (noce_try_store_flag_constants, noce_try_addcc,
14466         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
14467         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
14468         instead of noce_conversion_profitable_p.
14469         * config/i386/i386.c: Include ifcvt.h.
14470         (ix86_option_override_internal): Don't override
14471         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
14472         (ix86_noce_conversion_profitable_p): New function.
14473         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
14474         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
14475         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
14476         * doc/tm.texi: Regenerated.
14478 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14480         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
14481         correction.
14483 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14485         PR target/80307
14486         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
14487         instructions for small multiply cores.
14489 2017-04-04  Jeff Law  <law@redhat.com>
14491         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
14492         added member.
14493         (mips_expand_vec_perm_const): Initialize elements in orig_perm
14494         that are not set by the loop over the elements.
14496 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
14498         PR target/80286
14499         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
14500         int mode, convert_modes it to mode as unsigned, otherwise use
14501         lowpart_subreg to mode rather than SImode.
14502         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
14503         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
14504         Use DImode instead of SImode for the shift count operand.
14505         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
14506         Likewise.
14508 2017-04-04  Richard Biener  <rguenther@suse.de>
14510         PR middle-end/80281
14511         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
14512         arithmetic done for the negate or the plus.  Simplify.
14513         (A - (-B) -> A + B): Likewise.
14514         * fold-const.c (split_tree): Make sure to not negate pointers.
14516 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
14518         PR rtl-optimization/60818
14519         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
14520         a compare of comparisons with the thing compared if this results
14521         in a different machine mode.
14523 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
14525         * alias.c (base_alias_check): Fix typo in comment.
14526         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
14527         * cgraphunit.c (symbol_table::compile): Likewise.
14528         * collect2.c (maybe_run_lto_and_relink): Likewise.
14529         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
14530         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
14531         * config/avr/avr.c (avr_map_op_t): Likewise.
14532         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
14533         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
14534         * config/epiphany/epiphany.md (movcc): Likewise.
14535         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
14536         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
14537         Likewise.
14538         * config/mips/mips.c (mips_save_restore_reg): Likewise.
14539         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
14540         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
14541         * config/sh/sh.c (sh_rtx_costs): Likewise.
14542         * fold-const.c (fold_truth_andor): Likewise.
14543         * genautomata.c (collapse_flag): Likewise.
14544         * gengtype.h (struct type::u::s): Likewise.
14545         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
14546         * input.c (FORMAT_AMOUNT): Likewise.
14547         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
14548         (known_aggs_to_agg_replacement_list): Likewise.
14549         * ipa-inline-analysis.c: Likewise.
14550         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
14551         * ipa-polymorphic-call.c
14552         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
14553         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
14554         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
14555         Likewise.
14556         * modulo-sched.c (apply_reg_moves): Likewise.
14557         * omp-expand.c (build_omp_regions_1): Likewise.
14558         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
14559         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
14560         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
14561         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
14562         * value-prof.c: Likewise.
14563         * var-tracking.c (val_reset): Likewise.
14565 2017-04-03  Richard Biener  <rguenther@suse.de>
14567         PR tree-optimization/80275
14568         * fold-const.c (split_address_to_core_and_offset): Handle
14569         POINTER_PLUS_EXPR.
14571 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
14573         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
14574         descriptors is at least equal to that of functions.
14576 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
14578         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
14580 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
14582         PR target/80250
14583         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
14584         (mov<IMOD4:mode>): New expander.
14585         (*mov<IMOD4:mode>_internal): New insn and split pattern.
14587 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
14589         PR rtl-optimization/79405
14590         * fwprop.c (propagations_left): New variable.
14591         (forward_propagate_into): Decrement it.
14592         (fwprop_init): Initialize it.
14593         (fw_prop): If the variable has reached zero, stop propagating.
14594         (fwprop_addr): Ditto.
14596 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
14598         PR debug/79255
14599         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
14600         a FUNCTION_DECL, pass it as decl instead of origin to
14601         process_scope_var.
14603 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
14605         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
14606         string.
14608 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
14610         PR target/80107
14611         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
14612         TARGET_VSX_SMALL_INTEGER.
14614 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14616         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
14617         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
14619 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
14621         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
14622         extraction from odd-numbered MSA register.
14624 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
14626         PR middle-end/80173
14627         * expmed.c (store_bit_field_1): Don't attempt to create
14628         a word subreg out of hard registers wider than word if they
14629         have HARD_REGNO_NREGS of 1 for their mode.
14631         PR middle-end/80163
14632         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
14633         conversions to integer types wider than word and pointer.
14635         PR debug/80025
14636         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
14637         (rtx_equal_for_cselib_p): Pass 0 to it.
14638         * cselib.c (cselib_hasher::equal): Likewise.
14639         (rtx_equal_for_cselib_1): Add depth argument.  If depth
14640         is 128, don't look up VALUE locs and punt.  Increment
14641         depth in recursive calls when walking VALUE locs.
14643 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14645         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
14646         (make_gcov_file_name): Use the canonical path name for generating
14647         the MD5 value.
14648         (read_line): Fix handling of files with ascii null bytes.
14650 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
14652         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
14653         to initialise a vector register instead
14654         of using a const_int.
14656 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
14658         PR translation/80189
14659         * gimplify.c (omp_default_clause): Use %qs instead of %s in
14660         diagnostic messages.
14662 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
14664         PR target/80246
14665         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
14666         (dfp_diex_<mode>): Update mode of operand 1.
14667         * doc/extend.texi (dxex, dxexq): Document change to return type.
14668         (diex, diexq): Document change to argument type.
14670 2017-03-30  Martin Jambor  <mjambor@suse.cz>
14672         PR ipa/77333
14673         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
14674         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
14675         it reflects the signature changes performed at the callee side.
14676         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
14677         to cgraph_build_function_type_skip_args.
14678         (build_function_decl_skip_args): Adjust call to the above function.
14680 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
14682         PR target/80206
14683         * config/i386/sse.md
14684         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
14685         register as dest whenever it is a MEM not rtx_equal_p to the
14686         corresponding dup operand, and when forcing into reg move the
14687         reg into the memory afterwards.
14688         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
14689         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
14690         for the force_reg mode.
14691         (avx512vl_vextractf128<mode>): Use register as dest either
14692         always when a MEM, or when it is a MEM not rtx_equal_p to the
14693         corresponding dup operand, or even not when it is a CONST_VECTOR
14694         depending on the mode and lo vs. hi.
14695         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
14696         parens.
14697         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
14698         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
14699         Likewise.  Require that operands[2] is even.
14700         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
14701         Remove extraneous parens.  Require that operands[2] is a multiple
14702         of 4.
14703         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
14704         operands[0] is a MEM if <mask_applied>, the predicates/constraints
14705         disallow memory then.
14707 2017-03-30  Richard Biener  <rguenther@suse.de>
14709         PR tree-optimization/77498
14710         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
14711         to non-constants over backedges.
14713 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
14715         PR rtl-optimization/80233
14716         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
14717         as last_combined_insn.  Do not test for BARRIER_P separately.
14719 2017-03-29  Andreas Schwab  <schwab@suse.de>
14721         PR ada/80146
14722         * calls.c (prepare_call_address): Convert funexp to Pmode before
14723         copying to temp reg.
14725 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14727         PR tree-optimization/80158
14728         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
14729         Handle possible future case of more than one alternate
14730         interpretation.
14731         (replace_rhs_if_not_dup): Likewise.
14732         (replace_one_candidate): Likewise.
14734 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
14736         PR rtl-optimization/80193
14737         * ira.c (ira): Do not check allocation for LRA.
14739 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
14741         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
14742         (nvptx_output_simt_exit): Declare.
14743         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
14744         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
14745         (init_softstack_frame): Move initialization of crtl->is_leaf to...
14746         (nvptx_declare_function_name): ...here.  Emit declaration of local
14747         memory space buffer for omp_simt_enter insn.
14748         (nvptx_output_unisimt_switch): New.
14749         (nvptx_output_softstack_switch): New.
14750         (nvptx_output_simt_enter): New.
14751         (nvptx_output_simt_exit): New.
14752         * config/nvptx/nvptx.h (struct machine_function): New fields
14753         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
14754         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
14755         (UNSPECV_SIMT_EXIT): Ditto.
14756         (omp_simt_enter_insn): New insn.
14757         (omp_simt_enter): New expansion.
14758         (omp_simt_exit): New insn.
14759         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
14761         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
14762         (expand_GOMP_SIMT_ENTER_ALLOC): New.
14763         (expand_GOMP_SIMT_EXIT): New.
14764         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
14765         (GOMP_SIMT_ENTER_ALLOC): Ditto.
14766         (GOMP_SIMT_EXIT): Ditto.
14767         * target-insns.def (omp_simt_enter): New insn.
14768         (omp_simt_exit): Ditto.
14769         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
14770         simt_dlist.
14771         (lower_rec_simd_input_clauses): Implement SIMT privatization.
14772         (lower_rec_input_clauses): Likewise.
14773         (lower_lastprivate_clauses): Handle SIMT privatization.
14775         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
14776         (ompdevlow_adjust_simt_enter): New.
14777         (find_simtpriv_var_op): New.
14778         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
14779         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
14781         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
14782         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
14783         (copy_decl_for_dup_finish): Ditto.
14785         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
14787 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
14789         PR target/53383
14790         * config/i386/i386.c (ix86_option_override_internal): Always
14791         allow -mpreferred-stack-boundary=3 for 64-bit targets.
14793 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
14795         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
14797 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
14799         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
14800         mark new edge's irreducible flag accordign to it.
14801         (vect_do_peeling): Check loop preheader edge's irreducible flag
14802         and pass it to function slpeel_add_loop_guard.
14804 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
14806         PR tree-optimization/80218
14807         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
14808         Update block frequencies and counts.
14810 2017-03-28  Richard Biener  <rguenther@suse.de>
14812         PR tree-optimization/78644
14813         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
14814         of a simplification result we may not use it at all.
14816 2017-03-28  Richard Biener  <rguenther@suse.de>
14818         PR ipa/80205
14819         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
14820         without arguments, generate default definition of a SSA name.
14822 2017-03-28  Richard Biener  <rguenther@suse.de>
14824         PR middle-end/80222
14825         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
14826         TYPE_REF_CAN_ALIAS_ALL references.
14827         * fold-const.c (fold_indirect_ref_1): Likewise.
14829 2017-03-28  Martin Liska  <mliska@suse.cz>
14831         PR ipa/80104
14832         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
14833         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
14835 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
14836             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
14838         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
14839         (EXTRA_SPECS): Define.
14840         (SUBTARGET_EXTRA_SPECS): Likewise.
14841         (SUBTARGET_CPP_SPEC): Likewise.
14842         * config/arc/elf.h (EXTRA_SPECS): Renamed to
14843         SUBTARGET_EXTRA_SPECS.
14844         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
14846 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
14848         * config/arc/simdext.md (vst64_insn): Update pattern.
14849         (vld32wh_insn): Likewise.
14850         (vld32wl_insn): Likewise.
14851         (vld64_insn): Likewise.
14852         (vld32_insn): Likewise.
14854 2017-03-28  Marek Polacek  <polacek@redhat.com>
14856         PR sanitizer/80067
14857         * fold-const.c (fold_comparison): Use protected_set_expr_location
14858         instead of SET_EXPR_LOCATION.
14860 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
14862         * tree.c (add_expr): Avoid name lookup warning.
14864 2017-03-27  Jeff Law  <law@redhat.com>
14866         PR tree-optimization/80216
14867         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
14868         function name.  Limit recursion depth.
14869         (record_temporary_equivalences): Corresponding changes.
14871 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
14873         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
14874         covered first.
14876 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
14878         PR target/80102
14879         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
14880         notes.
14881         * cfgcleanup.c (reg_note_cfa_p): New array.
14882         (insns_have_identical_cfa_notes): New function.
14883         (old_insns_match_p): Don't cross-jump in between /f
14884         and non-/f instructions.  If both i1 and i2 are frame related,
14885         verify all CFA notes, their order and content.
14887 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
14889         PR target/78543
14890         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
14891         HImode and SImode with zero extend to DImode to one insn.
14892         (bswap<mode>2_extenddi): Likewise.
14893         (bswapsi2_extenddi): Likewise.
14894         (bswaphi2_extendsi): Likewise.
14895         (bswaphi2): Combine bswap HImode and SImode into one insn.
14896         Separate memory insns from swapping register.
14897         (bswapsi2): Likewise.
14898         (bswap<mode>2): Likewise.
14899         (bswaphi2_internal): Delete, no longer used.
14900         (bswapsi2_internal): Likewise.
14901         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
14902         store, and gpr<-gpr swap insns.
14903         (bswap<mode>2_store): Likewise.
14904         (bswaphi2_reg): Register only splitter, combine with the splitter.
14905         (bswaphi2 splitter): Likewise.
14906         (bswapsi2_reg): Likewise.
14907         (bswapsi2 splitter): Likewise.
14908         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
14909         the insns into load, store, and register/register insns.
14910         (bswapdi2_ldbrx): Likewise.
14911         (bswapdi2_load): Likewise.
14912         (bswapdi2_store): Likewise.
14913         (bswapdi2_reg): Likewise.
14915 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
14917         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
14918         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
14920 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
14922         PR target/80103
14923         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
14924         add comments.
14925         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
14926         special handling for target option conflicts between dform
14927         options (-mpower9-dform, -mpower9-dform-vector,
14928         -mpower9-dform-scalar) and -mno-direct-move.
14930 2017-03-27  Richard Biener  <rguenther@suse.de>
14932         PR tree-optimization/80181
14933         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
14935 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
14937         * config/arc/predicates.md (move_double_src_operand): Replace the
14938         call to move_double_src_operand with a call to address_operand.
14940 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
14942         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
14943         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
14944         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
14946 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
14948         * config/arc/predicates.md (long_immediate_loadstore_operand):
14949         Consider scaled addresses cases.
14951 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
14953         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
14954         restored when in interrupt.
14955         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
14956         doesn't have delay slot.
14958 2017-03-27  Richard Biener  <rguenther@suse.de>
14960         PR ipa/79776
14961         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
14962         inlined thunk clones.
14964 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
14966         PR sanitizer/80168
14967         * asan.c (instrument_derefs): Copy over last operand from
14968         original COMPONENT_REF to the new COMPONENT_REF with
14969         DECL_BIT_FIELD_REPRESENTATIVE.
14970         * ubsan.c (instrument_object_size): Likewise.
14972 2017-03-27  Richard Biener  <rguenther@suse.de>
14974         PR tree-optimization/80170
14975         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
14976         sure DR/SCEV didnt fold in constants we do not see when looking
14977         at the reference base alignment.
14979 2017-03-27  Richard Biener  <rguenther@suse.de>
14981         PR middle-end/80171
14982         * gimple-fold.c (fold_ctor_reference): Properly guard against
14983         NULL return value from canonicalize_constructor_val.
14985 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
14987         PR target/80180
14988         * config/i386/i386.c (ix86_expand_builtin)
14989         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
14990         flags reg setting and flags reg using instructions.
14991         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
14992         clobbering instructions to zero extend op2.
14994 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
14996         * doc/install.texi (Configuration) <--with-aix-soname>:
14997         Update link to AIX ld.
14999 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
15001         PR rtl-optimization/80160
15002         PR rtl-optimization/80159
15003         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
15004         reg_alternate_class into account.
15006 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
15008         PR target/80148
15009         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
15010         to consider in curr_insn_transform.
15012 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
15014         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
15015         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
15016         and emit_mode_inner.
15018 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15020         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
15021         argument to the overloaded builtin variants.  Use the new flag to
15022         deprecate certain builtin variants.
15023         * config/s390/s390-builtin-types.def: Add new builtin types.
15024         * config/s390/s390-builtins.h: Support new flags field for
15025         overloaded builtins.
15026         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
15027         (s390_macro_to_expand): Enable vector float data type.
15028         (s390_cpu_cpp_builtins_internal): Indicate support of the new
15029         builtins by incrementing the __VEC__ version number.
15030         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
15031         vec_xst.
15032         (s390_resolve_overloaded_builtin): Emit error messages depending
15033         on the builtin flags.
15034         * config/s390/s390.c (s390_expand_builtin): Support additional
15035         flags argument.  Change error message to match the messages
15036         emitted in s390-c.c.
15037         * config/s390/s390.md: New UNSPEC_* constants.
15038         (op_type): Add new instruction types.
15039         * config/s390/vecintrin.h: Add new builtins and test data class
15040         constants.
15041         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
15042         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
15043         (VEC_INEXACT, VEC_NOINEXACT): New constants.
15044         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
15045         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
15046         ("vec_mergel<mode>"): V_HW -> VEC_HW.
15048         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
15049         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
15050         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
15051         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
15053         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
15054         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
15055         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
15056         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
15058         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
15059         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
15060         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
15061         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
15062         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
15063         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
15064         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
15066         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
15067         ("vec_scatter_element<V_HW_4:mode>_DI")
15068         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
15069         ("vec_fpint<mode>", "vflls")
15070         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
15071         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
15072         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
15073         ("*vec_cmphe<mode>_cc"): ... these.
15075         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
15076         mode constant instead of magic value.
15078 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15080         * config/s390/s390.c (s390_expand_vec_compare): Support other
15081         vector floating point modes than just V2DF.
15082         (s390_expand_vcond): Likewise.
15083         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
15084         (s390_cannot_change_mode_class): Prevent mode changes between TF
15085         and V1TF in vector registers.
15086         * config/s390/s390.md (DF, SF): New mode attributes.
15087         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
15088         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
15089         SFmode support for VRs.
15090         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
15091         vector fp modes.
15092         (VFT, VF_HW): New mode iterators.
15093         (vw, sdx): New mode attributes.
15094         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
15095         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
15096         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
15097         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
15098         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
15099         also the new vector floating point modes.  Renaming to ...
15101         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
15102         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
15103         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
15104         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
15105         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
15106         ("vec_unordered<mode>"): ... these.
15108         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
15109         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
15110         ("*vec_extendv2df"): New insn definitions.
15112 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15114         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
15115         ("mulditi3_2", "*muldi3_sign"): New patterns.
15116         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
15117         rename the pattern definition.
15119 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15121         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
15122         expander.
15123         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
15125 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15127         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
15128         instruction if possible.
15129         * config/s390/vector.md (vec_halfnumelts): New mode
15130         attribute.
15131         ("*vec_vllezlf<mode>"): New pattern.
15133 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15135         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
15136         ("popcountv4si2", "popcountv2di2"): Rename to ...
15137         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
15138         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
15139         condition.
15140         ("popcount<mode>2_vxe"): New pattern.
15142 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15144         * common/config/s390/s390-common.c (processor_flags_table): Add
15145         arch12.
15146         * config.gcc: Add arch12.
15147         * config/s390/driver-native.c (s390_host_detect_local_cpu):
15148         Default to arch12 for unknown CPU model numbers.
15149         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
15150         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
15151         PROCESSOR_max sanity check.
15152         * config/s390/s390-opts.h (enum processor_type): Add
15153         PROCESSOR_ARCH12.
15154         * config/s390/s390.c (processor_table): Add arch12.
15155         (s390_expand_builtin): Add check for B_VXE flag.
15156         (s390_issue_rate): Add PROCESSOR_ARCH12.
15157         (s390_get_sched_attrmask): Likewise.
15158         (s390_get_unit_mask): Likewise.
15159         (s390_sched_score): Enable z13 scheduling for arch12.
15160         (s390_sched_reorder): Likewise.
15161         (s390_sched_variable_issue): Likewise.
15162         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
15163         PF_VXE.
15164         (s390_tune_attr): Use z13 scheduling also for arch12.
15165         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
15166         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
15167         (TARGET_VXE_P): New macros.
15168         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
15169         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
15170         * config/s390/s390.opt: Add arch12 as processor_type.
15172 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15174         * config/s390/s390.md
15175         ("fixuns_truncdddi2", "fixuns_trunctddi2")
15176         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
15177         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
15179         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
15180         Rename expanders to ...
15182         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
15183         ("fixuns_truncdddi2_emu"): ... these.
15185         ("fixuns_trunc<mode>si2_emu"): New expander.
15187         ("*fixuns_truncdfdi2_z13"): Rename to ...
15188         ("*fixuns_truncdfdi2_vx"): ... this.
15190 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15192         * config/s390/2964.md: Remove the single element vector compare
15193         instructions which are no longer used.
15194         * config/s390/s390.c (s390_select_ccmode): Remove handling of
15195         vector CCmodes.
15196         (s390_canonicalize_comparison): Remove handling of DFmode
15197         compares.
15198         (s390_expand_vec_compare_scalar): Remove function.
15199         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
15200         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
15201         pattern.
15202         ("*cmp<mode>_ccs"): Add wfcdb instruction.
15204 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15206         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
15207         FP zero.
15208         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
15209         will anyway by matched by mov<mode>_64dfp.
15211 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15213         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
15214         vlef/vstef.  Add missing operand to vleif.
15216 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15218         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
15219         pair for all vector types with 64 bit elements.
15220         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
15221         * config/s390/vector.md (V_HW_64): ... here.
15222         (V_128_NOSINGLE): New mode iterator.
15223         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
15224         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
15225         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
15226         ("*vec_load_pairv2di"): Change to ...
15227         ("*vec_load_pair<mode>"): ... this one.
15229 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15231         * config/s390/constraints.md: Add comments.
15232         (jKK): Reject element sizes > 8 bytes.
15233         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
15234         s_operands.
15235         * config/s390/s390.md: Add the s_operand checks formerly in
15236         s390_split_ok_p to various splitters where they are still
15237         required.
15238         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
15239         for 128 bit vectors.  Plus two splitters.
15241 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15243         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
15244         the file.
15246 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15248         PR target/79893
15249         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
15250         error if the boundary argument is not constant.
15252 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
15254         PR rtl-optimization/80112
15255         * loop-doloop.c (doloop_condition_get): Don't check condition
15256         if cmp isn't SET with IF_THEN_ELSE src.
15258 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15260         PR tree-optimization/80158
15261         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
15262         replacing a candidate statement, also replace it for the
15263         candidate's alternate interpretation.
15264         (replace_rhs_if_not_dup): Likewise.
15265         (replace_one_candidate): Likewise.
15267 2017-03-24  Richard Biener  <rguenther@suse.de>
15269         PR tree-optimization/80167
15270         * graphite-isl-ast-to-gimple.c
15271         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
15272         properly.
15273         (translate_isl_ast_to_gimple::get_rename): Likewise.
15275 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
15277         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
15278         handling of certain combinations of target options, including the
15279         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
15280         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
15282 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15284         PR target/71436
15285         * config/arm/arm.md (*load_multiple): Add reload_completed to
15286         matching condition.
15288 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15289             Richard Biener  <rguenth@suse.de>
15291         PR tree-optimization/79908
15292         PR tree-optimization/80136
15293         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
15294         been cast away, gimplify_and_add suffices.
15296 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
15298         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
15300 2017-03-23  Richard Biener  <rguenther@suse.de>
15302         PR tree-optimization/80032
15303         * gimplify.c (gimple_push_cleanup): Forced unconditional
15304         cleanups still have to go to the conditional_cleanups
15305         sequence.
15307 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
15309         PR tree-optimization/80072
15310         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
15311         to unsigned int.
15312         (next_operand_entry_id): Change type to unsigned int.
15313         (sort_by_operand_rank): Make sure to return the right return value
15314         even if unsigned fields are bigger than INT_MAX.
15315         (struct oecount): Change cnt and id type to unsigned int.
15316         (oecount_hasher::equal): Formatting fix.
15317         (oecount_cmp): Make sure to return the right return value
15318         even if unsigned fields are bigger than INT_MAX.
15319         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
15321         PR c++/80129
15322         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
15323         TREE_READONLY on result if writing it more than once.
15325         PR sanitizer/80110
15326         * doc/invoke.texi (-fsanitize=thread): Document that with
15327         -fnon-call-exceptions atomics are not able to throw
15328         exceptions.
15330         PR sanitizer/80110
15331         * tsan.c: Include tree-eh.h.
15332         (instrument_builtin_call): Call maybe_clean_eh_stmt or
15333         maybe_clean_or_replace_eh_stmt where needed.
15334         (instrument_memory_accesses): Add cfg_changed argument.
15335         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
15336         if it returned true.
15337         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
15339         PR rtl-optimization/63191
15340         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
15341         wrapper function, moved the whole old content into ...
15342         (ix86_delegitimize_address_1): ... this.  New inline function.
15343         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
15344         true as last argument instead of ix86_delegitimize_address.
15346 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
15348         * config/aarch64/aarch64.c (generic_branch_cost): Copy
15349         cortexa57_branch_cost.
15351 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
15353         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
15355 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
15357         PR target/80123
15358         * doc/md.texi (Constraints): Document wA constraint.
15359         * config/rs6000/constraints.md (wA): New.
15360         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
15361         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
15362         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
15363         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
15365 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
15367         PR c++/80029
15368         * gimplify.c (is_oacc_declared): New function.
15369         (oacc_default_clause): Use it to set default flags for acc declared
15370         variables inside parallel regions.
15371         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
15372         declared variables.
15373         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
15374         declare attribute to any decl as necessary.
15376 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15378         PR target/80082
15379         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
15380         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
15381         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
15382         (arm_arch_lpae): This.
15383         * config/arm/arm.c (arm_arch7ve): Rename into ...
15384         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
15385         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
15386         arm_arch_lpae.
15388 2017-03-22  Martin Liska  <mliska@suse.cz>
15390         PR target/79906
15391         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
15392         error message instead of an ICE.
15394 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15396         * doc/extend.texi (6.11 Additional Floating Types): Revise.
15398 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
15400         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
15401         comments.
15402         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
15403         comments.
15405 2017-03-21  Martin Sebor  <msebor@redhat.com>
15407         * doc/extend.texi: Use "cannot" instead of "can't."
15408         * doc/hostconfig.texi: Same.
15409         * doc/install.texi: Same.
15410         * doc/invoke.texi: Same.
15411         * doc/loop.texi: Same.
15412         * doc/md.texi: Same.
15413         * doc/objc.texi: Same.
15414         * doc/rtl.texi: Same.
15415         * doc/tm.texi: Same.
15416         * doc/tm.texi.in: Same.
15417         * doc/trouble.texi: Same.
15419 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
15421         PR debug/63238
15422         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
15423         (collect_checksum_attributes): Set it.
15424         (die_checksum_ordered): Use it.
15426 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15428         PR tree-optimization/79908
15429         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
15430         change: For a VA_ARG whose LHS has been cast away, use
15431         force_gimple_operand to construct the side effects.
15433 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
15435         PR translation/80001
15436         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
15437         more amenable to translation.
15438         (oacc_loop_auto_partitions): Likewise.
15440 2017-03-21  Marek Polacek  <polacek@redhat.com>
15441             Martin Sebor  <msebor@redhat.com>
15443         PR tree-optimization/80109
15444         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
15445         on INTEGRAL_TYPE_P.
15447 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
15448             Segher Boessenkool  <segher@kernel.crashing.org>
15450         PR target/80125
15451         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
15452         check reg_used_between_p between insn and one of succ or succ2
15453         depending on if succ is artificial insn not inserted into insn
15454         stream.
15456 2017-03-21  Martin Liska  <mliska@suse.cz>
15458         PR gcov-profile/80081
15459         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
15460         * doc/gcc.texi: Include gcov-dump stuff.
15461         * doc/gcov-dump.texi: New file.
15463 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
15465         PR rtl-optimization/79150
15466         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
15467         conditional jump, if the jump is the last insn of the loop.
15469 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15470             Richard Biener  <rguenth@suse.de>
15472         PR tree-optimization/79908
15473         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
15474         been cast away, use force_gimple_operand to construct the side
15475         effects.
15477 2017-03-21  Martin Liska  <mliska@suse.cz>
15479         PR libfortran/79956
15480         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
15481         to NULL.
15483 2017-03-21  Brad Spengler <spender@grsecurity.net>
15485         PR plugins/80094
15486         * plugin.c (htab_hash_plugin): New function.
15487         (add_new_plugin): Use it and adjust.
15488         (parse_plugin_arg_opt): Adjust.
15489         (init_one_plugin): Likewise.
15491 2017-03-21  Richard Biener  <rguenther@suse.de>
15493         PR tree-optimization/80032
15494         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
15495         if set force the cleanup to happen unconditionally.
15496         (gimplify_target_expr): Push inserted clobbers with force_uncond
15497         to avoid them being removed by control-dependent DCE.
15499 2017-03-21  Richard Biener  <rguenther@suse.de>
15501         PR tree-optimization/80122
15502         * tree-inline.c (copy_bb): Do not expans va-arg packs or
15503         va_arg_pack_len when the inlined call stmt requires pack
15504         expansion itself.
15505         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
15507 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
15509         PR sanitizer/78158
15510         * tsan.c (instrument_builtin_call): If the memory model argument
15511         is not a constant, assume it is valid.
15513         PR c/67338
15514         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
15515         avoid UB.
15517 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
15519         PR rtl-optimization/79910
15520         * combine.c (can_combine_p): Do not allow combining an I0 or I1
15521         if its dest is used by an insn before I2 (other than the combined
15522         insns themselves, which are properly handled already).
15524 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
15526         Revert:
15527         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
15529         * combine.c (record_used_regs): New static function.
15530         (try_combine): Handle situations where there is an additional
15531         instruction between I2 and I3 which needs to have a LOG_LINK
15532         updated.
15534         Revert:
15535         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
15537         * combine.c (try_combine): Delete redundant i1 test.  Call
15538         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
15540 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
15542         PR target/80083
15543         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
15544         alternatives 13/14.
15546 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15548         PR tree-optimization/80054
15549         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
15550         the optimization if a PHI or any of its arguments is not dominated
15551         by the candidate's basis.  Use gphi* rather than gimple* as
15552         appropriate.
15553         (replace_profitable_candidates): Clean up a gimple* variable that
15554         should be a gphi* variable.
15556 2017-03-20  Martin Sebor  <msebor@redhat.com>
15558         PR c++/52477
15559         * doc/extend.texi (attribute constructor): Document present limitation.
15561 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
15563         PR target/79963
15564         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
15565         __POWER9_VECTOR__ #ifdef control, change template definition to
15566         use Power9-specific built-in function.
15567         (vec_any_eq): Likewise.
15568         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
15569         to control outcomes from this test.
15570         (vector_ae_<mode>p): For VEC_F modes, likewise.
15572 2017-03-20  Ian Lance Taylor  <iant@google.com>
15574         * config/i386/i386.c (ix86_function_regparm): Save an extra
15575         register for -fsplit-stack with DECL_STATIC_CHAIN.
15577 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
15579         PR target/79912
15580         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
15581         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
15583 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
15585         * config/riscv/riscv.c (riscv_print_operand): Use "fence
15586         iorw,ow".
15587         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
15588         iorw,iorw".
15590 2017-03-20  Marek Polacek  <polacek@redhat.com>
15592         PR sanitizer/80063
15593         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
15595 2017-03-20  Richard Biener  <rguenther@suse.de>
15597         PR tree-optimization/80113
15598         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
15599         allocate extra SSA name for PHI def.
15600         (add_close_phis_to_outer_loops): Likewise.
15601         (add_close_phis_to_merge_points): Likewise.
15602         (copy_loop_close_phi_args): Likewise.
15603         (copy_cond_phi_nodes): Likewise.
15605 2017-03-20  Martin Liska  <mliska@suse.cz>
15607         PR middle-end/79753
15608         * tree-chkp.c (chkp_build_returned_bound): Do not build
15609         returned bounds for a LHS that's not a BOUNDED_P type.
15611 2017-03-20  Martin Liska  <mliska@suse.cz>
15613         PR target/79769
15614         PR target/79770
15615         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
15616         COMPLEX_CST and VECTOR_CST.
15618 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15620         PR target/78857
15621         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
15622         target operand.  A new splitter adds the clobber statement in case
15623         the target operand is dead anyway.
15625 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
15627         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
15628         to age-old versions of binutils and glibc.
15630 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
15632         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
15634 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
15636         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
15638 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
15640         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
15641         requirement for binutils 2.13.
15643 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
15645         * combine.c (try_combine): Delete redundant i1 test.  Call
15646         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
15648 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
15650         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
15651         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
15652         contents.
15653         <riscv64-*-elf>: Re-arrange section
15654         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
15655         <riscv32-*-linux>: Likewise.
15656         <riscv64-*-elf>: Likewise
15657         <riscv64-*-linux>: Likewise.
15659 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
15661         PR target/80052
15662         * aarch64.opt(verbose-cost-dump): Fix typo.
15664 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
15666         PR target/79951
15667         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
15668         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
15670 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
15672         * reload.c (find_reloads): When reloading a nonoffsettable address,
15673         use RELOAD_OTHER for it and its address reloads.
15675         PR rtl-optimization/79910
15676         * combine.c (record_used_regs): New static function.
15677         (try_combine): Handle situations where there is an additional
15678         instruction between I2 and I3 which needs to have a LOG_LINK
15679         updated.
15681 2017-03-17  Jeff Law  <law@redhat.com>
15683         PR tree-optimization/71437
15684         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
15685         conditional in the hash table first.
15686         (vrp_dom_walker::before_dom_children): Extract condition from
15687         ASSERT_EXPR.  Record condition, its inverion and any implied
15688         conditions as well.
15690 2017-03-17  Marek Polacek  <polacek@redhat.com>
15691             Markus Trippelsdorf  <markus@trippelsdorf.de>
15693         PR tree-optimization/80079
15694         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
15695         m_stores_head.
15697 2017-03-17  Richard Biener  <rguenther@suse.de>
15699         PR middle-end/80075
15700         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
15701         Properly verify the LHS before the RHS possibly claims to be
15702         handled.
15703         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
15704         do not throw.
15706 2017-03-17  Martin Jambor  <mjambor@suse.cz>
15708         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
15709         (List of -O2 options): Likewise.
15710         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
15711         (-fipa-vrp) New.
15713 2017-03-17  Tom de Vries  <tom@codesourcery.com>
15715         * gcov-dump.c (print_usage): Print bug_report_url.
15717 2017-03-17  Richard Biener  <rguenther@suse.de>
15719         PR middle-end/80050
15720         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
15721         (parser::peek): Likewise.
15723 2017-03-17  Richard Biener  <rguenther@suse.de>
15725         PR tree-optimization/80048
15726         * sese.c (free_sese_info): Properly release rename_map and
15727         copied_bb_map elements.
15729 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
15731         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
15732         Add linked-list forward and backlinks.  Insert on
15733         construction, remove on destruction.
15734         (class pass_store_merging): Add m_stores_head field.
15735         (pass_store_merging::terminate_and_process_all_chains):
15736         Iterate over m_stores_head list.
15737         (pass_store_merging::terminate_all_aliasing_chains):
15738         Likewise.
15739         (pass_store_merging::execute): Check for debug stmts first.
15740         Push new chains onto the m_stores_head stack.
15742 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
15744         PR target/71294
15745         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
15746         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
15747         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
15749 2017-03-16  Jeff Law  <law@redhat.com>
15751         PR tree-optimization/71437
15752         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
15753         member function.  Implementation moved into after_dom_children
15754         member function and into the threader's thread_outgoing_edges
15755         function.
15756         (dom_opt_dom_walker::after_dom_children): Simplify by moving
15757         some code into new thread_outgoing_edges.
15758         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
15759         definition.  Simplify marker handling (do it here).   Assume we always
15760         have the available expression and the const/copies tables.
15761         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
15762         and tree-vrp.c
15763         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
15764         * tree-vrp.c (equiv_stack): No longer file scoped.
15765         (vrp_dom_walker): New class.
15766         (vrp_dom_walker::before_dom_children): New member function.
15767         (vrp_dom_walker::after_dom_children): Likewise.
15768         (identify_jump_threads):  Setup domwalker.  Use it rather than
15769         walking edges in a random order by hand.  Simplify setup/finalization.
15770         (finalize_jump_threads): Remove.
15771         (vrp_finalize): Do not call identify_jump_threads here.
15772         (execute_vrp): Do it here instead and call thread_through_all_blocks
15773         here too.
15775         PR tree-optimization/71437
15776         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
15777         callers changed.
15778         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
15779         callers changed.
15780         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
15781         (dom_opt_dom_walker::thread_across_edge): Remove
15782         handle_dominating_asserts argument.  All callers changed.
15783         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
15784         changes.  Remove calls to lhs_of_dominating_assert.  Other
15785         uses of handle_dominating_asserts turn into unconditional code
15786         (simplify_control_stmt_condition_1): Likewise.
15787         (simplify_control_stmt_condition): Likewise.
15788         (thread_through_normal_block, thread_across_edge): Likewise.
15789         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
15790         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
15791         object if it is not an SSA_NAME.
15792         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
15793         before calling into the VRP specific simplifiers.
15794         (identify_jump_threads): Remove handle_dominating_asserts
15795         argument.
15797 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
15799         PR fortran/79886
15800         * tree-diagnostic.c (default_tree_printer): No longer static.
15801         * tree-diagnostic.h (default_tree_printer): New prototype.
15803 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
15805         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
15806         Change ins into fmov.
15808 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15810         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
15811         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
15812         Use h_con constraint for operand 1.
15813         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
15814         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
15816 2017-03-15  Jeff Law  <law@redhat.com>
15818         PR tree-optimization/71437
15819         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
15820         (record_temporary_equivalences): Use it.
15822         PR tree-optimization/71437
15823         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
15824         tree-ssa-scopedtables.
15825         (lookup_avail_expr, build_and_record_new_cond): Likewise.
15826         (record_conditions, record_cond, vuse_eq): Likewise.
15827         (record_edge_info): Adjust to API tweak of record_conditions.
15828         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
15829         (record_temporary_equivalences, optimize_stmt): Likewise.
15830         (eliminate_redundant_computations): Likewise.
15831         (record_equivalences_from_stmt): Likewise.
15832         * tree-ssa-scopedtables.c: Include options.h and params.h.
15833         (vuse_eq): New function, moved from tree-ssa-dom.c
15834         (build_and_record_new_cond): Likewise.
15835         (record_conditions): Likewise.  Accept vector of conditions rather
15836         than edge_equivalence structure for first argument.
15837         for the first argument.
15838         (avail_exprs_stack::lookup_avail_expr): New member function, moved
15839         from tree-ssa-dom.c.
15840         (avail_exprs_stack::record_cond): Likewise.
15841         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
15842         from tree-ssa-dom.c.
15843         (avail_exprs_stack): Add new member functions lookup_avail_expr
15844         and record_cond.
15845         (record_conditions): Declare.
15847 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
15849         PR target/80017
15850         * lra-constraints.c (process_alt_operands): Increase reject for
15851         reloading an input/output operand.
15853 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
15855         PR target/79038
15856         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
15857         insns to convert from signed/unsigned char/short to IEEE 128-bit
15858         floating point.
15859         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
15861 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
15863         PR target/80019
15864         * config/i386/i386.c (ix86_vector_duplicate_value): Create
15865         subreg of inner mode for values already in registers.
15867 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
15869         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
15870         iteration reg is used after the loop.
15872 2017-03-14  Martin Sebor  <msebor@redhat.com>
15874         PR tree-optimization/79800
15875         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
15876         precision in negative-positive range.
15877         (format_floating): Call non-const overload with adjusted precision.
15879 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15881         PR target/79947
15882         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
15883         -mpowerpc-gfxopt.
15885 2017-03-14  Martin Sebor  <msebor@redhat.com>
15887         PR middle-end/80020
15888         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
15889         * builtins.def (aligned_alloc): Use it.
15891         PR c/79936
15892         * Makefile.in (GTFILES): Add calls.c.
15893         * calls.c: Include "gt-calls.h".
15895 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
15897         PR rtl-optimization/79728
15898         * regs.h (struct target_regs): New field
15899         x_contains_allocatable_regs_of_mode.
15900         (contains_allocatable_regs_of_mode): New macro.
15901         * reginfo.c (init_reg_sets_1): Initialize it, and change
15902         contains_reg_of_mode so it includes global regs as well.
15903         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
15904         rather than contains_regs_of_mode.
15906 2017-03-14  Martin Liska  <mliska@suse.cz>
15908         * doc/invoke.texi: Document options that can't be combined with
15909         -fcheck-pointer-bounds.
15911 2017-03-14  Martin Liska  <mliska@suse.cz>
15913         PR middle-end/79831
15914         * doc/invoke.texi (-Wchkp): Document the option.
15916 2017-03-14  Martin Liska  <mliska@suse.cz>
15918         * Makefile.in: Install gcov-dump.
15920 2017-03-14  Martin Liska  <mliska@suse.cz>
15922         * multiple_target.c (expand_target_clones): Bail out for
15923         an invalid attribute.
15925 2017-03-14  Richard Biener  <rguenther@suse.de>
15927         * alias.c (struct alias_set_entry): Pack properly.
15928         * cfgloop.h (struct loop): Likewise.
15929         * cse.c (struct set): Likewise.
15930         * ipa-utils.c (struct searchc_env): Likewise.
15931         * loop-invariant.c (struct invariant): Likewise.
15932         * lra-remat.c (struct cand): Likewise.
15933         * recog.c (struct change_t): Likewise.
15934         * rtl.h (struct address_info): Likewise.
15935         * symbol-summary.h (function_summary): Likewise.
15936         * tree-loop-distribution.c (struct partition): Likewise.
15937         * tree-object-size.c (struct object_size_info): Likewise.
15938         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
15939         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
15940         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
15941         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
15942         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
15943         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
15944         (struct _stmt_vec_info): Likewise.
15946 2017-03-14  Martin Liska  <mliska@suse.cz>
15948         PR target/79892
15949         * multiple_target.c (create_dispatcher_calls): Check that
15950         a target can create a function dispatcher.
15952 2017-03-14  Martin Liska  <mliska@suse.cz>
15954         PR lto/66295
15955         * multiple_target.c (expand_target_clones): Drop local.local
15956         flag for default implementation.
15958 2017-03-14  Richard Biener  <rguenther@suse.de>
15960         PR tree-optimization/80030
15961         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
15963 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
15965         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
15966         gcc_fallthrough() instead of __attribute__((fallthrough));
15968 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
15970         * doc/gcc.texi: Remove "up" link to (DIR).
15971         * doc/gccint.texi: Ditto.
15973 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
15975         * doc/install.texi (Specific) <avr>: Remove reference to
15976         binutils 2.13.
15978 2017-03-13  Jeff Law  <law@redhat.com>
15980         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
15981         attribute rather than comments.
15983         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
15984         match_scratch operand is highest.
15986 2017-03-13  Martin Liska  <mliska@suse.cz>
15988         PR middle-end/78339
15989         * ipa-pure-const.c (warn_function_noreturn): If the declarations
15990         is a CHKP clone, use original declaration.
15992 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
15994         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
15995         (arc_conditional_register_usage): Use a different allocation order
15996         when optimizing for size.
15997         * common/config/arc/arc-common.c (arc_option_optimization_table):
15998         Section anchors default on when optimizing for size.
16000 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
16002         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
16004 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
16006         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
16007         * config/arc/arc.md (cpu_facility): Add cd variant.
16008         (*movqi_insn): Add code density variant.
16009         (*movhi_insn): Likewise.
16010         (*movqi_insn): Likewise.
16011         (*addsi3_mixed): Likewise.
16012         (subsi3_insn): Likewise.
16014 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
16016         * config/arc/arc.md (movsi_cond_exec): Update constraint.
16018 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
16020         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
16021         expressions with MINUS and UNARY ops.
16023 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16025         PR target/79911
16026         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
16027         Rename to...
16028         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
16029         between vec_select and vector argument.
16030         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
16031         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
16032         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
16033         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
16034         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
16035         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
16037 2017-03-13  Richard Biener  <rguenther@suse.de>
16039         PR other/79991
16040         * params.def (vect-max-peeling-for-alignment): Fix typo.
16042 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
16044         * doc/install.texi (Specific) <mips-*-*>: Remove description of
16045         issue that only occurred with binutils below 2.18.
16047 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
16049         * doc/install.texi (Specific) <cris-axis-elf>: No longer
16050         refer to binutils 2.11/2.12 minimum.
16052 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
16054         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
16055         ftp.kernel.org and simplify binutils requirement.
16057 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
16059         * doc/invoke.texi (Warning Options): Fix spelling of link-time
16060         optimization.
16061         (Optimize Options): Ditto.  Also remove redundancy.
16063 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
16065         PR translation/79848
16066         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
16067         "%qs".
16068         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
16069         to G_ to avoid double translation.
16071 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
16073         PR translation/79923
16074         * auto-profile.c (get_combined_location): Convert leading
16075         character of diagnostics to lower case and remove trailing period.
16076         (read_profile): Likewise for various diagnostics.
16077         * config/arm/arm.c (arm_option_override): Remove trailing period
16078         from various diagnostics.
16079         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
16080         (msp430_expand_delay_cycles): Likewise.
16082 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
16084         PR target/79925
16085         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
16086         full command-line argument, rather than just "str".
16087         (aarch64_validate_march): Likewise.
16088         (aarch64_validate_mtune): Likewise.
16090 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
16092         PR rtl-optimization/78911
16093         * lra-assigns.c (must_not_spill_p): New function.
16094         (spill_for): Use it.
16096 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
16098         PR tree-optimization/79981
16099         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
16100         ATOMIC_COMPARE_EXCHANGE ifn result.
16101         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
16102         IFN_ATOMIC_COMPARE_EXCHANGE.
16104 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
16106         PR driver/79875
16107         * opts.c (parse_sanitizer_options): Add missing question mark to
16108         "did you mean" message.
16110 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16112         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
16113         built-in.
16114         (VMULEUH_UNS): Likewise.
16115         (VMULOUB_UNS): Likewise.
16116         (VMULOUH_UNS): Likewise.
16117         * config/rs6000/rs6000.c (builtin_function_type): Remove
16118         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
16120 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
16122         PR bootstrap/79952
16123         * read-rtl-function.c (function_reader::read_rtx_operand): Update
16124         x with result of extra_parsing_for_operand_code_0.
16125         (function_reader::extra_parsing_for_operand_code_0): Convert
16126         return type from void to rtx, returning x.  When reading
16127         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
16128         larger size containing struct block_symbol.
16130 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
16132         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
16133         -mfloat128-hardware without -m64.
16135 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
16137         PR target/79941
16138         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
16139         entries to the case statement that marks unsigned arguments to
16140         overloaded functions.
16142 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
16144         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
16145         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
16147 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
16149         PR target/79907
16150         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
16151         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
16153 2017-03-10  Martin Liska  <mliska@suse.cz>
16155         PR target/65705
16156         PR target/69804
16157         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
16158         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
16159         FIELD != NULL.
16161 2017-03-10  Olivier Hainque  <hainque@adacore.com>
16163         * tree-switch-conversion (array_value_type): Start by resetting
16164         candidate type to it's main variant.
16166 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
16168         PR rtl-optimization/79909
16169         * combine.c (try_combine): Use simplify_replace_rtx on individual
16170         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
16171         of the whole CALL_INSN_FUNCTION_USAGE.
16173         PR tree-optimization/79972
16174         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
16175         get_range_info on SSA_NAMEs.  Formatting fixes.
16177 2017-03-10  Richard Biener  <rguenther@suse.de>
16178             Jakub Jelinek  <jakub@redhat.com>
16180         PR tree-optimization/77975
16181         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
16182         edge to be constant.
16183         (get_val_for): For constant x return it.  Formatting fix.
16184         (loop_niter_by_eval): Avoid pointless looping if the next iteration
16185         would use the same bases as the current one.
16187 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16189         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
16190         instead of vec_select for V1TImode.
16191         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
16192         longer needed.
16193         (VSX_LE_128): Add V1TI to this mode iterator.
16194         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
16195         (*vsx_le_perm_store_<mode>): Likewise.
16196         (pre-reload splitter for VSX stores): Likewise.
16197         (post-reload splitter for VSX stores): Likewise.
16198         (*vsx_xxpermdi2_le_<mode>): Likewise.
16199         (*vsx_lxvd2x2_le_<mode>): Likewise.
16200         (*vsx_stxvd2x2_le_<mode>): Likewise.
16202 2017-03-09  Michael Eager  <eager@eagercon.com>
16204         Correct failures with --enable-checking=yes,rtl.
16206         * config/microblaze/microblaze.c (microblaze_expand_shift):
16207         Replace GET_CODE test with CONST_INT_P and INTVAL test with
16208         test for const0_rtx.
16209         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
16210         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
16212 2017-03-09  Richard Biener  <rguenther@suse.de>
16214         PR tree-optimization/79977
16215         * graphite-scop-detection.c (scop_detection::merge_sese):
16216         Handle the case of extra exits to blocks dominating the entry.
16218 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
16220         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
16221         Document rdynamic.
16223 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
16225         PR rtl-optimization/79949
16226         * lra-constraints.c (process_alt_operands): Check memory when
16227         trying to predict a cycle.  Print about the overall increase.
16229 2017-03-09  Richard Biener  <rguenther@suse.de>
16231         PR middle-end/79971
16232         * gimple-expr.c (useless_type_conversion_p): Preserve
16233         TYPE_SATURATING for fixed-point types.
16235 2017-03-09  Richard Biener  <rguenther@suse.de>
16237         PR ipa/79970
16238         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
16239         alignment of BLKmode params.
16241 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16243         PR target/79913
16244         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
16245         (VALL_NO_V2Q): Likewise.
16246         (VDQF_DF): Delete.
16247         * config/aarch64/aarch64-simd.md
16248         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
16249         iterator.
16250         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
16251         VALL_NO_V2Q mode iterator.
16252         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
16254 2017-03-09  Martin Liska  <mliska@suse.cz>
16256         PR tree-optimization/79631
16257         * tree-chkp-opt.c (chkp_is_constant_addr): Call
16258         tree_int_cst_sign_bit just for INTEGER constants.
16260 2017-03-09  Martin Liska  <mliska@suse.cz>
16262         PR target/65705
16263         PR target/69804
16264         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
16265         sanitizers.
16267 2017-03-09  Marek Polacek  <polacek@redhat.com>
16269         PR c++/79672
16270         * tree.c (inchash::add_expr): Handle TREE_VEC.
16272 2017-03-09  Martin Liska  <mliska@suse.cz>
16274         PR ipa/79764
16275         (chkp_narrow_size_and_offset): New function.
16276         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
16277         (void chkp_parse_bit_field_ref): New function.
16278         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
16279         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
16281 2017-03-09  Martin Liska  <mliska@suse.cz>
16283         PR ipa/79761
16284         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
16285         (chkp_find_bounds_1): Remove gcc_unreachable.
16287 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
16289         PR sanitizer/79944
16290         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
16291         BUILT_IN_SYNC*, determine the access type from the size suffix and
16292         always build a MEM_REF with that type.  Handle forgotten
16293         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
16295         PR target/79932
16296         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
16297         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
16298         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
16299         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
16300         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
16301         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
16302         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
16303         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
16304         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
16305         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
16306         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
16307         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
16308         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
16309         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
16310         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
16311         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
16312         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
16313         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
16314         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
16315         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
16316         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
16317         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
16318         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
16319         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
16320         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
16321         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
16322         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
16323         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
16324         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
16325         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
16326         definitions outside of __OPTIMIZE__ guarded section.
16328         PR target/79932
16329         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
16330         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
16331         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
16332         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
16333         guarded section.
16335 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16337         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
16338         ("vfenez<mode>"): Add missing constraints.
16340 2017-03-08  Martin Sebor  <msebor@redhat.com>
16342         PR target/79928
16343         * config/nds32/nds32.c (nds32_option_override):
16344         Fix misspelled diagnostic.
16346 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
16348         PR c/79940
16349         * gimplify.c (gimplify_omp_for): Replace index var in outer
16350         taskloop statement with an artificial variable and add
16351         OMP_CLAUSE_PRIVATE clause for it.
16353 2017-03-08  Richard Biener  <rguenther@suse.de>
16355         PR tree-optimization/79955
16356         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
16357         for accesses that are completely outside of the variable.
16359 2017-03-08  Andrew Haley  <aph@redhat.com>
16361         PR tree-optimization/79943
16362         * tree-ssa-loop-split.c (compute_new_first_bound): When
16363         calculating the new upper bound, (END-BEG) should be added, not
16364         subtracted.
16366 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
16368         * config/avr/avr.md (setmemhi): Make sure match_dup
16369         operand number comes before match_scratch.
16371 2017-03-08  Richard Biener  <rguenther@suse.de>
16373         PR tree-optimization/79920
16374         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
16375         with ncopies == 1 to ...
16376         (vect_transform_slp_perm_load): ... here.  Properly compute
16377         all element loads by iterating VF times over the group.  Do
16378         not handle ncopies (computed in a broken way) in
16379         vect_create_mask_and_perm.
16381 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
16383         PR sanitizer/79904
16384         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
16385         is a uniform vector, use uniform_vector_p return value instead of
16386         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
16388 2017-03-07  Marek Polacek  <polacek@redhat.com>
16390         PR middle-end/79809
16391         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
16392         (alloca_call_type): Likewise.
16394 2017-03-07  Martin Liska  <mliska@suse.cz>
16396         * gcov.c (process_args): Put comment to correct location.
16398 2017-03-07  Martin Liska  <mliska@suse.cz>
16400         PR middle-end/68270
16401         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
16402         Use array_at_struct_end_p instead of DECL_CHAIN (field).
16403         (chkp_narrow_bounds_for_field): Likewise.
16404         (chkp_parse_array_and_component_ref): Pass one more argument to
16405         call.
16407 2017-03-07  Richard Biener  <rguenther@suse.de>
16409         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
16410         preheaders.
16412 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
16414         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
16415         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
16417 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16419         PR c/79855
16420         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
16421         to end of description.
16422         (PARAM_MAX_STORES_TO_MERGE): Likewise.
16424 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
16426         PR rtl-optimization/79901
16427         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
16428         ...
16429         (*avx512f_<code><mode>3<mask_name>): ... this.
16430         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
16431         iterator instead of VI8_AVX2_AVX512BW.
16433         PR rtl-optimization/79901
16434         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
16435         min/max expander, expand it using expand_vec_cond_expr.
16437         PR sanitizer/79897
16438         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
16439         temporary.
16441 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
16443         PR c++/79821
16444         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
16445         to void * for PCH reasons.
16446         * dwarf2out.c (output_loc_operands, output_die): Cast
16447         v.val_vec.array to unsigned char *.
16449 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
16451         PR target/77850
16452         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
16453         vector types.
16455 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
16457         PR rtl-optimization/79571
16458         * lra-constraints.c (process_alt_operands): Calculate static
16459         reject and subtract it from overall when only addresses will be
16460         reloaded.
16462 2017-03-06  Julia Koval  <julia.koval@intel.com>
16464         PR target/79793
16465         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
16466         incoming stack boundary to 128 for 64-bit targets.
16468 2017-03-06  Richard Biener  <rguenther@suse.de>
16470         PR tree-optimization/79894
16471         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
16472         to NULL after folding it.
16474 2017-03-06  Richard Biener  <rguenther@suse.de>
16476         PR tree-optimization/79824
16477         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
16478         check disabling peeling for gaps.
16480 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
16482         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
16483         attributes): Document gettimeofday.
16485 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
16487         * config/s390/s390.c (s390_option_override_internal): Set
16488         PARAM_MIN_VECT_LOOP_BOUND
16490 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
16492         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
16493         * config/s390/s390.md: Likewise.
16495 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
16497         PR target/79812
16498         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
16499         (<avx2_avx512>_perm<mode>): Rename to ...
16500         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
16501         of VI8F_256_512.
16502         (<avx512>_perm<mode>_mask): Rename to ...
16503         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
16504         of VI8F_256_512.
16505         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
16506         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
16507         instead of VI8F_256_512.
16508         (avx512f_perm<mode>): New define_expand.
16509         (avx512f_perm<mode>_mask): Likewise.
16510         (avx512f_perm<mode>_1<mask_name>): New define_insn.
16511         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
16513 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
16515         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
16516         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
16517         if_then_else.
16518         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
16520 2017-03-06  Martin Liska  <mliska@suse.cz>
16522         PR sanitize/79783
16523         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
16524         when having a SSA NAME w/o VAR_DECL assigned to it.
16526 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
16528         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
16529         msa_dpsub_<su>_d): Fix MODE for vec_select.
16531 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
16533         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
16534         argument.
16535         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
16537 2017-03-06  Richard Biener  <rguenther@suse.de>
16539         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
16540         * plugin.c (register_plugin_info): Likewise.
16541         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
16543 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
16545         * config/i386/sse.md (sse_storehps, sse_storelps,
16546         avx_<castmode><avxsizesuffix>_<castmode>,
16547         avx512f_<castmode><avxsizesuffix>_<castmode>,
16548         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
16549         in condition that at least one operand is not a MEM.
16551 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
16553         PR middle-end/79805
16554         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
16555         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
16556         ECF_NOTHROW.
16557         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
16558         gimple_call_nothrow_p flag based on whether original builtin can throw.
16559         If it can, emit following stmts on the fallthrough edge.
16560         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
16561         don't create new bb if inserting just debug stmts on the edge, try to
16562         insert them on the fallthru bb or just reset debug stmts.
16564 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
16566         PR target/43763
16567         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
16568         restore recog_data (including the operand rtxes inside it) around
16569         the call to get_insn_template.
16571 2017-03-03  Martin Sebor  <msebor@redhat.com>
16573         PR tree-optimization/79699
16574         * context.c (context::~context): Free MPFR caches to avoid
16575         a memory leak on program exit.
16577 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16579         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
16580         Use wide_int::ulow () instead of .elt (0).
16582 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
16584         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
16585         (*pushxf): Limit oF constraint to 32bit targets and add oC
16586         constraint for 64bit targets.
16587         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
16588         (*pushdf): Change rmF constraint to rmC.
16590 2017-03-03  Martin Liska  <mliska@suse.cz>
16592         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
16593         Remove unused variable.
16595 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
16597         PR target/79807
16598         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
16599         is a memory operand, increase num_memory.
16600         (ix86_expand_args_builtin): Likewise.
16602 2017-03-03  Jan Hubicka  <jh@suse.cz>
16604         PR lto/79760
16605         * ipa-devirt.c (maybe_record_node): Properly handle
16606         __cxa_pure_virtual visibility.
16608 2017-03-03  Martin Liska  <mliska@suse.cz>
16610         PR tree-optimization/79803
16611         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
16612         assert.
16613         (pass_loop_prefetch::execute): Disabled optimization if an
16614         assumption about L1 cache size is not met.
16616 2017-03-03  Martin Liska  <mliska@suse.cz>
16618         PR rtl-optimization/79574
16619         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
16620         (hash_scan_set): Likewise.
16621         (dump_hash_table): Likewise.
16622         (hoist_code): Likewise.
16624 2017-03-03  Richard Biener  <rguenther@suse.de>
16626         * fixed-value.c (fixed_from_string): Restore use of elt (1)
16627         in place of uhigh ().
16628         (fixed_convert_from_real): Likewise.
16630 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
16632         PR target/79514
16633         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
16635 2017-03-03  Richard Biener  <rguenther@suse.de>
16637         PR middle-end/79818
16638         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
16639         TYPE_OVERFLOW_UNDEFINED check.
16641 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16643         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
16644         numbers.
16645         (vector_ae_<mode>_p): Likewise.
16646         (vector_nez_<mode>_p): Likewise.
16647         (vector_ne_v2di_p): Likewise.
16648         (vector_ae_v2di_p): Likewise.
16649         (vector_ne_<mode>_p): Likewise.
16650         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
16651         numbers.
16652         (vsx_tsqrt<mode>2_fe): Likewise.
16654 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
16656         PR target/79514
16657         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
16659 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
16661         PR rtl-optimization/79780
16662         * cprop.c (one_cprop_pass): When second and further conditional trap
16663         in a single basic block is turned into an unconditional trap, turn it
16664         into a deleted note to avoid RTL verification failures.
16666 2017-03-02  Richard Biener  <rguenther@suse.de>
16668         * fold-const.c (const_binop): Use ulow () instead of elt (0).
16670 2017-03-02  Richard Biener  <rguenther@suse.de>
16672         PR tree-optimization/79345
16673         PR c++/42000
16674         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
16675         param and abort the walk, returning -1 if it is hit.
16676         (walk_aliased_vdefs): Take a limit param and pass it on.
16677         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
16678         defaulting to 0 and return a signed int.
16679         * tree-ssa-uninit.c (struct check_defs_data): New struct.
16680         (check_defs): New helper.
16681         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
16682         about uninitialized memory.
16683         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
16684         bogus uninitialized warning.
16685         (fixed_convert_from_real): Likewise.
16687 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
16689         PR tree-optimization/66768
16690         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
16691         iv_use if base object can't be determined.
16693 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
16695         PR tree-optimization/79345
16696         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
16697         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
16698         (get_pattern_stats): Initialize it.
16699         * genemit.c (gen_expand): Verify match_scratch numbers come after
16700         match_operand/match_dup numbers.
16701         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
16702         match_scratch numbers.
16703         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
16704         Likewise.
16705         * config/s390/s390.md (trunctdsd2): Likewise.
16707 2017-03-02  Richard Biener  <rguenther@suse.de>
16709         * wide-int.h (wide_int_storage::operator=): Implement in terms
16710         of wi::copy.
16712 2017-03-02  Richard Biener  <rguenther@suse.de>
16714         PR tree-optimization/79777
16715         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
16716         the to insert expression to sth existing.
16718 2017-03-01  Martin Sebor  <msebor@redhat.com>
16720         PR middle-end/79692
16721         * gimple-ssa-sprintf.c
16722         (directive::known_width_and_precision): New function.
16723         (format_integer): Use it.
16724         (get_mpfr_format_length): Consider the full range of precision
16725         when computing %g output with the # flag.  Set the likely byte
16726         count to 3 rather than 1 when precision is indeterminate.
16727         (format_floating): Correct the lower bound of precision.
16729 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16731         * doc/invoke.texi: Document default code model for 64-bit Linux.
16733 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
16735         PR target/79752
16736         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
16737         udiv rather than div since input pattern is unsigned.
16739 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
16741         * config/i386/i386.c (print_reg): Warn for values of
16742         unsupported size in integer register.
16744 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
16746         PR target/79439
16747         * config/rs6000/predicates.md (current_file_function_operand): Do
16748         not allow self calls to be local if the function is replaceable.
16750 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
16752         PR target/79395
16753         * config/rs6000/altivec.h (vec_ctz and others): Change the
16754         preprocessor macro that controls conditional compilation from
16755         _ARCH_PWR9 to __POWER9_VECTOR__.
16756         (vec_all_ne): Change parameterization of __altivec_scalar_pred
16757         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
16758         control (instead of _ARCH_PWR9 control) so that template
16759         definition uses power9-specific function.
16760         (vec_any_eq): Likewise.
16761         (vec_all_ne): Change macro definition to use a power9-specific
16762         expansion under #ifdef __POWER9_VECTOR__ control (instead of
16763         _ARCH_PWR9 control).
16764         (vec_any_eq) Likewise.
16765         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
16766         expansion for CMPNEF to remove support for xvcmpnesp instruction.
16767         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
16768         support for xvcmpnedp instruction.
16769         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
16770         macro expansion so that Power9 implementation of vec_all_ne does
16771         not use the AltiVec predicate framework.
16772         (VCMPNEH_P): Likewise.
16773         (VCMPNEW_P): Likewise.
16774         (VCMPNED_P): Likewise.
16775         (VCMPNEFP_P): Likewise.
16776         (VCMPNEDP_P): Likewise.
16777         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
16778         implementation of vec_any_eq to not use AltiVec predicate
16779         framework.
16780         (VCMPAEH_P): Likewise.
16781         (VCMPAEW_P): Likewise.
16782         (VCMPAED_P): Likewise.
16783         (VCMPAEFP_P): Likewise.
16784         (VCMPAEDP_P): Likewise.
16785         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
16786         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
16787         not use the AltiVec predicate framework.
16788         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
16789         of vec_any_eq to not use AltiVec predicate framework.
16790         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
16791         support for predefined __POWER9_VECTOR__ macro to indicate that
16792         Power9 instruction selection is enabled.
16793         (altivec_overloaded_builtins): Remove extraneous
16794         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
16795         function argument types RS6000_BTI_bool_V16QI and
16796         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
16797         entry for overloaded function argument types RS6000_BTI_bool_V4SI
16798         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
16799         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
16800         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
16801         Power9 for implementations of vec_cmpne.  Change the signature for
16802         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
16803         (representing vec_all_ne) to remove the previously described first
16804         argument of type RS6000_BTI_INTSI, as this was an artifact of
16805         reliance on the AltiVec predicate framework, which is no longer
16806         used in the implementation of these functions.  Add
16807         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
16808         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
16809         since, unlike the AltiVec predicate framework implementation, we
16810         do not share function descriptors between vec_alle and vec_anyeq.
16811         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
16812         set of modes that receive special treatment even when
16813         TARGET_P9_VECTOR is true.  The special treatment emits code that
16814         does not depend on Power9 instructions.
16815         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
16816         define_expand to not rely on AltiVec predicate framework.
16817         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
16818         function.
16819         (vector_ne_v2di_p): Change this define_expand to not rely on
16820         AltiVec predicate framework.
16821         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
16822         function.
16823         (vector_ne_<mode>_p): Change this define_expand to not rely on
16824         AltiVec predicate framework.
16825         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
16826         function.
16827         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
16828         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
16829         define_insn pattern.
16830         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
16831         define_insn pattern because the xvcmpne<VSs>. instruction is not
16832         supported.
16833         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
16834         instruction is not supported.
16836 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
16838         * config/nvptx/nvptx.c: Include intl.h.
16840 2017-03-01  Martin Jambor  <mjambor@suse.cz>
16842         PR lto/78140
16843         * ipa-prop.h (ipa_bits): Removed field known.
16844         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
16845         to pointers.  Adjusted their comments to warn about their sharing.
16846         (ipcp_transformation_summary): Change bits to a vector of pointers.
16847         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
16848         (ipa_get_ipa_bits_for_value): Declare.
16849         * tree-vrp.h (value_range): Mark as GTY((for_user)).
16850         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
16851         (ipa_bits_hash_table): Likewise.
16852         (ipa_vr_ggc_hash_traits): Likewise.
16853         (ipa_vr_hash_table): Likewise.
16854         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
16855         being pointers and vr_known being removed.
16856         (ipa_set_jf_unknown): Likewise.
16857         (ipa_get_ipa_bits_for_value): New function.
16858         (ipa_set_jfunc_bits): Likewise.
16859         (ipa_get_value_range): New overloaded functions.
16860         (ipa_set_jfunc_vr): Likewise.
16861         (ipa_compute_jump_functions_for_edge): Use the above functions to
16862         construct bits and vr parts of jump functions.
16863         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
16864         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
16865         exist.
16866         (ipcp_grow_transformations_if_necessary): Also allocate
16867         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
16868         exist.
16869         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
16870         them.  Fix too long lines.
16871         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
16872         vr_known being removed.
16873         (ipa_read_jump_function): Use new setter functions to construct bits
16874         and vr parts of jump functions or set them to NULL.
16875         (write_ipcp_transformation_info): Adjust for bits being pointers.
16876         (read_ipcp_transformation_info): Likewise.
16877         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
16878         space.
16879         Include gt-ipa-prop.h.
16880         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
16881         being pointers.
16882         (ipcp_store_bits_results): Likewise.
16883         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
16884         Do not write to existing jump functions but use a temporary instead.
16886 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
16888         PR c++/79681
16889         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
16890         attempt to use its first operand as BIT_FIELD_REF base.
16892 2017-03-01  Richard Biener  <rguenther@suse.de>
16894         PR middle-end/79721
16895         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
16896         interpolating formula in wrapping arithmetic.
16897         (chrec_apply): Convert chrec_evaluate return value to wanted type.
16899 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
16901         PR tree-optimization/79734
16902         * tree-vect-generic.c (expand_vector_condition): Optimize
16903         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
16904         Handle VEC_COND_EXPR where comparison has different inner width from
16905         type's inner width.
16907 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
16909         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
16910         markup, and similar issues.  Remove @opindex entries for things
16911         that aren't options.  Add missing -mmpy-option entries.
16913 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
16915         PR tree-optimization/79737
16916         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
16917         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
16918         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
16919         instead of byte_size.  Formatting fix.
16920         (shift_bytes_in_array_right): Formatting fix.
16922 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
16924         PR target/79749
16925         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
16926         condition on optimize for the leaf function test.
16928 2017-02-28  Martin Liska  <mliska@suse.cz>
16930         PR lto/79625
16931         * read-rtl-function.c (function_reader::handle_unknown_directive):
16932         Bail out when one uses -flto.
16934 2017-02-28  Martin Liska  <mliska@suse.cz>
16936         * common.opt: Replace space with tabular for options of <number>
16937         type.
16938         * config/i386/i386.opt: Show <number> value for
16939         -mlarge-data-threshold.
16940         * opts.c (print_filtered_help): Do not display number in hexadecimal
16941         format.
16943 2017-02-28  Martin Liska  <mliska@suse.cz>
16945         * common.opt: Fix --help=option -Q for options which are of
16946         an enum type.
16948 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
16950         * config/i386/i386.c (print_reg): Error out for values
16951         of 8-bit size in invalid integer register.
16953 2017-02-28  Martin Sebor  <msebor@redhat.com>
16955         PR tree-optimization/79691
16956         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
16958 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
16960         PR target/79729
16961         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
16962         gcc_unreachable with output_operand_lossage.
16964 2017-02-28  Richard Biener  <rguenther@suse.de>
16966         PR tree-optimization/79740
16967         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
16968         inserts.
16969         (visit_nary_op): Insert the nary into the hashtable if we
16970         pattern-matched sth.
16971         * tree-ssa-pre.c (eliminate_insert): Robustify.
16973 2017-02-28  Richard Biener  <rguenther@suse.de>
16975         PR middle-end/79731
16976         * fold-const.c (decode_field_reference): Reject out-of-bound
16977         accesses.
16979 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
16981         * config/i386/i386.c: Include intl.h.
16982         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
16983         instead of just cond ? "..." : "...".
16984         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
16985         * coverage.c (read_counts_file): Likewise.
16986         * omp-offload.c: Include intl.h.
16987         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
16988         of just cond ? "..." : "...".
16989         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
16990         of just cond ? "..." : "...".
16992 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
16994         PR target/79742
16995         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
16996         entry, if present.
16997         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
16998         'tune for' CPU name.
16999         * config/arm/arm-cpu-data.h: Regenerated.
17001 2017-02-28  Richard Biener  <rguenther@suse.de>
17003         PR tree-optimization/79732
17004         * tree-inline.c (expand_call_inline): Do not shadow var.
17006 2017-02-28  Richard Biener  <rguenther@suse.de>
17008         PR tree-optimization/79723
17009         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
17010         address-space properly.
17012 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
17014         * doc/optinfo.texi (Optimization groups): Fix option used for
17015         OPTGROUP_ALL.
17016         * doc/invoke.texi (-fopt-info): Document "omp".
17017         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
17018         (OPTGROUP_ALL): Add OPTGROUP_OMP.
17019         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
17020         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
17021         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
17023         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
17024         all users.
17025         * dumpfile.c (optgroup_options): Instead of "openmp", associate
17026         OPTGROUP_OMP with "omp".
17028 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
17030         PR target/79544
17031         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
17032         for arithmetic shift of unsigned V2DI.
17034 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
17036         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
17037         arc/linux.h headers.
17038         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
17039         (LINK_SPEC): Likewise.
17040         (ARC_TLS_EXTRA_START_SPEC): Likewise.
17041         (EXTRA_SPECS): Likewise.
17042         (STARTFILE_SPEC): Likewise.
17043         (ENDFILE_SPEC): Likewise.
17044         (LIB_SPEC): Likewise.
17045         (TARGET_SDATA_DEFAULT): Likewise.
17046         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
17047         (MULTILIB_DEFAULTS): Likewise.
17048         (DWARF2_UNWIND_INFO): Likewise.
17049         * config/arc/big.h: New file.
17050         * config/arc/elf.h: Likewise.
17051         * config/arc/linux.h: Likewise.
17052         * config/arc/t-uClibc: Remove.
17054 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
17056         PR tree-optimization/77536
17057         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
17058         (tree_transform_and_unroll_loop): Use above function to compute the
17059         estimated niter of unrolled loop and use it when scaling profile.
17060         Also use count info rather than frequency if it's non-zero.
17061         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
17062         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
17063         (vect_transform_loop): Call above function.
17065 2017-02-27  Richard Biener  <rguenther@suse.de>
17067         PR tree-optimization/45397
17068         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
17069         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
17070         (visit_nary_op): Add pattern matching for CSEing sign-changed
17071         or truncated operations with wider ones.
17073 2017-02-27  Richard Biener  <rguenther@suse.de>
17075         PR tree-optimization/79690
17076         * tree-vect-stmts.c (vectorizable_store): Use vector type
17077         built from the DR with address-space.
17079 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
17081         * doc/invoke.texi (Optimize Options): Refine the description
17082         of asan-use-after-return.
17084 2017-02-25  Alan Modra  <amodra@gmail.com>
17086         PR rtl-optimization/79584
17087         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
17088         base, not ad->base_term, the reg within base.  Remove assertion
17089         that ad->base == ad->base_term.  Replace gen_int_mode using
17090         bogus mode with const0_rtx.
17092 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
17094         PR middle-end/79396
17095         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
17096         FMA_EXPR like tcc_binary or tcc_unary.
17098         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
17100         PR debug/77589
17101         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
17102         bitfield.
17103         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
17104         (output_loc_operands): Handle DW_OP_call_ref and
17105         DW_OP_GNU_variable_value.
17106         (struct variable_value_struct): New type.
17107         (struct variable_value_hasher): Likewise.
17108         (variable_value_hash): New variable.
17109         (string_types): Remove.
17110         (copy_loc_descr): New function.
17111         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
17112         (prepend_loc_descr_to_each): New function.
17113         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
17114         instead of add_loc_descr_to_each if the first argument is single
17115         location list and the second has multiple.
17116         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
17117         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
17118         when looking for variable value which doesn't have other location info.
17119         (loc_list_from_tree): Formatting fix.
17120         (gen_array_type_die): Simplify DW_AT_string_length handling.
17121         (adjust_string_types): Remove.
17122         (gen_subprogram_die): Don't call adjust_string_types nor test/set
17123         string_types.  Call resolve_variable_values.
17124         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
17125         (resolve_addr_in_expr): Likewise.  Add A argument.
17126         (copy_deref_exprloc): Remove deref argument.  Adjust for the
17127         original expression being DW_OP_GNU_variable_value with optionally
17128         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
17129         optionally after it.
17130         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
17131         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
17132         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
17133         (variable_value_hasher::hash, variable_value_hasher::equal): New
17134         methods.
17135         (resolve_variable_value_in_expr, resolve_variable_value,
17136         resolve_variable_values, note_variable_value_in_expr,
17137         note_variable_value): New functions.
17138         (dwarf2out_early_finish): Call note_variable_value on all toplevel
17139         DIEs.
17141 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
17143         PR c/79677
17144         * opts.h (handle_generated_option): Add GENERATED_P argument.
17145         * opts-common.c (handle_option): Adjust function comment.
17146         (handle_generated_option): Add GENERATED_P argument, pass it to
17147         handle_option.
17148         (control_warning_option): Pass false to handle_generated_option
17149         GENERATED_P.
17150         * opts.c (maybe_default_option): Pass true to handle_generated_option
17151         GENERATED_P.
17152         * optc-gen.awk: Likewise.
17154 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
17156         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
17157         a REG, look at the REG it is a SUBREG of.
17158         (splitter for cmpeqsi_t): Ditto.
17160 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
17162         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
17163         the special USEs with the pattern of the insn, not the insn itself.
17165 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
17167         PR target/79473
17168         * doc/invoke.texi: Document -mload-store-pairs.
17170 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
17171             Sandra Loosemore  <sandra@codesourcery.com>
17173         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
17174         argument isn't a CONST_INT.
17175         (nios2_alternate_compare_const): Assert op is a CONST_INT.
17176         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
17177         (nios2_validate_compare): Bypass alternate compare logic if *op2
17178         is not a CONST_INT.
17179         (ldstwm_operation_p): Return false if first_base is not a REG or
17180         if first_offset is not a CONST_INT.
17182 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
17184         * config/cris/cris.md: Use correct operand in a define_peephole2.
17186 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
17188         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
17190 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
17192         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
17193         this_insn if it is an INSN or JUMP_INSN.
17194         (force_offsettable): Look at base, not at addr.
17195         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
17196         on things that aren't necessarily CONST_INTs.
17198 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
17200         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
17201         -mfpmath=sse is the default also for x86-32 targets with SSE2
17202         instruction set when @option{-ffast-math} is enabled
17204 2017-02-24  Jeff Law  <law@redhat.com>
17206         PR rtl-optimizatoin/79286
17207         * ira.c (update_equiv_regs): Drop may_trap_p exception to
17208         dominance test.
17210 2017-02-24  Richard Biener  <rguenther@suse.de>
17212         PR tree-optimization/79389
17213         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
17214         debug insns.
17216 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
17218         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
17219         function comment to reflect reality.
17220         (loop_exits_before_overflow): Fix typo in function description.
17222 2017-02-24  Richard Biener  <rguenther@suse.de>
17224         PR tree-optimization/79389
17225         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
17226         properly that a threading opportunity exists.  Detect conditional
17227         copy/constant propagation opportunities.
17229 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
17231         * config/visium/visium.md (type): Add trap.
17232         (b): New mode attribute.
17233         (*btst): Rename into...
17234         (*btst<mode>): ...this and adjust.
17235         (*cbranchsi4_btst_insn): Rename into...
17236         (*cbranch<mode>4_btst_insn): ...this and adjust.
17237         (trap): New define_insn.
17239 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
17241         PR tree-optimization/79389
17242         * ifcvt.c (struct noce_if_info): Add rev_cond field.
17243         (noce_reversed_cond_code): New function.
17244         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
17245         reversed_comparison_code.  Formatting fix.
17246         (noce_try_store_flag): Test rev_cond != NULL in addition to
17247         reversed_comparison_code.
17248         (noce_try_store_flag_constants): Likewise.
17249         (noce_try_store_flag_mask): Likewise.
17250         (noce_try_addcc): Use rev_cond if non-NULL instead of
17251         reversed_comparison_code.
17252         (noce_try_cmove_arith): Likewise.  Formatting fixes.
17253         (noce_try_minmax, noce_try_abs): Clear rev_cond.
17254         (noce_find_if_block): Initialize rev_cond.
17255         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
17256         instead of false as last argument never attempt to reverse it
17257         afterwards.
17259 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
17261         PR tree-optimization/79663
17262         * tree-predcom.c (combine_chains): Process refs in reverse order
17263         only for ZERO length chains, and add explaining comment.
17265 2017-02-23  Jeff Law  <law@redhat.com>
17267         PR tree-optimization/79578
17268         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
17269         in call to operand_equal_p.
17271 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
17273         PR target/71017
17274         * config/i386/cpuid.h: Fix another undefined behavior.
17276 2017-02-23  Richard Biener  <rguenther@suse.de>
17278         PR tree-optimization/79683
17279         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
17280         vector types for data-refs.
17282 2017-02-23  Martin Liska  <mliska@suse.cz>
17284         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
17286 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
17288         PR middle-end/79665
17289         * internal-fn.c (get_range_pos_neg): Moved to ...
17290         * tree.c (get_range_pos_neg): ... here.  No longer static.
17291         * tree.h (get_range_pos_neg): New prototype.
17292         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
17293         are known to be in between 0 and signed maximum inclusive, try to
17294         expand both unsigned and signed divmod and use the cheaper one from
17295         those.
17297 2017-02-22  Jeff Law  <law@redhat.com>
17299         PR tree-optimization/79578
17300         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
17301         to compare base operands.
17303 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
17305         PR target/79211
17306         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
17307         gpc_reg_operand instead of fpr_reg_operand.
17309 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
17311         * config/mips/mips.c (mips_return_in_memory): Force FP
17312         vector types to be returned in memory for o32 ABI.
17314 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
17316         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
17317         instead of DW_TAG_member for static data member declarations and don't
17318         set no_linkage_name for static inline data members.
17319         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
17320         to DW_TAG_member.
17322 2017-02-22  Martin Liska  <mliska@suse.cz>
17324         * doc/invoke.texi: Replace inequality signs with square brackets
17325         for -Wnormalized.
17327 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17329         PR tree-optimization/68644
17330         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
17332 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
17334         PR target/78660
17335         * lra-constraints.c (simplify_operand_subreg): Handle
17336         WORD_REGISTER_OPERATIONS targets.
17338 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
17340         PR target/70465
17341         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
17342         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
17343         elimination by swapping fld*.
17345 2017-02-22  Richard Biener  <rguenther@suse.de>
17347         PR tree-optimization/79673
17348         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
17349         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
17350         irrelevant address-space qualifiers and avoiding a
17351         ADDR_SPACE_CONVERT_EXPR from fold_convert.
17353 2017-02-22  Richard Biener  <rguenther@suse.de>
17355         PR tree-optimization/79666
17356         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
17357         to not symbolically negate if that may introduce undefined
17358         overflow.
17360 2017-02-22  Martin Liska  <mliska@suse.cz>
17362         PR lto/79587
17363         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
17364         * data-streamer-out.c (streamer_write_gcov_count_stream):
17365         Likewise.
17366         * value-prof.c (stream_out_histogram_value): Make assert more
17367         precise based on type of counter.
17369 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
17371         PR target/79593
17372         * config/i386/i386.md (standard_x87sse_constant_load splitter):
17373         Use nonimmediate_operand instead of memory_operand for operand 1.
17374         (float-extend standard_x87sse_constant_load splitter): Ditto.
17376 2017-02-21  Jeff Law  <law@redhat.com>
17378         PR tree-optimization/79621
17379         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
17380         blocks with edges to themselves.
17382 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
17384         PR target/79633
17385         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
17386         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
17387         Use gimple_call_builtin_p.
17389         PR target/79570
17390         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
17391         on temporarily removed DEBUG_INSNs.
17393         PR tree-optimization/79649
17394         * tree-loop-distribution.c (classify_partition): Give up on
17395         non-generic address space loads/stores.
17397 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
17399         * doc/loop.texi (Loop manipulation): Remove nonexistent
17400         tree_ssa_loop_version from the documentation.
17401         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
17403 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
17405         PR target/79494
17406         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
17407         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
17408         * config/rs6000/rs6000.c: Include except.h.
17409         (rs6000_expand_split_stack_prologue): Call
17410         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
17412 2017-02-21  Martin Jambor  <mjambor@suse.cz>
17414         PR lto/79579
17415         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
17416         have been analyzed.
17418 2017-02-21  Martin Jambor  <mjambor@suse.cz>
17420         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
17421         for backward compatibility only.
17422         * doc/invoke.texi (Option Summary): Remove all references to
17423         -fipa-cp-alignment.
17425 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
17427         PR target/78660
17428         Revert:
17429         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
17431         * lra-constraints.c (curr_insn_transform): Handle
17432         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
17434 2017-02-21  Martin Liska  <mliska@suse.cz>
17436         * config/i386/i386.opt: Replace -masm-dialect with -masm.
17438 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
17440         PR translation/79638
17441         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
17443 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
17445         PR ada/67205
17446         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
17447         (arm_function_ok_for_sibcall): Return false for an indirect call by
17448         descriptor if all the argument registers are used.
17449         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
17450         alignment of the function.
17452 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
17454         PR tree-optimization/61441
17455         * simplify-rtx.c (simplify_const_unary_operation): For
17456         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
17457         the sNaN unmodified.
17459 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17461         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
17462         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
17463         instead of SYSTEM_HEADER_DIR.
17465 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
17466             Martin LiÅ¡ka  <mliska@suse.cz>
17468         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
17469         Fix typos and grammar, use active voice, and clarify.
17471 2017-02-20  Marek Polacek  <polacek@redhat.com>
17473         PR middle-end/79537
17474         * gimplify.c (gimplify_expr): Handle unused *&&L;.
17476         PR sanitizer/79558
17477         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
17479 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
17481         PR target/79568
17482         * config/i386/i386.c (ix86_expand_builtin): Handle
17483         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
17484         ix86_builtins_isa[fcode].isa as a requirement of those
17485         flags and any other flag in the bitmask.
17486         (ix86_init_mmx_sse_builtins): Use 0 instead of
17487         ~OPTION_MASK_ISA_64BIT as mask.
17488         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
17489         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
17490         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
17491         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
17493 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
17495         PR target/78012
17496         * lra-constraints.c (split_reg): Check requested split mode
17497         is supported by the register.
17499 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
17501         * lra-constraints.c (simplify_operand_subreg): Remove early
17502         return false.
17504 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
17506         PR target/78660
17507         * lra-constraints.c (curr_insn_transform): Tighten condition
17508         for converting SUBREG reloads from OP_OUT to OP_INOUT.
17510 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
17512         PR target/78660
17513         * lra-constraints.c (curr_insn_transform): Handle
17514         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
17516 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
17518         Revert:
17519         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
17521         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
17523 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
17525         PR c++/69523
17526         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
17527         description.
17529 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
17531         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
17532         for FMA_EXPR.
17534 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
17536         * final.c (last_columnnum, override_columnnum): New variables.
17537         (final_start_function): Set last_columnnum, pass it to begin_prologue
17538         hook and pass 0 to dwarf2out_begin_prologue.
17539         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
17540         to source_line debug hook.
17541         (notice_source_line): Compute last_columnnum and for debug_column_info
17542         return true on column changes.
17543         * debug.h (struct gcc_debug_hooks): Add column argument to
17544         source_line and begin_prologue hooks.
17545         (debug_nothing_int_charstar_int_bool): Remove prototype.
17546         (debug_nothing_int_int_charstar,
17547         debug_nothing_int_int_charstar_int_bool): New prototypes.
17548         (dwarf2out_begin_prologue): Add column argument.
17549         * debug.c (do_nothing_debug_hooks): Adjust source_line and
17550         begin_prologue hooks.
17551         (debug_nothing_int_charstar_int_bool): Remove.
17552         (debug_nothing_int_int_charstar,
17553         debug_nothing_int_int_charstar_int_bool): New functions.
17554         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
17555         through to dwarf2out_source_line.
17556         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
17557         (dwarf2out_source_line): Add column argument, emit it if requested.
17558         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
17559         arguments.
17560         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
17561         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
17562         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
17563         through to dwarf2out_begin_prologue.
17564         (vmsdbgout_source_line): Add column argument, pass it through to
17565         dwarf2out_source_line.
17566         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
17567         dbxout_source_line caller.
17568         (dbxout_source_line): Add column argument.
17570         * common.opt (gno-column-info, gcolumn-info): New options.
17571         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
17572         (check_die): Also test for multiple DW_AT_decl_column attributes.
17573         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
17574         DW_AT_decl_column if requested.
17575         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
17576         if requested.
17577         (gen_variable_die): Likewise.
17578         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
17579         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
17581         PR target/79569
17582         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
17583         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
17584         (ix86_handle_option): Handle OPT_m3dnowa.
17585         * doc/invoke.texi (-m3dnowa): Document.
17586         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
17587         -m3dnowa instead of -m3dnow -march=athlon.
17589         PR target/79559
17590         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
17591         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
17593 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17595         PR target/79261
17596         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
17597         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
17598         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
17599         generator for vsx_xxpermdi_<mode>_be.
17600         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
17601         force big-endian semantics.
17602         (vsx_xxpermdi_<mode>_be): New define_expand with same
17603         implementation as previous version of vsx_xxpermdi_<mode>.
17605 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
17607         PR tree-optimization/79327
17608         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
17609         variable, its initialization and use.
17611 2017-02-17  Julia Koval  <julia.koval@intel.com>
17613         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
17614         (OPTION_MASK_ISA_PKU_UNSET): New.
17615         (ix86_handle_option): Handle -mrdpid.
17616         * config/i386/cpuid.h (bit_RDPID): New.
17617         * config/i386/driver-i386.c (host_detect_local_cpu):
17618         Detect RDPID feature.
17619         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
17620         * config/i386/i386-c.c (ix86_target_macros_internal):
17621         Handle RDPID flag.
17622         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
17623         (ix86_valid_target_attribute_inner_p): Add "rdpid".
17624         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
17625         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
17626         * config/i386/i386.md (define_insn "rdpid"): New.
17627         * config/i386/i386.opt Add -mrdpid.
17628         * config/i386/immintrin.h (_rdpid_u32): New.
17630 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
17632         PR rtl-optimization/79541
17633         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
17634         instead of transforming it into USE.
17636 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
17638         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
17639         If HONOR_SNANS (SFmode) force the input to a register.
17640         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
17641         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
17642         an frsp or similar insn.
17644 2017-02-17  Martin Liska  <mliska@suse.cz>
17646         PR rtl-optimization/79577
17647         * params.def (selsched-max-sched-times): Increase minimum to 1.
17649 2017-02-17  Martin Liska  <mliska@suse.cz>
17651         PR rtl-optimization/79574
17652         * gcse.c (want_to_gcse_p): Prevent integer overflow.
17654 2017-02-17  Martin Liska  <mliska@suse.cz>
17656         PR tree-optimization/79529
17657         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
17658         ssa_defined_default_def_p to handle cases which are implicitly
17659         defined.
17660         * tree-ssa.c (ssa_defined_default_def_p): New function.
17661         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
17662         which are implicitly defined.
17663         * tree-ssa.h (ssa_defined_default_def_p): Declare.
17665 2017-02-17  Richard Biener  <rguenther@suse.de>
17667         PR middle-end/79576
17668         * params.def (max-ssa-name-query-depth): Limit to 10.
17670 2017-02-17  Richard Biener  <rguenther@suse.de>
17672         PR tree-optimization/79552
17673         * tree-ssa-structalias.c (visit_loadstore): Properly verify
17674         default defs.
17676 2017-02-17  Richard Biener  <rguenther@suse.de>
17678         PR bootstrap/79567
17679         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
17681 2017-02-17  Marek Polacek  <polacek@redhat.com>
17683         PR middle-end/79536
17684         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
17685         (fold_negate_expr): New wrapper.
17687 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
17689         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
17690         Correct terminology and de-emphasize pre-standard behavior.
17692 2017-02-16  Alan Modra  <amodra@gmail.com>
17694         PR rtl-optimization/79286
17695         * ira.c (def_dominates_uses): New function.
17696         (update_equiv_regs): Don't create an equivalence for insns that
17697         may trap where the register def does not dominate the use.
17699 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
17701         PR rtl-optimization/78127
17702         * lra.c (lra): Call lra_eliminate before finish the loop after
17703         lra_constraint.
17705 2017-02-16  Richard Biener  <rguenther@suse.de>
17707         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
17708         isl/isl_val.h.
17709         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
17710         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
17711         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
17712         (isl_val_int_from_wi): New function.
17713         (extract_affine_gmp): Rename to ...
17714         (extract_affine_wi): ... this, take a widest_int.
17715         (extract_affine_int): Just wrap extract_affine_wi.
17716         (add_param_constraints): Use isl_val_int_from_wi.
17717         (add_loop_constraints): Likewise, and extract_affine_wi.
17719 2017-02-15  Jeff Law  <law@redhat.com>
17721         PR middle-end/79521
17722         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
17723         ira_init_register_move_cost_if_necessary.
17725 2017-02-15  Martin Sebor  <msebor@redhat.com>
17727         PR middle-end/32003
17728         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
17729         removed in a prior commit.
17731 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
17733         PR tree-optimization/79347
17734         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
17735         counters during peeling.
17737 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
17739         * Makefile.in (site.exp): Remove "set ISLVER".
17741 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
17743         PR target/79487
17744         * real.c (real_from_integer): Call real_convert even for decimal.
17746 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17748         PR target/79421
17749         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
17751 2017-02-14  Andrew Pinski  <apinski@cavium.com>
17753         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
17754         cores and change the partno/implementer to be correct.
17755         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
17756         the 'B" as the implementer.
17757         * config/aarch64/aarch64-tune.md: Regenerate.
17759 2017-02-14  Carl Love  <cel@us.ibm.com>
17761         * config/rs6000/rs6000.c: Add case statement entry to make the
17762         xvcvuxdsp built-in argument unsigned.
17763         * config/rs6000/vsx.md: Fix the source and return operand types so they
17764         match the instruction definitions from the ISA document.  Fix typo
17765         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
17766         statement.
17768 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
17770         PR target/79282
17771         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
17772         member early_clobber_alts.
17773         * lra-lives.c (reg_early_clobber_p): New.
17774         (process_bb_lives): Use it.
17775         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
17776         (debug_operand_data): Initialize early_clobber_alts.
17777         (setup_operand_alternative): Set up early_clobber_alts.
17778         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
17779         alternatives to new_insn_reg.
17780         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
17781         it.
17782         (lra_update_insn_regno_info): Pass the new arg.
17784 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
17786         PR middle-end/79505
17787         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
17788         (new_oacc_loop_raw): Don't clear already cleared fields.
17790         PR target/79481
17791         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
17792         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
17793         _mm512_prefetch_i64gather_ps): New inline functions and macros.
17795 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
17797         PR target/79495
17798         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
17800 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
17802         PR target/79498
17803         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
17804         the extra instruction to the right place to store 128-bit constant
17805         when needed.
17807 2017-02-14  Martin Sebor  <msebor@redhat.com>
17809         PR middle-end/79448
17810         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
17811           warning for strings of unknown length.
17813 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
17815         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
17817 2017-02-14  Jeff Law  <law@redhat.com>
17819         PR target/79404
17820         * ira-costs.c (scan_one_insn): Initialize register move costs
17821         for pseudos seen in USE/CLOBBER insns.
17823         PR tree-optimization/79095
17824         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
17825         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
17826         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
17827         if the operands are known to be not equal, then the resulting range
17828         is ~[0,0].
17829         (intersect_ranges): If the new range is ~[0,0] and the old range is
17830         wide, then prefer ~[0,0].
17831         * tree-vrp.c (overflow_comparison_p_1): New function.
17832         (overflow_comparison_p): New function.
17833         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
17834         if NAME is used in an overflow test.
17835         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
17836         overflow check that can be expressed as an equality test, then adjust
17837         ops to be that equality test.
17839 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17841         * config/s390/s390-builtin-types.def: Remove flags argument.
17842         * config/s390/s390.c (s390_init_builtins): Likewise.
17844 2017-02-14  Martin Liska  <mliska@suse.cz>
17846         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
17847         vector.  Fix trailing white spaces.
17849 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
17851         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
17852         HFmode.
17854 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17856         PR rtl-optimization/68664
17857         * config/arm/arm.c (arm_sched_can_speculate_insn):
17858         New function.  Declare prototype.
17859         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
17861 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17863         PR rtl-optimization/68664
17864         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
17865         New function.
17866         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
17868 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
17870         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
17871         max skip bytes for function, loop and jump.
17873 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
17875         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
17876         ABS_EXPR for gimple dump.
17878 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
17880         PR target/79462
17881         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
17883         PR tree-optimization/79408
17884         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
17885         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
17886         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
17887         also if rhs1 is INTEGER_CST.
17889 2017-02-14  Richard Biener  <rguenther@suse.de>
17891         PR middle-end/79432
17892         * tree-into-ssa.c (insert_phi_nodes): When the function can
17893         have abnormal edges rewrite SSA names with broken use-def
17894         dominance out of SSA and register them for PHI insertion.
17896 2017-02-13  Martin Sebor  <msebor@redhat.com>
17898         PR middle-end/79496
17899         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
17900         clearing info.nowrite flag when snprintf size argument is a range.
17902 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
17904         * cprop.c (cprop_jump): Add missing space in string literal.
17905         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
17906         (get_constraint_for_component_ref): Likewise.
17907         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
17908         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
17909         * lra-constraints.c (process_alt_operands): Likewise.
17910         * ipa-inline.c (inline_small_functions): Likewise.
17911         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
17912         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
17913         * trans-mem.c (diagnose_tm_1_op): Likewise.
17914         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
17915         (grid_parallel_clauses_gridifiable): Likewise.
17917         * config/nvptx/mkoffload.c (process): Add space in between
17918         , and %d.
17920         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
17921         "MOD4_SSE_REGS" and "ALL_REGS".
17923         * spellcheck.c (test_data): Add , in between "foo" and "food".
17925 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
17927         PR target/79449
17928         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
17929         boundary crossing check and subsequent code generation agree.
17931 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17933         * config/aarch64/aarch64.c (has_memory_op): Delete.
17934         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
17935         has_memory_op.
17937 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
17939         PR rtl-optimization/79388
17940         PR rtl-optimization/79450
17941         * combine.c (distribute_notes): When removing TEM_INSN for which
17942         corresponding dest has last value recorded, invalidate that last
17943         value.
17945 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17947         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
17948         of explicit '@'.  Add missing assembly comment marker on branch costs
17949         printout.
17951 2017-02-13  Nathan Sidwell  <nathan@acm.org>
17953         * gengtype-lex.l (<in_struct>): Add '/'.
17955 2017-02-13  Martin Liska  <mliska@suse.cz>
17957         PR c/79471
17958         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
17960 2017-02-13  Richard Biener  <rguenther@suse.de>
17962         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
17963         Remove.
17964         * configure: Re-generate.
17965         * config.in: Likewise.
17966         * graphite-dependences.c: Simplify as if
17967         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
17968         * graphite-isl-ast-to-gimple.c: Likewise.
17969         * graphite-optimize-isl.c: Likewise.
17970         * graphite-poly.c: Likewise.
17971         * graphite-sese-to-poly.c: Likewise.
17972         * graphite.h: Likewise.
17973         * toplev.c: Include isl/version.h and use isl_version () for
17974         printing the ISL version.
17975         * doc/install.texi: Update ISL requirement.
17977 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
17979         * doc/standards.texi (Standards): Update reference to
17980         Objective-C 2.0.
17982 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
17984         * doc/extend.texi (Named Address Spaces): sourceware.org now
17985         defaults to https.
17986         * doc/install.texi (Binaries): Ditto.
17987         (Specific): Ditto.
17989 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
17991         * doc/cpp.texi: Replace "stringify"/"stringification" with C
17992         standard terminology "stringize"/"stringizing" throughout.
17993         * doc/cppinternals.texi: Likewise.
17995 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
17997         * doc/extend.texi: Fix some spelling mistakes and typos.
17998         * doc/invoke.texi: Likewise.
18000 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
18002         PR ipa/79224
18003         * params.def (inline-min-speedup) Change from 10 to 8.
18005 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
18007         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
18008         4.5.
18010 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
18012         PR ipa/79224
18013         * ipa-inline-analysis.c (get_minimal_bb): New function.
18014         (record_modified): Use it.
18015         (remap_edge_change_prob): Handle also ancestor functions.
18017 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
18019         * doc/contrib.texi (Contributors): Remove broken link into
18020         the Mauve CVS repository.
18022 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
18024         PR middle-end/79454
18025         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
18026         result computation whenever lhs doesn't have vector mode, not
18027         just when it has BLKmode.
18029 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
18031         * doc/makefile.texi (profiledbootstrap): Refer to the
18032         installation instructions only in textual form.
18034 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
18036         PR target/79295
18037         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
18039 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
18041         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
18042         (Specific): Update mingw-w64 reference.
18043         (Binaries): Ditto.
18044         (Specific): Remove broken link to Renesas RX processor.
18046 2017-02-10  Richard Biener  <rguenther@suse.de>
18048         * toplev.c (process_options): Do not mention obsolete graphite
18049         options when printing sorry message about missing graphite support.
18050         Mention -floop-nest-optimize.
18052 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
18054         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
18055         (vtst_p16): Likewise.
18056         (vtstq_p8): Likewise.
18057         (vtstq_p16): Likewise.
18058         (vtst_p64): New.
18059         (vtstq_p64): Likewise.
18060         * config/arm/arm_neon.h (vgetq_lane_p64): New.
18061         (vset_lane_p64): New.
18062         (vsetq_lane_p64): New.
18064 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
18066         PR tree-optimization/79411
18067         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
18068         stmt operands are SSA_NAMEs used in abnormal phis.
18069         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
18070         phis.
18072 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
18074         PR ipa/70795
18075         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
18076         flag if needed.
18078 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
18080         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
18082 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
18084         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
18085         to avoid warning.
18087         PR c/79413
18088         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
18089         not arbitrary TREE_CONSTANT.
18091         PR c/79431
18092         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
18093         "omp declare target link" attribute unless is_global_var.
18094         * omp-offload.c (find_link_var_op): Likewise.
18096 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
18097             Chung-Lin Tang  <cltang@codesourcery.com>
18099         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
18100         OMP_CLAUSE_TILE.
18101         (gimplify_adjust_omp_clauses): Don't delete TILE.
18102         (gimplify_omp_for): Deal with TILE.
18103         * internal-fn.c (expand_GOACC_TILE): New function.
18104         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
18105         (GOACC_TILE): New.
18106         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
18107         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
18108         element fields.
18109         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
18110         avoid DIV for outermost collapse var.
18111         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
18112         Remove out of date comments, fix whitespace.
18113         * omp-general.c (omp_extract_for_data): Deal with tiling.
18114         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
18115         adjust OLF_DIM_BASE value.
18116         (struct omp_for_data): Add tiling field.
18117         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
18118         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
18119         for auto loops.  Remove default auto determining, moved to
18120         oacc_loop_fixed_partitions.
18121         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
18122         stmts, add e_mask field.
18123         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
18124         (oacc_thread_numbers): Use oacc_dim_call.
18125         (oacc_xform_tile): New.
18126         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
18127         (finish_oacc_loop): Adjust for ifns vector.
18128         (oacc_loop_discover_walk): Append loop abstraction sites to list,
18129         add case for GOACC_TILE fns.
18130         (oacc_loop_xform_loop): Delete.
18131         (oacc_loop_process): Iterate over call list directly, and add
18132         handling for GOACC_TILE fns.
18133         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
18134         dump partitioning.
18135         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
18136         vector partitioning to outer loops.  Assign 2 partitions to loops
18137         when available. Add TILE handling.
18138         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
18139         (execite_oacc_device_lower): Process GOACC_TILE fns,
18140         ignore unknown specs.
18141         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
18142         * tree.c (omp_clause_num_ops): Adjust TILE ops.
18143         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
18145 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
18147         * configure.ac (ACX_BUGURL): Update.
18148         * configure: Regenerate.
18150 2017-02-09  Richard Biener  <rguenther@suse.de>
18152         PR tree-optimization/69823
18153         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
18154         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
18156 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
18158         * config/arc/arc-c.def: Add __NPS400__ definition.
18159         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
18160         (TARGET_NPS400): Define.
18162 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
18164         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
18165         file.
18166         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
18167         pointer, arch_info.
18168         (arc_cpu_types): Fill the arch_info field with a pointer into the
18169         arc_arch_types table.
18170         (arc_selected_cpu): Declare.
18171         * config/arc/arc.c (arc_selected_cpu): Make global.
18172         (arc_selected_arch): Delete.
18173         (arc_base_cpu): Delete.
18174         (arc_override_options): Remove references to deleted variables,
18175         update access to arch information.
18176         (ARC_OPT): Update access to arch information.
18177         (ARC_OPTX): Likewise.
18178         * config/arc/arc.h (arc_base_cpu): Remove declaration.
18179         (TARGET_ARC600): Update access to arch information.
18180         (TARGET_ARC601): Likewise.
18181         (TARGET_ARC700): Likewise.
18182         (TARGET_EM): Likewise.
18183         (TARGET_HS): Likewise.
18184         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
18185         information.
18187 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
18189         PR target/78604
18190         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
18191         condition/operands for integer GE/LE/GEU/LEU operations.
18193 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
18195         PR translation/79397
18196         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
18197         of AltiVec.
18199 2017-02-08  Martin Jambor  <mjambor@suse.cz>
18201         PR ipa/79375
18202         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
18203         whether allocation happened.
18204         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
18205         nothing was allocated.
18207 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
18209         PR tree-optimization/79408
18210         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
18211         constant, but SSA_NAME with a known integer range, use the minimum
18212         of that range instead of op1 to determine if modulo can be replaced
18213         with its first operand.
18215 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18217         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
18219 2017-02-08  Richard Biener  <rguenther@suse.de>
18221         PR tree-optimization/71824
18222         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
18223         Check all loops contained in the merged region.
18225 2017-02-07  Andrew Pinski  <apinski@cavium.com>
18227         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
18229 2017-02-07  Andrew Pinski  <apinski@cavium.com>
18231         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
18232         (thunderxt88): Likewise.
18233         (thunderxt81): Disable LSE and change v8.1 to v8.
18234         (thunderxt83): Likewise.
18236 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
18237             Richard Biener  <rguenther@suse.de>
18239         PR middle-end/79399
18240         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
18241         type from int to size_t.
18242         * ira-costs.c (struct_costs_size): Change type from int to size_t.
18244 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
18246         PR rtl-optimization/79386
18247         * cprop.c (bypass_conditional_jumps): Initialize
18248         bypass_last_basic_block already before splitting bbs after
18249         unconditional traps...
18250         (bypass_conditional_jumps): ... rather than here.
18252         PR target/79299
18253         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
18254         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
18255         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
18256         fix -masm=intel patterns.
18258 2017-02-07  Richard Biener  <rguenther@suse.de>
18260         PR tree-optimization/79256
18261         PR middle-end/79278
18262         * builtins.c (get_object_alignment_2): Use min_align_of_type
18263         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
18264         and ADJUST_FIELD_ALIGN.
18266         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
18267         type parameter.
18268         * doc/tm.texi: Regenerate.
18269         * stor-layout.c (layout_decl): Adjust.
18270         (update_alignment_for_field): Likewise.
18271         (place_field): Likewise.
18272         (min_align_of_type): Likewise.
18273         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
18274         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
18275         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
18276         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
18277         * config/frv/frv.c (frv_adjust_field_align): Likewise.
18278         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
18279         * config/i386/i386.c (x86_field_alignment): Likewise.
18280         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
18281         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
18282         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
18283         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
18284         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
18285         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
18286          Likewise.
18288         Revert
18289         2017-01-30  Richard Biener  <rguenther@suse.de>
18291         PR tree-optimization/79256
18292         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
18293         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
18294         alignment on TYPE.
18296 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
18298         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
18299         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
18300         builtins to SImode and emit a zero-extend, if necessary.
18302 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
18304         * docs/invoke.texi (RISC-V Options): Alphabetize.
18306 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
18308         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
18309         options.
18311 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
18313         * config/riscv/riscv.c: New file.
18314         * common/config/riscv/riscv-common.c: Likewise.
18315         * config.gcc: Likewise.
18316         * config/riscv/constraints.md: Likewise.
18317         * config/riscv/elf.h: Likewise.
18318         * config/riscv/generic.md: Likewise.
18319         * config/riscv/linux.h: Likewise.
18320         * config/riscv/multilib-generator: Likewise.
18321         * config/riscv/peephole.md: Likewise.
18322         * config/riscv/pic.md: Likewise.
18323         * config/riscv/predicates.md: Likewise.
18324         * config/riscv/riscv-builtins.c: Likewise.
18325         * config/riscv/riscv-c.c: Likewise.
18326         * config/riscv/riscv-ftypes.def: Likewise.
18327         * config/riscv/riscv-modes.def: Likewise.
18328         * config/riscv/riscv-opts.h: Likewise.
18329         * config/riscv/riscv-protos.h: Likewise.
18330         * config/riscv/riscv.h: Likewise.
18331         * config/riscv/riscv.md: Likewise.
18332         * config/riscv/riscv.opt: Likewise.
18333         * config/riscv/sync.md: Likewise.
18334         * config/riscv/t-elf-multilib: Likewise.
18335         * config/riscv/t-linux: Likewise.
18336         * config/riscv/t-linux-multilib: Likewise.
18337         * config/riscv/t-riscv: Likewise.
18338         * configure.ac: Likewise.
18339         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
18340         Waterman as RISC-V maintainers.
18341         * doc/install.texi: Add RISC-V entries.
18342         * doc/invoke.texi: Add RISC-V options section.
18343         * doc/md.texi: Add RISC-V constraints section.
18344         * configure: Regenerated.
18346 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18348         PR target/66144
18349         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
18350         false values to be constant vectors with all 0 or all 1 bits set.
18351         (vcondu<mode><mode>): Likewise.
18352         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
18353         predicate.
18354         (fpmask_comparison_operator): Update comment.
18355         (vecint_comparison_operator): New predicate.
18356         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
18357         vector conditionals when the true and false values are constant
18358         vectors with all 0 bits or all 1 bits set.
18360 2017-02-06  Martin Sebor  <msebor@redhat.com>
18362         PR  tree-optimization/79376
18363         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
18365 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
18367         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
18368         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
18369         to simplify split condition.
18371 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
18373         * omp-expand.c (oxpand_omp_atomic_fetch_op,
18374         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
18375         false.
18377 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
18379         PR rtl-optimization/68664
18380         * target.def (can_speculate_insn): New hook.
18381         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
18382         * doc/tm.texi: Regenerate.
18383         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
18384         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
18385         (rs6000_sched_can_speculate_insn): New function.
18387 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
18389         PR tree-optimization/79284
18390         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
18391         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
18392         vectorizable_mask_load_store, vectorizable_operation,
18393         vect_is_simple_cond, get_same_sized_vectype): Use it instead
18394         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
18395         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
18396         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
18397         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
18398         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
18399         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
18400         is_gimple_assign (stmt).  Replace another such test with
18401         is_gimple_assign (stmt).
18403 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
18405         PR target/78883
18406         * config/avr/avr.c (rtl-iter.h): Include it.
18407         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
18408         (avr_legitimate_combined_insn): ...and implementation.
18410 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18412         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
18413         * config/s390/s390.c (s390_const_operand_ok)
18414         (s390_canonicalize_comparison, s390_extract_part)
18415         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
18416         (s390_contiguous_bitmask_p, s390_rtx_costs)
18417         (legitimize_pic_address): Likewise.
18418         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
18419         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
18420         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
18421         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
18422         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
18424 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
18426         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
18427         REGNO($0) == REGNO($1).
18429 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18431         * config/s390/linux.h(SIZE_TYPE): Add comment.
18433 2017-02-06  Julian Brown  <julian@codesourcery.com>
18434             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
18435             Virendra Pathak  <virendra.pathak@broadcom.com>
18437         * config/aarch64/aarch64-cores.def: Change the scheduler
18438         to Thunderx2t99.
18439         * config/aarch64/aarch64.md: Include thunderx2t99.md.
18440         * config/aarch64/thunderx2t99.md: New file.
18442 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
18444         * doc/standards.texi (Go Language): Update link to language
18445         standard.
18447 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
18449         * tree-eh.c (lower_resx): Sanitize profile.
18450         (cleanup_empty_eh_move_lp): Likewise.
18452 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
18454         PR tree-ssa/79347
18455         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
18456         ELSE_PROB.
18457         * cfgloopmanip.h (loop_version): Update prototype.
18458         * modulo-sched.c (sms_schedule): Update call of loop_version.
18459         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
18460         * tree-parloops.c (gen_parallel_loop): Likewise.
18461         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
18462         * tree-ssa-loop-split.c (split_loop): Likewise.
18463         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
18464         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
18466 2017-02-05  Martin Liska  <mliska@suse.cz>
18468         PR bootstrap/78985
18469         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
18470         variable to NULL.
18471         (print_operand_address): Initialize a struct to zero.
18473 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
18475         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
18476         garbage collector only in textual form.
18478 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
18480         * doc/extend.texi (x86 specific memory model extensions for
18481         transactional memory): Simplify a phrase.
18483 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
18485         PR target/79353
18486         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
18487         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
18488         (atomic_storedi_1): Likewise.
18490 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
18492         PR tree-optimization/79338
18493         * tree-parloops.c (gather_scalar_reductions): Don't call
18494         vect_analyze_loop_form for loop->inner before destroying loop's
18495         loop_vinfo.
18497 2017-02-03  Martin Sebor  <msebor@redhat.com>
18499         PR tree-optimization/79327
18500         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
18501         when precision has resulted in leading zeros.
18502         (format_integer): Adjust the likely counter to assume an unknown
18503         argument that may be zero is non-zero.
18505 2017-02-03  Jason Merrill  <jason@redhat.com>
18507         PR c++/78689
18508         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
18509         avoid copying non-taken branch.
18511 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
18513         PR tree-optimization/79340
18514         * tree-vect-loop.c (vectorizable_reduction): Release
18515         vec_defs elements after safe_splicing them into other vectors.
18516         Formatting fixes.
18518         PR tree-optimization/79327
18519         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
18520         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
18521         dirtype.
18522         (format_integer): Use wide_int_to_tree instead of build_int_cst
18523         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
18524         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
18525         of shortest and longest sequence.
18527 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
18529         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
18530         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
18532 2017-02-03  Walter Lee  <walt@tilera.com>
18534         PR target/78862
18535         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
18536         after initial stackframe link reg save.
18537         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
18539 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
18541         PR target/79354
18542         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
18543         wu for stxssp alternative.
18545 2017-02-03  Martin Sebor  <msebor@redhat.com>
18547         PR tree-optimization/79352
18548         * gimple-fold.c (get_range_strlen): Add argument.
18549         (get_range_strlen): Change return type to bool.
18550         (get_maxval_strlen): Pass in a dummy argument.
18551         * gimple-fold.h (get_range_strlen): Change return type to bool.
18552         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
18553         * tree.h (array_at_struct_end_p): Add argument.
18554         * tree.c (array_at_struct_end_p): Handle it.
18556 2017-02-03  Martin Liska  <mliska@suse.cz>
18558         PR lto/66295
18559         * multiple_target.c (create_dispatcher_calls): Redirect edge
18560         from a caller of a dispatcher.
18561         (expand_target_clones): Make the clones local.
18562         (ipa_target_clone): Do both target clones and resolvers.
18563         (ipa_dispatcher_calls): Remove the pass.
18564         (pass_dispatcher_calls::gate): Likewise.
18565         (make_pass_dispatcher_calls): Likewise.
18566         * passes.def (pass_target_clone): Put as very first IPA early
18567         pass.
18569 2017-02-03  Martin Liska  <mliska@suse.cz>
18571         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
18572         in case of a function with ifunc attribute.
18574 2017-02-03  Martin Liska  <mliska@suse.cz>
18576         * cgraph.c (cgraph_node::dump): Dump function version info.
18577         * symtab.c (symtab_node::dump_base): Add missing new line.
18579 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
18581         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
18582         (ifcombine_ifandif): Use it.
18584 2017-02-03  Martin Liska  <mliska@suse.cz>
18586         * doc/invoke.texi: Document default value for
18587         use-after-scope-direct-emission-threshold.
18589 2017-02-03  Martin Liska  <mliska@suse.cz>
18591         PR tree-optimization/79339
18592         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
18593         (format_floating): Likewise.
18595 2017-02-03  Martin Liska  <mliska@suse.cz>
18597         PR ipa/79337
18598         * ipa-prop.c (ipa_node_params_t::insert): Remove current
18599         implementation.
18600         (ipa_node_params_t::remove): Likewise.
18601         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
18602         initialization from removed ipa_node_params_t::insert.
18603         (ipa_node_params::~ipa_node_params): Move from removed
18604         ipa_node_params_t::release.
18605         * symbol-summary.h (symbol_summary::m_released): New member.
18606         Do not release a summary twice.  Do not allow to call finalizer
18607         for types of a summary that live in GGC memory.
18609 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
18611         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
18612         cmp_branch fusion.
18614 2017-02-02  Martin Sebor  <msebor@redhat.com>
18616         PR middle-end/79275
18617         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
18618         (format_string): Tighten up the range of output for non-constant
18619         strings and correct the expected range for wide non-constant strings.
18621 2017-02-02  Martin Sebor  <msebor@redhat.com>
18623         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
18625         PR middle-end/32003
18626         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
18627         index.
18628         (-fdump-tree-@var): Add to index and document how to come up
18629         with pass-specific option and dump file names.
18630         (-fdump-passes): Clarify where to look for output.
18632 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
18634         PR middle-end/77445
18635         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
18636         statistics of the analyzed path; allow threading for speed when
18637         any of BBs along the path are optimized for speed.
18639 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
18641         PR middle-end/78468
18642         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
18643         settings of the virtual registers.
18645         Revert again
18646         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18648         * explow.c (get_dynamic_stack_size): Take known alignment of stack
18649         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
18650         needed.
18652 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18654         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
18655         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
18657 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18659         * config/s390/s390.md: Add missing comments with the expanded
18660         mnemonics.
18661         * config/s390/vector.md: Likewise.
18662         * config/s390/vx-builtins.md: Likewise.
18664 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
18666         PR target/79197
18667         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
18668         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
18669         conditions on a single line.
18671 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18673         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
18674         __S390_VX__ to __VX__.
18676 2017-02-01  Andrew Pinski  <apinski@cavium.com>
18678         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
18679         stmt_info to record_stmt_cost.
18680         (vect_get_known_peeling_cost): Pass stmt_info if known to
18681         record_stmt_cost.
18682         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
18683         cpu_vector_cost field into
18684         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
18685         field into vec_int_stmt_cost and vec_fp_stmt_cost.
18686         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
18687         splitting of scalar_stmt_cost and vec_stmt_cost.
18688         (thunderx_vector_cost): Likewise.
18689         (cortexa57_vector_cost): LIkewise.
18690         (exynosm1_vector_cost): Likewise.
18691         (xgene1_vector_cost): Likewise.
18692         (thunderx2t99_vector_cost): Improve after the splitting of the two
18693         fields.
18694         (aarch64_builtin_vectorization_cost): Update for the splitting of
18695         scalar_stmt_cost and vec_stmt_cost.
18697 2017-02-01  Torvald Riegel  <triegel@redhat.com>
18698             Richard Henderson  <rth@redhat.com>
18700         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
18701         conditional on existance of a fast atomic load.
18702         * optabs-query.c (can_atomic_load_p): New function.
18703         * optabs-query.h (can_atomic_load_p): Declare it.
18704         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
18705         no fast atomic load is available for the particular size of access.
18706         (expand_atomic_compare_and_swap): Likewise.
18707         (expand_atomic_load): Likewise.
18708         (expand_atomic_store): Likewise.
18709         (expand_atomic_fetch_op): Likewise.
18710         * testsuite/lib/target-supports.exp
18711         (check_effective_target_sync_int_128): Remove x86 because it provides
18712         no fast atomic load.
18713         (check_effective_target_sync_int_128_runtime): Likewise.
18715 2017-02-01  Richard Biener  <rguenther@suse.de>
18717         * graphite.c: Include tree-vectorizer.h for find_loop_location.
18718         (graphite_transform_loops): Provide opt-info for optimized nests.
18719         * tree-parloop.c (parallelize_loops): Provide opt-info for
18720         parallelized loops.
18722 2017-02-01  Richard Biener  <rguenther@suse.de>
18724         PR middle-end/79315
18725         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
18726         was not set before.
18728 2017-02-01  Richard Biener  <rguenther@suse.de>
18730         PR tree-optimization/71824
18731         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
18732         Verify the loops are valid in the merged SESE region.
18733         (scop_detection::can_represent_loop_1): Check analyzing the
18734         evolution of the number of iterations in the region succeeds.
18736 2017-01-31  Ian Lance Taylor  <iant@golang.org>
18738         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
18739         REG_ARGS_SIZE note to 32-bit push insns and call insn.
18741 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
18743         PR preprocessor/79210
18744         * input.c (get_substring_ranges_for_loc): Replace line_width
18745         assertion with error-handling.
18747 2017-01-31  Richard Biener  <rguenther@suse.de>
18749         PR tree-optimization/77318
18750         * graphite-sese-to-poly.c (extract_affine): Fix assert.
18751         (create_pw_aff_from_tree): Take loop parameter.
18752         (add_condition_to_pbb): Pass loop of the condition to
18753         create_pw_aff_from_tree.
18755 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
18757         * config/s390/s390.c (s390_asan_shadow_offset): New function.
18758         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
18760 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
18762         PR target/78597
18763         PR target/79038
18764         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
18765         no longer used.
18766         (convert_int_to_float128): Likewise.
18767         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
18768         (convert_int_to_float128): Likewise.
18769         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
18770         (UNSPEC_IEEE128_CONVERT): Likewise.
18771         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
18772         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
18773         Use local variables for IBM extended format.
18774         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
18775         (fix_trunc<mode>si2_fprs): Likewise.
18776         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
18777         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
18778         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
18779         to know that we can now have integers of all sizes in vector
18780         registers.
18781         (fix<uns>_<mode>di2_hw): Likewise.
18782         (float<uns>_<mode>si2_hw): Likewise.
18783         (fix_<mode>si2_hw): Likewise.
18784         (fixuns_<mode>si2_hw): Likewise.
18785         (float<uns>_<mode>di2_hw): Likewise.
18786         (float_<mode>di2_hw): Likewise.
18787         (float_<mode>si2_hw): Likewise.
18788         (floatuns_<mode>di2_hw): Likewise.
18789         (floatuns_<mode>si2_hw): Likewise.
18790         (xscvqp<su>wz_<mode>): Delete, no longer used.
18791         (xscvqp<su>dz_<mode>): Likewise.
18792         (xscv<su>dqp_<mode>): Likewise.
18793         (ieee128_mfvsrd_64bit): Likewise.
18794         (ieee128_mfvsrd_32bit): Likewise.
18795         (ieee128_mfvsrwz): Likewise.
18796         (ieee128_mtvsrw): Likewise.
18797         (ieee128_mtvsrd_64bit): Likewise.
18798         (ieee128_mtvsrd_32bit): Likewise.
18800 2017-01-31  Martin Liska  <mliska@suse.cz>
18802         PR ipa/79285
18803         * ipa-prop.c (ipa_free_all_node_params): Call release method
18804         instead of ~sumbol_summary to not to trigger double times
18805         dtor of hash_map.
18807 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
18809         PR tree-optimization/71691
18810         * bitmap.h (class auto_bitmap): New.
18811         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
18812         is_maybe_undefined instead of ssa_undefined_value_p.
18814 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18816         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
18817         __S390_ARCH_LEVEL__ to __ARCH__.
18819 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
18821         PR tree-optimization/79267
18822         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
18823         if should_remove_lhs_p is true.
18825 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
18827         PR debug/63238
18828         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
18829         (add_alignment_attribute): New.
18830         (base_type_die): Add alignment attribute.
18831         (subrange_type_die): Likewise.
18832         (modified_type_die): Likewise.
18833         (gen_array_type_die): Likewise.
18834         (gen_descr_array_type_die: Likewise.
18835         (gen_enumeration_type_die): Likewise.
18836         (gen_subprogram_die): Likewise.
18837         (gen_variable_die): Likewise.
18838         (gen_field_die): Likewise.
18839         (gen_ptr_to_mbr_type_die): Likewise.
18840         (gen_struct_or_union_type_die): Likewise.
18841         (gen_subroutine_type_die): Likewise.
18842         (gen_typedef_die): Likewise.
18843         (base_type_cmp): Compare alignment attribute.
18845 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
18847         PR target/79170
18848         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
18849         (setb_unsigned) New pattern for setb with CCUNS.
18850         * config/rs6000/rs6000.c (expand_block_compare): Use a different
18851         subfc./subfe sequence to avoid overflow problems.  Generate a
18852         shorter sequence with cmpld/setb for power9.
18853         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
18854         for generating subfc. instruction.
18855         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
18856         now uses this instruction.
18858 2017-01-30  Ian Lance Taylor  <iant@google.com>
18860         PR debug/79289
18861         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
18862         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
18864 2017-01-30  Martin Sebor  <msebor@redhat.com>
18866         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
18867         Move constant to the right of a relational operator.
18868         (get_mpfr_format_length, format_character, format_string): Ditto.
18869         (should_warn_p, maybe_warn): Same.
18871         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
18873 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
18875         PR lto/79061
18876         * asan.c (get_translation_unit_decl): Remove function.
18877         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
18879 2017-01-30  Martin Liska  <mliska@suse.cz>
18881         PR gcov-profile/79259
18882         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
18883         -fprofile-generate.
18885 2017-01-30  Martin Liska  <mliska@suse.cz>
18887         PR bootstrap/78985
18888         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
18889         Initialize variables with NULL value.
18891 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
18893         PR target/79260
18894         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
18895         tm_p_file.
18896         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
18898 2017-01-30  Richard Biener  <rguenther@suse.de>
18900         PR tree-optimization/79276
18901         * tree-vrp.c (process_assert_insertions): Properly adjust common
18902         when removing a duplicate.
18904         * gcc.dg/torture/pr79276.c: New testcase.
18906 2017-01-30  Richard Biener  <rguenther@suse.de>
18908         PR tree-optimization/79256
18909         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
18910         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
18911         alignment on TYPE.
18912         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
18914 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
18916         PR target/79240
18917         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
18918         ("*r<noxa>sbg_<mode>_sll_bitmask")
18919         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
18920         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
18921         Use contiguous_bitmask_nowrap_operand.
18923 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18925         PR target/79268
18926         * config/rs6000/altivec.h (vec_xl): Revise #define.
18927         (vec_xst): Likewise.
18929 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
18931         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
18933 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
18935         PR rtl-optimization/79194
18936         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
18937         traps before call to bypass_conditional_jumps.
18939 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
18941         PR tree-optimization/71374
18942         * lra-constraints.c (check_conflict_input_operands): New.
18943         (match_reload): Use it.
18945 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
18947         PR target/79131
18948         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
18949         account to calculate conflict_set.
18951 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
18953         PR rtl-optimization/78559
18954         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
18955         other_insn in combine.
18957 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
18959         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
18960         uint16_type_node for BT_UINT16.
18962 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
18964         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
18965         "RTL Tests" to menu.
18966         (GIMPLE Tests): New node.
18967         (RTL Tests): New node.
18969 2017-01-27  Richard Biener  <rguenther@suse.de>
18971         PR tree-optimization/79245
18972         * tree-loop-distribution.c (distribute_loop): Apply cost
18973         modeling also to detected patterns.
18975 2017-01-27  Richard Biener  <rguenther@suse.de>
18977         PR tree-optimization/71433
18978         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
18979         (compare_assert_loc): New function.
18980         (process_assert_insertions): Sort and optimize assert locations
18981         to remove duplicates and push down identical assertions on
18982         edges to their destination block.
18984 2017-01-27  Richard Biener  <rguenther@suse.de>
18986         PR tree-optimization/79244
18987         * tree-vrp.c (remove_range_assertions): Forcefully propagate
18988         out SSA names even if abnormal.
18990 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
18992         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
18993         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
18994         instead of MPFR_RNDN.
18996 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
18998         PR target/79239
18999         * arm.c (arm_option_override): Don't call build_target_option_node
19000         until after doing all option overrides.
19001         (arm_valid_target_attribute_tree): Likewise.
19003 2017-01-27  Martin Liska  <mliska@suse.cz>
19005         * doc/invoke.texi (-fprofile-arcs): Document profiling support
19006         for {cd}tors and C++ {cd}tors.
19008 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19010         * config/s390/s390.md ("*setmem_long_and")
19011         ("*setmem_long_and_31z"): Use zero_extend instead of and.
19013 2017-01-26  Martin Sebor  <msebor@redhat.com>
19015         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
19016         of precision.
19018 2017-01-26  Martin Sebor  <msebor@redhat.com>
19020         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
19021         HAVE_DFmode before using XFmode or DFmode.
19022         (parse_directive): Avoid using the z length modifier to avoid
19023         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
19025         PR middle-end/78703
19026         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
19027         to accept adjustment as an array.
19028         (get_int_range): New function.
19029         (struct directive): Make width and prec arrays.
19030         (directive::set_width, directive::set_precision): Call get_int_range.
19031         (format_integer, format_floating): Handle width and precision ranges.
19032         (format_string, parse_directive): Same.
19034 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
19036         PR debug/79129
19037         * dwarf2out.c (generate_skeleton_bottom_up): For children with
19038         comdat_type_p set, just clone them, but keep the children in the
19039         original DIE.
19041         PR debug/78835
19042         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
19043         which have direct callers with -fvar-tracking-assignments enabled
19044         in the current TU.
19045         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
19046         inside of type units.
19048 2017-01-26  Martin Sebor  <msebor@redhat.com>
19050         PR middle-end/78703
19051         * gimple-ssa-sprintf.c (struct result_range): Add likely and
19052         unlikely counters.
19053         (struct format_result): Replace number_chars, number_chars_min,
19054         and number_chars_max with a single member of struct result_range.
19055         Remove bounded.
19056         (format_result::operator+=): Adjust.
19057         (struct fmtresult): Remove bounded.  Handle likely and unlikely
19058         counters.
19059         (fmtresult::adjust_for_width_or_precision): New function.
19060         (fmtresult:type_max_digits): New function.
19061         (bytes_remaining): Handle likely and unlikely counters.
19062         (min_bytes_remaining): Remove.
19063         (format_percent): Simplify.
19064         (format_integer, format_floating): Set likely and unlikely counters.
19065         (get_string_length, format_character, format_string): Same.
19066         (format_plain, should_warn_p): New function.
19067         (maybe_warn): Call should_warn_p.  Update diagnostic messages
19068         and handle those for all directives, including plain strings.
19069         (format_directive): Handle likely and unlikely counters.
19070         Remove unnecessary quoting from diagnostics.  Add an informational
19071         note.
19072         (add_bytes): Remove.
19073         (pass_sprintf_length::compute_format_length): Simplify.
19074         (try_substitute_return_value): Handle likely and unlikely counters.
19076 2017-01-26  Carl Love  <cel@us.ibm.com>
19078         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
19079         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
19081 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
19083         PR target/79131
19084         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
19085         endianess for subregs into account.
19086         * lra-constraints.c (lra_constraints): Do risky transformations
19087         always on the first iteration.
19088         * lra-lives.c (check_pseudos_live_through_calls): Add arg
19089         last_call_used_reg_set.
19090         (process_bb_lives): Define and use last_call_used_reg_set.
19091         * lra.c (lra): Always continue after lra_constraints on the first
19092         iteration.
19094 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
19096         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
19097         constant.
19098         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
19100 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
19102         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
19103         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
19104         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
19105         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
19106         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
19107         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
19108         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
19109         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
19110         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
19112 2017-01-26  Marek Polacek  <polacek@redhat.com>
19114         PR c/79199
19115         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
19116         for the third operand.
19118 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
19120         PR middle-end/79236
19121         * omp-low.c (struct omp_context): Add simt_stmt field.
19122         (scan_omp_for): Return omp_context *.
19123         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
19124         context to the _simt_ SIMD stmt.
19125         (lower_omp_for): For combined SIMD with sibling _simt_
19126         SIMD, make sure to use the same decls in _looptemp_
19127         clauses as in the sibling.
19129 2017-01-26  David Sherwood  <david.sherwood@arm.com>
19131         PR middle-end/79212
19132         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
19133         all contexts.
19135 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
19137         PR target/70465
19138         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
19139         emit fld b; fld a; if possible.
19141         * brig-builtins.def: Update copyright years.
19142         * config/arm/arm_acle_builtins.def: Update copyright years.
19144 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
19146         PR target/79179
19147         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
19148         constraint instead of o for the stxsd instruction.
19150 2017-01-25  Carl Love  <cel@us.ibm.com>
19152         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
19153         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
19155 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
19157         * doc/invoke.texi (C++ Dialect Options): Fix typo.
19159 2017-01-25  Richard Biener  <rguenther@suse.de>
19161         PR tree-optimization/69264
19162         * target.def (vector_alignment_reachable): Improve documentation.
19163         * doc/tm.texi: Regenerate.
19164         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
19165         and add a comment.
19166         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
19167         earlier changes with respect to TYPE_USER_ALIGN.
19168         (vector_alignment_reachable_p): Likewise.  Improve dumping.
19170 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19172         PR target/79145
19173         * config/arm/arm.md (xordi3): Force constant operand into a register
19174         for TARGET_IWMMXT.
19176 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19178         * doc/invoke.texi (-fstore-merging): Correct default optimization
19179         levels at which it is enabled.
19180         (-O): Move -fstore-merging from list to...
19181         (-O2): ... Here.
19183 2017-01-25  Richard Biener  <rguenther@suse.de>
19185         PR debug/78363
19186         * omp-expand.c: Include debug.h.
19187         (expand_omp_taskreg): Make sure to generate early debug before
19188         outlining anything from a function.
19189         (expand_omp_target): Likewise.
19190         (grid_expand_target_grid_body): Likewise.
19192 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
19194         PR lto/79061
19195         * asan.c (get_translation_unit_decl): New function.
19196         (asan_add_global): Extract modules file name from globals
19197         TRANSLATION_UNIT_DECL name.
19199 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
19201         PR target/77439
19202         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
19203         for long calls with APCS frame and VFP.
19205 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
19207         * cfg.c (original_copy_tables_initialized_p): New function.
19208         * cfg.h (original_copy_tables_initialized_p): New decl.
19209         * cfgrtl.c (relink_block_chain): Guard the call to
19210         free_original_copy_tables with a call to
19211         original_copy_tables_initialized_p.
19212         * cgraph.h (symtab_node::native_rtl_p): New decl.
19213         * cgraphunit.c (symtab_node::native_rtl_p): New function.
19214         (symtab_node::needed_p): Don't assert for early assembly output
19215         for __RTL functions.
19216         (cgraph_node::finalize_function): Set "force_output" for __RTL
19217         functions.
19218         (cgraph_node::analyze): Bail out early for __RTL functions.
19219         (analyze_functions): Update assertion to support __RTL functions.
19220         (cgraph_node::expand): Bail out early for __RTL functions.
19221         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
19222         __RTL functions.
19223         * function.h (struct function): Update comment for field
19224         "pass_startwith".
19225         * gimple-expr.c: Include "tree-pass.h".
19226         (gimple_has_body_p): Return false for __RTL functions.
19227         * Makefile.in (OBJS): Add run-rtl-passes.o.
19228         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
19229         accessor.
19230         (gcc::pass_manager::get_clean_slate): New accessor.
19231         * passes.c: Include "insn-addr.h".
19232         (should_skip_pass_p): Add logging.  Update logic for running
19233         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
19234         property-provider override so it is only done for gimple passes.
19235         Don't skip dfinit.
19236         (skip_pass): New function.
19237         (execute_one_pass): Call skip_pass when skipping passes.
19238         * read-md.c (md_reader::read_char): Support filtering
19239         the input to a subset of line numbers.
19240         (md_reader::md_reader): Initialize fields
19241         m_first_line and m_last_line.
19242         (md_reader::read_file_fragment): New function.
19243         * read-md.h (md_reader::read_file_fragment): New decl.
19244         (md_reader::m_first_line): New field.
19245         (md_reader::m_last_line): New field.
19246         * read-rtl-function.c (function_reader::create_function): Only
19247         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
19248         curr_properties.  Set DECL_INITIAL to a dummy block.
19249         (read_rtl_function_body_from_file_range): New function.
19250         * read-rtl-function.h (read_rtl_function_body_from_file_range):
19251         New decl.
19252         * run-rtl-passes.c: New file.
19253         * run-rtl-passes.h: New file.
19255 2017-01-24  Jeff Law  <law@redhat.com>
19257         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
19258         buffer size.
19260 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
19262         PR tree-optimization/79159
19263         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
19264         (record_nonwrapping_iv): Improve boundary using above function if no
19265         value range information.
19267 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
19268             Martin Jambor  <mjambor@suse.cz>
19270         * brig-builtins.def: New file.
19271         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
19272         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
19273         (DEF_HSAIL_SAT_BUILTIN): Likewise.
19274         (DEF_HSAIL_INTR_BUILTIN): Likewise.
19275         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
19276         * builtin-types.def (BT_INT8): New.
19277         (BT_INT16): Likewise.
19278         (BT_UINT8): Likewise.
19279         (BT_UINT16): Likewise.
19280         (BT_FN_ULONG): Likewise.
19281         (BT_FN_UINT_INT): Likewise.
19282         (BT_FN_UINT_ULONG): Likewise.
19283         (BT_FN_UINT_LONG): Likewise.
19284         (BT_FN_UINT_PTR): Likewise.
19285         (BT_FN_ULONG_PTR): Likewise.
19286         (BT_FN_INT8_FLOAT): Likewise.
19287         (BT_FN_INT16_FLOAT): Likewise.
19288         (BT_FN_UINT32_FLOAT): Likewise.
19289         (BT_FN_UINT16_FLOAT): Likewise.
19290         (BT_FN_UINT8_FLOAT): Likewise.
19291         (BT_FN_UINT64_FLOAT): Likewise.
19292         (BT_FN_UINT16_UINT32): Likewise.
19293         (BT_FN_UINT32_UINT16): Likewise.
19294         (BT_FN_UINT16_UINT16_UINT16): Likewise.
19295         (BT_FN_INT_PTR_INT): Likewise.
19296         (BT_FN_UINT_PTR_UINT): Likewise.
19297         (BT_FN_LONG_PTR_LONG): Likewise.
19298         (BT_FN_ULONG_PTR_ULONG): Likewise.
19299         (BT_FN_VOID_UINT64_UINT64): Likewise.
19300         (BT_FN_UINT8_UINT8_UINT8): Likewise.
19301         (BT_FN_INT8_INT8_INT8): Likewise.
19302         (BT_FN_INT16_INT16_INT16): Likewise.
19303         (BT_FN_INT_INT_INT): Likewise.
19304         (BT_FN_UINT_FLOAT_UINT): Likewise.
19305         (BT_FN_FLOAT_UINT_UINT): Likewise.
19306         (BT_FN_ULONG_UINT_UINT): Likewise.
19307         (BT_FN_ULONG_UINT_PTR): Likewise.
19308         (BT_FN_ULONG_ULONG_ULONG): Likewise.
19309         (BT_FN_UINT_UINT_UINT): Likewise.
19310         (BT_FN_VOID_UINT_PTR): Likewise.
19311         (BT_FN_UINT_UINT_PTR: Likewise.
19312         (BT_FN_UINT32_UINT64_PTR): Likewise.
19313         (BT_FN_INT_INT_UINT_UINT): Likewise.
19314         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
19315         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
19316         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
19317         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
19318         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
19319         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
19320         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
19321         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
19322         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
19323         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
19324         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
19325         * doc/frontends.texi: List BRIG FE.
19326         * doc/install.texi (Testing): Add BRIG tesring requirements.
19327         * doc/invoke.texi (Overall Options): Mention BRIG.
19328         * doc/standards.texi (Standards): Doucment BRIG HSA version.
19330 2017-01-24  Richard Biener  <rguenther@suse.de>
19332         PR translation/79208
19333         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
19335 2017-01-24  Martin Jambor  <mjambor@suse.cz>
19337         PR bootstrap/79198
19338         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
19339         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
19340         and known_contexts.
19342 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
19344         PR middle-end/79123
19345         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
19346         casts from signed to unsigned really don't have a range.
19348 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
19350         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
19351         GMP_RNDx for compatiblity.
19353 2017-01-24  Martin Liska  <mliska@suse.cz>
19355         PR bootstrap/79132
19356         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
19357         that would prevent us to call alloca with -1 as argument.
19359 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
19361         * dwarf2out.c (output_compilation_unit_header, output_file_names):
19362         Avoid -Wformat-security warning.
19364 2017-01-23  Andrew Pinski  <apinski@cavium.com>
19366         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
19367         cost table.
19369 2017-01-23  Martin Sebor  <msebor@redhat.com>
19371         PR middle-end/78703
19372         * gimple-ssa-sprintf.c (warn_level): New global.
19373         (format_integer): Use it here and throughout the rest of the file.
19374         Use the same switch to compute sign as base.
19375         (maybe_warn): New function.
19376         (format_directive): Factor out warnings into maybe_warn.
19377         Add debugging output.  Use warn_level.
19378         (add_bytes): Use warn_level.
19379         (pass_sprintf_length::compute_format_length): Add debugging output.
19380         (try_substitute_return_value): Same.
19381         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
19383         PR middle-end/78703
19384         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
19385         (struct fmtresult, format_integer, format_floating): Adjust.
19386         (fmtresult::fmtresult): Set max correctly in two argument ctor.
19387         (get_string_length, format_string,format_directive): Same.
19388         (pass_sprintf_length::compute_format_length): Same.
19389         (try_substitute_return_value): Simplify slightly.
19391         PR middle-end/78703
19392         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
19393         (fmtresult::operator+=): Outlined.
19394         (struct fmtresult): Add ctors.
19395         (struct conversion_spec): Rename...
19396         (struct directive): ...to this.  Add and remove data members.
19397         (directive::set_width, directive::set_precision): New functions.
19398         (format_percent): Use fmtresult ctor.
19399         (get_width_and_precision): Remove.
19400         (format_integer): Make naming changes.  Avoid computing width and
19401         precision.
19402         (format_floating): Same.  Adjust indentation.
19403         (format_character, format_none): New functions.
19404         (format_string): Moved character handling to format_character.
19405         (format_directive): Remove arguments, change return type.
19406         (parse_directive): New function.
19407         (pass_sprintf_length::compute_format_length): Move directive
19408         parsing to parse_directive.
19410 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
19412         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
19413         (assign_assembler_name_if_needed): ... this.
19414         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
19415         (assign_assembler_name_if_needed): ... this.
19416         (free_lang_data_in_cgraph): Adjust callers.
19417         * cgraphunit.c (cgraph_node::analyze): Likewise.
19418         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
19419         Likewise.
19421 2017-01-23  Richard Biener  <rguenther@suse.de>
19423         PR tree-optimization/79088
19424         PR tree-optimization/79188
19425         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
19426         resetting loop bounds after last path deletion.  Reset loop
19427         bounds of the target loop, make code match the comments.
19428         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
19429         Make sure loops need no fixups.
19431 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
19433         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
19434         exponent support with double type for first argument.
19435         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
19436         type returned by __builtin_vec_extract_sig,
19437         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
19438         functions from "vector int" to "vector unsigned int" or from
19439         "vector long long int" to "vector unsigned long long int".
19440         Changed type returned by __builtin_vec_extract_exp,
19441         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
19442         functions from "vector int" to "vector unsigned int" or from
19443         "vector long long int" to "vector unsigned long long int".
19444         Changed return type of __builtin_vec_test_data_class,
19445         __builtin_vec_test_data_class_sp, and
19446         __builtin_vec_test_data_class_dp from "vector int" to
19447         "vector bool int" or from "vector long long int" to "vector bool
19448         long long int" and changed second argument type from "unsigned
19449         int" to "int".  Added new overloaded function forms "vector float
19450         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
19451         "vector float __builtin_vec_insert_exp_sp (vector float, vector
19452         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
19453         double, vector unsigned long long int)" and "vector double
19454         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
19455         long int)".  Changed return type of
19456         __builtin_scalar_test_data_class and
19457         __builtin_scalar_test_data_class_sp and
19458         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
19459         int" and changed second argument from "unsigned int" to "int".
19460         Changed type returned by __builtin_scalar_test_neg,
19461         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
19462         from "int" to "bool int".  Added new overloaded function form
19463         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
19464         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
19465         exponent double-precision with floating point first argument.
19466         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
19467         documentation of scalar_test_data_class, scalar_test_neg,
19468         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
19469         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
19470         vec_test_data_class built-in functions to reflect refinements in
19471         their type signatures.
19473 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
19475         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
19476         size of buf.
19477         (aarch64_elf_asm_destructor): Likewise.
19479 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
19481         PR rtl-optimization/78634
19482         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
19483         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
19484         * ifcvt.c (noce_try_cmove): Add missing cost check.
19486         PR rtl-optimization/71724
19487         * combine.c (if_then_else_cond): Look for situations where it is
19488         beneficial to undo the work of one of the recursive calls.
19490 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
19492         PR tree-optimization/70754
19493         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
19494         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
19495         combined stmt before it if not NULL.
19496         (combine_chains): Process refs reversely and compute dominance point
19497         for root ref.
19499 2017-01-23  Martin Liska  <mliska@suse.cz>
19501         PR tree-optimization/79196
19502         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
19503         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
19504         instead of memcmp.
19505         (strlen_optimize_stmt): Call the renamed function.
19507 2017-01-23  Michael Matz  <matz@suse.de>
19509         PR tree-optimization/78384
19510         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
19512 2017-01-23  Richard Biener  <rguenther@suse.de>
19514         PR tree-optimization/79186
19515         * tree-vrp.c (register_new_assert_for): Make sure we've seen
19516         both incoming edges before moving an assert.
19518 2017-01-23  Martin Jambor  <mjambor@suse.cz>
19520         * ipa-prop.c (load_from_param_1): Removed.
19521         (load_from_unmodified_param): Bits from load_from_param_1 put back
19522         here.
19523         (load_from_param): Removed.
19524         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
19525         with stmt.  Reverted back to use of load_from_unmodified_param.
19527 2017-01-23  Martin Jambor  <mjambor@suse.cz>
19529         PR ipa/79108
19530         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
19531         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
19532         field a pointer to garbage collected vector, mark lattices and
19533         ipcp_orig_node with GTY((skip)).
19534         (ipa_get_param_count): Adjust to descriptors being a pointer.
19535         (ipa_get_param): Likewise.
19536         (ipa_get_type): Likewise.
19537         (ipa_get_param_move_cost): Likewise.
19538         (ipa_set_param_used): Likewise.
19539         (ipa_get_controlled_uses): Likewise.
19540         (ipa_set_controlled_uses): Likewise.
19541         (ipa_is_param_used): Likewise.
19542         (ipa_node_params_t): Move into garbage collector.  New methods insert
19543         and remove.
19544         (ipa_node_params_sum): Annotate wth GTY(()).
19545         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
19546         garbage collected.
19547         (ipa_load_from_parm_agg): Adjust declaration.
19548         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
19549         * ipa-profile.c (ipa_profile): Likewise.
19550         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
19551         (ipa_populate_param_decls): Make descriptors parameter garbage
19552         collected.
19553         (ipa_dump_param): Adjust to descriptors being a pointer.
19554         (ipa_alloc_node_params): Likewise.
19555         (ipa_initialize_node_params): Likewise.
19556         (load_from_param_1): Make descriptors parameter garbage collected.
19557         (load_from_unmodified_param): Likewise.
19558         (load_from_param): Likewise.
19559         (ipa_load_from_parm_agg): Likewise.
19560         (ipa_node_params::~ipa_node_params): Removed.
19561         (ipa_free_all_node_params): Remove call to delete operator.
19562         (ipa_node_params_t::insert): New.
19563         (ipa_node_params_t::remove): Likewise.
19564         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
19565         copy known_csts and known_contexts vectors.
19566         (ipa_read_node_info): Adjust to descriptors being a pointer.
19567         (ipcp_modif_dom_walker): Make m_descriptors field garbage
19568         collected.
19569         (ipcp_transform_function): Make descriptors variable garbage
19570         collected.
19572 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
19574         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
19575         * config/i386/avx512dqintrin.h: Ditto.
19576         * config/i386/avx512fintrin.h: Ditto.
19577         * config/i386/i386.c: Handle new builtins.
19578         * config/i386/i386-builtin.def: Add new builtins.
19579         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
19580         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
19582 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
19583             Martin Liska  <mliska@suse.cz>
19585         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
19586         * asan.c (asan_expand_poison_ifn): Support stores and use
19587         appropriate ASAN report function.
19588         * internal-fn.c (expand_ASAN_POISON_USE): New function.
19589         * internal-fn.def (ASAN_POISON_USE): Declare.
19590         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
19591         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
19592         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
19593         ASAN_POISON calls w/o LHS.
19594         * tree-ssa.c (execute_update_addresses_taken): Create clobber
19595         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
19596         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
19597         * gimplify.c (asan_poison_variables): Add attribute
19598         use_after_scope_memory to variables that really needs to live
19599         in memory.
19600         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
19601         having the attribute.
19603 2017-01-23  Martin Liska  <mliska@suse.cz>
19605         * asan.c (create_asan_shadow_var): New function.
19606         (asan_expand_poison_ifn): Likewise.
19607         * asan.h (asan_expand_poison_ifn): New declaration.
19608         * internal-fn.c (expand_ASAN_POISON): Likewise.
19609         * internal-fn.def (ASAN_POISON): New builtin.
19610         * sanopt.c (pass_sanopt::execute): Expand
19611         asan_expand_poison_ifn.
19612         * tree-inline.c (copy_decl_for_dup_finish): Make function
19613         external.
19614         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
19615         * tree-ssa.c (is_asan_mark_p): New function.
19616         (execute_update_addresses_taken): Rewrite local variables
19617         (identified just by use-after-scope as addressable) into SSA.
19619 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
19621         * doc/install.texi (Specific): opensource.apple.com uses https
19622         now. Remove trailing slash.
19624 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
19626         * README.Portability: Remove note on an Irix compatibility issue.
19628 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
19630         * gcov.c (INCLUDE_ALGORITHM): Define.
19631         (INCLUDE_VECTOR): Define.
19632         No longer include <vector> and <algorithm> directly.
19634 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
19636         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
19637         to https.
19638         * doc/invoke.texi (Code Gen Options): Ditto.
19640 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
19642         PR lto/78407
19643         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
19645 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
19647         rtl-optimization/79125
19648         * cprop.c (local_cprop_pass): Handle cases where we make an
19649         unconditional trap.
19651 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
19653         PR target/61729
19654         PR target/77850
19655         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
19656         read from, for big endian.
19658 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
19660         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
19661         register pauth builtins for LP64 only.
19663 2017-01-20  Marek Polacek  <polacek@redhat.com>
19665         PR c/79152
19666         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
19667         non-case labels.
19669 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
19671         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
19672         of safelen status.
19673         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
19674         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
19675         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
19677 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19679         PR target/71270
19680         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
19681         in big-endian mode when they are not a single duplicated value.
19683 2017-01-20  Richard Biener  <rguenther@suse.de>
19685         * BASE-VER: Bump to 7.0.1.
19687 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
19689         * omp-low.c (omplow_simd_context): New struct.  Use it...
19690         (lower_rec_simd_input_clauses): ...here and...
19691         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
19692         references to idx, lane, max_vf, is_simt.
19694 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
19696         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
19697         mcpu=nps400.
19699 2017-01-20  Martin Jambor  <mjambor@suse.cz>
19701         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
19702         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
19703         gt-hsa-common.h.
19704         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
19705         (GTFILES): Rename hsa.c to hsa-common.c.
19706         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
19707         * hsa-dump.c: Likewise.
19708         * hsa-gen.c: Likewise.
19709         * hsa-regalloc.c: Likewise.
19710         * ipa-hsa.c: Likewise.
19711         * omp-expand.c: Likewise.
19712         * omp-low.c: Likewise.
19713         * toplev.c: Likewise.
19715 2017-01-20  Marek Polacek  <polacek@redhat.com>
19717         PR c/64279
19718         * doc/invoke.texi: Document -Wduplicated-branches.
19719         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
19720         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
19721         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
19722         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
19723         return 0 only when not OEP_LEXICOGRAPHIC.
19724         (fold_build_cleanup_point_expr): Use the expression
19725         location when building CLEANUP_POINT_EXPR.
19726         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
19727         * tree.c (add_expr): Handle error_mark_node.
19729 2017-01-20  Martin Liska  <mliska@suse.cz>
19731         PR lto/69188
19732         * tree-profile.c (init_ic_make_global_vars): Do not call
19733         finalize_decl.
19734         (gimple_init_gcov_profiler): Likewise.
19736 2017-01-20  Martin Liska  <mliska@suse.cz>
19738         PR ipa/71190
19739         * cgraph.h (maybe_create_reference): Remove argument and
19740         update comment.
19741         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
19742         argument.
19743         * ipa-cp.c (create_specialized_node): Likewise.
19744         * symtab.c (symtab_node::maybe_create_reference): Handle
19745         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
19747 2017-01-20  Martin Liska  <mliska@suse.cz>
19749         * read-rtl-function.c (function_reader::create_function): Use
19750         build_decl instread of build_decl_stat.
19752 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
19754         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
19755         * config/i386/avx512dqintrin.h: Ditto.
19756         * config/i386/avx512fintrin.h: Ditto.
19757         * config/i386/i386-builtin-types.def: Add new types.
19758         * config/i386/i386.c: Handle new types.
19759         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
19760         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
19761         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
19762         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
19763         (__builtin_ia32_kshiftridi): New.
19764         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
19766 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
19768         PR target/78875
19769         PR target/79140
19770         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
19771         define to rs6000_init_stack_protect_guard.
19772         (rs6000_init_stack_protect_guard): New function.
19774 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
19775             Yunqiang Su  <yunqiang.su@imgtec.com>
19777         * config.gcc (supported_defaults): Add madd4.
19778         (with_madd4): Add validation.
19779         (all_defaults): Add madd4.
19780         * config/mips/mips.opt (mmadd4): New option.
19781         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
19782         mmadd4.
19783         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
19784         __mips_no_madd4.
19785         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
19786         (ISA_HAS_FUSED_MADD4): Likewise.
19787         * doc/invoke.texi (-mmadd4): Document the new option.
19788         * doc/install.texi (--with-madd4): Document the new option.
19790 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
19792         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
19793         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
19794         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
19795         (aarch64_init_pauth_hint_builtins): New.
19796         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
19797         (aarch64_expand_builtin): Expand new builtins.
19799 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
19801         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
19802         * combine-stack-adj.c (no_unhandled_cfa): Handle
19803         REG_CFA_TOGGLE_RA_MANGLE.
19804         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
19805         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
19806         info for return address signing.
19807         (aarch64_expand_epilogue): Likewise.
19809 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
19811         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
19812         * config/aarch64/aarch64-protos.h
19813         (aarch64_return_address_signing_enabled): New declaration.
19814         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
19815         New function.
19816         (aarch64_expand_prologue): Sign return address before it's pushed onto
19817         stack.
19818         (aarch64_expand_epilogue): Authenticate return address fetched from
19819         stack.
19820         (aarch64_override_options): Sanity check for ILP32 and ISA level.
19821         (aarch64_attributes): New function attributes for "sign-return-address".
19822         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
19823         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
19824         ("*do_return"): Generate combined instructions according to key index.
19825         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
19826         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
19827         iterators.
19828         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
19829         * config/aarch64/aarch64.opt (msign-return-address=): New.
19830         * doc/extend.texi (AArch64 Function Attributes): Documents
19831         "sign-return-address=".
19832         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
19834 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
19836         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
19837         overall option summary.
19839 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
19841         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
19842         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
19843         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
19844         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
19846 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
19848         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
19849         -mpower9-minmax by default for -mcpu=power9.
19850         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
19851         128-bit floating point.
19853 2017-01-20  Alan Modra  <amodra@gmail.com>
19855         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
19856         optimizing for size.
19858 2017-01-20  Alan Modra  <amodra@gmail.com>
19860         PR target/79144
19861         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
19862         for strcmp and strncmp from corresponding builtin decl.
19864 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
19866         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
19867         instead of i386/rtems-64.h.
19868         * config/i386/rtems-64.h: Remove.
19870 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
19872         PR target/78478
19873         Revert:
19874         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
19876         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
19878 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
19880         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
19881         Change int to HOST_WIDE_INT.
19882         * config/aarch64/aarch64-protos.h
19883         (aarch64_simd_gen_const_vector_dup): Likewise.
19884         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
19886 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
19888         * langhooks-def.h (lhd_type_for_size): New decl.
19889         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
19890         * langhooks.c (lhd_type_for_size): New function, taken from
19891         lto_type_for_size.
19893 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
19895         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
19896         define_bypass for CR latency.
19897         (power9-cracked-alu): Update bypass latency and remove power9-branch.
19898         (power9-alu2): Add define_bypass for CR latency.
19899         (power9-cmp): New.
19900         (power9-mul): Update insn latency.
19901         (power9-mul-compare): Update insn latency, bypass latency and remove
19902         power9-branch.
19904 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19906         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
19907         Delete.
19908         * config/aarch64/aarch64.md
19909         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
19910         aarch64_nopcrelative_literal_loads.
19911         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
19913 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
19915         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
19916         TARGET_LOONGSON_3A.
19917         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
19919 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
19921         PR target/78176
19922         * config.gcc (supported_defaults): Add lxc1-sxc1.
19923         (with_lxc1_sxc1): Add validation.
19924         (all_defaults): Add lxc1-sxc1.
19925         * config/mips/mips.opt (mlxc1-sxc1): New option.
19926         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
19927         mlxc1-sxc1.
19928         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
19929         __mips_no_lxc1_sxc1.
19930         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
19931         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
19932         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
19934 2017-01-19  Richard Biener  <rguenther@suse.de>
19936         PR tree-optimization/72488
19937         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
19938         sure to restore SSA info.
19939         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
19941 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
19943         PR rtl-optimization/79121
19944         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
19945         of the inner type when shifting an extended value.
19947 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
19949         PR lto/78407
19950         * symtab.c (symtab_node::equal_address_to): Fix comparing of
19951         interposable aliases.
19953 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
19955         PR target/78516
19956         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
19957         Use the evmergelohi instruction.
19958         (mov_si<mode>_e500_subreg4_2_le): Likewise.
19959         (mov_sitf_e500_subreg8_2_be): Likewise.
19960         (mov_sitf_e500_subreg12_2_le): Likewise.
19961         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
19962         (mov_si<mode>_e500_subreg4_2_be): Likewise.
19963         (mov_sitf_e500_subreg8_2_le): Likewise.
19964         (mov_sitf_e500_subreg12_2_be): Likewise.
19966 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19968         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
19969         attribute from vecsimple to vecperm.
19970         (altivec_vbpermq2): Likewise.
19972 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19974         PR target/79040
19975         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
19977 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
19978         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
19979         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
19980         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
19981         case where N arg is SIZE_MAX.
19982         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
19983         (cmpstrsi): Add pattern.
19985 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
19987         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19988         __builtin_vec_revb builtins.
19989         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
19990         built-in functions to support generation of the ISA 3.0 XXBR<x>
19991         vector byte reverse instructions.
19992         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
19993         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
19994         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
19995         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
19996         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
19997         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
19998         (P9V_BUILTIN_VEC_REVB): Likewise.
19999         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
20000         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
20001         (p9_xxbrq_v16qi): Likewise.
20002         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
20003         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
20004         (p9_xxbrh_v8hi): Likewise.
20005         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
20006         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
20007         vec_revb built-in functions.
20009 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
20011         PR rtl-optimization/78952
20012         * config/i386/i386.md (any_extract): New code iterator.
20013         (*insvqi_2): Use any_extract for source operand.
20014         (*insvqi_3): Use any_shiftrt for source operand.
20016 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
20018         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
20019         New function.
20020         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
20022 2017-01-18  Matthias Klose  <doko@ubuntu.com>
20024         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
20026 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20028         * config/rs6000/altivec.h (vec_bperm): Change #define.
20029         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
20030         (altivec_vbpermq2): New define_insn.
20031         (altivec_vbpermd): Likewise.
20032         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
20033         function interface.
20034         (VBPERMD): Likewise.
20035         (VBPERM): New polymorphic function interface.
20036         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
20037         Add entries for P9V_BUILTIN_VEC_VBPERM.
20038         * doc/extend.texi: Add interfaces for vec_bperm.
20040 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20042         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
20043         first letter of error messages.
20044         (s390_resolve_overloaded_builtin): Likewise.
20045         * config/s390/s390.c (s390_expand_builtin): Likewise.
20046         (s390_invalid_arg_for_unprototyped_fn): Likewise.
20047         (s390_valid_target_attribute_inner_p): Likewise.
20048         * config/s390/s390.md ("tabort"): Likewise.
20050 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
20052         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
20053         (ISA_AVOID_DIV_HILO): New macro.
20054         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
20055         (ISA_HAS_DDIV): Likewise.
20057 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
20059         * doc/invoke.texi (fabi-version): Correct number of occurrences.
20061 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
20063         * doc/invoke.texi (fabi-version): Spelling fix.
20065 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
20067         PR c++/70182
20068         * doc/invoke.texi (fabi-version): Mention mangling fix for
20069         operator names.
20071 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
20073         PR c++/77489
20074         * doc/invoke.texi (fabi-version): Document discriminator mangling.
20076 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
20078         PR target/78875
20079         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
20080         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
20081         the new options.
20082         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
20083         flexible settings.
20084         (stack_protect_test): Ditto.
20085         * config/rs6000/rs6000.opt (mstack-protector-guard=,
20086         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
20087         options.
20088         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
20089         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
20090         -mstack-protector-guard-offset=.
20091         (RS/6000 and PowerPC Options): Ditto.
20093 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
20095         * config/i386/i386.h (MASK_CLASS_P): New define.
20096         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
20097         there are no registers from different register sets also when
20098         mask registers are used.  Update function comment.
20099         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
20100         to (*k/*r) and (*k/*km) alternatives.
20102 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
20104         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
20105         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
20106         (EH_RETURN_HANDLER_RTX): New define.
20107         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
20108         Force frame pointer in EH return functions.
20109         (aarch64_expand_epilogue): Add barrier for eh_return.
20110         (aarch64_final_eh_return_addr): Remove.
20111         (aarch64_eh_return_handler_rtx): New function.
20112         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
20113         Remove.
20114         (aarch64_eh_return_handler_rtx): New prototype.
20116 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20118         * config/rs6000/altivec.h (vec_rlmi): New #define.
20119         (vec_vrlnm): Likewise.
20120         (vec_rlnm): Likewise.
20121         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
20122         (UNSPEC_VRLNM): Likewise.
20123         (VIlong): New mode iterator.
20124         (altivec_vrl<VI_char>mi): New define_insn.
20125         (altivec_vrl<VI_char>nm): Likewise.
20126         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
20127         function entry.
20128         (VRLDNM): Likewise.
20129         (RLNM): New polymorphic function entry.
20130         (VRLWMI): New monomorphic function entry.
20131         (VRLDMI): Likewise.
20132         (RLMI): New polymorphic function entry.
20133         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
20134         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
20135         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
20136         vec_vrlnm.
20138 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
20140         PR debug/78839
20141         * dwarf2out.c (field_byte_offset): Restore the
20142         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
20143         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
20144         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
20145         of build2 + fold.
20147 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
20149         PR ada/67205
20150         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
20152 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
20154         PR debug/71669
20155         * dwarf2out.c (add_data_member_location_attribute): For constant
20156         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
20157         instead of DW_AT_data_member_location, DW_AT_bit_offset and
20158         DW_AT_byte_size attributes.
20160 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
20162         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
20163         after forcing to constant memory when the code model is medium.
20165 2017-01-17  Julia Koval  <julia.koval@intel.com>
20167         PR target/76731
20168         * config/i386/avx512fintrin.h
20169         (_mm512_i32gather_ps): Change __addr type to void const*.
20170         (_mm512_mask_i32gather_ps): Ditto.
20171         (_mm512_i32gather_pd): Ditto.
20172         (_mm512_mask_i32gather_pd): Ditto.
20173         (_mm512_i64gather_ps): Ditto.
20174         (_mm512_mask_i64gather_ps): Ditto.
20175         (_mm512_i64gather_pd): Ditto.
20176         (_mm512_mask_i64gather_pd): Ditto.
20177         (_mm512_i32gather_epi32): Ditto.
20178         (_mm512_mask_i32gather_epi32): Ditto.
20179         (_mm512_i32gather_epi64): Ditto.
20180         (_mm512_mask_i32gather_epi64): Ditto.
20181         (_mm512_i64gather_epi32): Ditto.
20182         (_mm512_mask_i64gather_epi32): Ditto.
20183         (_mm512_i64gather_epi64): Ditto.
20184         (_mm512_mask_i64gather_epi64): Ditto.
20185         (_mm512_i32scatter_ps): Change __addr type to void*.
20186         (_mm512_mask_i32scatter_ps): Ditto.
20187         (_mm512_i32scatter_pd): Ditto.
20188         (_mm512_mask_i32scatter_pd): Ditto.
20189         (_mm512_i64scatter_ps): Ditto.
20190         (_mm512_mask_i64scatter_ps): Ditto.
20191         (_mm512_i64scatter_pd): Ditto.
20192         (_mm512_mask_i64scatter_pd): Ditto.
20193         (_mm512_i32scatter_epi32): Ditto.
20194         (_mm512_mask_i32scatter_epi32): Ditto.
20195         (_mm512_i32scatter_epi64): Ditto.
20196         (_mm512_mask_i32scatter_epi64): Ditto.
20197         (_mm512_i64scatter_epi32): Ditto.
20198         (_mm512_mask_i64scatter_epi32): Ditto.
20199         (_mm512_i64scatter_epi64): Ditto.
20200         (_mm512_mask_i64scatter_epi64): Ditto.
20201         * config/i386/avx512pfintrin.h
20202         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
20203         (_mm512_mask_prefetch_i32gather_ps): Ditto.
20204         (_mm512_mask_prefetch_i64gather_pd): Ditto.
20205         (_mm512_mask_prefetch_i64gather_ps): Ditto.
20206         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
20207         (_mm512_prefetch_i32scatter_ps): Ditto.
20208         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
20209         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
20210         (_mm512_prefetch_i64scatter_pd): Ditto.
20211         (_mm512_prefetch_i64scatter_ps): Ditto.
20212         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
20213         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
20214         * config/i386/avx512vlintrin.h
20215         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
20216         (_mm_mmask_i32gather_ps): Ditto.
20217         (_mm256_mmask_i32gather_pd): Ditto.
20218         (_mm_mmask_i32gather_pd): Ditto.
20219         (_mm256_mmask_i64gather_ps): Ditto.
20220         (_mm_mmask_i64gather_ps): Ditto.
20221         (_mm256_mmask_i64gather_pd): Ditto.
20222         (_mm_mmask_i64gather_pd): Ditto.
20223         (_mm256_mmask_i32gather_epi32): Ditto.
20224         (_mm_mmask_i32gather_epi32): Ditto.
20225         (_mm256_mmask_i32gather_epi64): Ditto.
20226         (_mm_mmask_i32gather_epi64): Ditto.
20227         (_mm256_mmask_i64gather_epi32): Ditto.
20228         (_mm_mmask_i64gather_epi32): Ditto.
20229         (_mm256_mmask_i64gather_epi64): Ditto.
20230         (_mm_mmask_i64gather_epi64): Ditto.
20231         (_mm256_i32scatter_ps): Change __addr type to void*.
20232         (_mm256_mask_i32scatter_ps): Ditto.
20233         (_mm_i32scatter_ps): Ditto.
20234         (_mm_mask_i32scatter_ps): Ditto.
20235         (_mm256_i32scatter_pd): Ditto.
20236         (_mm256_mask_i32scatter_pd): Ditto.
20237         (_mm_i32scatter_pd): Ditto.
20238         (_mm_mask_i32scatter_pd): Ditto.
20239         (_mm256_i64scatter_ps): Ditto.
20240         (_mm256_mask_i64scatter_ps): Ditto.
20241         (_mm_i64scatter_ps): Ditto.
20242         (_mm_mask_i64scatter_ps): Ditto.
20243         (_mm256_i64scatter_pd): Ditto.
20244         (_mm256_mask_i64scatter_pd): Ditto.
20245         (_mm_i64scatter_pd): Ditto.
20246         (_mm_mask_i64scatter_pd): Ditto.
20247         (_mm256_i32scatter_epi32): Ditto.
20248         (_mm256_mask_i32scatter_epi32): Ditto.
20249         (_mm_i32scatter_epi32): Ditto.
20250         (_mm_mask_i32scatter_epi32): Ditto.
20251         (_mm256_i32scatter_epi64): Ditto.
20252         (_mm256_mask_i32scatter_epi64): Ditto.
20253         (_mm_i32scatter_epi64): Ditto.
20254         (_mm_mask_i32scatter_epi64): Ditto.
20255         (_mm256_i64scatter_epi32): Ditto.
20256         (_mm256_mask_i64scatter_epi32): Ditto.
20257         (_mm_i64scatter_epi32): Ditto.
20258         (_mm_mask_i64scatter_epi32): Ditto.
20259         (_mm256_i64scatter_epi64): Ditto.
20260         (_mm256_mask_i64scatter_epi64): Ditto.
20261         (_mm_i64scatter_epi64): Ditto.
20262         (_mm_mask_i64scatter_epi64): Ditto.
20263         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
20264         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
20265         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
20266         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
20267         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
20268         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
20269         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
20270         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
20271         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
20272         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
20273         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
20274         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
20275         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
20276         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
20277         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
20278         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
20279         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
20280         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
20281         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
20282         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
20283         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
20284         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
20285         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
20286         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
20287         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
20288         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
20289         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
20290         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
20291         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
20292         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
20293         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
20294         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
20295         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
20296         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
20297         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
20298         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
20299         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
20300         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
20301         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
20302         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
20303         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
20304         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
20305         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
20306         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
20307         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
20308         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
20309         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
20310         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
20311         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
20312         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
20313         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
20314         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
20315         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
20316         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
20317         definitions accordingly.
20319 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
20320             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
20322         PR target/79079
20323         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
20324         gen_lowpart.
20326 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
20328         PR target/79058
20329         * ira-conflicts.c (ira_build_conflicts): Update total conflict
20330         hard regs for inner regno.
20332 2017-01-17  Martin Liska  <mliska@suse.cz>
20334         PR ipa/71207
20335         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
20336         assumption and add comment.
20338 2017-01-17  Nathan Sidwell  <nathan@acm.org>
20340         * ipa-visibility.c (localize_node): New function, broken out of ...
20341         (function_and_variable_visibility): ... here. Call it.
20343 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
20345         PR middle-end/77445
20346         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
20347         correctly set frequency of oudgoing edge.
20348         (duplicate_thread_path): Fix profile updating.
20350 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
20352         PR other/79046
20353         * configure.ac: Add GCC_BASE_VER.
20354         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
20355         version from BASE-VER file.
20356         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
20357         (gcc.o): Depend on $(BASEVER).
20358         * common.opt (dumpfullversion): New option.
20359         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
20360         * doc/invoke.texi: Document -dumpfullversion.
20361         * doc/install.texi: Document --with-gcc-major-version-only.
20362         * configure: Regenerated.
20364 2017-01-17  Richard Biener  <rguenther@suse.de>
20366         PR tree-optimization/71433
20367         * tree-vrp.c (register_new_assert_for): Merge same asserts
20368         on all incoming edges.
20369         (process_assert_insertions_for): Handle insertions at the
20370         beginning of BBs.
20372 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
20374         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
20375         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
20377 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
20379         PR target/78633
20380         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
20381         RTL sharing.
20383 2017-01-17  Alan Modra  <amodra@gmail.com>
20385         PR target/79066
20386         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
20387         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
20388         symbolic stack limit when pic.
20390 2017-01-16  Martin Sebor  <msebor@redhat.com>
20392         PR tree-optimization/78608
20393         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
20395 2017-01-16  Jeff Law  <law@redhat.com>
20397         Revert:
20398         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
20399         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
20400         for several include directories that may be relative to sysroot.
20401         * config/i386/x-mingw32 (gplus_includedir): Define.
20402         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
20403         (native_system_includedir): Likewise.
20404         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
20405         override if TARGET_SYSTEM_ROOT is defined.
20406         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
20408         PR tree-optimization/79090
20409         PR tree-optimization/33562
20410         PR tree-optimization/61912
20411         PR tree-optimization/77485
20412         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
20413         and computed trims into the dump file.
20415 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
20417         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
20419 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
20421         PR c/79089
20422         * gimplify.c (gimplify_init_constructor): If want_value and
20423         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
20424         fix.
20426         PR target/79080
20427         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
20428         sequence.  Formatting fixes.
20429         (doloop_optimize): Formatting fixes.
20431         PR driver/49726
20432         * gcc.c (debug_level_greater_than_spec_func): New function.
20433         (static_spec_functions): Add debug-level-gt spec function.
20434         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
20435         !g0.
20436         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
20437         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
20438         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
20439         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
20440         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
20441         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
20443 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
20445         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
20446         QImode fixups to general and mask registers only.
20448 2017-01-16  Carl Love  <cel@us.ibm.com>
20450         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
20451         for built-in functions
20452         vector signed char vec_nabs (vector signed char)
20453         vector signed short vec_nabs (vector signed short)
20454         vector signed int vec_nabs (vector signed int)
20455         vector signed long long vec_nabs (vector signed long long)
20456         vector float vec_nabs (vector float)
20457         vector double vec_nabs (vector double)
20458         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
20459         and NABS overload.
20460         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
20461         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
20462         * doc/extend.texi: Update the documentation file for the new built-in
20463         functions.
20465 2017-01-16  Martin Sebor  <msebor@redhat.com>
20467         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
20468         message.
20470 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20472         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
20473         UNSPEC_VSX__XXSPLTD to require special splat handling.
20475 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
20477         PR bootstrap/78616
20478         * system.h: Poison strndup.
20480 2017-01-16  Alan Modra  <amodra@gmail.com>
20482         PR target/79098
20483         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
20484         use a switch.
20486 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
20488         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
20490 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
20492         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
20493         call recog here.  Assert that INSN_CODE (insn) is non-negative.
20495 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
20497         PR target/72749
20498         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
20499         fallthrough.
20500         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
20501         in the currently scheduled RTL fragment.
20503 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
20505         PR rtl-optimization/78751
20506         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
20507         give up.
20509 2017-01-14  Jeff Law  <law@redhat.com>
20511         PR tree-optimization/79090
20512         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
20513         variable length stores.
20514         (compute_trims): Delete dead assignment to *trim_tail.
20515         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
20516         zero length.
20518 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
20520         PR rtl-optimization/78626
20521         PR rtl-optimization/78727
20522         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
20523         of a block, and split such blocks after everything else is finished.
20525 2017-01-14  Alan Modra  <amodra@gmail.com>
20527         PR target/72749
20528         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
20529         target legitimate_combined_insn.
20530         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
20531         (rs6000_legitimate_combined_insn): New function.
20532         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
20533         all uses.
20534         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
20535         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
20536         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
20538 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
20540         * doc/frontends.texi (G++ and GCC): Remove references to Java.
20542 2017-01-13  Jeff Law  <law@redhat.com>
20544         PR tree-optimization/33562
20545         PR tree-optimization/61912
20546         PR tree-optimization/77485
20547         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
20548         a statement.
20549         (delete_dead_assignment): Likewise.
20550         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
20551         statement to delete_dead_call and delete_dead_assignment.
20553 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
20555         PR c/78304
20556         * substring-locations.c (format_warning_va): Strengthen case 1 so
20557         that both endpoints of the substring must be within the format
20558         range for just the substring to be printed.
20560 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
20562         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
20563         * config/i386/i386.c (ix86_target_string): Add missing options
20564         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
20565         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
20566         flags_other and ix86_target_other to flags2_other.  Display unknown
20567         isa2 options.
20568         (ix86_valid_target_attribute_inner_p): Add missing options and
20569         reorder options by implied ISAs, as in ix86_target_string.
20571 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
20573         * hash-table.h (hash_table::too_empty_p): New function.
20574         (hash_table::expand): Use it.
20575         (hash_table::traverse): Likewise.
20576         (hash_table::empty_slot): Use sizeof (value_type) instead of
20577         sizeof (PTR) to convert bytes to elements.  Shrink the table
20578         if the current size is excessive for the current number of
20579         elements.
20581 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
20583         * ira-costs.c (record_reg_classes): Break from the inner loop
20584         early once alt_fail is known to be true.  Update outer loop
20585         handling accordingly.
20587 2017-01-13  Jeff Law  <law@redhat.com>
20589         * tree-ssa-dse.c (decrement_count): New function.
20590         (increment_start_addr, maybe_trim_memstar_call): Likewise.
20591         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
20592         when we know the partially dead statement is a mem* function.
20594         PR tree-optimization/61912
20595         PR tree-optimization/77485
20596         * tree-ssa-dse.c: Include expr.h.
20597         (maybe_trim_constructor_store): New function.
20598         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
20600         PR tree-optimization/33562
20601         PR tree-optimization/61912
20602         PR tree-optimization/77485
20603         * doc/invoke.texi: Document new dse-max-object-size param.
20604         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
20605         * tree-ssa-dse.c: Include params.h.
20606         (dse_store_status): New enum.
20607         (initialize_ao_ref_for_dse): New, partially extracted from
20608         dse_optimize_stmt.
20609         (valid_ao_ref_for_dse, normalize_ref): New.
20610         (setup_live_bytes_from_ref, compute_trims): Likewise.
20611         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
20612         (maybe_trim_partially_dead_store): Likewise.
20613         (maybe_trim_complex_store): Likewise.
20614         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
20615         Track what bytes live from the original store.  Return tri-state
20616         for dead, partially dead or live.
20617         (dse_dom_walker): Add constructor, destructor and new private members.
20618         (delete_dead_call, delete_dead_assignment): New extracted from
20619         dse_optimize_stmt.
20620         (dse_optimize_stmt): Make a member of dse_dom_walker.
20621         Use initialize_ao_ref_for_dse.
20623         PR tree-optimization/33562
20624         PR tree-optimization/61912
20625         PR tree-optimization/77485
20626         * sbitmap.h (bitmap_count_bits): Prototype.
20627         (bitmap_clear_range, bitmap_set_range): Likewise.
20628         * sbitmap.c (bitmap_clear_range): New function.
20629         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
20631 2017-01-13  Martin Liska  <mliska@suse.cz>
20633         PR ipa/79043
20634         * function.c (set_cfun): Add new argument force.
20635         * function.h (set_cfun): Likewise.
20636         * ipa-inline-transform.c (inline_call): Use the function when
20637         strict alising from is dropped for function we inline to.
20639 2017-01-13  Richard Biener  <rguenther@suse.de>
20641         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
20642         for dumping GIMPLE INTEGER_CSTs.
20644 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20646         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
20647         to 201112L since C++17.
20649 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
20651         PR sanitizer/78887
20652         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
20653         if -fsanitize=kernel-address is present.
20655 2017-01-13  Richard Biener  <rguenther@suse.de>
20657         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
20658         as _Literal ( type ) number in case usual suffixes do not
20659         preserve all information.
20661 2017-01-13  Richard Biener  <rguenther@suse.de>
20663         PR tree-optimization/77283
20664         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
20665         and ssa-iterators.h.
20666         (is_feasible_trace): Implement a cost model based on joiner
20667         PHI node uses.
20669 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
20671         PR target/79004
20672         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
20673         char or short to __float128/_Float128 directly.
20675 2017-01-12  Martin Sebor  <msebor@redhat.com>
20677         to -Wformat-overflow.
20678         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
20679         (min_bytes_remaining): Same.
20680         (get_string_length): Same.
20681         (format_string): Same.
20682         (format_directive): Same.
20683         (add_bytes): Same.
20684         (pass_sprintf_length::handle_gimple_call): Same.
20686 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
20688         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
20689         info.nowrite calls with no lhs that can't throw.  Return bool
20690         whether gsi_remove has been called or not.
20691         (pass_sprintf_length::handle_gimple_call): Return bool whether
20692         try_substitute_return_value called gsi_remove.  Formatting fix.
20693         (pass_sprintf_length::execute): Don't use gsi_remove if
20694         handle_gimple_call returned true.
20696         PR bootstrap/79069
20697         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
20698         be removed due to side-effects, don't remove following barrier nor
20699         turn the successor edge into fallthru edge.
20701 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20703         PR target/79044
20704         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
20705         element-reversing loads and stores as not swappable.
20707 2017-01-12  Nathan Sidwell  <nathan@acm.org>
20708             Nicolai Stange  <nicstange@gmail.com>
20710         * combine.c (try_combine): Don't ignore result of overlap checking
20711         loop.  Combine overlap & asm check into single loop.
20713 2017-01-12  Richard Biener  <rguenther@suse.de>
20715         * tree-pretty-print.c (dump_generic_node): Provide -gimple
20716         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
20718 2017-01-12  Richard Biener  <rguenther@suse.de>
20720         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
20721         and TS_TARGET_OPTION directly derive from TS_BASE.
20722         * tree-core.h (tree_optimization_option): Derive from tree_base.
20723         (tree_target_option): Likewise.
20725 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
20727         * config/i386/i386.c (memory_address_length): Increase len
20728         only when rip_relative_addr_p returns false.
20730 2017-01-11  Julia Koval  <julia.koval@intel.com>
20732         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
20733         (OPTION_MASK_ISA_SGX_SET): New.
20734         (ix86_handle_option): Handle OPT_msgx.
20735         * config.gcc: Added sgxintrin.h.
20736         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
20737         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
20738         * config/i386/i386.c (ix86_target_string): Add -msgx.
20739         (PTA_SGX): New.
20740         (ix86_option_override_internal): Handle new options.
20741         (ix86_valid_target_attribute_inner_p): Add sgx.
20742         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
20743         * config/i386/i386.opt: Add msgx.
20744         * config/i386/sgxintrin.h: New file.
20745         * config/i386/x86intrin.h: Add sgxintrin.h.
20747 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
20749         PR c++/71537
20750         * fold-const.c (maybe_nonzero_address): Return 1 for function
20751         local objects.
20752         (tree_single_nonzero_warnv_p): Don't handle function local objects
20753         here.
20755         PR c++/72813
20756         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
20757         of c-header.
20759 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
20761         PR driver/78877
20762         * opts.c: Include "spellcheck.h"
20763         (struct string_fragment): New struct.
20764         (struct edit_distance_traits<const string_fragment &>): New
20765         struct.
20766         (get_closest_sanitizer_option): New function.
20767         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
20769 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
20771         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
20772         by 12.
20773         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
20774         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
20775         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
20776         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
20777         for initial die_offset if dwarf_split_debug_info.
20778         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
20779         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
20780         fields.
20781         (output_skeleton_debug_sections): Formatting fix.  Use
20782         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
20783         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
20785 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
20787         * config/arm/cortex-a53.md: Add bypasses for
20788         cortex_a53_r2f_cvt.
20789         (cortex_a53_r2f): Only use for transfers.
20790         (cortex_a53_f2r): Likewise.
20791         (cortex_a53_r2f_cvt): Add reservation for conversions.
20792         (cortex_a53_f2r_cvt): Likewise.
20794 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
20796         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
20797         to all inlined functions, change static to extern.
20799 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
20801         PR target/78253
20802         * config/arm/arm.c (legitimize_pic_address): Handle reference to
20803         weak symbol.
20804         (arm_assemble_integer): Likewise.
20806 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
20808         * config.gcc: Use new awk script to check CPU, FPU and architecture
20809         parameters for --with-... options.
20810         * config/arm/parsecpu.awk: New file
20811         * config/arm/arm-cpus.in: New file.
20812         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
20813         files.
20814         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
20815         files.
20816         * config/arm/t-arm: Update dependency rules.
20817         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
20818         of processing .def files.
20819         * config/arm/genopt.sh: Deleted.
20820         * config/arm/gentune.sh: Deleted.
20821         * config/arm/arm-cores.def: Deleted.
20822         * config/arm/arm-arches.def: Deleted.
20823         * config/arm/arm-fpus.def: Deleted.
20824         * config/arm/arm-tune.md: Regenerated.
20825         * config/arm/arm-tables.opt: Regenerated.
20826         * config/arm/arm-cpu.h: New generated file.
20827         * config/arm/arm-cpu-data.h: New generated file.
20828         * config/arm/arm-cpu-cdata.h: New generated file.
20830 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
20832         PR lto/79042
20833         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
20834         bit.
20835         (input_varpool_node): Unpack dynamically_initialized bit.
20837 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
20839         PR rtl-optimization/79032
20840         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
20841         the alignment of the adjusted memory reference against that of MODE,
20842         instead of the alignment of the original memory reference.
20844 2017-01-11  Martin Jambor  <mjambor@suse.cz>
20846         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
20847         test.
20848         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
20849         decorated functions.
20851 2017-01-11  Richard Biener  <rguenther@suse.de>
20853         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
20854         set range/nonnull info for PHI results.  Do not set it on
20855         stmts marked for removal.
20857 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
20859         * expr.c (store_field): In the bitfield case, fetch the return value
20860         from the registers before applying a single big-endian adjustment.
20861         Always do a final load for a BLKmode value not larger than a word.
20863 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
20865         PR c++/77949
20866         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
20867         that we correctly handle column numbers greater than
20868         LINE_MAP_MAX_COLUMN_NUMBER.
20870 2017-01-10  Martin Sebor  <msebor@redhat.com>
20872         PR middle-end/78245
20873         * gimple-ssa-sprintf.c (get_destination_size): Call
20874         {init,fini}object_sizes.
20875         * tree-object-size.c (addr_object_size): Adjust.
20876         (pass_through_call): Adjust.
20877         (pass_object_sizes::execute): Adjust.
20878         * tree-object-size.h (fini_object_sizes): Declare.
20880 2017-01-10  Martin Sebor  <msebor@redhat.com>
20882         PR tree-optimization/78775
20883         * builtins.c (get_size_range): Move...
20884         * calls.c: ...to here.
20885         (alloc_max_size): Accept zero argument.
20886         (operand_signed_p): Remove.
20887         (maybe_warn_alloc_args_overflow): Call get_size_range.
20888         * calls.h (get_size_range): Declare.
20890 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
20892         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
20893         from TI's devices.csv file as of September 2016.
20894         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
20896 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
20898         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
20899         * doc/invoke.texi: Likewise.
20900         * doc/md.texi: Likewise.
20901         * doc/objc.texi: Likewise.
20903 2017-01-10  Joshua Conner  <joshconner@google.com>
20905         * config/arm/fuchsia-elf.h: New file.
20906         * config/fuchsia.h: New file.
20907         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
20908         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
20909         targets.
20910         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
20912 2016-01-10  Richard Biener  <rguenther@suse.de>
20914         PR tree-optimization/79034
20915         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
20916         Propagate out degenerate PHIs in the joiner.
20918 2017-01-10  Martin Liska  <mliska@suse.cz>
20920         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
20921         (sort_congruence_classes_by_decl_uid): Likewise.
20922         (sort_congruence_class_groups_by_decl_uid): Likewise.
20923         (sem_item_optimizer::merge_classes): Sort class, groups in these
20924         classes and members in the groups by DECL_UID of declarations.
20925         This would make merge operations stable.
20927 2017-01-10  Martin Liska  <mliska@suse.cz>
20929         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
20930         usage of m_classes_vec.
20931         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
20932         (sem_item_optimizer::get_group_by_hash): Likewise.
20933         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
20934         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
20935         (sem_item_optimizer::verify_classes): Likewise.
20936         (sem_item_optimizer::process_cong_reduction): Likewise.
20937         (sem_item_optimizer::dump_cong_classes): Likewise.
20938         (sem_item_optimizer::merge_classes): Likewise.
20939         * ipa-icf.h (congruence_class_hash): Rename from
20940         congruence_class_group_hash.  Remove declaration of m_classes_vec.
20942 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
20944         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
20945         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
20946         * config.gcc: Add avx512vpopcntdqintrin.h.
20947         * config/i386/avx512vpopcntdqintrin.h: New.
20948         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
20949         * config/i386/i386-builtin-types.def: Add new types.
20950         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
20951         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
20952         __builtin_ia32_vpopcountq_v8di_mask): New.
20953         * config/i386/i386-c.c (ix86_target_macros_internal): Define
20954         __AVX512VPOPCNTDQ__.
20955         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
20956         (PTA_AVX512VPOPCNTDQ): Define.
20957         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
20958         TARGET_AVX512VPOPCNTDQ_P): Define.
20959         * config/i386/i386.opt: Add mavx512vpopcntdq.
20960         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
20961         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
20963 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
20965         PR middle-end/77484
20966         * predict.def (PRED_CALL): Set to 67.
20968 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
20970         * expr.c (store_field): In the bitfield case, if the value comes from
20971         a function call and is of an aggregate type returned in registers, do
20972         not modify the field mode; extract the value in all cases if the mode
20973         is BLKmode and the size is not larger than a word.
20975 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
20977         PR target/71017
20978         * config/i386/cpuid.h: Fix undefined behavior.
20980 2017-01-04  Jeff Law  <law@redhat.com>
20982         PR tree-optimization/79007
20983         PR tree-optimization/67955
20984         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
20985         conservative for pt.null when flag_non_call_exceptions is on.
20987 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
20989         PR translation/79019
20990         PR translation/79020
20991         * params.def (PARAM_INLINE_MIN_SPEEDUP,
20992         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
20993         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
20994         in descriptions.
20995         * config/avr/avr.opt (maccumulate-args): Likewise.
20996         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
20997         * common.opt (freport-bug): Likewise.
20998         * cif-code.def (CIF_FINAL_ERROR): Likewise.
20999         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
21000         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
21001         translatable string.
21002         * config/i386/i386.c (function_value_32): Likewise.
21003         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
21004         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
21005         Likewise.
21006         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
21007         * common/config/msp430/msp430-common.c (msp430_handle_option):
21008         Likewise.
21009         * symtab.c (symtab_node::verify_base): Likewise.
21010         * opts.c (set_debug_level): Likewise.
21011         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
21012         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
21013         missing whitespace to translatable strings.
21014         * config/avr/avr.md (bswapsi2): Fix typo in comment.
21015         * config/sh/superh.h: Likewise.
21016         * config/i386/xopintrin.h: Likewise.
21017         * config/i386/znver1.md: Likewise.
21018         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
21019         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
21020         * double-int.h (struct double_int): Likewise.
21021         * double-int.c (div_and_round_double): Likewise.
21022         * wide-int.cc: Likewise.
21023         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
21024         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
21025         * cfgcleanup.c (crossjumps_occured): Renamed to ...
21026         (crossjumps_occurred): ... this.
21027         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
21028         Adjust all uses.
21030         PR tree-optimization/78899
21031         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
21032         returning bool return struct loop *, NULL for failure and the new
21033         loop on success.
21034         (versionable_outer_loop_p): Don't version outer loop if it has
21035         dont_vectorized bit set.
21036         (tree_if_conversion): When versioning outer loop, ensure
21037         tree_if_conversion is performed also on the inner loop of the
21038         non-vectorizable outer loop copy.
21039         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
21040         LOOP_VECTORIZED in inner loop of the scalar outer loop and
21041         prevent vectorization of it.
21042         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
21043         the outer loop vectorization of the non-scalar version is attempted
21044         before vectorization of the inner loop in scalar version.  If
21045         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
21046         vectorization of its inner loop.
21047         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
21048         has 2 inner loops, rename also on edges from bb whose single pred
21049         is outer_loop->header.  Fix typo in function comment.
21051 2017-01-09  Martin Sebor  <msebor@redhat.com>
21053         PR bootstrap/79033
21054         * asan.c (asan_emit_stack_protection): Increase local buffer size
21055         to avoid snprintf truncation warning.
21057 2017-01-09  Andrew Pinski  <apinski@cavium.com>
21059         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
21060         to reference thunderx2t99 for the tuning structure
21061         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
21062         Rename to ...
21063         (thunderx2t99_extra_costs): This.
21064         * config/aarch64/aarch64-tune.md: Regenerate.
21065         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
21066         (vulcan_addrcost_table): This.
21067         (vulcan_regmove_cost): Rename to ...
21068         (thunderx2t99_regmove_cost): This.
21069         (vulcan_vector_cost): Rename to ...
21070         (thunderx2t99_vector_cost): this.
21071         (vulcan_branch_cost): Rename to ...
21072         (thunderx2t99_branch_cost): This.
21073         (vulcan_tunings): Rename to ...
21074         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
21075         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
21077 2017-01-09  Martin Jambor  <mjambor@suse.cz>
21079         PR ipa/78365
21080         PR ipa/78599
21081         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
21082         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
21083         (propagate_vr_accross_jump_function): Use the above function for all
21084         value range computations for pass-through jump functions and type
21085         converasion from explicit value range values.
21086         (ipcp_propagate_stage): Do not attempt to deduce types of formal
21087         parameters from TYPE_ARG_TYPES.
21088         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
21089         (ipa_write_node_info): Stream type of the actual argument.
21090         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
21092 2017-01-09  Martin Liska  <mliska@suse.cz>
21094         PR pch/78970
21095         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
21096         (lookup_compiler): Do not show error message with have_E.
21098 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
21100         PR tree-optimization/78938
21101         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
21102         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
21103         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
21104         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
21105         fixes.
21107 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21109         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
21110         is const0_rtx.
21112 2017-01-09  Richard Biener  <rguenther@suse.de>
21114         PR tree-optimization/78997
21115         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
21116         name condition properly.
21118 2017-01-09  Richard Biener  <rguenther@suse.de>
21120         PR debug/79000
21121         * dwarf2out.c (is_cxx): New overload with context.
21122         (is_naming_typedef_decl): Use it.
21124 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
21126         * invoke.texi (Option Summary): Correct spacing in option lists
21127         and add line breaks to fix over-long lines.
21129 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
21131         PR middle-end/17660
21133         * extend.texi (Common Variable Attributes): Add xref to GCC
21134         Internals manual to explain mode attribute keywords.
21136 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
21138         PR other/16519
21139         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
21140         and Preprocessor Options.
21141         (Options for Linking): Document -pthread here....
21142         (RS/6000 and PowerPC Options): ...not here.
21143         (Solaris 2 Options): ...or here.
21144         * doc/cppopts.texi: Document -pthread.
21146 2017-01-08  Martin Sebor  <msebor@redhat.com>
21148         PR middle-end/77708
21149         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
21150         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
21151         New member functions.
21152         (format_directive): Used them.
21153         (add_bytes): Same.
21154         (pass_sprintf_length::handle_gimple_call): Same.
21155         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
21156         to avoid truncation for any argument.
21157         (extract_affine_mul): Same.
21158         * tree.c (get_file_function_name): Same.
21160 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
21162         PR middle-end/77484
21163         * predict.def (PRED_INDIR_CALL): Set to 86.
21165 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
21167         PR preprocessor/54124
21168         * doc/cppopts.texi: Reformat -d subtable to list the full name
21169         of the options.  Add cross-reference to the docs for the general
21170         compiler -d options.
21171         * doc/invoke.texi (Developer Options): Add cross-reference to the
21172         preprocessor-specific -d option documentation.
21174 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
21176         PR preprocessor/13498
21177         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
21178         redudant material, and reflect new command-line options.
21179         (System Headers): Likewise.
21181 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
21183         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
21184         -isystem, and -idirafter.  Copy-edit.
21185         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
21186         default for -ftrack-macro-expansion.  Delete obsolete and
21187         badly-formatted implementation details about -fdebug-cpp output.
21188         * doc/cppwarnopts.texi: Copy-edit.
21190 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
21192         PR c++/72803
21193         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
21194         that the transition from a max line width >= 1<<10 to narrower
21195         lines works correctly.
21197 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
21199         * doc/options.texi (PerFunction): New.
21200         * opt-functions.awk (switch_flags): Map both Optimization and
21201         PerFunction to CL_OPTIMIZATION.
21202         * opth-gen.awk: Test for PerFunction flag along with
21203         Optimization.
21204         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
21205         it only when the latter is present.  Skip those that don't in
21206         the hash function generator.
21207         * common.opt (fvar-tracking): Mark as PerFunction instead of
21208         Optimization.
21209         (fvar-tracking-assignments): Likewise.
21210         (fvar-tracking-assignments-toggle): Likewise.
21211         (fvar-tracking-uninit): Likewise.
21213 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
21215         PR translation/79018
21216         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
21217         the and store.
21219 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
21221         PR target/57583
21222         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
21223         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
21224         TARGET_LONG_JUMP_TABLE_OFFSETS.
21225         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
21226         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
21227         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
21228         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
21229         * config/m68k/m68k.md (tablejump expander): Likewise.
21230         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
21231         TARGET_LONG_JUMP_TABLE_OFFSETS.
21232         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
21233         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
21235 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
21236             David Holsgrove <david.holsgrove@xilinx.com>
21238         * common/config/microblaze/microblaze-common.c
21239         (TARGET_EXCEPT_UNWIND_INFO): Remove.
21240         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
21241         New prototype.
21242         * config/microblaze/microblaze.c (microblaze_must_save_register)
21243         (microblaze_expand_epilogue, microblaze_return_addr): Handle
21244         calls_eh_return.
21245         (microblaze_eh_return): New function.
21246         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
21247         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
21248         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
21249         * config/microblaze/microblaze.md (eh_return): New pattern.
21251 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
21253         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
21254         GCC_DIAGNOSTIC_STRINGIFY): Define.
21256         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
21258 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21260         * config/arm/arm.md (<mcrr>): New.
21261         (<mrrc>): New.
21262         * config/arm/arm.c (arm_arch5te): New.
21263         (arm_option_override): Set arm_arch5te.
21264         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
21265         and mrrc2.
21266         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
21267         (arm_mcrr_qualifiers): ... this. New.
21268         (MRRC_QUALIFIERS): Define to...
21269         (arm_mrrc_qualifiers): ... this. New.
21270         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
21271         __arm_mrrc2): New.
21272         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
21273         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
21274         (MRRCI, mrrc, MRRC): New.
21275         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
21276         VUNSPEC_MRRC2): New.
21278 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21280         * config/arm/arm.md (<mcr>): New.
21281         (<mrc>): New.
21282         * config/arm/arm.c (arm_coproc_builtin_available): Add
21283         support for mcr, mrc, mcr2 and mrc2.
21284         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
21285         (arm_mcr_qualifiers): ... this. New.
21286         (MRC_QUALIFIERS): Define to ...
21287         (arm_mrc_qualifiers): ... this. New.
21288         (MCR_QUALIFIERS): Define to ...
21289         (arm_mcr_qualifiers): ... this. New.
21290         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
21291         __arm_mrc2): New.
21292         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
21293         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
21294         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
21295         VUNSPEC_MRC2): New.
21297 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21299         * config/arm/arm.md (*ldc): New.
21300         (*stc): New.
21301         (<ldc>): New.
21302         (<stc>): New.
21303         * config/arm/arm.c (arm_coproc_builtin_available): Add
21304         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
21305         (arm_coproc_ldc_stc_legitimate_address): New.
21306         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
21307         'qualifier_const_pointer'.
21308         (LDC_QUALIFIERS): Define to...
21309         (arm_ldc_qualifiers): ... this. New.
21310         (STC_QUALIFIERS): Define to...
21311         (arm_stc_qualifiers): ... this. New.
21312         * config/arm/arm-protos.h
21313         (arm_coproc_ldc_stc_legitimate_address): New.
21314         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
21315         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
21316         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
21317         stc2, stcl, stc2l): New.
21318         * config/arm/constraints.md (Uz): New.
21319         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
21320         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
21321         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
21322         VUNSPEC_STC2L): New.
21324 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21326         * config/arm/arm.md (<cdp>): New.
21327         * config/arm/arm.c (neon_const_bounds): Rename this ...
21328         (arm_const_bounds): ... this.
21329         (arm_coproc_builtin_available): New.
21330         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
21331         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
21332         (CDP_QUALIFIERS): Define to...
21333         (arm_cdp_qualifiers): ... this. New.
21334         (void_UP): Define.
21335         (arm_expand_builtin_args): Add case for 6 arguments.
21336         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
21337         (arm_const_bounds): ... this.
21338         (arm_coproc_builtin_available): New.
21339         * config/arm/arm_acle.h (__arm_cdp): New.
21340         (__arm_cdp2): New.
21341         * config/arm/arm_acle_builtins.def (cdp): New.
21342         (cdp2): New.
21343         * config/arm/iterators.md (CDPI,CDP,cdp): New.
21344         * config/arm/neon.md: Rename all 'neon_const_bounds' to
21345         'arm_const_bounds'.
21346         * config/arm/types.md (coproc): New.
21347         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
21348         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
21349         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
21350         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
21352 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21354         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
21355         (UBINOP_QUALIFIERS): New.
21356         (si_UP): Define.
21357         (acle_builtin_data): New. Change comment.
21358         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
21359         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
21360         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
21361         arm_acle_builtins.def.
21362         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
21363         (arm_init_acle_builtins): New.
21364         (CRC32_BUILTIN): Remove.
21365         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
21366         crc32cb, crc32ch and crc32cw.
21367         (arm_init_crc32_builtins): Remove.
21368         (arm_init_builtins): Use arm_init_acle_builtins rather
21369         than arm_init_crc32_builtins.
21370         (arm_expand_acle_builtin): New.
21371         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
21372         * config/arm/arm_acle_builtins.def: New.
21374 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
21376         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
21377         (arm_builtin_datum): ... this.
21378         (arm_init_neon_builtin): Rename to ...
21379         (arm_init_builtin): ... this. Add a new parameters PREFIX
21380         and USE_SIG_IN_NAME.
21381         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
21382         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
21383         'arm_builtin_datum'.
21384         (arm_init_vfp_builtins): Likewise.
21385         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
21386         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
21387         (arm_expand_neon_args): Rename to ...
21388         (arm_expand_builtin_args): ... this. Rename builtin_arg
21389         enum values and differentiate between ARG_BUILTIN_MEMORY
21390         and ARG_BUILTIN_NEON_MEMORY.
21391         (arm_expand_neon_builtin_1): Rename to ...
21392         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
21393         values, arm_expand_builtin_args and add bool parameter NEON.
21394         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
21395         (arm_expand_vfp_builtin): Likewise.
21396         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
21398 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
21400         PR middle-end/77484
21401         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
21402         * predict.c (tree_estimate_probability_bb): Reverse direction of
21403         polymorphic call predictor.
21405 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
21407         * passes.c (execute_one_pass): Split out pass-skipping logic into...
21408         (determine_pass_name_match): ...this new function and...
21409         (should_skip_pass_p): ...this new function.
21411 2017-01-06  Nathan Sidwell  <nathan@acm.org>
21413         * ipa-visibility.c (function_and_variable_visibility): Reformat
21414         comments and long lines.  Remove extrneous if.
21415         * symtab.c (symtab_node::make_decl_local): Fix code format.
21416         (symtab_node::set_section_for_node): Fix comment typo.
21418 2017-01-06  Martin Liska  <mliska@suse.cz>
21420         PR bootstrap/79003
21421         * lra-constraints.c: Rename invariant to lra_invariant.
21422         * predict.c (set_even_probabilities): Initialize e to NULL.
21424 2017-01-05  Martin Sebor  <msebor@redhat.com>
21426         PR tree-optimization/78910
21427         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
21428         (format_integer): Correct off-by-one error in the handling
21429         of precision with negative numbers in signed conversions..
21431 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
21433         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
21435 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
21437         PR tree-optimization/71016
21438         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
21439         factor_out_conditional_conversion.  Formatting fix.
21440         (factor_out_conditional_conversion): Add cond_stmt argument.
21441         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
21442         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
21443         Formatting fix.
21445 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
21447         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
21448         read-rtl-function.o, and selftest-rtl.o.
21449         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
21450         (selftest::aarch64_test_loading_full_dump): New function.
21451         (selftest::aarch64_run_selftests): New function.
21452         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
21453         selftest::aarch64_run_selftests.
21454         * config/i386/i386.c
21455         (selftest::ix86_test_loading_dump_fragment_1): New function.
21456         (selftest::ix86_test_loading_call_insn): New function.
21457         (selftest::ix86_test_loading_full_dump): New function.
21458         (selftest::ix86_test_loading_unspec): New function.
21459         (selftest::ix86_run_selftests): Call the new functions.
21460         * emit-rtl.c (maybe_set_max_label_num): New function.
21461         * emit-rtl.h (maybe_set_max_label_num): New decl.
21462         * function.c (instantiate_decls): Guard call to
21463         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
21464         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
21465         "static".
21466         * gensupport.c (gen_reader::gen_reader): Pass "false"
21467         for new "compact" param of rtx_reader.
21468         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
21469         rather than an empty string for NULL strings.
21470         * read-md.c: Potentially include config.h rather than bconfig.h.
21471         Wrap include of errors.h with #ifdef GENERATOR_FILE.
21472         (have_error): New global, copied from errors.c.
21473         (md_reader::read_name): Rename to...
21474         (md_reader::read_name_1): ...this, adding "out_loc" param,
21475         and converting "missing name or number" to returning false, rather
21476         than failing.
21477         (md_reader::read_name): Reimplement in terms of read_name_1.
21478         (md_reader::read_name_or_nil): New function.
21479         (md_reader::read_string): Handle "(nil)" by returning NULL.
21480         (md_reader::md_reader): Add new param "compact".
21481         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
21482         (md_reader::read_file): New method.
21483         * read-md.h (md_reader::md_reader): Add new param "compact".
21484         (md_reader::read_file): New method.
21485         (md_reader::is_compact): New accessor.
21486         (md_reader::read_name): Convert return type from void to file_location.
21487         (md_reader::read_name_or_nil): New decl.
21488         (md_reader::read_name_1): New decl.
21489         (md_reader::m_compact): New field.
21490         (noop_reader::noop_reader): Pass "false" for new "compact" param
21491         of rtx_reader.
21492         (rtx_reader::rtx_reader): Add new "compact" param.
21493         (rtx_reader::read_rtx_operand): Make virtual and convert return
21494         type from void to rtx.
21495         (rtx_reader::read_until): New decl.
21496         (rtx_reader::handle_any_trailing_information): New virtual function.
21497         (rtx_reader::postprocess): New virtual function.
21498         (rtx_reader::finalize_string): New virtual function.
21499         (rtx_reader::m_in_call_function_usage): New field.
21500         (rtx_reader::m_reuse_rtx_by_id): New field.
21501         * read-rtl-function.c: New file.
21502         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
21503         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
21504         (selftest::verify_three_block_rtl_cfg): New decl.
21505         * read-rtl-function.h: New file.
21506         * read-rtl.c: Potentially include config.h rather than bconfig.h.
21507         For host, include function.h, memmodel.h, and emit-rtl.h.
21508         (one_time_initialization): New function.
21509         (struct compact_insn_name): New struct.
21510         (compact_insn_names): New array.
21511         (find_code): Handle insn codes in compact dumps.
21512         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
21513         (bind_subst_iter_and_attr): Likewise.
21514         (add_condition_to_string): Likewise.
21515         (add_condition_to_rtx): Likewise.
21516         (apply_attribute_uses): Likewise.
21517         (add_current_iterators): Likewise.
21518         (apply_iterators): Likewise.
21519         (initialize_iterators): Guard usage of apply_subst_iterator with
21520         #ifdef GENERATOR_FILE.
21521         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
21522         (md_reader::read_mapping): Likewise.
21523         (add_define_attr_for_define_subst): Likewise.
21524         (add_define_subst_attr): Likewise.
21525         (read_subst_mapping): Likewise.
21526         (check_code_iterator): Likewise.
21527         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
21528         logic to...
21529         (one_time_initialization): New function.
21530         (rtx_reader::read_until): New method.
21531         (read_flags): New function.
21532         (parse_reg_note_name): New function.
21533         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
21534         Handle reuse_rtx ids.
21535         Wrap iterator lookup within #ifdef GENERATOR_FILE.
21536         Add parsing support for RTL dumps, mirroring the special-cases in
21537         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
21538         values, and calling handle_any_trailing_information.
21539         (rtx_reader::read_rtx_operand): Convert return type from void
21540         to rtx, returning return_rtx.  Handle case 'e'.  Call
21541         finalize_string on XSTR and XTMPL fields.
21542         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
21543          "(nil)" values were omitted.  Call the postprocess vfunc on the
21544         return_rtx.
21545         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
21546         class ctor.  Initialize m_in_call_function_usage.  Call
21547         one_time_initialization.
21548         * rtl-tests.c (selftest::test_uncond_jump): Call
21549         set_new_first_and_last_insn.
21550         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
21551         * selftest-rtl.c: New file.
21552         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
21553         (selftest::get_insn_by_uid): New decl.
21554         * selftest-run-tests.c (selftest::run_tests): Call
21555         read_rtl_function_c_tests.
21556         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
21557         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
21558         dumps.
21560 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
21562         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
21563         operands in a special way.  Assert that pos+len <= mode precision.
21565 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
21567         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
21568         3 argument Alias with unlimited for the negative form.
21569         (fno-vect-cost-model): Removed.
21571 2017-01-05  Martin Liska  <mliska@suse.cz>
21573         * hsa-gen.c (gen_hsa_divmod): New function.
21574         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
21576 2017-01-05  Martin Liska  <mliska@suse.cz>
21578         PR pch/78970
21579         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
21580         header.
21582 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21584         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
21585         small constant length operands.
21587 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21589         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
21590         between loop iterations.
21592 2017-01-05  Martin Liska  <mliska@suse.cz>
21594         PR sanitizer/78815
21595         * gimplify.c (gimplify_decl_expr): Compare to
21596         asan_poisoned_variables instread of checking flags.
21597         (gimplify_target_expr): Likewise.
21598         (gimplify_expr): Likewise.
21599         (gimplify_function_tree): Conditionally initialize
21600         asan_poisoned_variables.
21602 2017-01-04  Jeff Law  <law@redhat.com>
21604         PR tree-optimizatin/78812
21605         * rtl.h (contains_mem_rtx_p): Prototype.
21606         * ifcvt.c (containts_mem_rtx_p): Move from here to...
21607         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
21608         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
21609         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
21610         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
21612 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
21614         * input.c (assert_char_at_range): Default-initialize actual_range.
21616 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
21618         * df-scan.c (df_ref_create_structure): Make regno unsigned,
21619         to match the caller.
21621 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
21623         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
21624         insns after final jump in test to emit dummy move.
21626 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
21628         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
21629         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
21631 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
21633         * multiple_target.c (create_dispatcher_calls): Init e_next.
21634         * tree-ssa-loop-split.c (split_loop): Init border.
21635         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
21636         scalar_type.
21638 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
21640         PR target/71977
21641         PR target/70568
21642         PR target/78823
21643         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
21644         (altivec_register_operand): Do not return true if the operand
21645         contains a SUBREG mixing SImode and SFmode.
21646         (vsx_register_operand): Likewise.
21647         (vsx_reg_sfsubreg_ok): New predicate.
21648         (vfloat_operand): Do not return true if the operand contains a
21649         SUBREG mixing SImode and SFmode.
21650         (vint_operand): Likewise.
21651         (vlogical_operand): Likewise.
21652         (gpc_reg_operand): Likewise.
21653         (int_reg_operand): Likewise.
21654         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
21655         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
21656         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
21657         SImode and SFmode.
21658         (rs6000_emit_move_si_sf_subreg): New helper function.
21659         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
21660         fixup SUBREGs involving SImode and SFmode.
21661         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
21662         numbers for the new peephole2 optimization.
21663         (peephole2 for SFmode unions): New peephole2 to optimize cases in
21664         the GLIBC math library that do AND/IOR/XOR operations on single
21665         precision floating point.
21666         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
21667         target macros to say whether we need to avoid SUBREGs mixing
21668         SImode and SFmode.
21669         (TARGET_ALLOW_SF_SUBREG): Likewise.
21670         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
21671         (UNSPEC_SI_FROM_SF): Likewise.
21672         (iorxor): Change spacing.
21673         (and_ior_xor): New iterator for AND, IOR, and XOR.
21674         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
21675         (movdi_from_sf_zero_ext): Likewise.
21676         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
21677         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
21678         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
21679         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
21680         (fms<mode>4): Likewise.
21681         (fnma<mode>4): Likewise.
21682         (fnms<mode>4): Likewise.
21683         (nfma<mode>4): Likewise.
21684         (nfms<mode>4): Likewise.
21686 2017-01-04  Marek Polacek  <polacek@redhat.com>
21688         PR c++/64767
21689         * doc/invoke.texi: Document -Wpointer-compare.
21691 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
21693         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
21694         RejectNegative.
21696         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
21697         descriptions for -gdwarf-5 and emit them as uleb128 instead of
21698         2-byte data.
21700 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
21702         PR target/78056
21703         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
21704         documentation of the powerpc_popcntb_ok attribute.
21705         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
21706         code to issue warning messages if a requested CPU configuration is
21707         not supported by the binary (assembler and loader) toolchain.
21708         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
21709         made to define a built-in function that has been disabled.
21710         (paired_init_builtins): Add assertion to prevent ICE if attempt is
21711         made to define a built-in function that has been disabled.
21712         (altivec_init_builtins): Add comment explaining why definition
21713         of the DST built-in functions is not preceded by an assertion
21714         check.  Add assertions to prevent ICE if attempts are made to
21715         define an altivec predicate or an abs* built-in function that has
21716         been disabled.
21717         (htm_init_builtins): Add comment explaining why definition of the
21718         htm built-in functions is not preceded by an assertion check.
21720 2017-01-04  Jeff Law  <law@redhat.com>
21722         PR tree-optimizatin/67955
21723         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
21724         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
21725         the points-to solution does not include pt_null.  Use DECL_PT_UID
21726         unconditionally.
21728 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
21730         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
21731         Use gen_int_mode instead of gen_lopwart for const_int operands.
21733 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
21735         PR tree-optimization/71563
21736         * match.pd: Simplify X << Y into X if Y is known to be 0 or
21737         out of range value - has low bits known to be zero.
21739 2017-01-04  Alan Modra  <amodra@gmail.com>
21741         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
21742         * configure: Regenerate.
21743         * config.in: Regenerate.
21745 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
21747         PR bootstrap/77569
21748         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
21749         a substring of the message, but strcmp with the whole message.  Ifdef
21750         ENABLE_NLS, translate the message first using dgettext.
21752 2017-01-03  Jeff Law  <law@redhat.com>
21754         PR tree-optimizatin/78856
21755         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
21756         (mark_threaded_blocks): Remove code to truncate thread paths that
21757         cross multiple loop headers.  Instead invalidate the cached loop
21758         iteration information and handle case of a thread path walking
21759         into an irreducible region.
21761 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
21763         PR target/78900
21764         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
21765         assertions.  Add support for doing the signbit if the IEEE 128-bit
21766         floating point value is in a GPR.
21767         * config/rs6000/rs6000.md (Fsignbit): Delete.
21768         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
21769         Update the length attribute if the value is in a GPR.
21770         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
21771         the sign or zero extension instruction, since the value is always 0/1.
21772         (signbit<mode>2_dm2): Delete using <Fsignbit>.
21774         PR target/78953
21775         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
21776         extracting SImode to a GPR register so that we can generate a
21777         store, limit the vector to be in a traditional Altivec register
21778         for the vextuwrx instruction.
21780 2017-01-03  Ian Lance Taylor  <iant@google.com>
21782         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
21784 2017-01-03  Martin Sebor  <msebor@redhat.com>
21786         PR tree-optimization/78696
21787         * gimple-ssa-sprintf.c (format_floating): Correct handling of
21788         precision.  Use MPFR for %f for greater fidelity.  Correct handling
21789         of %g.
21790         (pass_sprintf_length::compute_format_length): Set width and precision
21791         specified by asrerisk to void_node for vararg functions.
21792         (try_substitute_return_value): Adjust dump output.
21794 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
21796         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
21798 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
21800         * doc/invoke.texi (SPARC options): Document -mlra as the default.
21801         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
21802         -mlra/-mno-lra was passed to the compiler.
21804 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
21806         PR rtl-optimization/65618
21807         * emit-rtl.c (try_split): Move initialization of "before" and
21808         "after" to just before the call to emit_insn_after_setloc.
21810 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
21812         * doc/md.texi (Standard Names): Remove reference to Java frontend.
21814 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
21816         * dwarf2out.c (gen_enumeration_type_die): When
21817         -gno-strict-dwarf, add a DW_AT_encoding attribute.
21819 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
21821         PR tree-optimization/78965
21822         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
21823         Change first argument from const call_info & to call_info &.  For %n
21824         set info.nowrite to false.
21826         PR middle-end/78901
21827         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
21828         possibly throwing calls.
21830         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
21831         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
21832         and fns handling, rather than in a separate case SSA_NAME.
21834 2017-01-02  Jeff Law  <law@redhat.com>
21836         * config/darwin-driver.c (darwin_driver_init): Const-correctness
21837         fixes for first_period and second_period variables.
21839 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
21841         PR target/78967
21842         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
21843         (*insvqi_1): New insn pattern.
21844         (*insvqi_1_mem_rex64): Ditto.
21845         (*insvqi_2): Ditto.
21846         (*insvqi_3): Rename from *insvqi.
21848         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
21850 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
21852         * doc/cfg.texi (Edges): Remove reference to Java.
21853         (Maintaining the CFG): Ditto.
21855 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
21857         PR middle-end/77674
21858         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
21859         transparent aliases.
21861 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
21863         PR middle-end/77484
21864         * predict.def (PRED_CALL): Update hitrate.
21865         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
21866         * predict.c (tree_estimate_probability_bb): Split CALL predictor
21867         into direct/indirect/polymorphic variants.
21869 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
21871         Update copyright years.
21873         * gcc.c (process_command): Update copyright notice dates.
21874         * gcov-dump.c (print_version): Ditto.
21875         * gcov.c (print_version): Ditto.
21876         * gcov-tool.c (print_version): Ditto.
21877         * gengtype.c (create_file): Ditto.
21878         * doc/cpp.texi: Bump @copying's copyright year.
21879         * doc/cppinternals.texi: Ditto.
21880         * doc/gcc.texi: Ditto.
21881         * doc/gccint.texi: Ditto.
21882         * doc/gcov.texi: Ditto.
21883         * doc/install.texi: Ditto.
21884         * doc/invoke.texi: Ditto.
21886 Copyright (C) 2017 Free Software Foundation, Inc.
21888 Copying and distribution of this file, with or without modification,
21889 are permitted in any medium without royalty provided the copyright
21890 notice and this notice are preserved.